222 lines
3.5 KiB
TypeScript
222 lines
3.5 KiB
TypeScript
export interface Area {
|
|
sheet: number;
|
|
row: number;
|
|
column: number;
|
|
width: number;
|
|
height: number;
|
|
}
|
|
|
|
export enum BorderType {
|
|
All = "All",
|
|
Inner = "Inner",
|
|
Outer = "Outer",
|
|
Top = "Top",
|
|
Right = "Right",
|
|
Bottom = "Bottom",
|
|
Left = "Left",
|
|
CenterH = "CenterH",
|
|
CenterV = "CenterV",
|
|
None = "None",
|
|
}
|
|
|
|
export interface BorderArea {
|
|
item: BorderItem;
|
|
type: BorderType;
|
|
}
|
|
|
|
type ErrorType =
|
|
| "REF"
|
|
| "NAME"
|
|
| "VALUE"
|
|
| "DIV"
|
|
| "NA"
|
|
| "NUM"
|
|
| "ERROR"
|
|
| "NIMPL"
|
|
| "SPILL"
|
|
| "CALC"
|
|
| "CIRC";
|
|
|
|
type OpCompareType =
|
|
| "LessThan"
|
|
| "GreaterThan"
|
|
| "Equal"
|
|
| "LessOrEqualThan"
|
|
| "GreaterOrEqualThan"
|
|
| "NonEqual";
|
|
|
|
type OpSumType = "Add" | "Minus";
|
|
|
|
type OpProductType = "Times" | "Divide";
|
|
|
|
interface ReferenceType {
|
|
sheet: string | null;
|
|
row: number;
|
|
column: number;
|
|
absolute_column: boolean;
|
|
absolute_row: boolean;
|
|
}
|
|
|
|
interface ParsedReferenceType {
|
|
column: number;
|
|
row: number;
|
|
absolute_column: boolean;
|
|
absolute_row: boolean;
|
|
}
|
|
|
|
interface Reference {
|
|
Reference: ReferenceType;
|
|
}
|
|
|
|
interface Range {
|
|
Range: {
|
|
sheet: string | null;
|
|
left: ParsedReferenceType;
|
|
right: ParsedReferenceType;
|
|
};
|
|
}
|
|
|
|
export type TokenType =
|
|
| "Illegal"
|
|
| "Eof"
|
|
| { Ident: string }
|
|
| { String: string }
|
|
| { Boolean: boolean }
|
|
| { Number: number }
|
|
| { ERROR: ErrorType }
|
|
| { COMPARE: OpCompareType }
|
|
| { SUM: OpSumType }
|
|
| { PRODUCT: OpProductType }
|
|
| "POWER"
|
|
| "LPAREN"
|
|
| "RPAREN"
|
|
| "COLON"
|
|
| "SEMICOLON"
|
|
| "LBRACKET"
|
|
| "RBRACKET"
|
|
| "LBRACE"
|
|
| "RBRACE"
|
|
| "COMMA"
|
|
| "BANG"
|
|
| "PERCENT"
|
|
| "AND"
|
|
| Reference
|
|
| Range;
|
|
|
|
export interface MarkedToken {
|
|
token: TokenType;
|
|
start: number;
|
|
end: number;
|
|
}
|
|
|
|
export interface WorksheetProperties {
|
|
name: string;
|
|
color: string;
|
|
sheet_id: number;
|
|
}
|
|
|
|
interface CellStyleFill {
|
|
pattern_type: string;
|
|
fg_color?: string;
|
|
bg_color?: string;
|
|
}
|
|
|
|
interface CellStyleFont {
|
|
u: boolean;
|
|
b: boolean;
|
|
i: boolean;
|
|
strike: boolean;
|
|
sz: number;
|
|
color: string;
|
|
name: string;
|
|
family: number;
|
|
scheme: string;
|
|
}
|
|
|
|
// export enum BorderType {
|
|
// BorderAll,
|
|
// BorderInner,
|
|
// BorderCenterH,
|
|
// BorderCenterV,
|
|
// BorderOuter,
|
|
// BorderNone,
|
|
// BorderTop,
|
|
// BorderRight,
|
|
// BorderBottom,
|
|
// BorderLeft,
|
|
// None,
|
|
// }
|
|
|
|
export interface BorderOptions {
|
|
color: string;
|
|
style: BorderStyle;
|
|
border: BorderType;
|
|
}
|
|
|
|
export enum BorderStyle {
|
|
Thin = "thin",
|
|
Medium = "medium",
|
|
Thick = "thick",
|
|
Dashed = "dashed",
|
|
Dotted = "dotted",
|
|
Double = "double",
|
|
None = "none",
|
|
}
|
|
|
|
interface BorderItem {
|
|
style: string;
|
|
color: string;
|
|
}
|
|
|
|
interface CellStyleBorder {
|
|
diagonal_up?: boolean;
|
|
diagonal_down?: boolean;
|
|
left: BorderItem;
|
|
right: BorderItem;
|
|
top: BorderItem;
|
|
bottom: BorderItem;
|
|
diagonal: BorderItem;
|
|
}
|
|
|
|
export type VerticalAlignment =
|
|
| "bottom"
|
|
| "center"
|
|
| "distributed"
|
|
| "justify"
|
|
| "top";
|
|
|
|
export type HorizontalAlignment =
|
|
| "left"
|
|
| "center"
|
|
| "right"
|
|
| "general"
|
|
| "centerContinuous"
|
|
| "distributed"
|
|
| "fill"
|
|
| "justify";
|
|
|
|
interface Alignment {
|
|
horizontal: HorizontalAlignment;
|
|
vertical: VerticalAlignment;
|
|
wrap_text: boolean;
|
|
}
|
|
|
|
export interface CellStyle {
|
|
read_only: boolean;
|
|
quote_prefix: boolean;
|
|
fill: CellStyleFill;
|
|
font: CellStyleFont;
|
|
border: CellStyleBorder;
|
|
num_fmt: string;
|
|
alignment?: Alignment;
|
|
}
|
|
|
|
export interface SelectedView {
|
|
sheet: number;
|
|
row: number;
|
|
column: number;
|
|
range: [number, number, number, number];
|
|
top_row: number;
|
|
left_column: number;
|
|
}
|