@alifd/next
Version:
A configurable component library for web built on React.
48 lines (47 loc) • 2.17 kB
TypeScript
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;
}