import { Component, ContextType, LiHTMLAttributes, MouseEvent } from 'react'; import { GenericCheckboxProps } from '@befe/brick-comp-checkbox'; import { PopoverConfirmProps } from '@befe/brick-comp-popover'; import { SvgFC } from '@befe/brick-core'; import { MenuContext } from './menu-context'; import { MenuItemContentProps } from './menu-item-content'; import { MenuItemId } from './common'; type PropsFromHTMLLIElement = Omit, 'id' | 'prefix' | 'style'>; type PropsFromCheckbox = Pick; type PropsFromMenuItemContent = Pick; export interface MenuItemProps extends PropsFromHTMLLIElement, PropsFromCheckbox, PropsFromMenuItemContent { /** * 自定义 class */ className?: string; /** * 唯一标识 */ id?: MenuItemId; /** * 是否禁用 */ disabled?: boolean; /** * 点击回调 */ onClick?: (e: MouseEvent) => void; /** * 类型(暂定) */ type?: 'normal' | 'checkbox'; /** * 是否选中控制值 * 如不控制,则以是否在 context.selectedIds 进行判断是否选中 */ selected?: boolean; /** * 前缀 icon * 只在第一层 Menu 下有效 */ icon?: SvgFC; /** * 链接跳转的地址 * 若给如非 undefined 的值,将使用 作为 Button 的元素 */ href?: string; /** * 链接跳转的 target */ target?: string; /** * @private 暂不公布,目前仅为 table 操作列需要支持 */ popoverConfirmProps?: PopoverConfirmProps; } export declare class MenuItem extends Component { static displayName: string; static defaultProps: { className: string; disabled: boolean; type: string; }; static contextType: import("react").Context; _id: string; context: ContextType; get id(): MenuItemId; get type(): import("./common").MultipleItemType | undefined; get multiple(): boolean | undefined; get isSelected(): boolean; get checkboxSize(): "md" | "lg" | undefined; get popoverConfirmProps(): PopoverConfirmProps | undefined; handlePopoverConfirmConfirm: PopoverConfirmProps['onConfirm']; handlePopoverConfirmCancel: PopoverConfirmProps['onCancel']; handleClick: (e: MouseEvent) => void; hideMenuPopper(): void; renderPrefix: () => import("react/jsx-runtime").JSX.Element | null; renderContent: () => import("react").ReactNode; renderItemContent: () => import("react/jsx-runtime").JSX.Element; renderMenuItem: () => import("react/jsx-runtime").JSX.Element; render(): import("react/jsx-runtime").JSX.Element; } export {};