@fortune-sheet/core
Version:
FortuneSheet is a drop-in javascript spreadsheet library that provides rich features like Excel and Google Sheets
179 lines (178 loc) • 6.06 kB
TypeScript
import { SheetConfig } from ".";
import { FormulaCache } from "./modules";
import { Hooks } from "./settings";
import { Sheet, Selection, Cell, CommentBox, Rect, Image, Presence, LinkCardProps, FilterOptions, RangeDialogProps, DataRegulationProps, ConditionRulesProps, GlobalCache } from "./types";
interface MutableRefObject<T> {
current: T;
}
declare type RefValues = {
globalCache: GlobalCache;
cellInput: MutableRefObject<HTMLDivElement | null>;
fxInput: MutableRefObject<HTMLDivElement | null>;
canvas: MutableRefObject<HTMLCanvasElement | null>;
cellArea: MutableRefObject<HTMLDivElement | null>;
workbookContainer: MutableRefObject<HTMLDivElement | null>;
};
export declare type Context = {
luckysheetfile: Sheet[];
defaultcolumnNum: number;
defaultrowNum: number;
addDefaultRows: number;
fullscreenmode: boolean;
devicePixelRatio: number;
commentBoxes?: CommentBox[];
editingCommentBox?: CommentBox;
hoveredCommentBox?: CommentBox;
insertedImgs?: Image[];
editingInsertedImgs?: Image;
activeImg?: string;
presences?: Presence[];
showSearch?: boolean;
showReplace?: boolean;
linkCard?: LinkCardProps;
rangeDialog?: RangeDialogProps;
warnDialog?: string;
dataVerification?: {
selectStatus: boolean;
selectRange: [];
optionLabel_en: any;
optionLabel_zh: any;
optionLabel_zh_tw: any;
optionLabel_es: any;
dataRegulation?: DataRegulationProps;
};
dataVerificationDropDownList?: boolean;
conditionRules: ConditionRulesProps;
contextMenu: {
x?: number;
y?: number;
headerMenu?: boolean;
pageX?: number;
pageY?: number;
};
sheetTabContextMenu: {
x?: number;
y?: number;
sheet?: Sheet;
onRename?: () => void;
};
filterContextMenu?: {
x: number;
y: number;
col: number;
startRow: number;
endRow: number;
startCol: number;
endCol: number;
hiddenRows: number[];
listBoxMaxHeight: number;
};
currentSheetId: string;
calculateSheetId: string;
config: SheetConfig;
visibledatarow: number[];
visibledatacolumn: number[];
ch_width: number;
rh_height: number;
cellmainWidth: number;
cellmainHeight: number;
toolbarHeight: number;
infobarHeight: number;
calculatebarHeight: number;
rowHeaderWidth: number;
columnHeaderHeight: number;
cellMainSrollBarSize: number;
sheetBarHeight: number;
statisticBarHeight: number;
luckysheetTableContentHW: number[];
defaultcollen: number;
defaultrowlen: number;
scrollLeft: number;
scrollTop: number;
sheetScrollRecord: Record<string, any>;
luckysheet_select_status: boolean;
luckysheet_select_save: Sheet["luckysheet_select_save"];
luckysheet_selection_range: Sheet["luckysheet_selection_range"];
formulaRangeHighlight: ({
rangeIndex: number;
backgroundColor: string;
} & Rect)[];
formulaRangeSelect: ({
rangeIndex: number;
} & Rect) | undefined;
functionCandidates: any[];
functionHint: string | null | undefined;
luckysheet_copy_save?: {
dataSheetId: string;
copyRange: {
row: number[];
column: number[];
}[];
RowlChange: boolean;
HasMC: boolean;
};
luckysheet_paste_iscut: boolean;
filterchage: boolean;
filterOptions?: FilterOptions;
luckysheet_filter_save?: {
row: number[];
column: number[];
} | undefined;
filter: Record<string, {
caljs: any;
rowhidden: Record<string, number>;
optionstate: boolean;
str: number;
edr: number;
cindex: number;
stc: number;
edc: number;
}>;
luckysheet_sheet_move_status: boolean;
luckysheet_sheet_move_data: any[];
luckysheet_scroll_status: boolean;
luckysheetcurrentisPivotTable: boolean;
luckysheet_rows_selected_status: boolean;
luckysheet_cols_selected_status: boolean;
luckysheet_rows_change_size: boolean;
luckysheet_rows_change_size_start: any[];
luckysheet_cols_change_size: boolean;
luckysheet_cols_change_size_start: any[];
luckysheet_cols_freeze_drag: boolean;
luckysheet_rows_freeze_drag: boolean;
luckysheetCellUpdate: any[];
luckysheet_shiftkeydown: boolean;
luckysheet_shiftpositon: Selection | undefined;
iscopyself: boolean;
orderbyindex: number;
luckysheet_model_move_state: boolean;
luckysheet_model_xy: number[];
luckysheet_model_move_obj: any;
luckysheet_cell_selected_move: boolean;
luckysheet_cell_selected_move_index: any[];
luckysheet_cell_selected_extend: boolean;
luckysheet_cell_selected_extend_index: any[];
lang: string | null;
chart_selection: any;
zoomRatio: number;
showGridLines: boolean;
allowEdit: boolean;
fontList: any[];
defaultFontSize: number;
luckysheetPaintModelOn: boolean;
luckysheetPaintSingle: boolean;
defaultCell: Cell;
groupValuesRefreshData: any[];
formulaCache: FormulaCache;
hooks: Hooks;
showSheetList?: Boolean;
forceFormulaRef?: Boolean;
getRefs: () => RefValues;
};
export declare function defaultContext(refs: RefValues): Context;
export declare function getFlowdata(ctx?: Context, id?: string | null): import("./types").CellMatrix | null | undefined;
export declare function ensureSheetIndex(data: Sheet[], generateSheetId: () => string): void;
export declare function initSheetIndex(ctx: Context): void;
export declare function updateContextWithSheetData(ctx: Context, data: any[][]): void;
export declare function updateContextWithCanvas(ctx: Context, canvas: HTMLCanvasElement, placeholder: HTMLDivElement): void;
export {};