@antv/s2
Version:
effective spreadsheet render core lib
85 lines (84 loc) • 2.42 kB
TypeScript
import type { CustomHeaderField, CustomTreeNode } from '../../common/interface';
import type { PivotMeta } from '../../data-set/interface';
import type { SpreadSheet } from '../../sheet-type';
import type { Hierarchy } from '../layout/hierarchy';
import type { Node } from '../layout/node';
import type { TotalClass } from '../layout/total-class';
import type { TotalMeasure } from '../layout/total-measure';
export type FieldValue = string | TotalClass | TotalMeasure;
export interface BuildHeaderParams {
isRowHeader: boolean;
isTreeHierarchy?: boolean;
spreadsheet: SpreadSheet;
}
export interface GridHeaderParams {
spreadsheet: SpreadSheet;
addTotalMeasureInTotal: boolean;
addMeasureInTotalQuery: boolean;
parentNode: Node;
currentField: string;
fields: string[];
hierarchy: Hierarchy;
}
export interface BuildHeaderResult {
leafNodes: Node[];
hierarchy: Hierarchy;
}
export interface TotalParams {
isFirstField: boolean;
currentField: string;
lastField: string;
fieldValues: FieldValue[];
spreadsheet: SpreadSheet;
}
export interface HeaderNodesParams extends GridHeaderParams {
fieldValues: FieldValue[];
level: number;
query: Record<string, any>;
handler: (params: HeaderNodesParams) => void;
}
export interface HeaderParams {
isValueInCols: boolean;
moreThanOneValue: boolean;
hierarchy: Hierarchy;
rootNode: Node;
spreadsheet: SpreadSheet;
fields: CustomHeaderField[];
isRowHeader: boolean;
isCustomTreeFields: boolean;
}
export interface TreeHeaderParams {
spreadsheet: SpreadSheet;
parentNode: Node;
hierarchy: Hierarchy;
currentField: string;
level: number;
pivotMeta: PivotMeta;
}
export interface TableHeaderParams {
spreadsheet: SpreadSheet;
parentNode: Node;
hierarchy: Hierarchy;
}
export interface ViewCellHeights {
getCellOffsetY: (index: number) => number;
getTotalHeight: () => number;
getTotalLength: () => number;
getIndexRange: (minHeight: number, maxHeight: number) => {
start: number;
end: number;
};
}
export interface CustomTreeHeaderParams {
spreadsheet: SpreadSheet;
parentNode: Node;
level: number;
hierarchy: Hierarchy;
tree: CustomTreeNode[];
isRowHeader: boolean;
}
export interface WhetherLeafParams {
spreadsheet: SpreadSheet;
fields: string[];
level: number;
}