import { CSSProperties } from 'react'; import { TriggerProps } from '../trigger/interface'; import { type SizeType } from '../config-provider'; /** * @title Menu */ export interface NavMenuContextData { expendMenuIcon: React.ReactNode | string | null; } export interface NavMenuProps { className?: string | string[]; size?: SizeType; style?: CSSProperties; /** * 模式 */ mode?: 'horizontal' | 'inline' | 'vertical'; /** * 菜单 */ item?: NavMenuItem[]; /** * 默认展开的keys */ defaultOpenKeys?: string[]; /** * 是否支持多选 * @defaultValue false */ multiple?: boolean; /** * mode不为inline时生效 子菜单触发方式 * @defaultVaule hover */ triggerSubMenuAction?: 'hover' | 'click'; openKeys?: string[]; expendMenuIcon?: React.ReactNode | string | null; defaultSelectedKeys?: string[]; selectedKeys?: string[]; onClick?: (event: any) => void; onOpenChange?: (event: string[]) => void; } export interface NavMenuItem { label: string; key: string | number; type?: 'group' | void; trigger?: TriggerProps; icon?: React.ReactNode | string; disabled?: boolean; children?: NavMenuItem[]; itemIcon?: React.ReactNode; eventKey?: string; convertItemsToNodes?: (children: NavMenuItem) => any; [prosName: string]: any; }