import { TooltipProps } from 'antd'; import { CSSProperties, ReactNode } from 'react'; import { MenuInfo } from 'rc-menu/lib/interface'; export declare type IOperationIconPlacement = 'top' | 'bottom' | 'left' | 'right'; export declare type IOperationItemDirection = 'horizontal' | 'vertical'; export declare type Functional = T | (() => T); export interface IOperationChildItem { /** * @description key * @default */ key: string; /** * @description 图标 * @default */ icon?: Functional; /** * @description 文本 * @default */ label?: Functional; /** * @description 是否激活 * @default */ active?: Functional; /** * @description 是否禁用 * @default */ disabled?: Functional; /** * @description 自定义类名 * @default - */ className?: string; /** * @description 自定义渲染结构 * @default */ render?: (child: IOperationChildItem, operation: IOperationItem) => string | ReactNode; /** * @description 点击事件 * @default */ onClick?(child: IOperationChildItem, operation: IOperationItem, info: MenuInfo): void; } export interface IOperationItem { /** * @description key * @default */ key: string; /** * @description 图标 * @default */ icon?: Functional; /** * @description 图标位置 * @default top */ iconPlacement?: Functional; /** * @description 文本 * @default */ label?: Functional; /** * @description 是否使用 divider * @default */ divider?: boolean | { short?: boolean; style?: CSSProperties; className?: string; }; /** * @description tooltip * @default */ tooltip?: Functional; /** * @description tooltipProps * @default */ tooltipProps?: TooltipProps; /** * @description 是否显示 * @default true */ visible?: Functional; /** * @description 是否激活 * @default */ active?: Functional; /** * @description 是否禁用 * @default */ disabled?: Functional; /** * @description 自定义下拉图标 * @default */ dropdownIcon?: Functional; /** * @description 是否显示下拉图标 * @default */ dropdownIconVisible?: Functional; /** * @description 自定义样式 * @default - */ style?: CSSProperties; /** * @description 自定义类名 * @default - */ className?: string; /** * @description 子项 * @default */ children?: IOperationChildItem[]; /** * @description 自定义渲染结构 * @default */ render?: (o: IOperationItem) => string | ReactNode; /** * @description 点击事件 * @default */ onClick?(operation: IOperationItem, event: React.MouseEvent): void; /** * @description mousedown * @default */ onMouseDown?(operation: IOperationItem, event: React.MouseEvent): void; } export declare type IOperations = IOperationItem[];