@antv/s2
Version:
effective spreadsheet render core lib
103 lines (102 loc) • 4.55 kB
TypeScript
import { ColCell, CornerCell, RowCell, SeriesNumberCell } from '../cell';
import { type IconTheme, type ViewMeta } from '../common';
import { CellType } from '../common/constant/interaction';
import type { CellCallbackParams, LayoutResult } from '../common/interface';
import { FrozenFacet } from './frozen-facet';
import type { Hierarchy } from './layout/hierarchy';
import { Node } from './layout/node';
export declare class PivotFacet extends FrozenFacet {
get rowCellTheme(): import("../common").DeepRequired<import("../common").CellTheme>;
protected getCornerCellInstance(...args: CellCallbackParams): CornerCell;
protected getRowCellInstance(...args: CellCallbackParams): RowCell;
protected getColCellInstance(...args: CellCallbackParams): ColCell;
protected doLayout(): LayoutResult;
protected buildAllHeaderHierarchy(): {
rowLeafNodes: Node[];
colLeafNodes: Node[];
rowsHierarchy: Hierarchy;
colsHierarchy: Hierarchy;
};
private getDataQueryInfo;
/**
* 根据行列索引获取单元格元数据
*/
getCellMeta(rowIndex?: number, colIndex?: number): ViewMeta | null;
protected getPreLevelSampleNode(colNode: Node, colsHierarchy: Hierarchy): Node | undefined;
protected calculateHeaderNodesCoordinate(layoutResult: LayoutResult): void;
protected calculateColNodesCoordinate(layoutResult: LayoutResult): void;
protected calculateRowOffsets(): void;
protected adjustColTotalNodesCoordinate(colsHierarchy: Hierarchy): void;
protected calculateColLeafNodesWidth(layoutResult: LayoutResult): void;
protected calculateColNodesHeight(colsHierarchy: Hierarchy): void;
protected getMultipleMap(hierarchy: Hierarchy, isRowHeader?: boolean, isSubTotal?: boolean): number[];
protected adjustTotalNodesCoordinate(params: {
hierarchy: Hierarchy;
isRowHeader?: boolean;
isSubTotal?: boolean;
}): void;
protected getColLeafNodesWidth(colNode: Node, colLeafNodes: Node[], rowLeafNodes: Node[], rowHeaderWidth: number): number;
protected getRowNodeHeight(rowNode: Node): number;
/**
* 获得图标区域预估宽度
* 不考虑用户自定义的 displayCondition 条件
* @param iconStyle 图标样式
* @returns 宽度
*/
protected getExpectedCellIconWidth(cellType: CellType, useDefaultIcon: boolean, iconStyle: IconTheme): number;
protected calculateRowNodesAllLevelSampleNodes(layoutResult: LayoutResult): void;
protected getRowLeafNodeHeight(rowLeafNode: Node): number;
protected calculateRowNodesBBox(rowsHierarchy: Hierarchy): void;
protected calculateRowNodesCoordinate(layoutResult: LayoutResult): void;
protected adjustRowTotalNodesCoordinate(rowsHierarchy: Hierarchy): void;
/**
* @description Auto calculate row no-leaf node's height and y coordinate
* @param rowLeafNodes
*/
protected calculateRowNodeHeightAndY(rowLeafNodes: Node[]): void;
/**
* 计算 grid 模式下 node 宽度
*/
protected getGridRowNodesWidth(node: Node, colLeafNodes: Node[]): number;
/**
* 计算树状模式等宽条件下的列宽
*/
protected getAdaptTreeColWidth(col: Node, colLeafNodes: Node[], rowLeafNodes: Node[]): number;
protected getColLabelLength(col: Node, rowLeafNodes: Node[]): number;
/**
* 计算平铺模式等宽条件下的列宽
*/
protected getAdaptGridColWidth(colLeafNodes: Node[], colNode?: Node, rowHeaderWidth?: number): number;
/**
* 计算树状结构行头宽度
*/
protected getTreeRowHeaderWidth(): number;
/**
* 计算 compact 模式下 node 宽度
*
* | fieldName |
* _______________
* | label - icon | <- node
* | label - icon |
* | label - icon |
*/
protected getCompactGridRowNodeWidth(node: Node): number;
protected getCompactGridColNodeWidth(colNode: Node, rowLeafNodes: Node[]): number;
getViewCellHeights(): {
getTotalHeight: () => number;
getCellOffsetY: (index: number) => number;
getTotalLength: () => number;
getIndexRange: (minHeight: number, maxHeight: number) => {
start: number;
end: number;
};
};
/**
* 获取序号单元格
* @description 对于透视表, 序号属于 RowCell
*/
getSeriesNumberCells(): SeriesNumberCell[];
getFrozenOptions(): Required<import("../common").S2BaseFrozenOptions>;
getContentWidth(): number;
getContentHeight(): number;
}