70 lines
2.6 KiB
TypeScript
70 lines
2.6 KiB
TypeScript
import * as PropTypes from 'prop-types';
|
|
import * as React from 'react';
|
|
import { renderSelect, valueType } from './PropTypes';
|
|
export interface IMenuEvent {
|
|
key: string;
|
|
item: React.ReactNode;
|
|
domEvent: Event;
|
|
selectedKeys: string[];
|
|
}
|
|
export interface IDropdownMenuProps {
|
|
ariaId: string;
|
|
defaultActiveFirstOption: boolean;
|
|
value: valueType;
|
|
dropdownMenuStyle: React.CSSProperties;
|
|
multiple: boolean;
|
|
onPopupFocus: React.FocusEventHandler<HTMLDivElement>;
|
|
onPopupScroll: React.UIEventHandler<HTMLDivElement>;
|
|
onMenuDeselect: (e: {
|
|
item: any;
|
|
domEvent: KeyboardEvent;
|
|
}) => void;
|
|
onMenuSelect: (e: {
|
|
item: any;
|
|
domEvent: KeyboardEvent;
|
|
}) => void;
|
|
prefixCls: string;
|
|
menuItems: JSX.Element[];
|
|
inputValue: string | string[];
|
|
visible: boolean;
|
|
firstActiveValue: valueType;
|
|
menuItemSelectedIcon: renderSelect;
|
|
backfillValue: string;
|
|
}
|
|
export default class DropdownMenu extends React.Component<Partial<IDropdownMenuProps>> {
|
|
static displayName: string;
|
|
static propTypes: {
|
|
ariaId: PropTypes.Requireable<string>;
|
|
defaultActiveFirstOption: PropTypes.Requireable<boolean>;
|
|
value: PropTypes.Requireable<any>;
|
|
dropdownMenuStyle: PropTypes.Requireable<object>;
|
|
multiple: PropTypes.Requireable<boolean>;
|
|
onPopupFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
onPopupScroll: PropTypes.Requireable<(...args: any[]) => any>;
|
|
onMenuDeSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
onMenuSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
prefixCls: PropTypes.Requireable<string>;
|
|
menuItems: PropTypes.Requireable<any>;
|
|
inputValue: PropTypes.Requireable<string>;
|
|
visible: PropTypes.Requireable<boolean>;
|
|
firstActiveValue: PropTypes.Requireable<string>;
|
|
menuItemSelectedIcon: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
|
|
};
|
|
rafInstance: {
|
|
cancel: () => void;
|
|
};
|
|
lastInputValue: string | string[] | undefined;
|
|
saveMenuRef: any;
|
|
menuRef: any;
|
|
lastVisible: boolean;
|
|
firstActiveItem: any;
|
|
constructor(props: Partial<IDropdownMenuProps>);
|
|
componentDidMount(): void;
|
|
shouldComponentUpdate(nextProps: Partial<IDropdownMenuProps>): boolean;
|
|
componentDidUpdate(prevProps: Partial<IDropdownMenuProps>): void;
|
|
componentWillUnmount(): void;
|
|
scrollActiveItemToView: () => void;
|
|
renderMenu: () => JSX.Element | null;
|
|
render(): JSX.Element | null;
|
|
}
|