@visactor/vtable
Version:
canvas table width high performance
183 lines (182 loc) • 7.92 kB
TypeScript
import type { IStage, IRect, IRectGraphicAttribute } from './../vrender';
import type { CellRange, CellSubLocation } from '../ts-types';
import { type CellAddress, type SortOrder } from '../ts-types';
import type { Group } from './graphic/group';
import type { Icon } from './graphic/icon';
import { TableComponent } from './component/table-component';
import { SceneProxy } from './group-creater/progress/proxy';
import type { BaseTableAPI } from '../ts-types/base-table';
export type MergeMap = Map<string, {
cellWidth: number;
cellHeight: number;
}>;
export declare class Scenegraph {
proxy: SceneProxy;
tableGroup: Group;
colHeaderGroup: Group;
cornerHeaderGroup: Group;
rowHeaderGroup: Group;
bodyGroup: Group;
rightFrozenGroup: Group;
bottomFrozenGroup: Group;
rightTopCornerGroup: Group;
leftBottomCornerGroup: Group;
rightBottomCornerGroup: Group;
componentGroup: Group;
selectedRangeComponents: Map<string, {
rect: IRect;
fillhandle?: IRect;
role: CellSubLocation;
}>;
selectingRangeComponents: Map<string, {
rect: IRect;
fillhandle?: IRect;
role: CellSubLocation;
}>;
customSelectedRangeComponents: Map<string, {
rect: IRect;
role: CellSubLocation;
}>;
lastSelectId: string;
component: TableComponent;
stage: IStage;
table: BaseTableAPI;
isPivot: boolean;
hasFrozen: boolean;
frozenColCount: number;
frozenRowCount: number;
clear: boolean;
mergeMap: MergeMap;
_dealAutoFillHeightOriginRowsHeight: number;
_needUpdateContainer: boolean;
constructor(table: BaseTableAPI);
get width(): number;
get height(): number;
get x(): number;
get y(): number;
get bodyRowStart(): number;
get bodyRowEnd(): number;
get bodyColStart(): number;
get bodyColEnd(): number;
initSceneGraph(): void;
clearCells(): void;
updateStageBackground(): void;
createComponent(): void;
updateComponent(): void;
createSceneGraph(skipRowHeightClear?: boolean): void;
renderSceneGraph(): void;
getCell(col: number, row: number, getShadow?: boolean): Group;
highPerformanceGetCell(col: number, row: number, getShadow?: boolean): Group;
getColGroup(col: number, isCornerOrColHeader?: boolean): Group;
getColGroupInBottom(col: number, isCornerOrColHeader?: boolean): Group | undefined;
getColGroupInLeftBottomCorner(col: number): Group | undefined;
getColGroupInRightTopCorner(col: number): Group | undefined;
getColGroupInRightBottomCorner(col: number): Group | undefined;
getCellSize(col: number, row: number): {
width: number;
height: number;
};
updateNextFrame(): void;
resetAllSelectComponent(): void;
hideHoverIcon(col: number, row: number): void;
showHoverIcon(col: number, row: number): void;
hideClickIcon(col: number, row: number): void;
showClickIcon(col: number, row: number): void;
getIcon(col: number, row: number, x: number, y: number): Icon | undefined;
setIconHoverStyle(icon: Icon, col: number, row: number, cellGroup: Group): void;
updateSortIcon(options: {
col: number;
row: number;
iconMark: Icon;
order: SortOrder;
oldSortCol: number;
oldSortRow: number;
oldIconMark: Icon | undefined;
}): void;
updateFrozenIcon(col: number, oldFrozenCol: number): void;
updateHierarchyIcon(col: number, row: number): void;
setIconNormalStyle(icon: Icon, col: number, row: number): void;
residentHoverIcon(col: number, row: number): void;
resetResidentHoverIcon(col: number, row: number): void;
deactivateChart(col: number, row: number): void;
activateChart(col: number, row: number): any;
removeInteractionBorder(col: number, row: number): void;
createCellSelectBorder(start_Col: number, start_Row: number, end_Col: number, end_Row: number, selectRangeType: CellSubLocation, selectId: string, strokes?: boolean[]): void;
moveSelectingRangeComponentsToSelectedRangeComponents(): void;
deleteLastSelectedRangeComponents(): void;
deleteAllSelectBorder(): void;
updateCellSelectBorder(selectRange: CellRange & {
skipBodyMerge?: boolean;
}, extendSelectRange?: boolean): void;
removeFillHandleFromSelectComponents(): void;
recreateAllSelectRangeComponents(): void;
updateColWidth(col: number, detaX: number, skipUpdateContainer?: boolean, skipTableWidthMap?: boolean): void;
updateChartSizeForResizeColWidth(col: number): void;
updateChartSizeForResizeRowHeight(row: number): void;
updateChartState(datum: any): void;
updateCheckboxCellState(col: number, row: number, checked: boolean | 'indeterminate'): void;
updateHeaderCheckboxCellState(col: number, row: number, checked: boolean | 'indeterminate'): void;
updateAutoColWidth(col: number): void;
recalculateColWidths(): void;
recalculateRowHeights(): void;
resize(): void;
updateTableSize(): void;
updateRowHeight(row: number, detaY: number, skipTableHeightMap?: boolean): void;
updateRowsHeight(rows: number[], detaYs: number[], skipTableHeightMap?: boolean): void;
updateContainerWidth(col: number, detaX: number): void;
_updateContainerHeight(row: number, detaY: number): void;
updateContainerHeight(row: number, detaY: number): void;
setColWidth(col: number, width: number): void;
setRowHeight(row: number, height: number): void;
setX(x: number, isEnd?: boolean): void;
setY(y: number, isEnd?: boolean): void;
setBodyAndRowHeaderY(y: number): void;
setBodyAndColHeaderX(x: number): void;
afterScenegraphCreated(): void;
dealWidthMode(): void;
dealHeightMode(): void;
dealFrozen(): void;
resetFrozen(): void;
resetRowFrozen(): void;
updateCellLayoutWidthCertainWidth(columnGroup: Group, detaRow: number, col: number): boolean;
updateHeaderPosition(updateColStart: number, updateColEnd: number, updateRowStart: number, updateRowEnd: number, moveType: 'column' | 'row'): void;
updateContainerAttrWidthAndX(): void;
updateContainer(async?: boolean): void;
updateContainerSync(): void;
updateCellContentWhileResize(col: number, row: number): void;
createFrameBorder(): void;
getResizeColAt(abstractX: number, abstractY: number, cellGroup?: Group): {
col: number;
row: number;
x?: number;
rightFrozen?: boolean;
};
getResizeRowAt(abstractX: number, abstractY: number, cellGroup?: Group): {
col: number;
row: number;
y?: number;
bottomFrozen?: boolean;
};
updateFrozen(): void;
updateRowFrozen(): void;
dealWidthRightFrozen(rightFrozenColCount: number): void;
dealWidthBottomFrozen(bottomFrozenRowCount: number): void;
updateBorderSizeAndPosition(): void;
sortCell(): void;
getCellOverflowText(col: number, row: number): string | null;
updateDrill(visible: boolean, x: number, y: number, drillDown: boolean, drillUp: boolean): void;
updateCellContent(col: number, row: number, forceFastUpdate?: boolean): Group;
setPixelRatio(pixelRatio: number): void;
updateRow(removeCells: CellAddress[], addCells: CellAddress[], updateCells?: CellAddress[], recalculateColWidths?: boolean, skipUpdateProxy?: boolean): void;
updateCol(removeCells: CellAddress[], addCells: CellAddress[], updateCells?: CellAddress[]): void;
updateCornerHeaderCells(): void;
updateRowHeaderCells(): void;
updateColumnHeaderCells(): void;
getColumnGroupX(col: number): number;
getCellGroupY(row: number): number;
getCellGroupX(col: number): number;
updateDomContainer(): void;
setLoadingHierarchyState(col: number, row: number): void;
temporarilyUpdateSelectRectStyle(rectAttribute: IRectGraphicAttribute): void;
resetSelectRectStyle(): void;
}