UNPKG

e-virt-table

Version:

A powerful data table based on canvas. You can use it as data grid、Microsoft Excel or Google sheets. It supports virtual scroll、cell edit etc.

118 lines (117 loc) 4.53 kB
import { ChangeItem, Column, ConfigType, CustomHeader, EventCallback, EVirtTableOptions, FilterMethod, Fixed, Position, RowParams, ValidateField, ValidateItemError } from './types'; import Context from './Context'; import { mergeColCell, mergeRowCell, getSpanArrByRow, getSpanObjByColumn } from './util'; import './style.css'; import { LangConfig } from './Locale'; export default class EVirtTable { static locale: LangConfig; private options; private scroller; private header; private body; private footer; private selector; private autofill; private tooltip; private editor; private empty; private overlayer; private contextMenu; private loading; private finderBar; private textSelector; private animationFrameId; ctx: Context; static useLocale(langConfig: LangConfig): void; constructor(target: HTMLDivElement, options: EVirtTableOptions); private createContainer; private doDraw; private updateStageBorder; draw(ignoreOverlayer?: boolean): void; loadConfig(_config: ConfigType): void; loadColumns(columns: Column[]): void; loadData(data: any[]): void; loadFooterData(data: any[]): void; setCustomHeader(customHeader: CustomHeader, ignoreEmit?: boolean): void; getCustomHeader(): { columns: Column[]; customHeader: CustomHeader; }; showColumns(keys: string[], show?: boolean): void; fixedColumns(keys: string[], fixed: Fixed | ''): void; setLoading(loading: boolean): void; on(event: string, callback: EventCallback): void; emit(event: string, ...args: any[]): void; off(event: string, callback: EventCallback): void; filterMethod(func: FilterMethod): void; editCell(rowIndex: number, colIndex: number): void; setItemValue(rowKey: string, key: string, value: any, history?: boolean, reDraw?: boolean, isEditor?: boolean): void; batchSetItemValue(list: ChangeItem[], history?: boolean): void; setItemValueByEditor(rowKey: string, key: string, value: any, history?: boolean, reDraw?: boolean): void; clearEditableData(value?: null): ChangeItem[]; clearEditor(): void; doLayout(): void; /** * 设置内容缩放比例(容器大小不变,内容变大/变小,基于原生分辨率重绘不失清晰度) * @param zoom 缩放比例,范围 MIN_ZOOM ~ MAX_ZOOM */ setZoom(zoom: number): void; getZoom(): number; getChangedData(): { rowKey: string; colKey: string; row: any; originalValue: any; value: any; }[]; getChangedRows(): any[]; setCurrentRowByRowIndex(rowIndex: number): void; setCurrentRow(rowKey: string): void; getCurrentRow(): RowParams | undefined; clearValidate(): void; validateFields(ValidateFields: ValidateField[], scrollError?: boolean): Promise<unknown>; validate(scrollError?: boolean): Promise<unknown>; setValidations(errors: ValidateItemError[]): void; getValidations(): Promise<unknown>; hasValidationError(): boolean; scrollTo(x: number, y: number): void; scrollXTo(x: number): void; scrollToColkey(key: string): void; scrollToRowkey(key: string): void; scrollToColIndex(colIndex: number): void; scrollToRowIndex(rowIndex: number): void; scrollYTo(y: number): void; setExpandRowKeys(keys: any[], expand?: boolean): void; getExpandRowKeys(): string[]; clearSelection(): void; toggleRowSelection(row: any): void; setSelectionByRows(rows: any[], selected?: boolean): void; setSelectionByRowKeys(keys: string[], selected?: boolean): void; toggleAllSelection(): void; toggleRowExpand(rowKey: string, expand: boolean): void; toggleExpandAll(expand: boolean): void; getSelectionRows(): any[]; getPositionForRowIndex(rowIndex: number): Position; getCellValue(rowKey: string, key: string): any; getCellValueByIndex(rowIndex: number, colIndex: number): { rowKey: string; key: string; value: any; } | null; clearSort(): void; contextMenuHide(): void; getUtils(): { mergeColCell: typeof mergeColCell; mergeRowCell: typeof mergeRowCell; getSpanArrByRow: typeof getSpanArrByRow; getSpanObjByColumn: typeof getSpanObjByColumn; }; getColumnByKey(key: string): Column | undefined; clearChangeData(): void; getReadonly(rowKey: string, key: string): any; useLocale(langConfig: LangConfig): void; /** * 销毁 */ destroy(): void; }