zent
Version:
一套前端设计语言和基于React的实现
42 lines (41 loc) • 1.76 kB
TypeScript
import { Component } from 'react';
import { IMenuListItem } from './MenuListItem';
export interface ISelectMenuItem extends IMenuListItem {
searchContent?: React.ReactNode;
items?: ISelectMenuItem[];
}
export interface ISelectMenuNestedItem extends ISelectMenuItem {
idx: number;
parentIndexes: number[];
items?: ISelectMenuNestedItem[];
}
export interface ISelectMenuProps {
value?: unknown;
searchText?: string;
items: ISelectMenuItem[];
onSelect?: (value: unknown, item: ISelectMenuItem) => void;
filterOption?: (searchText: string, item: ISelectMenuItem) => void;
onRequestClose?: () => void;
nullOptionContent?: React.ReactNode;
nullOption: boolean;
}
export interface ISelectMenuState {
items: IMenuListItem[];
}
export declare function caselessMatchFilterOption(searchText: string, item: ISelectMenuItem): boolean;
export declare class SelectMenu extends Component<ISelectMenuProps, ISelectMenuState> {
static defaultProps: {
filterOption: typeof caselessMatchFilterOption;
nullOption: boolean;
};
static caselessMatchFilterOption: typeof caselessMatchFilterOption;
private refMenuItemList;
wrapWithIdx: (items?: ISelectMenuItem[], parentIndexes?: number[]) => ISelectMenuNestedItem[];
wrapWithNullOption: (items?: ISelectMenuNestedItem[], nullOptionContent?: React.ReactNode) => ISelectMenuNestedItem[];
wrapWithValueCallback: (items?: ISelectMenuNestedItem[]) => any;
transformItems: (items: ISelectMenuItem[], nullOption: boolean, nullOptionContent?: React.ReactNode) => ISelectMenuNestedItem[];
moveFocusIndexDown: () => void;
moveFocusIndexUp: () => void;
selectCurrentFocusIndex: (e: any) => void;
render(): JSX.Element;
}