import type { BBox, Group } from '@antv/g-canvas'; import type { InteractionOptions, InteractionStateInfo, S2CellType, SortParam, ViewMeta } from '../interface'; import type { Node } from '../../facet/layout/node'; import type { PartDrillDownFieldInLevel } from '../../common/interface'; import type { GuiIcon } from '../../common/icons'; import type { S2DataConfig } from './s2DataConfig'; import type { ValueRanges } from './condition'; export interface Selected { type: 'cell' | 'row' | 'brush' | 'col' | 'column' | 'row&col' | 'column-multiple'; indexes: [number | number[], number | number[]]; } export interface ReachedBorderId { rowId?: string; colId?: string; } export interface HiddenColumnsInfo { hideColumnNodes: Node[]; displaySiblingNode: { prev: Node; next: Node; }; } /** * All stored keys need type define here */ export interface StoreKey { scrollX: number; scrollY: number; hRowScrollX: number; sortParam: SortParam; drillDownIdPathMap: Map; drillDownNode: Node; drillItemsNum: number; drillDownFieldInLevel: PartDrillDownFieldInLevel[]; interactionStateInfo: InteractionStateInfo; originalDataCfg: S2DataConfig; panelBBox: BBox; activeResizeArea: Group; valueRanges: ValueRanges; initColumnLeafNodes: Node[]; /** * 隐藏列详情 * | a, b, [c,d 隐藏] [icon e ] , [f 隐藏], [icon g] | */ hiddenColumnsDetail: HiddenColumnsInfo[]; lastRenderedColumnFields: string[]; resized: boolean; visibleActionIcons: GuiIcon[]; lastClickedCell: S2CellType; initOverscrollBehavior: InteractionOptions['overscrollBehavior']; [key: string]: unknown; }