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 {};