import { CSSProperties, PropType, VNode } from 'vue'; import type { BasicCascaderInnerData, BasicCascaderProps, BasicScrollPanelProps, BasicTriggerRenderProps, CascaderType } from '@douyinfe/semi-foundation/lib/es/cascader/foundation'; import { ShowNextType } from '@douyinfe/semi-foundation/lib/es/cascader/foundation'; import '@douyinfe/semi-foundation/lib/es/cascader/cascader.css'; import { ValidateStatus } from '../_base/baseComponent'; import { PopoverProps } from '../popover'; import { CascaderData, Entities, Entity, FilterRenderProps } from './item'; import { Position } from '../tooltip/index'; import { AriaAttributes } from '../AriaAttributes'; import { CombineProps, VueJsxNode } from '../interface'; export type { CascaderType, ShowNextType } from '@douyinfe/semi-foundation/lib/es/cascader/foundation'; export type { CascaderData, Entity, Data, CascaderItemProps, FilterRenderProps } from './item'; export interface ScrollPanelProps extends BasicScrollPanelProps { activeNode: CascaderData; } export interface TriggerRenderProps extends BasicTriggerRenderProps { componentProps: CascaderProps; onClear: (e: MouseEvent) => void; } export type SimpleValueType = string | number | CascaderData; export type Value = SimpleValueType | Array | Array>; export interface CascaderProps extends BasicCascaderProps { 'aria-describedby'?: AriaAttributes['aria-describedby']; 'aria-errormessage'?: AriaAttributes['aria-errormessage']; 'aria-invalid'?: AriaAttributes['aria-invalid']; 'aria-labelledby'?: AriaAttributes['aria-labelledby']; 'aria-required'?: AriaAttributes['aria-required']; 'aria-label'?: AriaAttributes['aria-label']; arrowIcon?: VNode | string; clearIcon?: VNode | string; expandIcon?: VNode | string; defaultValue?: Value; dropdownStyle?: CSSProperties; emptyContent?: VNode | string; motion?: boolean; filterTreeNode?: ((inputValue: string, treeNodeString: string, data?: CascaderData) => boolean) | boolean; filterSorter?: (first: CascaderData, second: CascaderData, inputValue: string) => number; filterRender?: (props: FilterRenderProps) => VueJsxNode; treeData?: Array; restTagsPopoverProps?: PopoverProps; children?: VNode | string; value?: Value; prefix?: VNode | string; suffix?: VNode | string; id?: string; insetLabel?: VNode | string; insetLabelId?: string; style?: CSSProperties; bottomSlot?: VNode | string; topSlot?: VNode | string; triggerRender?: (props: TriggerRenderProps) => VueJsxNode; onListScroll?: (e: any, panel: ScrollPanelProps) => void; loadData?: (selectOptions: CascaderData[]) => Promise; onLoad?: (newLoadedKeys: Set, data: CascaderData) => void; onChange?: (value: Value) => void; onExceed?: (checkedItem: Entity[]) => void; displayRender?: (selected: Array | Entity, idx?: number) => VNode | string; onBlur?: (e: MouseEvent) => void; onFocus?: (e: MouseEvent) => void; validateStatus?: ValidateStatus; position?: Position; searchPosition?: string; loadedKeys?: any; autoClearSearchValue?: boolean; } export interface CascaderState extends BasicCascaderInnerData { keyEntities: Entities; prevProps: CascaderProps; treeData?: Array; } export declare const vuePropsType: CombineProps; declare const Index: import("vue").DefineComponent | { type: PropType; default?: any; required?: false; }; 'aria-errormessage': PropType | { type: PropType; default?: any; required?: false; }; 'aria-invalid': PropType | { type: PropType; default?: any; required?: false; }; 'aria-labelledby': PropType | { type: PropType; default?: any; required?: false; }; 'aria-required': PropType | { type: PropType; default?: any; required?: false; }; 'aria-label': PropType | { type: PropType; default?: any; required?: false; }; arrowIcon: PropType> | { type: PropType>; default?: any; required?: false; }; clearIcon: PropType> | { type: PropType>; default?: any; required?: false; }; expandIcon: PropType> | { type: PropType>; default?: any; required?: false; }; defaultValue: PropType | { type: PropType; default?: any; required?: false; }; dropdownStyle: PropType | { type: PropType; default?: any; required?: false; }; emptyContent: PropType> | { type: PropType>; default?: any; required?: false; }; motion: PropType | { type: PropType; default?: any; required?: false; }; filterTreeNode: PropType boolean)> | { type: PropType boolean)>; default?: any; required?: false; }; filterSorter: PropType<(first: CascaderData, second: CascaderData, inputValue: string) => number> | { type: PropType<(first: CascaderData, second: CascaderData, inputValue: string) => number>; default?: any; required?: false; }; filterRender: PropType<(props: FilterRenderProps) => VueJsxNode> | { type: PropType<(props: FilterRenderProps) => VueJsxNode>; default?: any; required?: false; }; treeData: PropType | { type: PropType; default?: any; required?: false; }; restTagsPopoverProps: PropType | { type: PropType; default?: any; required?: false; }; children: PropType> | { type: PropType>; default?: any; required?: false; }; value: PropType | { type: PropType; default?: any; required?: false; }; prefix: PropType> | { type: PropType>; default?: any; required?: false; }; suffix: PropType> | { type: PropType>; default?: any; required?: false; }; id: PropType | { type: PropType; default?: any; required?: false; }; insetLabel: PropType> | { type: PropType>; default?: any; required?: false; }; insetLabelId: PropType | { type: PropType; default?: any; required?: false; }; style: PropType | { type: PropType; default?: any; required?: false; }; bottomSlot: PropType> | { type: PropType>; default?: any; required?: false; }; topSlot: PropType> | { type: PropType>; default?: any; required?: false; }; triggerRender: PropType<(props: TriggerRenderProps) => VueJsxNode> | { type: PropType<(props: TriggerRenderProps) => VueJsxNode>; default?: any; required?: false; }; onListScroll: PropType<(e: any, panel: ScrollPanelProps) => void> | { type: PropType<(e: any, panel: ScrollPanelProps) => void>; default?: any; required?: false; }; loadData: PropType<(selectOptions: CascaderData[]) => Promise> | { type: PropType<(selectOptions: CascaderData[]) => Promise>; default?: any; required?: false; }; onLoad: PropType<(newLoadedKeys: Set, data: CascaderData) => void> | { type: PropType<(newLoadedKeys: Set, data: CascaderData) => void>; default?: any; required?: false; }; onChange: PropType<(value: Value) => void> | { type: PropType<(value: Value) => void>; default?: any; required?: false; }; onExceed: PropType<(checkedItem: Entity[]) => void> | { type: PropType<(checkedItem: Entity[]) => void>; default?: any; required?: false; }; displayRender: PropType<(selected: Array | Entity, idx?: number) => VNode | string> | { type: PropType<(selected: Array | Entity, idx?: number) => VNode | string>; default?: any; required?: false; }; onBlur: PropType<(e: MouseEvent) => void> | { type: PropType<(e: MouseEvent) => void>; default?: any; required?: false; }; onFocus: PropType<(e: MouseEvent) => void> | { type: PropType<(e: MouseEvent) => void>; default?: any; required?: false; }; validateStatus: PropType<"default" | "error" | "warning" | "success"> | { type: PropType<"default" | "error" | "warning" | "success">; default?: any; required?: false; }; position: PropType<"bottom" | "left" | "right" | "top" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver"> | { type: PropType<"bottom" | "left" | "right" | "top" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">; default?: any; required?: false; }; searchPosition: PropType | { type: PropType; default?: any; required?: false; }; loadedKeys: PropType | { type: PropType; default?: any; required?: false; }; autoClearSearchValue: PropType | { type: PropType; default?: any; required?: false; }; borderless: PropType | { type: PropType; default?: any; required?: false; }; mouseEnterDelay: PropType | { type: PropType; default?: any; required?: false; }; mouseLeaveDelay: PropType | { type: PropType; default?: any; required?: false; }; separator: PropType | { type: PropType; default?: any; required?: false; }; changeOnSelect: PropType | { type: PropType; default?: any; required?: false; }; multiple: PropType | { type: PropType; default?: any; required?: false; }; autoMergeValue: PropType | { type: PropType; default?: any; required?: false; }; disabled: PropType | { type: PropType; default?: any; required?: false; }; dropdownClassName: PropType | { type: PropType; default?: any; required?: false; }; filterLeafOnly: PropType | { type: PropType; default?: any; required?: false; }; placeholder: PropType | { type: PropType; default?: any; required?: false; }; searchPlaceholder: PropType | { type: PropType; default?: any; required?: false; }; size: PropType | { type: PropType; default?: any; required?: false; }; className: PropType | { type: PropType; default?: any; required?: false; }; treeNodeFilterProp: PropType | { type: PropType; default?: any; required?: false; }; displayProp: PropType | { type: PropType; default?: any; required?: false; }; maxTagCount: PropType | { type: PropType; default?: any; required?: false; }; max: PropType | { type: PropType; default?: any; required?: false; }; showRestTagsPopover: PropType | { type: PropType; default?: any; required?: false; }; zIndex: PropType | { type: PropType; default?: any; required?: false; }; stopPropagation: PropType | { type: PropType; default?: any; required?: false; }; showClear: PropType | { type: PropType; default?: any; required?: false; }; autoAdjustOverflow: PropType | { type: PropType; default?: any; required?: false; }; defaultOpen: PropType | { type: PropType; default?: any; required?: false; }; onChangeWithObject: PropType | { type: PropType; default?: any; required?: false; }; showNext: PropType | { type: PropType; default?: any; required?: false; }; disableStrictly: PropType | { type: PropType; default?: any; required?: false; }; leafOnly: PropType | { type: PropType; default?: any; required?: false; }; enableLeafClick: PropType | { type: PropType; default?: any; required?: false; }; preventScroll: PropType | { type: PropType; default?: any; required?: false; }; virtualizeInSearch: PropType | { type: PropType; default?: any; required?: false; }; checkRelation: PropType | { type: PropType; default?: any; required?: false; }; onClear: PropType<() => void> | { type: PropType<() => void>; default?: any; required?: false; }; onDropdownVisibleChange: PropType<(visible: boolean) => void> | { type: PropType<(visible: boolean) => void>; default?: any; required?: false; }; getPopupContainer: PropType<() => HTMLElement> | { type: PropType<() => HTMLElement>; default?: any; required?: false; }; onSearch: PropType<(value: string) => void> | { type: PropType<(value: string) => void>; default?: any; required?: false; }; onSelect: PropType<(value: string | number | Array) => void> | { type: PropType<(value: string | number | Array) => void>; default?: any; required?: false; }; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly | { type: PropType; default?: any; required?: false; }; 'aria-errormessage': PropType | { type: PropType; default?: any; required?: false; }; 'aria-invalid': PropType | { type: PropType; default?: any; required?: false; }; 'aria-labelledby': PropType | { type: PropType; default?: any; required?: false; }; 'aria-required': PropType | { type: PropType; default?: any; required?: false; }; 'aria-label': PropType | { type: PropType; default?: any; required?: false; }; arrowIcon: PropType> | { type: PropType>; default?: any; required?: false; }; clearIcon: PropType> | { type: PropType>; default?: any; required?: false; }; expandIcon: PropType> | { type: PropType>; default?: any; required?: false; }; defaultValue: PropType | { type: PropType; default?: any; required?: false; }; dropdownStyle: PropType | { type: PropType; default?: any; required?: false; }; emptyContent: PropType> | { type: PropType>; default?: any; required?: false; }; motion: PropType | { type: PropType; default?: any; required?: false; }; filterTreeNode: PropType boolean)> | { type: PropType boolean)>; default?: any; required?: false; }; filterSorter: PropType<(first: CascaderData, second: CascaderData, inputValue: string) => number> | { type: PropType<(first: CascaderData, second: CascaderData, inputValue: string) => number>; default?: any; required?: false; }; filterRender: PropType<(props: FilterRenderProps) => VueJsxNode> | { type: PropType<(props: FilterRenderProps) => VueJsxNode>; default?: any; required?: false; }; treeData: PropType | { type: PropType; default?: any; required?: false; }; restTagsPopoverProps: PropType | { type: PropType; default?: any; required?: false; }; children: PropType> | { type: PropType>; default?: any; required?: false; }; value: PropType | { type: PropType; default?: any; required?: false; }; prefix: PropType> | { type: PropType>; default?: any; required?: false; }; suffix: PropType> | { type: PropType>; default?: any; required?: false; }; id: PropType | { type: PropType; default?: any; required?: false; }; insetLabel: PropType> | { type: PropType>; default?: any; required?: false; }; insetLabelId: PropType | { type: PropType; default?: any; required?: false; }; style: PropType | { type: PropType; default?: any; required?: false; }; bottomSlot: PropType> | { type: PropType>; default?: any; required?: false; }; topSlot: PropType> | { type: PropType>; default?: any; required?: false; }; triggerRender: PropType<(props: TriggerRenderProps) => VueJsxNode> | { type: PropType<(props: TriggerRenderProps) => VueJsxNode>; default?: any; required?: false; }; onListScroll: PropType<(e: any, panel: ScrollPanelProps) => void> | { type: PropType<(e: any, panel: ScrollPanelProps) => void>; default?: any; required?: false; }; loadData: PropType<(selectOptions: CascaderData[]) => Promise> | { type: PropType<(selectOptions: CascaderData[]) => Promise>; default?: any; required?: false; }; onLoad: PropType<(newLoadedKeys: Set, data: CascaderData) => void> | { type: PropType<(newLoadedKeys: Set, data: CascaderData) => void>; default?: any; required?: false; }; onChange: PropType<(value: Value) => void> | { type: PropType<(value: Value) => void>; default?: any; required?: false; }; onExceed: PropType<(checkedItem: Entity[]) => void> | { type: PropType<(checkedItem: Entity[]) => void>; default?: any; required?: false; }; displayRender: PropType<(selected: Array | Entity, idx?: number) => VNode | string> | { type: PropType<(selected: Array | Entity, idx?: number) => VNode | string>; default?: any; required?: false; }; onBlur: PropType<(e: MouseEvent) => void> | { type: PropType<(e: MouseEvent) => void>; default?: any; required?: false; }; onFocus: PropType<(e: MouseEvent) => void> | { type: PropType<(e: MouseEvent) => void>; default?: any; required?: false; }; validateStatus: PropType<"default" | "error" | "warning" | "success"> | { type: PropType<"default" | "error" | "warning" | "success">; default?: any; required?: false; }; position: PropType<"bottom" | "left" | "right" | "top" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver"> | { type: PropType<"bottom" | "left" | "right" | "top" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">; default?: any; required?: false; }; searchPosition: PropType | { type: PropType; default?: any; required?: false; }; loadedKeys: PropType | { type: PropType; default?: any; required?: false; }; autoClearSearchValue: PropType | { type: PropType; default?: any; required?: false; }; borderless: PropType | { type: PropType; default?: any; required?: false; }; mouseEnterDelay: PropType | { type: PropType; default?: any; required?: false; }; mouseLeaveDelay: PropType | { type: PropType; default?: any; required?: false; }; separator: PropType | { type: PropType; default?: any; required?: false; }; changeOnSelect: PropType | { type: PropType; default?: any; required?: false; }; multiple: PropType | { type: PropType; default?: any; required?: false; }; autoMergeValue: PropType | { type: PropType; default?: any; required?: false; }; disabled: PropType | { type: PropType; default?: any; required?: false; }; dropdownClassName: PropType | { type: PropType; default?: any; required?: false; }; filterLeafOnly: PropType | { type: PropType; default?: any; required?: false; }; placeholder: PropType | { type: PropType; default?: any; required?: false; }; searchPlaceholder: PropType | { type: PropType; default?: any; required?: false; }; size: PropType | { type: PropType; default?: any; required?: false; }; className: PropType | { type: PropType; default?: any; required?: false; }; treeNodeFilterProp: PropType | { type: PropType; default?: any; required?: false; }; displayProp: PropType | { type: PropType; default?: any; required?: false; }; maxTagCount: PropType | { type: PropType; default?: any; required?: false; }; max: PropType | { type: PropType; default?: any; required?: false; }; showRestTagsPopover: PropType | { type: PropType; default?: any; required?: false; }; zIndex: PropType | { type: PropType; default?: any; required?: false; }; stopPropagation: PropType | { type: PropType; default?: any; required?: false; }; showClear: PropType | { type: PropType; default?: any; required?: false; }; autoAdjustOverflow: PropType | { type: PropType; default?: any; required?: false; }; defaultOpen: PropType | { type: PropType; default?: any; required?: false; }; onChangeWithObject: PropType | { type: PropType; default?: any; required?: false; }; showNext: PropType | { type: PropType; default?: any; required?: false; }; disableStrictly: PropType | { type: PropType; default?: any; required?: false; }; leafOnly: PropType | { type: PropType; default?: any; required?: false; }; enableLeafClick: PropType | { type: PropType; default?: any; required?: false; }; preventScroll: PropType | { type: PropType; default?: any; required?: false; }; virtualizeInSearch: PropType | { type: PropType; default?: any; required?: false; }; checkRelation: PropType | { type: PropType; default?: any; required?: false; }; onClear: PropType<() => void> | { type: PropType<() => void>; default?: any; required?: false; }; onDropdownVisibleChange: PropType<(visible: boolean) => void> | { type: PropType<(visible: boolean) => void>; default?: any; required?: false; }; getPopupContainer: PropType<() => HTMLElement> | { type: PropType<() => HTMLElement>; default?: any; required?: false; }; onSearch: PropType<(value: string) => void> | { type: PropType<(value: string) => void>; default?: any; required?: false; }; onSelect: PropType<(value: string | number | Array) => void> | { type: PropType<(value: string | number | Array) => void>; default?: any; required?: false; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default Index;