@visactor/vtable
Version:
canvas table width high performance
75 lines (74 loc) • 1.84 kB
TypeScript
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[];
};
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 {};