import type { ScrollbarDirection } from "element-plus"; import type { ElSelectorModelValue, ElSelectorOutput, ElSelectorValue } from "../../select/src/select.type"; import type { PagedInput, PagedResult } from "../../table"; export { SelectV2Props } from "../../../internal/props"; export type { Props } from "../../../internal/props"; /** 底层虚拟化选择器的运行时 Emits 定义。 */ export declare const selectV2Emits: { "update:modelValue": (_value: ElSelectorModelValue) => boolean; change: (_value: ElSelectorModelValue) => boolean; "end-reached": (_direction: ScrollbarDirection) => boolean; "remove-tag": (_value: ElSelectorValue) => boolean; "visible-change": (_visible: boolean) => boolean; focus: (_event: FocusEvent) => boolean; blur: (_event: FocusEvent) => boolean; clear: () => boolean; }; /** FaSelectV2 的运行时 Props 定义 */ export declare const faSelectV2Props: { /** 是否禁用选择器;未指定时继承 ElForm 的禁用状态。 */ disabled: { type: BooleanConstructor; default: undefined; }; /** 远程数据加载时显示的文本;默认显示“加载中...”。 */ loadingText: { type: StringConstructor; default: string; }; /** 筛选结果为空时显示的文本,也可通过 empty 插槽替换。 */ noMatchText: { type: StringConstructor; default: string; }; /** 没有可选数据时显示的文本,也可通过 empty 插槽替换。 */ noDataText: { type: StringConstructor; default: string; }; /** 多选时是否折叠已选标签 */ collapseTags: { type: BooleanConstructor; default: boolean; }; /** 悬停折叠标签时是否显示全部选项;仅在 collapse-tags 开启时有效。 */ collapseTagsTooltip: { type: BooleanConstructor; default: boolean; }; /** v-model 绑定值 */ modelValue: { type: import("vue").PropType; default: undefined; }; /** v-model:label 绑定值 */ label: import("vue").PropType; /** 宽度 */ width: { type: (NumberConstructor | StringConstructor)[]; default: string; }; /** 插槽使用的附加状态 */ moreDetail: BooleanConstructor; /** 是否延迟加载远程数据;开启后在首次打开下拉框时请求。 */ lazy: { type: BooleanConstructor; default: boolean; }; /** 是否默认选中;不能与懒加载同时使用。 */ defaultSelected: BooleanConstructor; /** 下拉框数据 */ data: { type: import("vue").PropType[]>; default: () => never[]; }; /** 分页返回 */ pageResult: BooleanConstructor; /** 请求数据的函数 */ requestApi: { type: import("vue").PropType<(params?: string | number | PagedInput) => Promise>>; }; /** 初始化参数 */ initParam: import("vue").PropType; ariaLabel: StringConstructor; emptyValues: ArrayConstructor; valueOnClear: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>; allowCreate: BooleanConstructor; autocomplete: { type: import("vue").PropType<"none" | "both" | "inline" | "list">; default: string; }; automaticDropdown: BooleanConstructor; clearable: BooleanConstructor; clearIcon: { type: import("vue").PropType; default: import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }; effect: { type: import("vue").PropType; default: string; }; tagTooltip: { type: import("vue").PropType; default: () => NonNullable; }; maxCollapseTags: { type: NumberConstructor; default: number; }; defaultFirstOption: BooleanConstructor; estimatedOptionHeight: { type: NumberConstructor; default: undefined; }; filterable: BooleanConstructor; filterMethod: import("vue").PropType; height: { type: NumberConstructor; default: number; }; itemHeight: { type: NumberConstructor; default: number; }; id: StringConstructor; loading: BooleanConstructor; multiple: BooleanConstructor; multipleLimit: { type: NumberConstructor; default: number; }; name: StringConstructor; remoteMethod: import("vue").PropType; reserveKeyword: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType; }; placeholder: { type: StringConstructor; }; teleported: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized; persistent: { type: BooleanConstructor; default: boolean; }; popperClass: { type: StringConstructor; default: string; }; popperStyle: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | ((new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | null)[], unknown, unknown, undefined, boolean>; popperOptions: { type: import("vue").PropType>; default: () => Partial; }; remote: BooleanConstructor; debounce: { type: NumberConstructor; default: number; }; size: { readonly type: import("vue").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; props: { type: import("vue").PropType; default: () => { label: string; value: string; disabled: string; options: string; }; }; valueKey: { type: StringConstructor; default: string; }; scrollbarAlwaysOn: BooleanConstructor; validateEvent: { type: BooleanConstructor; default: boolean; }; offset: { type: NumberConstructor; default: number; }; remoteShowSuffix: BooleanConstructor; showArrow: { type: BooleanConstructor; default: boolean; }; placement: { type: import("vue").PropType; default: string; }; fallbackPlacements: { type: import("vue").PropType; default: string[]; }; tagType: { default: string; type: import("vue").PropType>; required: false; validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; tagEffect: { default: string; type: import("vue").PropType>; required: false; validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; tabindex: { type: (NumberConstructor | StringConstructor)[]; default: number; }; appendTo: StringConstructor; fitInputWidth: { type: (NumberConstructor | BooleanConstructor)[]; default: boolean; validator: (value: boolean | number) => boolean; }; suffixIcon: { type: import("vue").PropType; default: import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }; }; /** FaSelectV2 的运行时 Emits 定义 */ export declare const faSelectV2Emits: { /** v-model 回调 */ "update:modelValue": (value: ElSelectorModelValue) => value is string | number | boolean | object | ElSelectorValue[] | null | undefined; /** 选中数据改变 */ change: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => boolean; /** v-model:label 回调 */ "update:label": (value: string | string[] | null) => boolean; /** 数据改变 */ dataChange: (data: ElSelectorOutput[]) => boolean; "end-reached": (_direction: ScrollbarDirection) => boolean; "remove-tag": (_value: ElSelectorValue) => boolean; "visible-change": (_visible: boolean) => boolean; focus: (_event: FocusEvent) => boolean; blur: (_event: FocusEvent) => boolean; clear: () => boolean; }; /** FaSelectV2 的插槽参数 */ export interface FaSelectV2Slots extends Record { /** FaSelectOption 默认内容插槽 */ default: { item: ElSelectorOutput; index: number; disabled: boolean; }; /** 下拉列表顶部的内容 */ header: never; /** 下拉列表底部的内容 */ footer: never; /** Select 组件头部内容 */ prefix: never; /** 无选项时的列表 */ empty: never; /** select 组件自定义标签内容 */ tag: never; /** Select 组件自定义加载内容 */ loading: never; /** select 组件自定义标签内容 */ label: { label: string; value: string | number | boolean | object; }; } declare const _default: import("vue").DefineComponent; default: undefined; }; /** v-model:label 绑定值 */ label: import("vue").PropType; /** 宽度 */ width: { type: (NumberConstructor | StringConstructor)[]; default: string; }; /** 插槽使用的附加状态 */ moreDetail: BooleanConstructor; /** 是否延迟加载远程数据;开启后在首次打开下拉框时请求。 */ lazy: { type: BooleanConstructor; default: boolean; }; /** 是否默认选中;不能与懒加载同时使用。 */ defaultSelected: BooleanConstructor; /** 下拉框数据 */ data: { type: import("vue").PropType[]>; default: () => never[]; }; /** 分页返回 */ pageResult: BooleanConstructor; /** 请求数据的函数 */ requestApi: { type: import("vue").PropType<(params?: string | number | PagedInput) => Promise>>; }; /** 初始化参数 */ initParam: import("vue").PropType; ariaLabel: StringConstructor; emptyValues: ArrayConstructor; valueOnClear: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>; allowCreate: BooleanConstructor; autocomplete: { type: import("vue").PropType<"none" | "both" | "inline" | "list">; default: string; }; automaticDropdown: BooleanConstructor; clearable: BooleanConstructor; clearIcon: { type: import("vue").PropType; default: import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }; effect: { type: import("vue").PropType; default: string; }; tagTooltip: { type: import("vue").PropType; default: () => NonNullable; }; maxCollapseTags: { type: NumberConstructor; default: number; }; defaultFirstOption: BooleanConstructor; estimatedOptionHeight: { type: NumberConstructor; default: undefined; }; filterable: BooleanConstructor; filterMethod: import("vue").PropType; height: { type: NumberConstructor; default: number; }; itemHeight: { type: NumberConstructor; default: number; }; id: StringConstructor; loading: BooleanConstructor; multiple: BooleanConstructor; multipleLimit: { type: NumberConstructor; default: number; }; name: StringConstructor; remoteMethod: import("vue").PropType; reserveKeyword: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType; }; placeholder: { type: StringConstructor; }; teleported: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized; persistent: { type: BooleanConstructor; default: boolean; }; popperClass: { type: StringConstructor; default: string; }; popperStyle: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | ((new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | null)[], unknown, unknown, undefined, boolean>; popperOptions: { type: import("vue").PropType>; default: () => Partial; }; remote: BooleanConstructor; debounce: { type: NumberConstructor; default: number; }; size: { readonly type: import("vue").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; props: { type: import("vue").PropType; default: () => { label: string; value: string; disabled: string; options: string; }; }; valueKey: { type: StringConstructor; default: string; }; scrollbarAlwaysOn: BooleanConstructor; validateEvent: { type: BooleanConstructor; default: boolean; }; offset: { type: NumberConstructor; default: number; }; remoteShowSuffix: BooleanConstructor; showArrow: { type: BooleanConstructor; default: boolean; }; placement: { type: import("vue").PropType; default: string; }; fallbackPlacements: { type: import("vue").PropType; default: string[]; }; tagType: { default: string; type: import("vue").PropType>; required: false; validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; tagEffect: { default: string; type: import("vue").PropType>; required: false; validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; tabindex: { type: (NumberConstructor | StringConstructor)[]; default: number; }; appendTo: StringConstructor; fitInputWidth: { type: (NumberConstructor | BooleanConstructor)[]; default: boolean; validator: (value: boolean | number) => boolean; }; suffixIcon: { type: import("vue").PropType; default: import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }; }>, { /** 使选择器的输入框获取焦点 */ focus: import("vue").ComputedRef<(() => void) | undefined>; /** 使选择器的输入框失去焦点,并隐藏下拉框 */ blur: import("vue").ComputedRef<(() => void) | undefined>; /** 获取当前选中的标签 */ selectedLabel: import("vue").ComputedRef; /** 滚动到指定选项索引。 */ scrollTo: import("vue").ComputedRef<((index: number) => void) | undefined>; /** 加载状态 */ loading: import("vue").Ref; /** 刷新 */ refresh: () => Promise; /** 设置选择 */ setSelection: (value: Exclude) => void; /** 清除选择 */ clearSelection: () => void; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { /** v-model 回调 */ "update:modelValue": (value: ElSelectorModelValue) => value is string | number | boolean | object | ElSelectorValue[] | null | undefined; /** 选中数据改变 */ change: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => boolean; /** v-model:label 回调 */ "update:label": (value: string | string[] | null) => boolean; /** 数据改变 */ dataChange: (data: ElSelectorOutput[]) => boolean; "end-reached": (_direction: ScrollbarDirection) => boolean; "remove-tag": (_value: ElSelectorValue) => boolean; "visible-change": (_visible: boolean) => boolean; focus: (_event: FocusEvent) => boolean; blur: (_event: FocusEvent) => boolean; clear: () => boolean; }, string, import("vue").PublicProps, Readonly; default: undefined; }; /** v-model:label 绑定值 */ label: import("vue").PropType; /** 宽度 */ width: { type: (NumberConstructor | StringConstructor)[]; default: string; }; /** 插槽使用的附加状态 */ moreDetail: BooleanConstructor; /** 是否延迟加载远程数据;开启后在首次打开下拉框时请求。 */ lazy: { type: BooleanConstructor; default: boolean; }; /** 是否默认选中;不能与懒加载同时使用。 */ defaultSelected: BooleanConstructor; /** 下拉框数据 */ data: { type: import("vue").PropType[]>; default: () => never[]; }; /** 分页返回 */ pageResult: BooleanConstructor; /** 请求数据的函数 */ requestApi: { type: import("vue").PropType<(params?: string | number | PagedInput) => Promise>>; }; /** 初始化参数 */ initParam: import("vue").PropType; ariaLabel: StringConstructor; emptyValues: ArrayConstructor; valueOnClear: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>; allowCreate: BooleanConstructor; autocomplete: { type: import("vue").PropType<"none" | "both" | "inline" | "list">; default: string; }; automaticDropdown: BooleanConstructor; clearable: BooleanConstructor; clearIcon: { type: import("vue").PropType; default: import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }; effect: { type: import("vue").PropType; default: string; }; tagTooltip: { type: import("vue").PropType; default: () => NonNullable; }; maxCollapseTags: { type: NumberConstructor; default: number; }; defaultFirstOption: BooleanConstructor; estimatedOptionHeight: { type: NumberConstructor; default: undefined; }; filterable: BooleanConstructor; filterMethod: import("vue").PropType; height: { type: NumberConstructor; default: number; }; itemHeight: { type: NumberConstructor; default: number; }; id: StringConstructor; loading: BooleanConstructor; multiple: BooleanConstructor; multipleLimit: { type: NumberConstructor; default: number; }; name: StringConstructor; remoteMethod: import("vue").PropType; reserveKeyword: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType; }; placeholder: { type: StringConstructor; }; teleported: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized; persistent: { type: BooleanConstructor; default: boolean; }; popperClass: { type: StringConstructor; default: string; }; popperStyle: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | ((new (...args: any[]) => string | false | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | null)[], unknown, unknown, undefined, boolean>; popperOptions: { type: import("vue").PropType>; default: () => Partial; }; remote: BooleanConstructor; debounce: { type: NumberConstructor; default: number; }; size: { readonly type: import("vue").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; props: { type: import("vue").PropType; default: () => { label: string; value: string; disabled: string; options: string; }; }; valueKey: { type: StringConstructor; default: string; }; scrollbarAlwaysOn: BooleanConstructor; validateEvent: { type: BooleanConstructor; default: boolean; }; offset: { type: NumberConstructor; default: number; }; remoteShowSuffix: BooleanConstructor; showArrow: { type: BooleanConstructor; default: boolean; }; placement: { type: import("vue").PropType; default: string; }; fallbackPlacements: { type: import("vue").PropType; default: string[]; }; tagType: { default: string; type: import("vue").PropType>; required: false; validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; tagEffect: { default: string; type: import("vue").PropType>; required: false; validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; tabindex: { type: (NumberConstructor | StringConstructor)[]; default: number; }; appendTo: StringConstructor; fitInputWidth: { type: (NumberConstructor | BooleanConstructor)[]; default: boolean; validator: (value: boolean | number) => boolean; }; suffixIcon: { type: import("vue").PropType; default: import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; }; }>> & Readonly<{ onClear?: (() => any) | undefined; onChange?: ((_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => any) | undefined; "onUpdate:modelValue"?: ((value: ElSelectorModelValue) => any) | undefined; onFocus?: ((_event: FocusEvent) => any) | undefined; onBlur?: ((_event: FocusEvent) => any) | undefined; "onEnd-reached"?: ((_direction: ScrollbarDirection) => any) | undefined; "onVisible-change"?: ((_visible: boolean) => any) | undefined; "onUpdate:label"?: ((value: string | string[] | null) => any) | undefined; onDataChange?: ((data: ElSelectorOutput[]) => any) | undefined; "onRemove-tag"?: ((_value: ElSelectorValue) => any) | undefined; }>, { data: ElSelectorOutput[]; props: import("./selectV2").Props; offset: number; placement: import("element-plus").Placement; loading: boolean; disabled: boolean; modelValue: ElSelectorModelValue; autocomplete: "none" | "both" | "inline" | "list"; clearable: boolean; clearIcon: string | import("vue").Component; suffixIcon: string | import("vue").Component; tabindex: string | number; validateEvent: boolean; effect: string; popperClass: string; popperStyle: import("vue").StyleValue; fallbackPlacements: import("element-plus").Placement[]; popperOptions: Partial; showArrow: boolean; persistent: boolean; teleported: import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType; width: string | number; height: number; lazy: boolean; filterable: boolean; valueOnClear: import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | null)[], unknown, unknown>; allowCreate: boolean; automaticDropdown: boolean; collapseTags: boolean; collapseTagsTooltip: boolean; tagTooltip: import("element-plus/es/components/select-v2/src/defaults.mjs").TagTooltipProps; maxCollapseTags: number; defaultFirstOption: boolean; estimatedOptionHeight: number; itemHeight: number; loadingText: string; multiple: boolean; multipleLimit: number; noDataText: string; noMatchText: string; reserveKeyword: boolean; remote: boolean; debounce: number; valueKey: string; scrollbarAlwaysOn: boolean; remoteShowSuffix: boolean; tagType: import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType; tagEffect: import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType; fitInputWidth: number | boolean; moreDetail: boolean; defaultSelected: boolean; pageResult: boolean; }, import("../../../utils").TypedSlotsDeclaration, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default _default;