@antv/s2
Version:
effective spreadsheet render core lib
118 lines (117 loc) • 3.31 kB
TypeScript
import type { CornerNodeType, HiddenColumnsInfo, S2CellType } from '../../common/interface';
import type { Query } from '../../data-set';
import type { SpreadSheet } from '../../sheet-type';
import type { Hierarchy } from './hierarchy';
export type NodeProperties = {
[K in keyof Node as Node[K] extends (...args: any[]) => any ? never : K]?: Node[K];
};
/**
* Node for cornerHeader, colHeader, rowHeader
*/
export declare class Node {
id: string;
value: string;
field: string;
x: number;
y: number;
width: number;
height: number;
colIndex: number;
level: number;
rowIndex: number;
parent?: Node;
isLeaf: boolean;
isTotals: boolean;
isTotalMeasure: boolean;
isCollapsed: boolean | null;
children: Node[];
padding: number;
hierarchy: Hierarchy;
isPivotMode: boolean;
seriesNumberWidth: number;
/**
* 1. 给序号列单元格用,标识该序号单元格对应了行头节点,有了关联关系后,就可以在行头冻结时做区分
* 2. 给 pivot chart sheet 用,关联当前格子和拆分的 axis 的格子
*/
relatedNode: Node;
spreadsheet: SpreadSheet;
query?: Query;
belongsCell?: S2CellType | null;
inCollapseNode?: boolean;
hiddenColumnsInfo?: HiddenColumnsInfo | null;
cornerType?: CornerNodeType;
isGrandTotals?: boolean;
isSubTotals?: boolean;
isTotalRoot?: boolean;
isFrozenHead?: boolean;
isFrozenTrailing?: boolean;
shallowRender?: boolean;
/** 是否不绘制 col cell 水平 resize 热区 */
hideColCellHorizontalResize?: boolean;
/** 是否不绘制 row cell 竖直 resize 热区 */
hideRowCellVerticalResize?: boolean;
extra: {
description?: string;
isCustomNode?: boolean;
isCustomHeight?: boolean;
[key: string]: any;
};
[key: string]: any;
constructor(cfg: NodeProperties);
/**
* Get node's field path
* eg: node.id = root[&]东北[&]黑龙江
* => [area, province]
* @param node
*/
static getFieldPath(node: Node, isDrillDown?: boolean): string[];
/**
* Get all leaves in this node branch, eg:
* c1
* b1〈
* c2
* a〈
* c3
* b2〈
* c4
* get a branch's all leaves(c1~c4)
* @param node
*/
static getAllLeaveNodes(node: Node): Node[];
/**
* Get all children nodes in this node branch, eg:
* c1
* b1〈
* c2
* a〈
* c3
* b2〈
* c4
* get a branch's all nodes(c1~c4, b1, b2)
* @param node
*/
static getAllChildrenNodes(node: Node, push?: (node: Node) => Node[]): Node[];
/**
* c1
* b1〈
* c2
* a〈
* c3
* b2〈
* c4
* c1 => (a, b1, c1)
* @param node
*/
static getBranchNodes(node: Node): Node[];
static blankNode(): Node;
static rootNode(): Node;
getHeadLeafChild(): Node | undefined;
/**
* 获取树状模式下,当前节点以及其所有子节点的高度总和
*
*/
getTotalHeightForTreeHierarchy(): number;
isSeriesNumberNode(): boolean;
clone(): Node;
get isFrozen(): boolean | undefined;
}