@antv/s2
Version:
effective spreadsheet render core lib
74 lines (73 loc) • 3.13 kB
TypeScript
import { Group, type LineStyleProps } from '@antv/g';
import type { DataCell } from '../cell';
import type { S2BaseFrozenOptions, SplitLine } from '../common';
import type { FrozenGroups } from '../common/interface/frozen';
import type { SimpleBBox } from '../engine';
import type { Indexes, PanelIndexes } from '../utils/indexes';
import { BaseFacet } from './base-facet';
/**
* Defines the row freeze abstract standard interface
*/
export declare abstract class FrozenFacet extends BaseFacet {
rowOffsets: number[];
frozenGroups: FrozenGroups;
frozenGroupAreas: {
frozenCol: {
width: number;
x: number;
range: number[];
};
frozenTrailingCol: {
width: number;
x: number;
range: number[];
};
frozenRow: {
height: number;
y: number;
range: number[];
};
frozenTrailingRow: {
height: number;
y: number;
range: number[];
};
};
protected validFrozenOptions: Required<S2BaseFrozenOptions>;
panelScrollGroupIndexes: Indexes;
protected initPanelGroups(): void;
/**
* 获取冻结数量结果,主要是针对 col top level 的结果
*/
getFrozenOptions(): Required<S2BaseFrozenOptions>;
calculateFrozenGroupInfo(): void;
protected getFinalViewport(): SimpleBBox;
calculateXYIndexes(scrollX: number, scrollY: number): PanelIndexes;
addDataCell: (cell: DataCell) => void;
addFrozenCell: (colIndex: number, rowIndex: number, group: Group) => void;
protected updateFrozenGroupGrid(): void;
updatePanelScrollGroup(): void;
protected translateRelatedGroups(scrollX: number, scrollY: number, hRowScroll: number): void;
protected translateFrozenGroups: () => void;
protected renderRowResizeArea(): void;
protected renderFrozenGroupSplitLine: (scrollX: number, scrollY: number) => void;
protected getFrozenColSplitLineSize(): {
y: number;
height: number;
};
protected renderFrozenColSplitLine(splitLineGroup: Group, splitLine: SplitLine, verticalBorderStyle: Partial<LineStyleProps>, scrollX: number): void;
protected renderFrozenTrailingColSplitLine(splitLineGroup: Group, splitLine: SplitLine, verticalBorderStyle: Partial<LineStyleProps>, scrollX: number): void;
protected getFrozenRowSplitLineSize(): {
x: number;
width: number;
};
protected renderFrozenRowSplitLine(splitLineGroup: Group, splitLine: SplitLine, horizontalBorderStyle: Partial<LineStyleProps>, scrollY: number): void;
protected renderFrozenTrailingRowSplitLine(splitLineGroup: Group, splitLine: SplitLine, horizontalBorderStyle: Partial<LineStyleProps>, scrollY: number): void;
render(): void;
protected getCenterFrameScrollX(scrollX: number): number;
protected renderFrozenPanelCornerGroup: () => void;
getTotalHeightForRange: (start: number, end: number) => number;
protected getDefaultCellHeight(): number;
protected getShadowFill: (angle: number) => string;
protected clip(): void;
}