UNPKG

@alifd/next

Version:

A configurable component library for web built on React.

48 lines (47 loc) 2.17 kB
import React, { Component, type MouseEvent, type KeyboardEvent, type ReactNode } from 'react'; import PropTypes from 'prop-types'; import { type ClassPropsWithDefault } from '../../util'; import type { ChildPropsInMenu, SubMenuProps } from '../types'; export type SubMenuWithDefaultsProps = ClassPropsWithDefault<SubMenuProps, typeof SubMenu.defaultProps>; export type SubMenuInMenuProps = ChildPropsInMenu<SubMenuWithDefaultsProps>; export default class SubMenu extends Component<SubMenuProps> { static menuChildType: string; static propTypes: { _key: PropTypes.Requireable<string>; root: PropTypes.Requireable<object>; level: PropTypes.Requireable<number>; inlineLevel: PropTypes.Requireable<number>; groupIndent: PropTypes.Requireable<number>; label: PropTypes.Requireable<PropTypes.ReactNodeLike>; selectable: PropTypes.Requireable<boolean>; mode: PropTypes.Requireable<string>; noIcon: PropTypes.Requireable<boolean>; children: PropTypes.Requireable<PropTypes.ReactNodeLike>; onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>; onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>; subMenuContentClassName: PropTypes.Requireable<string>; triggerType: PropTypes.Requireable<string>; align: PropTypes.Requireable<string>; parentMode: PropTypes.Requireable<string>; parent: PropTypes.Requireable<any>; }; static defaultProps: { groupIndent: number; noIcon: boolean; selectable: boolean; }; readonly props: SubMenuWithDefaultsProps; itemNode: HTMLElement; constructor(props: SubMenuProps); componentDidMount(): void; afterLeave(): void; getOpen(): boolean; handleMouseEnter(e: MouseEvent): void; handleMouseLeave(e: MouseEvent): void; handleClick(e: MouseEvent | KeyboardEvent): void; handleOpen(open: boolean, triggerType?: string, e?: Event): void; passParentToChildren(children: ReactNode): {}[] | null | undefined; renderInline(): React.JSX.Element; renderPopup(): React.JSX.Element; render(): React.JSX.Element; }