import * as React from "react"; import DropdownItem from "./DropdownItem"; import GroupItem from "./GroupItem"; import { ConfigConsumerProps } from "../Config"; interface IDropdownProps { /** * 触发菜单打开事件 * * @default "hover" **/ trigger?: "hover" | "click"; /** * 自定义样式名称 * * @default "has-border" **/ className?: string; /** * 按钮文案 * * @default "点击下拉" **/ buttonText?: React.ReactNode; /** * 是否选中更新按钮文案 * * @default false **/ updateButtonText?: boolean; /** * 触发菜单打开事件 * * @default true **/ hideOnClick?: boolean; /** * 点击菜单项 触发回调 * * @default () => null **/ onItemSelect?: (...args: any[]) => void; /** * 子内容 * **/ children: React.ReactNode | React.ReactNode[]; /** * 默认前缀 * * @default "lg" **/ prefixCls?: string; /** * 是否不可用 * * @default false **/ disabled?: boolean; /** * 默认当前选中索引 * * @default -1 **/ defaultIndex?: number; /** * 自定义样式 * * @default **/ style?: React.CSSProperties; /** * 触发对象可为按钮、文字、icon 可选:“button“,”text“,"icon" * * @default "button" **/ type?: string; /** * 是否分组 * * @default false **/ hasGroup?: boolean; /** * 是否多层级 * * @default false **/ multiLevel?: boolean; } interface IDropdownState { visible: boolean; currIndex: string; buttonText: string; } declare class Dropdown extends React.PureComponent { static Item: typeof DropdownItem; static GroupItem: typeof GroupItem; static defaultProps: { trigger: string; buttonText: string; hideOnClick: boolean; className: string; onItemSelect: () => null; disabled: boolean; defaultIndex: number; style: {}; type: string; hasGroup: boolean; multiLevel: boolean; updateButtonText: boolean; }; private container; constructor(props: any); componentDidMount(): void; componentWillUnmount(): void; componentWillReceiveProps(nextProps: any): void; /** * 获取容器绑定 clickoutside * @param ref */ getContainer(ref: any): void; /** * hover 触发显示 下拉列表 */ showItems(): void; /** * hover 触发隐藏 下拉列表 */ hideItems(): void; /** * 打开下拉菜单 */ handleClick(): void; /** * click 触发点击其他区域隐藏 下拉列表 */ handleClickOutside(e: any): void; /** * 选中下拉选项后执行函数 * @param clickItemProps 选中下拉项组件 props */ handleDropdownItemClick(clickItemProps: any, e: any): void; renderChildren: (children: any) => any; renderGroup: () => JSX.Element | null; renderList(prefixCls: any): JSX.Element | null; renderDropdown: ({ getPrefixCls }: ConfigConsumerProps) => JSX.Element; render(): JSX.Element; } export default Dropdown;