import React from 'react'; import type { Option, Options, PickClassStyleType, RendererProps, SchemaClassName } from 'jamis-core'; export type CascaderOption = { text?: string; value?: string | number; color?: string; disabled?: boolean; children?: Options; className?: SchemaClassName; [key: string]: any; }; export interface CascaderProps extends Omit, PickClassStyleType { cascade?: boolean; noResultsText?: string; withChildren?: boolean; onlyChildren?: boolean; hideNodePathLabel?: boolean; value?: (number | string | Option)[]; 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 default 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; }