/** * * This file may have been modified by Bytedance Inc. (“Bytedance Inc.'s Modifications”). * All Bytedance Inc.'s Modifications are Copyright (year) Bytedance Inc.. * * This source code is licensed under the Apache license. * See LICENSE file in the project root for license information. * */ import * as React from 'react'; import { BuildInPlacements, TriggerProps } from 'rc-trigger'; export interface CascaderFieldNames { value?: string | number; label?: string; children?: string; [key: string]: any; } export declare type CascaderValueType = (string | number)[]; export interface CascaderOption { value?: string | number; label?: React.ReactNode; disabled?: boolean; isLeaf?: boolean; loading?: boolean; children?: CascaderOption[]; [key: string]: any; } export interface CascaderProps extends Pick { value?: CascaderValueType | CascaderValueType[]; defaultValue?: CascaderValueType | CascaderValueType[]; options?: CascaderOption[]; cacheOptions?: CascaderOption[]; multiple?: boolean; onChange?: (value: CascaderValueType | CascaderValueType[], selectOptions: CascaderOption[]) => void; onPopupVisibleChange?: (popupVisible: boolean) => void; popupVisible?: boolean; disabled?: boolean; transitionName?: string; popupClassName?: string; popupPlacement?: string; prefixCls?: string; dropdownMenuColumnStyle?: React.CSSProperties; dropdownRender?: (menu: React.ReactElement) => React.ReactElement; labelRender?: (menu: CascaderOption) => React.ReactElement; builtinPlacements?: BuildInPlacements; loadData?: (selectOptions: CascaderOption[]) => void; changeOnSelect?: boolean; children?: React.ReactElement; onKeyDown?: (e: React.KeyboardEvent) => void; expandTrigger?: string; fieldNames?: CascaderFieldNames; filedNames?: CascaderFieldNames; expandIcon?: React.ReactNode; loadingIcon?: React.ReactNode; onlyCheckLeaf?: boolean; showItemStrategy?: 'default' | 'child'; showAllCheckbox?: boolean; allCheckboxText?: string; searchInMenu?: boolean; searchPlaceholder?: string; searchValue?: string; setSearchValue?: (e: React.ChangeEvent) => void; checkboxRender?: (option: CascaderOption) => boolean; } interface CascaderState { popupVisible?: boolean; activeValue?: CascaderValueType; multipleValue?: CascaderValueType[]; value?: CascaderValueType | CascaderValueType[]; prevProps?: CascaderProps; } declare class Cascader extends React.Component { defaultFieldNames: { [key: string]: any; }; trigger: any; constructor(props: CascaderProps); static defaultProps: CascaderProps; static getDerivedStateFromProps(nextProps: CascaderProps, prevState: CascaderState): CascaderState; getPopupDOMNode(): any; getFieldName(name: string): string; getFieldNames(): CascaderFieldNames; getCurrentLevelOptions(): CascaderOption[]; getActiveOptions(activeValue: CascaderValueType): CascaderOption[]; setPopupVisible: (popupVisible: boolean) => void; handleChange: (options: CascaderOption[], { visible }: { visible: boolean; }, e: React.KeyboardEvent) => void; handlePopupVisibleChange: (popupVisible: boolean) => void; handleMenuSelect: (targetOption: CascaderOption, menuIndex: number, e: React.KeyboardEvent) => void; onMultipleSelect: (targetOption: CascaderOption, selectItem: CascaderValueType, groupMultipleValue?: CascaderValueType[] | undefined, groupCB?: ((mValue: CascaderValueType[]) => void) | undefined) => void; onMultipleShowChildSelect: (targetOption: CascaderOption, selectItem: CascaderValueType, multipleValue: CascaderValueType[]) => any[]; onMultipleDefaultSelect: (targetOption: CascaderOption, selectItem: CascaderValueType, multipleValue: CascaderValueType[]) => CascaderValueType[]; onMultipleCancel: (targetOption: CascaderOption, cancelItem: CascaderValueType, groupMultipleValue?: CascaderValueType[] | undefined, groupCB?: ((mValue: CascaderValueType[]) => void) | undefined) => void; onMultipleGroupCancel: (options: CascaderOption[]) => void; onMultipleGroupSelect: (options: CascaderOption[]) => void; parentActiveCancel: (option: CascaderOption[], newSelectArr: CascaderValueType[]) => CascaderValueType[]; childrenActiveMerge: (option: CascaderOption[], newSelectArr: CascaderValueType[]) => CascaderValueType[]; handleItemDoubleClick: () => void; handleKeyDown: (e: React.KeyboardEvent) => void; saveTrigger: (node: any) => void; render(): JSX.Element; } export default Cascader;