import type { ColumnDefine } from '@visactor/vtable'; import { TYPES as VTableTypes, themes as VTableThemes } from '@visactor/vtable'; import type { CellValue, MainMenuItem } from './base'; import type { IFilterState } from './filter'; import type { TableSeriesNumberOptions, ImportResult } from '@visactor/vtable-plugins'; import type { SortState } from '@visactor/vtable/es/ts-types'; export { VTableThemes, VTableTypes, ImportResult }; export interface IFilterConfig { filterModes?: ('byValue' | 'byCondition')[]; } export interface IColumnDefine extends Omit { field?: ColumnDefine['field']; filter?: boolean; } export type SheetData = (CellValue[] | null)[] | Record[]; export interface ISheetDefine { sheetTitle: string; sheetKey: string; columnCount?: number; rowCount?: number; columns?: IColumnDefine[]; data?: SheetData; active?: boolean; cellMerge?: VTableTypes.CustomMergeCellArray; frozenRowCount?: number; frozenColCount?: number; showHeader?: boolean; firstRowAsHeader?: boolean; formulas?: Record; filter?: boolean | IFilterConfig; filterState?: IFilterState; sortState?: SortState[] | SortState | null; theme?: IThemeDefine; columnWidthConfig?: { key: string | number; width: number; }[]; rowHeightConfig?: { key: number; height: number; }[]; dragOrder?: { enableDragColumnOrder?: boolean; enableDragRowOrder?: boolean; }; multipleSort?: boolean; } export interface IThemeDefine { rowSeriesNumberCellStyle?: TableSeriesNumberOptions['rowSeriesNumberCellStyle']; colSeriesNumberCellStyle?: TableSeriesNumberOptions['colSeriesNumberCellStyle']; menuStyle?: { fontFamily?: string; fontSize?: number; color?: string; padding?: number[]; bgColor?: string; }; tableTheme: VTableThemes.ITableThemeDefine; } export interface IVTableSheetOptions { sheets: ISheetDefine[]; showFormulaBar?: boolean; showSheetTab?: boolean; VTablePluginModules?: { module: any; moduleOptions?: any; disabled?: boolean; }[]; mainMenu?: { show?: boolean; items?: MainMenuItem[]; }; undoRedo?: { show?: boolean; }; theme?: IThemeDefine; defaultRowHeight?: number; defaultColWidth?: number; dragOrder?: { enableDragColumnOrder?: boolean; enableDragRowOrder?: boolean; }; } export type IVTableSheetUpdateOptions = Partial; export * from './base'; export * from './formula'; export * from './filter'; export * from './sheet'; export * from './spreadsheet-events';