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.

104 lines (103 loc) 3.93 kB
import { ChangeItem, Column, ConfigType, CustomHeader, EventCallback, EVirtTableOptions, FilterMethod, Position, RowParams, ValidateField, ValidateItemError } from './types'; import Context from './Context'; import { mergeColCell, mergeRowCell, getSpanArrByRow, getSpanObjByColumn } from './util'; import './style.css'; export default class EVirtTable { 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 animationFrameId; private animationFrameId2; ctx: Context; constructor(target: HTMLDivElement, options: EVirtTableOptions); private createContainer; 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; }; 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; 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; clearMaxRowHeight(): void; contextMenuHide(): void; getUtils(): { mergeColCell: typeof mergeColCell; mergeRowCell: typeof mergeRowCell; getSpanArrByRow: typeof getSpanArrByRow; getSpanObjByColumn: typeof getSpanObjByColumn; }; getColumnByKey(key: string): Column | undefined; clearChangeData(): void; /** * 销毁 */ destroy(): void; }