UNPKG

@antv/s2

Version:

effective spreadsheet render core lib

54 lines (53 loc) 1.92 kB
import { Group } from '@antv/g'; import type { S2CellType } from '../../common'; import type { Node } from '../layout/node'; import type { BaseHeaderConfig } from './interface'; /** * New Base Header for all headers(cornerHeader, rowHeader, colHeader) * NOTE: Do not use this.cfg(which lays in group) to get header config, * use @see headerConfig instead */ export declare abstract class BaseHeader<T extends BaseHeaderConfig> extends Group { protected scrollGroup: Group; protected frozenGroup: Group; protected frozenTrailingGroup: Group; protected extraFrozenNodes: Node[]; protected abstract initGroups(): void; protected abstract layout(): void; protected abstract offset(): void; protected abstract clip(): void; protected abstract getCellInstance(node: Node): S2CellType; protected headerConfig: T; constructor(config: T); getHeaderConfig(): T; render(type?: string): void; /** * Scroll header group's x,y * @param scrollX hScrollBar horizontal offset * @param scrollY hScrollBar vertical offset * @param type */ onScrollXY(scrollX: number, scrollY: number, type?: string): void; /** * Only call when hRowScrollBar scrolls * @param rowHeaderScrollX hRowScrollbar horizontal offset * @param type */ onRowScrollX(rowHeaderScrollX: number, type?: string): void; /** * 清空热区,为重绘做准备,防止热区重复渲染 * @param type 当前重绘的header类型 */ protected clearResizeAreaGroup(type?: string): void; clear(): void; /** * Check whether header cell in viewPort */ protected isHeaderCellInViewport: ({ cellPosition, cellSize, viewportPosition, viewportSize, }: { cellPosition: number; cellSize: number; viewportPosition: number; viewportSize: number; }) => boolean; getNodes(): Node[]; }