@visactor/vtable
Version:
canvas table width high performance
146 lines (145 loc) • 8.5 kB
TypeScript
import type { AggregationType, CellAddress, CellRange, ColumnsDefine, DropDownMenuEventInfo, FieldData, FieldDef, FieldFormat, FieldKeyDef, FilterRules, IPagination, ListTableAPI, ListTableConstructorOptions, MaybePromiseOrUndefined, SortState } from './ts-types';
import { HierarchyState } from './ts-types';
import { BaseTable } from './core';
import type { ListTableProtected } from './ts-types/base-table';
import type { IEditor } from '@visactor/vtable-editors';
import type { ColumnDefine } from './ts-types/list-table/layout-map/api';
import type { ListTreeStickCellPlugin } from './plugins/list-tree-stick-cell';
export declare class ListTable extends BaseTable implements ListTableAPI {
internalProps: ListTableProtected;
options: ListTableConstructorOptions;
showHeader: boolean;
listTreeStickCellPlugin?: ListTreeStickCellPlugin;
constructor(options: ListTableConstructorOptions);
constructor(container: HTMLElement, options: ListTableConstructorOptions);
isListTable(): true;
isPivotTable(): false;
isPivotChart(): false;
get sortState(): SortState | SortState[];
get records(): any[];
get recordsCount(): number;
updateColumns(columns: ColumnsDefine, options?: {
clearColWidthCache?: boolean;
clearRowHeightCache?: boolean;
}): void;
private _recreateSceneForStateChange;
addColumns(toAddColumns: ColumnDefine[], colIndex?: number, isMaintainArrayData?: boolean): void;
deleteColumns(deleteColIndexs: number[], isMaintainArrayData?: boolean): void;
get columns(): ColumnsDefine;
get header(): ColumnsDefine;
set header(header: ColumnsDefine);
get transpose(): boolean;
set transpose(transpose: boolean);
getCellValue(col: number, row: number, skipCustomMerge?: boolean): FieldData;
getCellOriginValue(col: number, row: number): FieldData;
getCellRawValue(col: number, row: number): FieldData;
getRecordShowIndexByCell(col: number, row: number): number;
getRecordIndexByCell(col: number, row: number): number | number[];
getTableIndexByRecordIndex(recordIndex: number | number[]): number;
getTableIndexByField(field: FieldDef): number;
getCellAddrByFieldRecord(field: FieldDef, recordIndex: number | number[]): CellAddress;
getCellOriginRecord(col: number, row: number): MaybePromiseOrUndefined;
getCellRawRecord(col: number, row: number): MaybePromiseOrUndefined;
_canResizeColumn(col: number, row: number): boolean;
updateOption(options: ListTableConstructorOptions, updateConfig?: {
clearColWidthCache?: boolean;
clearRowHeightCache?: boolean;
}): Promise<unknown>;
updatePagination(pagination: IPagination): void;
refreshHeader(): void;
refreshRowColCount(): void;
getFieldData(field: FieldDef | FieldFormat | undefined, col: number, row: number): FieldData;
getRawFieldData(field: FieldDef | FieldFormat | undefined, col: number, row: number): FieldData;
_moveHeaderPosition(source: CellAddress, target: CellAddress): {
sourceIndex: number;
targetIndex: number;
sourceSize: number;
targetSize: number;
moveType: "row" | "column";
};
changeRecordOrder(sourceIndex: number, targetIndex: number): void;
getCellAddress(findTargetRecord: any | ((record: any) => boolean), field: FieldDef): CellAddress;
getCellRangeByField(field: FieldDef, index: number): CellRange | null;
getHierarchyState(col: number, row: number): HierarchyState;
getRecordHierarchyState(col: number, row: number): HierarchyState;
toggleHierarchyState(col: number, row: number, recalculateColWidths?: boolean): void;
setLoadingHierarchyState(col: number, row: number): void;
_refreshHierarchyState(col: number, row: number, recalculateColWidths?: boolean): void;
_hasHierarchyTreeHeader(): boolean;
getMenuInfo(col: number, row: number, type: string): DropDownMenuEventInfo;
_getSortFuncFromHeaderOption(columns: ColumnsDefine | undefined, field: FieldDef, fieldKey?: FieldKeyDef): SortState['orderFn'] | undefined;
updateSortState(sortState: SortState[] | SortState | null, executeSort?: boolean): void;
updateFilterRules(filterRules: FilterRules, options?: {
clearRowHeightCache?: boolean;
clearForceVisibleRecords?: boolean;
onFilterRecordsEnd?: (records: any[]) => any[];
}): void;
getFilteredRecords(): any[];
getCheckboxState(field?: string | number): any[];
getCellCheckboxState(col: number, row: number): boolean | "indeterminate";
getRadioState(field?: string | number): number | boolean | Record<string | number, number | boolean | Record<number, number>>;
getCellRadioState(col: number, row: number): boolean | number;
setCellCheckboxState(col: number, row: number, checked: boolean | 'indeterminate'): void;
setCellRadioState(col: number, row: number, index?: number): void;
getSwitchState(field?: string | number): any[];
getCellSwitchState(col: number, row: number): boolean | "indeterminate";
setCellSwitchState(col: number, row: number, checked: boolean | 'indeterminate'): void;
setRecords(records: Array<any>, option?: {
sortState?: SortState | SortState[] | null;
}): void;
setRecordChildren(records: any[], col: number, row: number, recalculateColWidths?: boolean): void;
startEditCell(col?: number, row?: number, value?: string | number): void;
completeEditCell(): void;
cancelEditCell(): void;
getEditor(col: number, row: number): IEditor<any, any>;
isHasEditorDefine(col: number, row: number): boolean;
changeCellValue(col: number, row: number, value: string | number | null, workOnEditableCell?: boolean, triggerEvent?: boolean, noTriggerChangeCellValuesEvent?: boolean): void;
changeCellValues(startCol: number, startRow: number, values: (string | number)[][], workOnEditableCell?: boolean, triggerEvent?: boolean, noTriggerChangeCellValuesEvent?: boolean): Promise<boolean[][]>;
changeCellValuesByRanges(ranges: CellRange[], value: string | number | null, workOnEditableCell?: boolean, triggerEvent?: boolean, noTriggerChangeCellValuesEvent?: boolean): Promise<void>;
changeSourceCellValue(recordIndex: number | number[], field: FieldDef, value: string | number | null): void;
changeCellValueByRecord(recordIndex: number | number[], field: FieldDef, value: string | number | null, options?: {
triggerEvent?: boolean;
noTriggerChangeCellValuesEvent?: boolean;
autoRefresh?: boolean;
}): void;
changeCellValueBySource(recordIndex: number | number[], field: FieldDef, value: string | number | null, triggerEvent?: boolean, noTriggerChangeCellValuesEvent?: boolean): void;
changeCellValuesByRecords(changeValues: {
recordIndex: number | number[];
field: FieldDef;
value: string | number | null;
}[], options?: {
triggerEvent?: boolean;
noTriggerChangeCellValuesEvent?: boolean;
autoRefresh?: boolean;
}): void;
changeCellValuesBySource(changeValues: {
recordIndex: number | number[];
field: FieldDef;
value: string | number | null;
}[], triggerEvent?: boolean, noTriggerChangeCellValuesEvent?: boolean): void;
refreshAfterSourceChange(options?: {
reapplyFilter?: boolean;
reapplySort?: boolean;
clearRowHeightCache?: boolean;
}): void;
addRecord(record: any, recordIndex?: number | number[], triggerEvent?: boolean): void;
addRecords(records: any[], recordIndex?: number | number[], triggerEvent?: boolean): void;
deleteRecords(recordIndexs: number[] | number[][], triggerEvent?: boolean): void;
updateRecords(records: any[], recordIndexs: (number | number[])[], triggerEvent?: boolean): void;
_hasCustomRenderOrLayout(): boolean;
getAggregateValuesByField(field: string | number): {
col: number;
aggregateValue: {
aggregationType: AggregationType;
value: number | string;
}[];
}[];
isAggregation(col: number, row: number): boolean;
getGroupTitleLevel(col: number, row: number): number | undefined;
getBodyRowIndexByRecordIndex(index: number | number[]): number;
release(): void;
expandAllTreeNode(): void;
collapseAllTreeNode(): void;
mergeCells(startCol: number, startRow: number, endCol: number, endRow: number): void;
unmergeCells(startCol: number, startRow: number, endCol: number, endRow: number): void;
}