UNPKG

zent

Version:

一套前端设计语言和基于React的实现

100 lines (99 loc) 3.97 kB
import { Component } from 'react'; import { ICascaderItem, CascaderValue, ICascaderBaseProps, ICascaderChangeMeta, ICascaderLoadMeta, ICascaderMultipleChangeMeta, CascaderSimplifySelectionMode } from './types'; import { IDisabledContext } from '../disabled'; import { TagsTrigger } from './trigger/TagsTrigger'; import { Forest } from './forest'; import { ICascaderTagsProps } from './trigger/Tags'; export { ICascaderTagsProps }; export interface IMenuCascaderCommonProps extends ICascaderBaseProps { loadOptions?: (selectedOptions: ICascaderItem[] | null, meta: ICascaderLoadMeta) => Promise<void>; expandTrigger?: 'click' | 'hover'; scrollable?: boolean; loadChildrenOnScroll?: boolean; searchable?: boolean; async?: boolean; asyncFilter?: (keyword: string, limit: number) => Promise<Array<ICascaderItem[]>>; filter?: (keyword: string, path: ICascaderItem[]) => boolean; highlight?: (keyword: string, path: ICascaderItem[]) => React.ReactNode; limit?: number; multipleType?: 'normal' | 'checkbox'; maxLine?: number | null; lineHeight?: number; } export interface IMenuCascaderSingleProps extends IMenuCascaderCommonProps { multiple?: false; value?: CascaderValue[]; onChange: (value: CascaderValue[], selectedOptions: ICascaderItem[], meta: ICascaderChangeMeta) => void; changeOnSelect?: boolean; } export interface IMenuCascaderMultipleProps extends IMenuCascaderCommonProps { multiple?: true; value?: Array<CascaderValue[]>; onChange: (value: Array<CascaderValue[]>, selectedOptions: Array<ICascaderItem[]>, meta: ICascaderMultipleChangeMeta) => void; renderTags?: (props: ICascaderTagsProps) => React.ReactNode; simplifySelection?: boolean; simplifySelectionMode?: CascaderSimplifySelectionMode; } export declare type IMenuCascaderProps = IMenuCascaderMultipleProps | IMenuCascaderSingleProps; interface IMenuCascaderState { options: Forest; activeValue: CascaderValue[]; selectedPaths: Array<ICascaderItem[]>; visible: boolean; prevProps: IMenuCascaderProps; keyword: string; isSearching: boolean; searchResultList: Array<ICascaderItem[]>; loading: string[]; } export declare class MenuCascader extends Component<IMenuCascaderProps, IMenuCascaderState> { static defaultProps: { value: any[]; options: any[]; clearable: boolean; multiple: boolean; multipleType: string; maxLine: any; lineHeight: number; expandTrigger: string; scrollable: boolean; loadChildrenOnScroll: boolean; searchable: boolean; async: boolean; limit: number; renderValue: (path: ICascaderItem[]) => string; filter: (keyword: string, path: ICascaderItem[]) => boolean; highlight: (keyword: string, path: ICascaderItem[]) => import("react").ReactNode; simplifySelectionMode: string; }; constructor(props: IMenuCascaderProps); tagsTriggerRef: import("react").RefObject<TagsTrigger>; static contextType: import("react").Context<IDisabledContext>; context: IDisabledContext; static getDerivedStateFromProps(props: IMenuCascaderProps, state: IMenuCascaderState): Partial<IMenuCascaderState>; private get disabled(); private isControlled; private getVisible; private setVisible; private getSelectionMapImpl; private getSelectionMap; private getSimplifySelectionMap; private simplify; private getSearchResultList; private onVisibleChange; private onKeywordChange; private filterOptions; private setSearchState; private onMenuOptionHover; private onMenuOptionClick; private onMenuOptionSelect; private toggleMenuOption; private onSearchOptionClick; private toggleSearchOption; private onClear; private scrollLoad; private onRemove; private renderPopoverContent; render(): JSX.Element; } export default MenuCascader;