/** * @file Cascader * @author fex */ /// import React from 'react'; import { Option, Options } from './Select'; import type { OptionsControlProps } from 'amis-core'; export type CascaderOption = { text?: string; value?: string | number; color?: string; disabled?: boolean; children?: Options; className?: string; [key: string]: any; }; export interface CascaderProps extends OptionsControlProps { cascade?: boolean; noResultsText?: string; withChildren?: boolean; onlyChildren?: boolean; hideNodePathLabel?: boolean; useMobileUI?: boolean; value?: (number | string)[]; activeColor?: string; optionRender?: ({ option, selected }: { option: CascaderOption; selected: boolean; }) => React.ReactNode; onClose?: () => void; onConfirm?: (param: any) => void; multiple?: boolean; } export type CascaderTab = { options: Options; }; export interface CascaderState { selectedOptions: Options; activeTab: number; tabs: Array<{ options: Options; }>; disableConfirm: boolean; } export declare class Cascader extends React.Component { static defaultProps: { labelField: string; valueField: string; }; tabsRef: React.RefObject; tabRef: React.RefObject; constructor(props: CascaderProps); componentDidMount(): void; handleTabSelect(index: number): void; getOptionParent(option: Option): any; dealParentSelect(option: Option, selectedOptions: Options): Options; flattenTreeWithLeafNodes(option: Option): any[]; adjustOptionSelect(option: Option): boolean; getSelectedChildNum(option: Option): number; dealOptionDisable(selectedOptions: Options): void; dealChildrenSelect(option: Option, selectedOptions: Options): Options; getParentTree: (option: Option, arr: Options) => Options; onSelect(option: CascaderOption, tabIndex: number): void; onNextClick(option: CascaderOption, tabIndex: number): void; getSubmitOptions(selectedOptions: Options): Options; confirm(): void; getSelectedOptions(): Option[]; renderOption(option: CascaderOption, tabIndex: number): JSX.Element; renderOptions(options: Options, tabIndex: number): JSX.Element; renderTabs(): JSX.Element; render(): JSX.Element; } declare const _default: { new (props: Omit & import("amis-core/lib/theme").ThemeOutterProps): { ref: any; childRef(ref: any): void; getWrappedInstance(): any; render(): JSX.Element; context: any; setState(state: {} | ((prevState: Readonly<{}>, props: Readonly & import("amis-core/lib/theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void; forceUpdate(callback?: (() => void) | undefined): void; readonly props: Readonly & import("amis-core/lib/theme").ThemeOutterProps> & Readonly<{ children?: import("react").ReactNode; }>; state: Readonly<{}>; refs: { [key: string]: import("react").ReactInstance; }; componentDidMount?(): void; shouldComponentUpdate?(nextProps: Readonly & import("amis-core/lib/theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean; componentWillUnmount?(): void; componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void; getSnapshotBeforeUpdate?(prevProps: Readonly & import("amis-core/lib/theme").ThemeOutterProps>, prevState: Readonly<{}>): any; componentDidUpdate?(prevProps: Readonly & import("amis-core/lib/theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void; componentWillMount?(): void; UNSAFE_componentWillMount?(): void; componentWillReceiveProps?(nextProps: Readonly & import("amis-core/lib/theme").ThemeOutterProps>, nextContext: any): void; UNSAFE_componentWillReceiveProps?(nextProps: Readonly & import("amis-core/lib/theme").ThemeOutterProps>, nextContext: any): void; componentWillUpdate?(nextProps: Readonly & import("amis-core/lib/theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void; UNSAFE_componentWillUpdate?(nextProps: Readonly & import("amis-core/lib/theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void; }; displayName: string; contextType: import("react").Context; ComposedComponent: import("react").ComponentType & { themeKey?: string | undefined; }>; } & import("hoist-non-react-statics").NonReactStatics & { themeKey?: string | undefined; }, {}> & { ComposedComponent: import("react").ComponentType & { themeKey?: string | undefined; }; }; export default _default;