UNPKG

@antv/s2

Version:

effective spreadsheet render core lib

118 lines (117 loc) 3.31 kB
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; }