hzzt-plus 0.0.9 → 1.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 (151) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +2148 -1583
  3. package/dist/index.full.min.js +12 -12
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +12 -12
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +2139 -1585
  8. package/es/component.mjs +5 -1
  9. package/es/component.mjs.map +1 -1
  10. package/es/components/confirm-password/index.d.ts +46 -22
  11. package/es/components/confirm-password/src/confirm-password.vue.d.ts +46 -22
  12. package/es/components/icon/src/index.vue.d.ts +4 -4
  13. package/es/components/index.d.ts +2 -0
  14. package/es/components/index.mjs +5 -0
  15. package/es/components/index.mjs.map +1 -1
  16. package/es/components/page-size/index.d.ts +10224 -531
  17. package/es/components/page-size/src/index.vue.d.ts +10224 -531
  18. package/es/components/pagination/index.d.ts +4 -4
  19. package/es/components/pagination/src/index.vue.d.ts +4 -4
  20. package/es/components/quarter-picker/index.d.ts +121 -97
  21. package/es/components/quarter-picker/src/index.vue.d.ts +121 -97
  22. package/es/components/scan/index.d.ts +5 -0
  23. package/es/components/scan/index.mjs +9 -0
  24. package/es/components/scan/index.mjs.map +1 -0
  25. package/es/components/scan/src/scan.d.ts +15 -0
  26. package/es/components/scan/src/scan.mjs +28 -0
  27. package/es/components/scan/src/scan.mjs.map +1 -0
  28. package/es/components/scan/src/scan.vue.d.ts +596 -0
  29. package/es/components/scan/src/scan2.mjs +149 -0
  30. package/es/components/scan/src/scan2.mjs.map +1 -0
  31. package/es/components/scan/style/css.d.ts +2 -0
  32. package/es/components/scan/style/css.mjs +3 -0
  33. package/es/components/scan/style/css.mjs.map +1 -0
  34. package/es/components/scan/style/index.d.ts +2 -0
  35. package/es/components/scan/style/index.mjs +3 -0
  36. package/es/components/scan/style/index.mjs.map +1 -0
  37. package/es/components/select-input/index.d.ts +826 -0
  38. package/es/components/select-input/index.mjs +9 -0
  39. package/es/components/select-input/index.mjs.map +1 -0
  40. package/es/components/select-input/src/select-input.d.ts +41 -0
  41. package/es/components/select-input/src/select-input.mjs +50 -0
  42. package/es/components/select-input/src/select-input.mjs.map +1 -0
  43. package/es/components/select-input/src/select-input.vue.d.ts +826 -0
  44. package/es/components/select-input/src/select-input2.mjs +129 -0
  45. package/es/components/select-input/src/select-input2.mjs.map +1 -0
  46. package/es/components/select-input/style/css.d.ts +2 -0
  47. package/es/components/select-input/style/css.mjs +3 -0
  48. package/es/components/select-input/style/css.mjs.map +1 -0
  49. package/es/components/select-input/style/index.d.ts +2 -0
  50. package/es/components/select-input/style/index.mjs +3 -0
  51. package/es/components/select-input/style/index.mjs.map +1 -0
  52. package/es/components/tab/index.d.ts +4 -4
  53. package/es/components/tab/src/index.vue.d.ts +4 -4
  54. package/es/components/title/index.d.ts +4 -29
  55. package/es/components/title/index.mjs +3 -2
  56. package/es/components/title/index.mjs.map +1 -1
  57. package/es/components/title/src/title.d.ts +8 -0
  58. package/es/components/title/src/title.mjs +8 -43
  59. package/es/components/title/src/title.mjs.map +1 -1
  60. package/es/components/title/src/title.vue.d.ts +7 -16
  61. package/es/components/title/src/title2.mjs +44 -0
  62. package/es/components/title/src/title2.mjs.map +1 -0
  63. package/es/components/tooltip/index.d.ts +7615 -316
  64. package/es/components/tooltip/src/tooltip.vue.d.ts +7615 -316
  65. package/es/constants/index.d.ts +1 -0
  66. package/es/constants/index.mjs +1 -0
  67. package/es/constants/index.mjs.map +1 -1
  68. package/es/hooks/index.d.ts +1 -0
  69. package/es/hooks/index.mjs +1 -0
  70. package/es/hooks/index.mjs.map +1 -1
  71. package/es/hooks/use-letter/index.d.ts +1 -0
  72. package/es/hooks/use-letter/index.mjs +13 -0
  73. package/es/hooks/use-letter/index.mjs.map +1 -0
  74. package/es/index.mjs +7 -0
  75. package/es/index.mjs.map +1 -1
  76. package/global.d.ts +2 -0
  77. package/lib/component.js +5 -1
  78. package/lib/component.js.map +1 -1
  79. package/lib/components/confirm-password/index.d.ts +46 -22
  80. package/lib/components/confirm-password/src/confirm-password.vue.d.ts +46 -22
  81. package/lib/components/icon/src/index.vue.d.ts +4 -4
  82. package/lib/components/index.d.ts +2 -0
  83. package/lib/components/index.js +12 -0
  84. package/lib/components/index.js.map +1 -1
  85. package/lib/components/page-size/index.d.ts +10224 -531
  86. package/lib/components/page-size/src/index.vue.d.ts +10224 -531
  87. package/lib/components/pagination/index.d.ts +4 -4
  88. package/lib/components/pagination/src/index.vue.d.ts +4 -4
  89. package/lib/components/quarter-picker/index.d.ts +121 -97
  90. package/lib/components/quarter-picker/src/index.vue.d.ts +121 -97
  91. package/lib/components/scan/index.d.ts +5 -0
  92. package/lib/components/scan/index.js +16 -0
  93. package/lib/components/scan/index.js.map +1 -0
  94. package/lib/components/scan/src/scan.d.ts +15 -0
  95. package/lib/components/scan/src/scan.js +33 -0
  96. package/lib/components/scan/src/scan.js.map +1 -0
  97. package/lib/components/scan/src/scan.vue.d.ts +596 -0
  98. package/lib/components/scan/src/scan2.js +153 -0
  99. package/lib/components/scan/src/scan2.js.map +1 -0
  100. package/lib/components/scan/style/css.d.ts +2 -0
  101. package/lib/components/scan/style/css.js +6 -0
  102. package/lib/components/scan/style/css.js.map +1 -0
  103. package/lib/components/scan/style/index.d.ts +2 -0
  104. package/lib/components/scan/style/index.js +6 -0
  105. package/lib/components/scan/style/index.js.map +1 -0
  106. package/lib/components/select-input/index.d.ts +826 -0
  107. package/lib/components/select-input/index.js +16 -0
  108. package/lib/components/select-input/index.js.map +1 -0
  109. package/lib/components/select-input/src/select-input.d.ts +41 -0
  110. package/lib/components/select-input/src/select-input.js +55 -0
  111. package/lib/components/select-input/src/select-input.js.map +1 -0
  112. package/lib/components/select-input/src/select-input.vue.d.ts +826 -0
  113. package/lib/components/select-input/src/select-input2.js +133 -0
  114. package/lib/components/select-input/src/select-input2.js.map +1 -0
  115. package/lib/components/select-input/style/css.d.ts +2 -0
  116. package/lib/components/select-input/style/css.js +6 -0
  117. package/lib/components/select-input/style/css.js.map +1 -0
  118. package/lib/components/select-input/style/index.d.ts +2 -0
  119. package/lib/components/select-input/style/index.js +6 -0
  120. package/lib/components/select-input/style/index.js.map +1 -0
  121. package/lib/components/tab/index.d.ts +4 -4
  122. package/lib/components/tab/src/index.vue.d.ts +4 -4
  123. package/lib/components/title/index.d.ts +4 -29
  124. package/lib/components/title/index.js +3 -1
  125. package/lib/components/title/index.js.map +1 -1
  126. package/lib/components/title/src/title.d.ts +8 -0
  127. package/lib/components/title/src/title.js +8 -43
  128. package/lib/components/title/src/title.js.map +1 -1
  129. package/lib/components/title/src/title.vue.d.ts +7 -16
  130. package/lib/components/title/src/title2.js +48 -0
  131. package/lib/components/title/src/title2.js.map +1 -0
  132. package/lib/components/tooltip/index.d.ts +7615 -316
  133. package/lib/components/tooltip/src/tooltip.vue.d.ts +7615 -316
  134. package/lib/constants/index.d.ts +1 -0
  135. package/lib/constants/index.js +4 -0
  136. package/lib/constants/index.js.map +1 -1
  137. package/lib/hooks/index.d.ts +1 -0
  138. package/lib/hooks/index.js +2 -0
  139. package/lib/hooks/index.js.map +1 -1
  140. package/lib/hooks/use-letter/index.d.ts +1 -0
  141. package/lib/hooks/use-letter/index.js +17 -0
  142. package/lib/hooks/use-letter/index.js.map +1 -0
  143. package/lib/index.js +44 -26
  144. package/lib/index.js.map +1 -1
  145. package/package.json +3 -3
  146. package/theme/hzzt-scan.css +1 -0
  147. package/theme/hzzt-select-input.css +0 -0
  148. package/theme/index.css +1 -1
  149. package/theme/src/index.scss +2 -0
  150. package/theme/src/scan.scss +80 -0
  151. package/theme/src/select-input.scss +0 -0
@@ -1,6 +1,36 @@
1
1
  /*! Hzzt Plus v0.0.1 */
2
2
 
3
- import { getCurrentScope, onScopeDispose, unref, getCurrentInstance, onMounted, nextTick, watch, ref, defineComponent, openBlock, createElementBlock, createElementVNode, warn, computed, isRef, inject, provide, renderSlot, useSlots, createCommentVNode, createTextVNode, toDisplayString, shallowRef, onBeforeUnmount, onBeforeMount, mergeProps, toRef, onUnmounted, useAttrs as useAttrs$1, Fragment, normalizeClass, createBlock, withCtx, resolveDynamicComponent, withModifiers, createVNode, normalizeStyle, Transition, withDirectives, vShow, reactive, onActivated, onUpdated, cloneVNode, Text, Comment, Teleport as Teleport$1, readonly, onDeactivated, withKeys, toRaw, toRefs, watchEffect, resolveComponent, resolveDirective, toHandlerKey, renderList, vModelText, normalizeProps, guardReactiveProps } from 'vue';
3
+ import { readonly, shallowRef, watchEffect, getCurrentScope, onScopeDispose, unref, getCurrentInstance, onMounted, nextTick, watch, ref, defineComponent, openBlock, createElementBlock, createElementVNode, warn, computed, isRef, inject, provide, renderSlot, mergeProps, toRef, onUnmounted, useAttrs as useAttrs$1, useSlots, normalizeClass, normalizeStyle, createCommentVNode, Fragment, createBlock, withCtx, resolveDynamicComponent, withModifiers, createVNode, toDisplayString, onBeforeUnmount, Transition, withDirectives, vShow, reactive, onActivated, onUpdated, cloneVNode, Text, Comment, Teleport as Teleport$1, onBeforeMount, onDeactivated, withKeys, createSlots, toRaw, toRefs, resolveComponent, resolveDirective, toHandlerKey, renderList, createTextVNode, vModelText, normalizeProps, guardReactiveProps } from 'vue';
4
+
5
+ var __defProp$9 = Object.defineProperty;
6
+ var __defProps$6 = Object.defineProperties;
7
+ var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
8
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
9
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues$9 = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp$b.call(b, prop))
15
+ __defNormalProp$9(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols$b)
17
+ for (var prop of __getOwnPropSymbols$b(b)) {
18
+ if (__propIsEnum$b.call(b, prop))
19
+ __defNormalProp$9(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
24
+ function computedEager(fn, options) {
25
+ var _a;
26
+ const result = shallowRef();
27
+ watchEffect(() => {
28
+ result.value = fn();
29
+ }, __spreadProps$6(__spreadValues$9({}, options), {
30
+ flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync"
31
+ }));
32
+ return readonly(result);
33
+ }
4
34
 
5
35
  var _a;
6
36
  const isClient = typeof window !== "undefined";
@@ -282,9 +312,7 @@ const isString$1 = (val) => typeof val === "string";
282
312
  const isObject$1 = (val) => val !== null && typeof val === "object";
283
313
  const objectToString$1 = Object.prototype.toString;
284
314
  const toTypeString = (value) => objectToString$1.call(value);
285
- const toRawType = (value) => {
286
- return toTypeString(value).slice(8, -1);
287
- };
315
+ const isPlainObject$1 = (val) => toTypeString(val) === "[object Object]";
288
316
 
289
317
  var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
290
318
 
@@ -12660,6 +12688,10 @@ const WEEK_DAYS = [
12660
12688
  "sat"
12661
12689
  ];
12662
12690
 
12691
+ const UPDATE_MODEL_EVENT$1 = "update:modelValue";
12692
+ const CHANGE_EVENT$1 = "change";
12693
+ const INPUT_EVENT$1 = "input";
12694
+
12663
12695
  var English$1 = {
12664
12696
  name: "en",
12665
12697
  hzzt: {
@@ -12799,6 +12831,17 @@ const useNamespace$1 = (block, namespaceOverrides) => {
12799
12831
  };
12800
12832
  };
12801
12833
 
12834
+ function numberToLetter(index) {
12835
+ const start = "A".charCodeAt(0);
12836
+ if (index < 26) {
12837
+ return String.fromCharCode(start + index);
12838
+ } else if (index < 52) {
12839
+ return String.fromCharCode(start + index + 6);
12840
+ } else {
12841
+ return index - 51;
12842
+ }
12843
+ }
12844
+
12802
12845
  const configProviderContextKey$1 = Symbol();
12803
12846
 
12804
12847
  const globalConfig$1 = ref();
@@ -12890,71 +12933,81 @@ const makeInstaller = (components = []) => {
12890
12933
  };
12891
12934
  };
12892
12935
 
12893
- var _export_sfc$1 = (sfc, props) => {
12894
- const target = sfc.__vccOpts || sfc;
12895
- for (const [key, val] of props) {
12896
- target[key] = val;
12897
- }
12898
- return target;
12899
- };
12936
+ const configProviderContextKey = Symbol();
12900
12937
 
12901
- const _hoisted_1$8 = {
12902
- key: 0,
12903
- class: "hzzt-title flex align-items-center"
12938
+ const defaultNamespace = "el";
12939
+ const statePrefix = "is-";
12940
+ const _bem = (namespace, block, blockSuffix, element, modifier) => {
12941
+ let cls = `${namespace}-${block}`;
12942
+ if (blockSuffix) {
12943
+ cls += `-${blockSuffix}`;
12944
+ }
12945
+ if (element) {
12946
+ cls += `__${element}`;
12947
+ }
12948
+ if (modifier) {
12949
+ cls += `--${modifier}`;
12950
+ }
12951
+ return cls;
12904
12952
  };
12905
- const _hoisted_2$7 = {
12906
- key: 0,
12907
- class: "decorative-line"
12953
+ const namespaceContextKey = Symbol("namespaceContextKey");
12954
+ const useGetDerivedNamespace = (namespaceOverrides) => {
12955
+ const derivedNamespace = namespaceOverrides || (getCurrentInstance() ? inject(namespaceContextKey, ref(defaultNamespace)) : ref(defaultNamespace));
12956
+ const namespace = computed(() => {
12957
+ return unref(derivedNamespace) || defaultNamespace;
12958
+ });
12959
+ return namespace;
12908
12960
  };
12909
- const _hoisted_3$7 = { class: "label-name" };
12910
- const __default__$o = defineComponent({
12911
- name: "HzztTitle"
12912
- });
12913
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
12914
- ...__default__$o,
12915
- props: {
12916
- label: String,
12917
- sideline: {
12918
- type: Boolean,
12919
- default: true
12961
+ const useNamespace = (block, namespaceOverrides) => {
12962
+ const namespace = useGetDerivedNamespace(namespaceOverrides);
12963
+ const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", "");
12964
+ const e = (element) => element ? _bem(namespace.value, block, "", element, "") : "";
12965
+ const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : "";
12966
+ const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : "";
12967
+ const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : "";
12968
+ const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : "";
12969
+ const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : "";
12970
+ const is = (name, ...args) => {
12971
+ const state = args.length >= 1 ? args[0] : true;
12972
+ return name && state ? `${statePrefix}${name}` : "";
12973
+ };
12974
+ const cssVar = (object) => {
12975
+ const styles = {};
12976
+ for (const key in object) {
12977
+ if (object[key]) {
12978
+ styles[`--${namespace.value}-${key}`] = object[key];
12979
+ }
12920
12980
  }
12921
- },
12922
- setup(__props) {
12923
- const props = __props;
12924
- const slots = useSlots();
12925
- const showLabel = computed(() => {
12926
- var _a, _b, _c;
12927
- return props.label || ((_c = (_b = (_a = slots == null ? void 0 : slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children);
12928
- });
12929
- return (_ctx, _cache) => {
12930
- return unref(showLabel) ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
12931
- __props.sideline ? (openBlock(), createElementBlock("span", _hoisted_2$7)) : createCommentVNode("v-if", true),
12932
- renderSlot(_ctx.$slots, "before"),
12933
- createElementVNode("label", _hoisted_3$7, [
12934
- renderSlot(_ctx.$slots, "default", {}, () => [
12935
- createTextVNode(toDisplayString(__props.label), 1)
12936
- ])
12937
- ])
12938
- ])) : createCommentVNode("v-if", true);
12939
- };
12940
- }
12941
- });
12942
- var Title = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__file", "title.vue"]]);
12943
-
12944
- const HzztTitle = withInstall$1(Title);
12945
-
12946
- const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
12947
- const handleEvent = (event) => {
12948
- const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event);
12949
- if (checkForDefaultPrevented === false || !shouldPrevent) {
12950
- return oursHandler == null ? void 0 : oursHandler(event);
12981
+ return styles;
12982
+ };
12983
+ const cssVarBlock = (object) => {
12984
+ const styles = {};
12985
+ for (const key in object) {
12986
+ if (object[key]) {
12987
+ styles[`--${namespace.value}-${block}-${key}`] = object[key];
12988
+ }
12951
12989
  }
12990
+ return styles;
12991
+ };
12992
+ const cssVarName = (name) => `--${namespace.value}-${name}`;
12993
+ const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`;
12994
+ return {
12995
+ namespace,
12996
+ b,
12997
+ e,
12998
+ m,
12999
+ be,
13000
+ em,
13001
+ bm,
13002
+ bem,
13003
+ is,
13004
+ cssVar,
13005
+ cssVarName,
13006
+ cssVarBlock,
13007
+ cssVarBlockName
12952
13008
  };
12953
- return handleEvent;
12954
13009
  };
12955
13010
 
12956
- const isFirefox = () => isClient && /firefox/i.test(window.navigator.userAgent);
12957
-
12958
13011
  const isUndefined = (val) => val === void 0;
12959
13012
  const isBoolean = (val) => typeof val === "boolean";
12960
13013
  const isNumber = (val) => typeof val === "number";
@@ -12970,8 +13023,6 @@ const isStringNumber = (val) => {
12970
13023
  return !Number.isNaN(Number(val));
12971
13024
  };
12972
13025
 
12973
- const escapeStringRegexp = (string = "") => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
12974
-
12975
13026
  class ElementPlusError extends Error {
12976
13027
  constructor(m) {
12977
13028
  super(m);
@@ -12984,165 +13035,32 @@ function throwError(scope, m) {
12984
13035
  function debugWarn(scope, message) {
12985
13036
  }
12986
13037
 
12987
- function addUnit(value, defaultUnit = "px") {
12988
- if (!value)
12989
- return "";
12990
- if (isNumber(value) || isStringNumber(value)) {
12991
- return `${value}${defaultUnit}`;
12992
- } else if (isString$1(value)) {
12993
- return value;
12994
- }
12995
- }
12996
-
12997
- function scrollIntoView(container, selected) {
12998
- if (!isClient)
12999
- return;
13000
- if (!selected) {
13001
- container.scrollTop = 0;
13002
- return;
13003
- }
13004
- const offsetParents = [];
13005
- let pointer = selected.offsetParent;
13006
- while (pointer !== null && container !== pointer && container.contains(pointer)) {
13007
- offsetParents.push(pointer);
13008
- pointer = pointer.offsetParent;
13009
- }
13010
- const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0);
13011
- const bottom = top + selected.offsetHeight;
13012
- const viewRectTop = container.scrollTop;
13013
- const viewRectBottom = viewRectTop + container.clientHeight;
13014
- if (top < viewRectTop) {
13015
- container.scrollTop = top;
13016
- } else if (bottom > viewRectBottom) {
13017
- container.scrollTop = bottom - container.clientHeight;
13018
- }
13019
- }
13020
-
13021
- const epPropKey = "__epPropKey";
13022
- const definePropType = (val) => val;
13023
- const isEpProp = (val) => isObject$1(val) && !!val[epPropKey];
13024
- const buildProp = (prop, key) => {
13025
- if (!isObject$1(prop) || isEpProp(prop))
13026
- return prop;
13027
- const { values, required, default: defaultValue, type, validator } = prop;
13028
- const _validator = values || validator ? (val) => {
13029
- let valid = false;
13030
- let allowedValues = [];
13031
- if (values) {
13032
- allowedValues = Array.from(values);
13033
- if (hasOwn(prop, "default")) {
13034
- allowedValues.push(defaultValue);
13035
- }
13036
- valid || (valid = allowedValues.includes(val));
13037
- }
13038
- if (validator)
13039
- valid || (valid = validator(val));
13040
- if (!valid && allowedValues.length > 0) {
13041
- const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
13042
- warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
13043
- }
13044
- return valid;
13045
- } : void 0;
13046
- const epProp = {
13047
- type,
13048
- required: !!required,
13049
- validator: _validator,
13050
- [epPropKey]: true
13051
- };
13052
- if (hasOwn(prop, "default"))
13053
- epProp.default = defaultValue;
13054
- return epProp;
13055
- };
13056
- const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
13057
- key,
13058
- buildProp(option, key)
13059
- ]));
13060
-
13061
- const iconPropType = definePropType([
13062
- String,
13063
- Object,
13064
- Function
13065
- ]);
13066
- const ValidateComponentsMap = {
13067
- validating: loading_default,
13068
- success: circle_check_default,
13069
- error: circle_close_default
13038
+ const initial = {
13039
+ current: 0
13070
13040
  };
13071
-
13072
- const withInstall = (main, extra) => {
13073
- main.install = (app) => {
13074
- for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
13075
- app.component(comp.name, comp);
13076
- }
13041
+ const zIndex = ref(0);
13042
+ const defaultInitialZIndex = 2e3;
13043
+ const ZINDEX_INJECTION_KEY = Symbol("elZIndexContextKey");
13044
+ const zIndexContextKey = Symbol("zIndexContextKey");
13045
+ const useZIndex = (zIndexOverrides) => {
13046
+ const increasingInjection = getCurrentInstance() ? inject(ZINDEX_INJECTION_KEY, initial) : initial;
13047
+ const zIndexInjection = zIndexOverrides || (getCurrentInstance() ? inject(zIndexContextKey, void 0) : void 0);
13048
+ const initialZIndex = computed(() => {
13049
+ const zIndexFromInjection = unref(zIndexInjection);
13050
+ return isNumber(zIndexFromInjection) ? zIndexFromInjection : defaultInitialZIndex;
13051
+ });
13052
+ const currentZIndex = computed(() => initialZIndex.value + zIndex.value);
13053
+ const nextZIndex = () => {
13054
+ increasingInjection.current++;
13055
+ zIndex.value = increasingInjection.current;
13056
+ return currentZIndex.value;
13077
13057
  };
13078
- if (extra) {
13079
- for (const [key, comp] of Object.entries(extra)) {
13080
- main[key] = comp;
13081
- }
13082
- }
13083
- return main;
13084
- };
13085
- const withInstallDirective = (directive, name) => {
13086
- directive.install = (app) => {
13087
- app.directive(name, directive);
13058
+ if (!isClient && !inject(ZINDEX_INJECTION_KEY)) ;
13059
+ return {
13060
+ initialZIndex,
13061
+ currentZIndex,
13062
+ nextZIndex
13088
13063
  };
13089
- return directive;
13090
- };
13091
- const withNoopInstall = (component) => {
13092
- component.install = NOOP;
13093
- return component;
13094
- };
13095
-
13096
- const EVENT_CODE = {
13097
- tab: "Tab",
13098
- enter: "Enter",
13099
- space: "Space",
13100
- left: "ArrowLeft",
13101
- up: "ArrowUp",
13102
- right: "ArrowRight",
13103
- down: "ArrowDown",
13104
- esc: "Escape",
13105
- delete: "Delete",
13106
- backspace: "Backspace",
13107
- numpadEnter: "NumpadEnter",
13108
- pageUp: "PageUp",
13109
- pageDown: "PageDown",
13110
- home: "Home",
13111
- end: "End"
13112
- };
13113
-
13114
- const UPDATE_MODEL_EVENT = "update:modelValue";
13115
- const CHANGE_EVENT = "change";
13116
- const INPUT_EVENT = "input";
13117
-
13118
- const componentSizes = ["", "default", "small", "large"];
13119
-
13120
- const isKorean = (text) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(text);
13121
-
13122
- const mutable = (val) => val;
13123
-
13124
- const DEFAULT_EXCLUDE_KEYS = ["class", "style"];
13125
- const LISTENER_PREFIX = /^on[A-Z]/;
13126
- const useAttrs = (params = {}) => {
13127
- const { excludeListeners = false, excludeKeys } = params;
13128
- const allExcludeKeys = computed(() => {
13129
- return ((excludeKeys == null ? void 0 : excludeKeys.value) || []).concat(DEFAULT_EXCLUDE_KEYS);
13130
- });
13131
- const instance = getCurrentInstance();
13132
- if (!instance) {
13133
- return computed(() => ({}));
13134
- }
13135
- return computed(() => {
13136
- var _a;
13137
- return fromPairs(Object.entries((_a = instance.proxy) == null ? void 0 : _a.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))));
13138
- });
13139
- };
13140
-
13141
- const useDeprecated = ({ from, replacement, scope, version, ref, type = "API" }, condition) => {
13142
- watch(() => unref(condition), (val) => {
13143
- }, {
13144
- immediate: true
13145
- });
13146
13064
  };
13147
13065
 
13148
13066
  var English = {
@@ -13345,314 +13263,440 @@ const useLocale = (localeOverrides) => {
13345
13263
  return buildLocaleContext(computed(() => locale.value || English));
13346
13264
  };
13347
13265
 
13348
- const defaultNamespace = "el";
13349
- const statePrefix = "is-";
13350
- const _bem = (namespace, block, blockSuffix, element, modifier) => {
13351
- let cls = `${namespace}-${block}`;
13352
- if (blockSuffix) {
13353
- cls += `-${blockSuffix}`;
13354
- }
13355
- if (element) {
13356
- cls += `__${element}`;
13357
- }
13358
- if (modifier) {
13359
- cls += `--${modifier}`;
13360
- }
13361
- return cls;
13362
- };
13363
- const namespaceContextKey = Symbol("namespaceContextKey");
13364
- const useGetDerivedNamespace = (namespaceOverrides) => {
13365
- const derivedNamespace = namespaceOverrides || (getCurrentInstance() ? inject(namespaceContextKey, ref(defaultNamespace)) : ref(defaultNamespace));
13366
- const namespace = computed(() => {
13367
- return unref(derivedNamespace) || defaultNamespace;
13368
- });
13369
- return namespace;
13370
- };
13371
- const useNamespace = (block, namespaceOverrides) => {
13372
- const namespace = useGetDerivedNamespace(namespaceOverrides);
13373
- const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", "");
13374
- const e = (element) => element ? _bem(namespace.value, block, "", element, "") : "";
13375
- const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : "";
13376
- const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : "";
13377
- const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : "";
13378
- const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : "";
13379
- const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : "";
13380
- const is = (name, ...args) => {
13381
- const state = args.length >= 1 ? args[0] : true;
13382
- return name && state ? `${statePrefix}${name}` : "";
13383
- };
13384
- const cssVar = (object) => {
13385
- const styles = {};
13386
- for (const key in object) {
13387
- if (object[key]) {
13388
- styles[`--${namespace.value}-${key}`] = object[key];
13266
+ const epPropKey = "__epPropKey";
13267
+ const definePropType = (val) => val;
13268
+ const isEpProp = (val) => isObject$1(val) && !!val[epPropKey];
13269
+ const buildProp = (prop, key) => {
13270
+ if (!isObject$1(prop) || isEpProp(prop))
13271
+ return prop;
13272
+ const { values, required, default: defaultValue, type, validator } = prop;
13273
+ const _validator = values || validator ? (val) => {
13274
+ let valid = false;
13275
+ let allowedValues = [];
13276
+ if (values) {
13277
+ allowedValues = Array.from(values);
13278
+ if (hasOwn(prop, "default")) {
13279
+ allowedValues.push(defaultValue);
13389
13280
  }
13281
+ valid || (valid = allowedValues.includes(val));
13390
13282
  }
13391
- return styles;
13392
- };
13393
- const cssVarBlock = (object) => {
13394
- const styles = {};
13395
- for (const key in object) {
13396
- if (object[key]) {
13397
- styles[`--${namespace.value}-${block}-${key}`] = object[key];
13398
- }
13283
+ if (validator)
13284
+ valid || (valid = validator(val));
13285
+ if (!valid && allowedValues.length > 0) {
13286
+ const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
13287
+ warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
13399
13288
  }
13400
- return styles;
13401
- };
13402
- const cssVarName = (name) => `--${namespace.value}-${name}`;
13403
- const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`;
13404
- return {
13405
- namespace,
13406
- b,
13407
- e,
13408
- m,
13409
- be,
13410
- em,
13411
- bm,
13412
- bem,
13413
- is,
13414
- cssVar,
13415
- cssVarName,
13416
- cssVarBlock,
13417
- cssVarBlockName
13289
+ return valid;
13290
+ } : void 0;
13291
+ const epProp = {
13292
+ type,
13293
+ required: !!required,
13294
+ validator: _validator,
13295
+ [epPropKey]: true
13418
13296
  };
13297
+ if (hasOwn(prop, "default"))
13298
+ epProp.default = defaultValue;
13299
+ return epProp;
13419
13300
  };
13301
+ const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
13302
+ key,
13303
+ buildProp(option, key)
13304
+ ]));
13420
13305
 
13421
- const _prop = buildProp({
13422
- type: definePropType(Boolean),
13423
- default: null
13306
+ const componentSizes = ["", "default", "small", "large"];
13307
+
13308
+ const useSizeProp = buildProp({
13309
+ type: String,
13310
+ values: componentSizes,
13311
+ required: false
13424
13312
  });
13425
- const _event = buildProp({
13426
- type: definePropType(Function)
13313
+ const SIZE_INJECTION_KEY = Symbol("size");
13314
+ const useGlobalSize = () => {
13315
+ const injectedSize = inject(SIZE_INJECTION_KEY, {});
13316
+ return computed(() => {
13317
+ return unref(injectedSize.size) || "";
13318
+ });
13319
+ };
13320
+
13321
+ const emptyValuesContextKey = Symbol("emptyValuesContextKey");
13322
+ const DEFAULT_EMPTY_VALUES = ["", void 0, null];
13323
+ const DEFAULT_VALUE_ON_CLEAR = void 0;
13324
+ const useEmptyValuesProps = buildProps({
13325
+ emptyValues: Array,
13326
+ valueOnClear: {
13327
+ type: [String, Number, Boolean, Function],
13328
+ default: void 0,
13329
+ validator: (val) => isFunction$1(val) ? !val() : !val
13330
+ }
13427
13331
  });
13428
- const createModelToggleComposable = (name) => {
13429
- const updateEventKey = `update:${name}`;
13430
- const updateEventKeyRaw = `onUpdate:${name}`;
13431
- const useModelToggleEmits2 = [updateEventKey];
13432
- const useModelToggleProps2 = {
13433
- [name]: _prop,
13434
- [updateEventKeyRaw]: _event
13435
- };
13436
- const useModelToggle2 = ({
13437
- indicator,
13438
- toggleReason,
13439
- shouldHideWhenRouteChanges,
13440
- shouldProceed,
13441
- onShow,
13442
- onHide
13443
- }) => {
13444
- const instance = getCurrentInstance();
13445
- const { emit } = instance;
13446
- const props = instance.props;
13447
- const hasUpdateHandler = computed(() => isFunction$1(props[updateEventKeyRaw]));
13448
- const isModelBindingAbsent = computed(() => props[name] === null);
13449
- const doShow = (event) => {
13450
- if (indicator.value === true) {
13451
- return;
13452
- }
13453
- indicator.value = true;
13454
- if (toggleReason) {
13455
- toggleReason.value = event;
13456
- }
13457
- if (isFunction$1(onShow)) {
13458
- onShow(event);
13459
- }
13460
- };
13461
- const doHide = (event) => {
13462
- if (indicator.value === false) {
13463
- return;
13464
- }
13465
- indicator.value = false;
13466
- if (toggleReason) {
13467
- toggleReason.value = event;
13468
- }
13469
- if (isFunction$1(onHide)) {
13470
- onHide(event);
13471
- }
13472
- };
13473
- const show = (event) => {
13474
- if (props.disabled === true || isFunction$1(shouldProceed) && !shouldProceed())
13475
- return;
13476
- const shouldEmit = hasUpdateHandler.value && isClient;
13477
- if (shouldEmit) {
13478
- emit(updateEventKey, true);
13479
- }
13480
- if (isModelBindingAbsent.value || !shouldEmit) {
13481
- doShow(event);
13482
- }
13483
- };
13484
- const hide = (event) => {
13485
- if (props.disabled === true || !isClient)
13486
- return;
13487
- const shouldEmit = hasUpdateHandler.value && isClient;
13488
- if (shouldEmit) {
13489
- emit(updateEventKey, false);
13490
- }
13491
- if (isModelBindingAbsent.value || !shouldEmit) {
13492
- doHide(event);
13493
- }
13494
- };
13495
- const onChange = (val) => {
13496
- if (!isBoolean(val))
13497
- return;
13498
- if (props.disabled && val) {
13499
- if (hasUpdateHandler.value) {
13500
- emit(updateEventKey, false);
13501
- }
13502
- } else if (indicator.value !== val) {
13503
- if (val) {
13504
- doShow();
13505
- } else {
13506
- doHide();
13507
- }
13508
- }
13509
- };
13510
- const toggle = () => {
13511
- if (indicator.value) {
13512
- hide();
13513
- } else {
13514
- show();
13515
- }
13516
- };
13517
- watch(() => props[name], onChange);
13518
- if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) {
13519
- watch(() => ({
13520
- ...instance.proxy.$route
13521
- }), () => {
13522
- if (shouldHideWhenRouteChanges.value && indicator.value) {
13523
- hide();
13524
- }
13525
- });
13526
- }
13527
- onMounted(() => {
13528
- onChange(props[name]);
13529
- });
13530
- return {
13531
- hide,
13532
- show,
13533
- toggle,
13534
- hasUpdateHandler
13535
- };
13332
+ const useEmptyValues = (props, defaultValue) => {
13333
+ const config = getCurrentInstance() ? inject(emptyValuesContextKey, ref({})) : ref({});
13334
+ const emptyValues = computed(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES);
13335
+ const valueOnClear = computed(() => {
13336
+ if (isFunction$1(props.valueOnClear)) {
13337
+ return props.valueOnClear();
13338
+ } else if (props.valueOnClear !== void 0) {
13339
+ return props.valueOnClear;
13340
+ } else if (isFunction$1(config.value.valueOnClear)) {
13341
+ return config.value.valueOnClear();
13342
+ } else if (config.value.valueOnClear !== void 0) {
13343
+ return config.value.valueOnClear;
13344
+ }
13345
+ return defaultValue !== void 0 ? defaultValue : DEFAULT_VALUE_ON_CLEAR;
13346
+ });
13347
+ const isEmptyValue = (value) => {
13348
+ return emptyValues.value.includes(value);
13536
13349
  };
13350
+ if (!emptyValues.value.includes(valueOnClear.value)) ;
13537
13351
  return {
13538
- useModelToggle: useModelToggle2,
13539
- useModelToggleProps: useModelToggleProps2,
13540
- useModelToggleEmits: useModelToggleEmits2
13352
+ emptyValues,
13353
+ valueOnClear,
13354
+ isEmptyValue
13541
13355
  };
13542
13356
  };
13543
13357
 
13544
- const useProp = (name) => {
13545
- const vm = getCurrentInstance();
13546
- return computed(() => {
13547
- var _a, _b;
13548
- return (_b = (_a = vm == null ? void 0 : vm.proxy) == null ? void 0 : _a.$props) == null ? void 0 : _b[name];
13549
- });
13358
+ const globalConfig = ref();
13359
+ function useGlobalConfig(key, defaultValue = void 0) {
13360
+ const config = getCurrentInstance() ? inject(configProviderContextKey, globalConfig) : globalConfig;
13361
+ if (key) {
13362
+ return computed(() => {
13363
+ var _a, _b;
13364
+ return (_b = (_a = config.value) == null ? void 0 : _a[key]) != null ? _b : defaultValue;
13365
+ });
13366
+ } else {
13367
+ return config;
13368
+ }
13369
+ }
13370
+
13371
+ const UPDATE_MODEL_EVENT = "update:modelValue";
13372
+ const CHANGE_EVENT = "change";
13373
+ const INPUT_EVENT = "input";
13374
+
13375
+ var _export_sfc$1 = (sfc, props) => {
13376
+ const target = sfc.__vccOpts || sfc;
13377
+ for (const [key, val] of props) {
13378
+ target[key] = val;
13379
+ }
13380
+ return target;
13550
13381
  };
13551
13382
 
13552
- var E="top",R="bottom",W="right",P="left",me="auto",G=[E,R,W,P],U="start",J="end",Xe="clippingParents",je="viewport",K="popper",Ye="reference",De=G.reduce(function(t,e){return t.concat([e+"-"+U,e+"-"+J])},[]),Ee=[].concat(G,[me]).reduce(function(t,e){return t.concat([e,e+"-"+U,e+"-"+J])},[]),Ge="beforeRead",Je="read",Ke="afterRead",Qe="beforeMain",Ze="main",et="afterMain",tt="beforeWrite",nt="write",rt="afterWrite",ot=[Ge,Je,Ke,Qe,Ze,et,tt,nt,rt];function C(t){return t?(t.nodeName||"").toLowerCase():null}function H(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Q(t){var e=H(t).Element;return t instanceof e||t instanceof Element}function B(t){var e=H(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function Pe(t){if(typeof ShadowRoot=="undefined")return !1;var e=H(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Mt(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var r=e.styles[n]||{},o=e.attributes[n]||{},i=e.elements[n];!B(i)||!C(i)||(Object.assign(i.style,r),Object.keys(o).forEach(function(a){var s=o[a];s===!1?i.removeAttribute(a):i.setAttribute(a,s===!0?"":s);}));});}function Rt(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(r){var o=e.elements[r],i=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:n[r]),s=a.reduce(function(f,c){return f[c]="",f},{});!B(o)||!C(o)||(Object.assign(o.style,s),Object.keys(i).forEach(function(f){o.removeAttribute(f);}));});}}var Ae={name:"applyStyles",enabled:!0,phase:"write",fn:Mt,effect:Rt,requires:["computeStyles"]};function q(t){return t.split("-")[0]}var X=Math.max,ve=Math.min,Z=Math.round;function ee(t,e){e===void 0&&(e=!1);var n=t.getBoundingClientRect(),r=1,o=1;if(B(t)&&e){var i=t.offsetHeight,a=t.offsetWidth;a>0&&(r=Z(n.width)/a||1),i>0&&(o=Z(n.height)/i||1);}return {width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function ke(t){var e=ee(t),n=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:r}}function it(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return !0;if(n&&Pe(n)){var r=e;do{if(r&&t.isSameNode(r))return !0;r=r.parentNode||r.host;}while(r)}return !1}function N(t){return H(t).getComputedStyle(t)}function Wt(t){return ["table","td","th"].indexOf(C(t))>=0}function I(t){return ((Q(t)?t.ownerDocument:t.document)||window.document).documentElement}function ge(t){return C(t)==="html"?t:t.assignedSlot||t.parentNode||(Pe(t)?t.host:null)||I(t)}function at(t){return !B(t)||N(t).position==="fixed"?null:t.offsetParent}function Bt(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&B(t)){var r=N(t);if(r.position==="fixed")return null}var o=ge(t);for(Pe(o)&&(o=o.host);B(o)&&["html","body"].indexOf(C(o))<0;){var i=N(o);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return o;o=o.parentNode;}return null}function se(t){for(var e=H(t),n=at(t);n&&Wt(n)&&N(n).position==="static";)n=at(n);return n&&(C(n)==="html"||C(n)==="body"&&N(n).position==="static")?e:n||Bt(t)||e}function Le(t){return ["top","bottom"].indexOf(t)>=0?"x":"y"}function fe(t,e,n){return X(t,ve(e,n))}function St(t,e,n){var r=fe(t,e,n);return r>n?n:r}function st(){return {top:0,right:0,bottom:0,left:0}}function ft(t){return Object.assign({},st(),t)}function ct(t,e){return e.reduce(function(n,r){return n[r]=t,n},{})}var Tt=function(t,e){return t=typeof t=="function"?t(Object.assign({},e.rects,{placement:e.placement})):t,ft(typeof t!="number"?t:ct(t,G))};function Ht(t){var e,n=t.state,r=t.name,o=t.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=q(n.placement),f=Le(s),c=[P,W].indexOf(s)>=0,u=c?"height":"width";if(!(!i||!a)){var m=Tt(o.padding,n),v=ke(i),l=f==="y"?E:P,h=f==="y"?R:W,p=n.rects.reference[u]+n.rects.reference[f]-a[f]-n.rects.popper[u],g=a[f]-n.rects.reference[f],x=se(i),y=x?f==="y"?x.clientHeight||0:x.clientWidth||0:0,$=p/2-g/2,d=m[l],b=y-v[u]-m[h],w=y/2-v[u]/2+$,O=fe(d,w,b),j=f;n.modifiersData[r]=(e={},e[j]=O,e.centerOffset=O-w,e);}}function Ct(t){var e=t.state,n=t.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=e.elements.popper.querySelector(o),!o)||!it(e.elements.popper,o)||(e.elements.arrow=o));}var pt={name:"arrow",enabled:!0,phase:"main",fn:Ht,effect:Ct,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function te(t){return t.split("-")[1]}var qt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Vt(t){var e=t.x,n=t.y,r=window,o=r.devicePixelRatio||1;return {x:Z(e*o)/o||0,y:Z(n*o)/o||0}}function ut(t){var e,n=t.popper,r=t.popperRect,o=t.placement,i=t.variation,a=t.offsets,s=t.position,f=t.gpuAcceleration,c=t.adaptive,u=t.roundOffsets,m=t.isFixed,v=a.x,l=v===void 0?0:v,h=a.y,p=h===void 0?0:h,g=typeof u=="function"?u({x:l,y:p}):{x:l,y:p};l=g.x,p=g.y;var x=a.hasOwnProperty("x"),y=a.hasOwnProperty("y"),$=P,d=E,b=window;if(c){var w=se(n),O="clientHeight",j="clientWidth";if(w===H(n)&&(w=I(n),N(w).position!=="static"&&s==="absolute"&&(O="scrollHeight",j="scrollWidth")),w=w,o===E||(o===P||o===W)&&i===J){d=R;var A=m&&w===b&&b.visualViewport?b.visualViewport.height:w[O];p-=A-r.height,p*=f?1:-1;}if(o===P||(o===E||o===R)&&i===J){$=W;var k=m&&w===b&&b.visualViewport?b.visualViewport.width:w[j];l-=k-r.width,l*=f?1:-1;}}var D=Object.assign({position:s},c&&qt),S=u===!0?Vt({x:l,y:p}):{x:l,y:p};if(l=S.x,p=S.y,f){var L;return Object.assign({},D,(L={},L[d]=y?"0":"",L[$]=x?"0":"",L.transform=(b.devicePixelRatio||1)<=1?"translate("+l+"px, "+p+"px)":"translate3d("+l+"px, "+p+"px, 0)",L))}return Object.assign({},D,(e={},e[d]=y?p+"px":"",e[$]=x?l+"px":"",e.transform="",e))}function Nt(t){var e=t.state,n=t.options,r=n.gpuAcceleration,o=r===void 0?!0:r,i=n.adaptive,a=i===void 0?!0:i,s=n.roundOffsets,f=s===void 0?!0:s,c={placement:q(e.placement),variation:te(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,ut(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:f})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,ut(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement});}var Me={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Nt,data:{}},ye={passive:!0};function It(t){var e=t.state,n=t.instance,r=t.options,o=r.scroll,i=o===void 0?!0:o,a=r.resize,s=a===void 0?!0:a,f=H(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,ye);}),s&&f.addEventListener("resize",n.update,ye),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,ye);}),s&&f.removeEventListener("resize",n.update,ye);}}var Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:It,data:{}},_t={left:"right",right:"left",bottom:"top",top:"bottom"};function be(t){return t.replace(/left|right|bottom|top/g,function(e){return _t[e]})}var zt={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,function(e){return zt[e]})}function We(t){var e=H(t),n=e.pageXOffset,r=e.pageYOffset;return {scrollLeft:n,scrollTop:r}}function Be(t){return ee(I(t)).left+We(t).scrollLeft}function Ft(t){var e=H(t),n=I(t),r=e.visualViewport,o=n.clientWidth,i=n.clientHeight,a=0,s=0;return r&&(o=r.width,i=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,s=r.offsetTop)),{width:o,height:i,x:a+Be(t),y:s}}function Ut(t){var e,n=I(t),r=We(t),o=(e=t.ownerDocument)==null?void 0:e.body,i=X(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=X(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+Be(t),f=-r.scrollTop;return N(o||n).direction==="rtl"&&(s+=X(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:f}}function Se(t){var e=N(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return /auto|scroll|overlay|hidden/.test(n+o+r)}function dt(t){return ["html","body","#document"].indexOf(C(t))>=0?t.ownerDocument.body:B(t)&&Se(t)?t:dt(ge(t))}function ce(t,e){var n;e===void 0&&(e=[]);var r=dt(t),o=r===((n=t.ownerDocument)==null?void 0:n.body),i=H(r),a=o?[i].concat(i.visualViewport||[],Se(r)?r:[]):r,s=e.concat(a);return o?s:s.concat(ce(ge(a)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Xt(t){var e=ee(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function ht(t,e){return e===je?Te(Ft(t)):Q(e)?Xt(e):Te(Ut(I(t)))}function Yt(t){var e=ce(ge(t)),n=["absolute","fixed"].indexOf(N(t).position)>=0,r=n&&B(t)?se(t):t;return Q(r)?e.filter(function(o){return Q(o)&&it(o,r)&&C(o)!=="body"}):[]}function Gt(t,e,n){var r=e==="clippingParents"?Yt(t):[].concat(e),o=[].concat(r,[n]),i=o[0],a=o.reduce(function(s,f){var c=ht(t,f);return s.top=X(c.top,s.top),s.right=ve(c.right,s.right),s.bottom=ve(c.bottom,s.bottom),s.left=X(c.left,s.left),s},ht(t,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function mt(t){var e=t.reference,n=t.element,r=t.placement,o=r?q(r):null,i=r?te(r):null,a=e.x+e.width/2-n.width/2,s=e.y+e.height/2-n.height/2,f;switch(o){case E:f={x:a,y:e.y-n.height};break;case R:f={x:a,y:e.y+e.height};break;case W:f={x:e.x+e.width,y:s};break;case P:f={x:e.x-n.width,y:s};break;default:f={x:e.x,y:e.y};}var c=o?Le(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case U:f[c]=f[c]-(e[u]/2-n[u]/2);break;case J:f[c]=f[c]+(e[u]/2-n[u]/2);break}}return f}function ne(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=r===void 0?t.placement:r,i=n.boundary,a=i===void 0?Xe:i,s=n.rootBoundary,f=s===void 0?je:s,c=n.elementContext,u=c===void 0?K:c,m=n.altBoundary,v=m===void 0?!1:m,l=n.padding,h=l===void 0?0:l,p=ft(typeof h!="number"?h:ct(h,G)),g=u===K?Ye:K,x=t.rects.popper,y=t.elements[v?g:u],$=Gt(Q(y)?y:y.contextElement||I(t.elements.popper),a,f),d=ee(t.elements.reference),b=mt({reference:d,element:x,strategy:"absolute",placement:o}),w=Te(Object.assign({},x,b)),O=u===K?w:d,j={top:$.top-O.top+p.top,bottom:O.bottom-$.bottom+p.bottom,left:$.left-O.left+p.left,right:O.right-$.right+p.right},A=t.modifiersData.offset;if(u===K&&A){var k=A[o];Object.keys(j).forEach(function(D){var S=[W,R].indexOf(D)>=0?1:-1,L=[E,R].indexOf(D)>=0?"y":"x";j[D]+=k[L]*S;});}return j}function Jt(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=f===void 0?Ee:f,u=te(r),m=u?s?De:De.filter(function(h){return te(h)===u}):G,v=m.filter(function(h){return c.indexOf(h)>=0});v.length===0&&(v=m);var l=v.reduce(function(h,p){return h[p]=ne(t,{placement:p,boundary:o,rootBoundary:i,padding:a})[q(p)],h},{});return Object.keys(l).sort(function(h,p){return l[h]-l[p]})}function Kt(t){if(q(t)===me)return [];var e=be(t);return [lt(t),e,lt(e)]}function Qt(t){var e=t.state,n=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!0:a,f=n.fallbackPlacements,c=n.padding,u=n.boundary,m=n.rootBoundary,v=n.altBoundary,l=n.flipVariations,h=l===void 0?!0:l,p=n.allowedAutoPlacements,g=e.options.placement,x=q(g),y=x===g,$=f||(y||!h?[be(g)]:Kt(g)),d=[g].concat($).reduce(function(z,V){return z.concat(q(V)===me?Jt(e,{placement:V,boundary:u,rootBoundary:m,padding:c,flipVariations:h,allowedAutoPlacements:p}):V)},[]),b=e.rects.reference,w=e.rects.popper,O=new Map,j=!0,A=d[0],k=0;k<d.length;k++){var D=d[k],S=q(D),L=te(D)===U,re=[E,R].indexOf(S)>=0,oe=re?"width":"height",M=ne(e,{placement:D,boundary:u,rootBoundary:m,altBoundary:v,padding:c}),T=re?L?W:P:L?R:E;b[oe]>w[oe]&&(T=be(T));var pe=be(T),_=[];if(i&&_.push(M[S]<=0),s&&_.push(M[T]<=0,M[pe]<=0),_.every(function(z){return z})){A=D,j=!1;break}O.set(D,_);}if(j)for(var ue=h?3:1,xe=function(z){var V=d.find(function(de){var ae=O.get(de);if(ae)return ae.slice(0,z).every(function(Y){return Y})});if(V)return A=V,"break"},ie=ue;ie>0;ie--){var le=xe(ie);if(le==="break")break}e.placement!==A&&(e.modifiersData[r]._skip=!0,e.placement=A,e.reset=!0);}}var vt={name:"flip",enabled:!0,phase:"main",fn:Qt,requiresIfExists:["offset"],data:{_skip:!1}};function gt(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function yt(t){return [E,W,R,P].some(function(e){return t[e]>=0})}function Zt(t){var e=t.state,n=t.name,r=e.rects.reference,o=e.rects.popper,i=e.modifiersData.preventOverflow,a=ne(e,{elementContext:"reference"}),s=ne(e,{altBoundary:!0}),f=gt(a,r),c=gt(s,o,i),u=yt(f),m=yt(c);e.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:m},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":m});}var bt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Zt};function en(t,e,n){var r=q(t),o=[P,E].indexOf(r)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,W].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function tn(t){var e=t.state,n=t.options,r=t.name,o=n.offset,i=o===void 0?[0,0]:o,a=Ee.reduce(function(u,m){return u[m]=en(m,e.rects,i),u},{}),s=a[e.placement],f=s.x,c=s.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=f,e.modifiersData.popperOffsets.y+=c),e.modifiersData[r]=a;}var wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:tn};function nn(t){var e=t.state,n=t.name;e.modifiersData[n]=mt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement});}var He={name:"popperOffsets",enabled:!0,phase:"read",fn:nn,data:{}};function rn(t){return t==="x"?"y":"x"}function on(t){var e=t.state,n=t.options,r=t.name,o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!1:a,f=n.boundary,c=n.rootBoundary,u=n.altBoundary,m=n.padding,v=n.tether,l=v===void 0?!0:v,h=n.tetherOffset,p=h===void 0?0:h,g=ne(e,{boundary:f,rootBoundary:c,padding:m,altBoundary:u}),x=q(e.placement),y=te(e.placement),$=!y,d=Le(x),b=rn(d),w=e.modifiersData.popperOffsets,O=e.rects.reference,j=e.rects.popper,A=typeof p=="function"?p(Object.assign({},e.rects,{placement:e.placement})):p,k=typeof A=="number"?{mainAxis:A,altAxis:A}:Object.assign({mainAxis:0,altAxis:0},A),D=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,S={x:0,y:0};if(w){if(i){var L,re=d==="y"?E:P,oe=d==="y"?R:W,M=d==="y"?"height":"width",T=w[d],pe=T+g[re],_=T-g[oe],ue=l?-j[M]/2:0,xe=y===U?O[M]:j[M],ie=y===U?-j[M]:-O[M],le=e.elements.arrow,z=l&&le?ke(le):{width:0,height:0},V=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:st(),de=V[re],ae=V[oe],Y=fe(0,O[M],z[M]),jt=$?O[M]/2-ue-Y-de-k.mainAxis:xe-Y-de-k.mainAxis,Dt=$?-O[M]/2+ue+Y+ae+k.mainAxis:ie+Y+ae+k.mainAxis,Oe=e.elements.arrow&&se(e.elements.arrow),Et=Oe?d==="y"?Oe.clientTop||0:Oe.clientLeft||0:0,Ce=(L=D==null?void 0:D[d])!=null?L:0,Pt=T+jt-Ce-Et,At=T+Dt-Ce,qe=fe(l?ve(pe,Pt):pe,T,l?X(_,At):_);w[d]=qe,S[d]=qe-T;}if(s){var Ve,kt=d==="x"?E:P,Lt=d==="x"?R:W,F=w[b],he=b==="y"?"height":"width",Ne=F+g[kt],Ie=F-g[Lt],$e=[E,P].indexOf(x)!==-1,_e=(Ve=D==null?void 0:D[b])!=null?Ve:0,ze=$e?Ne:F-O[he]-j[he]-_e+k.altAxis,Fe=$e?F+O[he]+j[he]-_e-k.altAxis:Ie,Ue=l&&$e?St(ze,F,Fe):fe(l?ze:Ne,F,l?Fe:Ie);w[b]=Ue,S[b]=Ue-F;}e.modifiersData[r]=S;}}var xt={name:"preventOverflow",enabled:!0,phase:"main",fn:on,requiresIfExists:["offset"]};function an(t){return {scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function sn(t){return t===H(t)||!B(t)?We(t):an(t)}function fn(t){var e=t.getBoundingClientRect(),n=Z(e.width)/t.offsetWidth||1,r=Z(e.height)/t.offsetHeight||1;return n!==1||r!==1}function cn(t,e,n){n===void 0&&(n=!1);var r=B(e),o=B(e)&&fn(e),i=I(e),a=ee(t,o),s={scrollLeft:0,scrollTop:0},f={x:0,y:0};return (r||!r&&!n)&&((C(e)!=="body"||Se(i))&&(s=sn(e)),B(e)?(f=ee(e,!0),f.x+=e.clientLeft,f.y+=e.clientTop):i&&(f.x=Be(i))),{x:a.left+s.scrollLeft-f.x,y:a.top+s.scrollTop-f.y,width:a.width,height:a.height}}function pn(t){var e=new Map,n=new Set,r=[];t.forEach(function(i){e.set(i.name,i);});function o(i){n.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var f=e.get(s);f&&o(f);}}),r.push(i);}return t.forEach(function(i){n.has(i.name)||o(i);}),r}function un(t){var e=pn(t);return ot.reduce(function(n,r){return n.concat(e.filter(function(o){return o.phase===r}))},[])}function ln(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t());});})),e}}function dn(t){var e=t.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(e).map(function(n){return e[n]})}var Ot={placement:"bottom",modifiers:[],strategy:"absolute"};function $t(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return !e.some(function(r){return !(r&&typeof r.getBoundingClientRect=="function")})}function we(t){t===void 0&&(t={});var e=t,n=e.defaultModifiers,r=n===void 0?[]:n,o=e.defaultOptions,i=o===void 0?Ot:o;return function(a,s,f){f===void 0&&(f=i);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ot,i),modifiersData:{},elements:{reference:a,popper:s},attributes:{},styles:{}},u=[],m=!1,v={state:c,setOptions:function(p){var g=typeof p=="function"?p(c.options):p;h(),c.options=Object.assign({},i,c.options,g),c.scrollParents={reference:Q(a)?ce(a):a.contextElement?ce(a.contextElement):[],popper:ce(s)};var x=un(dn([].concat(r,c.options.modifiers)));return c.orderedModifiers=x.filter(function(y){return y.enabled}),l(),v.update()},forceUpdate:function(){if(!m){var p=c.elements,g=p.reference,x=p.popper;if($t(g,x)){c.rects={reference:cn(g,se(x),c.options.strategy==="fixed"),popper:ke(x)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(j){return c.modifiersData[j.name]=Object.assign({},j.data)});for(var y=0;y<c.orderedModifiers.length;y++){if(c.reset===!0){c.reset=!1,y=-1;continue}var $=c.orderedModifiers[y],d=$.fn,b=$.options,w=b===void 0?{}:b,O=$.name;typeof d=="function"&&(c=d({state:c,options:w,name:O,instance:v})||c);}}}},update:ln(function(){return new Promise(function(p){v.forceUpdate(),p(c);})}),destroy:function(){h(),m=!0;}};if(!$t(a,s))return v;v.setOptions(f).then(function(p){!m&&f.onFirstUpdate&&f.onFirstUpdate(p);});function l(){c.orderedModifiers.forEach(function(p){var g=p.name,x=p.options,y=x===void 0?{}:x,$=p.effect;if(typeof $=="function"){var d=$({state:c,name:g,instance:v,options:y}),b=function(){};u.push(d||b);}});}function h(){u.forEach(function(p){return p()}),u=[];}return v}}we();var mn=[Re,He,Me,Ae];we({defaultModifiers:mn});var gn=[Re,He,Me,Ae,wt,vt,xt,pt,bt],yn=we({defaultModifiers:gn});
13383
+ function addUnit(value, defaultUnit = "px") {
13384
+ if (!value)
13385
+ return "";
13386
+ if (isNumber(value) || isStringNumber(value)) {
13387
+ return `${value}${defaultUnit}`;
13388
+ } else if (isString$1(value)) {
13389
+ return value;
13390
+ }
13391
+ }
13553
13392
 
13554
- const usePopper = (referenceElementRef, popperElementRef, opts = {}) => {
13555
- const stateUpdater = {
13556
- name: "updateState",
13557
- enabled: true,
13558
- phase: "write",
13559
- fn: ({ state }) => {
13560
- const derivedState = deriveState(state);
13561
- Object.assign(states.value, derivedState);
13562
- },
13563
- requires: ["computeStyles"]
13393
+ function scrollIntoView(container, selected) {
13394
+ if (!isClient)
13395
+ return;
13396
+ if (!selected) {
13397
+ container.scrollTop = 0;
13398
+ return;
13399
+ }
13400
+ const offsetParents = [];
13401
+ let pointer = selected.offsetParent;
13402
+ while (pointer !== null && container !== pointer && container.contains(pointer)) {
13403
+ offsetParents.push(pointer);
13404
+ pointer = pointer.offsetParent;
13405
+ }
13406
+ const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0);
13407
+ const bottom = top + selected.offsetHeight;
13408
+ const viewRectTop = container.scrollTop;
13409
+ const viewRectBottom = viewRectTop + container.clientHeight;
13410
+ if (top < viewRectTop) {
13411
+ container.scrollTop = top;
13412
+ } else if (bottom > viewRectBottom) {
13413
+ container.scrollTop = bottom - container.clientHeight;
13414
+ }
13415
+ }
13416
+
13417
+ const withInstall = (main, extra) => {
13418
+ main.install = (app) => {
13419
+ for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
13420
+ app.component(comp.name, comp);
13421
+ }
13564
13422
  };
13565
- const options = computed(() => {
13566
- const { onFirstUpdate, placement, strategy, modifiers } = unref(opts);
13567
- return {
13568
- onFirstUpdate,
13569
- placement: placement || "bottom",
13570
- strategy: strategy || "absolute",
13571
- modifiers: [
13572
- ...modifiers || [],
13573
- stateUpdater,
13574
- { name: "applyStyles", enabled: false }
13575
- ]
13576
- };
13577
- });
13578
- const instanceRef = shallowRef();
13579
- const states = ref({
13580
- styles: {
13581
- popper: {
13582
- position: unref(options).strategy,
13583
- left: "0",
13584
- top: "0"
13585
- },
13586
- arrow: {
13587
- position: "absolute"
13588
- }
13589
- },
13590
- attributes: {}
13591
- });
13592
- const destroy = () => {
13593
- if (!instanceRef.value)
13594
- return;
13595
- instanceRef.value.destroy();
13596
- instanceRef.value = void 0;
13423
+ if (extra) {
13424
+ for (const [key, comp] of Object.entries(extra)) {
13425
+ main[key] = comp;
13426
+ }
13427
+ }
13428
+ return main;
13429
+ };
13430
+ const withInstallDirective = (directive, name) => {
13431
+ directive.install = (app) => {
13432
+ app.directive(name, directive);
13597
13433
  };
13598
- watch(options, (newOptions) => {
13599
- const instance = unref(instanceRef);
13600
- if (instance) {
13601
- instance.setOptions(newOptions);
13434
+ return directive;
13435
+ };
13436
+ const withNoopInstall = (component) => {
13437
+ component.install = NOOP;
13438
+ return component;
13439
+ };
13440
+
13441
+ const iconProps = buildProps({
13442
+ size: {
13443
+ type: definePropType([Number, String])
13444
+ },
13445
+ color: {
13446
+ type: String
13447
+ }
13448
+ });
13449
+
13450
+ const __default__$r = defineComponent({
13451
+ name: "ElIcon",
13452
+ inheritAttrs: false
13453
+ });
13454
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
13455
+ ...__default__$r,
13456
+ props: iconProps,
13457
+ setup(__props) {
13458
+ const props = __props;
13459
+ const ns = useNamespace("icon");
13460
+ const style = computed(() => {
13461
+ const { size, color } = props;
13462
+ if (!size && !color)
13463
+ return {};
13464
+ return {
13465
+ fontSize: isUndefined(size) ? void 0 : addUnit(size),
13466
+ "--color": color
13467
+ };
13468
+ });
13469
+ return (_ctx, _cache) => {
13470
+ return openBlock(), createElementBlock("i", mergeProps({
13471
+ class: unref(ns).b(),
13472
+ style: unref(style)
13473
+ }, _ctx.$attrs), [
13474
+ renderSlot(_ctx.$slots, "default")
13475
+ ], 16);
13476
+ };
13477
+ }
13478
+ });
13479
+ var Icon = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__file", "icon.vue"]]);
13480
+
13481
+ const ElIcon = withInstall(Icon);
13482
+
13483
+ const iconPropType = definePropType([
13484
+ String,
13485
+ Object,
13486
+ Function
13487
+ ]);
13488
+ const ValidateComponentsMap = {
13489
+ validating: loading_default,
13490
+ success: circle_check_default,
13491
+ error: circle_close_default
13492
+ };
13493
+
13494
+ const isFirefox = () => isClient && /firefox/i.test(window.navigator.userAgent);
13495
+
13496
+ let hiddenTextarea = void 0;
13497
+ const HIDDEN_STYLE = `
13498
+ height:0 !important;
13499
+ visibility:hidden !important;
13500
+ ${isFirefox() ? "" : "overflow:hidden !important;"}
13501
+ position:absolute !important;
13502
+ z-index:-1000 !important;
13503
+ top:0 !important;
13504
+ right:0 !important;
13505
+ `;
13506
+ const CONTEXT_STYLE = [
13507
+ "letter-spacing",
13508
+ "line-height",
13509
+ "padding-top",
13510
+ "padding-bottom",
13511
+ "font-family",
13512
+ "font-weight",
13513
+ "font-size",
13514
+ "text-rendering",
13515
+ "text-transform",
13516
+ "width",
13517
+ "text-indent",
13518
+ "padding-left",
13519
+ "padding-right",
13520
+ "border-width",
13521
+ "box-sizing"
13522
+ ];
13523
+ function calculateNodeStyling(targetElement) {
13524
+ const style = window.getComputedStyle(targetElement);
13525
+ const boxSizing = style.getPropertyValue("box-sizing");
13526
+ const paddingSize = Number.parseFloat(style.getPropertyValue("padding-bottom")) + Number.parseFloat(style.getPropertyValue("padding-top"));
13527
+ const borderSize = Number.parseFloat(style.getPropertyValue("border-bottom-width")) + Number.parseFloat(style.getPropertyValue("border-top-width"));
13528
+ const contextStyle = CONTEXT_STYLE.map((name) => `${name}:${style.getPropertyValue(name)}`).join(";");
13529
+ return { contextStyle, paddingSize, borderSize, boxSizing };
13530
+ }
13531
+ function calcTextareaHeight(targetElement, minRows = 1, maxRows) {
13532
+ var _a;
13533
+ if (!hiddenTextarea) {
13534
+ hiddenTextarea = document.createElement("textarea");
13535
+ document.body.appendChild(hiddenTextarea);
13536
+ }
13537
+ const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement);
13538
+ hiddenTextarea.setAttribute("style", `${contextStyle};${HIDDEN_STYLE}`);
13539
+ hiddenTextarea.value = targetElement.value || targetElement.placeholder || "";
13540
+ let height = hiddenTextarea.scrollHeight;
13541
+ const result = {};
13542
+ if (boxSizing === "border-box") {
13543
+ height = height + borderSize;
13544
+ } else if (boxSizing === "content-box") {
13545
+ height = height - paddingSize;
13546
+ }
13547
+ hiddenTextarea.value = "";
13548
+ const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
13549
+ if (isNumber(minRows)) {
13550
+ let minHeight = singleRowHeight * minRows;
13551
+ if (boxSizing === "border-box") {
13552
+ minHeight = minHeight + paddingSize + borderSize;
13602
13553
  }
13603
- }, {
13604
- deep: true
13605
- });
13606
- watch([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => {
13607
- destroy();
13608
- if (!referenceElement || !popperElement)
13609
- return;
13610
- instanceRef.value = yn(referenceElement, popperElement, unref(options));
13554
+ height = Math.max(minHeight, height);
13555
+ result.minHeight = `${minHeight}px`;
13556
+ }
13557
+ if (isNumber(maxRows)) {
13558
+ let maxHeight = singleRowHeight * maxRows;
13559
+ if (boxSizing === "border-box") {
13560
+ maxHeight = maxHeight + paddingSize + borderSize;
13561
+ }
13562
+ height = Math.min(maxHeight, height);
13563
+ }
13564
+ result.height = `${height}px`;
13565
+ (_a = hiddenTextarea.parentNode) == null ? void 0 : _a.removeChild(hiddenTextarea);
13566
+ hiddenTextarea = void 0;
13567
+ return result;
13568
+ }
13569
+
13570
+ const mutable = (val) => val;
13571
+
13572
+ const ariaProps = buildProps({
13573
+ ariaLabel: String,
13574
+ ariaOrientation: {
13575
+ type: String,
13576
+ values: ["horizontal", "vertical", "undefined"]
13577
+ },
13578
+ ariaControls: String
13579
+ });
13580
+ const useAriaProps = (arias) => {
13581
+ return pick(ariaProps, arias);
13582
+ };
13583
+
13584
+ const inputProps = buildProps({
13585
+ id: {
13586
+ type: String,
13587
+ default: void 0
13588
+ },
13589
+ size: useSizeProp,
13590
+ disabled: Boolean,
13591
+ modelValue: {
13592
+ type: definePropType([
13593
+ String,
13594
+ Number,
13595
+ Object
13596
+ ]),
13597
+ default: ""
13598
+ },
13599
+ maxlength: {
13600
+ type: [String, Number]
13601
+ },
13602
+ minlength: {
13603
+ type: [String, Number]
13604
+ },
13605
+ type: {
13606
+ type: String,
13607
+ default: "text"
13608
+ },
13609
+ resize: {
13610
+ type: String,
13611
+ values: ["none", "both", "horizontal", "vertical"]
13612
+ },
13613
+ autosize: {
13614
+ type: definePropType([Boolean, Object]),
13615
+ default: false
13616
+ },
13617
+ autocomplete: {
13618
+ type: String,
13619
+ default: "off"
13620
+ },
13621
+ formatter: {
13622
+ type: Function
13623
+ },
13624
+ parser: {
13625
+ type: Function
13626
+ },
13627
+ placeholder: {
13628
+ type: String
13629
+ },
13630
+ form: {
13631
+ type: String
13632
+ },
13633
+ readonly: Boolean,
13634
+ clearable: Boolean,
13635
+ showPassword: Boolean,
13636
+ showWordLimit: Boolean,
13637
+ suffixIcon: {
13638
+ type: iconPropType
13639
+ },
13640
+ prefixIcon: {
13641
+ type: iconPropType
13642
+ },
13643
+ containerRole: {
13644
+ type: String,
13645
+ default: void 0
13646
+ },
13647
+ tabindex: {
13648
+ type: [String, Number],
13649
+ default: 0
13650
+ },
13651
+ validateEvent: {
13652
+ type: Boolean,
13653
+ default: true
13654
+ },
13655
+ inputStyle: {
13656
+ type: definePropType([Object, Array, String]),
13657
+ default: () => mutable({})
13658
+ },
13659
+ autofocus: Boolean,
13660
+ rows: {
13661
+ type: Number,
13662
+ default: 2
13663
+ },
13664
+ ...useAriaProps(["ariaLabel"])
13665
+ });
13666
+ const inputEmits = {
13667
+ [UPDATE_MODEL_EVENT]: (value) => isString$1(value),
13668
+ input: (value) => isString$1(value),
13669
+ change: (value) => isString$1(value),
13670
+ focus: (evt) => evt instanceof FocusEvent,
13671
+ blur: (evt) => evt instanceof FocusEvent,
13672
+ clear: () => true,
13673
+ mouseleave: (evt) => evt instanceof MouseEvent,
13674
+ mouseenter: (evt) => evt instanceof MouseEvent,
13675
+ keydown: (evt) => evt instanceof Event,
13676
+ compositionstart: (evt) => evt instanceof CompositionEvent,
13677
+ compositionupdate: (evt) => evt instanceof CompositionEvent,
13678
+ compositionend: (evt) => evt instanceof CompositionEvent
13679
+ };
13680
+
13681
+ const DEFAULT_EXCLUDE_KEYS = ["class", "style"];
13682
+ const LISTENER_PREFIX = /^on[A-Z]/;
13683
+ const useAttrs = (params = {}) => {
13684
+ const { excludeListeners = false, excludeKeys } = params;
13685
+ const allExcludeKeys = computed(() => {
13686
+ return ((excludeKeys == null ? void 0 : excludeKeys.value) || []).concat(DEFAULT_EXCLUDE_KEYS);
13611
13687
  });
13612
- onBeforeUnmount(() => {
13613
- destroy();
13688
+ const instance = getCurrentInstance();
13689
+ if (!instance) {
13690
+ return computed(() => ({}));
13691
+ }
13692
+ return computed(() => {
13693
+ var _a;
13694
+ return fromPairs(Object.entries((_a = instance.proxy) == null ? void 0 : _a.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))));
13614
13695
  });
13615
- return {
13616
- state: computed(() => {
13617
- var _a;
13618
- return { ...((_a = unref(instanceRef)) == null ? void 0 : _a.state) || {} };
13619
- }),
13620
- styles: computed(() => unref(states).styles),
13621
- attributes: computed(() => unref(states).attributes),
13622
- update: () => {
13623
- var _a;
13624
- return (_a = unref(instanceRef)) == null ? void 0 : _a.update();
13625
- },
13626
- forceUpdate: () => {
13627
- var _a;
13628
- return (_a = unref(instanceRef)) == null ? void 0 : _a.forceUpdate();
13629
- },
13630
- instanceRef: computed(() => unref(instanceRef))
13631
- };
13632
13696
  };
13633
- function deriveState(state) {
13634
- const elements = Object.keys(state.elements);
13635
- const styles = fromPairs(elements.map((element) => [element, state.styles[element] || {}]));
13636
- const attributes = fromPairs(elements.map((element) => [element, state.attributes[element]]));
13637
- return {
13638
- styles,
13639
- attributes
13640
- };
13641
- }
13642
13697
 
13643
- function useTimeout() {
13644
- let timeoutHandle;
13645
- const registerTimeout = (fn, delay) => {
13646
- cancelTimeout();
13647
- timeoutHandle = window.setTimeout(fn, delay);
13648
- };
13649
- const cancelTimeout = () => window.clearTimeout(timeoutHandle);
13650
- tryOnScopeDispose(() => cancelTimeout());
13651
- return {
13652
- registerTimeout,
13653
- cancelTimeout
13654
- };
13655
- }
13698
+ const formContextKey = Symbol("formContextKey");
13699
+ const formItemContextKey = Symbol("formItemContextKey");
13656
13700
 
13657
13701
  const defaultIdInjection = {
13658
13702
  prefix: Math.floor(Math.random() * 1e4),
@@ -13665,223 +13709,83 @@ const useIdInjection = () => {
13665
13709
  const useId = (deterministicId) => {
13666
13710
  const idInjection = useIdInjection();
13667
13711
  const namespace = useGetDerivedNamespace();
13668
- const idRef = computed(() => unref(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`);
13712
+ const idRef = computedEager(() => unref(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`);
13669
13713
  return idRef;
13670
13714
  };
13671
13715
 
13672
- let registeredEscapeHandlers = [];
13673
- const cachedHandler = (e) => {
13674
- const event = e;
13675
- if (event.key === EVENT_CODE.esc) {
13676
- registeredEscapeHandlers.forEach((registeredHandler) => registeredHandler(event));
13677
- }
13678
- };
13679
- const useEscapeKeydown = (handler) => {
13680
- onMounted(() => {
13681
- if (registeredEscapeHandlers.length === 0) {
13682
- document.addEventListener("keydown", cachedHandler);
13683
- }
13684
- if (isClient)
13685
- registeredEscapeHandlers.push(handler);
13686
- });
13687
- onBeforeUnmount(() => {
13688
- registeredEscapeHandlers = registeredEscapeHandlers.filter((registeredHandler) => registeredHandler !== handler);
13689
- if (registeredEscapeHandlers.length === 0) {
13690
- if (isClient)
13691
- document.removeEventListener("keydown", cachedHandler);
13692
- }
13693
- });
13694
- };
13695
-
13696
- let cachedContainer;
13697
- const usePopperContainerId = () => {
13698
- const namespace = useGetDerivedNamespace();
13699
- const idInjection = useIdInjection();
13700
- const id = computed(() => {
13701
- return `${namespace.value}-popper-container-${idInjection.prefix}`;
13702
- });
13703
- const selector = computed(() => `#${id.value}`);
13704
- return {
13705
- id,
13706
- selector
13707
- };
13708
- };
13709
- const createContainer = (id) => {
13710
- const container = document.createElement("div");
13711
- container.id = id;
13712
- document.body.appendChild(container);
13713
- return container;
13714
- };
13715
- const usePopperContainer = () => {
13716
- const { id, selector } = usePopperContainerId();
13717
- onBeforeMount(() => {
13718
- if (!isClient)
13719
- return;
13720
- if (!cachedContainer || !document.body.querySelector(selector.value)) {
13721
- cachedContainer = createContainer(id.value);
13722
- }
13723
- });
13716
+ const useFormItem = () => {
13717
+ const form = inject(formContextKey, void 0);
13718
+ const formItem = inject(formItemContextKey, void 0);
13724
13719
  return {
13725
- id,
13726
- selector
13720
+ form,
13721
+ formItem
13727
13722
  };
13728
13723
  };
13729
-
13730
- const useDelayedToggleProps = buildProps({
13731
- showAfter: {
13732
- type: Number,
13733
- default: 0
13734
- },
13735
- hideAfter: {
13736
- type: Number,
13737
- default: 200
13738
- },
13739
- autoClose: {
13740
- type: Number,
13741
- default: 0
13742
- }
13743
- });
13744
- const useDelayedToggle = ({
13745
- showAfter,
13746
- hideAfter,
13747
- autoClose,
13748
- open,
13749
- close
13724
+ const useFormItemInputId = (props, {
13725
+ formItemContext,
13726
+ disableIdGeneration,
13727
+ disableIdManagement
13750
13728
  }) => {
13751
- const { registerTimeout } = useTimeout();
13752
- const {
13753
- registerTimeout: registerTimeoutForAutoClose,
13754
- cancelTimeout: cancelTimeoutForAutoClose
13755
- } = useTimeout();
13756
- const onOpen = (event) => {
13757
- registerTimeout(() => {
13758
- open(event);
13759
- const _autoClose = unref(autoClose);
13760
- if (isNumber(_autoClose) && _autoClose > 0) {
13761
- registerTimeoutForAutoClose(() => {
13762
- close(event);
13763
- }, _autoClose);
13764
- }
13765
- }, unref(showAfter));
13766
- };
13767
- const onClose = (event) => {
13768
- cancelTimeoutForAutoClose();
13769
- registerTimeout(() => {
13770
- close(event);
13771
- }, unref(hideAfter));
13772
- };
13773
- return {
13774
- onOpen,
13775
- onClose
13776
- };
13777
- };
13778
-
13779
- const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef");
13780
- const useForwardRef = (forwardRef) => {
13781
- const setForwardRef = (el) => {
13782
- forwardRef.value = el;
13783
- };
13784
- provide(FORWARD_REF_INJECTION_KEY, {
13785
- setForwardRef
13786
- });
13787
- };
13788
- const useForwardRefDirective = (setForwardRef) => {
13789
- return {
13790
- mounted(el) {
13791
- setForwardRef(el);
13792
- },
13793
- updated(el) {
13794
- setForwardRef(el);
13795
- },
13796
- unmounted() {
13797
- setForwardRef(null);
13798
- }
13799
- };
13800
- };
13801
-
13802
- const initial = {
13803
- current: 0
13804
- };
13805
- const zIndex = ref(0);
13806
- const defaultInitialZIndex = 2e3;
13807
- const ZINDEX_INJECTION_KEY = Symbol("elZIndexContextKey");
13808
- const zIndexContextKey = Symbol("zIndexContextKey");
13809
- const useZIndex = (zIndexOverrides) => {
13810
- const increasingInjection = getCurrentInstance() ? inject(ZINDEX_INJECTION_KEY, initial) : initial;
13811
- const zIndexInjection = zIndexOverrides || (getCurrentInstance() ? inject(zIndexContextKey, void 0) : void 0);
13812
- const initialZIndex = computed(() => {
13813
- const zIndexFromInjection = unref(zIndexInjection);
13814
- return isNumber(zIndexFromInjection) ? zIndexFromInjection : defaultInitialZIndex;
13815
- });
13816
- const currentZIndex = computed(() => initialZIndex.value + zIndex.value);
13817
- const nextZIndex = () => {
13818
- increasingInjection.current++;
13819
- zIndex.value = increasingInjection.current;
13820
- return currentZIndex.value;
13821
- };
13822
- if (!isClient && !inject(ZINDEX_INJECTION_KEY)) ;
13823
- return {
13824
- initialZIndex,
13825
- currentZIndex,
13826
- nextZIndex
13827
- };
13828
- };
13829
-
13830
- function useCursor(input) {
13831
- let selectionInfo;
13832
- function recordCursor() {
13833
- if (input.value == void 0)
13834
- return;
13835
- const { selectionStart, selectionEnd, value } = input.value;
13836
- if (selectionStart == null || selectionEnd == null)
13837
- return;
13838
- const beforeTxt = value.slice(0, Math.max(0, selectionStart));
13839
- const afterTxt = value.slice(Math.max(0, selectionEnd));
13840
- selectionInfo = {
13841
- selectionStart,
13842
- selectionEnd,
13843
- value,
13844
- beforeTxt,
13845
- afterTxt
13846
- };
13729
+ if (!disableIdGeneration) {
13730
+ disableIdGeneration = ref(false);
13847
13731
  }
13848
- function setCursor() {
13849
- if (input.value == void 0 || selectionInfo == void 0)
13850
- return;
13851
- const { value } = input.value;
13852
- const { beforeTxt, afterTxt, selectionStart } = selectionInfo;
13853
- if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0)
13854
- return;
13855
- let startPos = value.length;
13856
- if (value.endsWith(afterTxt)) {
13857
- startPos = value.length - afterTxt.length;
13858
- } else if (value.startsWith(beforeTxt)) {
13859
- startPos = beforeTxt.length;
13860
- } else {
13861
- const beforeLastChar = beforeTxt[selectionStart - 1];
13862
- const newIndex = value.indexOf(beforeLastChar, selectionStart - 1);
13863
- if (newIndex !== -1) {
13864
- startPos = newIndex + 1;
13732
+ if (!disableIdManagement) {
13733
+ disableIdManagement = ref(false);
13734
+ }
13735
+ const inputId = ref();
13736
+ let idUnwatch = void 0;
13737
+ const isLabeledByFormItem = computed(() => {
13738
+ var _a;
13739
+ return !!(!(props.label || props.ariaLabel) && formItemContext && formItemContext.inputIds && ((_a = formItemContext.inputIds) == null ? void 0 : _a.length) <= 1);
13740
+ });
13741
+ onMounted(() => {
13742
+ idUnwatch = watch([toRef(props, "id"), disableIdGeneration], ([id, disableIdGeneration2]) => {
13743
+ const newId = id != null ? id : !disableIdGeneration2 ? useId().value : void 0;
13744
+ if (newId !== inputId.value) {
13745
+ if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
13746
+ inputId.value && formItemContext.removeInputId(inputId.value);
13747
+ if (!(disableIdManagement == null ? void 0 : disableIdManagement.value) && !disableIdGeneration2 && newId) {
13748
+ formItemContext.addInputId(newId);
13749
+ }
13750
+ }
13751
+ inputId.value = newId;
13865
13752
  }
13753
+ }, { immediate: true });
13754
+ });
13755
+ onUnmounted(() => {
13756
+ idUnwatch && idUnwatch();
13757
+ if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
13758
+ inputId.value && formItemContext.removeInputId(inputId.value);
13866
13759
  }
13867
- input.value.setSelectionRange(startPos, startPos);
13868
- }
13869
- return [recordCursor, setCursor];
13870
- }
13760
+ });
13761
+ return {
13762
+ isLabeledByFormItem,
13763
+ inputId
13764
+ };
13765
+ };
13871
13766
 
13872
- const useSizeProp = buildProp({
13873
- type: String,
13874
- values: componentSizes,
13875
- required: false
13876
- });
13877
- const SIZE_INJECTION_KEY = Symbol("size");
13878
- const useGlobalSize = () => {
13879
- const injectedSize = inject(SIZE_INJECTION_KEY, {});
13767
+ const useProp = (name) => {
13768
+ const vm = getCurrentInstance();
13880
13769
  return computed(() => {
13881
- return unref(injectedSize.size) || "";
13770
+ var _a, _b;
13771
+ return (_b = (_a = vm == null ? void 0 : vm.proxy) == null ? void 0 : _a.$props) == null ? void 0 : _b[name];
13882
13772
  });
13883
13773
  };
13884
13774
 
13775
+ const useFormSize = (fallback, ignore = {}) => {
13776
+ const emptyRef = ref(void 0);
13777
+ const size = ignore.prop ? emptyRef : useProp("size");
13778
+ const globalConfig = ignore.global ? emptyRef : useGlobalSize();
13779
+ const form = ignore.form ? { size: void 0 } : inject(formContextKey, void 0);
13780
+ const formItem = ignore.formItem ? { size: void 0 } : inject(formItemContextKey, void 0);
13781
+ return computed(() => size.value || unref(fallback) || (formItem == null ? void 0 : formItem.size) || (form == null ? void 0 : form.size) || globalConfig.value || "");
13782
+ };
13783
+ const useFormDisabled = (fallback) => {
13784
+ const disabled = useProp("disabled");
13785
+ const form = inject(formContextKey, void 0);
13786
+ return computed(() => disabled.value || unref(fallback) || (form == null ? void 0 : form.disabled) || false);
13787
+ };
13788
+
13885
13789
  function useFocusController(target, {
13886
13790
  beforeFocus,
13887
13791
  afterFocus,
@@ -13931,6 +13835,8 @@ function useFocusController(target, {
13931
13835
  };
13932
13836
  }
13933
13837
 
13838
+ const isKorean = (text) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(text);
13839
+
13934
13840
  function useComposition({
13935
13841
  afterComposition,
13936
13842
  emit
@@ -13940,406 +13846,87 @@ function useComposition({
13940
13846
  emit == null ? void 0 : emit("compositionstart", event);
13941
13847
  isComposing.value = true;
13942
13848
  };
13943
- const handleCompositionUpdate = (event) => {
13944
- var _a;
13945
- emit == null ? void 0 : emit("compositionupdate", event);
13946
- const text = (_a = event.target) == null ? void 0 : _a.value;
13947
- const lastCharacter = text[text.length - 1] || "";
13948
- isComposing.value = !isKorean(lastCharacter);
13949
- };
13950
- const handleCompositionEnd = (event) => {
13951
- emit == null ? void 0 : emit("compositionend", event);
13952
- if (isComposing.value) {
13953
- isComposing.value = false;
13954
- nextTick(() => afterComposition(event));
13955
- }
13956
- };
13957
- const handleComposition = (event) => {
13958
- event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event);
13959
- };
13960
- return {
13961
- isComposing,
13962
- handleComposition,
13963
- handleCompositionStart,
13964
- handleCompositionUpdate,
13965
- handleCompositionEnd
13966
- };
13967
- }
13968
-
13969
- const emptyValuesContextKey = Symbol("emptyValuesContextKey");
13970
- const DEFAULT_EMPTY_VALUES = ["", void 0, null];
13971
- const DEFAULT_VALUE_ON_CLEAR = void 0;
13972
- const useEmptyValuesProps = buildProps({
13973
- emptyValues: Array,
13974
- valueOnClear: {
13975
- type: [String, Number, Boolean, Function],
13976
- default: void 0,
13977
- validator: (val) => isFunction$1(val) ? !val() : !val
13978
- }
13979
- });
13980
- const useEmptyValues = (props, defaultValue) => {
13981
- const config = getCurrentInstance() ? inject(emptyValuesContextKey, ref({})) : ref({});
13982
- const emptyValues = computed(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES);
13983
- const valueOnClear = computed(() => {
13984
- if (isFunction$1(props.valueOnClear)) {
13985
- return props.valueOnClear();
13986
- } else if (props.valueOnClear !== void 0) {
13987
- return props.valueOnClear;
13988
- } else if (isFunction$1(config.value.valueOnClear)) {
13989
- return config.value.valueOnClear();
13990
- } else if (config.value.valueOnClear !== void 0) {
13991
- return config.value.valueOnClear;
13992
- }
13993
- return defaultValue !== void 0 ? defaultValue : DEFAULT_VALUE_ON_CLEAR;
13994
- });
13995
- const isEmptyValue = (value) => {
13996
- return emptyValues.value.includes(value);
13997
- };
13998
- if (!emptyValues.value.includes(valueOnClear.value)) ;
13999
- return {
14000
- emptyValues,
14001
- valueOnClear,
14002
- isEmptyValue
14003
- };
14004
- };
14005
-
14006
- const ariaProps = buildProps({
14007
- ariaLabel: String,
14008
- ariaOrientation: {
14009
- type: String,
14010
- values: ["horizontal", "vertical", "undefined"]
14011
- },
14012
- ariaControls: String
14013
- });
14014
- const useAriaProps = (arias) => {
14015
- return pick(ariaProps, arias);
14016
- };
14017
-
14018
- const configProviderContextKey = Symbol();
14019
-
14020
- const globalConfig = ref();
14021
- function useGlobalConfig(key, defaultValue = void 0) {
14022
- const config = getCurrentInstance() ? inject(configProviderContextKey, globalConfig) : globalConfig;
14023
- if (key) {
14024
- return computed(() => {
14025
- var _a, _b;
14026
- return (_b = (_a = config.value) == null ? void 0 : _a[key]) != null ? _b : defaultValue;
14027
- });
14028
- } else {
14029
- return config;
14030
- }
14031
- }
14032
-
14033
- var _export_sfc = (sfc, props) => {
14034
- const target = sfc.__vccOpts || sfc;
14035
- for (const [key, val] of props) {
14036
- target[key] = val;
14037
- }
14038
- return target;
14039
- };
14040
-
14041
- const iconProps = buildProps({
14042
- size: {
14043
- type: definePropType([Number, String])
14044
- },
14045
- color: {
14046
- type: String
14047
- }
14048
- });
14049
-
14050
- const __default__$n = defineComponent({
14051
- name: "ElIcon",
14052
- inheritAttrs: false
14053
- });
14054
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
14055
- ...__default__$n,
14056
- props: iconProps,
14057
- setup(__props) {
14058
- const props = __props;
14059
- const ns = useNamespace("icon");
14060
- const style = computed(() => {
14061
- const { size, color } = props;
14062
- if (!size && !color)
14063
- return {};
14064
- return {
14065
- fontSize: isUndefined(size) ? void 0 : addUnit(size),
14066
- "--color": color
14067
- };
14068
- });
14069
- return (_ctx, _cache) => {
14070
- return openBlock(), createElementBlock("i", mergeProps({
14071
- class: unref(ns).b(),
14072
- style: unref(style)
14073
- }, _ctx.$attrs), [
14074
- renderSlot(_ctx.$slots, "default")
14075
- ], 16);
14076
- };
14077
- }
14078
- });
14079
- var Icon = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__file", "icon.vue"]]);
14080
-
14081
- const ElIcon = withInstall(Icon);
14082
-
14083
- const formContextKey = Symbol("formContextKey");
14084
- const formItemContextKey = Symbol("formItemContextKey");
14085
-
14086
- const useFormSize = (fallback, ignore = {}) => {
14087
- const emptyRef = ref(void 0);
14088
- const size = ignore.prop ? emptyRef : useProp("size");
14089
- const globalConfig = ignore.global ? emptyRef : useGlobalSize();
14090
- const form = ignore.form ? { size: void 0 } : inject(formContextKey, void 0);
14091
- const formItem = ignore.formItem ? { size: void 0 } : inject(formItemContextKey, void 0);
14092
- return computed(() => size.value || unref(fallback) || (formItem == null ? void 0 : formItem.size) || (form == null ? void 0 : form.size) || globalConfig.value || "");
14093
- };
14094
- const useFormDisabled = (fallback) => {
14095
- const disabled = useProp("disabled");
14096
- const form = inject(formContextKey, void 0);
14097
- return computed(() => disabled.value || unref(fallback) || (form == null ? void 0 : form.disabled) || false);
14098
- };
14099
-
14100
- const useFormItem = () => {
14101
- const form = inject(formContextKey, void 0);
14102
- const formItem = inject(formItemContextKey, void 0);
14103
- return {
14104
- form,
14105
- formItem
14106
- };
14107
- };
14108
- const useFormItemInputId = (props, {
14109
- formItemContext,
14110
- disableIdGeneration,
14111
- disableIdManagement
14112
- }) => {
14113
- if (!disableIdGeneration) {
14114
- disableIdGeneration = ref(false);
14115
- }
14116
- if (!disableIdManagement) {
14117
- disableIdManagement = ref(false);
14118
- }
14119
- const inputId = ref();
14120
- let idUnwatch = void 0;
14121
- const isLabeledByFormItem = computed(() => {
14122
- var _a;
14123
- return !!(!(props.label || props.ariaLabel) && formItemContext && formItemContext.inputIds && ((_a = formItemContext.inputIds) == null ? void 0 : _a.length) <= 1);
14124
- });
14125
- onMounted(() => {
14126
- idUnwatch = watch([toRef(props, "id"), disableIdGeneration], ([id, disableIdGeneration2]) => {
14127
- const newId = id != null ? id : !disableIdGeneration2 ? useId().value : void 0;
14128
- if (newId !== inputId.value) {
14129
- if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
14130
- inputId.value && formItemContext.removeInputId(inputId.value);
14131
- if (!(disableIdManagement == null ? void 0 : disableIdManagement.value) && !disableIdGeneration2 && newId) {
14132
- formItemContext.addInputId(newId);
14133
- }
14134
- }
14135
- inputId.value = newId;
14136
- }
14137
- }, { immediate: true });
14138
- });
14139
- onUnmounted(() => {
14140
- idUnwatch && idUnwatch();
14141
- if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
14142
- inputId.value && formItemContext.removeInputId(inputId.value);
13849
+ const handleCompositionUpdate = (event) => {
13850
+ var _a;
13851
+ emit == null ? void 0 : emit("compositionupdate", event);
13852
+ const text = (_a = event.target) == null ? void 0 : _a.value;
13853
+ const lastCharacter = text[text.length - 1] || "";
13854
+ isComposing.value = !isKorean(lastCharacter);
13855
+ };
13856
+ const handleCompositionEnd = (event) => {
13857
+ emit == null ? void 0 : emit("compositionend", event);
13858
+ if (isComposing.value) {
13859
+ isComposing.value = false;
13860
+ nextTick(() => afterComposition(event));
14143
13861
  }
14144
- });
13862
+ };
13863
+ const handleComposition = (event) => {
13864
+ event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event);
13865
+ };
14145
13866
  return {
14146
- isLabeledByFormItem,
14147
- inputId
13867
+ isComposing,
13868
+ handleComposition,
13869
+ handleCompositionStart,
13870
+ handleCompositionUpdate,
13871
+ handleCompositionEnd
14148
13872
  };
14149
- };
14150
-
14151
- let hiddenTextarea = void 0;
14152
- const HIDDEN_STYLE = `
14153
- height:0 !important;
14154
- visibility:hidden !important;
14155
- ${isFirefox() ? "" : "overflow:hidden !important;"}
14156
- position:absolute !important;
14157
- z-index:-1000 !important;
14158
- top:0 !important;
14159
- right:0 !important;
14160
- `;
14161
- const CONTEXT_STYLE = [
14162
- "letter-spacing",
14163
- "line-height",
14164
- "padding-top",
14165
- "padding-bottom",
14166
- "font-family",
14167
- "font-weight",
14168
- "font-size",
14169
- "text-rendering",
14170
- "text-transform",
14171
- "width",
14172
- "text-indent",
14173
- "padding-left",
14174
- "padding-right",
14175
- "border-width",
14176
- "box-sizing"
14177
- ];
14178
- function calculateNodeStyling(targetElement) {
14179
- const style = window.getComputedStyle(targetElement);
14180
- const boxSizing = style.getPropertyValue("box-sizing");
14181
- const paddingSize = Number.parseFloat(style.getPropertyValue("padding-bottom")) + Number.parseFloat(style.getPropertyValue("padding-top"));
14182
- const borderSize = Number.parseFloat(style.getPropertyValue("border-bottom-width")) + Number.parseFloat(style.getPropertyValue("border-top-width"));
14183
- const contextStyle = CONTEXT_STYLE.map((name) => `${name}:${style.getPropertyValue(name)}`).join(";");
14184
- return { contextStyle, paddingSize, borderSize, boxSizing };
14185
13873
  }
14186
- function calcTextareaHeight(targetElement, minRows = 1, maxRows) {
14187
- var _a;
14188
- if (!hiddenTextarea) {
14189
- hiddenTextarea = document.createElement("textarea");
14190
- document.body.appendChild(hiddenTextarea);
14191
- }
14192
- const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement);
14193
- hiddenTextarea.setAttribute("style", `${contextStyle};${HIDDEN_STYLE}`);
14194
- hiddenTextarea.value = targetElement.value || targetElement.placeholder || "";
14195
- let height = hiddenTextarea.scrollHeight;
14196
- const result = {};
14197
- if (boxSizing === "border-box") {
14198
- height = height + borderSize;
14199
- } else if (boxSizing === "content-box") {
14200
- height = height - paddingSize;
14201
- }
14202
- hiddenTextarea.value = "";
14203
- const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
14204
- if (isNumber(minRows)) {
14205
- let minHeight = singleRowHeight * minRows;
14206
- if (boxSizing === "border-box") {
14207
- minHeight = minHeight + paddingSize + borderSize;
14208
- }
14209
- height = Math.max(minHeight, height);
14210
- result.minHeight = `${minHeight}px`;
13874
+
13875
+ function useCursor(input) {
13876
+ let selectionInfo;
13877
+ function recordCursor() {
13878
+ if (input.value == void 0)
13879
+ return;
13880
+ const { selectionStart, selectionEnd, value } = input.value;
13881
+ if (selectionStart == null || selectionEnd == null)
13882
+ return;
13883
+ const beforeTxt = value.slice(0, Math.max(0, selectionStart));
13884
+ const afterTxt = value.slice(Math.max(0, selectionEnd));
13885
+ selectionInfo = {
13886
+ selectionStart,
13887
+ selectionEnd,
13888
+ value,
13889
+ beforeTxt,
13890
+ afterTxt
13891
+ };
14211
13892
  }
14212
- if (isNumber(maxRows)) {
14213
- let maxHeight = singleRowHeight * maxRows;
14214
- if (boxSizing === "border-box") {
14215
- maxHeight = maxHeight + paddingSize + borderSize;
13893
+ function setCursor() {
13894
+ if (input.value == void 0 || selectionInfo == void 0)
13895
+ return;
13896
+ const { value } = input.value;
13897
+ const { beforeTxt, afterTxt, selectionStart } = selectionInfo;
13898
+ if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0)
13899
+ return;
13900
+ let startPos = value.length;
13901
+ if (value.endsWith(afterTxt)) {
13902
+ startPos = value.length - afterTxt.length;
13903
+ } else if (value.startsWith(beforeTxt)) {
13904
+ startPos = beforeTxt.length;
13905
+ } else {
13906
+ const beforeLastChar = beforeTxt[selectionStart - 1];
13907
+ const newIndex = value.indexOf(beforeLastChar, selectionStart - 1);
13908
+ if (newIndex !== -1) {
13909
+ startPos = newIndex + 1;
13910
+ }
14216
13911
  }
14217
- height = Math.min(maxHeight, height);
13912
+ input.value.setSelectionRange(startPos, startPos);
14218
13913
  }
14219
- result.height = `${height}px`;
14220
- (_a = hiddenTextarea.parentNode) == null ? void 0 : _a.removeChild(hiddenTextarea);
14221
- hiddenTextarea = void 0;
14222
- return result;
13914
+ return [recordCursor, setCursor];
14223
13915
  }
14224
13916
 
14225
- const inputProps = buildProps({
14226
- id: {
14227
- type: String,
14228
- default: void 0
14229
- },
14230
- size: useSizeProp,
14231
- disabled: Boolean,
14232
- modelValue: {
14233
- type: definePropType([
14234
- String,
14235
- Number,
14236
- Object
14237
- ]),
14238
- default: ""
14239
- },
14240
- maxlength: {
14241
- type: [String, Number]
14242
- },
14243
- minlength: {
14244
- type: [String, Number]
14245
- },
14246
- type: {
14247
- type: String,
14248
- default: "text"
14249
- },
14250
- resize: {
14251
- type: String,
14252
- values: ["none", "both", "horizontal", "vertical"]
14253
- },
14254
- autosize: {
14255
- type: definePropType([Boolean, Object]),
14256
- default: false
14257
- },
14258
- autocomplete: {
14259
- type: String,
14260
- default: "off"
14261
- },
14262
- formatter: {
14263
- type: Function
14264
- },
14265
- parser: {
14266
- type: Function
14267
- },
14268
- placeholder: {
14269
- type: String
14270
- },
14271
- form: {
14272
- type: String
14273
- },
14274
- readonly: Boolean,
14275
- clearable: Boolean,
14276
- showPassword: Boolean,
14277
- showWordLimit: Boolean,
14278
- suffixIcon: {
14279
- type: iconPropType
14280
- },
14281
- prefixIcon: {
14282
- type: iconPropType
14283
- },
14284
- containerRole: {
14285
- type: String,
14286
- default: void 0
14287
- },
14288
- tabindex: {
14289
- type: [String, Number],
14290
- default: 0
14291
- },
14292
- validateEvent: {
14293
- type: Boolean,
14294
- default: true
14295
- },
14296
- inputStyle: {
14297
- type: definePropType([Object, Array, String]),
14298
- default: () => mutable({})
14299
- },
14300
- autofocus: Boolean,
14301
- rows: {
14302
- type: Number,
14303
- default: 2
14304
- },
14305
- ...useAriaProps(["ariaLabel"])
14306
- });
14307
- const inputEmits = {
14308
- [UPDATE_MODEL_EVENT]: (value) => isString$1(value),
14309
- input: (value) => isString$1(value),
14310
- change: (value) => isString$1(value),
14311
- focus: (evt) => evt instanceof FocusEvent,
14312
- blur: (evt) => evt instanceof FocusEvent,
14313
- clear: () => true,
14314
- mouseleave: (evt) => evt instanceof MouseEvent,
14315
- mouseenter: (evt) => evt instanceof MouseEvent,
14316
- keydown: (evt) => evt instanceof Event,
14317
- compositionstart: (evt) => evt instanceof CompositionEvent,
14318
- compositionupdate: (evt) => evt instanceof CompositionEvent,
14319
- compositionend: (evt) => evt instanceof CompositionEvent
14320
- };
14321
-
14322
- const __default__$m = defineComponent({
13917
+ const __default__$q = defineComponent({
14323
13918
  name: "ElInput",
14324
13919
  inheritAttrs: false
14325
13920
  });
14326
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
14327
- ...__default__$m,
13921
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
13922
+ ...__default__$q,
14328
13923
  props: inputProps,
14329
13924
  emits: inputEmits,
14330
13925
  setup(__props, { expose, emit }) {
14331
13926
  const props = __props;
14332
13927
  const rawAttrs = useAttrs$1();
13928
+ const attrs = useAttrs();
14333
13929
  const slots = useSlots();
14334
- const containerAttrs = computed(() => {
14335
- const comboBoxAttrs = {};
14336
- if (props.containerRole === "combobox") {
14337
- comboBoxAttrs["aria-haspopup"] = rawAttrs["aria-haspopup"];
14338
- comboBoxAttrs["aria-owns"] = rawAttrs["aria-owns"];
14339
- comboBoxAttrs["aria-expanded"] = rawAttrs["aria-expanded"];
14340
- }
14341
- return comboBoxAttrs;
14342
- });
14343
13930
  const containerKls = computed(() => [
14344
13931
  props.type === "textarea" ? nsTextarea.b() : nsInput.b(),
14345
13932
  nsInput.m(inputSize.value),
@@ -14358,11 +13945,6 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
14358
13945
  nsInput.e("wrapper"),
14359
13946
  nsInput.is("focus", isFocused.value)
14360
13947
  ]);
14361
- const attrs = useAttrs({
14362
- excludeKeys: computed(() => {
14363
- return Object.keys(containerAttrs.value);
14364
- })
14365
- });
14366
13948
  const { form: elForm, formItem: elFormItem } = useFormItem();
14367
13949
  const { inputId } = useFormItemInputId(props, {
14368
13950
  formItemContext: elFormItem
@@ -14406,7 +13988,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
14406
13988
  ]);
14407
13989
  const nativeInputValue = computed(() => isNil(props.modelValue) ? "" : String(props.modelValue));
14408
13990
  const showClear = computed(() => props.clearable && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (isFocused.value || hovering.value));
14409
- const showPwdVisible = computed(() => props.showPassword && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (!!nativeInputValue.value || isFocused.value));
13991
+ const showPwdVisible = computed(() => props.showPassword && !inputDisabled.value && !!nativeInputValue.value && (!!nativeInputValue.value || isFocused.value));
14410
13992
  const isWordLimitVisible = computed(() => props.showWordLimit && !!props.maxlength && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword);
14411
13993
  const textLength = computed(() => nativeInputValue.value.length);
14412
13994
  const inputExceed = computed(() => !!isWordLimitVisible.value && textLength.value > Number(props.maxlength));
@@ -14493,13 +14075,13 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
14493
14075
  handleCompositionEnd
14494
14076
  } = useComposition({ emit, afterComposition: handleInput });
14495
14077
  const handlePasswordVisible = () => {
14078
+ recordCursor();
14496
14079
  passwordVisible.value = !passwordVisible.value;
14497
- focus();
14080
+ setTimeout(setCursor);
14498
14081
  };
14499
- const focus = async () => {
14082
+ const focus = () => {
14500
14083
  var _a;
14501
- await nextTick();
14502
- (_a = _ref.value) == null ? void 0 : _a.focus();
14084
+ return (_a = _ref.value) == null ? void 0 : _a.focus();
14503
14085
  };
14504
14086
  const blur = () => {
14505
14087
  var _a;
@@ -14558,19 +14140,18 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
14558
14140
  resizeTextarea
14559
14141
  });
14560
14142
  return (_ctx, _cache) => {
14561
- return openBlock(), createElementBlock("div", mergeProps(unref(containerAttrs), {
14562
- class: [
14143
+ return openBlock(), createElementBlock("div", {
14144
+ class: normalizeClass([
14563
14145
  unref(containerKls),
14564
14146
  {
14565
14147
  [unref(nsInput).bm("group", "append")]: _ctx.$slots.append,
14566
14148
  [unref(nsInput).bm("group", "prepend")]: _ctx.$slots.prepend
14567
14149
  }
14568
- ],
14569
- style: unref(containerStyle),
14570
- role: _ctx.containerRole,
14150
+ ]),
14151
+ style: normalizeStyle(unref(containerStyle)),
14571
14152
  onMouseenter: handleMouseEnter,
14572
14153
  onMouseleave: handleMouseLeave
14573
- }), [
14154
+ }, [
14574
14155
  createCommentVNode(" input "),
14575
14156
  _ctx.type !== "textarea" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
14576
14157
  createCommentVNode(" prepend slot "),
@@ -14623,13 +14204,14 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
14623
14204
  style: _ctx.inputStyle,
14624
14205
  form: _ctx.form,
14625
14206
  autofocus: _ctx.autofocus,
14207
+ role: _ctx.containerRole,
14626
14208
  onCompositionstart: unref(handleCompositionStart),
14627
14209
  onCompositionupdate: unref(handleCompositionUpdate),
14628
14210
  onCompositionend: unref(handleCompositionEnd),
14629
14211
  onInput: handleInput,
14630
14212
  onChange: handleChange,
14631
14213
  onKeydown: handleKeydown
14632
- }), null, 16, ["id", "minlength", "maxlength", "type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus", "onCompositionstart", "onCompositionupdate", "onCompositionend"]),
14214
+ }), null, 16, ["id", "minlength", "maxlength", "type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus", "role", "onCompositionstart", "onCompositionupdate", "onCompositionend"]),
14633
14215
  createCommentVNode(" suffix slot "),
14634
14216
  unref(suffixVisible) ? (openBlock(), createElementBlock("span", {
14635
14217
  key: 1,
@@ -14722,6 +14304,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
14722
14304
  form: _ctx.form,
14723
14305
  autofocus: _ctx.autofocus,
14724
14306
  rows: _ctx.rows,
14307
+ role: _ctx.containerRole,
14725
14308
  onCompositionstart: unref(handleCompositionStart),
14726
14309
  onCompositionupdate: unref(handleCompositionUpdate),
14727
14310
  onCompositionend: unref(handleCompositionEnd),
@@ -14730,18 +14313,18 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
14730
14313
  onBlur: unref(handleBlur),
14731
14314
  onChange: handleChange,
14732
14315
  onKeydown: handleKeydown
14733
- }), null, 16, ["id", "minlength", "maxlength", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus", "rows", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onFocus", "onBlur"]),
14316
+ }), null, 16, ["id", "minlength", "maxlength", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus", "rows", "role", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onFocus", "onBlur"]),
14734
14317
  unref(isWordLimitVisible) ? (openBlock(), createElementBlock("span", {
14735
14318
  key: 0,
14736
14319
  style: normalizeStyle(countStyle.value),
14737
14320
  class: normalizeClass(unref(nsInput).e("count"))
14738
14321
  }, toDisplayString(unref(textLength)) + " / " + toDisplayString(_ctx.maxlength), 7)) : createCommentVNode("v-if", true)
14739
14322
  ], 64))
14740
- ], 16, ["role"]);
14323
+ ], 38);
14741
14324
  };
14742
14325
  }
14743
14326
  });
14744
- var Input = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__file", "input.vue"]]);
14327
+ var Input = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__file", "input.vue"]]);
14745
14328
 
14746
14329
  const ElInput = withInstall(Input);
14747
14330
 
@@ -14791,7 +14374,7 @@ const thumbProps = buildProps({
14791
14374
  });
14792
14375
 
14793
14376
  const COMPONENT_NAME$2 = "Thumb";
14794
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
14377
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
14795
14378
  __name: "thumb",
14796
14379
  props: thumbProps,
14797
14380
  setup(__props) {
@@ -14910,7 +14493,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
14910
14493
  };
14911
14494
  }
14912
14495
  });
14913
- var Thumb = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__file", "thumb.vue"]]);
14496
+ var Thumb = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__file", "thumb.vue"]]);
14914
14497
 
14915
14498
  const barProps = buildProps({
14916
14499
  always: {
@@ -14923,7 +14506,7 @@ const barProps = buildProps({
14923
14506
  }
14924
14507
  });
14925
14508
 
14926
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
14509
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
14927
14510
  __name: "bar",
14928
14511
  props: barProps,
14929
14512
  setup(__props, { expose }) {
@@ -14981,7 +14564,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
14981
14564
  };
14982
14565
  }
14983
14566
  });
14984
- var Bar = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__file", "bar.vue"]]);
14567
+ var Bar = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__file", "bar.vue"]]);
14985
14568
 
14986
14569
  const scrollbarProps = buildProps({
14987
14570
  height: {
@@ -15022,6 +14605,10 @@ const scrollbarProps = buildProps({
15022
14605
  type: Number,
15023
14606
  default: 20
15024
14607
  },
14608
+ tabindex: {
14609
+ type: [String, Number],
14610
+ default: void 0
14611
+ },
15025
14612
  id: String,
15026
14613
  role: String,
15027
14614
  ...useAriaProps(["ariaLabel", "ariaOrientation"])
@@ -15034,11 +14621,11 @@ const scrollbarEmits = {
15034
14621
  };
15035
14622
 
15036
14623
  const COMPONENT_NAME$1 = "ElScrollbar";
15037
- const __default__$l = defineComponent({
14624
+ const __default__$p = defineComponent({
15038
14625
  name: COMPONENT_NAME$1
15039
14626
  });
15040
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
15041
- ...__default__$l,
14627
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
14628
+ ...__default__$p,
15042
14629
  props: scrollbarProps,
15043
14630
  emits: scrollbarEmits,
15044
14631
  setup(__props, { expose, emit }) {
@@ -15129,8 +14716,10 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
15129
14716
  wrapElement: wrapRef
15130
14717
  }));
15131
14718
  onActivated(() => {
15132
- wrapRef.value.scrollTop = wrapScrollTop;
15133
- wrapRef.value.scrollLeft = wrapScrollLeft;
14719
+ if (wrapRef.value) {
14720
+ wrapRef.value.scrollTop = wrapScrollTop;
14721
+ wrapRef.value.scrollLeft = wrapScrollLeft;
14722
+ }
15134
14723
  });
15135
14724
  onMounted(() => {
15136
14725
  if (!props.native)
@@ -15158,6 +14747,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
15158
14747
  ref: wrapRef,
15159
14748
  class: normalizeClass(unref(wrapKls)),
15160
14749
  style: normalizeStyle(unref(wrapStyle)),
14750
+ tabindex: _ctx.tabindex,
15161
14751
  onScroll: handleScroll
15162
14752
  }, [
15163
14753
  (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), {
@@ -15175,7 +14765,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
15175
14765
  ]),
15176
14766
  _: 3
15177
14767
  }, 8, ["id", "class", "style", "role", "aria-label", "aria-orientation"]))
15178
- ], 38),
14768
+ ], 46, ["tabindex"]),
15179
14769
  !_ctx.native ? (openBlock(), createBlock(Bar, {
15180
14770
  key: 0,
15181
14771
  ref_key: "barRef",
@@ -15187,7 +14777,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
15187
14777
  };
15188
14778
  }
15189
14779
  });
15190
- var Scrollbar = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__file", "scrollbar.vue"]]);
14780
+ var Scrollbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$y, [["__file", "scrollbar.vue"]]);
15191
14781
 
15192
14782
  const ElScrollbar = withInstall(Scrollbar);
15193
14783
 
@@ -15212,12 +14802,12 @@ const popperProps = buildProps({
15212
14802
  }
15213
14803
  });
15214
14804
 
15215
- const __default__$k = defineComponent({
14805
+ const __default__$o = defineComponent({
15216
14806
  name: "ElPopper",
15217
14807
  inheritAttrs: false
15218
14808
  });
15219
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
15220
- ...__default__$k,
14809
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
14810
+ ...__default__$o,
15221
14811
  props: popperProps,
15222
14812
  setup(__props, { expose }) {
15223
14813
  const props = __props;
@@ -15240,7 +14830,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
15240
14830
  };
15241
14831
  }
15242
14832
  });
15243
- var Popper = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__file", "popper.vue"]]);
14833
+ var Popper = /* @__PURE__ */ _export_sfc$1(_sfc_main$x, [["__file", "popper.vue"]]);
15244
14834
 
15245
14835
  const popperArrowProps = buildProps({
15246
14836
  arrowOffset: {
@@ -15249,12 +14839,12 @@ const popperArrowProps = buildProps({
15249
14839
  }
15250
14840
  });
15251
14841
 
15252
- const __default__$j = defineComponent({
14842
+ const __default__$n = defineComponent({
15253
14843
  name: "ElPopperArrow",
15254
14844
  inheritAttrs: false
15255
14845
  });
15256
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
15257
- ...__default__$j,
14846
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
14847
+ ...__default__$n,
15258
14848
  props: popperArrowProps,
15259
14849
  setup(__props, { expose }) {
15260
14850
  const props = __props;
@@ -15280,7 +14870,85 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
15280
14870
  };
15281
14871
  }
15282
14872
  });
15283
- var ElPopperArrow = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__file", "arrow.vue"]]);
14873
+ var ElPopperArrow = /* @__PURE__ */ _export_sfc$1(_sfc_main$w, [["__file", "arrow.vue"]]);
14874
+
14875
+ const popperTriggerProps = buildProps({
14876
+ virtualRef: {
14877
+ type: definePropType(Object)
14878
+ },
14879
+ virtualTriggering: Boolean,
14880
+ onMouseenter: {
14881
+ type: definePropType(Function)
14882
+ },
14883
+ onMouseleave: {
14884
+ type: definePropType(Function)
14885
+ },
14886
+ onClick: {
14887
+ type: definePropType(Function)
14888
+ },
14889
+ onKeydown: {
14890
+ type: definePropType(Function)
14891
+ },
14892
+ onFocus: {
14893
+ type: definePropType(Function)
14894
+ },
14895
+ onBlur: {
14896
+ type: definePropType(Function)
14897
+ },
14898
+ onContextmenu: {
14899
+ type: definePropType(Function)
14900
+ },
14901
+ id: String,
14902
+ open: Boolean
14903
+ });
14904
+
14905
+ const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef");
14906
+ const useForwardRef = (forwardRef) => {
14907
+ const setForwardRef = (el) => {
14908
+ forwardRef.value = el;
14909
+ };
14910
+ provide(FORWARD_REF_INJECTION_KEY, {
14911
+ setForwardRef
14912
+ });
14913
+ };
14914
+ const useForwardRefDirective = (setForwardRef) => {
14915
+ return {
14916
+ mounted(el) {
14917
+ setForwardRef(el);
14918
+ },
14919
+ updated(el) {
14920
+ setForwardRef(el);
14921
+ },
14922
+ unmounted() {
14923
+ setForwardRef(null);
14924
+ }
14925
+ };
14926
+ };
14927
+
14928
+ const isFocusable = (element) => {
14929
+ if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute("tabIndex") !== null) {
14930
+ return true;
14931
+ }
14932
+ if (element.tabIndex < 0 || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true") {
14933
+ return false;
14934
+ }
14935
+ switch (element.nodeName) {
14936
+ case "A": {
14937
+ return !!element.href && element.rel !== "ignore";
14938
+ }
14939
+ case "INPUT": {
14940
+ return !(element.type === "hidden" || element.type === "file");
14941
+ }
14942
+ case "BUTTON":
14943
+ case "SELECT":
14944
+ case "TEXTAREA": {
14945
+ return true;
14946
+ }
14947
+ default: {
14948
+ return false;
14949
+ }
14950
+ }
14951
+ };
15284
14952
 
15285
14953
  const NAME = "ElOnlyChild";
15286
14954
  const OnlyChild = defineComponent({
@@ -15337,42 +15005,12 @@ function wrapTextContent(s) {
15337
15005
  }, [s]);
15338
15006
  }
15339
15007
 
15340
- const popperTriggerProps = buildProps({
15341
- virtualRef: {
15342
- type: definePropType(Object)
15343
- },
15344
- virtualTriggering: Boolean,
15345
- onMouseenter: {
15346
- type: definePropType(Function)
15347
- },
15348
- onMouseleave: {
15349
- type: definePropType(Function)
15350
- },
15351
- onClick: {
15352
- type: definePropType(Function)
15353
- },
15354
- onKeydown: {
15355
- type: definePropType(Function)
15356
- },
15357
- onFocus: {
15358
- type: definePropType(Function)
15359
- },
15360
- onBlur: {
15361
- type: definePropType(Function)
15362
- },
15363
- onContextmenu: {
15364
- type: definePropType(Function)
15365
- },
15366
- id: String,
15367
- open: Boolean
15368
- });
15369
-
15370
- const __default__$i = defineComponent({
15008
+ const __default__$m = defineComponent({
15371
15009
  name: "ElPopperTrigger",
15372
15010
  inheritAttrs: false
15373
15011
  });
15374
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
15375
- ...__default__$i,
15012
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
15013
+ ...__default__$m,
15376
15014
  props: popperTriggerProps,
15377
15015
  setup(__props, { expose }) {
15378
15016
  const props = __props;
@@ -15426,18 +15064,20 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
15426
15064
  (_a = prevEl == null ? void 0 : prevEl.removeEventListener) == null ? void 0 : _a.call(prevEl, eventName.slice(2).toLowerCase(), handler);
15427
15065
  }
15428
15066
  });
15429
- virtualTriggerAriaStopWatch = watch([ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded], (watches) => {
15430
- [
15431
- "aria-controls",
15432
- "aria-describedby",
15433
- "aria-haspopup",
15434
- "aria-expanded"
15435
- ].forEach((key, idx) => {
15436
- isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
15437
- });
15438
- }, { immediate: true });
15067
+ if (isFocusable(el)) {
15068
+ virtualTriggerAriaStopWatch = watch([ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded], (watches) => {
15069
+ [
15070
+ "aria-controls",
15071
+ "aria-describedby",
15072
+ "aria-haspopup",
15073
+ "aria-expanded"
15074
+ ].forEach((key, idx) => {
15075
+ isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
15076
+ });
15077
+ }, { immediate: true });
15078
+ }
15439
15079
  }
15440
- if (isElement(prevEl)) {
15080
+ if (isElement(prevEl) && isFocusable(prevEl)) {
15441
15081
  [
15442
15082
  "aria-controls",
15443
15083
  "aria-describedby",
@@ -15481,7 +15121,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
15481
15121
  };
15482
15122
  }
15483
15123
  });
15484
- var ElPopperTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__file", "trigger.vue"]]);
15124
+ var ElPopperTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$v, [["__file", "trigger.vue"]]);
15485
15125
 
15486
15126
  const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped";
15487
15127
  const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released";
@@ -15546,11 +15186,19 @@ const isSelectable = (element) => {
15546
15186
  const tryFocus = (element, shouldSelect) => {
15547
15187
  if (element && element.focus) {
15548
15188
  const prevFocusedElement = document.activeElement;
15189
+ let cleanup = false;
15190
+ if (isElement(element) && !isFocusable(element) && !element.getAttribute("tabindex")) {
15191
+ element.setAttribute("tabindex", "-1");
15192
+ cleanup = true;
15193
+ }
15549
15194
  element.focus({ preventScroll: true });
15550
15195
  lastAutomatedFocusTimestamp.value = window.performance.now();
15551
15196
  if (element !== prevFocusedElement && isSelectable(element) && shouldSelect) {
15552
15197
  element.select();
15553
15198
  }
15199
+ if (isElement(element) && cleanup) {
15200
+ element.removeAttribute("tabindex");
15201
+ }
15554
15202
  }
15555
15203
  };
15556
15204
  function removeFromStack(list, item) {
@@ -15631,7 +15279,48 @@ const createFocusOutPreventedEvent = (detail) => {
15631
15279
  });
15632
15280
  };
15633
15281
 
15634
- const _sfc_main$q = defineComponent({
15282
+ const EVENT_CODE = {
15283
+ tab: "Tab",
15284
+ enter: "Enter",
15285
+ space: "Space",
15286
+ left: "ArrowLeft",
15287
+ up: "ArrowUp",
15288
+ right: "ArrowRight",
15289
+ down: "ArrowDown",
15290
+ esc: "Escape",
15291
+ delete: "Delete",
15292
+ backspace: "Backspace",
15293
+ numpadEnter: "NumpadEnter",
15294
+ pageUp: "PageUp",
15295
+ pageDown: "PageDown",
15296
+ home: "Home",
15297
+ end: "End"
15298
+ };
15299
+
15300
+ let registeredEscapeHandlers = [];
15301
+ const cachedHandler = (event) => {
15302
+ if (event.code === EVENT_CODE.esc) {
15303
+ registeredEscapeHandlers.forEach((registeredHandler) => registeredHandler(event));
15304
+ }
15305
+ };
15306
+ const useEscapeKeydown = (handler) => {
15307
+ onMounted(() => {
15308
+ if (registeredEscapeHandlers.length === 0) {
15309
+ document.addEventListener("keydown", cachedHandler);
15310
+ }
15311
+ if (isClient)
15312
+ registeredEscapeHandlers.push(handler);
15313
+ });
15314
+ onBeforeUnmount(() => {
15315
+ registeredEscapeHandlers = registeredEscapeHandlers.filter((registeredHandler) => registeredHandler !== handler);
15316
+ if (registeredEscapeHandlers.length === 0) {
15317
+ if (isClient)
15318
+ document.removeEventListener("keydown", cachedHandler);
15319
+ }
15320
+ });
15321
+ };
15322
+
15323
+ const _sfc_main$u = defineComponent({
15635
15324
  name: "ElFocusTrap",
15636
15325
  inheritAttrs: false,
15637
15326
  props: {
@@ -15675,9 +15364,9 @@ const _sfc_main$q = defineComponent({
15675
15364
  return;
15676
15365
  if (focusLayer.paused)
15677
15366
  return;
15678
- const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e;
15367
+ const { code, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e;
15679
15368
  const { loop } = props;
15680
- const isTabbing = key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey;
15369
+ const isTabbing = code === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey;
15681
15370
  const currentFocusingEl = document.activeElement;
15682
15371
  if (isTabbing && currentFocusingEl) {
15683
15372
  const container = currentTarget;
@@ -15876,7 +15565,9 @@ const _sfc_main$q = defineComponent({
15876
15565
  function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
15877
15566
  return renderSlot(_ctx.$slots, "default", { handleKeydown: _ctx.onKeydown });
15878
15567
  }
15879
- var ElFocusTrap = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$6], ["__file", "focus-trap.vue"]]);
15568
+ var ElFocusTrap = /* @__PURE__ */ _export_sfc$1(_sfc_main$u, [["render", _sfc_render$6], ["__file", "focus-trap.vue"]]);
15569
+
15570
+ var E="top",R="bottom",W="right",P="left",me="auto",G=[E,R,W,P],U="start",J="end",Xe="clippingParents",je="viewport",K="popper",Ye="reference",De=G.reduce(function(t,e){return t.concat([e+"-"+U,e+"-"+J])},[]),Ee=[].concat(G,[me]).reduce(function(t,e){return t.concat([e,e+"-"+U,e+"-"+J])},[]),Ge="beforeRead",Je="read",Ke="afterRead",Qe="beforeMain",Ze="main",et="afterMain",tt="beforeWrite",nt="write",rt="afterWrite",ot=[Ge,Je,Ke,Qe,Ze,et,tt,nt,rt];function C(t){return t?(t.nodeName||"").toLowerCase():null}function H(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Q(t){var e=H(t).Element;return t instanceof e||t instanceof Element}function B(t){var e=H(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function Pe(t){if(typeof ShadowRoot=="undefined")return !1;var e=H(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Mt(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var r=e.styles[n]||{},o=e.attributes[n]||{},i=e.elements[n];!B(i)||!C(i)||(Object.assign(i.style,r),Object.keys(o).forEach(function(a){var s=o[a];s===!1?i.removeAttribute(a):i.setAttribute(a,s===!0?"":s);}));});}function Rt(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(r){var o=e.elements[r],i=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:n[r]),s=a.reduce(function(f,c){return f[c]="",f},{});!B(o)||!C(o)||(Object.assign(o.style,s),Object.keys(i).forEach(function(f){o.removeAttribute(f);}));});}}var Ae={name:"applyStyles",enabled:!0,phase:"write",fn:Mt,effect:Rt,requires:["computeStyles"]};function q(t){return t.split("-")[0]}var X=Math.max,ve=Math.min,Z=Math.round;function ee(t,e){e===void 0&&(e=!1);var n=t.getBoundingClientRect(),r=1,o=1;if(B(t)&&e){var i=t.offsetHeight,a=t.offsetWidth;a>0&&(r=Z(n.width)/a||1),i>0&&(o=Z(n.height)/i||1);}return {width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function ke(t){var e=ee(t),n=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:r}}function it(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return !0;if(n&&Pe(n)){var r=e;do{if(r&&t.isSameNode(r))return !0;r=r.parentNode||r.host;}while(r)}return !1}function N(t){return H(t).getComputedStyle(t)}function Wt(t){return ["table","td","th"].indexOf(C(t))>=0}function I(t){return ((Q(t)?t.ownerDocument:t.document)||window.document).documentElement}function ge(t){return C(t)==="html"?t:t.assignedSlot||t.parentNode||(Pe(t)?t.host:null)||I(t)}function at(t){return !B(t)||N(t).position==="fixed"?null:t.offsetParent}function Bt(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&B(t)){var r=N(t);if(r.position==="fixed")return null}var o=ge(t);for(Pe(o)&&(o=o.host);B(o)&&["html","body"].indexOf(C(o))<0;){var i=N(o);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return o;o=o.parentNode;}return null}function se(t){for(var e=H(t),n=at(t);n&&Wt(n)&&N(n).position==="static";)n=at(n);return n&&(C(n)==="html"||C(n)==="body"&&N(n).position==="static")?e:n||Bt(t)||e}function Le(t){return ["top","bottom"].indexOf(t)>=0?"x":"y"}function fe(t,e,n){return X(t,ve(e,n))}function St(t,e,n){var r=fe(t,e,n);return r>n?n:r}function st(){return {top:0,right:0,bottom:0,left:0}}function ft(t){return Object.assign({},st(),t)}function ct(t,e){return e.reduce(function(n,r){return n[r]=t,n},{})}var Tt=function(t,e){return t=typeof t=="function"?t(Object.assign({},e.rects,{placement:e.placement})):t,ft(typeof t!="number"?t:ct(t,G))};function Ht(t){var e,n=t.state,r=t.name,o=t.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=q(n.placement),f=Le(s),c=[P,W].indexOf(s)>=0,u=c?"height":"width";if(!(!i||!a)){var m=Tt(o.padding,n),v=ke(i),l=f==="y"?E:P,h=f==="y"?R:W,p=n.rects.reference[u]+n.rects.reference[f]-a[f]-n.rects.popper[u],g=a[f]-n.rects.reference[f],x=se(i),y=x?f==="y"?x.clientHeight||0:x.clientWidth||0:0,$=p/2-g/2,d=m[l],b=y-v[u]-m[h],w=y/2-v[u]/2+$,O=fe(d,w,b),j=f;n.modifiersData[r]=(e={},e[j]=O,e.centerOffset=O-w,e);}}function Ct(t){var e=t.state,n=t.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=e.elements.popper.querySelector(o),!o)||!it(e.elements.popper,o)||(e.elements.arrow=o));}var pt={name:"arrow",enabled:!0,phase:"main",fn:Ht,effect:Ct,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function te(t){return t.split("-")[1]}var qt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Vt(t){var e=t.x,n=t.y,r=window,o=r.devicePixelRatio||1;return {x:Z(e*o)/o||0,y:Z(n*o)/o||0}}function ut(t){var e,n=t.popper,r=t.popperRect,o=t.placement,i=t.variation,a=t.offsets,s=t.position,f=t.gpuAcceleration,c=t.adaptive,u=t.roundOffsets,m=t.isFixed,v=a.x,l=v===void 0?0:v,h=a.y,p=h===void 0?0:h,g=typeof u=="function"?u({x:l,y:p}):{x:l,y:p};l=g.x,p=g.y;var x=a.hasOwnProperty("x"),y=a.hasOwnProperty("y"),$=P,d=E,b=window;if(c){var w=se(n),O="clientHeight",j="clientWidth";if(w===H(n)&&(w=I(n),N(w).position!=="static"&&s==="absolute"&&(O="scrollHeight",j="scrollWidth")),w=w,o===E||(o===P||o===W)&&i===J){d=R;var A=m&&w===b&&b.visualViewport?b.visualViewport.height:w[O];p-=A-r.height,p*=f?1:-1;}if(o===P||(o===E||o===R)&&i===J){$=W;var k=m&&w===b&&b.visualViewport?b.visualViewport.width:w[j];l-=k-r.width,l*=f?1:-1;}}var D=Object.assign({position:s},c&&qt),S=u===!0?Vt({x:l,y:p}):{x:l,y:p};if(l=S.x,p=S.y,f){var L;return Object.assign({},D,(L={},L[d]=y?"0":"",L[$]=x?"0":"",L.transform=(b.devicePixelRatio||1)<=1?"translate("+l+"px, "+p+"px)":"translate3d("+l+"px, "+p+"px, 0)",L))}return Object.assign({},D,(e={},e[d]=y?p+"px":"",e[$]=x?l+"px":"",e.transform="",e))}function Nt(t){var e=t.state,n=t.options,r=n.gpuAcceleration,o=r===void 0?!0:r,i=n.adaptive,a=i===void 0?!0:i,s=n.roundOffsets,f=s===void 0?!0:s,c={placement:q(e.placement),variation:te(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,ut(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:f})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,ut(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement});}var Me={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Nt,data:{}},ye={passive:!0};function It(t){var e=t.state,n=t.instance,r=t.options,o=r.scroll,i=o===void 0?!0:o,a=r.resize,s=a===void 0?!0:a,f=H(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,ye);}),s&&f.addEventListener("resize",n.update,ye),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,ye);}),s&&f.removeEventListener("resize",n.update,ye);}}var Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:It,data:{}},_t={left:"right",right:"left",bottom:"top",top:"bottom"};function be(t){return t.replace(/left|right|bottom|top/g,function(e){return _t[e]})}var zt={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,function(e){return zt[e]})}function We(t){var e=H(t),n=e.pageXOffset,r=e.pageYOffset;return {scrollLeft:n,scrollTop:r}}function Be(t){return ee(I(t)).left+We(t).scrollLeft}function Ft(t){var e=H(t),n=I(t),r=e.visualViewport,o=n.clientWidth,i=n.clientHeight,a=0,s=0;return r&&(o=r.width,i=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,s=r.offsetTop)),{width:o,height:i,x:a+Be(t),y:s}}function Ut(t){var e,n=I(t),r=We(t),o=(e=t.ownerDocument)==null?void 0:e.body,i=X(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=X(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+Be(t),f=-r.scrollTop;return N(o||n).direction==="rtl"&&(s+=X(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:f}}function Se(t){var e=N(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return /auto|scroll|overlay|hidden/.test(n+o+r)}function dt(t){return ["html","body","#document"].indexOf(C(t))>=0?t.ownerDocument.body:B(t)&&Se(t)?t:dt(ge(t))}function ce(t,e){var n;e===void 0&&(e=[]);var r=dt(t),o=r===((n=t.ownerDocument)==null?void 0:n.body),i=H(r),a=o?[i].concat(i.visualViewport||[],Se(r)?r:[]):r,s=e.concat(a);return o?s:s.concat(ce(ge(a)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Xt(t){var e=ee(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function ht(t,e){return e===je?Te(Ft(t)):Q(e)?Xt(e):Te(Ut(I(t)))}function Yt(t){var e=ce(ge(t)),n=["absolute","fixed"].indexOf(N(t).position)>=0,r=n&&B(t)?se(t):t;return Q(r)?e.filter(function(o){return Q(o)&&it(o,r)&&C(o)!=="body"}):[]}function Gt(t,e,n){var r=e==="clippingParents"?Yt(t):[].concat(e),o=[].concat(r,[n]),i=o[0],a=o.reduce(function(s,f){var c=ht(t,f);return s.top=X(c.top,s.top),s.right=ve(c.right,s.right),s.bottom=ve(c.bottom,s.bottom),s.left=X(c.left,s.left),s},ht(t,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function mt(t){var e=t.reference,n=t.element,r=t.placement,o=r?q(r):null,i=r?te(r):null,a=e.x+e.width/2-n.width/2,s=e.y+e.height/2-n.height/2,f;switch(o){case E:f={x:a,y:e.y-n.height};break;case R:f={x:a,y:e.y+e.height};break;case W:f={x:e.x+e.width,y:s};break;case P:f={x:e.x-n.width,y:s};break;default:f={x:e.x,y:e.y};}var c=o?Le(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case U:f[c]=f[c]-(e[u]/2-n[u]/2);break;case J:f[c]=f[c]+(e[u]/2-n[u]/2);break}}return f}function ne(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=r===void 0?t.placement:r,i=n.boundary,a=i===void 0?Xe:i,s=n.rootBoundary,f=s===void 0?je:s,c=n.elementContext,u=c===void 0?K:c,m=n.altBoundary,v=m===void 0?!1:m,l=n.padding,h=l===void 0?0:l,p=ft(typeof h!="number"?h:ct(h,G)),g=u===K?Ye:K,x=t.rects.popper,y=t.elements[v?g:u],$=Gt(Q(y)?y:y.contextElement||I(t.elements.popper),a,f),d=ee(t.elements.reference),b=mt({reference:d,element:x,strategy:"absolute",placement:o}),w=Te(Object.assign({},x,b)),O=u===K?w:d,j={top:$.top-O.top+p.top,bottom:O.bottom-$.bottom+p.bottom,left:$.left-O.left+p.left,right:O.right-$.right+p.right},A=t.modifiersData.offset;if(u===K&&A){var k=A[o];Object.keys(j).forEach(function(D){var S=[W,R].indexOf(D)>=0?1:-1,L=[E,R].indexOf(D)>=0?"y":"x";j[D]+=k[L]*S;});}return j}function Jt(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=f===void 0?Ee:f,u=te(r),m=u?s?De:De.filter(function(h){return te(h)===u}):G,v=m.filter(function(h){return c.indexOf(h)>=0});v.length===0&&(v=m);var l=v.reduce(function(h,p){return h[p]=ne(t,{placement:p,boundary:o,rootBoundary:i,padding:a})[q(p)],h},{});return Object.keys(l).sort(function(h,p){return l[h]-l[p]})}function Kt(t){if(q(t)===me)return [];var e=be(t);return [lt(t),e,lt(e)]}function Qt(t){var e=t.state,n=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!0:a,f=n.fallbackPlacements,c=n.padding,u=n.boundary,m=n.rootBoundary,v=n.altBoundary,l=n.flipVariations,h=l===void 0?!0:l,p=n.allowedAutoPlacements,g=e.options.placement,x=q(g),y=x===g,$=f||(y||!h?[be(g)]:Kt(g)),d=[g].concat($).reduce(function(z,V){return z.concat(q(V)===me?Jt(e,{placement:V,boundary:u,rootBoundary:m,padding:c,flipVariations:h,allowedAutoPlacements:p}):V)},[]),b=e.rects.reference,w=e.rects.popper,O=new Map,j=!0,A=d[0],k=0;k<d.length;k++){var D=d[k],S=q(D),L=te(D)===U,re=[E,R].indexOf(S)>=0,oe=re?"width":"height",M=ne(e,{placement:D,boundary:u,rootBoundary:m,altBoundary:v,padding:c}),T=re?L?W:P:L?R:E;b[oe]>w[oe]&&(T=be(T));var pe=be(T),_=[];if(i&&_.push(M[S]<=0),s&&_.push(M[T]<=0,M[pe]<=0),_.every(function(z){return z})){A=D,j=!1;break}O.set(D,_);}if(j)for(var ue=h?3:1,xe=function(z){var V=d.find(function(de){var ae=O.get(de);if(ae)return ae.slice(0,z).every(function(Y){return Y})});if(V)return A=V,"break"},ie=ue;ie>0;ie--){var le=xe(ie);if(le==="break")break}e.placement!==A&&(e.modifiersData[r]._skip=!0,e.placement=A,e.reset=!0);}}var vt={name:"flip",enabled:!0,phase:"main",fn:Qt,requiresIfExists:["offset"],data:{_skip:!1}};function gt(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function yt(t){return [E,W,R,P].some(function(e){return t[e]>=0})}function Zt(t){var e=t.state,n=t.name,r=e.rects.reference,o=e.rects.popper,i=e.modifiersData.preventOverflow,a=ne(e,{elementContext:"reference"}),s=ne(e,{altBoundary:!0}),f=gt(a,r),c=gt(s,o,i),u=yt(f),m=yt(c);e.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:m},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":m});}var bt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Zt};function en(t,e,n){var r=q(t),o=[P,E].indexOf(r)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,W].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function tn(t){var e=t.state,n=t.options,r=t.name,o=n.offset,i=o===void 0?[0,0]:o,a=Ee.reduce(function(u,m){return u[m]=en(m,e.rects,i),u},{}),s=a[e.placement],f=s.x,c=s.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=f,e.modifiersData.popperOffsets.y+=c),e.modifiersData[r]=a;}var wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:tn};function nn(t){var e=t.state,n=t.name;e.modifiersData[n]=mt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement});}var He={name:"popperOffsets",enabled:!0,phase:"read",fn:nn,data:{}};function rn(t){return t==="x"?"y":"x"}function on(t){var e=t.state,n=t.options,r=t.name,o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!1:a,f=n.boundary,c=n.rootBoundary,u=n.altBoundary,m=n.padding,v=n.tether,l=v===void 0?!0:v,h=n.tetherOffset,p=h===void 0?0:h,g=ne(e,{boundary:f,rootBoundary:c,padding:m,altBoundary:u}),x=q(e.placement),y=te(e.placement),$=!y,d=Le(x),b=rn(d),w=e.modifiersData.popperOffsets,O=e.rects.reference,j=e.rects.popper,A=typeof p=="function"?p(Object.assign({},e.rects,{placement:e.placement})):p,k=typeof A=="number"?{mainAxis:A,altAxis:A}:Object.assign({mainAxis:0,altAxis:0},A),D=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,S={x:0,y:0};if(w){if(i){var L,re=d==="y"?E:P,oe=d==="y"?R:W,M=d==="y"?"height":"width",T=w[d],pe=T+g[re],_=T-g[oe],ue=l?-j[M]/2:0,xe=y===U?O[M]:j[M],ie=y===U?-j[M]:-O[M],le=e.elements.arrow,z=l&&le?ke(le):{width:0,height:0},V=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:st(),de=V[re],ae=V[oe],Y=fe(0,O[M],z[M]),jt=$?O[M]/2-ue-Y-de-k.mainAxis:xe-Y-de-k.mainAxis,Dt=$?-O[M]/2+ue+Y+ae+k.mainAxis:ie+Y+ae+k.mainAxis,Oe=e.elements.arrow&&se(e.elements.arrow),Et=Oe?d==="y"?Oe.clientTop||0:Oe.clientLeft||0:0,Ce=(L=D==null?void 0:D[d])!=null?L:0,Pt=T+jt-Ce-Et,At=T+Dt-Ce,qe=fe(l?ve(pe,Pt):pe,T,l?X(_,At):_);w[d]=qe,S[d]=qe-T;}if(s){var Ve,kt=d==="x"?E:P,Lt=d==="x"?R:W,F=w[b],he=b==="y"?"height":"width",Ne=F+g[kt],Ie=F-g[Lt],$e=[E,P].indexOf(x)!==-1,_e=(Ve=D==null?void 0:D[b])!=null?Ve:0,ze=$e?Ne:F-O[he]-j[he]-_e+k.altAxis,Fe=$e?F+O[he]+j[he]-_e-k.altAxis:Ie,Ue=l&&$e?St(ze,F,Fe):fe(l?ze:Ne,F,l?Fe:Ie);w[b]=Ue,S[b]=Ue-F;}e.modifiersData[r]=S;}}var xt={name:"preventOverflow",enabled:!0,phase:"main",fn:on,requiresIfExists:["offset"]};function an(t){return {scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function sn(t){return t===H(t)||!B(t)?We(t):an(t)}function fn(t){var e=t.getBoundingClientRect(),n=Z(e.width)/t.offsetWidth||1,r=Z(e.height)/t.offsetHeight||1;return n!==1||r!==1}function cn(t,e,n){n===void 0&&(n=!1);var r=B(e),o=B(e)&&fn(e),i=I(e),a=ee(t,o),s={scrollLeft:0,scrollTop:0},f={x:0,y:0};return (r||!r&&!n)&&((C(e)!=="body"||Se(i))&&(s=sn(e)),B(e)?(f=ee(e,!0),f.x+=e.clientLeft,f.y+=e.clientTop):i&&(f.x=Be(i))),{x:a.left+s.scrollLeft-f.x,y:a.top+s.scrollTop-f.y,width:a.width,height:a.height}}function pn(t){var e=new Map,n=new Set,r=[];t.forEach(function(i){e.set(i.name,i);});function o(i){n.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var f=e.get(s);f&&o(f);}}),r.push(i);}return t.forEach(function(i){n.has(i.name)||o(i);}),r}function un(t){var e=pn(t);return ot.reduce(function(n,r){return n.concat(e.filter(function(o){return o.phase===r}))},[])}function ln(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t());});})),e}}function dn(t){var e=t.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(e).map(function(n){return e[n]})}var Ot={placement:"bottom",modifiers:[],strategy:"absolute"};function $t(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return !e.some(function(r){return !(r&&typeof r.getBoundingClientRect=="function")})}function we(t){t===void 0&&(t={});var e=t,n=e.defaultModifiers,r=n===void 0?[]:n,o=e.defaultOptions,i=o===void 0?Ot:o;return function(a,s,f){f===void 0&&(f=i);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ot,i),modifiersData:{},elements:{reference:a,popper:s},attributes:{},styles:{}},u=[],m=!1,v={state:c,setOptions:function(p){var g=typeof p=="function"?p(c.options):p;h(),c.options=Object.assign({},i,c.options,g),c.scrollParents={reference:Q(a)?ce(a):a.contextElement?ce(a.contextElement):[],popper:ce(s)};var x=un(dn([].concat(r,c.options.modifiers)));return c.orderedModifiers=x.filter(function(y){return y.enabled}),l(),v.update()},forceUpdate:function(){if(!m){var p=c.elements,g=p.reference,x=p.popper;if($t(g,x)){c.rects={reference:cn(g,se(x),c.options.strategy==="fixed"),popper:ke(x)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(j){return c.modifiersData[j.name]=Object.assign({},j.data)});for(var y=0;y<c.orderedModifiers.length;y++){if(c.reset===!0){c.reset=!1,y=-1;continue}var $=c.orderedModifiers[y],d=$.fn,b=$.options,w=b===void 0?{}:b,O=$.name;typeof d=="function"&&(c=d({state:c,options:w,name:O,instance:v})||c);}}}},update:ln(function(){return new Promise(function(p){v.forceUpdate(),p(c);})}),destroy:function(){h(),m=!0;}};if(!$t(a,s))return v;v.setOptions(f).then(function(p){!m&&f.onFirstUpdate&&f.onFirstUpdate(p);});function l(){c.orderedModifiers.forEach(function(p){var g=p.name,x=p.options,y=x===void 0?{}:x,$=p.effect;if(typeof $=="function"){var d=$({state:c,name:g,instance:v,options:y}),b=function(){};u.push(d||b);}});}function h(){u.forEach(function(p){return p()}),u=[];}return v}}we();var mn=[Re,He,Me,Ae];we({defaultModifiers:mn});var gn=[Re,He,Me,Ae,wt,vt,xt,pt,bt],yn=we({defaultModifiers:gn});
15880
15571
 
15881
15572
  const POSITIONING_STRATEGIES = ["fixed", "absolute"];
15882
15573
  const popperCoreConfigProps = buildProps({
@@ -15966,6 +15657,50 @@ const popperContentEmits = {
15966
15657
  close: () => true
15967
15658
  };
15968
15659
 
15660
+ const usePopperContentFocusTrap = (props, emit) => {
15661
+ const trapped = ref(false);
15662
+ const focusStartRef = ref();
15663
+ const onFocusAfterTrapped = () => {
15664
+ emit("focus");
15665
+ };
15666
+ const onFocusAfterReleased = (event) => {
15667
+ var _a;
15668
+ if (((_a = event.detail) == null ? void 0 : _a.focusReason) !== "pointer") {
15669
+ focusStartRef.value = "first";
15670
+ emit("blur");
15671
+ }
15672
+ };
15673
+ const onFocusInTrap = (event) => {
15674
+ if (props.visible && !trapped.value) {
15675
+ if (event.target) {
15676
+ focusStartRef.value = event.target;
15677
+ }
15678
+ trapped.value = true;
15679
+ }
15680
+ };
15681
+ const onFocusoutPrevented = (event) => {
15682
+ if (!props.trapping) {
15683
+ if (event.detail.focusReason === "pointer") {
15684
+ event.preventDefault();
15685
+ }
15686
+ trapped.value = false;
15687
+ }
15688
+ };
15689
+ const onReleaseRequested = () => {
15690
+ trapped.value = false;
15691
+ emit("close");
15692
+ };
15693
+ return {
15694
+ focusStartRef,
15695
+ trapped,
15696
+ onFocusAfterReleased,
15697
+ onFocusAfterTrapped,
15698
+ onFocusInTrap,
15699
+ onFocusoutPrevented,
15700
+ onReleaseRequested
15701
+ };
15702
+ };
15703
+
15969
15704
  const buildPopperOptions = (props, modifiers = []) => {
15970
15705
  const { placement, strategy, popperOptions } = props;
15971
15706
  const options = {
@@ -16009,18 +15744,107 @@ function genModifiers(options) {
16009
15744
  fallbackPlacements
16010
15745
  }
16011
15746
  },
16012
- {
16013
- name: "computeStyles",
16014
- options: {
16015
- gpuAcceleration
16016
- }
15747
+ {
15748
+ name: "computeStyles",
15749
+ options: {
15750
+ gpuAcceleration
15751
+ }
15752
+ }
15753
+ ];
15754
+ }
15755
+ function deriveExtraModifiers(options, modifiers) {
15756
+ if (modifiers) {
15757
+ options.modifiers = [...options.modifiers, ...modifiers != null ? modifiers : []];
15758
+ }
15759
+ }
15760
+
15761
+ const usePopper = (referenceElementRef, popperElementRef, opts = {}) => {
15762
+ const stateUpdater = {
15763
+ name: "updateState",
15764
+ enabled: true,
15765
+ phase: "write",
15766
+ fn: ({ state }) => {
15767
+ const derivedState = deriveState(state);
15768
+ Object.assign(states.value, derivedState);
15769
+ },
15770
+ requires: ["computeStyles"]
15771
+ };
15772
+ const options = computed(() => {
15773
+ const { onFirstUpdate, placement, strategy, modifiers } = unref(opts);
15774
+ return {
15775
+ onFirstUpdate,
15776
+ placement: placement || "bottom",
15777
+ strategy: strategy || "absolute",
15778
+ modifiers: [
15779
+ ...modifiers || [],
15780
+ stateUpdater,
15781
+ { name: "applyStyles", enabled: false }
15782
+ ]
15783
+ };
15784
+ });
15785
+ const instanceRef = shallowRef();
15786
+ const states = ref({
15787
+ styles: {
15788
+ popper: {
15789
+ position: unref(options).strategy,
15790
+ left: "0",
15791
+ top: "0"
15792
+ },
15793
+ arrow: {
15794
+ position: "absolute"
15795
+ }
15796
+ },
15797
+ attributes: {}
15798
+ });
15799
+ const destroy = () => {
15800
+ if (!instanceRef.value)
15801
+ return;
15802
+ instanceRef.value.destroy();
15803
+ instanceRef.value = void 0;
15804
+ };
15805
+ watch(options, (newOptions) => {
15806
+ const instance = unref(instanceRef);
15807
+ if (instance) {
15808
+ instance.setOptions(newOptions);
16017
15809
  }
16018
- ];
16019
- }
16020
- function deriveExtraModifiers(options, modifiers) {
16021
- if (modifiers) {
16022
- options.modifiers = [...options.modifiers, ...modifiers != null ? modifiers : []];
16023
- }
15810
+ }, {
15811
+ deep: true
15812
+ });
15813
+ watch([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => {
15814
+ destroy();
15815
+ if (!referenceElement || !popperElement)
15816
+ return;
15817
+ instanceRef.value = yn(referenceElement, popperElement, unref(options));
15818
+ });
15819
+ onBeforeUnmount(() => {
15820
+ destroy();
15821
+ });
15822
+ return {
15823
+ state: computed(() => {
15824
+ var _a;
15825
+ return { ...((_a = unref(instanceRef)) == null ? void 0 : _a.state) || {} };
15826
+ }),
15827
+ styles: computed(() => unref(states).styles),
15828
+ attributes: computed(() => unref(states).attributes),
15829
+ update: () => {
15830
+ var _a;
15831
+ return (_a = unref(instanceRef)) == null ? void 0 : _a.update();
15832
+ },
15833
+ forceUpdate: () => {
15834
+ var _a;
15835
+ return (_a = unref(instanceRef)) == null ? void 0 : _a.forceUpdate();
15836
+ },
15837
+ instanceRef: computed(() => unref(instanceRef))
15838
+ };
15839
+ };
15840
+ function deriveState(state) {
15841
+ const elements = Object.keys(state.elements);
15842
+ const styles = fromPairs(elements.map((element) => [element, state.styles[element] || {}]));
15843
+ const attributes = fromPairs(elements.map((element) => [element, state.attributes[element]]));
15844
+ return {
15845
+ styles,
15846
+ attributes
15847
+ };
16024
15848
  }
16025
15849
 
16026
15850
  const DEFAULT_ARROW_OFFSET = 0;
@@ -16120,55 +15944,11 @@ const usePopperContentDOM = (props, {
16120
15944
  };
16121
15945
  };
16122
15946
 
16123
- const usePopperContentFocusTrap = (props, emit) => {
16124
- const trapped = ref(false);
16125
- const focusStartRef = ref();
16126
- const onFocusAfterTrapped = () => {
16127
- emit("focus");
16128
- };
16129
- const onFocusAfterReleased = (event) => {
16130
- var _a;
16131
- if (((_a = event.detail) == null ? void 0 : _a.focusReason) !== "pointer") {
16132
- focusStartRef.value = "first";
16133
- emit("blur");
16134
- }
16135
- };
16136
- const onFocusInTrap = (event) => {
16137
- if (props.visible && !trapped.value) {
16138
- if (event.target) {
16139
- focusStartRef.value = event.target;
16140
- }
16141
- trapped.value = true;
16142
- }
16143
- };
16144
- const onFocusoutPrevented = (event) => {
16145
- if (!props.trapping) {
16146
- if (event.detail.focusReason === "pointer") {
16147
- event.preventDefault();
16148
- }
16149
- trapped.value = false;
16150
- }
16151
- };
16152
- const onReleaseRequested = () => {
16153
- trapped.value = false;
16154
- emit("close");
16155
- };
16156
- return {
16157
- focusStartRef,
16158
- trapped,
16159
- onFocusAfterReleased,
16160
- onFocusAfterTrapped,
16161
- onFocusInTrap,
16162
- onFocusoutPrevented,
16163
- onReleaseRequested
16164
- };
16165
- };
16166
-
16167
- const __default__$h = defineComponent({
15947
+ const __default__$l = defineComponent({
16168
15948
  name: "ElPopperContent"
16169
15949
  });
16170
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
16171
- ...__default__$h,
15950
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
15951
+ ...__default__$l,
16172
15952
  props: popperContentProps,
16173
15953
  emits: popperContentEmits,
16174
15954
  setup(__props, { expose, emit }) {
@@ -16284,12 +16064,75 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
16284
16064
  };
16285
16065
  }
16286
16066
  });
16287
- var ElPopperContent = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__file", "content.vue"]]);
16067
+ var ElPopperContent = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__file", "content.vue"]]);
16288
16068
 
16289
16069
  const ElPopper = withInstall(Popper);
16290
16070
 
16291
16071
  const TOOLTIP_INJECTION_KEY = Symbol("elTooltip");
16292
16072
 
16073
+ function useTimeout() {
16074
+ let timeoutHandle;
16075
+ const registerTimeout = (fn, delay) => {
16076
+ cancelTimeout();
16077
+ timeoutHandle = window.setTimeout(fn, delay);
16078
+ };
16079
+ const cancelTimeout = () => window.clearTimeout(timeoutHandle);
16080
+ tryOnScopeDispose(() => cancelTimeout());
16081
+ return {
16082
+ registerTimeout,
16083
+ cancelTimeout
16084
+ };
16085
+ }
16086
+
16087
+ const useDelayedToggleProps = buildProps({
16088
+ showAfter: {
16089
+ type: Number,
16090
+ default: 0
16091
+ },
16092
+ hideAfter: {
16093
+ type: Number,
16094
+ default: 200
16095
+ },
16096
+ autoClose: {
16097
+ type: Number,
16098
+ default: 0
16099
+ }
16100
+ });
16101
+ const useDelayedToggle = ({
16102
+ showAfter,
16103
+ hideAfter,
16104
+ autoClose,
16105
+ open,
16106
+ close
16107
+ }) => {
16108
+ const { registerTimeout } = useTimeout();
16109
+ const {
16110
+ registerTimeout: registerTimeoutForAutoClose,
16111
+ cancelTimeout: cancelTimeoutForAutoClose
16112
+ } = useTimeout();
16113
+ const onOpen = (event) => {
16114
+ registerTimeout(() => {
16115
+ open(event);
16116
+ const _autoClose = unref(autoClose);
16117
+ if (isNumber(_autoClose) && _autoClose > 0) {
16118
+ registerTimeoutForAutoClose(() => {
16119
+ close(event);
16120
+ }, _autoClose);
16121
+ }
16122
+ }, unref(showAfter));
16123
+ };
16124
+ const onClose = (event) => {
16125
+ cancelTimeoutForAutoClose();
16126
+ registerTimeout(() => {
16127
+ close(event);
16128
+ }, unref(hideAfter));
16129
+ };
16130
+ return {
16131
+ onOpen,
16132
+ onClose
16133
+ };
16134
+ };
16135
+
16293
16136
  const useTooltipContentProps = buildProps({
16294
16137
  ...useDelayedToggleProps,
16295
16138
  ...popperContentProps,
@@ -16324,10 +16167,133 @@ const useTooltipTriggerProps = buildProps({
16324
16167
  },
16325
16168
  triggerKeys: {
16326
16169
  type: definePropType(Array),
16327
- default: () => [EVENT_CODE.enter, EVENT_CODE.space]
16170
+ default: () => [EVENT_CODE.enter, EVENT_CODE.numpadEnter, EVENT_CODE.space]
16328
16171
  }
16329
16172
  });
16330
16173
 
16174
+ const _prop = buildProp({
16175
+ type: definePropType(Boolean),
16176
+ default: null
16177
+ });
16178
+ const _event = buildProp({
16179
+ type: definePropType(Function)
16180
+ });
16181
+ const createModelToggleComposable = (name) => {
16182
+ const updateEventKey = `update:${name}`;
16183
+ const updateEventKeyRaw = `onUpdate:${name}`;
16184
+ const useModelToggleEmits2 = [updateEventKey];
16185
+ const useModelToggleProps2 = {
16186
+ [name]: _prop,
16187
+ [updateEventKeyRaw]: _event
16188
+ };
16189
+ const useModelToggle2 = ({
16190
+ indicator,
16191
+ toggleReason,
16192
+ shouldHideWhenRouteChanges,
16193
+ shouldProceed,
16194
+ onShow,
16195
+ onHide
16196
+ }) => {
16197
+ const instance = getCurrentInstance();
16198
+ const { emit } = instance;
16199
+ const props = instance.props;
16200
+ const hasUpdateHandler = computed(() => isFunction$1(props[updateEventKeyRaw]));
16201
+ const isModelBindingAbsent = computed(() => props[name] === null);
16202
+ const doShow = (event) => {
16203
+ if (indicator.value === true) {
16204
+ return;
16205
+ }
16206
+ indicator.value = true;
16207
+ if (toggleReason) {
16208
+ toggleReason.value = event;
16209
+ }
16210
+ if (isFunction$1(onShow)) {
16211
+ onShow(event);
16212
+ }
16213
+ };
16214
+ const doHide = (event) => {
16215
+ if (indicator.value === false) {
16216
+ return;
16217
+ }
16218
+ indicator.value = false;
16219
+ if (toggleReason) {
16220
+ toggleReason.value = event;
16221
+ }
16222
+ if (isFunction$1(onHide)) {
16223
+ onHide(event);
16224
+ }
16225
+ };
16226
+ const show = (event) => {
16227
+ if (props.disabled === true || isFunction$1(shouldProceed) && !shouldProceed())
16228
+ return;
16229
+ const shouldEmit = hasUpdateHandler.value && isClient;
16230
+ if (shouldEmit) {
16231
+ emit(updateEventKey, true);
16232
+ }
16233
+ if (isModelBindingAbsent.value || !shouldEmit) {
16234
+ doShow(event);
16235
+ }
16236
+ };
16237
+ const hide = (event) => {
16238
+ if (props.disabled === true || !isClient)
16239
+ return;
16240
+ const shouldEmit = hasUpdateHandler.value && isClient;
16241
+ if (shouldEmit) {
16242
+ emit(updateEventKey, false);
16243
+ }
16244
+ if (isModelBindingAbsent.value || !shouldEmit) {
16245
+ doHide(event);
16246
+ }
16247
+ };
16248
+ const onChange = (val) => {
16249
+ if (!isBoolean(val))
16250
+ return;
16251
+ if (props.disabled && val) {
16252
+ if (hasUpdateHandler.value) {
16253
+ emit(updateEventKey, false);
16254
+ }
16255
+ } else if (indicator.value !== val) {
16256
+ if (val) {
16257
+ doShow();
16258
+ } else {
16259
+ doHide();
16260
+ }
16261
+ }
16262
+ };
16263
+ const toggle = () => {
16264
+ if (indicator.value) {
16265
+ hide();
16266
+ } else {
16267
+ show();
16268
+ }
16269
+ };
16270
+ watch(() => props[name], onChange);
16271
+ if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) {
16272
+ watch(() => ({
16273
+ ...instance.proxy.$route
16274
+ }), () => {
16275
+ if (shouldHideWhenRouteChanges.value && indicator.value) {
16276
+ hide();
16277
+ }
16278
+ });
16279
+ }
16280
+ onMounted(() => {
16281
+ onChange(props[name]);
16282
+ });
16283
+ return {
16284
+ hide,
16285
+ show,
16286
+ toggle,
16287
+ hasUpdateHandler
16288
+ };
16289
+ };
16290
+ return {
16291
+ useModelToggle: useModelToggle2,
16292
+ useModelToggleProps: useModelToggleProps2,
16293
+ useModelToggleEmits: useModelToggleEmits2
16294
+ };
16295
+ };
16296
+
16331
16297
  const {
16332
16298
  useModelToggleProps: useTooltipModelToggleProps,
16333
16299
  useModelToggleEmits: useTooltipModelToggleEmits,
@@ -16366,11 +16332,21 @@ const whenTrigger = (trigger, type, handler) => {
16366
16332
  };
16367
16333
  };
16368
16334
 
16369
- const __default__$g = defineComponent({
16335
+ const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
16336
+ const handleEvent = (event) => {
16337
+ const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event);
16338
+ if (checkForDefaultPrevented === false || !shouldPrevent) {
16339
+ return oursHandler == null ? void 0 : oursHandler(event);
16340
+ }
16341
+ };
16342
+ return handleEvent;
16343
+ };
16344
+
16345
+ const __default__$k = defineComponent({
16370
16346
  name: "ElTooltipTrigger"
16371
16347
  });
16372
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
16373
- ...__default__$g,
16348
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
16349
+ ...__default__$k,
16374
16350
  props: useTooltipTriggerProps,
16375
16351
  setup(__props, { expose }) {
16376
16352
  const props = __props;
@@ -16429,7 +16405,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
16429
16405
  };
16430
16406
  }
16431
16407
  });
16432
- var ElTooltipTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__file", "trigger.vue"]]);
16408
+ var ElTooltipTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$s, [["__file", "trigger.vue"]]);
16433
16409
 
16434
16410
  const teleportProps = buildProps({
16435
16411
  to: {
@@ -16439,7 +16415,7 @@ const teleportProps = buildProps({
16439
16415
  disabled: Boolean
16440
16416
  });
16441
16417
 
16442
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
16418
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
16443
16419
  __name: "teleport",
16444
16420
  props: teleportProps,
16445
16421
  setup(__props) {
@@ -16453,22 +16429,55 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
16453
16429
  };
16454
16430
  }
16455
16431
  });
16456
- var Teleport = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__file", "teleport.vue"]]);
16432
+ var Teleport = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__file", "teleport.vue"]]);
16457
16433
 
16458
16434
  const ElTeleport = withInstall(Teleport);
16459
16435
 
16460
- const __default__$f = defineComponent({
16436
+ const usePopperContainerId = () => {
16437
+ const namespace = useGetDerivedNamespace();
16438
+ const idInjection = useIdInjection();
16439
+ const id = computed(() => {
16440
+ return `${namespace.value}-popper-container-${idInjection.prefix}`;
16441
+ });
16442
+ const selector = computed(() => `#${id.value}`);
16443
+ return {
16444
+ id,
16445
+ selector
16446
+ };
16447
+ };
16448
+ const createContainer = (id) => {
16449
+ const container = document.createElement("div");
16450
+ container.id = id;
16451
+ document.body.appendChild(container);
16452
+ return container;
16453
+ };
16454
+ const usePopperContainer = () => {
16455
+ const { id, selector } = usePopperContainerId();
16456
+ onBeforeMount(() => {
16457
+ if (!isClient)
16458
+ return;
16459
+ if (!document.body.querySelector(selector.value)) {
16460
+ createContainer(id.value);
16461
+ }
16462
+ });
16463
+ return {
16464
+ id,
16465
+ selector
16466
+ };
16467
+ };
16468
+
16469
+ const __default__$j = defineComponent({
16461
16470
  name: "ElTooltipContent",
16462
16471
  inheritAttrs: false
16463
16472
  });
16464
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
16465
- ...__default__$f,
16473
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
16474
+ ...__default__$j,
16466
16475
  props: useTooltipContentProps,
16467
16476
  setup(__props, { expose }) {
16468
16477
  const props = __props;
16469
16478
  const { selector } = usePopperContainerId();
16470
16479
  const ns = useNamespace("tooltip");
16471
- const contentRef = ref(null);
16480
+ const contentRef = ref();
16472
16481
  let stopHandle;
16473
16482
  const {
16474
16483
  controlled,
@@ -16504,9 +16513,11 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
16504
16513
  var _a;
16505
16514
  return (_a = props.style) != null ? _a : {};
16506
16515
  });
16507
- const ariaHidden = computed(() => !unref(open));
16516
+ const ariaHidden = ref(true);
16508
16517
  const onTransitionLeave = () => {
16509
16518
  onHide();
16519
+ isFocusInsideContent() && tryFocus(document.body);
16520
+ ariaHidden.value = true;
16510
16521
  };
16511
16522
  const stopWhenControlled = () => {
16512
16523
  if (unref(controlled))
@@ -16549,9 +16560,17 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
16549
16560
  onClose();
16550
16561
  }
16551
16562
  };
16563
+ const isFocusInsideContent = (event) => {
16564
+ var _a;
16565
+ const popperContent = (_a = contentRef.value) == null ? void 0 : _a.popperContentRef;
16566
+ const activeElement = (event == null ? void 0 : event.relatedTarget) || document.activeElement;
16567
+ return popperContent == null ? void 0 : popperContent.contains(activeElement);
16568
+ };
16552
16569
  watch(() => unref(open), (val) => {
16553
16570
  if (!val) {
16554
16571
  stopHandle == null ? void 0 : stopHandle();
16572
+ } else {
16573
+ ariaHidden.value = false;
16555
16574
  }
16556
16575
  }, {
16557
16576
  flush: "post"
@@ -16561,7 +16580,8 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
16561
16580
  (_b = (_a = contentRef.value) == null ? void 0 : _a.updatePopper) == null ? void 0 : _b.call(_a);
16562
16581
  });
16563
16582
  expose({
16564
- contentRef
16583
+ contentRef,
16584
+ isFocusInsideContent
16565
16585
  });
16566
16586
  return (_ctx, _cache) => {
16567
16587
  return openBlock(), createBlock(unref(ElTeleport), {
@@ -16584,7 +16604,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
16584
16604
  ref: contentRef
16585
16605
  }, _ctx.$attrs, {
16586
16606
  "aria-label": _ctx.ariaLabel,
16587
- "aria-hidden": unref(ariaHidden),
16607
+ "aria-hidden": ariaHidden.value,
16588
16608
  "boundaries-padding": _ctx.boundariesPadding,
16589
16609
  "fallback-placements": _ctx.fallbackPlacements,
16590
16610
  "gpu-acceleration": _ctx.gpuAcceleration,
@@ -16622,13 +16642,13 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
16622
16642
  };
16623
16643
  }
16624
16644
  });
16625
- var ElTooltipContent = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__file", "content.vue"]]);
16645
+ var ElTooltipContent = /* @__PURE__ */ _export_sfc$1(_sfc_main$q, [["__file", "content.vue"]]);
16626
16646
 
16627
- const __default__$e = defineComponent({
16647
+ const __default__$i = defineComponent({
16628
16648
  name: "ElTooltip"
16629
16649
  });
16630
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
16631
- ...__default__$e,
16650
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
16651
+ ...__default__$i,
16632
16652
  props: useTooltipProps,
16633
16653
  emits: tooltipEmits,
16634
16654
  setup(__props, { expose, emit }) {
@@ -16696,10 +16716,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
16696
16716
  }
16697
16717
  });
16698
16718
  const isFocusInsideContent = (event) => {
16699
- var _a, _b;
16700
- const popperContent = (_b = (_a = contentRef.value) == null ? void 0 : _a.contentRef) == null ? void 0 : _b.popperContentRef;
16701
- const activeElement = (event == null ? void 0 : event.relatedTarget) || document.activeElement;
16702
- return popperContent && popperContent.contains(activeElement);
16719
+ var _a;
16720
+ return (_a = contentRef.value) == null ? void 0 : _a.isFocusInsideContent(event);
16703
16721
  };
16704
16722
  onDeactivated(() => open.value && hide());
16705
16723
  expose({
@@ -16780,12 +16798,19 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
16780
16798
  };
16781
16799
  }
16782
16800
  });
16783
- var Tooltip$1 = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__file", "tooltip.vue"]]);
16801
+ var Tooltip$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$p, [["__file", "tooltip.vue"]]);
16784
16802
 
16785
16803
  const ElTooltip = withInstall(Tooltip$1);
16786
16804
 
16787
16805
  const buttonGroupContextKey = Symbol("buttonGroupContextKey");
16788
16806
 
16807
+ const useDeprecated = ({ from, replacement, scope, version, ref, type = "API" }, condition) => {
16808
+ watch(() => unref(condition), (val) => {
16809
+ }, {
16810
+ immediate: true
16811
+ });
16812
+ };
16813
+
16789
16814
  const useButton = (props, emit) => {
16790
16815
  useDeprecated({
16791
16816
  from: "type.text",
@@ -17847,11 +17872,11 @@ function useButtonCustomStyle(props) {
17847
17872
  });
17848
17873
  }
17849
17874
 
17850
- const __default__$d = defineComponent({
17875
+ const __default__$h = defineComponent({
17851
17876
  name: "ElButton"
17852
17877
  });
17853
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
17854
- ...__default__$d,
17878
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
17879
+ ...__default__$h,
17855
17880
  props: buttonProps,
17856
17881
  emits: buttonEmits,
17857
17882
  setup(__props, { expose, emit }) {
@@ -17907,159 +17932,56 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
17907
17932
  })) : createCommentVNode("v-if", true),
17908
17933
  _ctx.$slots.default ? (openBlock(), createElementBlock("span", {
17909
17934
  key: 2,
17910
- class: normalizeClass({ [unref(ns).em("text", "expand")]: unref(shouldAddSpace) })
17911
- }, [
17912
- renderSlot(_ctx.$slots, "default")
17913
- ], 2)) : createCommentVNode("v-if", true)
17914
- ]),
17915
- _: 3
17916
- }, 16, ["class", "style", "onClick"]);
17917
- };
17918
- }
17919
- });
17920
- var Button = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__file", "button.vue"]]);
17921
-
17922
- const buttonGroupProps = {
17923
- size: buttonProps.size,
17924
- type: buttonProps.type
17925
- };
17926
-
17927
- const __default__$c = defineComponent({
17928
- name: "ElButtonGroup"
17929
- });
17930
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
17931
- ...__default__$c,
17932
- props: buttonGroupProps,
17933
- setup(__props) {
17934
- const props = __props;
17935
- provide(buttonGroupContextKey, reactive({
17936
- size: toRef(props, "size"),
17937
- type: toRef(props, "type")
17938
- }));
17939
- const ns = useNamespace("button");
17940
- return (_ctx, _cache) => {
17941
- return openBlock(), createElementBlock("div", {
17942
- class: normalizeClass(unref(ns).b("group"))
17943
- }, [
17944
- renderSlot(_ctx.$slots, "default")
17945
- ], 2);
17946
- };
17947
- }
17948
- });
17949
- var ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__file", "button-group.vue"]]);
17950
-
17951
- const ElButton = withInstall(Button, {
17952
- ButtonGroup
17953
- });
17954
- withNoopInstall(ButtonGroup);
17955
-
17956
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
17957
-
17958
- const nodeList$1 = /* @__PURE__ */ new Map();
17959
- if (isClient) {
17960
- let startClick;
17961
- document.addEventListener("mousedown", (e) => startClick = e);
17962
- document.addEventListener("mouseup", (e) => {
17963
- if (startClick) {
17964
- for (const handlers of nodeList$1.values()) {
17965
- for (const { documentHandler } of handlers) {
17966
- documentHandler(e, startClick);
17967
- }
17968
- }
17969
- startClick = void 0;
17970
- }
17971
- });
17972
- }
17973
- function createDocumentHandler$1(el, binding) {
17974
- let excludes = [];
17975
- if (Array.isArray(binding.arg)) {
17976
- excludes = binding.arg;
17977
- } else if (isElement(binding.arg)) {
17978
- excludes.push(binding.arg);
17979
- }
17980
- return function(mouseup, mousedown) {
17981
- const popperRef = binding.instance.popperRef;
17982
- const mouseUpTarget = mouseup.target;
17983
- const mouseDownTarget = mousedown == null ? void 0 : mousedown.target;
17984
- const isBound = !binding || !binding.instance;
17985
- const isTargetExists = !mouseUpTarget || !mouseDownTarget;
17986
- const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget);
17987
- const isSelf = el === mouseUpTarget;
17988
- const isTargetExcluded = excludes.length && excludes.some((item) => item == null ? void 0 : item.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget);
17989
- const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget));
17990
- if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) {
17991
- return;
17992
- }
17993
- binding.value(mouseup, mousedown);
17994
- };
17995
- }
17996
- const ClickOutside = {
17997
- beforeMount(el, binding) {
17998
- if (!nodeList$1.has(el)) {
17999
- nodeList$1.set(el, []);
18000
- }
18001
- nodeList$1.get(el).push({
18002
- documentHandler: createDocumentHandler$1(el, binding),
18003
- bindingFn: binding.value
18004
- });
18005
- },
18006
- updated(el, binding) {
18007
- if (!nodeList$1.has(el)) {
18008
- nodeList$1.set(el, []);
18009
- }
18010
- const handlers = nodeList$1.get(el);
18011
- const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
18012
- const newHandler = {
18013
- documentHandler: createDocumentHandler$1(el, binding),
18014
- bindingFn: binding.value
18015
- };
18016
- if (oldHandlerIndex >= 0) {
18017
- handlers.splice(oldHandlerIndex, 1, newHandler);
18018
- } else {
18019
- handlers.push(newHandler);
18020
- }
18021
- },
18022
- unmounted(el) {
18023
- nodeList$1.delete(el);
18024
- }
18025
- };
18026
-
18027
- const REPEAT_INTERVAL = 100;
18028
- const REPEAT_DELAY = 600;
18029
- const vRepeatClick = {
18030
- beforeMount(el, binding) {
18031
- const value = binding.value;
18032
- const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction$1(value) ? {} : value;
18033
- let intervalId;
18034
- let delayId;
18035
- const handler = () => isFunction$1(value) ? value() : value.handler();
18036
- const clear = () => {
18037
- if (delayId) {
18038
- clearTimeout(delayId);
18039
- delayId = void 0;
18040
- }
18041
- if (intervalId) {
18042
- clearInterval(intervalId);
18043
- intervalId = void 0;
18044
- }
17935
+ class: normalizeClass({ [unref(ns).em("text", "expand")]: unref(shouldAddSpace) })
17936
+ }, [
17937
+ renderSlot(_ctx.$slots, "default")
17938
+ ], 2)) : createCommentVNode("v-if", true)
17939
+ ]),
17940
+ _: 3
17941
+ }, 16, ["class", "style", "onClick"]);
18045
17942
  };
18046
- el.addEventListener("mousedown", (evt) => {
18047
- if (evt.button !== 0)
18048
- return;
18049
- clear();
18050
- handler();
18051
- document.addEventListener("mouseup", () => clear(), {
18052
- once: true
18053
- });
18054
- delayId = setTimeout(() => {
18055
- intervalId = setInterval(() => {
18056
- handler();
18057
- }, interval);
18058
- }, delay);
18059
- });
18060
17943
  }
17944
+ });
17945
+ var Button = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__file", "button.vue"]]);
17946
+
17947
+ const buttonGroupProps = {
17948
+ size: buttonProps.size,
17949
+ type: buttonProps.type
18061
17950
  };
18062
17951
 
17952
+ const __default__$g = defineComponent({
17953
+ name: "ElButtonGroup"
17954
+ });
17955
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
17956
+ ...__default__$g,
17957
+ props: buttonGroupProps,
17958
+ setup(__props) {
17959
+ const props = __props;
17960
+ provide(buttonGroupContextKey, reactive({
17961
+ size: toRef(props, "size"),
17962
+ type: toRef(props, "type")
17963
+ }));
17964
+ const ns = useNamespace("button");
17965
+ return (_ctx, _cache) => {
17966
+ return openBlock(), createElementBlock("div", {
17967
+ class: normalizeClass(unref(ns).b("group"))
17968
+ }, [
17969
+ renderSlot(_ctx.$slots, "default")
17970
+ ], 2);
17971
+ };
17972
+ }
17973
+ });
17974
+ var ButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$n, [["__file", "button-group.vue"]]);
17975
+
17976
+ const ElButton = withInstall(Button, {
17977
+ ButtonGroup
17978
+ });
17979
+ withNoopInstall(ButtonGroup);
17980
+
17981
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
17982
+
17983
+ const escapeStringRegexp = (string = "") => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
17984
+
18063
17985
  const tagProps = buildProps({
18064
17986
  type: {
18065
17987
  type: String,
@@ -18086,11 +18008,11 @@ const tagEmits = {
18086
18008
  click: (evt) => evt instanceof MouseEvent
18087
18009
  };
18088
18010
 
18089
- const __default__$b = defineComponent({
18011
+ const __default__$f = defineComponent({
18090
18012
  name: "ElTag"
18091
18013
  });
18092
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
18093
- ...__default__$b,
18014
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
18015
+ ...__default__$f,
18094
18016
  props: tagProps,
18095
18017
  emits: tagEmits,
18096
18018
  setup(__props, { emit }) {
@@ -18116,7 +18038,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
18116
18038
  emit("click", event);
18117
18039
  };
18118
18040
  const handleVNodeMounted = (vnode) => {
18119
- vnode.component.subTree.component.bum = null;
18041
+ var _a, _b, _c;
18042
+ if ((_c = (_b = (_a = vnode == null ? void 0 : vnode.component) == null ? void 0 : _a.subTree) == null ? void 0 : _b.component) == null ? void 0 : _c.bum) {
18043
+ vnode.component.subTree.component.bum = null;
18044
+ }
18120
18045
  };
18121
18046
  return (_ctx, _cache) => {
18122
18047
  return _ctx.disableTransitions ? (openBlock(), createElementBlock("span", {
@@ -18174,26 +18099,131 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
18174
18099
  };
18175
18100
  }
18176
18101
  });
18177
- var Tag = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__file", "tag.vue"]]);
18102
+ var Tag = /* @__PURE__ */ _export_sfc$1(_sfc_main$m, [["__file", "tag.vue"]]);
18178
18103
 
18179
18104
  const ElTag = withInstall(Tag);
18180
18105
 
18181
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
18106
+ const nodeList$1 = /* @__PURE__ */ new Map();
18107
+ if (isClient) {
18108
+ let startClick;
18109
+ document.addEventListener("mousedown", (e) => startClick = e);
18110
+ document.addEventListener("mouseup", (e) => {
18111
+ if (startClick) {
18112
+ for (const handlers of nodeList$1.values()) {
18113
+ for (const { documentHandler } of handlers) {
18114
+ documentHandler(e, startClick);
18115
+ }
18116
+ }
18117
+ startClick = void 0;
18118
+ }
18119
+ });
18120
+ }
18121
+ function createDocumentHandler$1(el, binding) {
18122
+ let excludes = [];
18123
+ if (isArray$1(binding.arg)) {
18124
+ excludes = binding.arg;
18125
+ } else if (isElement(binding.arg)) {
18126
+ excludes.push(binding.arg);
18127
+ }
18128
+ return function(mouseup, mousedown) {
18129
+ const popperRef = binding.instance.popperRef;
18130
+ const mouseUpTarget = mouseup.target;
18131
+ const mouseDownTarget = mousedown == null ? void 0 : mousedown.target;
18132
+ const isBound = !binding || !binding.instance;
18133
+ const isTargetExists = !mouseUpTarget || !mouseDownTarget;
18134
+ const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget);
18135
+ const isSelf = el === mouseUpTarget;
18136
+ const isTargetExcluded = excludes.length && excludes.some((item) => item == null ? void 0 : item.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget);
18137
+ const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget));
18138
+ if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) {
18139
+ return;
18140
+ }
18141
+ binding.value(mouseup, mousedown);
18142
+ };
18143
+ }
18144
+ const ClickOutside = {
18145
+ beforeMount(el, binding) {
18146
+ if (!nodeList$1.has(el)) {
18147
+ nodeList$1.set(el, []);
18148
+ }
18149
+ nodeList$1.get(el).push({
18150
+ documentHandler: createDocumentHandler$1(el, binding),
18151
+ bindingFn: binding.value
18152
+ });
18153
+ },
18154
+ updated(el, binding) {
18155
+ if (!nodeList$1.has(el)) {
18156
+ nodeList$1.set(el, []);
18157
+ }
18158
+ const handlers = nodeList$1.get(el);
18159
+ const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
18160
+ const newHandler = {
18161
+ documentHandler: createDocumentHandler$1(el, binding),
18162
+ bindingFn: binding.value
18163
+ };
18164
+ if (oldHandlerIndex >= 0) {
18165
+ handlers.splice(oldHandlerIndex, 1, newHandler);
18166
+ } else {
18167
+ handlers.push(newHandler);
18168
+ }
18169
+ },
18170
+ unmounted(el) {
18171
+ nodeList$1.delete(el);
18172
+ }
18173
+ };
18174
+
18175
+ const REPEAT_INTERVAL = 100;
18176
+ const REPEAT_DELAY = 600;
18177
+ const vRepeatClick = {
18178
+ beforeMount(el, binding) {
18179
+ const value = binding.value;
18180
+ const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction$1(value) ? {} : value;
18181
+ let intervalId;
18182
+ let delayId;
18183
+ const handler = () => isFunction$1(value) ? value() : value.handler();
18184
+ const clear = () => {
18185
+ if (delayId) {
18186
+ clearTimeout(delayId);
18187
+ delayId = void 0;
18188
+ }
18189
+ if (intervalId) {
18190
+ clearInterval(intervalId);
18191
+ intervalId = void 0;
18192
+ }
18193
+ };
18194
+ el.addEventListener("mousedown", (evt) => {
18195
+ if (evt.button !== 0)
18196
+ return;
18197
+ clear();
18198
+ handler();
18199
+ document.addEventListener("mouseup", () => clear(), {
18200
+ once: true
18201
+ });
18202
+ delayId = setTimeout(() => {
18203
+ intervalId = setInterval(() => {
18204
+ handler();
18205
+ }, interval);
18206
+ }, delay);
18207
+ });
18208
+ }
18209
+ };
18210
+
18211
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
18182
18212
  inheritAttrs: false
18183
18213
  });
18184
18214
  function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
18185
18215
  return renderSlot(_ctx.$slots, "default");
18186
18216
  }
18187
- var Collection = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$5], ["__file", "collection.vue"]]);
18217
+ var Collection = /* @__PURE__ */ _export_sfc$1(_sfc_main$l, [["render", _sfc_render$5], ["__file", "collection.vue"]]);
18188
18218
 
18189
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
18219
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
18190
18220
  name: "ElCollectionItem",
18191
18221
  inheritAttrs: false
18192
18222
  });
18193
18223
  function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
18194
18224
  return renderSlot(_ctx.$slots, "default");
18195
18225
  }
18196
- var CollectionItem = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$4], ["__file", "collection-item.vue"]]);
18226
+ var CollectionItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["render", _sfc_render$4], ["__file", "collection-item.vue"]]);
18197
18227
 
18198
18228
  const COLLECTION_ITEM_SIGN = `data-el-collection-item`;
18199
18229
  const createCollectionWithScope = (name) => {
@@ -18256,6 +18286,15 @@ const createCollectionWithScope = (name) => {
18256
18286
 
18257
18287
  const dropdownProps = buildProps({
18258
18288
  trigger: useTooltipTriggerProps.trigger,
18289
+ triggerKeys: {
18290
+ type: definePropType(Array),
18291
+ default: () => [
18292
+ EVENT_CODE.enter,
18293
+ EVENT_CODE.numpadEnter,
18294
+ EVENT_CODE.space,
18295
+ EVENT_CODE.down
18296
+ ]
18297
+ },
18259
18298
  effect: {
18260
18299
  ...useTooltipContentProps.effect,
18261
18300
  default: "light"
@@ -18394,11 +18433,11 @@ const inputNumberEmits = {
18394
18433
  [UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val)
18395
18434
  };
18396
18435
 
18397
- const __default__$a = defineComponent({
18436
+ const __default__$e = defineComponent({
18398
18437
  name: "ElInputNumber"
18399
18438
  });
18400
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
18401
- ...__default__$a,
18439
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
18440
+ ...__default__$e,
18402
18441
  props: inputNumberProps,
18403
18442
  emits: inputNumberEmits,
18404
18443
  setup(__props, { expose, emit }) {
@@ -18513,6 +18552,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
18513
18552
  }
18514
18553
  if (stepStrictly) {
18515
18554
  newVal = toPrecision(Math.round(newVal / step) * step, precision);
18555
+ if (newVal !== value) {
18556
+ update && emit(UPDATE_MODEL_EVENT, newVal);
18557
+ }
18516
18558
  }
18517
18559
  if (!isUndefined(precision)) {
18518
18560
  newVal = toPrecision(newVal, precision);
@@ -18569,11 +18611,14 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
18569
18611
  emit("focus", event);
18570
18612
  };
18571
18613
  const handleBlur = (event) => {
18572
- var _a;
18614
+ var _a, _b;
18573
18615
  data.userInput = null;
18616
+ if (isFirefox() && data.currentValue === null && ((_a = input.value) == null ? void 0 : _a.input)) {
18617
+ input.value.input.value = "";
18618
+ }
18574
18619
  emit("blur", event);
18575
18620
  if (props.validateEvent) {
18576
- (_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "blur").catch((err) => debugWarn());
18621
+ (_b = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _b.call(formItem, "blur").catch((err) => debugWarn());
18577
18622
  }
18578
18623
  };
18579
18624
  const setCurrentValueToModelValue = () => {
@@ -18698,15 +18743,121 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
18698
18743
  onFocus: handleFocus,
18699
18744
  onInput: handleInput,
18700
18745
  onChange: handleInputChange
18701
- }, null, 8, ["id", "step", "model-value", "placeholder", "readonly", "disabled", "size", "max", "min", "name", "aria-label", "onKeydown"])
18746
+ }, createSlots({
18747
+ _: 2
18748
+ }, [
18749
+ _ctx.$slots.prefix ? {
18750
+ name: "prefix",
18751
+ fn: withCtx(() => [
18752
+ renderSlot(_ctx.$slots, "prefix")
18753
+ ])
18754
+ } : void 0,
18755
+ _ctx.$slots.suffix ? {
18756
+ name: "suffix",
18757
+ fn: withCtx(() => [
18758
+ renderSlot(_ctx.$slots, "suffix")
18759
+ ])
18760
+ } : void 0
18761
+ ]), 1032, ["id", "step", "model-value", "placeholder", "readonly", "disabled", "size", "max", "min", "name", "aria-label", "onKeydown"])
18702
18762
  ], 42, ["onDragstart"]);
18703
18763
  };
18704
18764
  }
18705
18765
  });
18706
- var InputNumber = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__file", "input-number.vue"]]);
18766
+ var InputNumber = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__file", "input-number.vue"]]);
18707
18767
 
18708
18768
  const ElInputNumber = withInstall(InputNumber);
18709
18769
 
18770
+ function useCalcInputWidth() {
18771
+ const calculatorRef = shallowRef();
18772
+ const calculatorWidth = ref(0);
18773
+ const MINIMUM_INPUT_WIDTH = 11;
18774
+ const inputStyle = computed(() => ({
18775
+ minWidth: `${Math.max(calculatorWidth.value, MINIMUM_INPUT_WIDTH)}px`
18776
+ }));
18777
+ const resetCalculatorWidth = () => {
18778
+ var _a, _b;
18779
+ calculatorWidth.value = (_b = (_a = calculatorRef.value) == null ? void 0 : _a.getBoundingClientRect().width) != null ? _b : 0;
18780
+ };
18781
+ useResizeObserver(calculatorRef, resetCalculatorWidth);
18782
+ return {
18783
+ calculatorRef,
18784
+ calculatorWidth,
18785
+ inputStyle
18786
+ };
18787
+ }
18788
+
18789
+ const linkProps = buildProps({
18790
+ type: {
18791
+ type: String,
18792
+ values: ["primary", "success", "warning", "info", "danger", "default"],
18793
+ default: "default"
18794
+ },
18795
+ underline: {
18796
+ type: Boolean,
18797
+ default: true
18798
+ },
18799
+ disabled: Boolean,
18800
+ href: { type: String, default: "" },
18801
+ target: {
18802
+ type: String,
18803
+ default: "_self"
18804
+ },
18805
+ icon: {
18806
+ type: iconPropType
18807
+ }
18808
+ });
18809
+ const linkEmits = {
18810
+ click: (evt) => evt instanceof MouseEvent
18811
+ };
18812
+
18813
+ const __default__$d = defineComponent({
18814
+ name: "ElLink"
18815
+ });
18816
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
18817
+ ...__default__$d,
18818
+ props: linkProps,
18819
+ emits: linkEmits,
18820
+ setup(__props, { emit }) {
18821
+ const props = __props;
18822
+ const ns = useNamespace("link");
18823
+ const linkKls = computed(() => [
18824
+ ns.b(),
18825
+ ns.m(props.type),
18826
+ ns.is("disabled", props.disabled),
18827
+ ns.is("underline", props.underline && !props.disabled)
18828
+ ]);
18829
+ function handleClick(event) {
18830
+ if (!props.disabled)
18831
+ emit("click", event);
18832
+ }
18833
+ return (_ctx, _cache) => {
18834
+ return openBlock(), createElementBlock("a", {
18835
+ class: normalizeClass(unref(linkKls)),
18836
+ href: _ctx.disabled || !_ctx.href ? void 0 : _ctx.href,
18837
+ target: _ctx.disabled || !_ctx.href ? void 0 : _ctx.target,
18838
+ onClick: handleClick
18839
+ }, [
18840
+ _ctx.icon ? (openBlock(), createBlock(unref(ElIcon), { key: 0 }, {
18841
+ default: withCtx(() => [
18842
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.icon)))
18843
+ ]),
18844
+ _: 1
18845
+ })) : createCommentVNode("v-if", true),
18846
+ _ctx.$slots.default ? (openBlock(), createElementBlock("span", {
18847
+ key: 1,
18848
+ class: normalizeClass(unref(ns).e("inner"))
18849
+ }, [
18850
+ renderSlot(_ctx.$slots, "default")
18851
+ ], 2)) : createCommentVNode("v-if", true),
18852
+ _ctx.$slots.icon ? renderSlot(_ctx.$slots, "icon", { key: 2 }) : createCommentVNode("v-if", true)
18853
+ ], 10, ["href", "target"]);
18854
+ };
18855
+ }
18856
+ });
18857
+ var Link = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__file", "link.vue"]]);
18858
+
18859
+ const ElLink = withInstall(Link);
18860
+
18710
18861
  const selectGroupKey = Symbol("ElSelectGroup");
18711
18862
  const selectKey = Symbol("ElSelect");
18712
18863
 
@@ -18785,7 +18936,7 @@ function useOption(props, states) {
18785
18936
  };
18786
18937
  }
18787
18938
 
18788
- const _sfc_main$e = defineComponent({
18939
+ const _sfc_main$h = defineComponent({
18789
18940
  name: "ElOption",
18790
18941
  componentName: "ElOption",
18791
18942
  props: {
@@ -18825,8 +18976,7 @@ const _sfc_main$e = defineComponent({
18825
18976
  select.onOptionCreate(vm);
18826
18977
  onBeforeUnmount(() => {
18827
18978
  const key = vm.value;
18828
- const { selected } = select.states;
18829
- const selectedOptions = select.props.multiple ? selected : [selected];
18979
+ const { selected: selectedOptions } = select.states;
18830
18980
  const doesSelected = selectedOptions.some((item) => {
18831
18981
  return item.value === vm.value;
18832
18982
  });
@@ -18866,19 +19016,19 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
18866
19016
  role: "option",
18867
19017
  "aria-disabled": _ctx.isDisabled || void 0,
18868
19018
  "aria-selected": _ctx.itemSelected,
18869
- onMouseenter: _ctx.hoverItem,
19019
+ onMousemove: _ctx.hoverItem,
18870
19020
  onClick: withModifiers(_ctx.selectOptionClick, ["stop"])
18871
19021
  }, [
18872
19022
  renderSlot(_ctx.$slots, "default", {}, () => [
18873
19023
  createElementVNode("span", null, toDisplayString(_ctx.currentLabel), 1)
18874
19024
  ])
18875
- ], 42, ["id", "aria-disabled", "aria-selected", "onMouseenter", "onClick"])), [
19025
+ ], 42, ["id", "aria-disabled", "aria-selected", "onMousemove", "onClick"])), [
18876
19026
  [vShow, _ctx.visible]
18877
19027
  ]);
18878
19028
  }
18879
- var Option = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$3], ["__file", "option.vue"]]);
19029
+ var Option = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["render", _sfc_render$3], ["__file", "option.vue"]]);
18880
19030
 
18881
- const _sfc_main$d = defineComponent({
19031
+ const _sfc_main$g = defineComponent({
18882
19032
  name: "ElSelectDropdown",
18883
19033
  componentName: "ElSelectDropdown",
18884
19034
  setup() {
@@ -18925,9 +19075,8 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
18925
19075
  ], 2)) : createCommentVNode("v-if", true)
18926
19076
  ], 6);
18927
19077
  }
18928
- var ElSelectMenu = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$2], ["__file", "select-dropdown.vue"]]);
19078
+ var ElSelectMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["render", _sfc_render$2], ["__file", "select-dropdown.vue"]]);
18929
19079
 
18930
- const MINIMUM_INPUT_WIDTH = 11;
18931
19080
  const useSelect = (props, emit) => {
18932
19081
  const { t } = useLocale();
18933
19082
  const contentId = useId();
@@ -18937,11 +19086,9 @@ const useSelect = (props, emit) => {
18937
19086
  inputValue: "",
18938
19087
  options: /* @__PURE__ */ new Map(),
18939
19088
  cachedOptions: /* @__PURE__ */ new Map(),
18940
- disabledOptions: /* @__PURE__ */ new Map(),
18941
19089
  optionValues: [],
18942
19090
  selected: [],
18943
19091
  selectionWidth: 0,
18944
- calculatorWidth: 0,
18945
19092
  collapseItemWidth: 0,
18946
19093
  selectedLabel: "",
18947
19094
  hoveringIndex: -1,
@@ -18955,7 +19102,6 @@ const useSelect = (props, emit) => {
18955
19102
  const tooltipRef = ref(null);
18956
19103
  const tagTooltipRef = ref(null);
18957
19104
  const inputRef = ref(null);
18958
- const calculatorRef = ref(null);
18959
19105
  const prefixRef = ref(null);
18960
19106
  const suffixRef = ref(null);
18961
19107
  const menuRef = ref(null);
@@ -18970,7 +19116,7 @@ const useSelect = (props, emit) => {
18970
19116
  } = useComposition({
18971
19117
  afterComposition: (e) => onInput(e)
18972
19118
  });
18973
- const { wrapperRef, isFocused } = useFocusController(inputRef, {
19119
+ const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, {
18974
19120
  beforeFocus() {
18975
19121
  return selectDisabled.value;
18976
19122
  },
@@ -19000,6 +19146,10 @@ const useSelect = (props, emit) => {
19000
19146
  const hasModelValue = computed(() => {
19001
19147
  return isArray$1(props.modelValue) ? props.modelValue.length > 0 : !isEmptyValue(props.modelValue);
19002
19148
  });
19149
+ const needStatusIcon = computed(() => {
19150
+ var _a;
19151
+ return (_a = form == null ? void 0 : form.statusIcon) != null ? _a : false;
19152
+ });
19003
19153
  const showClose = computed(() => {
19004
19154
  return props.clearable && !selectDisabled.value && states.inputHovering && hasModelValue.value;
19005
19155
  });
@@ -19008,12 +19158,11 @@ const useSelect = (props, emit) => {
19008
19158
  const validateState = computed(() => (formItem == null ? void 0 : formItem.validateState) || "");
19009
19159
  const validateIcon = computed(() => ValidateComponentsMap[validateState.value]);
19010
19160
  const debounce$1 = computed(() => props.remote ? 300 : 0);
19161
+ const isRemoteSearchEmpty = computed(() => props.remote && !states.inputValue && states.options.size === 0);
19011
19162
  const emptyText = computed(() => {
19012
19163
  if (props.loading) {
19013
19164
  return props.loadingText || t("el.select.loading");
19014
19165
  } else {
19015
- if (props.remote && !states.inputValue && states.options.size === 0)
19016
- return false;
19017
19166
  if (props.filterable && states.inputValue && states.options.size > 0 && filteredOptionsCount.value === 0) {
19018
19167
  return props.noMatchText || t("el.select.noMatch");
19019
19168
  }
@@ -19058,7 +19207,7 @@ const useSelect = (props, emit) => {
19058
19207
  const collapseTagSize = computed(() => ["small"].includes(selectSize.value) ? "small" : "default");
19059
19208
  const dropdownMenuVisible = computed({
19060
19209
  get() {
19061
- return expanded.value && emptyText.value !== false;
19210
+ return expanded.value && !isRemoteSearchEmpty.value;
19062
19211
  },
19063
19212
  set(val) {
19064
19213
  expanded.value = val;
@@ -19103,13 +19252,9 @@ const useSelect = (props, emit) => {
19103
19252
  emit("visible-change", val);
19104
19253
  });
19105
19254
  watch(() => states.options.entries(), () => {
19106
- var _a;
19107
19255
  if (!isClient)
19108
19256
  return;
19109
- const inputs = ((_a = selectRef.value) == null ? void 0 : _a.querySelectorAll("input")) || [];
19110
- if (!props.filterable && !props.defaultFirstOption && !isUndefined(props.modelValue) || !Array.from(inputs).includes(document.activeElement)) {
19111
- setSelected();
19112
- }
19257
+ setSelected();
19113
19258
  if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptionsCount.value) {
19114
19259
  checkDefaultFirstOption();
19115
19260
  }
@@ -19151,7 +19296,8 @@ const useSelect = (props, emit) => {
19151
19296
  const optionsInDropdown = optionsArray.value.filter((n) => n.visible && !n.disabled && !n.states.groupDisabled);
19152
19297
  const userCreatedOption = optionsInDropdown.find((n) => n.created);
19153
19298
  const firstOriginOption = optionsInDropdown[0];
19154
- states.hoveringIndex = getValueIndex(optionsArray.value, userCreatedOption || firstOriginOption);
19299
+ const valueList = optionsArray.value.map((item) => item.value);
19300
+ states.hoveringIndex = getValueIndex(valueList, userCreatedOption || firstOriginOption);
19155
19301
  };
19156
19302
  const setSelected = () => {
19157
19303
  if (!props.multiple) {
@@ -19173,9 +19319,7 @@ const useSelect = (props, emit) => {
19173
19319
  };
19174
19320
  const getOption = (value) => {
19175
19321
  let option;
19176
- const isObjectValue = toRawType(value).toLowerCase() === "object";
19177
- const isNull = toRawType(value).toLowerCase() === "null";
19178
- const isUndefined2 = toRawType(value).toLowerCase() === "undefined";
19322
+ const isObjectValue = isPlainObject$1(value);
19179
19323
  for (let i = states.cachedOptions.size - 1; i >= 0; i--) {
19180
19324
  const cachedOption = cachedOptionsArray.value[i];
19181
19325
  const isEqualValue = isObjectValue ? get(cachedOption.value, props.valueKey) === get(value, props.valueKey) : cachedOption.value === value;
@@ -19192,7 +19336,7 @@ const useSelect = (props, emit) => {
19192
19336
  }
19193
19337
  if (option)
19194
19338
  return option;
19195
- const label = isObjectValue ? value.label : !isNull && !isUndefined2 ? value : "";
19339
+ const label = isObjectValue ? value.label : value != null ? value : "";
19196
19340
  const newOption = {
19197
19341
  value,
19198
19342
  currentLabel: label
@@ -19205,9 +19349,6 @@ const useSelect = (props, emit) => {
19205
19349
  const resetSelectionWidth = () => {
19206
19350
  states.selectionWidth = selectionRef.value.getBoundingClientRect().width;
19207
19351
  };
19208
- const resetCalculatorWidth = () => {
19209
- states.calculatorWidth = calculatorRef.value.getBoundingClientRect().width;
19210
- };
19211
19352
  const resetCollapseItemWidth = () => {
19212
19353
  states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width;
19213
19354
  };
@@ -19241,7 +19382,10 @@ const useSelect = (props, emit) => {
19241
19382
  emit(CHANGE_EVENT, val);
19242
19383
  }
19243
19384
  };
19244
- const getLastNotDisabledIndex = (value) => findLastIndex(value, (it) => !states.disabledOptions.has(it));
19385
+ const getLastNotDisabledIndex = (value) => findLastIndex(value, (it) => {
19386
+ const option = states.cachedOptions.get(it);
19387
+ return option && !option.disabled && !option.states.groupDisabled;
19388
+ });
19245
19389
  const deletePrevTag = (e) => {
19246
19390
  if (!props.multiple)
19247
19391
  return;
@@ -19291,7 +19435,7 @@ const useSelect = (props, emit) => {
19291
19435
  var _a;
19292
19436
  if (props.multiple) {
19293
19437
  const value = castArray((_a = props.modelValue) != null ? _a : []).slice();
19294
- const optionIndex = getValueIndex(value, option.value);
19438
+ const optionIndex = getValueIndex(value, option);
19295
19439
  if (optionIndex > -1) {
19296
19440
  value.splice(optionIndex, 1);
19297
19441
  } else if (props.multipleLimit <= 0 || value.length < props.multipleLimit) {
@@ -19317,19 +19461,14 @@ const useSelect = (props, emit) => {
19317
19461
  scrollToOption(option);
19318
19462
  });
19319
19463
  };
19320
- const getValueIndex = (arr = [], value) => {
19321
- if (!isObject$1(value))
19322
- return arr.indexOf(value);
19323
- const valueKey = props.valueKey;
19324
- let index = -1;
19325
- arr.some((item, i) => {
19326
- if (toRaw(get(item, valueKey)) === get(value, valueKey)) {
19327
- index = i;
19328
- return true;
19329
- }
19330
- return false;
19464
+ const getValueIndex = (arr = [], option) => {
19465
+ if (isUndefined(option))
19466
+ return -1;
19467
+ if (!isObject$1(option.value))
19468
+ return arr.indexOf(option.value);
19469
+ return arr.findIndex((item) => {
19470
+ return isEqual(get(item, props.valueKey), getValueKey(option));
19331
19471
  });
19332
- return index;
19333
19472
  };
19334
19473
  const scrollToOption = (option) => {
19335
19474
  var _a, _b, _c, _d, _e;
@@ -19352,7 +19491,6 @@ const useSelect = (props, emit) => {
19352
19491
  const onOptionCreate = (vm) => {
19353
19492
  states.options.set(vm.value, vm);
19354
19493
  states.cachedOptions.set(vm.value, vm);
19355
- vm.disabled && states.disabledOptions.set(vm.value, vm);
19356
19494
  };
19357
19495
  const onOptionDestroy = (key, vm) => {
19358
19496
  if (states.options.get(key) === vm) {
@@ -19373,14 +19511,25 @@ const useSelect = (props, emit) => {
19373
19511
  };
19374
19512
  const blur = () => {
19375
19513
  var _a;
19514
+ if (expanded.value) {
19515
+ expanded.value = false;
19516
+ nextTick(() => {
19517
+ var _a2;
19518
+ return (_a2 = inputRef.value) == null ? void 0 : _a2.blur();
19519
+ });
19520
+ return;
19521
+ }
19376
19522
  (_a = inputRef.value) == null ? void 0 : _a.blur();
19377
19523
  };
19378
19524
  const handleClearClick = (event) => {
19379
19525
  deleteSelected(event);
19380
19526
  };
19381
- const handleClickOutside = () => {
19527
+ const handleClickOutside = (event) => {
19382
19528
  expanded.value = false;
19383
- isFocused.value && blur();
19529
+ if (isFocused.value) {
19530
+ const _event = new FocusEvent("focus", event);
19531
+ nextTick(() => handleBlur(_event));
19532
+ }
19384
19533
  };
19385
19534
  const handleEsc = () => {
19386
19535
  if (states.inputValue.length > 0) {
@@ -19404,15 +19553,16 @@ const useSelect = (props, emit) => {
19404
19553
  if (!expanded.value) {
19405
19554
  toggleMenu();
19406
19555
  } else {
19407
- if (optionsArray.value[states.hoveringIndex]) {
19408
- handleOptionSelect(optionsArray.value[states.hoveringIndex]);
19556
+ const option = optionsArray.value[states.hoveringIndex];
19557
+ if (option && !option.isDisabled) {
19558
+ handleOptionSelect(option);
19409
19559
  }
19410
19560
  }
19411
19561
  };
19412
19562
  const getValueKey = (item) => {
19413
19563
  return isObject$1(item.value) ? get(item.value, props.valueKey) : item.value;
19414
19564
  };
19415
- const optionsAllDisabled = computed(() => optionsArray.value.filter((option) => option.visible).every((option) => option.disabled));
19565
+ const optionsAllDisabled = computed(() => optionsArray.value.filter((option) => option.visible).every((option) => option.isDisabled));
19416
19566
  const showTagList = computed(() => {
19417
19567
  if (!props.multiple) {
19418
19568
  return [];
@@ -19430,7 +19580,7 @@ const useSelect = (props, emit) => {
19430
19580
  expanded.value = true;
19431
19581
  return;
19432
19582
  }
19433
- if (states.options.size === 0 || states.filteredOptionsCount === 0 || isComposing.value)
19583
+ if (states.options.size === 0 || filteredOptionsCount.value === 0 || isComposing.value)
19434
19584
  return;
19435
19585
  if (!optionsAllDisabled.value) {
19436
19586
  if (direction === "next") {
@@ -19445,7 +19595,7 @@ const useSelect = (props, emit) => {
19445
19595
  }
19446
19596
  }
19447
19597
  const option = optionsArray.value[states.hoveringIndex];
19448
- if (option.disabled === true || option.states.groupDisabled === true || !option.visible) {
19598
+ if (option.isDisabled || !option.visible) {
19449
19599
  navigateOptions(direction);
19450
19600
  }
19451
19601
  nextTick(() => scrollToOption(hoverOption.value));
@@ -19465,11 +19615,7 @@ const useSelect = (props, emit) => {
19465
19615
  const collapseTagStyle = computed(() => {
19466
19616
  return { maxWidth: `${states.selectionWidth}px` };
19467
19617
  });
19468
- const inputStyle = computed(() => ({
19469
- width: `${Math.max(states.calculatorWidth, MINIMUM_INPUT_WIDTH)}px`
19470
- }));
19471
19618
  useResizeObserver(selectionRef, resetSelectionWidth);
19472
- useResizeObserver(calculatorRef, resetCalculatorWidth);
19473
19619
  useResizeObserver(menuRef, updateTooltip);
19474
19620
  useResizeObserver(wrapperRef, updateTooltip);
19475
19621
  useResizeObserver(tagMenuRef, updateTagTooltip);
@@ -19489,7 +19635,6 @@ const useSelect = (props, emit) => {
19489
19635
  hoverOption,
19490
19636
  selectSize,
19491
19637
  filteredOptionsCount,
19492
- resetCalculatorWidth,
19493
19638
  updateTooltip,
19494
19639
  updateTagTooltip,
19495
19640
  debouncedOnInputChange,
@@ -19503,6 +19648,7 @@ const useSelect = (props, emit) => {
19503
19648
  shouldShowPlaceholder,
19504
19649
  currentPlaceholder,
19505
19650
  mouseEnterEventName,
19651
+ needStatusIcon,
19506
19652
  showClose,
19507
19653
  iconComponent,
19508
19654
  iconReverse,
@@ -19534,12 +19680,10 @@ const useSelect = (props, emit) => {
19534
19680
  collapseTagList,
19535
19681
  tagStyle,
19536
19682
  collapseTagStyle,
19537
- inputStyle,
19538
19683
  popperRef,
19539
19684
  inputRef,
19540
19685
  tooltipRef,
19541
19686
  tagTooltipRef,
19542
- calculatorRef,
19543
19687
  prefixRef,
19544
19688
  suffixRef,
19545
19689
  selectRef,
@@ -19670,6 +19814,14 @@ const SelectProps = buildProps({
19670
19814
  default: true
19671
19815
  },
19672
19816
  remoteShowSuffix: Boolean,
19817
+ showArrow: {
19818
+ type: Boolean,
19819
+ default: true
19820
+ },
19821
+ offset: {
19822
+ type: Number,
19823
+ default: 12
19824
+ },
19673
19825
  placement: {
19674
19826
  type: definePropType(String),
19675
19827
  values: Ee,
@@ -19679,12 +19831,17 @@ const SelectProps = buildProps({
19679
19831
  type: definePropType(Array),
19680
19832
  default: ["bottom-start", "top-start", "right", "left"]
19681
19833
  },
19834
+ tabindex: {
19835
+ type: [String, Number],
19836
+ default: 0
19837
+ },
19838
+ appendTo: String,
19682
19839
  ...useEmptyValuesProps,
19683
19840
  ...useAriaProps(["ariaLabel"])
19684
19841
  });
19685
19842
 
19686
19843
  const COMPONENT_NAME = "ElSelect";
19687
- const _sfc_main$c = defineComponent({
19844
+ const _sfc_main$f = defineComponent({
19688
19845
  name: COMPONENT_NAME,
19689
19846
  componentName: COMPONENT_NAME,
19690
19847
  components: {
@@ -19721,6 +19878,7 @@ const _sfc_main$c = defineComponent({
19721
19878
  modelValue
19722
19879
  });
19723
19880
  const API = useSelect(_props, emit);
19881
+ const { calculatorRef, inputStyle } = useCalcInputWidth();
19724
19882
  provide(selectKey, reactive({
19725
19883
  props: _props,
19726
19884
  states: API.states,
@@ -19731,9 +19889,18 @@ const _sfc_main$c = defineComponent({
19731
19889
  selectRef: API.selectRef,
19732
19890
  setSelected: API.setSelected
19733
19891
  }));
19892
+ const selectedLabel = computed(() => {
19893
+ if (!props.multiple) {
19894
+ return API.states.selectedLabel;
19895
+ }
19896
+ return API.states.selected.map((i) => i.currentLabel);
19897
+ });
19734
19898
  return {
19735
19899
  ...API,
19736
- modelValue
19900
+ modelValue,
19901
+ selectedLabel,
19902
+ calculatorRef,
19903
+ inputStyle
19737
19904
  };
19738
19905
  }
19739
19906
  });
@@ -19767,6 +19934,9 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
19767
19934
  "stop-popper-mouse-event": false,
19768
19935
  "gpu-acceleration": false,
19769
19936
  persistent: _ctx.persistent,
19937
+ "append-to": _ctx.appendTo,
19938
+ "show-arrow": _ctx.showArrow,
19939
+ offset: _ctx.offset,
19770
19940
  onBeforeShow: _ctx.handleMenuEnter,
19771
19941
  onHide: ($event) => _ctx.states.isBeforeHide = false
19772
19942
  }, {
@@ -19900,8 +20070,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
19900
20070
  _: 3
19901
20071
  }, 8, ["disabled", "effect", "teleported"])) : createCommentVNode("v-if", true)
19902
20072
  ]) : createCommentVNode("v-if", true),
19903
- !_ctx.selectDisabled ? (openBlock(), createElementBlock("div", {
19904
- key: 1,
20073
+ createElementVNode("div", {
19905
20074
  class: normalizeClass([
19906
20075
  _ctx.nsSelect.e("selected-item"),
19907
20076
  _ctx.nsSelect.e("input-wrapper"),
@@ -19918,6 +20087,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
19918
20087
  disabled: _ctx.selectDisabled,
19919
20088
  autocomplete: _ctx.autocomplete,
19920
20089
  style: normalizeStyle(_ctx.inputStyle),
20090
+ tabindex: _ctx.tabindex,
19921
20091
  role: "combobox",
19922
20092
  readonly: !_ctx.filterable,
19923
20093
  spellcheck: "false",
@@ -19939,7 +20109,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
19939
20109
  onCompositionend: _ctx.handleCompositionEnd,
19940
20110
  onInput: _ctx.onInput,
19941
20111
  onClick: withModifiers(_ctx.toggleMenu, ["stop"])
19942
- }, null, 46, ["id", "onUpdate:modelValue", "name", "disabled", "autocomplete", "readonly", "aria-activedescendant", "aria-controls", "aria-expanded", "aria-label", "onKeydown", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onInput", "onClick"]), [
20112
+ }, null, 46, ["id", "onUpdate:modelValue", "name", "disabled", "autocomplete", "tabindex", "readonly", "aria-activedescendant", "aria-controls", "aria-expanded", "aria-label", "onKeydown", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onInput", "onClick"]), [
19943
20113
  [vModelText, _ctx.states.inputValue]
19944
20114
  ]),
19945
20115
  _ctx.filterable ? (openBlock(), createElementBlock("span", {
@@ -19949,9 +20119,9 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
19949
20119
  class: normalizeClass(_ctx.nsSelect.e("input-calculator")),
19950
20120
  textContent: toDisplayString(_ctx.states.inputValue)
19951
20121
  }, null, 10, ["textContent"])) : createCommentVNode("v-if", true)
19952
- ], 2)) : createCommentVNode("v-if", true),
20122
+ ], 2),
19953
20123
  _ctx.shouldShowPlaceholder ? (openBlock(), createElementBlock("div", {
19954
- key: 2,
20124
+ key: 1,
19955
20125
  class: normalizeClass([
19956
20126
  _ctx.nsSelect.e("selected-item"),
19957
20127
  _ctx.nsSelect.e("placeholder"),
@@ -19994,9 +20164,13 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
19994
20164
  ]),
19995
20165
  _: 1
19996
20166
  }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true),
19997
- _ctx.validateState && _ctx.validateIcon ? (openBlock(), createBlock(_component_el_icon, {
20167
+ _ctx.validateState && _ctx.validateIcon && _ctx.needStatusIcon ? (openBlock(), createBlock(_component_el_icon, {
19998
20168
  key: 2,
19999
- class: normalizeClass([_ctx.nsInput.e("icon"), _ctx.nsInput.e("validateIcon")])
20169
+ class: normalizeClass([
20170
+ _ctx.nsInput.e("icon"),
20171
+ _ctx.nsInput.e("validateIcon"),
20172
+ _ctx.nsInput.is("loading", _ctx.validateState === "validating")
20173
+ ])
20000
20174
  }, {
20001
20175
  default: withCtx(() => [
20002
20176
  (openBlock(), createBlock(resolveDynamicComponent(_ctx.validateIcon)))
@@ -20072,14 +20246,14 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
20072
20246
  }, 512)
20073
20247
  ]),
20074
20248
  _: 3
20075
- }, 8, ["visible", "placement", "teleported", "popper-class", "popper-options", "fallback-placements", "effect", "transition", "persistent", "onBeforeShow", "onHide"])
20249
+ }, 8, ["visible", "placement", "teleported", "popper-class", "popper-options", "fallback-placements", "effect", "transition", "persistent", "append-to", "show-arrow", "offset", "onBeforeShow", "onHide"])
20076
20250
  ], 16, ["onMouseleave"])), [
20077
20251
  [_directive_click_outside, _ctx.handleClickOutside, _ctx.popperRef]
20078
20252
  ]);
20079
20253
  }
20080
- var Select = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$1], ["__file", "select.vue"]]);
20254
+ var Select = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["render", _sfc_render$1], ["__file", "select.vue"]]);
20081
20255
 
20082
- const _sfc_main$b = defineComponent({
20256
+ const _sfc_main$e = defineComponent({
20083
20257
  name: "ElOptionGroup",
20084
20258
  componentName: "ElOptionGroup",
20085
20259
  props: {
@@ -20151,7 +20325,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
20151
20325
  [vShow, _ctx.visible]
20152
20326
  ]);
20153
20327
  }
20154
- var OptionGroup = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render], ["__file", "option-group.vue"]]);
20328
+ var OptionGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["render", _sfc_render], ["__file", "option-group.vue"]]);
20155
20329
 
20156
20330
  const ElSelect = withInstall(Select, {
20157
20331
  Option,
@@ -20222,11 +20396,11 @@ const popoverEmits = {
20222
20396
  };
20223
20397
 
20224
20398
  const updateEventKeyRaw = `onUpdate:visible`;
20225
- const __default__$9 = defineComponent({
20399
+ const __default__$c = defineComponent({
20226
20400
  name: "ElPopover"
20227
20401
  });
20228
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
20229
- ...__default__$9,
20402
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
20403
+ ...__default__$c,
20230
20404
  props: popoverProps,
20231
20405
  emits: popoverEmits,
20232
20406
  setup(__props, { expose, emit }) {
@@ -20325,7 +20499,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
20325
20499
  };
20326
20500
  }
20327
20501
  });
20328
- var Popover = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__file", "popover.vue"]]);
20502
+ var Popover = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__file", "popover.vue"]]);
20329
20503
 
20330
20504
  const attachEvents = (el, binding) => {
20331
20505
  const popperComponent = binding.arg || binding.value;
@@ -20349,18 +20523,26 @@ const ElPopover = withInstall(Popover, {
20349
20523
  directive: ElPopoverDirective
20350
20524
  });
20351
20525
 
20352
- const _hoisted_1$7 = ["onClick"];
20353
- const _hoisted_2$6 = { class: "hzzt-dropdown-name" };
20354
- const _hoisted_3$6 = /* @__PURE__ */ createElementVNode("span", { class: "caret" }, null, -1);
20526
+ var _export_sfc = (sfc, props) => {
20527
+ const target = sfc.__vccOpts || sfc;
20528
+ for (const [key, val] of props) {
20529
+ target[key] = val;
20530
+ }
20531
+ return target;
20532
+ };
20533
+
20534
+ const _hoisted_1$a = ["onClick"];
20535
+ const _hoisted_2$9 = { class: "hzzt-dropdown-name" };
20536
+ const _hoisted_3$7 = /* @__PURE__ */ createElementVNode("span", { class: "caret" }, null, -1);
20355
20537
  const _hoisted_4$5 = { class: "hzzt-dropdown-menu" };
20356
20538
  const _hoisted_5$3 = ["onClick"];
20357
20539
  const _hoisted_6$3 = { class: "submenu" };
20358
20540
  const _hoisted_7$3 = ["onClick"];
20359
- const __default__$8 = defineComponent({
20541
+ const __default__$b = defineComponent({
20360
20542
  name: "HzztDropDown"
20361
20543
  });
20362
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
20363
- ...__default__$8,
20544
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
20545
+ ...__default__$b,
20364
20546
  props: {
20365
20547
  options: {
20366
20548
  type: Array,
@@ -20415,8 +20597,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
20415
20597
  createElementVNode("li", {
20416
20598
  class: normalizeClass({ "hzzt-dropdown-li": true, "hzzt-dropdown-li-show": toggle.value })
20417
20599
  }, [
20418
- createElementVNode("span", _hoisted_2$6, toDisplayString(__props.label), 1),
20419
- _hoisted_3$6,
20600
+ createElementVNode("span", _hoisted_2$9, toDisplayString(__props.label), 1),
20601
+ _hoisted_3$7,
20420
20602
  createElementVNode("ul", _hoisted_4$5, [
20421
20603
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option, index) => {
20422
20604
  return openBlock(), createElementBlock(Fragment, null, [
@@ -20463,19 +20645,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
20463
20645
  }), 256))
20464
20646
  ])
20465
20647
  ], 2)
20466
- ], 8, _hoisted_1$7)), [
20648
+ ], 8, _hoisted_1$a)), [
20467
20649
  [unref(ClickOutside), close]
20468
20650
  ]);
20469
20651
  };
20470
20652
  }
20471
20653
  });
20472
- var Dropdown = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__file", "index.vue"]]);
20654
+ var Dropdown = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__file", "index.vue"]]);
20473
20655
 
20474
20656
  const HzztDropdown = withInstall$1(Dropdown);
20475
20657
 
20476
- const _hoisted_1$6 = { class: "hzzt-collapse" };
20477
- const _hoisted_2$5 = { class: "flex align-items-center" };
20478
- const _hoisted_3$5 = { class: "hzzt-collapse-title-wrapper" };
20658
+ const _hoisted_1$9 = { class: "hzzt-collapse" };
20659
+ const _hoisted_2$8 = { class: "flex align-items-center" };
20660
+ const _hoisted_3$6 = { class: "hzzt-collapse-title-wrapper" };
20479
20661
  const _hoisted_4$4 = /* @__PURE__ */ createElementVNode("div", { class: "hzzt-collapse-title-block" }, null, -1);
20480
20662
  const _hoisted_5$2 = { class: "hzzt-collapse-title" };
20481
20663
  const _hoisted_6$2 = /* @__PURE__ */ createElementVNode("div", { class: "hzzt-collapse-line" }, null, -1);
@@ -20483,11 +20665,11 @@ const _hoisted_7$2 = {
20483
20665
  key: 0,
20484
20666
  class: "hzzt-collapse-text"
20485
20667
  };
20486
- const __default__$7 = defineComponent({
20668
+ const __default__$a = defineComponent({
20487
20669
  name: "HzztCollapse"
20488
20670
  });
20489
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
20490
- ...__default__$7,
20671
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
20672
+ ...__default__$a,
20491
20673
  props: {
20492
20674
  defaultActive: {
20493
20675
  type: Boolean,
@@ -20513,13 +20695,13 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
20513
20695
  active.value = !active.value;
20514
20696
  }
20515
20697
  return (_ctx, _cache) => {
20516
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
20698
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [
20517
20699
  createElementVNode("div", {
20518
20700
  class: "hzzt-collapse-header",
20519
20701
  onClick: toggle
20520
20702
  }, [
20521
- createElementVNode("div", _hoisted_2$5, [
20522
- createElementVNode("div", _hoisted_3$5, [
20703
+ createElementVNode("div", _hoisted_2$8, [
20704
+ createElementVNode("div", _hoisted_3$6, [
20523
20705
  _hoisted_4$4,
20524
20706
  createElementVNode("div", _hoisted_5$2, toDisplayString(__props.title), 1)
20525
20707
  ]),
@@ -20533,11 +20715,11 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
20533
20715
  };
20534
20716
  }
20535
20717
  });
20536
- var Collapse = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__file", "collapse.vue"]]);
20718
+ var Collapse = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "collapse.vue"]]);
20537
20719
 
20538
20720
  const HzztCollapse = withInstall$1(Collapse);
20539
20721
 
20540
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
20722
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
20541
20723
  __name: "index",
20542
20724
  props: {
20543
20725
  name: {
@@ -20563,11 +20745,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
20563
20745
  };
20564
20746
  }
20565
20747
  });
20566
- var HzztIcon$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__file", "index.vue"]]);
20748
+ var HzztIcon$1 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__file", "index.vue"]]);
20567
20749
 
20568
- const _hoisted_1$5 = { class: "hzzt-tab flex align-items-center justify-content-between wrap" };
20569
- const _hoisted_2$4 = { class: "flex align-items-center" };
20570
- const _hoisted_3$4 = { class: "flex" };
20750
+ const _hoisted_1$8 = { class: "hzzt-tab flex align-items-center justify-content-between wrap" };
20751
+ const _hoisted_2$7 = { class: "flex align-items-center" };
20752
+ const _hoisted_3$5 = { class: "flex" };
20571
20753
  const _hoisted_4$3 = ["onClick"];
20572
20754
  const _hoisted_5$1 = { class: "hzzt-tab-badge" };
20573
20755
  const _hoisted_6$1 = {
@@ -20575,11 +20757,11 @@ const _hoisted_6$1 = {
20575
20757
  class: "hzzt-tab-badge-count"
20576
20758
  };
20577
20759
  const _hoisted_7$1 = { class: "flex wrap" };
20578
- const __default__$6 = defineComponent({
20760
+ const __default__$9 = defineComponent({
20579
20761
  name: "HzztTab"
20580
20762
  });
20581
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
20582
- ...__default__$6,
20763
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
20764
+ ...__default__$9,
20583
20765
  props: {
20584
20766
  tabList: {
20585
20767
  type: Array,
@@ -20616,9 +20798,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
20616
20798
  emit("tab-close", index);
20617
20799
  }
20618
20800
  return (_ctx, _cache) => {
20619
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
20620
- createElementVNode("div", _hoisted_2$4, [
20621
- createElementVNode("div", _hoisted_3$4, [
20801
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
20802
+ createElementVNode("div", _hoisted_2$7, [
20803
+ createElementVNode("div", _hoisted_3$5, [
20622
20804
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(customTabList), (tab, index) => {
20623
20805
  return openBlock(), createElementBlock("div", {
20624
20806
  key: tab.key,
@@ -20650,7 +20832,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
20650
20832
  };
20651
20833
  }
20652
20834
  });
20653
- var Tab = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["__file", "index.vue"]]);
20835
+ var Tab = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__file", "index.vue"]]);
20654
20836
 
20655
20837
  const HzztTab = withInstall$1(Tab);
20656
20838
 
@@ -20666,15 +20848,15 @@ function tarnsElIconName(name) {
20666
20848
  return `hzzt-el${name.replace(/[A-Z]/g, (match) => `-${match.toLocaleLowerCase()}`)}`;
20667
20849
  }
20668
20850
 
20669
- const _hoisted_1$4 = { class: "flex justify-content-between hzzt-pagination" };
20670
- const _hoisted_2$3 = { class: "flex align-items-center font-12 hzzt-pagination-total" };
20671
- const _hoisted_3$3 = { class: "flex align-items-center hzzt-pagination-page font-14" };
20851
+ const _hoisted_1$7 = { class: "flex justify-content-between hzzt-pagination" };
20852
+ const _hoisted_2$6 = { class: "flex align-items-center font-12 hzzt-pagination-total" };
20853
+ const _hoisted_3$4 = { class: "flex align-items-center hzzt-pagination-page font-14" };
20672
20854
  const _hoisted_4$2 = { class: "flex" };
20673
- const __default__$5 = defineComponent({
20855
+ const __default__$8 = defineComponent({
20674
20856
  name: "HzztPagination"
20675
20857
  });
20676
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
20677
- ...__default__$5,
20858
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
20859
+ ...__default__$8,
20678
20860
  props: {
20679
20861
  pagination: {
20680
20862
  type: Object,
@@ -20704,9 +20886,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
20704
20886
  }
20705
20887
  }
20706
20888
  return (_ctx, _cache) => {
20707
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
20708
- createElementVNode("p", _hoisted_2$3, toDisplayString(unref(t)("hzzt.pagination.total")) + toDisplayString(__props.pagination.total) + toDisplayString(unref(t)("hzzt.pagination.strip")), 1),
20709
- createElementVNode("div", _hoisted_3$3, [
20889
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
20890
+ createElementVNode("p", _hoisted_2$6, toDisplayString(unref(t)("hzzt.pagination.total")) + toDisplayString(__props.pagination.total) + toDisplayString(unref(t)("hzzt.pagination.strip")), 1),
20891
+ createElementVNode("div", _hoisted_3$4, [
20710
20892
  renderSlot(_ctx.$slots, "right"),
20711
20893
  createVNode(HzztIcon$1, {
20712
20894
  class: normalizeClass(["hzzt-pagination-arrow", { active: __props.pagination.current_page > 1 }]),
@@ -20724,18 +20906,18 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
20724
20906
  };
20725
20907
  }
20726
20908
  });
20727
- var Pagination = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["__file", "index.vue"]]);
20909
+ var Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__file", "index.vue"]]);
20728
20910
 
20729
20911
  const HzztPagination = withInstall$1(Pagination);
20730
20912
 
20731
- const _hoisted_1$3 = { class: "flex align-content-center" };
20732
- const _hoisted_2$2 = { style: { "max-width": "300px" } };
20733
- const _hoisted_3$2 = { style: { "padding": "0", "margin": "0", "word-break": "break-all", "white-space": "pre-wrap" } };
20734
- const __default__$4 = defineComponent({
20913
+ const _hoisted_1$6 = { class: "flex align-content-center" };
20914
+ const _hoisted_2$5 = { style: { "max-width": "300px" } };
20915
+ const _hoisted_3$3 = { style: { "padding": "0", "margin": "0", "word-break": "break-all", "white-space": "pre-wrap" } };
20916
+ const __default__$7 = defineComponent({
20735
20917
  name: "HzztTooltip"
20736
20918
  });
20737
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
20738
- ...__default__$4,
20919
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
20920
+ ...__default__$7,
20739
20921
  props: {
20740
20922
  content: {
20741
20923
  type: String,
@@ -20746,12 +20928,12 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
20746
20928
  setup(__props, { emit }) {
20747
20929
  const attrs = useAttrs$1();
20748
20930
  return (_ctx, _cache) => {
20749
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
20931
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
20750
20932
  createVNode(unref(ElTooltip), mergeProps({ effect: "dark" }, unref(attrs)), {
20751
20933
  content: withCtx(() => [
20752
20934
  renderSlot(_ctx.$slots, "content", {}, () => [
20753
- createElementVNode("div", _hoisted_2$2, [
20754
- createElementVNode("pre", _hoisted_3$2, toDisplayString(__props.content), 1)
20935
+ createElementVNode("div", _hoisted_2$5, [
20936
+ createElementVNode("pre", _hoisted_3$3, toDisplayString(__props.content), 1)
20755
20937
  ])
20756
20938
  ])
20757
20939
  ]),
@@ -20769,28 +20951,28 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
20769
20951
  };
20770
20952
  }
20771
20953
  });
20772
- var Tooltip = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["__file", "tooltip.vue"]]);
20954
+ var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__file", "tooltip.vue"]]);
20773
20955
 
20774
20956
  const HzztTooltip = withInstall$1(Tooltip);
20775
20957
 
20776
- const _hoisted_1$2 = {
20958
+ const _hoisted_1$5 = {
20777
20959
  key: 0,
20778
20960
  style: { "white-space": "nowrap" }
20779
20961
  };
20780
- const _hoisted_2$1 = {
20962
+ const _hoisted_2$4 = {
20781
20963
  key: 1,
20782
20964
  style: { "white-space": "nowrap" }
20783
20965
  };
20784
- const _hoisted_3$1 = { class: "line-height-1" };
20966
+ const _hoisted_3$2 = { class: "line-height-1" };
20785
20967
  const _hoisted_4$1 = {
20786
20968
  key: 0,
20787
20969
  class: "margin-l-1 margin-r-2"
20788
20970
  };
20789
- const __default__$3 = defineComponent({
20971
+ const __default__$6 = defineComponent({
20790
20972
  name: "HzztPageSize"
20791
20973
  });
20792
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
20793
- ...__default__$3,
20974
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
20975
+ ...__default__$6,
20794
20976
  props: {
20795
20977
  modelValue: {
20796
20978
  type: Number,
@@ -20847,13 +21029,13 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
20847
21029
  return openBlock(), createElementBlock("main", {
20848
21030
  class: normalizeClass([unref(compKls), "flex wrap align-items-center justify-content-end"])
20849
21031
  }, [
20850
- __props.total > 0 && !__props.isManual ? (openBlock(), createElementBlock("span", _hoisted_1$2, toDisplayString(unref(t)("hzzt.pageSize.total")) + toDisplayString(__props.total) + toDisplayString(unref(t)("hzzt.pageSize.strip")), 1)) : createCommentVNode("v-if", true),
20851
- __props.isManual ? (openBlock(), createElementBlock("span", _hoisted_2$1, toDisplayString(unref(t)("hzzt.pageSize.d")) + toDisplayString(__props.modelValue) + toDisplayString(unref(t)("hzzt.pageSize.page")), 1)) : createCommentVNode("v-if", true),
21032
+ __props.total > 0 && !__props.isManual ? (openBlock(), createElementBlock("span", _hoisted_1$5, toDisplayString(unref(t)("hzzt.pageSize.total")) + toDisplayString(__props.total) + toDisplayString(unref(t)("hzzt.pageSize.strip")), 1)) : createCommentVNode("v-if", true),
21033
+ __props.isManual ? (openBlock(), createElementBlock("span", _hoisted_2$4, toDisplayString(unref(t)("hzzt.pageSize.d")) + toDisplayString(__props.modelValue) + toDisplayString(unref(t)("hzzt.pageSize.page")), 1)) : createCommentVNode("v-if", true),
20852
21034
  __props.pageSizeOptions.length ? (openBlock(), createElementBlock("div", {
20853
21035
  key: 2,
20854
21036
  class: normalizeClass([unref(ns).e("option"), "flex align-items-center"])
20855
21037
  }, [
20856
- createElementVNode("span", _hoisted_3$1, toDisplayString(unref(t)("hzzt.pageSize.per_page")), 1),
21038
+ createElementVNode("span", _hoisted_3$2, toDisplayString(unref(t)("hzzt.pageSize.per_page")), 1),
20857
21039
  createVNode(unref(ElSelect), {
20858
21040
  modelValue: sizeValue.value,
20859
21041
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => sizeValue.value = $event),
@@ -20917,15 +21099,15 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
20917
21099
  };
20918
21100
  }
20919
21101
  });
20920
- var PageSize = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__file", "index.vue"]]);
21102
+ var PageSize = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "index.vue"]]);
20921
21103
 
20922
21104
  const HzztPageSize = withInstall$1(PageSize);
20923
21105
 
20924
- const __default__$2 = defineComponent({
21106
+ const __default__$5 = defineComponent({
20925
21107
  name: "HzztConfirmPassword"
20926
21108
  });
20927
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
20928
- ...__default__$2,
21109
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
21110
+ ...__default__$5,
20929
21111
  props: {
20930
21112
  placeholder: {
20931
21113
  type: String,
@@ -20985,16 +21167,16 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
20985
21167
  };
20986
21168
  }
20987
21169
  });
20988
- var ConfirmPassword = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__file", "confirm-password.vue"]]);
21170
+ var ConfirmPassword = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "confirm-password.vue"]]);
20989
21171
 
20990
21172
  const HzztConfirmPassword = withInstall$1(ConfirmPassword);
20991
21173
 
20992
- const _hoisted_1$1 = ["onClick"];
20993
- const __default__$1 = defineComponent({
21174
+ const _hoisted_1$4 = ["onClick"];
21175
+ const __default__$4 = defineComponent({
20994
21176
  name: "HzztCheckButton"
20995
21177
  });
20996
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
20997
- ...__default__$1,
21178
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
21179
+ ...__default__$4,
20998
21180
  props: {
20999
21181
  options: {
21000
21182
  type: Array,
@@ -21055,7 +21237,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21055
21237
  ...unref(spanKls)
21056
21238
  ], "flex-1"]),
21057
21239
  onClick: ($event) => selectValue(item.value)
21058
- }, toDisplayString(item.label), 11, _hoisted_1$1)
21240
+ }, toDisplayString(item.label), 11, _hoisted_1$4)
21059
21241
  ]),
21060
21242
  _: 2
21061
21243
  }, 1032, ["hidden", "value"]);
@@ -21064,7 +21246,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21064
21246
  };
21065
21247
  }
21066
21248
  });
21067
- var CheckButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__file", "index.vue"]]);
21249
+ var CheckButton = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "index.vue"]]);
21068
21250
 
21069
21251
  const HzztCheckButton = withInstall$1(CheckButton);
21070
21252
 
@@ -21305,9 +21487,9 @@ function range(n) {
21305
21487
  return Array.from({ length: n }).map((_, n2) => n2);
21306
21488
  }
21307
21489
 
21308
- const _hoisted_1 = { class: "el-date-picker" };
21309
- const _hoisted_2 = { class: "el-picker-panel__body" };
21310
- const _hoisted_3 = {
21490
+ const _hoisted_1$3 = { class: "el-date-picker" };
21491
+ const _hoisted_2$3 = { class: "el-picker-panel__body" };
21492
+ const _hoisted_3$1 = {
21311
21493
  class: "el-date-picker__header el-date-picker__header--bordered",
21312
21494
  style: { "margin": "0px", "line-height": "30px" }
21313
21495
  };
@@ -21322,11 +21504,11 @@ const _hoisted_8 = { class: "cell" };
21322
21504
  const _hoisted_9 = { class: "cell" };
21323
21505
  const _hoisted_10 = { class: "cell" };
21324
21506
  const _hoisted_11 = { class: "cell" };
21325
- const __default__ = defineComponent({
21507
+ const __default__$3 = defineComponent({
21326
21508
  name: "HzztQuarterPicker"
21327
21509
  });
21328
- const _sfc_main = /* @__PURE__ */ defineComponent({
21329
- ...__default__,
21510
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
21511
+ ...__default__$3,
21330
21512
  props: {
21331
21513
  size: useSizeProp$1,
21332
21514
  format: {
@@ -21504,9 +21686,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21504
21686
  }, 16, ["disabled", "size", "placeholder", "value"])
21505
21687
  ]),
21506
21688
  default: withCtx(() => [
21507
- createElementVNode("div", _hoisted_1, [
21508
- createElementVNode("div", _hoisted_2, [
21509
- createElementVNode("div", _hoisted_3, [
21689
+ createElementVNode("div", _hoisted_1$3, [
21690
+ createElementVNode("div", _hoisted_2$3, [
21691
+ createElementVNode("div", _hoisted_3$1, [
21510
21692
  createElementVNode("button", {
21511
21693
  type: "button",
21512
21694
  "aria-label": unref(t)(`hzzt.quarterpicker.prevYear`),
@@ -21566,10 +21748,380 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21566
21748
  };
21567
21749
  }
21568
21750
  });
21569
- var QuarterPicker = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__file", "index.vue"]]);
21751
+ var QuarterPicker = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "index.vue"]]);
21570
21752
 
21571
21753
  const HzztQuarterPicker = withInstall$1(QuarterPicker);
21572
21754
 
21755
+ const scanProps = buildProps$1({
21756
+ modelValue: {
21757
+ type: String,
21758
+ default: ""
21759
+ },
21760
+ placeholder: {
21761
+ type: String,
21762
+ default: ""
21763
+ },
21764
+ letter: {
21765
+ type: String,
21766
+ default: "upper"
21767
+ }
21768
+ });
21769
+ const scanEmits = {
21770
+ [UPDATE_MODEL_EVENT$1]: (value) => isString$1(value),
21771
+ [CHANGE_EVENT$1]: (value) => isString$1(value),
21772
+ [INPUT_EVENT$1]: (value) => isString$1(value)
21773
+ };
21774
+
21775
+ const _hoisted_1$2 = /* @__PURE__ */ createElementVNode("div", { style: { "width": "0", "height": "0", "overflow": "hidden" } }, [
21776
+ /* @__PURE__ */ createElementVNode("input", {
21777
+ readonly: "",
21778
+ style: { "width": "0", "height": "0", "overflow": "hidden" }
21779
+ }),
21780
+ /* @__PURE__ */ createElementVNode("input", {
21781
+ readonly: "",
21782
+ type: "password",
21783
+ autocomplete: "off",
21784
+ style: { "width": "0", "height": "0", "overflow": "hidden" }
21785
+ })
21786
+ ], -1);
21787
+ const _hoisted_2$2 = {
21788
+ class: "width-100%",
21789
+ style: { "overflow": "hidden" }
21790
+ };
21791
+ const __default__$2 = defineComponent({
21792
+ inheritAttrs: false,
21793
+ name: "HzztScan"
21794
+ });
21795
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
21796
+ ...__default__$2,
21797
+ props: scanProps,
21798
+ emits: scanEmits,
21799
+ setup(__props, { expose, emit }) {
21800
+ const props = __props;
21801
+ const readonly = ref(true);
21802
+ const innerValue = ref(" ");
21803
+ const inputRef = ref();
21804
+ const showValue = computed(() => {
21805
+ if (innerValue.value === " ") {
21806
+ return ` ${props.placeholder}`;
21807
+ } else {
21808
+ return innerValue.value;
21809
+ }
21810
+ });
21811
+ const inputType = computed(() => {
21812
+ if (innerValue.value && !readonly.value) {
21813
+ return "password";
21814
+ } else {
21815
+ return "text";
21816
+ }
21817
+ });
21818
+ watch(() => props.modelValue, (v) => {
21819
+ if (!v) {
21820
+ innerValue.value = " ";
21821
+ } else {
21822
+ innerValue.value = ` ${changeLetter(v)}`;
21823
+ }
21824
+ });
21825
+ watch(() => innerValue.value, (v) => {
21826
+ if (!v) {
21827
+ innerValue.value = " ";
21828
+ }
21829
+ const str = innerValue.value[0] === " " ? innerValue.value.slice(1) : innerValue.value;
21830
+ const final = changeLetter(str != null ? str : "");
21831
+ emit("update:modelValue", final);
21832
+ emit("input", final);
21833
+ });
21834
+ function changeLetter(v) {
21835
+ if (props.letter === "upper") {
21836
+ return v.toLocaleUpperCase();
21837
+ } else if (props.letter === "lower") {
21838
+ return v.toLocaleLowerCase();
21839
+ } else {
21840
+ return v;
21841
+ }
21842
+ }
21843
+ function inputFocus() {
21844
+ readonly.value = false;
21845
+ }
21846
+ function inputBlur() {
21847
+ readonly.value = true;
21848
+ }
21849
+ function inputChange() {
21850
+ emit("change", props.modelValue);
21851
+ }
21852
+ function focus() {
21853
+ readonly.value = false;
21854
+ setTimeout(() => {
21855
+ inputRef.value.focus();
21856
+ });
21857
+ }
21858
+ function blur() {
21859
+ readonly.value = true;
21860
+ inputRef.value.blur();
21861
+ }
21862
+ function clear() {
21863
+ inputRef.value.clear();
21864
+ }
21865
+ expose({
21866
+ focus,
21867
+ blur,
21868
+ clear
21869
+ });
21870
+ return (_ctx, _cache) => {
21871
+ return openBlock(), createElementBlock("div", {
21872
+ class: normalizeClass(["hzzt-scan", _ctx.$attrs.class]),
21873
+ style: normalizeStyle([{ "position": "relative" }, _ctx.$attrs.style])
21874
+ }, [
21875
+ _hoisted_1$2,
21876
+ createVNode(unref(ElInput), mergeProps({
21877
+ ref_key: "inputRef",
21878
+ ref: inputRef,
21879
+ modelValue: innerValue.value,
21880
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event)
21881
+ }, {
21882
+ ..._ctx.$attrs,
21883
+ class: "",
21884
+ style: "",
21885
+ onChange: ""
21886
+ }, {
21887
+ readonly: readonly.value,
21888
+ type: unref(inputType),
21889
+ class: "hzzt-scan-input-original",
21890
+ autocomplete: "off",
21891
+ onFocus: inputFocus,
21892
+ onBlur: inputBlur,
21893
+ onChange: inputChange
21894
+ }), createSlots({
21895
+ _: 2
21896
+ }, [
21897
+ renderList(_ctx.$slots, (_, key, index) => {
21898
+ return {
21899
+ name: key,
21900
+ fn: withCtx(() => [
21901
+ renderSlot(_ctx.$slots, key)
21902
+ ])
21903
+ };
21904
+ })
21905
+ ]), 1040, ["modelValue", "readonly", "type"]),
21906
+ createElementVNode("div", {
21907
+ class: normalizeClass(["hzzt-scan-input-backup", { "placeholder-color": innerValue.value === " " }])
21908
+ }, [
21909
+ createElementVNode("div", _hoisted_2$2, toDisplayString(unref(showValue)), 1)
21910
+ ], 2)
21911
+ ], 6);
21912
+ };
21913
+ }
21914
+ });
21915
+ var Scan = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "scan.vue"]]);
21916
+
21917
+ const HzztScan = withInstall$1(Scan);
21918
+
21919
+ const selectInputProps = buildProps$1({
21920
+ modelValue: {
21921
+ type: definePropType$1([
21922
+ String,
21923
+ Number
21924
+ ]),
21925
+ default: ""
21926
+ },
21927
+ indexType: {
21928
+ type: String,
21929
+ default: "number"
21930
+ },
21931
+ disabled: Boolean,
21932
+ replace: Boolean,
21933
+ label: String,
21934
+ data: {
21935
+ type: definePropType$1(Array),
21936
+ default: () => []
21937
+ },
21938
+ inputProps: Object,
21939
+ customProps: Object,
21940
+ position: {
21941
+ type: String,
21942
+ default: "left"
21943
+ },
21944
+ formatLabel: {
21945
+ type: Function
21946
+ },
21947
+ split: {
21948
+ type: String,
21949
+ default: ""
21950
+ },
21951
+ size: useSizeProp$1
21952
+ });
21953
+ const selectInputEmits = {
21954
+ [UPDATE_MODEL_EVENT$1]: (value) => isString$1(value),
21955
+ input: (value) => isString$1(value),
21956
+ change: (value) => isString$1(value)
21957
+ };
21958
+
21959
+ const _hoisted_1$1 = { slot: "append" };
21960
+ const _hoisted_2$1 = { key: 0 };
21961
+ const __default__$1 = defineComponent({
21962
+ name: "HzztSelectInput"
21963
+ });
21964
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
21965
+ ...__default__$1,
21966
+ props: selectInputProps,
21967
+ emits: selectInputEmits,
21968
+ setup(__props, { emit }) {
21969
+ const props = __props;
21970
+ const inputVal = ref(props.modelValue);
21971
+ const nsInput = useNamespace$1("select-input");
21972
+ const formSize = useFormSize();
21973
+ const formDisabled = useFormDisabled();
21974
+ const trueSize = computed(() => props.size || formSize.value || useGlobalSize$1().value);
21975
+ const trueDisabled = computed(() => props.disabled || formDisabled.value);
21976
+ const containerCls = computed(() => [
21977
+ nsInput.b(),
21978
+ nsInput.m(trueSize.value)
21979
+ ]);
21980
+ const inputContainerCls = computed(() => [
21981
+ "flex",
21982
+ props.position === "top" ? "column" : "row align-items-center"
21983
+ ]);
21984
+ const inputCls = computed(() => [
21985
+ "flex-1",
21986
+ props.label ? props.position === "top" ? "margin-b-1" : "margin-l-1" : ""
21987
+ ]);
21988
+ const _inputProps = computed(() => ({
21989
+ disabled: trueDisabled.value,
21990
+ clearable: true,
21991
+ ...props.inputProps
21992
+ }));
21993
+ watch(() => props.modelValue, (v) => {
21994
+ inputVal.value = v;
21995
+ });
21996
+ function input(val) {
21997
+ emit("update:modelValue", val);
21998
+ emit("input", val);
21999
+ }
22000
+ function change(val) {
22001
+ emit("change", val);
22002
+ }
22003
+ function getLinkName(item, index) {
22004
+ let prefix = "";
22005
+ if (props.indexType == "number") {
22006
+ prefix = `\uFF08${index + 1}\uFF09`;
22007
+ } else if (props.indexType == "letter") {
22008
+ prefix = `\uFF08${numberToLetter(index)}\uFF09`;
22009
+ }
22010
+ return prefix + (item.label || item.value);
22011
+ }
22012
+ function select(item) {
22013
+ const value = item.value || item.label;
22014
+ let content = "";
22015
+ if (!inputVal.value)
22016
+ inputVal.value = "";
22017
+ if (props.formatLabel) {
22018
+ content = props.formatLabel(value);
22019
+ } else if (props.replace) {
22020
+ content = value;
22021
+ } else {
22022
+ content = inputVal.value ? `${inputVal.value}${props.split}${value}` : value;
22023
+ }
22024
+ inputVal.value = content;
22025
+ input(content);
22026
+ change(content);
22027
+ }
22028
+ return (_ctx, _cache) => {
22029
+ return openBlock(), createElementBlock("div", {
22030
+ class: normalizeClass(unref(containerCls))
22031
+ }, [
22032
+ createElementVNode("div", {
22033
+ class: normalizeClass(unref(inputContainerCls))
22034
+ }, [
22035
+ renderSlot(_ctx.$slots, "title", {}, () => [
22036
+ createVNode(Title, { label: _ctx.label }, null, 8, ["label"])
22037
+ ]),
22038
+ createVNode(unref(ElInput), mergeProps({
22039
+ ref: "inputRef",
22040
+ class: unref(inputCls),
22041
+ modelValue: inputVal.value,
22042
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputVal.value = $event)
22043
+ }, unref(_inputProps), {
22044
+ onInput: input,
22045
+ onChange: change
22046
+ }), {
22047
+ default: withCtx(() => [
22048
+ createElementVNode("template", _hoisted_1$1, [
22049
+ renderSlot(_ctx.$slots, "append")
22050
+ ])
22051
+ ]),
22052
+ _: 3
22053
+ }, 16, ["class", "modelValue"])
22054
+ ], 2),
22055
+ _ctx.data.length && !unref(trueDisabled) ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
22056
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.data, (item, index) => {
22057
+ return openBlock(), createBlock(unref(ElLink), mergeProps({
22058
+ key: index,
22059
+ class: "margin-r-4"
22060
+ }, _ctx.customProps, {
22061
+ onClick: ($event) => select(item)
22062
+ }), {
22063
+ default: withCtx(() => [
22064
+ createTextVNode(toDisplayString(getLinkName(item, index)), 1)
22065
+ ]),
22066
+ _: 2
22067
+ }, 1040, ["onClick"]);
22068
+ }), 128))
22069
+ ])) : createCommentVNode("v-if", true)
22070
+ ], 2);
22071
+ };
22072
+ }
22073
+ });
22074
+ var SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "select-input.vue"]]);
22075
+
22076
+ const HzztSelectInput = withInstall$1(SelectInput);
22077
+
22078
+ const _hoisted_1 = {
22079
+ key: 0,
22080
+ class: "hzzt-title flex align-items-center"
22081
+ };
22082
+ const _hoisted_2 = {
22083
+ key: 0,
22084
+ class: "decorative-line"
22085
+ };
22086
+ const _hoisted_3 = { class: "label-name" };
22087
+ const __default__ = defineComponent({
22088
+ name: "HzztTitle"
22089
+ });
22090
+ const _sfc_main = /* @__PURE__ */ defineComponent({
22091
+ ...__default__,
22092
+ props: titleProps,
22093
+ setup(__props) {
22094
+ const props = __props;
22095
+ const slots = useSlots();
22096
+ const showLabel = computed(() => {
22097
+ var _a, _b, _c;
22098
+ return props.label || ((_c = (_b = (_a = slots == null ? void 0 : slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children);
22099
+ });
22100
+ return (_ctx, _cache) => {
22101
+ return unref(showLabel) ? (openBlock(), createElementBlock("div", _hoisted_1, [
22102
+ _ctx.sideline ? (openBlock(), createElementBlock("span", _hoisted_2)) : createCommentVNode("v-if", true),
22103
+ renderSlot(_ctx.$slots, "before"),
22104
+ createElementVNode("label", _hoisted_3, [
22105
+ renderSlot(_ctx.$slots, "default", {}, () => [
22106
+ createTextVNode(toDisplayString(_ctx.label), 1)
22107
+ ])
22108
+ ])
22109
+ ])) : createCommentVNode("v-if", true);
22110
+ };
22111
+ }
22112
+ });
22113
+ var Title = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "title.vue"]]);
22114
+
22115
+ const titleProps = buildProps$1({
22116
+ label: String,
22117
+ sideline: {
22118
+ type: Boolean,
22119
+ default: true
22120
+ }
22121
+ });
22122
+
22123
+ const HzztTitle = withInstall$1(Title);
22124
+
21573
22125
  var Components = [
21574
22126
  HzztConfigProvider,
21575
22127
  HzztTitle,
@@ -21582,7 +22134,9 @@ var Components = [
21582
22134
  HzztPageSize,
21583
22135
  HzztConfirmPassword,
21584
22136
  HzztCheckButton,
21585
- HzztQuarterPicker
22137
+ HzztQuarterPicker,
22138
+ HzztScan,
22139
+ HzztSelectInput
21586
22140
  ];
21587
22141
 
21588
22142
  var Plugins = [];
@@ -21794,4 +22348,4 @@ function initMouseEvent(el, callback) {
21794
22348
  const install = installer.install;
21795
22349
  const version = installer.version;
21796
22350
 
21797
- export { Blur, Download, Drag, Height, Highlight, HzztCheckButton, HzztCollapse, HzztConfigProvider, HzztConfirmPassword, HzztDropdown, HzztIcon, HzztPageSize, HzztPagination, HzztQuarterPicker, HzztTab, HzztTitle, HzztTooltip, INSTALLED_KEY, SIZE_INJECTION_KEY$1 as SIZE_INJECTION_KEY, WEEK_DAYS, buildLocaleContext$1 as buildLocaleContext, buildTranslator$1 as buildTranslator, componentSizeMap, componentSizes$1 as componentSizes, configProviderContextKey$1 as configProviderContextKey, configProviderProps, datePickTypes, installer as default, defaultNamespace$1 as defaultNamespace, install, localeContextKey$1 as localeContextKey, makeInstaller, namespaceContextKey$1 as namespaceContextKey, provideGlobalConfig, translate$1 as translate, useGetDerivedNamespace$1 as useGetDerivedNamespace, useGlobalConfig$1 as useGlobalConfig, useGlobalSize$1 as useGlobalSize, useLocale$1 as useLocale, useNamespace$1 as useNamespace, useSizeProp$1 as useSizeProp, useSizeProps, version };
22351
+ export { Blur, CHANGE_EVENT$1 as CHANGE_EVENT, Download, Drag, Height, Highlight, HzztCheckButton, HzztCollapse, HzztConfigProvider, HzztConfirmPassword, HzztDropdown, HzztIcon, HzztPageSize, HzztPagination, HzztQuarterPicker, HzztScan, HzztSelectInput, HzztTab, HzztTitle, HzztTooltip, INPUT_EVENT$1 as INPUT_EVENT, INSTALLED_KEY, SIZE_INJECTION_KEY$1 as SIZE_INJECTION_KEY, UPDATE_MODEL_EVENT$1 as UPDATE_MODEL_EVENT, WEEK_DAYS, buildLocaleContext$1 as buildLocaleContext, buildTranslator$1 as buildTranslator, componentSizeMap, componentSizes$1 as componentSizes, configProviderContextKey$1 as configProviderContextKey, configProviderProps, datePickTypes, installer as default, defaultNamespace$1 as defaultNamespace, install, localeContextKey$1 as localeContextKey, makeInstaller, namespaceContextKey$1 as namespaceContextKey, numberToLetter, provideGlobalConfig, scanEmits, scanProps, selectInputEmits, selectInputProps, titleProps, translate$1 as translate, useGetDerivedNamespace$1 as useGetDerivedNamespace, useGlobalConfig$1 as useGlobalConfig, useGlobalSize$1 as useGlobalSize, useLocale$1 as useLocale, useNamespace$1 as useNamespace, useSizeProp$1 as useSizeProp, useSizeProps, version };