import * as React from 'react'; import { noop } from './util'; import { MiniStore, RenderIconType, LegacyFunctionRef, MenuMode, OpenEventHandler, SelectEventHandler, DestroyEventHandler, MenuHoverEventHandler, MenuClickEventHandler, MenuInfo, BuiltinPlacements, TriggerSubMenuAction, HoverEventHandler, MotionType } from './interface'; import { MenuItem } from './MenuItem'; export interface SubMenuProps { parentMenu?: React.ReactElement & { isRootMenu: boolean; subMenuInstance: React.ReactInstance; }; title?: React.ReactNode; children?: React.ReactNode; selectedKeys?: string[]; openKeys?: string[]; onClick?: MenuClickEventHandler; onOpenChange?: OpenEventHandler; rootPrefixCls?: string; eventKey?: string; multiple?: boolean; active?: boolean; onItemHover?: HoverEventHandler; onSelect?: SelectEventHandler; triggerSubMenuAction?: TriggerSubMenuAction; onDeselect?: SelectEventHandler; onDestroy?: DestroyEventHandler; onMouseEnter?: MenuHoverEventHandler; onMouseLeave?: MenuHoverEventHandler; onTitleMouseEnter?: MenuHoverEventHandler; onTitleMouseLeave?: MenuHoverEventHandler; onTitleClick?: (info: { key: React.Key; domEvent: React.MouseEvent | React.KeyboardEvent; }) => void; popupOffset?: number[]; isOpen?: boolean; store?: MiniStore; mode?: MenuMode; manualRef?: LegacyFunctionRef; itemIcon?: RenderIconType; expandIcon?: RenderIconType; inlineIndent?: number; level?: number; subMenuOpenDelay?: number; subMenuCloseDelay?: number; forceSubMenuRender?: boolean; builtinPlacements?: BuiltinPlacements; disabled?: boolean; className?: string; popupClassName?: string; motion?: MotionType; } export declare class SubMenu extends React.Component { static defaultProps: { onMouseEnter: typeof noop; onMouseLeave: typeof noop; onTitleMouseEnter: typeof noop; onTitleMouseLeave: typeof noop; onTitleClick: typeof noop; manualRef: typeof noop; mode: string; title: string; }; constructor(props: SubMenuProps); isRootMenu: boolean; menuInstance: MenuItem; subMenuTitle: HTMLElement; internalMenuId: string; haveRendered: boolean; haveOpened: boolean; /** * Follow timeout should be `number`. * Current is only convert code into TS, * we not use `window.setTimeout` instead of `setTimeout`. */ minWidthTimeout: any; mouseenterTimeout: any; componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; onDestroy: (key: string) => void; /** * note: * This legacy code that `onKeyDown` is called by parent instead of dom self. * which need return code to check if this event is handled */ onKeyDown: React.KeyboardEventHandler; onOpenChange: OpenEventHandler; onPopupVisibleChange: (visible: boolean) => void; onMouseEnter: React.MouseEventHandler; onMouseLeave: React.MouseEventHandler; onTitleMouseEnter: React.MouseEventHandler; onTitleMouseLeave: React.MouseEventHandler; onTitleClick: (e: React.KeyboardEvent | React.MouseEvent) => void; onSubMenuClick: (info: MenuInfo) => void; onSelect: SelectEventHandler; onDeselect: SelectEventHandler; getPrefixCls: () => string; getActiveClassName: () => string; getDisabledClassName: () => string; getSelectedClassName: () => string; getOpenClassName: () => string; saveMenuInstance: (c: MenuItem) => void; addKeyPath: (info: MenuInfo) => { keyPath: (string | number)[]; key: string | number; item: React.ReactInstance; domEvent: React.MouseEvent; }; triggerOpenChange: (open: boolean, type?: string) => void; isChildrenSelected: () => boolean; isOpen: () => boolean; adjustWidth: () => void; saveSubMenuTitle: (subMenuTitle: HTMLElement) => void; renderChildren(children: React.ReactNode): JSX.Element; render(): JSX.Element; } declare const connected: any; export default connected;