import type { ICellHeaderPaths, IDimensionInfo, RectProps } from './common'; import type { CellLocation, FieldData, FieldDef } from './table-engine'; import type { Placement } from './table-engine'; export interface DropDownMenuHighlightInfo { col?: number; row?: number; field?: string | IDimensionInfo[]; menuKey?: string; } type Icon = { width?: number; height?: number; svg?: string; }; export type MenuListItem = string | { text?: string; type?: 'title' | 'item' | 'split'; menuKey?: string; icon?: Icon; selectedIcon?: Icon; stateIcon?: Icon; children?: MenuListItem[]; disabled?: boolean; }; export type PivotInfo = { value: string; dimensionKey: string; isPivotCorner: boolean; customInfo?: any; }; export type MenuInstanceInfo = { type: MenuInstanceType; content: HTMLElement | MenuListItem[]; position?: { x: number; y: number; }; referencePosition?: { rect: RectProps; placement?: Placement; }; pivotInfo?: PivotInfo; }; export type MenuInstanceType = 'dropdown-menu' | 'context-menu' | 'container'; export type DropDownMenuOptions = { content: HTMLElement | MenuListItem[]; position?: { x: number; y: number; }; referencePosition?: { rect: RectProps; placement?: Placement; }; }; export type DropDownMenuEventArgs = { col: number; row: number; menuKey: string; text: string; highlight: boolean; } & DropDownMenuEventInfo; export type DropDownMenuEventInfo = { field?: FieldDef; value?: FieldData; dataValue?: FieldData; subIndex?: number; dimensionKey?: string | number; isPivotCorner?: boolean; customInfo?: any; cellHeaderPaths?: ICellHeaderPaths; cellLocation: CellLocation; event: Event; }; export {};