@v-c/select 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/dist/BaseSelect/Polite.cjs +37 -0
  3. package/dist/BaseSelect/Polite.d.ts +7 -0
  4. package/dist/BaseSelect/Polite.js +34 -0
  5. package/dist/BaseSelect/index.cjs +763 -0
  6. package/dist/BaseSelect/index.d.ts +133 -0
  7. package/dist/BaseSelect/index.js +759 -0
  8. package/dist/OptGroup.cjs +5 -0
  9. package/dist/OptGroup.d.ts +6 -0
  10. package/dist/OptGroup.js +4 -0
  11. package/dist/Option.cjs +5 -0
  12. package/dist/Option.d.ts +8 -0
  13. package/dist/Option.js +4 -0
  14. package/dist/OptionList.cjs +255 -0
  15. package/dist/OptionList.d.ts +17 -0
  16. package/dist/OptionList.js +249 -0
  17. package/dist/Select.cjs +833 -0
  18. package/dist/Select.d.ts +96 -0
  19. package/dist/Select.js +828 -0
  20. package/dist/SelectContext.cjs +11 -0
  21. package/dist/SelectContext.d.ts +32 -0
  22. package/dist/SelectContext.js +9 -0
  23. package/dist/SelectInput/Affix.cjs +16 -0
  24. package/dist/SelectInput/Affix.d.ts +2 -0
  25. package/dist/SelectInput/Affix.js +13 -0
  26. package/dist/SelectInput/Content/MultipleContent.cjs +142 -0
  27. package/dist/SelectInput/Content/MultipleContent.d.ts +3 -0
  28. package/dist/SelectInput/Content/MultipleContent.js +138 -0
  29. package/dist/SelectInput/Content/Placeholder.cjs +33 -0
  30. package/dist/SelectInput/Content/Placeholder.d.ts +5 -0
  31. package/dist/SelectInput/Content/Placeholder.js +30 -0
  32. package/dist/SelectInput/Content/SingleContent.cjs +80 -0
  33. package/dist/SelectInput/Content/SingleContent.d.ts +3 -0
  34. package/dist/SelectInput/Content/SingleContent.js +77 -0
  35. package/dist/SelectInput/Content/index.cjs +40 -0
  36. package/dist/SelectInput/Content/index.d.ts +6 -0
  37. package/dist/SelectInput/Content/index.js +36 -0
  38. package/dist/SelectInput/Input.cjs +176 -0
  39. package/dist/SelectInput/Input.d.ts +22 -0
  40. package/dist/SelectInput/Input.js +173 -0
  41. package/dist/SelectInput/context.cjs +11 -0
  42. package/dist/SelectInput/context.d.ts +5 -0
  43. package/dist/SelectInput/context.js +9 -0
  44. package/dist/SelectInput/index.cjs +330 -0
  45. package/dist/SelectInput/index.d.ts +44 -0
  46. package/dist/SelectInput/index.js +325 -0
  47. package/dist/SelectTrigger.cjs +189 -0
  48. package/dist/SelectTrigger.d.ts +26 -0
  49. package/dist/SelectTrigger.js +185 -0
  50. package/dist/TransBtn.cjs +69 -0
  51. package/dist/TransBtn.d.ts +22 -0
  52. package/dist/TransBtn.js +66 -0
  53. package/dist/_virtual/rolldown_runtime.cjs +21 -0
  54. package/dist/hooks/index.cjs +23 -0
  55. package/dist/hooks/index.d.ts +17 -0
  56. package/dist/hooks/index.js +12 -0
  57. package/dist/hooks/useAllowClear.cjs +17 -0
  58. package/dist/hooks/useAllowClear.d.ts +9 -0
  59. package/dist/hooks/useAllowClear.js +16 -0
  60. package/dist/hooks/useBaseProps.cjs +12 -0
  61. package/dist/hooks/useBaseProps.d.ts +10 -0
  62. package/dist/hooks/useBaseProps.js +9 -0
  63. package/dist/hooks/useCache.cjs +36 -0
  64. package/dist/hooks/useCache.d.ts +7 -0
  65. package/dist/hooks/useCache.js +34 -0
  66. package/dist/hooks/useComponents.cjs +15 -0
  67. package/dist/hooks/useComponents.d.ts +8 -0
  68. package/dist/hooks/useComponents.js +13 -0
  69. package/dist/hooks/useFilterOptions.cjs +39 -0
  70. package/dist/hooks/useFilterOptions.d.ts +3 -0
  71. package/dist/hooks/useFilterOptions.js +37 -0
  72. package/dist/hooks/useLock.cjs +26 -0
  73. package/dist/hooks/useLock.d.ts +1 -0
  74. package/dist/hooks/useLock.js +24 -0
  75. package/dist/hooks/useOpen.cjs +58 -0
  76. package/dist/hooks/useOpen.d.ts +19 -0
  77. package/dist/hooks/useOpen.js +56 -0
  78. package/dist/hooks/useOptions.cjs +38 -0
  79. package/dist/hooks/useOptions.d.ts +13 -0
  80. package/dist/hooks/useOptions.js +36 -0
  81. package/dist/hooks/useRefFunc.cjs +12 -0
  82. package/dist/hooks/useRefFunc.d.ts +6 -0
  83. package/dist/hooks/useRefFunc.js +10 -0
  84. package/dist/hooks/useSearchConfig.cjs +21 -0
  85. package/dist/hooks/useSearchConfig.d.ts +11 -0
  86. package/dist/hooks/useSearchConfig.js +19 -0
  87. package/dist/hooks/useSelectTriggerControl.cjs +18 -0
  88. package/dist/hooks/useSelectTriggerControl.d.ts +2 -0
  89. package/dist/hooks/useSelectTriggerControl.js +16 -0
  90. package/dist/index.cjs +16 -0
  91. package/dist/index.d.ts +10 -0
  92. package/dist/index.js +8 -0
  93. package/dist/interface.cjs +0 -0
  94. package/dist/interface.d.ts +23 -0
  95. package/dist/interface.js +0 -0
  96. package/dist/utils/commonUtil.cjs +37 -0
  97. package/dist/utils/commonUtil.d.ts +12 -0
  98. package/dist/utils/commonUtil.js +30 -0
  99. package/dist/utils/keyUtil.cjs +36 -0
  100. package/dist/utils/keyUtil.d.ts +2 -0
  101. package/dist/utils/keyUtil.js +34 -0
  102. package/dist/utils/legacyUtil.cjs +32 -0
  103. package/dist/utils/legacyUtil.d.ts +3 -0
  104. package/dist/utils/legacyUtil.js +31 -0
  105. package/dist/utils/platformUtil.cjs +5 -0
  106. package/dist/utils/platformUtil.d.ts +1 -0
  107. package/dist/utils/platformUtil.js +5 -0
  108. package/dist/utils/valueUtil.cjs +79 -0
  109. package/dist/utils/valueUtil.d.ts +18 -0
  110. package/dist/utils/valueUtil.js +75 -0
  111. package/package.json +43 -0
@@ -0,0 +1,759 @@
1
+ import { useBaseSelectProvider } from "../hooks/useBaseProps.js";
2
+ import { getSeparatedContent, isValidCount } from "../utils/valueUtil.js";
3
+ import { useAllowClear } from "../hooks/useAllowClear.js";
4
+ import useComponents from "../hooks/useComponents.js";
5
+ import useLock from "../hooks/useLock.js";
6
+ import useOpen from "../hooks/useOpen.js";
7
+ import useSelectTriggerControl from "../hooks/useSelectTriggerControl.js";
8
+ import SelectInput_default from "../SelectInput/index.js";
9
+ import SelectTrigger_default from "../SelectTrigger.js";
10
+ import Polite_default from "./Polite.js";
11
+ import { Fragment, computed, createVNode, defineComponent, isVNode, mergeDefaults, mergeProps, shallowRef, watch } from "vue";
12
+ import { clsx } from "@v-c/util";
13
+ import { KeyCodeStr } from "@v-c/util/dist/KeyCode";
14
+ import omit from "@v-c/util/dist/omit";
15
+ import { getDOM } from "@v-c/util/dist/Dom/findDOMNode";
16
+ function _isSlot(s) {
17
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
18
+ }
19
+ const isMultiple = (mode) => mode === "tags" || mode === "multiple";
20
+ var omitKeys = [
21
+ "id",
22
+ "prefixCls",
23
+ "className",
24
+ "styles",
25
+ "classNames",
26
+ "showSearch",
27
+ "tagRender",
28
+ "showScrollBar",
29
+ "direction",
30
+ "omitDomProps",
31
+ "displayValues",
32
+ "onDisplayValuesChange",
33
+ "emptyOptions",
34
+ "notFoundContent",
35
+ "onClear",
36
+ "maxCount",
37
+ "placeholder",
38
+ "mode",
39
+ "disabled",
40
+ "loading",
41
+ "getInputElement",
42
+ "getRawInputElement",
43
+ "open",
44
+ "defaultOpen",
45
+ "onPopupVisibleChange",
46
+ "activeValue",
47
+ "onActiveValueChange",
48
+ "activeDescendantId",
49
+ "searchValue",
50
+ "autoClearSearchValue",
51
+ "onSearch",
52
+ "onSearchSplit",
53
+ "tokenSeparators",
54
+ "allowClear",
55
+ "prefix",
56
+ "suffix",
57
+ "suffixIcon",
58
+ "clearIcon",
59
+ "OptionList",
60
+ "animation",
61
+ "transitionName",
62
+ "popupStyle",
63
+ "popupClassName",
64
+ "popupMatchSelectWidth",
65
+ "popupRender",
66
+ "popupAlign",
67
+ "placement",
68
+ "builtinPlacements",
69
+ "getPopupContainer",
70
+ "showAction",
71
+ "onFocus",
72
+ "onBlur",
73
+ "onKeyUp",
74
+ "onKeyDown",
75
+ "onMouseDown",
76
+ "components"
77
+ ];
78
+ const BaseSelect = /* @__PURE__ */ defineComponent((props, { expose, attrs }) => {
79
+ const mode = computed(() => props.mode);
80
+ const getInputElement = computed(() => props.getInputElement);
81
+ const getRawInputElement = computed(() => props.getRawInputElement);
82
+ const components = computed(() => props.components);
83
+ const searchValue = computed(() => props.searchValue);
84
+ const displayValues = computed(() => props.displayValues);
85
+ const open = computed(() => props.open);
86
+ const tokenSeparators = computed(() => props.tokenSeparators);
87
+ const disabled = computed(() => props.disabled);
88
+ const multiple = computed(() => isMultiple(mode.value));
89
+ const containerRef = shallowRef();
90
+ const triggerRef = shallowRef();
91
+ const listRef = shallowRef();
92
+ const focused = shallowRef(false);
93
+ expose({
94
+ focus: (...args) => containerRef.value?.focus?.(...args),
95
+ blur: () => containerRef.value?.blur?.(),
96
+ scrollTo: (arg) => listRef.value?.scrollTo(arg),
97
+ nativeElement: computed(() => getDOM(containerRef))
98
+ });
99
+ const mergedComponents = useComponents(components, getInputElement, getRawInputElement);
100
+ const mergedSearchValue = computed(() => {
101
+ if (mode.value !== "combobox") return searchValue.value;
102
+ const val = displayValues.value?.[0]?.value;
103
+ return typeof val === "string" || typeof val === "number" ? String(val) : "";
104
+ });
105
+ const emptyListContent = computed(() => !props.notFoundContent && props.emptyOptions);
106
+ const [mergedOpen, triggerOpen] = useOpen(open, (openVal) => {
107
+ props.onPopupVisibleChange?.(openVal);
108
+ }, (nextOpen) => {
109
+ return props.disabled || emptyListContent.value ? false : nextOpen;
110
+ });
111
+ const tokenWithEnter = computed(() => {
112
+ return (tokenSeparators.value || []).some((tokenSeparator) => ["\n", "\r\n"].includes(tokenSeparator));
113
+ });
114
+ const onInternalSearch = (searchText, fromTyping, isCompositing) => {
115
+ const { maxCount } = props;
116
+ if (multiple.value && isValidCount(maxCount) && displayValues.value.length >= maxCount) return;
117
+ let ret = true;
118
+ let newSearchText = searchText;
119
+ props?.onActiveValueChange?.(null);
120
+ const separatedList = getSeparatedContent(searchText, tokenSeparators.value, isValidCount(maxCount) ? maxCount - displayValues.value.length : void 0);
121
+ const patchLabels = isCompositing ? null : separatedList;
122
+ if (mode.value !== "combobox" && patchLabels) {
123
+ newSearchText = "";
124
+ props?.onSearchSplit?.(patchLabels);
125
+ triggerOpen(false);
126
+ ret = false;
127
+ }
128
+ if (props.onSearch && mergedSearchValue.value !== newSearchText) props?.onSearch?.(newSearchText, { source: fromTyping ? "typing" : "effect" });
129
+ if (searchText && fromTyping && ret) triggerOpen(true);
130
+ return ret;
131
+ };
132
+ const onInternalSearchSubmit = (searchText) => {
133
+ if (!searchText || !searchText.trim()) return;
134
+ props?.onSearch?.(searchText, { source: "submit" });
135
+ };
136
+ watch(mergedOpen, () => {
137
+ if (!mergedOpen.value && !multiple.value && mode.value !== "combobox") onInternalSearch("", false, false);
138
+ }, { immediate: true });
139
+ watch([disabled, mergedOpen], () => {
140
+ if (disabled.value) {
141
+ triggerOpen(false);
142
+ focused.value = false;
143
+ }
144
+ }, { immediate: true });
145
+ const [getClearLock, setClearLock] = useLock();
146
+ const keyLockRef = shallowRef(false);
147
+ const onInternalKeyDown = (event) => {
148
+ const clearLock = getClearLock();
149
+ const { key } = event;
150
+ const isEnterKey = key === KeyCodeStr.Enter;
151
+ if (isEnterKey) {
152
+ if (mode.value !== "combobox") event.preventDefault();
153
+ if (!mergedOpen.value) triggerOpen(true);
154
+ }
155
+ setClearLock(!!mergedSearchValue.value);
156
+ if (key === KeyCodeStr.Backspace && !clearLock && multiple.value && !mergedSearchValue.value && displayValues.value.length) {
157
+ const cloneDisplayValues = [...displayValues.value];
158
+ let removedDisplayValue = null;
159
+ for (let i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {
160
+ const current = cloneDisplayValues[i];
161
+ if (!current.disabled) {
162
+ cloneDisplayValues.splice(i, 1);
163
+ removedDisplayValue = current;
164
+ break;
165
+ }
166
+ }
167
+ if (removedDisplayValue) props?.onDisplayValuesChange(cloneDisplayValues, {
168
+ type: "remove",
169
+ values: [removedDisplayValue]
170
+ });
171
+ }
172
+ if (mergedOpen.value && (!isEnterKey || !keyLockRef.value)) {
173
+ if (isEnterKey) keyLockRef.value = true;
174
+ listRef.value?.onKeyDown?.(event);
175
+ }
176
+ props?.onKeyDown?.(event);
177
+ };
178
+ const onInternalKeyUp = (event) => {
179
+ if (mergedOpen.value) listRef.value?.onKeyUp?.(event);
180
+ if (event.key === KeyCodeStr.Enter) keyLockRef.value = false;
181
+ props?.onKeyUp?.(event);
182
+ };
183
+ const onSelectorRemove = (val) => {
184
+ const newValues = displayValues.value.filter((i) => i !== val);
185
+ props?.onDisplayValuesChange(newValues, {
186
+ type: "remove",
187
+ values: [val]
188
+ });
189
+ };
190
+ const onInputBlur = () => {
191
+ keyLockRef.value = false;
192
+ };
193
+ const onInternalFocus = (event) => {
194
+ focused.value = true;
195
+ if (!disabled.value) {
196
+ if (props.showAction?.includes?.("focus")) triggerOpen(true);
197
+ props?.onFocus?.(event);
198
+ }
199
+ };
200
+ const onInternalBlur = (event) => {
201
+ focused.value = false;
202
+ if (mergedSearchValue.value) {
203
+ if (mode.value === "tags") props?.onSearch?.(mergedSearchValue.value, { source: "submit" });
204
+ else if (mode.value === "multiple") props?.onSearch?.("", { source: "blur" });
205
+ }
206
+ if (!disabled.value) {
207
+ triggerOpen(false, { lazy: true });
208
+ props?.onBlur?.(event);
209
+ }
210
+ };
211
+ const onInternalMouseDown = (event) => {
212
+ const { target } = event;
213
+ if ((triggerRef?.value?.getPopupElement?.())?.contains?.(target) && triggerOpen) triggerOpen(true, { ignoreNext: true });
214
+ props?.onMouseDown?.(event);
215
+ };
216
+ const forceState = shallowRef({});
217
+ function onPopupMouseEnter() {
218
+ forceState.value = {};
219
+ }
220
+ useSelectTriggerControl(() => [getDOM(containerRef), triggerRef.value?.getPopupElement?.()], mergedOpen, triggerOpen, computed(() => !!mergedComponents.value.root));
221
+ useBaseSelectProvider(computed(() => {
222
+ return {
223
+ ...props,
224
+ open: mergedOpen.value,
225
+ triggerOpen: mergedOpen.value,
226
+ toggleOpen: triggerOpen,
227
+ multiple: multiple.value
228
+ };
229
+ }));
230
+ const onClearMouseDown = () => {
231
+ props?.onClear?.();
232
+ containerRef.value?.focus?.();
233
+ props?.onDisplayValuesChange([], {
234
+ type: "clear",
235
+ values: displayValues.value
236
+ });
237
+ onInternalSearch("", false, false);
238
+ };
239
+ const allowClearConfig = useAllowClear(computed(() => props.prefixCls), displayValues, computed(() => props.allowClear ?? false), computed(() => props.clearIcon), computed(() => disabled.value ?? false), mergedSearchValue, mode);
240
+ return () => {
241
+ const { OptionList, prefixCls, className, loading, showSearch, prefix, placeholder, activeValue, animation, transitionName, popupStyle, popupClassName, direction, popupMatchSelectWidth, popupRender, popupAlign, placement, builtinPlacements, getPopupContainer, emptyOptions } = props;
242
+ const mergedAllowClear = allowClearConfig.value.allowClear;
243
+ const clearNode = allowClearConfig.value.clearIcon;
244
+ const customizeInputElement = mode.value === "combobox" && typeof getInputElement.value === "function" && getInputElement.value() || null;
245
+ let onTriggerVisibleChange = null;
246
+ if (mergedComponents.value?.root) onTriggerVisibleChange = (newOpen) => {
247
+ triggerOpen(newOpen);
248
+ };
249
+ const mergedSuffixIconFn = () => {
250
+ const nextSuffix = props.suffix ?? props?.suffixIcon;
251
+ if (typeof nextSuffix === "function") return nextSuffix?.({
252
+ searchValue: mergedSearchValue.value,
253
+ open: mergedOpen.value,
254
+ focused: focused.value,
255
+ showSearch: props.showSearch,
256
+ loading: props.loading
257
+ });
258
+ return nextSuffix;
259
+ };
260
+ const mergedSuffixIcon = mergedSuffixIconFn();
261
+ const optionList = createVNode(OptionList, { "ref": listRef }, null);
262
+ const mergedClassName = clsx(prefixCls, className, {
263
+ [`${prefixCls}-focused`]: focused.value,
264
+ [`${prefixCls}-multiple`]: multiple.value,
265
+ [`${prefixCls}-single`]: !multiple.value,
266
+ [`${prefixCls}-allow-clear`]: mergedAllowClear,
267
+ [`${prefixCls}-show-arrow`]: mergedSuffixIcon !== void 0 && mergedSuffixIcon !== null,
268
+ [`${prefixCls}-disabled`]: disabled.value,
269
+ [`${prefixCls}-loading`]: loading,
270
+ [`${prefixCls}-open`]: mergedOpen.value,
271
+ [`${prefixCls}-customize-input`]: customizeInputElement,
272
+ [`${prefixCls}-show-search`]: showSearch
273
+ });
274
+ let renderNode = createVNode(SelectInput_default, mergeProps(attrs, omit(props, omitKeys), {
275
+ "ref": containerRef,
276
+ "prefixCls": prefixCls,
277
+ "className": mergedClassName,
278
+ "focused": focused.value,
279
+ "prefix": prefix,
280
+ "suffix": mergedSuffixIcon,
281
+ "clearIcon": clearNode,
282
+ "multiple": multiple.value,
283
+ "mode": mode.value,
284
+ "displayValues": displayValues.value,
285
+ "placeholder": placeholder,
286
+ "searchValue": mergedSearchValue.value,
287
+ "activeValue": activeValue,
288
+ "onSearch": onInternalSearch,
289
+ "onSearchSubmit": onInternalSearchSubmit,
290
+ "onInputBlur": onInputBlur,
291
+ "onFocus": onInternalFocus,
292
+ "onBlur": onInternalBlur,
293
+ "onClearMouseDown": onClearMouseDown,
294
+ "onKeyDown": onInternalKeyDown,
295
+ "onKeyUp": onInternalKeyUp,
296
+ "onSelectorRemove": onSelectorRemove,
297
+ "tokenWithEnter": tokenWithEnter.value,
298
+ "onMouseDown": onInternalMouseDown,
299
+ "components": mergedComponents.value
300
+ }), null);
301
+ const _renderNode = function() {
302
+ return renderNode;
303
+ }();
304
+ renderNode = createVNode(SelectTrigger_default, {
305
+ "ref": triggerRef,
306
+ "disabled": disabled.value ?? false,
307
+ "prefixCls": prefixCls,
308
+ "visible": mergedOpen.value,
309
+ "popupElement": optionList,
310
+ "animation": animation,
311
+ "transitionName": transitionName,
312
+ "popupStyle": popupStyle,
313
+ "popupClassName": popupClassName,
314
+ "direction": direction,
315
+ "popupMatchSelectWidth": popupMatchSelectWidth,
316
+ "popupRender": popupRender,
317
+ "popupAlign": popupAlign,
318
+ "placement": placement,
319
+ "builtinPlacements": builtinPlacements,
320
+ "getPopupContainer": getPopupContainer,
321
+ "empty": emptyOptions,
322
+ "onPopupVisibleChange": onTriggerVisibleChange,
323
+ "onPopupMouseEnter": onPopupMouseEnter,
324
+ "onPopupMouseDown": onInternalMouseDown
325
+ }, _isSlot(renderNode) ? renderNode : { default: () => [_renderNode] });
326
+ return createVNode(Fragment, null, [createVNode(Polite_default, {
327
+ "visible": focused.value && !mergedOpen.value,
328
+ "values": displayValues.value
329
+ }, null), renderNode]);
330
+ };
331
+ }, {
332
+ props: /* @__PURE__ */ mergeDefaults({
333
+ className: {
334
+ type: String,
335
+ required: false,
336
+ default: void 0
337
+ },
338
+ style: {
339
+ type: Object,
340
+ required: false,
341
+ default: void 0
342
+ },
343
+ classNames: {
344
+ type: Object,
345
+ required: false,
346
+ default: void 0
347
+ },
348
+ styles: {
349
+ type: Object,
350
+ required: false,
351
+ default: void 0
352
+ },
353
+ showSearch: {
354
+ type: Boolean,
355
+ required: false,
356
+ default: void 0
357
+ },
358
+ tagRender: {
359
+ type: Function,
360
+ required: false,
361
+ default: void 0
362
+ },
363
+ direction: {
364
+ type: String,
365
+ required: false,
366
+ default: void 0
367
+ },
368
+ autoFocus: {
369
+ type: Boolean,
370
+ required: false,
371
+ default: void 0
372
+ },
373
+ placeholder: {
374
+ type: [
375
+ Object,
376
+ Function,
377
+ String,
378
+ Number,
379
+ null,
380
+ Boolean,
381
+ Array
382
+ ],
383
+ required: false,
384
+ default: void 0
385
+ },
386
+ maxCount: {
387
+ type: Number,
388
+ required: false,
389
+ default: void 0
390
+ },
391
+ title: {
392
+ type: String,
393
+ required: false,
394
+ default: void 0
395
+ },
396
+ tabIndex: {
397
+ type: Number,
398
+ required: false,
399
+ default: void 0
400
+ },
401
+ notFoundContent: {
402
+ type: [
403
+ Object,
404
+ Function,
405
+ String,
406
+ Number,
407
+ null,
408
+ Boolean,
409
+ Array
410
+ ],
411
+ required: false,
412
+ default: void 0
413
+ },
414
+ onClear: {
415
+ type: Function,
416
+ required: false,
417
+ default: void 0
418
+ },
419
+ maxLength: {
420
+ type: Number,
421
+ required: false,
422
+ default: void 0
423
+ },
424
+ showScrollBar: {
425
+ type: [Boolean, String],
426
+ required: false,
427
+ default: void 0
428
+ },
429
+ choiceTransitionName: {
430
+ type: String,
431
+ required: false,
432
+ default: void 0
433
+ },
434
+ mode: {
435
+ type: String,
436
+ required: false,
437
+ default: void 0
438
+ },
439
+ disabled: {
440
+ type: Boolean,
441
+ required: false,
442
+ default: void 0
443
+ },
444
+ loading: {
445
+ type: Boolean,
446
+ required: false,
447
+ default: void 0
448
+ },
449
+ open: {
450
+ type: Boolean,
451
+ required: false,
452
+ default: void 0
453
+ },
454
+ defaultOpen: {
455
+ type: Boolean,
456
+ required: false,
457
+ default: void 0
458
+ },
459
+ onPopupVisibleChange: {
460
+ type: Function,
461
+ required: false,
462
+ default: void 0
463
+ },
464
+ getInputElement: {
465
+ type: Function,
466
+ required: false,
467
+ default: void 0
468
+ },
469
+ getRawInputElement: {
470
+ type: Function,
471
+ required: false,
472
+ default: void 0
473
+ },
474
+ maxTagTextLength: {
475
+ type: Number,
476
+ required: false,
477
+ default: void 0
478
+ },
479
+ maxTagCount: {
480
+ type: [Number, String],
481
+ required: false,
482
+ default: void 0
483
+ },
484
+ maxTagPlaceholder: {
485
+ type: [
486
+ Object,
487
+ Function,
488
+ String,
489
+ Number,
490
+ null,
491
+ Boolean,
492
+ Array
493
+ ],
494
+ required: false,
495
+ default: void 0
496
+ },
497
+ tokenSeparators: {
498
+ type: Array,
499
+ required: false,
500
+ default: void 0
501
+ },
502
+ allowClear: {
503
+ type: [Boolean, Object],
504
+ required: false,
505
+ default: void 0
506
+ },
507
+ prefix: {
508
+ type: [
509
+ Object,
510
+ Function,
511
+ String,
512
+ Number,
513
+ null,
514
+ Boolean,
515
+ Array
516
+ ],
517
+ required: false,
518
+ default: void 0
519
+ },
520
+ suffixIcon: {
521
+ type: [
522
+ Object,
523
+ Function,
524
+ String,
525
+ Number,
526
+ null,
527
+ Boolean,
528
+ Array
529
+ ],
530
+ required: false,
531
+ default: void 0
532
+ },
533
+ suffix: {
534
+ type: [
535
+ Object,
536
+ Function,
537
+ String,
538
+ Number,
539
+ null,
540
+ Boolean,
541
+ Array
542
+ ],
543
+ required: false,
544
+ default: void 0
545
+ },
546
+ clearIcon: {
547
+ type: [
548
+ Object,
549
+ Function,
550
+ String,
551
+ Number,
552
+ null,
553
+ Boolean,
554
+ Array
555
+ ],
556
+ required: false,
557
+ default: void 0
558
+ },
559
+ removeIcon: {
560
+ type: [
561
+ Object,
562
+ Function,
563
+ String,
564
+ Number,
565
+ null,
566
+ Boolean,
567
+ Array
568
+ ],
569
+ required: false,
570
+ default: void 0
571
+ },
572
+ animation: {
573
+ type: String,
574
+ required: false,
575
+ default: void 0
576
+ },
577
+ transitionName: {
578
+ type: String,
579
+ required: false,
580
+ default: void 0
581
+ },
582
+ popupStyle: {
583
+ type: Object,
584
+ required: false,
585
+ default: void 0
586
+ },
587
+ popupClassName: {
588
+ type: String,
589
+ required: false,
590
+ default: void 0
591
+ },
592
+ popupMatchSelectWidth: {
593
+ type: [Boolean, Number],
594
+ required: false,
595
+ default: void 0
596
+ },
597
+ popupRender: {
598
+ type: Function,
599
+ required: false,
600
+ default: void 0
601
+ },
602
+ popupAlign: {
603
+ type: Object,
604
+ required: false,
605
+ default: void 0
606
+ },
607
+ placement: {
608
+ type: String,
609
+ required: false,
610
+ default: void 0
611
+ },
612
+ builtinPlacements: {
613
+ type: Object,
614
+ required: false,
615
+ default: void 0
616
+ },
617
+ getPopupContainer: {
618
+ type: Function,
619
+ required: false,
620
+ default: void 0
621
+ },
622
+ showAction: {
623
+ type: Array,
624
+ required: false,
625
+ default: void 0
626
+ },
627
+ onBlur: {
628
+ type: Function,
629
+ required: false,
630
+ default: void 0
631
+ },
632
+ onFocus: {
633
+ type: Function,
634
+ required: false,
635
+ default: void 0
636
+ },
637
+ onKeyUp: {
638
+ type: Function,
639
+ required: false,
640
+ default: void 0
641
+ },
642
+ onKeyDown: {
643
+ type: Function,
644
+ required: false,
645
+ default: void 0
646
+ },
647
+ onMouseDown: {
648
+ type: Function,
649
+ required: false,
650
+ default: void 0
651
+ },
652
+ onPopupScroll: {
653
+ type: Function,
654
+ required: false,
655
+ default: void 0
656
+ },
657
+ onInputKeyDown: {
658
+ type: Function,
659
+ required: false,
660
+ default: void 0
661
+ },
662
+ onMouseEnter: {
663
+ type: Function,
664
+ required: false,
665
+ default: void 0
666
+ },
667
+ onMouseLeave: {
668
+ type: Function,
669
+ required: false,
670
+ default: void 0
671
+ },
672
+ onClick: {
673
+ type: Function,
674
+ required: false,
675
+ default: void 0
676
+ },
677
+ components: {
678
+ type: Object,
679
+ required: false,
680
+ default: void 0
681
+ },
682
+ id: {
683
+ type: String,
684
+ required: true,
685
+ default: void 0
686
+ },
687
+ prefixCls: {
688
+ type: String,
689
+ required: true,
690
+ default: void 0
691
+ },
692
+ omitDomProps: {
693
+ type: Array,
694
+ required: false,
695
+ default: void 0
696
+ },
697
+ displayValues: {
698
+ type: Array,
699
+ required: true,
700
+ default: void 0
701
+ },
702
+ onDisplayValuesChange: {
703
+ type: Function,
704
+ required: true,
705
+ default: void 0
706
+ },
707
+ activeValue: {
708
+ type: String,
709
+ required: false,
710
+ default: void 0
711
+ },
712
+ activeDescendantId: {
713
+ type: String,
714
+ required: false,
715
+ default: void 0
716
+ },
717
+ onActiveValueChange: {
718
+ type: Function,
719
+ required: false,
720
+ default: void 0
721
+ },
722
+ searchValue: {
723
+ type: String,
724
+ required: true,
725
+ default: void 0
726
+ },
727
+ autoClearSearchValue: {
728
+ type: Boolean,
729
+ required: false,
730
+ default: void 0
731
+ },
732
+ onSearch: {
733
+ type: Function,
734
+ required: true,
735
+ default: void 0
736
+ },
737
+ onSearchSplit: {
738
+ type: Function,
739
+ required: false,
740
+ default: void 0
741
+ },
742
+ OptionList: {
743
+ required: true,
744
+ default: void 0
745
+ },
746
+ emptyOptions: {
747
+ type: Boolean,
748
+ required: true,
749
+ default: void 0
750
+ }
751
+ }, {
752
+ showScrollBar: "optional",
753
+ notFoundContent: "Not Found",
754
+ showAction: []
755
+ }),
756
+ name: "BaseSelect",
757
+ inheritAttrs: false
758
+ });
759
+ export { BaseSelect, isMultiple };