acud
Version:
acg react 组件库
79 lines (78 loc) • 3.51 kB
TypeScript
import React from 'react';
import { SizeType } from '../config-provider/SizeContext';
import { ListRef } from '../virtual-list';
import type { CascaderOption, CascaderFieldNames, CascaderValueType, CascaderMultiValueType, CascaderMultiModeType } from './Cascader';
import { TooltipPlacement } from '../tooltip';
import { CascaderLocaleOmit } from './index';
interface MenusProps {
value?: CascaderMultiValueType;
mode?: CascaderMultiModeType;
size?: SizeType;
keyword?: string;
activeValue?: (string | number)[];
hoveredValue?: (string | number)[];
enableValues?: CascaderMultiValueType;
totalValues?: CascaderMultiValueType;
options?: CascaderOption[];
prefixCls?: string;
transitionName?: string;
popupPlacement?: string;
expandTrigger?: string;
visible?: boolean;
virtual?: boolean;
dropdownMenuColumnStyle?: React.CSSProperties;
defaultFieldNames?: CascaderFieldNames;
fieldNames?: CascaderFieldNames;
expandIcon?: React.ReactNode;
loadingIcon?: React.ReactNode;
menusEdgeBuffer?: number;
withCheckAll?: boolean;
locale?: CascaderLocaleOmit;
titlePlacement?: TooltipPlacement;
dropdownMenuRender?: (menu: React.ReactElement, menuIndex: number, hoveredValue: CascaderValueType) => React.ReactNode;
getEnableValues?: (options?: CascaderOption[]) => void;
getTotalValues?: (options?: CascaderOption[]) => void;
onItemDoubleClick?: (targetOption: string[], index: number, e: React.MouseEvent<HTMLElement>) => void;
onActiveValueSet?: (activeValue: (string | number)[]) => void;
onSelect?: (targetOption: string[], index: number, e: React.KeyboardEvent<HTMLElement>) => void;
onMultiSelect?: (targetOption: CascaderOption, index: number, optionKey: CascaderValueType, e: React.KeyboardEvent<HTMLElement>) => void;
onMultiSelectAll?: any;
onDropdownMenuScroll?: (e: React.UIEvent<HTMLUListElement>, menuIndex: number) => void;
}
interface MenusState {
menuScrollOpen: boolean;
activeValue?: (string | number)[];
}
type MenusType = Record<number, HTMLLIElement>;
type MenuItemsType = Record<number, HTMLLIElement>;
type VMenusType = Record<number, ListRef>;
declare class Menus extends React.Component<MenusProps, MenusState> {
menuWrap: HTMLLIElement;
menus: MenusType;
vMenus: VMenusType;
menuItems: MenuItemsType;
delayTimer: number;
static defaultProps: MenusProps;
constructor(props: any);
componentDidUpdate(prevProps: MenusProps): void;
isStatusOption(statusValue: any[], option: any, menuIndex: any): boolean;
isActiveOption(value: any, optionValue: any): boolean;
getFieldName(name: any): any;
getOption(option: CascaderOption, menuIndex: number): React.JSX.Element;
getCheckAllOption(menuIndex: number): React.JSX.Element;
getActiveOptions(values?: CascaderOption[]): CascaderOption[];
getShowOptions(): CascaderOption[][];
delayOnEvent(onEvent: any, ...args: any[]): void;
saveMenuWrap: (menuWrap: any) => void;
saveMenus: (menuIndex: any) => (menus: any) => void;
saveVMenus: (menuIndex: any) => (menus: any) => void;
saveMenuItems: (index: any) => (node: any) => void;
scrollActiveItemToView(): void;
setMenuPosition(callback?: () => void): void;
handleMenuScrollChange(menuScrollOpen: any): void;
handleMenuScroll: (menuIndex: any) => (e: any) => void;
onShowActive: () => void;
onShowEnd: () => void;
render(): React.JSX.Element;
}
export default Menus;