import type { Event as CanvasEvent } from '@antv/g-canvas'; import type { SpreadSheet } from '../../sheet-type'; import type { S2CellType, SortParam } from '../../common/interface'; import type { BaseTooltip } from '../../ui/tooltip'; export declare type TooltipDataItem = Record; export interface TooltipOperatorMenu { key: string; icon?: Element | string; text?: string; onClick?: (cell: S2CellType) => void; visible?: boolean | ((cell: S2CellType) => boolean); children?: TooltipOperatorMenu[]; } export interface TooltipOperatorOptions { onClick?: (...args: unknown[]) => void; menus?: TooltipOperatorMenu[]; } export interface TooltipPosition { x: number; y: number; } export declare type ListItem = { name: string; value: string | number; icon?: Element | string; }; export interface SortQuery { [key: string]: string; } export interface TooltipOptions { hideSummary?: boolean; operator?: TooltipOperatorOptions; enterable?: boolean; isTotals?: boolean; showSingleTips?: boolean; onlyMenu?: boolean; enableFormat?: boolean; } export interface TooltipSummaryOptions { name: string; value: number | string; selectedData: TooltipDataItem[]; } export interface TooltipNameTipsOptions { name?: string; tips?: string; } export interface TooltipOperationOptions { plot: SpreadSheet; sortFieldId: string; sortQuery: SortQuery; } export interface TooltipOperationState { sortParam: SortParam; } export declare type TooltipDetailProps = { list: ListItem[]; }; export declare type TooltipInterpretationOptions = { name: string; icon?: Element | string; text?: string; render?: Element | string; }; export declare type TooltipShowOptions = { position: TooltipPosition; data?: TooltipData; cellInfos?: TooltipDataItem[]; options?: TooltipOptions; content?: ((cell: S2CellType, defaultTooltipShowOptions: TooltipShowOptions) => T) | T; event?: CanvasEvent | MouseEvent; }; export declare type TooltipData = { summaries?: TooltipSummaryOptions[]; details?: ListItem[]; headInfo?: TooltipHeadInfo; name?: string; tips?: string; infos?: string; interpretation?: TooltipInterpretationOptions; colIndex?: number; rowIndex?: number; }; export declare type TooltipHeadInfo = { rows: ListItem[]; cols: ListItem[]; }; export declare type TooltipDataParams = { spreadsheet: SpreadSheet; options?: TooltipOptions; targetCell: S2CellType; getShowValue?: (selectedData: TooltipDataItem[], valueField: string) => string | number; }; export declare type TooltipIconProps = { icon: Element | string; [key: string]: unknown; }; export interface SummaryProps { summaries: TooltipSummaryOptions[]; } export interface SummaryParam extends TooltipDataParams { cellInfos?: TooltipDataItem[]; } export interface TooltipDataParam extends TooltipDataParams { cellInfos: TooltipDataItem[]; } export interface OrderOption { sortMethod: 'ASC' | 'DESC'; type: 'globalAsc' | 'globalDesc' | 'groupAsc' | 'groupDesc' | 'none'; name: string; } export declare type TooltipAutoAdjustBoundary = 'body' | 'container'; export declare type TooltipContentType = Element | string; export interface BaseTooltipConfig { showTooltip?: boolean; content?: TooltipShowOptions['content']; operation?: TooltipOperation; autoAdjustBoundary?: TooltipAutoAdjustBoundary; renderTooltip?: (spreadsheet: SpreadSheet) => BaseTooltip; adjustPosition?: (positionInfo: TooltipPositionInfo) => TooltipPosition; getContainer?: () => HTMLElement; } export interface TooltipPositionInfo { position: TooltipPosition; event: CanvasEvent | MouseEvent; } export interface Tooltip extends BaseTooltipConfig { row?: BaseTooltipConfig; col?: BaseTooltipConfig; corner?: BaseTooltipConfig; data?: BaseTooltipConfig; } export interface TooltipOperation extends TooltipOperatorOptions { hiddenColumns?: boolean; trend?: boolean; sort?: boolean; tableSort?: boolean; } export interface AutoAdjustPositionOptions { position: TooltipPosition; tooltipContainer: HTMLElement; spreadsheet: SpreadSheet; autoAdjustBoundary: TooltipAutoAdjustBoundary; }