@visactor/vtable
Version:
canvas table width high performance
154 lines (153 loc) • 7.02 kB
TypeScript
import type { ListTable } from '../ListTable';
import type { CellAddress, CellRange, CellLocation, IListTableCellHeaderPaths, LayoutObjectId, IRowSeriesNumber } from '../ts-types';
import type { ColumnsDefine } from '../ts-types/list-table/define';
import type { ColumnData, ColumnDefine, HeaderData, LayoutMapAPI, SeriesNumberColumnData, WidthData } from '../ts-types/list-table/layout-map/api';
import type { Aggregator } from '../ts-types/dataset/aggregation';
import { DimensionTree } from './tree-helper';
export declare class SimpleHeaderLayoutMap implements LayoutMapAPI {
private seqId;
private _headerObjects;
private _headerObjectMap;
private _headerObjectsIncludeHided;
private _headerCellIds;
private _columns;
private _columnsIncludeHided;
rowSeriesNumberColumn: SeriesNumberColumnData[];
leftRowSeriesNumberColumn: SeriesNumberColumnData[];
rightRowSeriesNumberColumn: SeriesNumberColumnData[];
leftRowSeriesNumberColumnCount: number;
rightRowSeriesNumberColumnCount: number;
columnTree: DimensionTree;
readonly bodyRowSpanCount: number;
hierarchyIndent?: number;
hierarchyTextStartAlignment?: boolean;
_transpose: boolean;
_showHeader: boolean;
_recordsCount: number;
_table: ListTable;
_hasAggregation: boolean;
_hasAggregationOnTopCount: number;
_hasAggregationOnBottomCount: number;
rowHierarchyType?: 'grid' | 'tree';
_cellRangeMap: Map<string, CellRange>;
constructor(table: ListTable, columns: ColumnsDefine, showHeader: boolean, hierarchyIndent: number);
handleRowSeriesNumber(rowSeriesNumber: IRowSeriesNumber): void;
get transpose(): boolean;
set transpose(_transpose: boolean);
get showHeader(): boolean;
set showHeader(_showHeader: boolean);
isSeriesNumberInHeader(col: number, row: number): boolean;
isSeriesNumberInBody(col: number, row: number): boolean;
isSeriesNumber(col: number, row: number): boolean;
getSeriesNumberHeader(col: number, row: number): SeriesNumberColumnData;
getSeriesNumberBody(col: number, row: number): SeriesNumberColumnData;
isHeader(col: number, row: number): boolean;
isAggregation(col: number, row: number): boolean;
isTopAggregation(col: number, row: number): boolean;
isBottomAggregation(col: number, row: number): boolean;
get hasAggregation(): boolean;
get hasAggregationOnTopCount(): number;
get hasAggregationOnBottomCount(): number;
getAggregatorsByCell(col: number, row: number): any;
getAggregatorsByCellRange(startCol: number, startRow: number, endCol: number, endRow: number): Aggregator[];
getAggregatorOnTop(col: number, row: number): Aggregator;
getAggregatorOnBottom(col: number, row: number): Aggregator;
getAggregatorCellAddress(startCol: number, startRow: number, endCol: number, endRow: number): {
col: number;
row: number;
}[];
getCellLocation(col: number, row: number): CellLocation;
isRowHeader(col: number, row: number): boolean;
isColumnHeader(col: number, row: number): boolean;
isFrozenColumn(col: number, row?: number): boolean;
isRightFrozenColumn(col: number, row?: number): boolean;
isFrozenRow(col: number, row?: number): boolean;
isBottomFrozenRow(col: number, row?: number): boolean;
isLeftTopCorner(col: number, row: number): boolean;
isLeftBottomCorner(col: number, row: number): boolean;
isRightTopCorner(col: number, row: number): boolean;
isRightBottomCorner(col: number, row: number): boolean;
isCornerHeader(col: number, row: number): boolean;
getColumnHeaderRange(): CellRange;
getRowHeaderRange(): CellRange | undefined;
getCornerHeaderRange(): CellRange | undefined;
getBodyRange(): CellRange;
get headerLevelCount(): number;
get columnHeaderLevelCount(): number;
get rowHeaderLevelCount(): number;
get frozenColCount(): number;
get frozenRowCount(): number;
get bottomFrozenRowCount(): number;
get rightFrozenColCount(): number;
get colCount(): number;
get rowCount(): number;
get bodyRowCount(): number;
get bodyColCount(): number;
get recordsCount(): number;
set recordsCount(recordsCount: number);
get headerObjects(): HeaderData[];
get columnObjects(): ColumnData[];
get headerObjectsIncludeHided(): HeaderData[];
get columnWidths(): WidthData[];
getColumnWidthDefined(col: number): WidthData;
getCellId(col: number, row: number): LayoutObjectId;
getHeader(col: number, row: number): HeaderData | SeriesNumberColumnData;
getHeaderField(col: number, row: number): import("../ts-types").FieldDef;
getHeaderCellAdressById(id: number): CellAddress | undefined;
getHeaderCellAddressByField(field: string): CellAddress | undefined;
getBody(col: number, _row: number): ColumnData | SeriesNumberColumnData;
getBodyLayoutRangeById(id: LayoutObjectId): CellRange;
getCellRange(col: number, row: number): CellRange;
isCellRangeEqual(col: number, row: number, targetCol: number, targetRow: number): boolean;
getRecordShowIndexByCell(col: number, row: number): number;
getRecordStartRowByRecordIndex(index: number): number;
private _addHeaders;
private _newRow;
getCellHeaderPaths(col: number, row: number): IListTableCellHeaderPaths;
private getParentCellId;
canMoveHeaderPosition(source: CellAddress, target: CellAddress): boolean;
moveHeaderPosition(source: CellAddress, target: CellAddress): {
sourceIndex: number;
targetIndex: number;
sourceSize: number;
targetSize: number;
moveType: 'column' | 'row';
};
toggleHierarchyState(diffDataIndices: {
add: number[];
remove: number[];
}): {
addCellPositions: {
col: number;
row: number;
}[];
removeCellPositions: {
col: number;
row: number;
}[];
};
setChartInstance(_col: number, _row: number, chartInstance: any): void;
getChartInstance(_col: number, _row: number): any;
checkHasChart(): boolean;
getAxisConfigInPivotChart(col: number, row: number): any;
isEmpty(col: number, row: number): boolean;
isAxisCell(col: number, row: number): boolean;
getChartAxes(col: number, row: number): any[];
isShareChartSpec(col: number, row: number): boolean;
isNoChartDataRenderNothing(col: number, row: number): boolean;
getChartSpec(col: number, row: number): any;
getRawChartSpec(col: number, row: number): any;
getChartDataId(col: number, row: number): any;
release(): void;
clearCellRangeMap(): void;
updateColumnTitle(col: number, row: number, title: string): void;
getColumnByField(field: string | number): {
col: number;
columnDefine: ColumnData;
}[];
getColumnByKey(key: string): {
col: number;
columnDefine: ColumnData;
};
getColumnDefine(col: number, row: number): ColumnDefine | IRowSeriesNumber;
}