import { Component, ContextType, ReactNode, HTMLAttributes } from 'react'; import { MenuItemId } from './common'; import { MenuContext, MenuContextValue } from './menu-context'; type PropsFromMenuContextValue = Pick; type PropsFromHTMLUListElement = Pick, 'onMouseDown'>; export interface MenuProps extends PropsFromMenuContextValue, PropsFromHTMLUListElement { /** * 自定义 class */ className?: string; /** * 点选 item 的回调 */ onSelect?: (id: MenuItemId, selectedIds: MenuItemId[], currentSelectedIds: MenuItemId[]) => void; /** * 反选 item 的回调 */ onDeselect?: (id: MenuItemId, selectedIds: MenuItemId[], currentSelectedIds: MenuItemId[]) => void; /** * selectIds 变化时的回调 * select / deselect 均会调用 */ onChangeSelectedIds?: (selectedIds: MenuItemId[]) => void; /** * 子菜单展开时的回调 */ onExpand?: (id: MenuItemId, expandedIds: MenuItemId[], currentExpandedIds: MenuItemId[]) => void; /** * 子菜单折叠时的回调 */ onCollapse?: (id: MenuItemId, expandedIds: MenuItemId[], currentExpandedIds: MenuItemId[]) => void; /** * expandedIds 变化时的回调 * expand / collapse 均会调用 */ onChangeExpandedIds?: (expandedIds: MenuItemId[]) => void; /** * (暂定)使用反色,适用于深色背景色上 */ reverseColor?: boolean; } interface MenuState { cursorId: MenuItemId | null; selectedIds: MenuItemId[]; expandedIds: MenuItemId[]; } export declare class Menu extends Component { static displayName: string; static defaultProps: { className: string; layout: string; size: string; multiple: boolean; multipleItemType: string; reverseColor: boolean; folderToggleSpot: string; submenuType: string; submenuPopperTriggerType: string; }; static contextType: import("react").Context; static getDerivedStateFromProps(nextProps: MenuProps): Partial | null; context: ContextType; state: MenuState; get size(): "md" | "lg"; get type(): "nav" | "common"; get contextValue(): MenuContextValue; get withPrefixIcon(): boolean; handleItemClick: (id: MenuItemId) => void; handleClickSubmenuToggle: (id: MenuItemId) => void; moveCursor: (cursorId: MenuItemId | null) => void; getChildrenArray(children: ReactNode): ReactNode[]; getContextValue(): MenuContextValue; toggleSelected(id?: MenuItemId | null): void; toggleExpanded(id: MenuItemId): void; setSelectIds(selectedIds: MenuItemId[]): void; setExpandedIds(expandedIds: MenuItemId[]): void; renderMenu: () => import("react/jsx-runtime").JSX.Element; render(): import("react/jsx-runtime").JSX.Element; } export {};