import { ReactNode, SyntheticEvent, KeyboardEvent } from 'react'; import { ConfiguredComponent } from '@befe/brick-core'; import { SelectSelectionProps } from '@befe/brick-comp-select'; import { MenuPopperProps } from '@befe/brick-comp-menu'; import { CascadePanel, CascadePanelProps, CascadeOption, CascadeOptionValue, CascadeOptionEnhanced } from './cascade-panel'; type PropsFromCascadePanel = Pick; type PropsFromSelectSelection = Pick; type PropsFromMenuPopper = Pick; export declare const CascadeSizes: readonly ["xs", "sm", "md", "lg"]; export interface CascadeProps extends PropsFromCascadePanel, PropsFromSelectSelection, PropsFromMenuPopper { /** * 自定义 class */ className?: string; /** * 已选择渲染器 */ renderSelected?: (selected: CascadeOption[]) => ReactNode; /** * 尺寸 */ size?: (typeof CascadeSizes)[number]; /** * 多项选择的分隔符 * 使用 config context `selectedSeparator` 作为默认值 * 一个主题下应是统一的,所以不应滥用此配置项 * @private */ selectedSeparator?: string; } export interface CascadeState { value: CascadeOptionValue[][]; options: CascadeOptionEnhanced[]; selected: CascadeOptionEnhanced[]; cascadePanelPopperVisible: boolean; } export declare class Cascade extends ConfiguredComponent { static displayName: string; static defaultProps: { className: string; placement: string; disabled: boolean; withClear: boolean; status: string; harmonizeSelections: boolean; }; componentLocale: import("@befe/brick-core").ComponentLocale<{ en_us: { no_options: string; select_all: string; }; zh_cn: { no_options: string; select_all: string; }; }>; state: CascadeState; refClearBtn: import("react").RefObject; refCascadePanel: import("react").RefObject; constructor(props: CascadeProps); static getDerivedStateFromProps(nextProps: CascadeProps, prevState: CascadeState): Partial | null; get className(): string; get isMultiple(): boolean; get shouldHarmonizeSelections(): boolean; get size(): "sm" | "md" | "xs" | "lg"; get options(): CascadeOptionEnhanced[]; get value(): import("@befe/brick-core").ObjectId[][]; get noOptions(): boolean; get selectedSeparator(): string; get shouldCombineSelected(): boolean; get selectedToDisplay(): CascadeOptionEnhanced[]; get selectedTitle(): string | undefined; get selectedStats(): string | undefined; isOptionSelected(option: CascadeOption): boolean; updateOption(option: CascadeOptionEnhanced): void; handlePopperVisibleChange: (popperVisible: boolean, e?: Event | SyntheticEvent) => void; handleExpand: (value: CascadeOptionValue[], expandedChain: CascadeOption[]) => void; handleClickClear: () => void; handleKeyDown: (e: KeyboardEvent) => void; handleMouseDownCollapsePanel: CascadePanelProps['onMouseDown']; changeSelected: (selected: CascadeOptionEnhanced[]) => void; renderSelectedContent(): ReactNode; renderSelection(): import("react/jsx-runtime").JSX.Element; renderTarget(): import("react/jsx-runtime").JSX.Element; renderPopper(): import("react/jsx-runtime").JSX.Element | null; initOptions(): void; handleOptionsLoaded: (targetOption: CascadeOptionEnhanced) => void; loadOptions(toLoadedChains?: CascadeOptionValue[][]): void; componentDidMount(): void; componentDidUpdate(): void; render(): import("react/jsx-runtime").JSX.Element; } export {};