hzzt-plus 1.0.0 → 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 (100) hide show
  1. package/dist/index.full.js +1838 -1451
  2. package/dist/index.full.min.js +14 -14
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +14 -14
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +1836 -1453
  7. package/es/component.mjs +3 -1
  8. package/es/component.mjs.map +1 -1
  9. package/es/components/confirm-password/index.d.ts +46 -22
  10. package/es/components/confirm-password/src/confirm-password.vue.d.ts +46 -22
  11. package/es/components/icon/src/index.vue.d.ts +4 -4
  12. package/es/components/index.d.ts +1 -0
  13. package/es/components/index.mjs +2 -0
  14. package/es/components/index.mjs.map +1 -1
  15. package/es/components/page-size/index.d.ts +10224 -531
  16. package/es/components/page-size/src/index.vue.d.ts +10224 -531
  17. package/es/components/pagination/index.d.ts +4 -4
  18. package/es/components/pagination/src/index.vue.d.ts +4 -4
  19. package/es/components/quarter-picker/index.d.ts +121 -97
  20. package/es/components/quarter-picker/src/index.vue.d.ts +121 -97
  21. package/es/components/scan/src/scan.vue.d.ts +46 -22
  22. package/es/components/select-input/index.d.ts +826 -0
  23. package/es/components/select-input/index.mjs +9 -0
  24. package/es/components/select-input/index.mjs.map +1 -0
  25. package/es/components/select-input/src/select-input.d.ts +41 -0
  26. package/es/components/select-input/src/select-input.mjs +50 -0
  27. package/es/components/select-input/src/select-input.mjs.map +1 -0
  28. package/es/components/select-input/src/select-input.vue.d.ts +826 -0
  29. package/es/components/select-input/src/select-input2.mjs +129 -0
  30. package/es/components/select-input/src/select-input2.mjs.map +1 -0
  31. package/es/components/select-input/style/css.d.ts +2 -0
  32. package/es/components/select-input/style/css.mjs +3 -0
  33. package/es/components/select-input/style/css.mjs.map +1 -0
  34. package/es/components/select-input/style/index.d.ts +2 -0
  35. package/es/components/select-input/style/index.mjs +3 -0
  36. package/es/components/select-input/style/index.mjs.map +1 -0
  37. package/es/components/tab/index.d.ts +4 -4
  38. package/es/components/tab/src/index.vue.d.ts +4 -4
  39. package/es/components/title/index.mjs +2 -2
  40. package/es/components/title/index.mjs.map +1 -1
  41. package/es/components/title/src/title2.mjs +2 -2
  42. package/es/components/tooltip/index.d.ts +7615 -316
  43. package/es/components/tooltip/src/tooltip.vue.d.ts +7615 -316
  44. package/es/hooks/index.d.ts +1 -0
  45. package/es/hooks/index.mjs +1 -0
  46. package/es/hooks/index.mjs.map +1 -1
  47. package/es/hooks/use-letter/index.d.ts +1 -0
  48. package/es/hooks/use-letter/index.mjs +13 -0
  49. package/es/hooks/use-letter/index.mjs.map +1 -0
  50. package/es/index.mjs +3 -0
  51. package/es/index.mjs.map +1 -1
  52. package/global.d.ts +1 -0
  53. package/lib/component.js +3 -1
  54. package/lib/component.js.map +1 -1
  55. package/lib/components/confirm-password/index.d.ts +46 -22
  56. package/lib/components/confirm-password/src/confirm-password.vue.d.ts +46 -22
  57. package/lib/components/icon/src/index.vue.d.ts +4 -4
  58. package/lib/components/index.d.ts +1 -0
  59. package/lib/components/index.js +5 -0
  60. package/lib/components/index.js.map +1 -1
  61. package/lib/components/page-size/index.d.ts +10224 -531
  62. package/lib/components/page-size/src/index.vue.d.ts +10224 -531
  63. package/lib/components/pagination/index.d.ts +4 -4
  64. package/lib/components/pagination/src/index.vue.d.ts +4 -4
  65. package/lib/components/quarter-picker/index.d.ts +121 -97
  66. package/lib/components/quarter-picker/src/index.vue.d.ts +121 -97
  67. package/lib/components/scan/src/scan.vue.d.ts +46 -22
  68. package/lib/components/select-input/index.d.ts +826 -0
  69. package/lib/components/select-input/index.js +16 -0
  70. package/lib/components/select-input/index.js.map +1 -0
  71. package/lib/components/select-input/src/select-input.d.ts +41 -0
  72. package/lib/components/select-input/src/select-input.js +55 -0
  73. package/lib/components/select-input/src/select-input.js.map +1 -0
  74. package/lib/components/select-input/src/select-input.vue.d.ts +826 -0
  75. package/lib/components/select-input/src/select-input2.js +133 -0
  76. package/lib/components/select-input/src/select-input2.js.map +1 -0
  77. package/lib/components/select-input/style/css.d.ts +2 -0
  78. package/lib/components/select-input/style/css.js +6 -0
  79. package/lib/components/select-input/style/css.js.map +1 -0
  80. package/lib/components/select-input/style/index.d.ts +2 -0
  81. package/lib/components/select-input/style/index.js +6 -0
  82. package/lib/components/select-input/style/index.js.map +1 -0
  83. package/lib/components/tab/index.d.ts +4 -4
  84. package/lib/components/tab/src/index.vue.d.ts +4 -4
  85. package/lib/components/title/index.js.map +1 -1
  86. package/lib/components/title/src/title2.js +2 -2
  87. package/lib/components/tooltip/index.d.ts +7615 -316
  88. package/lib/components/tooltip/src/tooltip.vue.d.ts +7615 -316
  89. package/lib/hooks/index.d.ts +1 -0
  90. package/lib/hooks/index.js +2 -0
  91. package/lib/hooks/index.js.map +1 -1
  92. package/lib/hooks/use-letter/index.d.ts +1 -0
  93. package/lib/hooks/use-letter/index.js +17 -0
  94. package/lib/hooks/use-letter/index.js.map +1 -0
  95. package/lib/index.js +33 -26
  96. package/lib/index.js.map +1 -1
  97. package/package.json +3 -3
  98. package/theme/hzzt-select-input.css +0 -0
  99. package/theme/src/index.scss +1 -0
  100. package/theme/src/select-input.scss +0 -0
@@ -6,6 +6,36 @@
6
6
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.HzztPlus = {}, global.Vue));
7
7
  })(this, (function (exports, vue) { 'use strict';
8
8
 
9
+ var __defProp$9 = Object.defineProperty;
10
+ var __defProps$6 = Object.defineProperties;
11
+ var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
12
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
13
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
14
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
15
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16
+ var __spreadValues$9 = (a, b) => {
17
+ for (var prop in b || (b = {}))
18
+ if (__hasOwnProp$b.call(b, prop))
19
+ __defNormalProp$9(a, prop, b[prop]);
20
+ if (__getOwnPropSymbols$b)
21
+ for (var prop of __getOwnPropSymbols$b(b)) {
22
+ if (__propIsEnum$b.call(b, prop))
23
+ __defNormalProp$9(a, prop, b[prop]);
24
+ }
25
+ return a;
26
+ };
27
+ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
28
+ function computedEager(fn, options) {
29
+ var _a;
30
+ const result = vue.shallowRef();
31
+ vue.watchEffect(() => {
32
+ result.value = fn();
33
+ }, __spreadProps$6(__spreadValues$9({}, options), {
34
+ flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync"
35
+ }));
36
+ return vue.readonly(result);
37
+ }
38
+
9
39
  var _a;
10
40
  const isClient = typeof window !== "undefined";
11
41
  const isString$2 = (val) => typeof val === "string";
@@ -286,9 +316,7 @@
286
316
  const isObject$1 = (val) => val !== null && typeof val === "object";
287
317
  const objectToString$1 = Object.prototype.toString;
288
318
  const toTypeString = (value) => objectToString$1.call(value);
289
- const toRawType = (value) => {
290
- return toTypeString(value).slice(8, -1);
291
- };
319
+ const isPlainObject$1 = (val) => toTypeString(val) === "[object Object]";
292
320
 
293
321
  var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
294
322
 
@@ -12807,6 +12835,17 @@
12807
12835
  };
12808
12836
  };
12809
12837
 
12838
+ function numberToLetter(index) {
12839
+ const start = "A".charCodeAt(0);
12840
+ if (index < 26) {
12841
+ return String.fromCharCode(start + index);
12842
+ } else if (index < 52) {
12843
+ return String.fromCharCode(start + index + 6);
12844
+ } else {
12845
+ return index - 51;
12846
+ }
12847
+ }
12848
+
12810
12849
  const configProviderContextKey$1 = Symbol();
12811
12850
 
12812
12851
  const globalConfig$1 = vue.ref();
@@ -12898,18 +12937,81 @@
12898
12937
  };
12899
12938
  };
12900
12939
 
12901
- const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
12902
- const handleEvent = (event) => {
12903
- const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event);
12904
- if (checkForDefaultPrevented === false || !shouldPrevent) {
12905
- return oursHandler == null ? void 0 : oursHandler(event);
12940
+ const configProviderContextKey = Symbol();
12941
+
12942
+ const defaultNamespace = "el";
12943
+ const statePrefix = "is-";
12944
+ const _bem = (namespace, block, blockSuffix, element, modifier) => {
12945
+ let cls = `${namespace}-${block}`;
12946
+ if (blockSuffix) {
12947
+ cls += `-${blockSuffix}`;
12948
+ }
12949
+ if (element) {
12950
+ cls += `__${element}`;
12951
+ }
12952
+ if (modifier) {
12953
+ cls += `--${modifier}`;
12954
+ }
12955
+ return cls;
12956
+ };
12957
+ const namespaceContextKey = Symbol("namespaceContextKey");
12958
+ const useGetDerivedNamespace = (namespaceOverrides) => {
12959
+ const derivedNamespace = namespaceOverrides || (vue.getCurrentInstance() ? vue.inject(namespaceContextKey, vue.ref(defaultNamespace)) : vue.ref(defaultNamespace));
12960
+ const namespace = vue.computed(() => {
12961
+ return vue.unref(derivedNamespace) || defaultNamespace;
12962
+ });
12963
+ return namespace;
12964
+ };
12965
+ const useNamespace = (block, namespaceOverrides) => {
12966
+ const namespace = useGetDerivedNamespace(namespaceOverrides);
12967
+ const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", "");
12968
+ const e = (element) => element ? _bem(namespace.value, block, "", element, "") : "";
12969
+ const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : "";
12970
+ const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : "";
12971
+ const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : "";
12972
+ const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : "";
12973
+ const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : "";
12974
+ const is = (name, ...args) => {
12975
+ const state = args.length >= 1 ? args[0] : true;
12976
+ return name && state ? `${statePrefix}${name}` : "";
12977
+ };
12978
+ const cssVar = (object) => {
12979
+ const styles = {};
12980
+ for (const key in object) {
12981
+ if (object[key]) {
12982
+ styles[`--${namespace.value}-${key}`] = object[key];
12983
+ }
12984
+ }
12985
+ return styles;
12986
+ };
12987
+ const cssVarBlock = (object) => {
12988
+ const styles = {};
12989
+ for (const key in object) {
12990
+ if (object[key]) {
12991
+ styles[`--${namespace.value}-${block}-${key}`] = object[key];
12992
+ }
12906
12993
  }
12994
+ return styles;
12995
+ };
12996
+ const cssVarName = (name) => `--${namespace.value}-${name}`;
12997
+ const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`;
12998
+ return {
12999
+ namespace,
13000
+ b,
13001
+ e,
13002
+ m,
13003
+ be,
13004
+ em,
13005
+ bm,
13006
+ bem,
13007
+ is,
13008
+ cssVar,
13009
+ cssVarName,
13010
+ cssVarBlock,
13011
+ cssVarBlockName
12907
13012
  };
12908
- return handleEvent;
12909
13013
  };
12910
13014
 
12911
- const isFirefox = () => isClient && /firefox/i.test(window.navigator.userAgent);
12912
-
12913
13015
  const isUndefined = (val) => val === void 0;
12914
13016
  const isBoolean = (val) => typeof val === "boolean";
12915
13017
  const isNumber = (val) => typeof val === "number";
@@ -12925,8 +13027,6 @@
12925
13027
  return !Number.isNaN(Number(val));
12926
13028
  };
12927
13029
 
12928
- const escapeStringRegexp = (string = "") => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
12929
-
12930
13030
  class ElementPlusError extends Error {
12931
13031
  constructor(m) {
12932
13032
  super(m);
@@ -12939,165 +13039,32 @@
12939
13039
  function debugWarn(scope, message) {
12940
13040
  }
12941
13041
 
12942
- function addUnit(value, defaultUnit = "px") {
12943
- if (!value)
12944
- return "";
12945
- if (isNumber(value) || isStringNumber(value)) {
12946
- return `${value}${defaultUnit}`;
12947
- } else if (isString$1(value)) {
12948
- return value;
12949
- }
12950
- }
12951
-
12952
- function scrollIntoView(container, selected) {
12953
- if (!isClient)
12954
- return;
12955
- if (!selected) {
12956
- container.scrollTop = 0;
12957
- return;
12958
- }
12959
- const offsetParents = [];
12960
- let pointer = selected.offsetParent;
12961
- while (pointer !== null && container !== pointer && container.contains(pointer)) {
12962
- offsetParents.push(pointer);
12963
- pointer = pointer.offsetParent;
12964
- }
12965
- const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0);
12966
- const bottom = top + selected.offsetHeight;
12967
- const viewRectTop = container.scrollTop;
12968
- const viewRectBottom = viewRectTop + container.clientHeight;
12969
- if (top < viewRectTop) {
12970
- container.scrollTop = top;
12971
- } else if (bottom > viewRectBottom) {
12972
- container.scrollTop = bottom - container.clientHeight;
12973
- }
12974
- }
12975
-
12976
- const epPropKey = "__epPropKey";
12977
- const definePropType = (val) => val;
12978
- const isEpProp = (val) => isObject$1(val) && !!val[epPropKey];
12979
- const buildProp = (prop, key) => {
12980
- if (!isObject$1(prop) || isEpProp(prop))
12981
- return prop;
12982
- const { values, required, default: defaultValue, type, validator } = prop;
12983
- const _validator = values || validator ? (val) => {
12984
- let valid = false;
12985
- let allowedValues = [];
12986
- if (values) {
12987
- allowedValues = Array.from(values);
12988
- if (hasOwn(prop, "default")) {
12989
- allowedValues.push(defaultValue);
12990
- }
12991
- valid || (valid = allowedValues.includes(val));
12992
- }
12993
- if (validator)
12994
- valid || (valid = validator(val));
12995
- if (!valid && allowedValues.length > 0) {
12996
- const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
12997
- vue.warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
12998
- }
12999
- return valid;
13000
- } : void 0;
13001
- const epProp = {
13002
- type,
13003
- required: !!required,
13004
- validator: _validator,
13005
- [epPropKey]: true
13006
- };
13007
- if (hasOwn(prop, "default"))
13008
- epProp.default = defaultValue;
13009
- return epProp;
13010
- };
13011
- const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
13012
- key,
13013
- buildProp(option, key)
13014
- ]));
13015
-
13016
- const iconPropType = definePropType([
13017
- String,
13018
- Object,
13019
- Function
13020
- ]);
13021
- const ValidateComponentsMap = {
13022
- validating: loading_default,
13023
- success: circle_check_default,
13024
- error: circle_close_default
13042
+ const initial = {
13043
+ current: 0
13025
13044
  };
13026
-
13027
- const withInstall = (main, extra) => {
13028
- main.install = (app) => {
13029
- for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
13030
- app.component(comp.name, comp);
13031
- }
13045
+ const zIndex = vue.ref(0);
13046
+ const defaultInitialZIndex = 2e3;
13047
+ const ZINDEX_INJECTION_KEY = Symbol("elZIndexContextKey");
13048
+ const zIndexContextKey = Symbol("zIndexContextKey");
13049
+ const useZIndex = (zIndexOverrides) => {
13050
+ const increasingInjection = vue.getCurrentInstance() ? vue.inject(ZINDEX_INJECTION_KEY, initial) : initial;
13051
+ const zIndexInjection = zIndexOverrides || (vue.getCurrentInstance() ? vue.inject(zIndexContextKey, void 0) : void 0);
13052
+ const initialZIndex = vue.computed(() => {
13053
+ const zIndexFromInjection = vue.unref(zIndexInjection);
13054
+ return isNumber(zIndexFromInjection) ? zIndexFromInjection : defaultInitialZIndex;
13055
+ });
13056
+ const currentZIndex = vue.computed(() => initialZIndex.value + zIndex.value);
13057
+ const nextZIndex = () => {
13058
+ increasingInjection.current++;
13059
+ zIndex.value = increasingInjection.current;
13060
+ return currentZIndex.value;
13032
13061
  };
13033
- if (extra) {
13034
- for (const [key, comp] of Object.entries(extra)) {
13035
- main[key] = comp;
13036
- }
13037
- }
13038
- return main;
13039
- };
13040
- const withInstallDirective = (directive, name) => {
13041
- directive.install = (app) => {
13042
- app.directive(name, directive);
13062
+ if (!isClient && !vue.inject(ZINDEX_INJECTION_KEY)) ;
13063
+ return {
13064
+ initialZIndex,
13065
+ currentZIndex,
13066
+ nextZIndex
13043
13067
  };
13044
- return directive;
13045
- };
13046
- const withNoopInstall = (component) => {
13047
- component.install = NOOP;
13048
- return component;
13049
- };
13050
-
13051
- const EVENT_CODE = {
13052
- tab: "Tab",
13053
- enter: "Enter",
13054
- space: "Space",
13055
- left: "ArrowLeft",
13056
- up: "ArrowUp",
13057
- right: "ArrowRight",
13058
- down: "ArrowDown",
13059
- esc: "Escape",
13060
- delete: "Delete",
13061
- backspace: "Backspace",
13062
- numpadEnter: "NumpadEnter",
13063
- pageUp: "PageUp",
13064
- pageDown: "PageDown",
13065
- home: "Home",
13066
- end: "End"
13067
- };
13068
-
13069
- const UPDATE_MODEL_EVENT = "update:modelValue";
13070
- const CHANGE_EVENT = "change";
13071
- const INPUT_EVENT = "input";
13072
-
13073
- const componentSizes = ["", "default", "small", "large"];
13074
-
13075
- const isKorean = (text) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(text);
13076
-
13077
- const mutable = (val) => val;
13078
-
13079
- const DEFAULT_EXCLUDE_KEYS = ["class", "style"];
13080
- const LISTENER_PREFIX = /^on[A-Z]/;
13081
- const useAttrs = (params = {}) => {
13082
- const { excludeListeners = false, excludeKeys } = params;
13083
- const allExcludeKeys = vue.computed(() => {
13084
- return ((excludeKeys == null ? void 0 : excludeKeys.value) || []).concat(DEFAULT_EXCLUDE_KEYS);
13085
- });
13086
- const instance = vue.getCurrentInstance();
13087
- if (!instance) {
13088
- return vue.computed(() => ({}));
13089
- }
13090
- return vue.computed(() => {
13091
- var _a;
13092
- return fromPairs(Object.entries((_a = instance.proxy) == null ? void 0 : _a.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))));
13093
- });
13094
- };
13095
-
13096
- const useDeprecated = ({ from, replacement, scope, version, ref, type = "API" }, condition) => {
13097
- vue.watch(() => vue.unref(condition), (val) => {
13098
- }, {
13099
- immediate: true
13100
- });
13101
13068
  };
13102
13069
 
13103
13070
  var English = {
@@ -13300,627 +13267,61 @@
13300
13267
  return buildLocaleContext(vue.computed(() => locale.value || English));
13301
13268
  };
13302
13269
 
13303
- const defaultNamespace = "el";
13304
- const statePrefix = "is-";
13305
- const _bem = (namespace, block, blockSuffix, element, modifier) => {
13306
- let cls = `${namespace}-${block}`;
13307
- if (blockSuffix) {
13308
- cls += `-${blockSuffix}`;
13309
- }
13310
- if (element) {
13311
- cls += `__${element}`;
13312
- }
13313
- if (modifier) {
13314
- cls += `--${modifier}`;
13315
- }
13316
- return cls;
13317
- };
13318
- const namespaceContextKey = Symbol("namespaceContextKey");
13319
- const useGetDerivedNamespace = (namespaceOverrides) => {
13320
- const derivedNamespace = namespaceOverrides || (vue.getCurrentInstance() ? vue.inject(namespaceContextKey, vue.ref(defaultNamespace)) : vue.ref(defaultNamespace));
13321
- const namespace = vue.computed(() => {
13322
- return vue.unref(derivedNamespace) || defaultNamespace;
13323
- });
13324
- return namespace;
13325
- };
13326
- const useNamespace = (block, namespaceOverrides) => {
13327
- const namespace = useGetDerivedNamespace(namespaceOverrides);
13328
- const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", "");
13329
- const e = (element) => element ? _bem(namespace.value, block, "", element, "") : "";
13330
- const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : "";
13331
- const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : "";
13332
- const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : "";
13333
- const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : "";
13334
- const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : "";
13335
- const is = (name, ...args) => {
13336
- const state = args.length >= 1 ? args[0] : true;
13337
- return name && state ? `${statePrefix}${name}` : "";
13338
- };
13339
- const cssVar = (object) => {
13340
- const styles = {};
13341
- for (const key in object) {
13342
- if (object[key]) {
13343
- styles[`--${namespace.value}-${key}`] = object[key];
13270
+ const epPropKey = "__epPropKey";
13271
+ const definePropType = (val) => val;
13272
+ const isEpProp = (val) => isObject$1(val) && !!val[epPropKey];
13273
+ const buildProp = (prop, key) => {
13274
+ if (!isObject$1(prop) || isEpProp(prop))
13275
+ return prop;
13276
+ const { values, required, default: defaultValue, type, validator } = prop;
13277
+ const _validator = values || validator ? (val) => {
13278
+ let valid = false;
13279
+ let allowedValues = [];
13280
+ if (values) {
13281
+ allowedValues = Array.from(values);
13282
+ if (hasOwn(prop, "default")) {
13283
+ allowedValues.push(defaultValue);
13344
13284
  }
13285
+ valid || (valid = allowedValues.includes(val));
13345
13286
  }
13346
- return styles;
13347
- };
13348
- const cssVarBlock = (object) => {
13349
- const styles = {};
13350
- for (const key in object) {
13351
- if (object[key]) {
13352
- styles[`--${namespace.value}-${block}-${key}`] = object[key];
13353
- }
13287
+ if (validator)
13288
+ valid || (valid = validator(val));
13289
+ if (!valid && allowedValues.length > 0) {
13290
+ const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
13291
+ vue.warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
13354
13292
  }
13355
- return styles;
13356
- };
13357
- const cssVarName = (name) => `--${namespace.value}-${name}`;
13358
- const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`;
13359
- return {
13360
- namespace,
13361
- b,
13362
- e,
13363
- m,
13364
- be,
13365
- em,
13366
- bm,
13367
- bem,
13368
- is,
13369
- cssVar,
13370
- cssVarName,
13371
- cssVarBlock,
13372
- cssVarBlockName
13293
+ return valid;
13294
+ } : void 0;
13295
+ const epProp = {
13296
+ type,
13297
+ required: !!required,
13298
+ validator: _validator,
13299
+ [epPropKey]: true
13373
13300
  };
13301
+ if (hasOwn(prop, "default"))
13302
+ epProp.default = defaultValue;
13303
+ return epProp;
13374
13304
  };
13305
+ const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
13306
+ key,
13307
+ buildProp(option, key)
13308
+ ]));
13375
13309
 
13376
- const _prop = buildProp({
13377
- type: definePropType(Boolean),
13378
- default: null
13379
- });
13380
- const _event = buildProp({
13381
- type: definePropType(Function)
13382
- });
13383
- const createModelToggleComposable = (name) => {
13384
- const updateEventKey = `update:${name}`;
13385
- const updateEventKeyRaw = `onUpdate:${name}`;
13386
- const useModelToggleEmits2 = [updateEventKey];
13387
- const useModelToggleProps2 = {
13388
- [name]: _prop,
13389
- [updateEventKeyRaw]: _event
13390
- };
13391
- const useModelToggle2 = ({
13392
- indicator,
13393
- toggleReason,
13394
- shouldHideWhenRouteChanges,
13395
- shouldProceed,
13396
- onShow,
13397
- onHide
13398
- }) => {
13399
- const instance = vue.getCurrentInstance();
13400
- const { emit } = instance;
13401
- const props = instance.props;
13402
- const hasUpdateHandler = vue.computed(() => isFunction$1(props[updateEventKeyRaw]));
13403
- const isModelBindingAbsent = vue.computed(() => props[name] === null);
13404
- const doShow = (event) => {
13405
- if (indicator.value === true) {
13406
- return;
13407
- }
13408
- indicator.value = true;
13409
- if (toggleReason) {
13410
- toggleReason.value = event;
13411
- }
13412
- if (isFunction$1(onShow)) {
13413
- onShow(event);
13414
- }
13415
- };
13416
- const doHide = (event) => {
13417
- if (indicator.value === false) {
13418
- return;
13419
- }
13420
- indicator.value = false;
13421
- if (toggleReason) {
13422
- toggleReason.value = event;
13423
- }
13424
- if (isFunction$1(onHide)) {
13425
- onHide(event);
13426
- }
13427
- };
13428
- const show = (event) => {
13429
- if (props.disabled === true || isFunction$1(shouldProceed) && !shouldProceed())
13430
- return;
13431
- const shouldEmit = hasUpdateHandler.value && isClient;
13432
- if (shouldEmit) {
13433
- emit(updateEventKey, true);
13434
- }
13435
- if (isModelBindingAbsent.value || !shouldEmit) {
13436
- doShow(event);
13437
- }
13438
- };
13439
- const hide = (event) => {
13440
- if (props.disabled === true || !isClient)
13441
- return;
13442
- const shouldEmit = hasUpdateHandler.value && isClient;
13443
- if (shouldEmit) {
13444
- emit(updateEventKey, false);
13445
- }
13446
- if (isModelBindingAbsent.value || !shouldEmit) {
13447
- doHide(event);
13448
- }
13449
- };
13450
- const onChange = (val) => {
13451
- if (!isBoolean(val))
13452
- return;
13453
- if (props.disabled && val) {
13454
- if (hasUpdateHandler.value) {
13455
- emit(updateEventKey, false);
13456
- }
13457
- } else if (indicator.value !== val) {
13458
- if (val) {
13459
- doShow();
13460
- } else {
13461
- doHide();
13462
- }
13463
- }
13464
- };
13465
- const toggle = () => {
13466
- if (indicator.value) {
13467
- hide();
13468
- } else {
13469
- show();
13470
- }
13471
- };
13472
- vue.watch(() => props[name], onChange);
13473
- if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) {
13474
- vue.watch(() => ({
13475
- ...instance.proxy.$route
13476
- }), () => {
13477
- if (shouldHideWhenRouteChanges.value && indicator.value) {
13478
- hide();
13479
- }
13480
- });
13481
- }
13482
- vue.onMounted(() => {
13483
- onChange(props[name]);
13484
- });
13485
- return {
13486
- hide,
13487
- show,
13488
- toggle,
13489
- hasUpdateHandler
13490
- };
13491
- };
13492
- return {
13493
- useModelToggle: useModelToggle2,
13494
- useModelToggleProps: useModelToggleProps2,
13495
- useModelToggleEmits: useModelToggleEmits2
13496
- };
13497
- };
13310
+ const componentSizes = ["", "default", "small", "large"];
13498
13311
 
13499
- const useProp = (name) => {
13500
- const vm = vue.getCurrentInstance();
13312
+ const useSizeProp = buildProp({
13313
+ type: String,
13314
+ values: componentSizes,
13315
+ required: false
13316
+ });
13317
+ const SIZE_INJECTION_KEY = Symbol("size");
13318
+ const useGlobalSize = () => {
13319
+ const injectedSize = vue.inject(SIZE_INJECTION_KEY, {});
13501
13320
  return vue.computed(() => {
13502
- var _a, _b;
13503
- return (_b = (_a = vm == null ? void 0 : vm.proxy) == null ? void 0 : _a.$props) == null ? void 0 : _b[name];
13321
+ return vue.unref(injectedSize.size) || "";
13504
13322
  });
13505
13323
  };
13506
13324
 
13507
- 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});
13508
-
13509
- const usePopper = (referenceElementRef, popperElementRef, opts = {}) => {
13510
- const stateUpdater = {
13511
- name: "updateState",
13512
- enabled: true,
13513
- phase: "write",
13514
- fn: ({ state }) => {
13515
- const derivedState = deriveState(state);
13516
- Object.assign(states.value, derivedState);
13517
- },
13518
- requires: ["computeStyles"]
13519
- };
13520
- const options = vue.computed(() => {
13521
- const { onFirstUpdate, placement, strategy, modifiers } = vue.unref(opts);
13522
- return {
13523
- onFirstUpdate,
13524
- placement: placement || "bottom",
13525
- strategy: strategy || "absolute",
13526
- modifiers: [
13527
- ...modifiers || [],
13528
- stateUpdater,
13529
- { name: "applyStyles", enabled: false }
13530
- ]
13531
- };
13532
- });
13533
- const instanceRef = vue.shallowRef();
13534
- const states = vue.ref({
13535
- styles: {
13536
- popper: {
13537
- position: vue.unref(options).strategy,
13538
- left: "0",
13539
- top: "0"
13540
- },
13541
- arrow: {
13542
- position: "absolute"
13543
- }
13544
- },
13545
- attributes: {}
13546
- });
13547
- const destroy = () => {
13548
- if (!instanceRef.value)
13549
- return;
13550
- instanceRef.value.destroy();
13551
- instanceRef.value = void 0;
13552
- };
13553
- vue.watch(options, (newOptions) => {
13554
- const instance = vue.unref(instanceRef);
13555
- if (instance) {
13556
- instance.setOptions(newOptions);
13557
- }
13558
- }, {
13559
- deep: true
13560
- });
13561
- vue.watch([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => {
13562
- destroy();
13563
- if (!referenceElement || !popperElement)
13564
- return;
13565
- instanceRef.value = yn(referenceElement, popperElement, vue.unref(options));
13566
- });
13567
- vue.onBeforeUnmount(() => {
13568
- destroy();
13569
- });
13570
- return {
13571
- state: vue.computed(() => {
13572
- var _a;
13573
- return { ...((_a = vue.unref(instanceRef)) == null ? void 0 : _a.state) || {} };
13574
- }),
13575
- styles: vue.computed(() => vue.unref(states).styles),
13576
- attributes: vue.computed(() => vue.unref(states).attributes),
13577
- update: () => {
13578
- var _a;
13579
- return (_a = vue.unref(instanceRef)) == null ? void 0 : _a.update();
13580
- },
13581
- forceUpdate: () => {
13582
- var _a;
13583
- return (_a = vue.unref(instanceRef)) == null ? void 0 : _a.forceUpdate();
13584
- },
13585
- instanceRef: vue.computed(() => vue.unref(instanceRef))
13586
- };
13587
- };
13588
- function deriveState(state) {
13589
- const elements = Object.keys(state.elements);
13590
- const styles = fromPairs(elements.map((element) => [element, state.styles[element] || {}]));
13591
- const attributes = fromPairs(elements.map((element) => [element, state.attributes[element]]));
13592
- return {
13593
- styles,
13594
- attributes
13595
- };
13596
- }
13597
-
13598
- function useTimeout() {
13599
- let timeoutHandle;
13600
- const registerTimeout = (fn, delay) => {
13601
- cancelTimeout();
13602
- timeoutHandle = window.setTimeout(fn, delay);
13603
- };
13604
- const cancelTimeout = () => window.clearTimeout(timeoutHandle);
13605
- tryOnScopeDispose(() => cancelTimeout());
13606
- return {
13607
- registerTimeout,
13608
- cancelTimeout
13609
- };
13610
- }
13611
-
13612
- const defaultIdInjection = {
13613
- prefix: Math.floor(Math.random() * 1e4),
13614
- current: 0
13615
- };
13616
- const ID_INJECTION_KEY = Symbol("elIdInjection");
13617
- const useIdInjection = () => {
13618
- return vue.getCurrentInstance() ? vue.inject(ID_INJECTION_KEY, defaultIdInjection) : defaultIdInjection;
13619
- };
13620
- const useId = (deterministicId) => {
13621
- const idInjection = useIdInjection();
13622
- const namespace = useGetDerivedNamespace();
13623
- const idRef = vue.computed(() => vue.unref(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`);
13624
- return idRef;
13625
- };
13626
-
13627
- let registeredEscapeHandlers = [];
13628
- const cachedHandler = (e) => {
13629
- const event = e;
13630
- if (event.key === EVENT_CODE.esc) {
13631
- registeredEscapeHandlers.forEach((registeredHandler) => registeredHandler(event));
13632
- }
13633
- };
13634
- const useEscapeKeydown = (handler) => {
13635
- vue.onMounted(() => {
13636
- if (registeredEscapeHandlers.length === 0) {
13637
- document.addEventListener("keydown", cachedHandler);
13638
- }
13639
- if (isClient)
13640
- registeredEscapeHandlers.push(handler);
13641
- });
13642
- vue.onBeforeUnmount(() => {
13643
- registeredEscapeHandlers = registeredEscapeHandlers.filter((registeredHandler) => registeredHandler !== handler);
13644
- if (registeredEscapeHandlers.length === 0) {
13645
- if (isClient)
13646
- document.removeEventListener("keydown", cachedHandler);
13647
- }
13648
- });
13649
- };
13650
-
13651
- let cachedContainer;
13652
- const usePopperContainerId = () => {
13653
- const namespace = useGetDerivedNamespace();
13654
- const idInjection = useIdInjection();
13655
- const id = vue.computed(() => {
13656
- return `${namespace.value}-popper-container-${idInjection.prefix}`;
13657
- });
13658
- const selector = vue.computed(() => `#${id.value}`);
13659
- return {
13660
- id,
13661
- selector
13662
- };
13663
- };
13664
- const createContainer = (id) => {
13665
- const container = document.createElement("div");
13666
- container.id = id;
13667
- document.body.appendChild(container);
13668
- return container;
13669
- };
13670
- const usePopperContainer = () => {
13671
- const { id, selector } = usePopperContainerId();
13672
- vue.onBeforeMount(() => {
13673
- if (!isClient)
13674
- return;
13675
- if (!cachedContainer || !document.body.querySelector(selector.value)) {
13676
- cachedContainer = createContainer(id.value);
13677
- }
13678
- });
13679
- return {
13680
- id,
13681
- selector
13682
- };
13683
- };
13684
-
13685
- const useDelayedToggleProps = buildProps({
13686
- showAfter: {
13687
- type: Number,
13688
- default: 0
13689
- },
13690
- hideAfter: {
13691
- type: Number,
13692
- default: 200
13693
- },
13694
- autoClose: {
13695
- type: Number,
13696
- default: 0
13697
- }
13698
- });
13699
- const useDelayedToggle = ({
13700
- showAfter,
13701
- hideAfter,
13702
- autoClose,
13703
- open,
13704
- close
13705
- }) => {
13706
- const { registerTimeout } = useTimeout();
13707
- const {
13708
- registerTimeout: registerTimeoutForAutoClose,
13709
- cancelTimeout: cancelTimeoutForAutoClose
13710
- } = useTimeout();
13711
- const onOpen = (event) => {
13712
- registerTimeout(() => {
13713
- open(event);
13714
- const _autoClose = vue.unref(autoClose);
13715
- if (isNumber(_autoClose) && _autoClose > 0) {
13716
- registerTimeoutForAutoClose(() => {
13717
- close(event);
13718
- }, _autoClose);
13719
- }
13720
- }, vue.unref(showAfter));
13721
- };
13722
- const onClose = (event) => {
13723
- cancelTimeoutForAutoClose();
13724
- registerTimeout(() => {
13725
- close(event);
13726
- }, vue.unref(hideAfter));
13727
- };
13728
- return {
13729
- onOpen,
13730
- onClose
13731
- };
13732
- };
13733
-
13734
- const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef");
13735
- const useForwardRef = (forwardRef) => {
13736
- const setForwardRef = (el) => {
13737
- forwardRef.value = el;
13738
- };
13739
- vue.provide(FORWARD_REF_INJECTION_KEY, {
13740
- setForwardRef
13741
- });
13742
- };
13743
- const useForwardRefDirective = (setForwardRef) => {
13744
- return {
13745
- mounted(el) {
13746
- setForwardRef(el);
13747
- },
13748
- updated(el) {
13749
- setForwardRef(el);
13750
- },
13751
- unmounted() {
13752
- setForwardRef(null);
13753
- }
13754
- };
13755
- };
13756
-
13757
- const initial = {
13758
- current: 0
13759
- };
13760
- const zIndex = vue.ref(0);
13761
- const defaultInitialZIndex = 2e3;
13762
- const ZINDEX_INJECTION_KEY = Symbol("elZIndexContextKey");
13763
- const zIndexContextKey = Symbol("zIndexContextKey");
13764
- const useZIndex = (zIndexOverrides) => {
13765
- const increasingInjection = vue.getCurrentInstance() ? vue.inject(ZINDEX_INJECTION_KEY, initial) : initial;
13766
- const zIndexInjection = zIndexOverrides || (vue.getCurrentInstance() ? vue.inject(zIndexContextKey, void 0) : void 0);
13767
- const initialZIndex = vue.computed(() => {
13768
- const zIndexFromInjection = vue.unref(zIndexInjection);
13769
- return isNumber(zIndexFromInjection) ? zIndexFromInjection : defaultInitialZIndex;
13770
- });
13771
- const currentZIndex = vue.computed(() => initialZIndex.value + zIndex.value);
13772
- const nextZIndex = () => {
13773
- increasingInjection.current++;
13774
- zIndex.value = increasingInjection.current;
13775
- return currentZIndex.value;
13776
- };
13777
- if (!isClient && !vue.inject(ZINDEX_INJECTION_KEY)) ;
13778
- return {
13779
- initialZIndex,
13780
- currentZIndex,
13781
- nextZIndex
13782
- };
13783
- };
13784
-
13785
- function useCursor(input) {
13786
- let selectionInfo;
13787
- function recordCursor() {
13788
- if (input.value == void 0)
13789
- return;
13790
- const { selectionStart, selectionEnd, value } = input.value;
13791
- if (selectionStart == null || selectionEnd == null)
13792
- return;
13793
- const beforeTxt = value.slice(0, Math.max(0, selectionStart));
13794
- const afterTxt = value.slice(Math.max(0, selectionEnd));
13795
- selectionInfo = {
13796
- selectionStart,
13797
- selectionEnd,
13798
- value,
13799
- beforeTxt,
13800
- afterTxt
13801
- };
13802
- }
13803
- function setCursor() {
13804
- if (input.value == void 0 || selectionInfo == void 0)
13805
- return;
13806
- const { value } = input.value;
13807
- const { beforeTxt, afterTxt, selectionStart } = selectionInfo;
13808
- if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0)
13809
- return;
13810
- let startPos = value.length;
13811
- if (value.endsWith(afterTxt)) {
13812
- startPos = value.length - afterTxt.length;
13813
- } else if (value.startsWith(beforeTxt)) {
13814
- startPos = beforeTxt.length;
13815
- } else {
13816
- const beforeLastChar = beforeTxt[selectionStart - 1];
13817
- const newIndex = value.indexOf(beforeLastChar, selectionStart - 1);
13818
- if (newIndex !== -1) {
13819
- startPos = newIndex + 1;
13820
- }
13821
- }
13822
- input.value.setSelectionRange(startPos, startPos);
13823
- }
13824
- return [recordCursor, setCursor];
13825
- }
13826
-
13827
- const useSizeProp = buildProp({
13828
- type: String,
13829
- values: componentSizes,
13830
- required: false
13831
- });
13832
- const SIZE_INJECTION_KEY = Symbol("size");
13833
- const useGlobalSize = () => {
13834
- const injectedSize = vue.inject(SIZE_INJECTION_KEY, {});
13835
- return vue.computed(() => {
13836
- return vue.unref(injectedSize.size) || "";
13837
- });
13838
- };
13839
-
13840
- function useFocusController(target, {
13841
- beforeFocus,
13842
- afterFocus,
13843
- beforeBlur,
13844
- afterBlur
13845
- } = {}) {
13846
- const instance = vue.getCurrentInstance();
13847
- const { emit } = instance;
13848
- const wrapperRef = vue.shallowRef();
13849
- const isFocused = vue.ref(false);
13850
- const handleFocus = (event) => {
13851
- const cancelFocus = isFunction$1(beforeFocus) ? beforeFocus(event) : false;
13852
- if (cancelFocus || isFocused.value)
13853
- return;
13854
- isFocused.value = true;
13855
- emit("focus", event);
13856
- afterFocus == null ? void 0 : afterFocus();
13857
- };
13858
- const handleBlur = (event) => {
13859
- var _a;
13860
- const cancelBlur = isFunction$1(beforeBlur) ? beforeBlur(event) : false;
13861
- if (cancelBlur || event.relatedTarget && ((_a = wrapperRef.value) == null ? void 0 : _a.contains(event.relatedTarget)))
13862
- return;
13863
- isFocused.value = false;
13864
- emit("blur", event);
13865
- afterBlur == null ? void 0 : afterBlur();
13866
- };
13867
- const handleClick = () => {
13868
- var _a, _b;
13869
- if (((_a = wrapperRef.value) == null ? void 0 : _a.contains(document.activeElement)) && wrapperRef.value !== document.activeElement)
13870
- return;
13871
- (_b = target.value) == null ? void 0 : _b.focus();
13872
- };
13873
- vue.watch(wrapperRef, (el) => {
13874
- if (el) {
13875
- el.setAttribute("tabindex", "-1");
13876
- }
13877
- });
13878
- useEventListener(wrapperRef, "focus", handleFocus, true);
13879
- useEventListener(wrapperRef, "blur", handleBlur, true);
13880
- useEventListener(wrapperRef, "click", handleClick, true);
13881
- return {
13882
- isFocused,
13883
- wrapperRef,
13884
- handleFocus,
13885
- handleBlur
13886
- };
13887
- }
13888
-
13889
- function useComposition({
13890
- afterComposition,
13891
- emit
13892
- }) {
13893
- const isComposing = vue.ref(false);
13894
- const handleCompositionStart = (event) => {
13895
- emit == null ? void 0 : emit("compositionstart", event);
13896
- isComposing.value = true;
13897
- };
13898
- const handleCompositionUpdate = (event) => {
13899
- var _a;
13900
- emit == null ? void 0 : emit("compositionupdate", event);
13901
- const text = (_a = event.target) == null ? void 0 : _a.value;
13902
- const lastCharacter = text[text.length - 1] || "";
13903
- isComposing.value = !isKorean(lastCharacter);
13904
- };
13905
- const handleCompositionEnd = (event) => {
13906
- emit == null ? void 0 : emit("compositionend", event);
13907
- if (isComposing.value) {
13908
- isComposing.value = false;
13909
- vue.nextTick(() => afterComposition(event));
13910
- }
13911
- };
13912
- const handleComposition = (event) => {
13913
- event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event);
13914
- };
13915
- return {
13916
- isComposing,
13917
- handleComposition,
13918
- handleCompositionStart,
13919
- handleCompositionUpdate,
13920
- handleCompositionEnd
13921
- };
13922
- }
13923
-
13924
13325
  const emptyValuesContextKey = Symbol("emptyValuesContextKey");
13925
13326
  const DEFAULT_EMPTY_VALUES = ["", void 0, null];
13926
13327
  const DEFAULT_VALUE_ON_CLEAR = void 0;
@@ -13954,24 +13355,10 @@
13954
13355
  return {
13955
13356
  emptyValues,
13956
13357
  valueOnClear,
13957
- isEmptyValue
13958
- };
13959
- };
13960
-
13961
- const ariaProps = buildProps({
13962
- ariaLabel: String,
13963
- ariaOrientation: {
13964
- type: String,
13965
- values: ["horizontal", "vertical", "undefined"]
13966
- },
13967
- ariaControls: String
13968
- });
13969
- const useAriaProps = (arias) => {
13970
- return pick(ariaProps, arias);
13358
+ isEmptyValue
13359
+ };
13971
13360
  };
13972
13361
 
13973
- const configProviderContextKey = Symbol();
13974
-
13975
13362
  const globalConfig = vue.ref();
13976
13363
  function useGlobalConfig(key, defaultValue = void 0) {
13977
13364
  const config = vue.getCurrentInstance() ? vue.inject(configProviderContextKey, globalConfig) : globalConfig;
@@ -13985,6 +13372,10 @@
13985
13372
  }
13986
13373
  }
13987
13374
 
13375
+ const UPDATE_MODEL_EVENT = "update:modelValue";
13376
+ const CHANGE_EVENT = "change";
13377
+ const INPUT_EVENT = "input";
13378
+
13988
13379
  var _export_sfc$1 = (sfc, props) => {
13989
13380
  const target = sfc.__vccOpts || sfc;
13990
13381
  for (const [key, val] of props) {
@@ -13993,6 +13384,64 @@
13993
13384
  return target;
13994
13385
  };
13995
13386
 
13387
+ function addUnit(value, defaultUnit = "px") {
13388
+ if (!value)
13389
+ return "";
13390
+ if (isNumber(value) || isStringNumber(value)) {
13391
+ return `${value}${defaultUnit}`;
13392
+ } else if (isString$1(value)) {
13393
+ return value;
13394
+ }
13395
+ }
13396
+
13397
+ function scrollIntoView(container, selected) {
13398
+ if (!isClient)
13399
+ return;
13400
+ if (!selected) {
13401
+ container.scrollTop = 0;
13402
+ return;
13403
+ }
13404
+ const offsetParents = [];
13405
+ let pointer = selected.offsetParent;
13406
+ while (pointer !== null && container !== pointer && container.contains(pointer)) {
13407
+ offsetParents.push(pointer);
13408
+ pointer = pointer.offsetParent;
13409
+ }
13410
+ const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0);
13411
+ const bottom = top + selected.offsetHeight;
13412
+ const viewRectTop = container.scrollTop;
13413
+ const viewRectBottom = viewRectTop + container.clientHeight;
13414
+ if (top < viewRectTop) {
13415
+ container.scrollTop = top;
13416
+ } else if (bottom > viewRectBottom) {
13417
+ container.scrollTop = bottom - container.clientHeight;
13418
+ }
13419
+ }
13420
+
13421
+ const withInstall = (main, extra) => {
13422
+ main.install = (app) => {
13423
+ for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
13424
+ app.component(comp.name, comp);
13425
+ }
13426
+ };
13427
+ if (extra) {
13428
+ for (const [key, comp] of Object.entries(extra)) {
13429
+ main[key] = comp;
13430
+ }
13431
+ }
13432
+ return main;
13433
+ };
13434
+ const withInstallDirective = (directive, name) => {
13435
+ directive.install = (app) => {
13436
+ app.directive(name, directive);
13437
+ };
13438
+ return directive;
13439
+ };
13440
+ const withNoopInstall = (component) => {
13441
+ component.install = NOOP;
13442
+ return component;
13443
+ };
13444
+
13996
13445
  const iconProps = buildProps({
13997
13446
  size: {
13998
13447
  type: definePropType([Number, String])
@@ -14002,12 +13451,12 @@
14002
13451
  }
14003
13452
  });
14004
13453
 
14005
- const __default__$p = vue.defineComponent({
13454
+ const __default__$r = vue.defineComponent({
14006
13455
  name: "ElIcon",
14007
13456
  inheritAttrs: false
14008
13457
  });
14009
- const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
14010
- ...__default__$p,
13458
+ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
13459
+ ...__default__$r,
14011
13460
  props: iconProps,
14012
13461
  setup(__props) {
14013
13462
  const props = __props;
@@ -14031,25 +13480,241 @@
14031
13480
  };
14032
13481
  }
14033
13482
  });
14034
- var Icon = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__file", "icon.vue"]]);
13483
+ var Icon = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__file", "icon.vue"]]);
13484
+
13485
+ const ElIcon = withInstall(Icon);
13486
+
13487
+ const iconPropType = definePropType([
13488
+ String,
13489
+ Object,
13490
+ Function
13491
+ ]);
13492
+ const ValidateComponentsMap = {
13493
+ validating: loading_default,
13494
+ success: circle_check_default,
13495
+ error: circle_close_default
13496
+ };
13497
+
13498
+ const isFirefox = () => isClient && /firefox/i.test(window.navigator.userAgent);
13499
+
13500
+ let hiddenTextarea = void 0;
13501
+ const HIDDEN_STYLE = `
13502
+ height:0 !important;
13503
+ visibility:hidden !important;
13504
+ ${isFirefox() ? "" : "overflow:hidden !important;"}
13505
+ position:absolute !important;
13506
+ z-index:-1000 !important;
13507
+ top:0 !important;
13508
+ right:0 !important;
13509
+ `;
13510
+ const CONTEXT_STYLE = [
13511
+ "letter-spacing",
13512
+ "line-height",
13513
+ "padding-top",
13514
+ "padding-bottom",
13515
+ "font-family",
13516
+ "font-weight",
13517
+ "font-size",
13518
+ "text-rendering",
13519
+ "text-transform",
13520
+ "width",
13521
+ "text-indent",
13522
+ "padding-left",
13523
+ "padding-right",
13524
+ "border-width",
13525
+ "box-sizing"
13526
+ ];
13527
+ function calculateNodeStyling(targetElement) {
13528
+ const style = window.getComputedStyle(targetElement);
13529
+ const boxSizing = style.getPropertyValue("box-sizing");
13530
+ const paddingSize = Number.parseFloat(style.getPropertyValue("padding-bottom")) + Number.parseFloat(style.getPropertyValue("padding-top"));
13531
+ const borderSize = Number.parseFloat(style.getPropertyValue("border-bottom-width")) + Number.parseFloat(style.getPropertyValue("border-top-width"));
13532
+ const contextStyle = CONTEXT_STYLE.map((name) => `${name}:${style.getPropertyValue(name)}`).join(";");
13533
+ return { contextStyle, paddingSize, borderSize, boxSizing };
13534
+ }
13535
+ function calcTextareaHeight(targetElement, minRows = 1, maxRows) {
13536
+ var _a;
13537
+ if (!hiddenTextarea) {
13538
+ hiddenTextarea = document.createElement("textarea");
13539
+ document.body.appendChild(hiddenTextarea);
13540
+ }
13541
+ const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement);
13542
+ hiddenTextarea.setAttribute("style", `${contextStyle};${HIDDEN_STYLE}`);
13543
+ hiddenTextarea.value = targetElement.value || targetElement.placeholder || "";
13544
+ let height = hiddenTextarea.scrollHeight;
13545
+ const result = {};
13546
+ if (boxSizing === "border-box") {
13547
+ height = height + borderSize;
13548
+ } else if (boxSizing === "content-box") {
13549
+ height = height - paddingSize;
13550
+ }
13551
+ hiddenTextarea.value = "";
13552
+ const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
13553
+ if (isNumber(minRows)) {
13554
+ let minHeight = singleRowHeight * minRows;
13555
+ if (boxSizing === "border-box") {
13556
+ minHeight = minHeight + paddingSize + borderSize;
13557
+ }
13558
+ height = Math.max(minHeight, height);
13559
+ result.minHeight = `${minHeight}px`;
13560
+ }
13561
+ if (isNumber(maxRows)) {
13562
+ let maxHeight = singleRowHeight * maxRows;
13563
+ if (boxSizing === "border-box") {
13564
+ maxHeight = maxHeight + paddingSize + borderSize;
13565
+ }
13566
+ height = Math.min(maxHeight, height);
13567
+ }
13568
+ result.height = `${height}px`;
13569
+ (_a = hiddenTextarea.parentNode) == null ? void 0 : _a.removeChild(hiddenTextarea);
13570
+ hiddenTextarea = void 0;
13571
+ return result;
13572
+ }
13573
+
13574
+ const mutable = (val) => val;
13575
+
13576
+ const ariaProps = buildProps({
13577
+ ariaLabel: String,
13578
+ ariaOrientation: {
13579
+ type: String,
13580
+ values: ["horizontal", "vertical", "undefined"]
13581
+ },
13582
+ ariaControls: String
13583
+ });
13584
+ const useAriaProps = (arias) => {
13585
+ return pick(ariaProps, arias);
13586
+ };
13587
+
13588
+ const inputProps = buildProps({
13589
+ id: {
13590
+ type: String,
13591
+ default: void 0
13592
+ },
13593
+ size: useSizeProp,
13594
+ disabled: Boolean,
13595
+ modelValue: {
13596
+ type: definePropType([
13597
+ String,
13598
+ Number,
13599
+ Object
13600
+ ]),
13601
+ default: ""
13602
+ },
13603
+ maxlength: {
13604
+ type: [String, Number]
13605
+ },
13606
+ minlength: {
13607
+ type: [String, Number]
13608
+ },
13609
+ type: {
13610
+ type: String,
13611
+ default: "text"
13612
+ },
13613
+ resize: {
13614
+ type: String,
13615
+ values: ["none", "both", "horizontal", "vertical"]
13616
+ },
13617
+ autosize: {
13618
+ type: definePropType([Boolean, Object]),
13619
+ default: false
13620
+ },
13621
+ autocomplete: {
13622
+ type: String,
13623
+ default: "off"
13624
+ },
13625
+ formatter: {
13626
+ type: Function
13627
+ },
13628
+ parser: {
13629
+ type: Function
13630
+ },
13631
+ placeholder: {
13632
+ type: String
13633
+ },
13634
+ form: {
13635
+ type: String
13636
+ },
13637
+ readonly: Boolean,
13638
+ clearable: Boolean,
13639
+ showPassword: Boolean,
13640
+ showWordLimit: Boolean,
13641
+ suffixIcon: {
13642
+ type: iconPropType
13643
+ },
13644
+ prefixIcon: {
13645
+ type: iconPropType
13646
+ },
13647
+ containerRole: {
13648
+ type: String,
13649
+ default: void 0
13650
+ },
13651
+ tabindex: {
13652
+ type: [String, Number],
13653
+ default: 0
13654
+ },
13655
+ validateEvent: {
13656
+ type: Boolean,
13657
+ default: true
13658
+ },
13659
+ inputStyle: {
13660
+ type: definePropType([Object, Array, String]),
13661
+ default: () => mutable({})
13662
+ },
13663
+ autofocus: Boolean,
13664
+ rows: {
13665
+ type: Number,
13666
+ default: 2
13667
+ },
13668
+ ...useAriaProps(["ariaLabel"])
13669
+ });
13670
+ const inputEmits = {
13671
+ [UPDATE_MODEL_EVENT]: (value) => isString$1(value),
13672
+ input: (value) => isString$1(value),
13673
+ change: (value) => isString$1(value),
13674
+ focus: (evt) => evt instanceof FocusEvent,
13675
+ blur: (evt) => evt instanceof FocusEvent,
13676
+ clear: () => true,
13677
+ mouseleave: (evt) => evt instanceof MouseEvent,
13678
+ mouseenter: (evt) => evt instanceof MouseEvent,
13679
+ keydown: (evt) => evt instanceof Event,
13680
+ compositionstart: (evt) => evt instanceof CompositionEvent,
13681
+ compositionupdate: (evt) => evt instanceof CompositionEvent,
13682
+ compositionend: (evt) => evt instanceof CompositionEvent
13683
+ };
14035
13684
 
14036
- const ElIcon = withInstall(Icon);
13685
+ const DEFAULT_EXCLUDE_KEYS = ["class", "style"];
13686
+ const LISTENER_PREFIX = /^on[A-Z]/;
13687
+ const useAttrs = (params = {}) => {
13688
+ const { excludeListeners = false, excludeKeys } = params;
13689
+ const allExcludeKeys = vue.computed(() => {
13690
+ return ((excludeKeys == null ? void 0 : excludeKeys.value) || []).concat(DEFAULT_EXCLUDE_KEYS);
13691
+ });
13692
+ const instance = vue.getCurrentInstance();
13693
+ if (!instance) {
13694
+ return vue.computed(() => ({}));
13695
+ }
13696
+ return vue.computed(() => {
13697
+ var _a;
13698
+ return fromPairs(Object.entries((_a = instance.proxy) == null ? void 0 : _a.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))));
13699
+ });
13700
+ };
14037
13701
 
14038
13702
  const formContextKey = Symbol("formContextKey");
14039
13703
  const formItemContextKey = Symbol("formItemContextKey");
14040
13704
 
14041
- const useFormSize = (fallback, ignore = {}) => {
14042
- const emptyRef = vue.ref(void 0);
14043
- const size = ignore.prop ? emptyRef : useProp("size");
14044
- const globalConfig = ignore.global ? emptyRef : useGlobalSize();
14045
- const form = ignore.form ? { size: void 0 } : vue.inject(formContextKey, void 0);
14046
- const formItem = ignore.formItem ? { size: void 0 } : vue.inject(formItemContextKey, void 0);
14047
- return vue.computed(() => size.value || vue.unref(fallback) || (formItem == null ? void 0 : formItem.size) || (form == null ? void 0 : form.size) || globalConfig.value || "");
13705
+ const defaultIdInjection = {
13706
+ prefix: Math.floor(Math.random() * 1e4),
13707
+ current: 0
14048
13708
  };
14049
- const useFormDisabled = (fallback) => {
14050
- const disabled = useProp("disabled");
14051
- const form = vue.inject(formContextKey, void 0);
14052
- return vue.computed(() => disabled.value || vue.unref(fallback) || (form == null ? void 0 : form.disabled) || false);
13709
+ const ID_INJECTION_KEY = Symbol("elIdInjection");
13710
+ const useIdInjection = () => {
13711
+ return vue.getCurrentInstance() ? vue.inject(ID_INJECTION_KEY, defaultIdInjection) : defaultIdInjection;
13712
+ };
13713
+ const useId = (deterministicId) => {
13714
+ const idInjection = useIdInjection();
13715
+ const namespace = useGetDerivedNamespace();
13716
+ const idRef = computedEager(() => vue.unref(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`);
13717
+ return idRef;
14053
13718
  };
14054
13719
 
14055
13720
  const useFormItem = () => {
@@ -14103,198 +13768,169 @@
14103
13768
  };
14104
13769
  };
14105
13770
 
14106
- let hiddenTextarea = void 0;
14107
- const HIDDEN_STYLE = `
14108
- height:0 !important;
14109
- visibility:hidden !important;
14110
- ${isFirefox() ? "" : "overflow:hidden !important;"}
14111
- position:absolute !important;
14112
- z-index:-1000 !important;
14113
- top:0 !important;
14114
- right:0 !important;
14115
- `;
14116
- const CONTEXT_STYLE = [
14117
- "letter-spacing",
14118
- "line-height",
14119
- "padding-top",
14120
- "padding-bottom",
14121
- "font-family",
14122
- "font-weight",
14123
- "font-size",
14124
- "text-rendering",
14125
- "text-transform",
14126
- "width",
14127
- "text-indent",
14128
- "padding-left",
14129
- "padding-right",
14130
- "border-width",
14131
- "box-sizing"
14132
- ];
14133
- function calculateNodeStyling(targetElement) {
14134
- const style = window.getComputedStyle(targetElement);
14135
- const boxSizing = style.getPropertyValue("box-sizing");
14136
- const paddingSize = Number.parseFloat(style.getPropertyValue("padding-bottom")) + Number.parseFloat(style.getPropertyValue("padding-top"));
14137
- const borderSize = Number.parseFloat(style.getPropertyValue("border-bottom-width")) + Number.parseFloat(style.getPropertyValue("border-top-width"));
14138
- const contextStyle = CONTEXT_STYLE.map((name) => `${name}:${style.getPropertyValue(name)}`).join(";");
14139
- return { contextStyle, paddingSize, borderSize, boxSizing };
13771
+ const useProp = (name) => {
13772
+ const vm = vue.getCurrentInstance();
13773
+ return vue.computed(() => {
13774
+ var _a, _b;
13775
+ return (_b = (_a = vm == null ? void 0 : vm.proxy) == null ? void 0 : _a.$props) == null ? void 0 : _b[name];
13776
+ });
13777
+ };
13778
+
13779
+ const useFormSize = (fallback, ignore = {}) => {
13780
+ const emptyRef = vue.ref(void 0);
13781
+ const size = ignore.prop ? emptyRef : useProp("size");
13782
+ const globalConfig = ignore.global ? emptyRef : useGlobalSize();
13783
+ const form = ignore.form ? { size: void 0 } : vue.inject(formContextKey, void 0);
13784
+ const formItem = ignore.formItem ? { size: void 0 } : vue.inject(formItemContextKey, void 0);
13785
+ return vue.computed(() => size.value || vue.unref(fallback) || (formItem == null ? void 0 : formItem.size) || (form == null ? void 0 : form.size) || globalConfig.value || "");
13786
+ };
13787
+ const useFormDisabled = (fallback) => {
13788
+ const disabled = useProp("disabled");
13789
+ const form = vue.inject(formContextKey, void 0);
13790
+ return vue.computed(() => disabled.value || vue.unref(fallback) || (form == null ? void 0 : form.disabled) || false);
13791
+ };
13792
+
13793
+ function useFocusController(target, {
13794
+ beforeFocus,
13795
+ afterFocus,
13796
+ beforeBlur,
13797
+ afterBlur
13798
+ } = {}) {
13799
+ const instance = vue.getCurrentInstance();
13800
+ const { emit } = instance;
13801
+ const wrapperRef = vue.shallowRef();
13802
+ const isFocused = vue.ref(false);
13803
+ const handleFocus = (event) => {
13804
+ const cancelFocus = isFunction$1(beforeFocus) ? beforeFocus(event) : false;
13805
+ if (cancelFocus || isFocused.value)
13806
+ return;
13807
+ isFocused.value = true;
13808
+ emit("focus", event);
13809
+ afterFocus == null ? void 0 : afterFocus();
13810
+ };
13811
+ const handleBlur = (event) => {
13812
+ var _a;
13813
+ const cancelBlur = isFunction$1(beforeBlur) ? beforeBlur(event) : false;
13814
+ if (cancelBlur || event.relatedTarget && ((_a = wrapperRef.value) == null ? void 0 : _a.contains(event.relatedTarget)))
13815
+ return;
13816
+ isFocused.value = false;
13817
+ emit("blur", event);
13818
+ afterBlur == null ? void 0 : afterBlur();
13819
+ };
13820
+ const handleClick = () => {
13821
+ var _a, _b;
13822
+ if (((_a = wrapperRef.value) == null ? void 0 : _a.contains(document.activeElement)) && wrapperRef.value !== document.activeElement)
13823
+ return;
13824
+ (_b = target.value) == null ? void 0 : _b.focus();
13825
+ };
13826
+ vue.watch(wrapperRef, (el) => {
13827
+ if (el) {
13828
+ el.setAttribute("tabindex", "-1");
13829
+ }
13830
+ });
13831
+ useEventListener(wrapperRef, "focus", handleFocus, true);
13832
+ useEventListener(wrapperRef, "blur", handleBlur, true);
13833
+ useEventListener(wrapperRef, "click", handleClick, true);
13834
+ return {
13835
+ isFocused,
13836
+ wrapperRef,
13837
+ handleFocus,
13838
+ handleBlur
13839
+ };
14140
13840
  }
14141
- function calcTextareaHeight(targetElement, minRows = 1, maxRows) {
14142
- var _a;
14143
- if (!hiddenTextarea) {
14144
- hiddenTextarea = document.createElement("textarea");
14145
- document.body.appendChild(hiddenTextarea);
14146
- }
14147
- const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement);
14148
- hiddenTextarea.setAttribute("style", `${contextStyle};${HIDDEN_STYLE}`);
14149
- hiddenTextarea.value = targetElement.value || targetElement.placeholder || "";
14150
- let height = hiddenTextarea.scrollHeight;
14151
- const result = {};
14152
- if (boxSizing === "border-box") {
14153
- height = height + borderSize;
14154
- } else if (boxSizing === "content-box") {
14155
- height = height - paddingSize;
14156
- }
14157
- hiddenTextarea.value = "";
14158
- const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
14159
- if (isNumber(minRows)) {
14160
- let minHeight = singleRowHeight * minRows;
14161
- if (boxSizing === "border-box") {
14162
- minHeight = minHeight + paddingSize + borderSize;
13841
+
13842
+ const isKorean = (text) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(text);
13843
+
13844
+ function useComposition({
13845
+ afterComposition,
13846
+ emit
13847
+ }) {
13848
+ const isComposing = vue.ref(false);
13849
+ const handleCompositionStart = (event) => {
13850
+ emit == null ? void 0 : emit("compositionstart", event);
13851
+ isComposing.value = true;
13852
+ };
13853
+ const handleCompositionUpdate = (event) => {
13854
+ var _a;
13855
+ emit == null ? void 0 : emit("compositionupdate", event);
13856
+ const text = (_a = event.target) == null ? void 0 : _a.value;
13857
+ const lastCharacter = text[text.length - 1] || "";
13858
+ isComposing.value = !isKorean(lastCharacter);
13859
+ };
13860
+ const handleCompositionEnd = (event) => {
13861
+ emit == null ? void 0 : emit("compositionend", event);
13862
+ if (isComposing.value) {
13863
+ isComposing.value = false;
13864
+ vue.nextTick(() => afterComposition(event));
14163
13865
  }
14164
- height = Math.max(minHeight, height);
14165
- result.minHeight = `${minHeight}px`;
13866
+ };
13867
+ const handleComposition = (event) => {
13868
+ event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event);
13869
+ };
13870
+ return {
13871
+ isComposing,
13872
+ handleComposition,
13873
+ handleCompositionStart,
13874
+ handleCompositionUpdate,
13875
+ handleCompositionEnd
13876
+ };
13877
+ }
13878
+
13879
+ function useCursor(input) {
13880
+ let selectionInfo;
13881
+ function recordCursor() {
13882
+ if (input.value == void 0)
13883
+ return;
13884
+ const { selectionStart, selectionEnd, value } = input.value;
13885
+ if (selectionStart == null || selectionEnd == null)
13886
+ return;
13887
+ const beforeTxt = value.slice(0, Math.max(0, selectionStart));
13888
+ const afterTxt = value.slice(Math.max(0, selectionEnd));
13889
+ selectionInfo = {
13890
+ selectionStart,
13891
+ selectionEnd,
13892
+ value,
13893
+ beforeTxt,
13894
+ afterTxt
13895
+ };
14166
13896
  }
14167
- if (isNumber(maxRows)) {
14168
- let maxHeight = singleRowHeight * maxRows;
14169
- if (boxSizing === "border-box") {
14170
- maxHeight = maxHeight + paddingSize + borderSize;
13897
+ function setCursor() {
13898
+ if (input.value == void 0 || selectionInfo == void 0)
13899
+ return;
13900
+ const { value } = input.value;
13901
+ const { beforeTxt, afterTxt, selectionStart } = selectionInfo;
13902
+ if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0)
13903
+ return;
13904
+ let startPos = value.length;
13905
+ if (value.endsWith(afterTxt)) {
13906
+ startPos = value.length - afterTxt.length;
13907
+ } else if (value.startsWith(beforeTxt)) {
13908
+ startPos = beforeTxt.length;
13909
+ } else {
13910
+ const beforeLastChar = beforeTxt[selectionStart - 1];
13911
+ const newIndex = value.indexOf(beforeLastChar, selectionStart - 1);
13912
+ if (newIndex !== -1) {
13913
+ startPos = newIndex + 1;
13914
+ }
14171
13915
  }
14172
- height = Math.min(maxHeight, height);
13916
+ input.value.setSelectionRange(startPos, startPos);
14173
13917
  }
14174
- result.height = `${height}px`;
14175
- (_a = hiddenTextarea.parentNode) == null ? void 0 : _a.removeChild(hiddenTextarea);
14176
- hiddenTextarea = void 0;
14177
- return result;
13918
+ return [recordCursor, setCursor];
14178
13919
  }
14179
13920
 
14180
- const inputProps = buildProps({
14181
- id: {
14182
- type: String,
14183
- default: void 0
14184
- },
14185
- size: useSizeProp,
14186
- disabled: Boolean,
14187
- modelValue: {
14188
- type: definePropType([
14189
- String,
14190
- Number,
14191
- Object
14192
- ]),
14193
- default: ""
14194
- },
14195
- maxlength: {
14196
- type: [String, Number]
14197
- },
14198
- minlength: {
14199
- type: [String, Number]
14200
- },
14201
- type: {
14202
- type: String,
14203
- default: "text"
14204
- },
14205
- resize: {
14206
- type: String,
14207
- values: ["none", "both", "horizontal", "vertical"]
14208
- },
14209
- autosize: {
14210
- type: definePropType([Boolean, Object]),
14211
- default: false
14212
- },
14213
- autocomplete: {
14214
- type: String,
14215
- default: "off"
14216
- },
14217
- formatter: {
14218
- type: Function
14219
- },
14220
- parser: {
14221
- type: Function
14222
- },
14223
- placeholder: {
14224
- type: String
14225
- },
14226
- form: {
14227
- type: String
14228
- },
14229
- readonly: Boolean,
14230
- clearable: Boolean,
14231
- showPassword: Boolean,
14232
- showWordLimit: Boolean,
14233
- suffixIcon: {
14234
- type: iconPropType
14235
- },
14236
- prefixIcon: {
14237
- type: iconPropType
14238
- },
14239
- containerRole: {
14240
- type: String,
14241
- default: void 0
14242
- },
14243
- tabindex: {
14244
- type: [String, Number],
14245
- default: 0
14246
- },
14247
- validateEvent: {
14248
- type: Boolean,
14249
- default: true
14250
- },
14251
- inputStyle: {
14252
- type: definePropType([Object, Array, String]),
14253
- default: () => mutable({})
14254
- },
14255
- autofocus: Boolean,
14256
- rows: {
14257
- type: Number,
14258
- default: 2
14259
- },
14260
- ...useAriaProps(["ariaLabel"])
14261
- });
14262
- const inputEmits = {
14263
- [UPDATE_MODEL_EVENT]: (value) => isString$1(value),
14264
- input: (value) => isString$1(value),
14265
- change: (value) => isString$1(value),
14266
- focus: (evt) => evt instanceof FocusEvent,
14267
- blur: (evt) => evt instanceof FocusEvent,
14268
- clear: () => true,
14269
- mouseleave: (evt) => evt instanceof MouseEvent,
14270
- mouseenter: (evt) => evt instanceof MouseEvent,
14271
- keydown: (evt) => evt instanceof Event,
14272
- compositionstart: (evt) => evt instanceof CompositionEvent,
14273
- compositionupdate: (evt) => evt instanceof CompositionEvent,
14274
- compositionend: (evt) => evt instanceof CompositionEvent
14275
- };
14276
-
14277
- const __default__$o = vue.defineComponent({
13921
+ const __default__$q = vue.defineComponent({
14278
13922
  name: "ElInput",
14279
13923
  inheritAttrs: false
14280
13924
  });
14281
- const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
14282
- ...__default__$o,
13925
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
13926
+ ...__default__$q,
14283
13927
  props: inputProps,
14284
13928
  emits: inputEmits,
14285
13929
  setup(__props, { expose, emit }) {
14286
13930
  const props = __props;
14287
13931
  const rawAttrs = vue.useAttrs();
13932
+ const attrs = useAttrs();
14288
13933
  const slots = vue.useSlots();
14289
- const containerAttrs = vue.computed(() => {
14290
- const comboBoxAttrs = {};
14291
- if (props.containerRole === "combobox") {
14292
- comboBoxAttrs["aria-haspopup"] = rawAttrs["aria-haspopup"];
14293
- comboBoxAttrs["aria-owns"] = rawAttrs["aria-owns"];
14294
- comboBoxAttrs["aria-expanded"] = rawAttrs["aria-expanded"];
14295
- }
14296
- return comboBoxAttrs;
14297
- });
14298
13934
  const containerKls = vue.computed(() => [
14299
13935
  props.type === "textarea" ? nsTextarea.b() : nsInput.b(),
14300
13936
  nsInput.m(inputSize.value),
@@ -14313,11 +13949,6 @@
14313
13949
  nsInput.e("wrapper"),
14314
13950
  nsInput.is("focus", isFocused.value)
14315
13951
  ]);
14316
- const attrs = useAttrs({
14317
- excludeKeys: vue.computed(() => {
14318
- return Object.keys(containerAttrs.value);
14319
- })
14320
- });
14321
13952
  const { form: elForm, formItem: elFormItem } = useFormItem();
14322
13953
  const { inputId } = useFormItemInputId(props, {
14323
13954
  formItemContext: elFormItem
@@ -14361,7 +13992,7 @@
14361
13992
  ]);
14362
13993
  const nativeInputValue = vue.computed(() => isNil(props.modelValue) ? "" : String(props.modelValue));
14363
13994
  const showClear = vue.computed(() => props.clearable && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (isFocused.value || hovering.value));
14364
- const showPwdVisible = vue.computed(() => props.showPassword && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (!!nativeInputValue.value || isFocused.value));
13995
+ const showPwdVisible = vue.computed(() => props.showPassword && !inputDisabled.value && !!nativeInputValue.value && (!!nativeInputValue.value || isFocused.value));
14365
13996
  const isWordLimitVisible = vue.computed(() => props.showWordLimit && !!props.maxlength && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword);
14366
13997
  const textLength = vue.computed(() => nativeInputValue.value.length);
14367
13998
  const inputExceed = vue.computed(() => !!isWordLimitVisible.value && textLength.value > Number(props.maxlength));
@@ -14448,13 +14079,13 @@
14448
14079
  handleCompositionEnd
14449
14080
  } = useComposition({ emit, afterComposition: handleInput });
14450
14081
  const handlePasswordVisible = () => {
14082
+ recordCursor();
14451
14083
  passwordVisible.value = !passwordVisible.value;
14452
- focus();
14084
+ setTimeout(setCursor);
14453
14085
  };
14454
- const focus = async () => {
14086
+ const focus = () => {
14455
14087
  var _a;
14456
- await vue.nextTick();
14457
- (_a = _ref.value) == null ? void 0 : _a.focus();
14088
+ return (_a = _ref.value) == null ? void 0 : _a.focus();
14458
14089
  };
14459
14090
  const blur = () => {
14460
14091
  var _a;
@@ -14513,19 +14144,18 @@
14513
14144
  resizeTextarea
14514
14145
  });
14515
14146
  return (_ctx, _cache) => {
14516
- return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps(vue.unref(containerAttrs), {
14517
- class: [
14147
+ return vue.openBlock(), vue.createElementBlock("div", {
14148
+ class: vue.normalizeClass([
14518
14149
  vue.unref(containerKls),
14519
14150
  {
14520
14151
  [vue.unref(nsInput).bm("group", "append")]: _ctx.$slots.append,
14521
14152
  [vue.unref(nsInput).bm("group", "prepend")]: _ctx.$slots.prepend
14522
14153
  }
14523
- ],
14524
- style: vue.unref(containerStyle),
14525
- role: _ctx.containerRole,
14154
+ ]),
14155
+ style: vue.normalizeStyle(vue.unref(containerStyle)),
14526
14156
  onMouseenter: handleMouseEnter,
14527
14157
  onMouseleave: handleMouseLeave
14528
- }), [
14158
+ }, [
14529
14159
  vue.createCommentVNode(" input "),
14530
14160
  _ctx.type !== "textarea" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
14531
14161
  vue.createCommentVNode(" prepend slot "),
@@ -14578,13 +14208,14 @@
14578
14208
  style: _ctx.inputStyle,
14579
14209
  form: _ctx.form,
14580
14210
  autofocus: _ctx.autofocus,
14211
+ role: _ctx.containerRole,
14581
14212
  onCompositionstart: vue.unref(handleCompositionStart),
14582
14213
  onCompositionupdate: vue.unref(handleCompositionUpdate),
14583
14214
  onCompositionend: vue.unref(handleCompositionEnd),
14584
14215
  onInput: handleInput,
14585
14216
  onChange: handleChange,
14586
14217
  onKeydown: handleKeydown
14587
- }), null, 16, ["id", "minlength", "maxlength", "type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus", "onCompositionstart", "onCompositionupdate", "onCompositionend"]),
14218
+ }), null, 16, ["id", "minlength", "maxlength", "type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus", "role", "onCompositionstart", "onCompositionupdate", "onCompositionend"]),
14588
14219
  vue.createCommentVNode(" suffix slot "),
14589
14220
  vue.unref(suffixVisible) ? (vue.openBlock(), vue.createElementBlock("span", {
14590
14221
  key: 1,
@@ -14677,6 +14308,7 @@
14677
14308
  form: _ctx.form,
14678
14309
  autofocus: _ctx.autofocus,
14679
14310
  rows: _ctx.rows,
14311
+ role: _ctx.containerRole,
14680
14312
  onCompositionstart: vue.unref(handleCompositionStart),
14681
14313
  onCompositionupdate: vue.unref(handleCompositionUpdate),
14682
14314
  onCompositionend: vue.unref(handleCompositionEnd),
@@ -14685,18 +14317,18 @@
14685
14317
  onBlur: vue.unref(handleBlur),
14686
14318
  onChange: handleChange,
14687
14319
  onKeydown: handleKeydown
14688
- }), null, 16, ["id", "minlength", "maxlength", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus", "rows", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onFocus", "onBlur"]),
14320
+ }), null, 16, ["id", "minlength", "maxlength", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus", "rows", "role", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onFocus", "onBlur"]),
14689
14321
  vue.unref(isWordLimitVisible) ? (vue.openBlock(), vue.createElementBlock("span", {
14690
14322
  key: 0,
14691
14323
  style: vue.normalizeStyle(countStyle.value),
14692
14324
  class: vue.normalizeClass(vue.unref(nsInput).e("count"))
14693
14325
  }, vue.toDisplayString(vue.unref(textLength)) + " / " + vue.toDisplayString(_ctx.maxlength), 7)) : vue.createCommentVNode("v-if", true)
14694
14326
  ], 64))
14695
- ], 16, ["role"]);
14327
+ ], 38);
14696
14328
  };
14697
14329
  }
14698
14330
  });
14699
- var Input = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__file", "input.vue"]]);
14331
+ var Input = /* @__PURE__ */ _export_sfc$1(_sfc_main$B, [["__file", "input.vue"]]);
14700
14332
 
14701
14333
  const ElInput = withInstall(Input);
14702
14334
 
@@ -14746,7 +14378,7 @@
14746
14378
  });
14747
14379
 
14748
14380
  const COMPONENT_NAME$2 = "Thumb";
14749
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
14381
+ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
14750
14382
  __name: "thumb",
14751
14383
  props: thumbProps,
14752
14384
  setup(__props) {
@@ -14865,7 +14497,7 @@
14865
14497
  };
14866
14498
  }
14867
14499
  });
14868
- var Thumb = /* @__PURE__ */ _export_sfc$1(_sfc_main$y, [["__file", "thumb.vue"]]);
14500
+ var Thumb = /* @__PURE__ */ _export_sfc$1(_sfc_main$A, [["__file", "thumb.vue"]]);
14869
14501
 
14870
14502
  const barProps = buildProps({
14871
14503
  always: {
@@ -14878,7 +14510,7 @@
14878
14510
  }
14879
14511
  });
14880
14512
 
14881
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
14513
+ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
14882
14514
  __name: "bar",
14883
14515
  props: barProps,
14884
14516
  setup(__props, { expose }) {
@@ -14936,7 +14568,7 @@
14936
14568
  };
14937
14569
  }
14938
14570
  });
14939
- var Bar = /* @__PURE__ */ _export_sfc$1(_sfc_main$x, [["__file", "bar.vue"]]);
14571
+ var Bar = /* @__PURE__ */ _export_sfc$1(_sfc_main$z, [["__file", "bar.vue"]]);
14940
14572
 
14941
14573
  const scrollbarProps = buildProps({
14942
14574
  height: {
@@ -14977,6 +14609,10 @@
14977
14609
  type: Number,
14978
14610
  default: 20
14979
14611
  },
14612
+ tabindex: {
14613
+ type: [String, Number],
14614
+ default: void 0
14615
+ },
14980
14616
  id: String,
14981
14617
  role: String,
14982
14618
  ...useAriaProps(["ariaLabel", "ariaOrientation"])
@@ -14989,11 +14625,11 @@
14989
14625
  };
14990
14626
 
14991
14627
  const COMPONENT_NAME$1 = "ElScrollbar";
14992
- const __default__$n = vue.defineComponent({
14628
+ const __default__$p = vue.defineComponent({
14993
14629
  name: COMPONENT_NAME$1
14994
14630
  });
14995
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
14996
- ...__default__$n,
14631
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
14632
+ ...__default__$p,
14997
14633
  props: scrollbarProps,
14998
14634
  emits: scrollbarEmits,
14999
14635
  setup(__props, { expose, emit }) {
@@ -15084,8 +14720,10 @@
15084
14720
  wrapElement: wrapRef
15085
14721
  }));
15086
14722
  vue.onActivated(() => {
15087
- wrapRef.value.scrollTop = wrapScrollTop;
15088
- wrapRef.value.scrollLeft = wrapScrollLeft;
14723
+ if (wrapRef.value) {
14724
+ wrapRef.value.scrollTop = wrapScrollTop;
14725
+ wrapRef.value.scrollLeft = wrapScrollLeft;
14726
+ }
15089
14727
  });
15090
14728
  vue.onMounted(() => {
15091
14729
  if (!props.native)
@@ -15113,6 +14751,7 @@
15113
14751
  ref: wrapRef,
15114
14752
  class: vue.normalizeClass(vue.unref(wrapKls)),
15115
14753
  style: vue.normalizeStyle(vue.unref(wrapStyle)),
14754
+ tabindex: _ctx.tabindex,
15116
14755
  onScroll: handleScroll
15117
14756
  }, [
15118
14757
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tag), {
@@ -15130,7 +14769,7 @@
15130
14769
  ]),
15131
14770
  _: 3
15132
14771
  }, 8, ["id", "class", "style", "role", "aria-label", "aria-orientation"]))
15133
- ], 38),
14772
+ ], 46, ["tabindex"]),
15134
14773
  !_ctx.native ? (vue.openBlock(), vue.createBlock(Bar, {
15135
14774
  key: 0,
15136
14775
  ref_key: "barRef",
@@ -15142,7 +14781,7 @@
15142
14781
  };
15143
14782
  }
15144
14783
  });
15145
- var Scrollbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$w, [["__file", "scrollbar.vue"]]);
14784
+ var Scrollbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$y, [["__file", "scrollbar.vue"]]);
15146
14785
 
15147
14786
  const ElScrollbar = withInstall(Scrollbar);
15148
14787
 
@@ -15167,12 +14806,12 @@
15167
14806
  }
15168
14807
  });
15169
14808
 
15170
- const __default__$m = vue.defineComponent({
14809
+ const __default__$o = vue.defineComponent({
15171
14810
  name: "ElPopper",
15172
14811
  inheritAttrs: false
15173
14812
  });
15174
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
15175
- ...__default__$m,
14813
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
14814
+ ...__default__$o,
15176
14815
  props: popperProps,
15177
14816
  setup(__props, { expose }) {
15178
14817
  const props = __props;
@@ -15195,7 +14834,7 @@
15195
14834
  };
15196
14835
  }
15197
14836
  });
15198
- var Popper = /* @__PURE__ */ _export_sfc$1(_sfc_main$v, [["__file", "popper.vue"]]);
14837
+ var Popper = /* @__PURE__ */ _export_sfc$1(_sfc_main$x, [["__file", "popper.vue"]]);
15199
14838
 
15200
14839
  const popperArrowProps = buildProps({
15201
14840
  arrowOffset: {
@@ -15204,12 +14843,12 @@
15204
14843
  }
15205
14844
  });
15206
14845
 
15207
- const __default__$l = vue.defineComponent({
14846
+ const __default__$n = vue.defineComponent({
15208
14847
  name: "ElPopperArrow",
15209
14848
  inheritAttrs: false
15210
14849
  });
15211
- const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
15212
- ...__default__$l,
14850
+ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
14851
+ ...__default__$n,
15213
14852
  props: popperArrowProps,
15214
14853
  setup(__props, { expose }) {
15215
14854
  const props = __props;
@@ -15235,7 +14874,85 @@
15235
14874
  };
15236
14875
  }
15237
14876
  });
15238
- var ElPopperArrow = /* @__PURE__ */ _export_sfc$1(_sfc_main$u, [["__file", "arrow.vue"]]);
14877
+ var ElPopperArrow = /* @__PURE__ */ _export_sfc$1(_sfc_main$w, [["__file", "arrow.vue"]]);
14878
+
14879
+ const popperTriggerProps = buildProps({
14880
+ virtualRef: {
14881
+ type: definePropType(Object)
14882
+ },
14883
+ virtualTriggering: Boolean,
14884
+ onMouseenter: {
14885
+ type: definePropType(Function)
14886
+ },
14887
+ onMouseleave: {
14888
+ type: definePropType(Function)
14889
+ },
14890
+ onClick: {
14891
+ type: definePropType(Function)
14892
+ },
14893
+ onKeydown: {
14894
+ type: definePropType(Function)
14895
+ },
14896
+ onFocus: {
14897
+ type: definePropType(Function)
14898
+ },
14899
+ onBlur: {
14900
+ type: definePropType(Function)
14901
+ },
14902
+ onContextmenu: {
14903
+ type: definePropType(Function)
14904
+ },
14905
+ id: String,
14906
+ open: Boolean
14907
+ });
14908
+
14909
+ const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef");
14910
+ const useForwardRef = (forwardRef) => {
14911
+ const setForwardRef = (el) => {
14912
+ forwardRef.value = el;
14913
+ };
14914
+ vue.provide(FORWARD_REF_INJECTION_KEY, {
14915
+ setForwardRef
14916
+ });
14917
+ };
14918
+ const useForwardRefDirective = (setForwardRef) => {
14919
+ return {
14920
+ mounted(el) {
14921
+ setForwardRef(el);
14922
+ },
14923
+ updated(el) {
14924
+ setForwardRef(el);
14925
+ },
14926
+ unmounted() {
14927
+ setForwardRef(null);
14928
+ }
14929
+ };
14930
+ };
14931
+
14932
+ const isFocusable = (element) => {
14933
+ if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute("tabIndex") !== null) {
14934
+ return true;
14935
+ }
14936
+ if (element.tabIndex < 0 || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true") {
14937
+ return false;
14938
+ }
14939
+ switch (element.nodeName) {
14940
+ case "A": {
14941
+ return !!element.href && element.rel !== "ignore";
14942
+ }
14943
+ case "INPUT": {
14944
+ return !(element.type === "hidden" || element.type === "file");
14945
+ }
14946
+ case "BUTTON":
14947
+ case "SELECT":
14948
+ case "TEXTAREA": {
14949
+ return true;
14950
+ }
14951
+ default: {
14952
+ return false;
14953
+ }
14954
+ }
14955
+ };
15239
14956
 
15240
14957
  const NAME = "ElOnlyChild";
15241
14958
  const OnlyChild = vue.defineComponent({
@@ -15276,58 +14993,28 @@
15276
14993
  case "svg":
15277
14994
  return wrapTextContent(child);
15278
14995
  case vue.Fragment:
15279
- return findFirstLegitChild(child.children);
15280
- default:
15281
- return child;
15282
- }
15283
- }
15284
- return wrapTextContent(child);
15285
- }
15286
- return null;
15287
- }
15288
- function wrapTextContent(s) {
15289
- const ns = useNamespace("only-child");
15290
- return vue.createVNode("span", {
15291
- "class": ns.e("content")
15292
- }, [s]);
15293
- }
15294
-
15295
- const popperTriggerProps = buildProps({
15296
- virtualRef: {
15297
- type: definePropType(Object)
15298
- },
15299
- virtualTriggering: Boolean,
15300
- onMouseenter: {
15301
- type: definePropType(Function)
15302
- },
15303
- onMouseleave: {
15304
- type: definePropType(Function)
15305
- },
15306
- onClick: {
15307
- type: definePropType(Function)
15308
- },
15309
- onKeydown: {
15310
- type: definePropType(Function)
15311
- },
15312
- onFocus: {
15313
- type: definePropType(Function)
15314
- },
15315
- onBlur: {
15316
- type: definePropType(Function)
15317
- },
15318
- onContextmenu: {
15319
- type: definePropType(Function)
15320
- },
15321
- id: String,
15322
- open: Boolean
15323
- });
14996
+ return findFirstLegitChild(child.children);
14997
+ default:
14998
+ return child;
14999
+ }
15000
+ }
15001
+ return wrapTextContent(child);
15002
+ }
15003
+ return null;
15004
+ }
15005
+ function wrapTextContent(s) {
15006
+ const ns = useNamespace("only-child");
15007
+ return vue.createVNode("span", {
15008
+ "class": ns.e("content")
15009
+ }, [s]);
15010
+ }
15324
15011
 
15325
- const __default__$k = vue.defineComponent({
15012
+ const __default__$m = vue.defineComponent({
15326
15013
  name: "ElPopperTrigger",
15327
15014
  inheritAttrs: false
15328
15015
  });
15329
- const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
15330
- ...__default__$k,
15016
+ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
15017
+ ...__default__$m,
15331
15018
  props: popperTriggerProps,
15332
15019
  setup(__props, { expose }) {
15333
15020
  const props = __props;
@@ -15381,18 +15068,20 @@
15381
15068
  (_a = prevEl == null ? void 0 : prevEl.removeEventListener) == null ? void 0 : _a.call(prevEl, eventName.slice(2).toLowerCase(), handler);
15382
15069
  }
15383
15070
  });
15384
- virtualTriggerAriaStopWatch = vue.watch([ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded], (watches) => {
15385
- [
15386
- "aria-controls",
15387
- "aria-describedby",
15388
- "aria-haspopup",
15389
- "aria-expanded"
15390
- ].forEach((key, idx) => {
15391
- isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
15392
- });
15393
- }, { immediate: true });
15071
+ if (isFocusable(el)) {
15072
+ virtualTriggerAriaStopWatch = vue.watch([ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded], (watches) => {
15073
+ [
15074
+ "aria-controls",
15075
+ "aria-describedby",
15076
+ "aria-haspopup",
15077
+ "aria-expanded"
15078
+ ].forEach((key, idx) => {
15079
+ isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
15080
+ });
15081
+ }, { immediate: true });
15082
+ }
15394
15083
  }
15395
- if (isElement(prevEl)) {
15084
+ if (isElement(prevEl) && isFocusable(prevEl)) {
15396
15085
  [
15397
15086
  "aria-controls",
15398
15087
  "aria-describedby",
@@ -15436,7 +15125,7 @@
15436
15125
  };
15437
15126
  }
15438
15127
  });
15439
- var ElPopperTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__file", "trigger.vue"]]);
15128
+ var ElPopperTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$v, [["__file", "trigger.vue"]]);
15440
15129
 
15441
15130
  const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped";
15442
15131
  const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released";
@@ -15501,11 +15190,19 @@
15501
15190
  const tryFocus = (element, shouldSelect) => {
15502
15191
  if (element && element.focus) {
15503
15192
  const prevFocusedElement = document.activeElement;
15193
+ let cleanup = false;
15194
+ if (isElement(element) && !isFocusable(element) && !element.getAttribute("tabindex")) {
15195
+ element.setAttribute("tabindex", "-1");
15196
+ cleanup = true;
15197
+ }
15504
15198
  element.focus({ preventScroll: true });
15505
15199
  lastAutomatedFocusTimestamp.value = window.performance.now();
15506
15200
  if (element !== prevFocusedElement && isSelectable(element) && shouldSelect) {
15507
15201
  element.select();
15508
15202
  }
15203
+ if (isElement(element) && cleanup) {
15204
+ element.removeAttribute("tabindex");
15205
+ }
15509
15206
  }
15510
15207
  };
15511
15208
  function removeFromStack(list, item) {
@@ -15586,7 +15283,48 @@
15586
15283
  });
15587
15284
  };
15588
15285
 
15589
- const _sfc_main$s = vue.defineComponent({
15286
+ const EVENT_CODE = {
15287
+ tab: "Tab",
15288
+ enter: "Enter",
15289
+ space: "Space",
15290
+ left: "ArrowLeft",
15291
+ up: "ArrowUp",
15292
+ right: "ArrowRight",
15293
+ down: "ArrowDown",
15294
+ esc: "Escape",
15295
+ delete: "Delete",
15296
+ backspace: "Backspace",
15297
+ numpadEnter: "NumpadEnter",
15298
+ pageUp: "PageUp",
15299
+ pageDown: "PageDown",
15300
+ home: "Home",
15301
+ end: "End"
15302
+ };
15303
+
15304
+ let registeredEscapeHandlers = [];
15305
+ const cachedHandler = (event) => {
15306
+ if (event.code === EVENT_CODE.esc) {
15307
+ registeredEscapeHandlers.forEach((registeredHandler) => registeredHandler(event));
15308
+ }
15309
+ };
15310
+ const useEscapeKeydown = (handler) => {
15311
+ vue.onMounted(() => {
15312
+ if (registeredEscapeHandlers.length === 0) {
15313
+ document.addEventListener("keydown", cachedHandler);
15314
+ }
15315
+ if (isClient)
15316
+ registeredEscapeHandlers.push(handler);
15317
+ });
15318
+ vue.onBeforeUnmount(() => {
15319
+ registeredEscapeHandlers = registeredEscapeHandlers.filter((registeredHandler) => registeredHandler !== handler);
15320
+ if (registeredEscapeHandlers.length === 0) {
15321
+ if (isClient)
15322
+ document.removeEventListener("keydown", cachedHandler);
15323
+ }
15324
+ });
15325
+ };
15326
+
15327
+ const _sfc_main$u = vue.defineComponent({
15590
15328
  name: "ElFocusTrap",
15591
15329
  inheritAttrs: false,
15592
15330
  props: {
@@ -15630,9 +15368,9 @@
15630
15368
  return;
15631
15369
  if (focusLayer.paused)
15632
15370
  return;
15633
- const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e;
15371
+ const { code, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e;
15634
15372
  const { loop } = props;
15635
- const isTabbing = key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey;
15373
+ const isTabbing = code === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey;
15636
15374
  const currentFocusingEl = document.activeElement;
15637
15375
  if (isTabbing && currentFocusingEl) {
15638
15376
  const container = currentTarget;
@@ -15831,7 +15569,9 @@
15831
15569
  function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
15832
15570
  return vue.renderSlot(_ctx.$slots, "default", { handleKeydown: _ctx.onKeydown });
15833
15571
  }
15834
- var ElFocusTrap = /* @__PURE__ */ _export_sfc$1(_sfc_main$s, [["render", _sfc_render$6], ["__file", "focus-trap.vue"]]);
15572
+ var ElFocusTrap = /* @__PURE__ */ _export_sfc$1(_sfc_main$u, [["render", _sfc_render$6], ["__file", "focus-trap.vue"]]);
15573
+
15574
+ 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});
15835
15575
 
15836
15576
  const POSITIONING_STRATEGIES = ["fixed", "absolute"];
15837
15577
  const popperCoreConfigProps = buildProps({
@@ -15921,6 +15661,50 @@
15921
15661
  close: () => true
15922
15662
  };
15923
15663
 
15664
+ const usePopperContentFocusTrap = (props, emit) => {
15665
+ const trapped = vue.ref(false);
15666
+ const focusStartRef = vue.ref();
15667
+ const onFocusAfterTrapped = () => {
15668
+ emit("focus");
15669
+ };
15670
+ const onFocusAfterReleased = (event) => {
15671
+ var _a;
15672
+ if (((_a = event.detail) == null ? void 0 : _a.focusReason) !== "pointer") {
15673
+ focusStartRef.value = "first";
15674
+ emit("blur");
15675
+ }
15676
+ };
15677
+ const onFocusInTrap = (event) => {
15678
+ if (props.visible && !trapped.value) {
15679
+ if (event.target) {
15680
+ focusStartRef.value = event.target;
15681
+ }
15682
+ trapped.value = true;
15683
+ }
15684
+ };
15685
+ const onFocusoutPrevented = (event) => {
15686
+ if (!props.trapping) {
15687
+ if (event.detail.focusReason === "pointer") {
15688
+ event.preventDefault();
15689
+ }
15690
+ trapped.value = false;
15691
+ }
15692
+ };
15693
+ const onReleaseRequested = () => {
15694
+ trapped.value = false;
15695
+ emit("close");
15696
+ };
15697
+ return {
15698
+ focusStartRef,
15699
+ trapped,
15700
+ onFocusAfterReleased,
15701
+ onFocusAfterTrapped,
15702
+ onFocusInTrap,
15703
+ onFocusoutPrevented,
15704
+ onReleaseRequested
15705
+ };
15706
+ };
15707
+
15924
15708
  const buildPopperOptions = (props, modifiers = []) => {
15925
15709
  const { placement, strategy, popperOptions } = props;
15926
15710
  const options = {
@@ -15978,6 +15762,95 @@
15978
15762
  }
15979
15763
  }
15980
15764
 
15765
+ const usePopper = (referenceElementRef, popperElementRef, opts = {}) => {
15766
+ const stateUpdater = {
15767
+ name: "updateState",
15768
+ enabled: true,
15769
+ phase: "write",
15770
+ fn: ({ state }) => {
15771
+ const derivedState = deriveState(state);
15772
+ Object.assign(states.value, derivedState);
15773
+ },
15774
+ requires: ["computeStyles"]
15775
+ };
15776
+ const options = vue.computed(() => {
15777
+ const { onFirstUpdate, placement, strategy, modifiers } = vue.unref(opts);
15778
+ return {
15779
+ onFirstUpdate,
15780
+ placement: placement || "bottom",
15781
+ strategy: strategy || "absolute",
15782
+ modifiers: [
15783
+ ...modifiers || [],
15784
+ stateUpdater,
15785
+ { name: "applyStyles", enabled: false }
15786
+ ]
15787
+ };
15788
+ });
15789
+ const instanceRef = vue.shallowRef();
15790
+ const states = vue.ref({
15791
+ styles: {
15792
+ popper: {
15793
+ position: vue.unref(options).strategy,
15794
+ left: "0",
15795
+ top: "0"
15796
+ },
15797
+ arrow: {
15798
+ position: "absolute"
15799
+ }
15800
+ },
15801
+ attributes: {}
15802
+ });
15803
+ const destroy = () => {
15804
+ if (!instanceRef.value)
15805
+ return;
15806
+ instanceRef.value.destroy();
15807
+ instanceRef.value = void 0;
15808
+ };
15809
+ vue.watch(options, (newOptions) => {
15810
+ const instance = vue.unref(instanceRef);
15811
+ if (instance) {
15812
+ instance.setOptions(newOptions);
15813
+ }
15814
+ }, {
15815
+ deep: true
15816
+ });
15817
+ vue.watch([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => {
15818
+ destroy();
15819
+ if (!referenceElement || !popperElement)
15820
+ return;
15821
+ instanceRef.value = yn(referenceElement, popperElement, vue.unref(options));
15822
+ });
15823
+ vue.onBeforeUnmount(() => {
15824
+ destroy();
15825
+ });
15826
+ return {
15827
+ state: vue.computed(() => {
15828
+ var _a;
15829
+ return { ...((_a = vue.unref(instanceRef)) == null ? void 0 : _a.state) || {} };
15830
+ }),
15831
+ styles: vue.computed(() => vue.unref(states).styles),
15832
+ attributes: vue.computed(() => vue.unref(states).attributes),
15833
+ update: () => {
15834
+ var _a;
15835
+ return (_a = vue.unref(instanceRef)) == null ? void 0 : _a.update();
15836
+ },
15837
+ forceUpdate: () => {
15838
+ var _a;
15839
+ return (_a = vue.unref(instanceRef)) == null ? void 0 : _a.forceUpdate();
15840
+ },
15841
+ instanceRef: vue.computed(() => vue.unref(instanceRef))
15842
+ };
15843
+ };
15844
+ function deriveState(state) {
15845
+ const elements = Object.keys(state.elements);
15846
+ const styles = fromPairs(elements.map((element) => [element, state.styles[element] || {}]));
15847
+ const attributes = fromPairs(elements.map((element) => [element, state.attributes[element]]));
15848
+ return {
15849
+ styles,
15850
+ attributes
15851
+ };
15852
+ }
15853
+
15981
15854
  const DEFAULT_ARROW_OFFSET = 0;
15982
15855
  const usePopperContent = (props) => {
15983
15856
  const { popperInstanceRef, contentRef, triggerRef, role } = vue.inject(POPPER_INJECTION_KEY, void 0);
@@ -16062,68 +15935,24 @@
16062
15935
  const ariaModal = vue.computed(() => role.value === "dialog" ? "false" : void 0);
16063
15936
  const arrowStyle = vue.computed(() => vue.unref(styles).arrow || {});
16064
15937
  const updateZIndex = () => {
16065
- contentZIndex.value = isNumber(props.zIndex) ? props.zIndex : nextZIndex();
16066
- };
16067
- return {
16068
- ariaModal,
16069
- arrowStyle,
16070
- contentAttrs,
16071
- contentClass,
16072
- contentStyle,
16073
- contentZIndex,
16074
- updateZIndex
16075
- };
16076
- };
16077
-
16078
- const usePopperContentFocusTrap = (props, emit) => {
16079
- const trapped = vue.ref(false);
16080
- const focusStartRef = vue.ref();
16081
- const onFocusAfterTrapped = () => {
16082
- emit("focus");
16083
- };
16084
- const onFocusAfterReleased = (event) => {
16085
- var _a;
16086
- if (((_a = event.detail) == null ? void 0 : _a.focusReason) !== "pointer") {
16087
- focusStartRef.value = "first";
16088
- emit("blur");
16089
- }
16090
- };
16091
- const onFocusInTrap = (event) => {
16092
- if (props.visible && !trapped.value) {
16093
- if (event.target) {
16094
- focusStartRef.value = event.target;
16095
- }
16096
- trapped.value = true;
16097
- }
16098
- };
16099
- const onFocusoutPrevented = (event) => {
16100
- if (!props.trapping) {
16101
- if (event.detail.focusReason === "pointer") {
16102
- event.preventDefault();
16103
- }
16104
- trapped.value = false;
16105
- }
16106
- };
16107
- const onReleaseRequested = () => {
16108
- trapped.value = false;
16109
- emit("close");
16110
- };
16111
- return {
16112
- focusStartRef,
16113
- trapped,
16114
- onFocusAfterReleased,
16115
- onFocusAfterTrapped,
16116
- onFocusInTrap,
16117
- onFocusoutPrevented,
16118
- onReleaseRequested
15938
+ contentZIndex.value = isNumber(props.zIndex) ? props.zIndex : nextZIndex();
15939
+ };
15940
+ return {
15941
+ ariaModal,
15942
+ arrowStyle,
15943
+ contentAttrs,
15944
+ contentClass,
15945
+ contentStyle,
15946
+ contentZIndex,
15947
+ updateZIndex
16119
15948
  };
16120
15949
  };
16121
15950
 
16122
- const __default__$j = vue.defineComponent({
15951
+ const __default__$l = vue.defineComponent({
16123
15952
  name: "ElPopperContent"
16124
15953
  });
16125
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
16126
- ...__default__$j,
15954
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
15955
+ ...__default__$l,
16127
15956
  props: popperContentProps,
16128
15957
  emits: popperContentEmits,
16129
15958
  setup(__props, { expose, emit }) {
@@ -16239,12 +16068,75 @@
16239
16068
  };
16240
16069
  }
16241
16070
  });
16242
- var ElPopperContent = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__file", "content.vue"]]);
16071
+ var ElPopperContent = /* @__PURE__ */ _export_sfc$1(_sfc_main$t, [["__file", "content.vue"]]);
16243
16072
 
16244
16073
  const ElPopper = withInstall(Popper);
16245
16074
 
16246
16075
  const TOOLTIP_INJECTION_KEY = Symbol("elTooltip");
16247
16076
 
16077
+ function useTimeout() {
16078
+ let timeoutHandle;
16079
+ const registerTimeout = (fn, delay) => {
16080
+ cancelTimeout();
16081
+ timeoutHandle = window.setTimeout(fn, delay);
16082
+ };
16083
+ const cancelTimeout = () => window.clearTimeout(timeoutHandle);
16084
+ tryOnScopeDispose(() => cancelTimeout());
16085
+ return {
16086
+ registerTimeout,
16087
+ cancelTimeout
16088
+ };
16089
+ }
16090
+
16091
+ const useDelayedToggleProps = buildProps({
16092
+ showAfter: {
16093
+ type: Number,
16094
+ default: 0
16095
+ },
16096
+ hideAfter: {
16097
+ type: Number,
16098
+ default: 200
16099
+ },
16100
+ autoClose: {
16101
+ type: Number,
16102
+ default: 0
16103
+ }
16104
+ });
16105
+ const useDelayedToggle = ({
16106
+ showAfter,
16107
+ hideAfter,
16108
+ autoClose,
16109
+ open,
16110
+ close
16111
+ }) => {
16112
+ const { registerTimeout } = useTimeout();
16113
+ const {
16114
+ registerTimeout: registerTimeoutForAutoClose,
16115
+ cancelTimeout: cancelTimeoutForAutoClose
16116
+ } = useTimeout();
16117
+ const onOpen = (event) => {
16118
+ registerTimeout(() => {
16119
+ open(event);
16120
+ const _autoClose = vue.unref(autoClose);
16121
+ if (isNumber(_autoClose) && _autoClose > 0) {
16122
+ registerTimeoutForAutoClose(() => {
16123
+ close(event);
16124
+ }, _autoClose);
16125
+ }
16126
+ }, vue.unref(showAfter));
16127
+ };
16128
+ const onClose = (event) => {
16129
+ cancelTimeoutForAutoClose();
16130
+ registerTimeout(() => {
16131
+ close(event);
16132
+ }, vue.unref(hideAfter));
16133
+ };
16134
+ return {
16135
+ onOpen,
16136
+ onClose
16137
+ };
16138
+ };
16139
+
16248
16140
  const useTooltipContentProps = buildProps({
16249
16141
  ...useDelayedToggleProps,
16250
16142
  ...popperContentProps,
@@ -16279,10 +16171,133 @@
16279
16171
  },
16280
16172
  triggerKeys: {
16281
16173
  type: definePropType(Array),
16282
- default: () => [EVENT_CODE.enter, EVENT_CODE.space]
16174
+ default: () => [EVENT_CODE.enter, EVENT_CODE.numpadEnter, EVENT_CODE.space]
16283
16175
  }
16284
16176
  });
16285
16177
 
16178
+ const _prop = buildProp({
16179
+ type: definePropType(Boolean),
16180
+ default: null
16181
+ });
16182
+ const _event = buildProp({
16183
+ type: definePropType(Function)
16184
+ });
16185
+ const createModelToggleComposable = (name) => {
16186
+ const updateEventKey = `update:${name}`;
16187
+ const updateEventKeyRaw = `onUpdate:${name}`;
16188
+ const useModelToggleEmits2 = [updateEventKey];
16189
+ const useModelToggleProps2 = {
16190
+ [name]: _prop,
16191
+ [updateEventKeyRaw]: _event
16192
+ };
16193
+ const useModelToggle2 = ({
16194
+ indicator,
16195
+ toggleReason,
16196
+ shouldHideWhenRouteChanges,
16197
+ shouldProceed,
16198
+ onShow,
16199
+ onHide
16200
+ }) => {
16201
+ const instance = vue.getCurrentInstance();
16202
+ const { emit } = instance;
16203
+ const props = instance.props;
16204
+ const hasUpdateHandler = vue.computed(() => isFunction$1(props[updateEventKeyRaw]));
16205
+ const isModelBindingAbsent = vue.computed(() => props[name] === null);
16206
+ const doShow = (event) => {
16207
+ if (indicator.value === true) {
16208
+ return;
16209
+ }
16210
+ indicator.value = true;
16211
+ if (toggleReason) {
16212
+ toggleReason.value = event;
16213
+ }
16214
+ if (isFunction$1(onShow)) {
16215
+ onShow(event);
16216
+ }
16217
+ };
16218
+ const doHide = (event) => {
16219
+ if (indicator.value === false) {
16220
+ return;
16221
+ }
16222
+ indicator.value = false;
16223
+ if (toggleReason) {
16224
+ toggleReason.value = event;
16225
+ }
16226
+ if (isFunction$1(onHide)) {
16227
+ onHide(event);
16228
+ }
16229
+ };
16230
+ const show = (event) => {
16231
+ if (props.disabled === true || isFunction$1(shouldProceed) && !shouldProceed())
16232
+ return;
16233
+ const shouldEmit = hasUpdateHandler.value && isClient;
16234
+ if (shouldEmit) {
16235
+ emit(updateEventKey, true);
16236
+ }
16237
+ if (isModelBindingAbsent.value || !shouldEmit) {
16238
+ doShow(event);
16239
+ }
16240
+ };
16241
+ const hide = (event) => {
16242
+ if (props.disabled === true || !isClient)
16243
+ return;
16244
+ const shouldEmit = hasUpdateHandler.value && isClient;
16245
+ if (shouldEmit) {
16246
+ emit(updateEventKey, false);
16247
+ }
16248
+ if (isModelBindingAbsent.value || !shouldEmit) {
16249
+ doHide(event);
16250
+ }
16251
+ };
16252
+ const onChange = (val) => {
16253
+ if (!isBoolean(val))
16254
+ return;
16255
+ if (props.disabled && val) {
16256
+ if (hasUpdateHandler.value) {
16257
+ emit(updateEventKey, false);
16258
+ }
16259
+ } else if (indicator.value !== val) {
16260
+ if (val) {
16261
+ doShow();
16262
+ } else {
16263
+ doHide();
16264
+ }
16265
+ }
16266
+ };
16267
+ const toggle = () => {
16268
+ if (indicator.value) {
16269
+ hide();
16270
+ } else {
16271
+ show();
16272
+ }
16273
+ };
16274
+ vue.watch(() => props[name], onChange);
16275
+ if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) {
16276
+ vue.watch(() => ({
16277
+ ...instance.proxy.$route
16278
+ }), () => {
16279
+ if (shouldHideWhenRouteChanges.value && indicator.value) {
16280
+ hide();
16281
+ }
16282
+ });
16283
+ }
16284
+ vue.onMounted(() => {
16285
+ onChange(props[name]);
16286
+ });
16287
+ return {
16288
+ hide,
16289
+ show,
16290
+ toggle,
16291
+ hasUpdateHandler
16292
+ };
16293
+ };
16294
+ return {
16295
+ useModelToggle: useModelToggle2,
16296
+ useModelToggleProps: useModelToggleProps2,
16297
+ useModelToggleEmits: useModelToggleEmits2
16298
+ };
16299
+ };
16300
+
16286
16301
  const {
16287
16302
  useModelToggleProps: useTooltipModelToggleProps,
16288
16303
  useModelToggleEmits: useTooltipModelToggleEmits,
@@ -16321,11 +16336,21 @@
16321
16336
  };
16322
16337
  };
16323
16338
 
16324
- const __default__$i = vue.defineComponent({
16339
+ const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
16340
+ const handleEvent = (event) => {
16341
+ const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event);
16342
+ if (checkForDefaultPrevented === false || !shouldPrevent) {
16343
+ return oursHandler == null ? void 0 : oursHandler(event);
16344
+ }
16345
+ };
16346
+ return handleEvent;
16347
+ };
16348
+
16349
+ const __default__$k = vue.defineComponent({
16325
16350
  name: "ElTooltipTrigger"
16326
16351
  });
16327
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
16328
- ...__default__$i,
16352
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
16353
+ ...__default__$k,
16329
16354
  props: useTooltipTriggerProps,
16330
16355
  setup(__props, { expose }) {
16331
16356
  const props = __props;
@@ -16384,7 +16409,7 @@
16384
16409
  };
16385
16410
  }
16386
16411
  });
16387
- var ElTooltipTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$q, [["__file", "trigger.vue"]]);
16412
+ var ElTooltipTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$s, [["__file", "trigger.vue"]]);
16388
16413
 
16389
16414
  const teleportProps = buildProps({
16390
16415
  to: {
@@ -16394,7 +16419,7 @@
16394
16419
  disabled: Boolean
16395
16420
  });
16396
16421
 
16397
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
16422
+ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
16398
16423
  __name: "teleport",
16399
16424
  props: teleportProps,
16400
16425
  setup(__props) {
@@ -16408,22 +16433,55 @@
16408
16433
  };
16409
16434
  }
16410
16435
  });
16411
- var Teleport = /* @__PURE__ */ _export_sfc$1(_sfc_main$p, [["__file", "teleport.vue"]]);
16436
+ var Teleport = /* @__PURE__ */ _export_sfc$1(_sfc_main$r, [["__file", "teleport.vue"]]);
16412
16437
 
16413
16438
  const ElTeleport = withInstall(Teleport);
16414
16439
 
16415
- const __default__$h = vue.defineComponent({
16440
+ const usePopperContainerId = () => {
16441
+ const namespace = useGetDerivedNamespace();
16442
+ const idInjection = useIdInjection();
16443
+ const id = vue.computed(() => {
16444
+ return `${namespace.value}-popper-container-${idInjection.prefix}`;
16445
+ });
16446
+ const selector = vue.computed(() => `#${id.value}`);
16447
+ return {
16448
+ id,
16449
+ selector
16450
+ };
16451
+ };
16452
+ const createContainer = (id) => {
16453
+ const container = document.createElement("div");
16454
+ container.id = id;
16455
+ document.body.appendChild(container);
16456
+ return container;
16457
+ };
16458
+ const usePopperContainer = () => {
16459
+ const { id, selector } = usePopperContainerId();
16460
+ vue.onBeforeMount(() => {
16461
+ if (!isClient)
16462
+ return;
16463
+ if (!document.body.querySelector(selector.value)) {
16464
+ createContainer(id.value);
16465
+ }
16466
+ });
16467
+ return {
16468
+ id,
16469
+ selector
16470
+ };
16471
+ };
16472
+
16473
+ const __default__$j = vue.defineComponent({
16416
16474
  name: "ElTooltipContent",
16417
16475
  inheritAttrs: false
16418
16476
  });
16419
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
16420
- ...__default__$h,
16477
+ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
16478
+ ...__default__$j,
16421
16479
  props: useTooltipContentProps,
16422
16480
  setup(__props, { expose }) {
16423
16481
  const props = __props;
16424
16482
  const { selector } = usePopperContainerId();
16425
16483
  const ns = useNamespace("tooltip");
16426
- const contentRef = vue.ref(null);
16484
+ const contentRef = vue.ref();
16427
16485
  let stopHandle;
16428
16486
  const {
16429
16487
  controlled,
@@ -16459,9 +16517,11 @@
16459
16517
  var _a;
16460
16518
  return (_a = props.style) != null ? _a : {};
16461
16519
  });
16462
- const ariaHidden = vue.computed(() => !vue.unref(open));
16520
+ const ariaHidden = vue.ref(true);
16463
16521
  const onTransitionLeave = () => {
16464
16522
  onHide();
16523
+ isFocusInsideContent() && tryFocus(document.body);
16524
+ ariaHidden.value = true;
16465
16525
  };
16466
16526
  const stopWhenControlled = () => {
16467
16527
  if (vue.unref(controlled))
@@ -16504,9 +16564,17 @@
16504
16564
  onClose();
16505
16565
  }
16506
16566
  };
16567
+ const isFocusInsideContent = (event) => {
16568
+ var _a;
16569
+ const popperContent = (_a = contentRef.value) == null ? void 0 : _a.popperContentRef;
16570
+ const activeElement = (event == null ? void 0 : event.relatedTarget) || document.activeElement;
16571
+ return popperContent == null ? void 0 : popperContent.contains(activeElement);
16572
+ };
16507
16573
  vue.watch(() => vue.unref(open), (val) => {
16508
16574
  if (!val) {
16509
16575
  stopHandle == null ? void 0 : stopHandle();
16576
+ } else {
16577
+ ariaHidden.value = false;
16510
16578
  }
16511
16579
  }, {
16512
16580
  flush: "post"
@@ -16516,7 +16584,8 @@
16516
16584
  (_b = (_a = contentRef.value) == null ? void 0 : _a.updatePopper) == null ? void 0 : _b.call(_a);
16517
16585
  });
16518
16586
  expose({
16519
- contentRef
16587
+ contentRef,
16588
+ isFocusInsideContent
16520
16589
  });
16521
16590
  return (_ctx, _cache) => {
16522
16591
  return vue.openBlock(), vue.createBlock(vue.unref(ElTeleport), {
@@ -16539,7 +16608,7 @@
16539
16608
  ref: contentRef
16540
16609
  }, _ctx.$attrs, {
16541
16610
  "aria-label": _ctx.ariaLabel,
16542
- "aria-hidden": vue.unref(ariaHidden),
16611
+ "aria-hidden": ariaHidden.value,
16543
16612
  "boundaries-padding": _ctx.boundariesPadding,
16544
16613
  "fallback-placements": _ctx.fallbackPlacements,
16545
16614
  "gpu-acceleration": _ctx.gpuAcceleration,
@@ -16577,13 +16646,13 @@
16577
16646
  };
16578
16647
  }
16579
16648
  });
16580
- var ElTooltipContent = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__file", "content.vue"]]);
16649
+ var ElTooltipContent = /* @__PURE__ */ _export_sfc$1(_sfc_main$q, [["__file", "content.vue"]]);
16581
16650
 
16582
- const __default__$g = vue.defineComponent({
16651
+ const __default__$i = vue.defineComponent({
16583
16652
  name: "ElTooltip"
16584
16653
  });
16585
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
16586
- ...__default__$g,
16654
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
16655
+ ...__default__$i,
16587
16656
  props: useTooltipProps,
16588
16657
  emits: tooltipEmits,
16589
16658
  setup(__props, { expose, emit }) {
@@ -16651,10 +16720,8 @@
16651
16720
  }
16652
16721
  });
16653
16722
  const isFocusInsideContent = (event) => {
16654
- var _a, _b;
16655
- const popperContent = (_b = (_a = contentRef.value) == null ? void 0 : _a.contentRef) == null ? void 0 : _b.popperContentRef;
16656
- const activeElement = (event == null ? void 0 : event.relatedTarget) || document.activeElement;
16657
- return popperContent && popperContent.contains(activeElement);
16723
+ var _a;
16724
+ return (_a = contentRef.value) == null ? void 0 : _a.isFocusInsideContent(event);
16658
16725
  };
16659
16726
  vue.onDeactivated(() => open.value && hide());
16660
16727
  expose({
@@ -16735,12 +16802,19 @@
16735
16802
  };
16736
16803
  }
16737
16804
  });
16738
- var Tooltip$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$n, [["__file", "tooltip.vue"]]);
16805
+ var Tooltip$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$p, [["__file", "tooltip.vue"]]);
16739
16806
 
16740
16807
  const ElTooltip = withInstall(Tooltip$1);
16741
16808
 
16742
16809
  const buttonGroupContextKey = Symbol("buttonGroupContextKey");
16743
16810
 
16811
+ const useDeprecated = ({ from, replacement, scope, version, ref, type = "API" }, condition) => {
16812
+ vue.watch(() => vue.unref(condition), (val) => {
16813
+ }, {
16814
+ immediate: true
16815
+ });
16816
+ };
16817
+
16744
16818
  const useButton = (props, emit) => {
16745
16819
  useDeprecated({
16746
16820
  from: "type.text",
@@ -17802,11 +17876,11 @@
17802
17876
  });
17803
17877
  }
17804
17878
 
17805
- const __default__$f = vue.defineComponent({
17879
+ const __default__$h = vue.defineComponent({
17806
17880
  name: "ElButton"
17807
17881
  });
17808
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
17809
- ...__default__$f,
17882
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
17883
+ ...__default__$h,
17810
17884
  props: buttonProps,
17811
17885
  emits: buttonEmits,
17812
17886
  setup(__props, { expose, emit }) {
@@ -17872,18 +17946,18 @@
17872
17946
  };
17873
17947
  }
17874
17948
  });
17875
- var Button = /* @__PURE__ */ _export_sfc$1(_sfc_main$m, [["__file", "button.vue"]]);
17949
+ var Button = /* @__PURE__ */ _export_sfc$1(_sfc_main$o, [["__file", "button.vue"]]);
17876
17950
 
17877
17951
  const buttonGroupProps = {
17878
17952
  size: buttonProps.size,
17879
17953
  type: buttonProps.type
17880
17954
  };
17881
17955
 
17882
- const __default__$e = vue.defineComponent({
17956
+ const __default__$g = vue.defineComponent({
17883
17957
  name: "ElButtonGroup"
17884
17958
  });
17885
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
17886
- ...__default__$e,
17959
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
17960
+ ...__default__$g,
17887
17961
  props: buttonGroupProps,
17888
17962
  setup(__props) {
17889
17963
  const props = __props;
@@ -17901,7 +17975,7 @@
17901
17975
  };
17902
17976
  }
17903
17977
  });
17904
- var ButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$l, [["__file", "button-group.vue"]]);
17978
+ var ButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$n, [["__file", "button-group.vue"]]);
17905
17979
 
17906
17980
  const ElButton = withInstall(Button, {
17907
17981
  ButtonGroup
@@ -17910,110 +17984,7 @@
17910
17984
 
17911
17985
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
17912
17986
 
17913
- const nodeList$1 = /* @__PURE__ */ new Map();
17914
- if (isClient) {
17915
- let startClick;
17916
- document.addEventListener("mousedown", (e) => startClick = e);
17917
- document.addEventListener("mouseup", (e) => {
17918
- if (startClick) {
17919
- for (const handlers of nodeList$1.values()) {
17920
- for (const { documentHandler } of handlers) {
17921
- documentHandler(e, startClick);
17922
- }
17923
- }
17924
- startClick = void 0;
17925
- }
17926
- });
17927
- }
17928
- function createDocumentHandler$1(el, binding) {
17929
- let excludes = [];
17930
- if (Array.isArray(binding.arg)) {
17931
- excludes = binding.arg;
17932
- } else if (isElement(binding.arg)) {
17933
- excludes.push(binding.arg);
17934
- }
17935
- return function(mouseup, mousedown) {
17936
- const popperRef = binding.instance.popperRef;
17937
- const mouseUpTarget = mouseup.target;
17938
- const mouseDownTarget = mousedown == null ? void 0 : mousedown.target;
17939
- const isBound = !binding || !binding.instance;
17940
- const isTargetExists = !mouseUpTarget || !mouseDownTarget;
17941
- const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget);
17942
- const isSelf = el === mouseUpTarget;
17943
- const isTargetExcluded = excludes.length && excludes.some((item) => item == null ? void 0 : item.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget);
17944
- const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget));
17945
- if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) {
17946
- return;
17947
- }
17948
- binding.value(mouseup, mousedown);
17949
- };
17950
- }
17951
- const ClickOutside = {
17952
- beforeMount(el, binding) {
17953
- if (!nodeList$1.has(el)) {
17954
- nodeList$1.set(el, []);
17955
- }
17956
- nodeList$1.get(el).push({
17957
- documentHandler: createDocumentHandler$1(el, binding),
17958
- bindingFn: binding.value
17959
- });
17960
- },
17961
- updated(el, binding) {
17962
- if (!nodeList$1.has(el)) {
17963
- nodeList$1.set(el, []);
17964
- }
17965
- const handlers = nodeList$1.get(el);
17966
- const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
17967
- const newHandler = {
17968
- documentHandler: createDocumentHandler$1(el, binding),
17969
- bindingFn: binding.value
17970
- };
17971
- if (oldHandlerIndex >= 0) {
17972
- handlers.splice(oldHandlerIndex, 1, newHandler);
17973
- } else {
17974
- handlers.push(newHandler);
17975
- }
17976
- },
17977
- unmounted(el) {
17978
- nodeList$1.delete(el);
17979
- }
17980
- };
17981
-
17982
- const REPEAT_INTERVAL = 100;
17983
- const REPEAT_DELAY = 600;
17984
- const vRepeatClick = {
17985
- beforeMount(el, binding) {
17986
- const value = binding.value;
17987
- const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction$1(value) ? {} : value;
17988
- let intervalId;
17989
- let delayId;
17990
- const handler = () => isFunction$1(value) ? value() : value.handler();
17991
- const clear = () => {
17992
- if (delayId) {
17993
- clearTimeout(delayId);
17994
- delayId = void 0;
17995
- }
17996
- if (intervalId) {
17997
- clearInterval(intervalId);
17998
- intervalId = void 0;
17999
- }
18000
- };
18001
- el.addEventListener("mousedown", (evt) => {
18002
- if (evt.button !== 0)
18003
- return;
18004
- clear();
18005
- handler();
18006
- document.addEventListener("mouseup", () => clear(), {
18007
- once: true
18008
- });
18009
- delayId = setTimeout(() => {
18010
- intervalId = setInterval(() => {
18011
- handler();
18012
- }, interval);
18013
- }, delay);
18014
- });
18015
- }
18016
- };
17987
+ const escapeStringRegexp = (string = "") => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
18017
17988
 
18018
17989
  const tagProps = buildProps({
18019
17990
  type: {
@@ -18041,11 +18012,11 @@
18041
18012
  click: (evt) => evt instanceof MouseEvent
18042
18013
  };
18043
18014
 
18044
- const __default__$d = vue.defineComponent({
18015
+ const __default__$f = vue.defineComponent({
18045
18016
  name: "ElTag"
18046
18017
  });
18047
- const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
18048
- ...__default__$d,
18018
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
18019
+ ...__default__$f,
18049
18020
  props: tagProps,
18050
18021
  emits: tagEmits,
18051
18022
  setup(__props, { emit }) {
@@ -18071,7 +18042,10 @@
18071
18042
  emit("click", event);
18072
18043
  };
18073
18044
  const handleVNodeMounted = (vnode) => {
18074
- vnode.component.subTree.component.bum = null;
18045
+ var _a, _b, _c;
18046
+ 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) {
18047
+ vnode.component.subTree.component.bum = null;
18048
+ }
18075
18049
  };
18076
18050
  return (_ctx, _cache) => {
18077
18051
  return _ctx.disableTransitions ? (vue.openBlock(), vue.createElementBlock("span", {
@@ -18129,26 +18103,131 @@
18129
18103
  };
18130
18104
  }
18131
18105
  });
18132
- var Tag = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["__file", "tag.vue"]]);
18106
+ var Tag = /* @__PURE__ */ _export_sfc$1(_sfc_main$m, [["__file", "tag.vue"]]);
18133
18107
 
18134
18108
  const ElTag = withInstall(Tag);
18135
18109
 
18136
- const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
18110
+ const nodeList$1 = /* @__PURE__ */ new Map();
18111
+ if (isClient) {
18112
+ let startClick;
18113
+ document.addEventListener("mousedown", (e) => startClick = e);
18114
+ document.addEventListener("mouseup", (e) => {
18115
+ if (startClick) {
18116
+ for (const handlers of nodeList$1.values()) {
18117
+ for (const { documentHandler } of handlers) {
18118
+ documentHandler(e, startClick);
18119
+ }
18120
+ }
18121
+ startClick = void 0;
18122
+ }
18123
+ });
18124
+ }
18125
+ function createDocumentHandler$1(el, binding) {
18126
+ let excludes = [];
18127
+ if (isArray$1(binding.arg)) {
18128
+ excludes = binding.arg;
18129
+ } else if (isElement(binding.arg)) {
18130
+ excludes.push(binding.arg);
18131
+ }
18132
+ return function(mouseup, mousedown) {
18133
+ const popperRef = binding.instance.popperRef;
18134
+ const mouseUpTarget = mouseup.target;
18135
+ const mouseDownTarget = mousedown == null ? void 0 : mousedown.target;
18136
+ const isBound = !binding || !binding.instance;
18137
+ const isTargetExists = !mouseUpTarget || !mouseDownTarget;
18138
+ const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget);
18139
+ const isSelf = el === mouseUpTarget;
18140
+ const isTargetExcluded = excludes.length && excludes.some((item) => item == null ? void 0 : item.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget);
18141
+ const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget));
18142
+ if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) {
18143
+ return;
18144
+ }
18145
+ binding.value(mouseup, mousedown);
18146
+ };
18147
+ }
18148
+ const ClickOutside = {
18149
+ beforeMount(el, binding) {
18150
+ if (!nodeList$1.has(el)) {
18151
+ nodeList$1.set(el, []);
18152
+ }
18153
+ nodeList$1.get(el).push({
18154
+ documentHandler: createDocumentHandler$1(el, binding),
18155
+ bindingFn: binding.value
18156
+ });
18157
+ },
18158
+ updated(el, binding) {
18159
+ if (!nodeList$1.has(el)) {
18160
+ nodeList$1.set(el, []);
18161
+ }
18162
+ const handlers = nodeList$1.get(el);
18163
+ const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
18164
+ const newHandler = {
18165
+ documentHandler: createDocumentHandler$1(el, binding),
18166
+ bindingFn: binding.value
18167
+ };
18168
+ if (oldHandlerIndex >= 0) {
18169
+ handlers.splice(oldHandlerIndex, 1, newHandler);
18170
+ } else {
18171
+ handlers.push(newHandler);
18172
+ }
18173
+ },
18174
+ unmounted(el) {
18175
+ nodeList$1.delete(el);
18176
+ }
18177
+ };
18178
+
18179
+ const REPEAT_INTERVAL = 100;
18180
+ const REPEAT_DELAY = 600;
18181
+ const vRepeatClick = {
18182
+ beforeMount(el, binding) {
18183
+ const value = binding.value;
18184
+ const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction$1(value) ? {} : value;
18185
+ let intervalId;
18186
+ let delayId;
18187
+ const handler = () => isFunction$1(value) ? value() : value.handler();
18188
+ const clear = () => {
18189
+ if (delayId) {
18190
+ clearTimeout(delayId);
18191
+ delayId = void 0;
18192
+ }
18193
+ if (intervalId) {
18194
+ clearInterval(intervalId);
18195
+ intervalId = void 0;
18196
+ }
18197
+ };
18198
+ el.addEventListener("mousedown", (evt) => {
18199
+ if (evt.button !== 0)
18200
+ return;
18201
+ clear();
18202
+ handler();
18203
+ document.addEventListener("mouseup", () => clear(), {
18204
+ once: true
18205
+ });
18206
+ delayId = setTimeout(() => {
18207
+ intervalId = setInterval(() => {
18208
+ handler();
18209
+ }, interval);
18210
+ }, delay);
18211
+ });
18212
+ }
18213
+ };
18214
+
18215
+ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
18137
18216
  inheritAttrs: false
18138
18217
  });
18139
18218
  function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
18140
18219
  return vue.renderSlot(_ctx.$slots, "default");
18141
18220
  }
18142
- var Collection = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["render", _sfc_render$5], ["__file", "collection.vue"]]);
18221
+ var Collection = /* @__PURE__ */ _export_sfc$1(_sfc_main$l, [["render", _sfc_render$5], ["__file", "collection.vue"]]);
18143
18222
 
18144
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
18223
+ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
18145
18224
  name: "ElCollectionItem",
18146
18225
  inheritAttrs: false
18147
18226
  });
18148
18227
  function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
18149
18228
  return vue.renderSlot(_ctx.$slots, "default");
18150
18229
  }
18151
- var CollectionItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["render", _sfc_render$4], ["__file", "collection-item.vue"]]);
18230
+ var CollectionItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$k, [["render", _sfc_render$4], ["__file", "collection-item.vue"]]);
18152
18231
 
18153
18232
  const COLLECTION_ITEM_SIGN = `data-el-collection-item`;
18154
18233
  const createCollectionWithScope = (name) => {
@@ -18211,6 +18290,15 @@
18211
18290
 
18212
18291
  const dropdownProps = buildProps({
18213
18292
  trigger: useTooltipTriggerProps.trigger,
18293
+ triggerKeys: {
18294
+ type: definePropType(Array),
18295
+ default: () => [
18296
+ EVENT_CODE.enter,
18297
+ EVENT_CODE.numpadEnter,
18298
+ EVENT_CODE.space,
18299
+ EVENT_CODE.down
18300
+ ]
18301
+ },
18214
18302
  effect: {
18215
18303
  ...useTooltipContentProps.effect,
18216
18304
  default: "light"
@@ -18349,11 +18437,11 @@
18349
18437
  [UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val)
18350
18438
  };
18351
18439
 
18352
- const __default__$c = vue.defineComponent({
18440
+ const __default__$e = vue.defineComponent({
18353
18441
  name: "ElInputNumber"
18354
18442
  });
18355
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
18356
- ...__default__$c,
18443
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
18444
+ ...__default__$e,
18357
18445
  props: inputNumberProps,
18358
18446
  emits: inputNumberEmits,
18359
18447
  setup(__props, { expose, emit }) {
@@ -18468,6 +18556,9 @@
18468
18556
  }
18469
18557
  if (stepStrictly) {
18470
18558
  newVal = toPrecision(Math.round(newVal / step) * step, precision);
18559
+ if (newVal !== value) {
18560
+ update && emit(UPDATE_MODEL_EVENT, newVal);
18561
+ }
18471
18562
  }
18472
18563
  if (!isUndefined(precision)) {
18473
18564
  newVal = toPrecision(newVal, precision);
@@ -18524,11 +18615,14 @@
18524
18615
  emit("focus", event);
18525
18616
  };
18526
18617
  const handleBlur = (event) => {
18527
- var _a;
18618
+ var _a, _b;
18528
18619
  data.userInput = null;
18620
+ if (isFirefox() && data.currentValue === null && ((_a = input.value) == null ? void 0 : _a.input)) {
18621
+ input.value.input.value = "";
18622
+ }
18529
18623
  emit("blur", event);
18530
18624
  if (props.validateEvent) {
18531
- (_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "blur").catch((err) => debugWarn());
18625
+ (_b = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _b.call(formItem, "blur").catch((err) => debugWarn());
18532
18626
  }
18533
18627
  };
18534
18628
  const setCurrentValueToModelValue = () => {
@@ -18653,15 +18747,121 @@
18653
18747
  onFocus: handleFocus,
18654
18748
  onInput: handleInput,
18655
18749
  onChange: handleInputChange
18656
- }, null, 8, ["id", "step", "model-value", "placeholder", "readonly", "disabled", "size", "max", "min", "name", "aria-label", "onKeydown"])
18750
+ }, vue.createSlots({
18751
+ _: 2
18752
+ }, [
18753
+ _ctx.$slots.prefix ? {
18754
+ name: "prefix",
18755
+ fn: vue.withCtx(() => [
18756
+ vue.renderSlot(_ctx.$slots, "prefix")
18757
+ ])
18758
+ } : void 0,
18759
+ _ctx.$slots.suffix ? {
18760
+ name: "suffix",
18761
+ fn: vue.withCtx(() => [
18762
+ vue.renderSlot(_ctx.$slots, "suffix")
18763
+ ])
18764
+ } : void 0
18765
+ ]), 1032, ["id", "step", "model-value", "placeholder", "readonly", "disabled", "size", "max", "min", "name", "aria-label", "onKeydown"])
18657
18766
  ], 42, ["onDragstart"]);
18658
18767
  };
18659
18768
  }
18660
18769
  });
18661
- var InputNumber = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["__file", "input-number.vue"]]);
18770
+ var InputNumber = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__file", "input-number.vue"]]);
18662
18771
 
18663
18772
  const ElInputNumber = withInstall(InputNumber);
18664
18773
 
18774
+ function useCalcInputWidth() {
18775
+ const calculatorRef = vue.shallowRef();
18776
+ const calculatorWidth = vue.ref(0);
18777
+ const MINIMUM_INPUT_WIDTH = 11;
18778
+ const inputStyle = vue.computed(() => ({
18779
+ minWidth: `${Math.max(calculatorWidth.value, MINIMUM_INPUT_WIDTH)}px`
18780
+ }));
18781
+ const resetCalculatorWidth = () => {
18782
+ var _a, _b;
18783
+ calculatorWidth.value = (_b = (_a = calculatorRef.value) == null ? void 0 : _a.getBoundingClientRect().width) != null ? _b : 0;
18784
+ };
18785
+ useResizeObserver(calculatorRef, resetCalculatorWidth);
18786
+ return {
18787
+ calculatorRef,
18788
+ calculatorWidth,
18789
+ inputStyle
18790
+ };
18791
+ }
18792
+
18793
+ const linkProps = buildProps({
18794
+ type: {
18795
+ type: String,
18796
+ values: ["primary", "success", "warning", "info", "danger", "default"],
18797
+ default: "default"
18798
+ },
18799
+ underline: {
18800
+ type: Boolean,
18801
+ default: true
18802
+ },
18803
+ disabled: Boolean,
18804
+ href: { type: String, default: "" },
18805
+ target: {
18806
+ type: String,
18807
+ default: "_self"
18808
+ },
18809
+ icon: {
18810
+ type: iconPropType
18811
+ }
18812
+ });
18813
+ const linkEmits = {
18814
+ click: (evt) => evt instanceof MouseEvent
18815
+ };
18816
+
18817
+ const __default__$d = vue.defineComponent({
18818
+ name: "ElLink"
18819
+ });
18820
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
18821
+ ...__default__$d,
18822
+ props: linkProps,
18823
+ emits: linkEmits,
18824
+ setup(__props, { emit }) {
18825
+ const props = __props;
18826
+ const ns = useNamespace("link");
18827
+ const linkKls = vue.computed(() => [
18828
+ ns.b(),
18829
+ ns.m(props.type),
18830
+ ns.is("disabled", props.disabled),
18831
+ ns.is("underline", props.underline && !props.disabled)
18832
+ ]);
18833
+ function handleClick(event) {
18834
+ if (!props.disabled)
18835
+ emit("click", event);
18836
+ }
18837
+ return (_ctx, _cache) => {
18838
+ return vue.openBlock(), vue.createElementBlock("a", {
18839
+ class: vue.normalizeClass(vue.unref(linkKls)),
18840
+ href: _ctx.disabled || !_ctx.href ? void 0 : _ctx.href,
18841
+ target: _ctx.disabled || !_ctx.href ? void 0 : _ctx.target,
18842
+ onClick: handleClick
18843
+ }, [
18844
+ _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(ElIcon), { key: 0 }, {
18845
+ default: vue.withCtx(() => [
18846
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.icon)))
18847
+ ]),
18848
+ _: 1
18849
+ })) : vue.createCommentVNode("v-if", true),
18850
+ _ctx.$slots.default ? (vue.openBlock(), vue.createElementBlock("span", {
18851
+ key: 1,
18852
+ class: vue.normalizeClass(vue.unref(ns).e("inner"))
18853
+ }, [
18854
+ vue.renderSlot(_ctx.$slots, "default")
18855
+ ], 2)) : vue.createCommentVNode("v-if", true),
18856
+ _ctx.$slots.icon ? vue.renderSlot(_ctx.$slots, "icon", { key: 2 }) : vue.createCommentVNode("v-if", true)
18857
+ ], 10, ["href", "target"]);
18858
+ };
18859
+ }
18860
+ });
18861
+ var Link = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__file", "link.vue"]]);
18862
+
18863
+ const ElLink = withInstall(Link);
18864
+
18665
18865
  const selectGroupKey = Symbol("ElSelectGroup");
18666
18866
  const selectKey = Symbol("ElSelect");
18667
18867
 
@@ -18740,7 +18940,7 @@
18740
18940
  };
18741
18941
  }
18742
18942
 
18743
- const _sfc_main$g = vue.defineComponent({
18943
+ const _sfc_main$h = vue.defineComponent({
18744
18944
  name: "ElOption",
18745
18945
  componentName: "ElOption",
18746
18946
  props: {
@@ -18780,8 +18980,7 @@
18780
18980
  select.onOptionCreate(vm);
18781
18981
  vue.onBeforeUnmount(() => {
18782
18982
  const key = vm.value;
18783
- const { selected } = select.states;
18784
- const selectedOptions = select.props.multiple ? selected : [selected];
18983
+ const { selected: selectedOptions } = select.states;
18785
18984
  const doesSelected = selectedOptions.some((item) => {
18786
18985
  return item.value === vm.value;
18787
18986
  });
@@ -18821,19 +19020,19 @@
18821
19020
  role: "option",
18822
19021
  "aria-disabled": _ctx.isDisabled || void 0,
18823
19022
  "aria-selected": _ctx.itemSelected,
18824
- onMouseenter: _ctx.hoverItem,
19023
+ onMousemove: _ctx.hoverItem,
18825
19024
  onClick: vue.withModifiers(_ctx.selectOptionClick, ["stop"])
18826
19025
  }, [
18827
19026
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
18828
19027
  vue.createElementVNode("span", null, vue.toDisplayString(_ctx.currentLabel), 1)
18829
19028
  ])
18830
- ], 42, ["id", "aria-disabled", "aria-selected", "onMouseenter", "onClick"])), [
19029
+ ], 42, ["id", "aria-disabled", "aria-selected", "onMousemove", "onClick"])), [
18831
19030
  [vue.vShow, _ctx.visible]
18832
19031
  ]);
18833
19032
  }
18834
- var Option = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["render", _sfc_render$3], ["__file", "option.vue"]]);
19033
+ var Option = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["render", _sfc_render$3], ["__file", "option.vue"]]);
18835
19034
 
18836
- const _sfc_main$f = vue.defineComponent({
19035
+ const _sfc_main$g = vue.defineComponent({
18837
19036
  name: "ElSelectDropdown",
18838
19037
  componentName: "ElSelectDropdown",
18839
19038
  setup() {
@@ -18880,9 +19079,8 @@
18880
19079
  ], 2)) : vue.createCommentVNode("v-if", true)
18881
19080
  ], 6);
18882
19081
  }
18883
- var ElSelectMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["render", _sfc_render$2], ["__file", "select-dropdown.vue"]]);
19082
+ var ElSelectMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["render", _sfc_render$2], ["__file", "select-dropdown.vue"]]);
18884
19083
 
18885
- const MINIMUM_INPUT_WIDTH = 11;
18886
19084
  const useSelect = (props, emit) => {
18887
19085
  const { t } = useLocale();
18888
19086
  const contentId = useId();
@@ -18892,11 +19090,9 @@
18892
19090
  inputValue: "",
18893
19091
  options: /* @__PURE__ */ new Map(),
18894
19092
  cachedOptions: /* @__PURE__ */ new Map(),
18895
- disabledOptions: /* @__PURE__ */ new Map(),
18896
19093
  optionValues: [],
18897
19094
  selected: [],
18898
19095
  selectionWidth: 0,
18899
- calculatorWidth: 0,
18900
19096
  collapseItemWidth: 0,
18901
19097
  selectedLabel: "",
18902
19098
  hoveringIndex: -1,
@@ -18910,7 +19106,6 @@
18910
19106
  const tooltipRef = vue.ref(null);
18911
19107
  const tagTooltipRef = vue.ref(null);
18912
19108
  const inputRef = vue.ref(null);
18913
- const calculatorRef = vue.ref(null);
18914
19109
  const prefixRef = vue.ref(null);
18915
19110
  const suffixRef = vue.ref(null);
18916
19111
  const menuRef = vue.ref(null);
@@ -18925,7 +19120,7 @@
18925
19120
  } = useComposition({
18926
19121
  afterComposition: (e) => onInput(e)
18927
19122
  });
18928
- const { wrapperRef, isFocused } = useFocusController(inputRef, {
19123
+ const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, {
18929
19124
  beforeFocus() {
18930
19125
  return selectDisabled.value;
18931
19126
  },
@@ -18955,6 +19150,10 @@
18955
19150
  const hasModelValue = vue.computed(() => {
18956
19151
  return isArray$1(props.modelValue) ? props.modelValue.length > 0 : !isEmptyValue(props.modelValue);
18957
19152
  });
19153
+ const needStatusIcon = vue.computed(() => {
19154
+ var _a;
19155
+ return (_a = form == null ? void 0 : form.statusIcon) != null ? _a : false;
19156
+ });
18958
19157
  const showClose = vue.computed(() => {
18959
19158
  return props.clearable && !selectDisabled.value && states.inputHovering && hasModelValue.value;
18960
19159
  });
@@ -18963,12 +19162,11 @@
18963
19162
  const validateState = vue.computed(() => (formItem == null ? void 0 : formItem.validateState) || "");
18964
19163
  const validateIcon = vue.computed(() => ValidateComponentsMap[validateState.value]);
18965
19164
  const debounce$1 = vue.computed(() => props.remote ? 300 : 0);
19165
+ const isRemoteSearchEmpty = vue.computed(() => props.remote && !states.inputValue && states.options.size === 0);
18966
19166
  const emptyText = vue.computed(() => {
18967
19167
  if (props.loading) {
18968
19168
  return props.loadingText || t("el.select.loading");
18969
19169
  } else {
18970
- if (props.remote && !states.inputValue && states.options.size === 0)
18971
- return false;
18972
19170
  if (props.filterable && states.inputValue && states.options.size > 0 && filteredOptionsCount.value === 0) {
18973
19171
  return props.noMatchText || t("el.select.noMatch");
18974
19172
  }
@@ -19013,7 +19211,7 @@
19013
19211
  const collapseTagSize = vue.computed(() => ["small"].includes(selectSize.value) ? "small" : "default");
19014
19212
  const dropdownMenuVisible = vue.computed({
19015
19213
  get() {
19016
- return expanded.value && emptyText.value !== false;
19214
+ return expanded.value && !isRemoteSearchEmpty.value;
19017
19215
  },
19018
19216
  set(val) {
19019
19217
  expanded.value = val;
@@ -19058,13 +19256,9 @@
19058
19256
  emit("visible-change", val);
19059
19257
  });
19060
19258
  vue.watch(() => states.options.entries(), () => {
19061
- var _a;
19062
19259
  if (!isClient)
19063
19260
  return;
19064
- const inputs = ((_a = selectRef.value) == null ? void 0 : _a.querySelectorAll("input")) || [];
19065
- if (!props.filterable && !props.defaultFirstOption && !isUndefined(props.modelValue) || !Array.from(inputs).includes(document.activeElement)) {
19066
- setSelected();
19067
- }
19261
+ setSelected();
19068
19262
  if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptionsCount.value) {
19069
19263
  checkDefaultFirstOption();
19070
19264
  }
@@ -19106,7 +19300,8 @@
19106
19300
  const optionsInDropdown = optionsArray.value.filter((n) => n.visible && !n.disabled && !n.states.groupDisabled);
19107
19301
  const userCreatedOption = optionsInDropdown.find((n) => n.created);
19108
19302
  const firstOriginOption = optionsInDropdown[0];
19109
- states.hoveringIndex = getValueIndex(optionsArray.value, userCreatedOption || firstOriginOption);
19303
+ const valueList = optionsArray.value.map((item) => item.value);
19304
+ states.hoveringIndex = getValueIndex(valueList, userCreatedOption || firstOriginOption);
19110
19305
  };
19111
19306
  const setSelected = () => {
19112
19307
  if (!props.multiple) {
@@ -19128,9 +19323,7 @@
19128
19323
  };
19129
19324
  const getOption = (value) => {
19130
19325
  let option;
19131
- const isObjectValue = toRawType(value).toLowerCase() === "object";
19132
- const isNull = toRawType(value).toLowerCase() === "null";
19133
- const isUndefined2 = toRawType(value).toLowerCase() === "undefined";
19326
+ const isObjectValue = isPlainObject$1(value);
19134
19327
  for (let i = states.cachedOptions.size - 1; i >= 0; i--) {
19135
19328
  const cachedOption = cachedOptionsArray.value[i];
19136
19329
  const isEqualValue = isObjectValue ? get(cachedOption.value, props.valueKey) === get(value, props.valueKey) : cachedOption.value === value;
@@ -19147,7 +19340,7 @@
19147
19340
  }
19148
19341
  if (option)
19149
19342
  return option;
19150
- const label = isObjectValue ? value.label : !isNull && !isUndefined2 ? value : "";
19343
+ const label = isObjectValue ? value.label : value != null ? value : "";
19151
19344
  const newOption = {
19152
19345
  value,
19153
19346
  currentLabel: label
@@ -19160,9 +19353,6 @@
19160
19353
  const resetSelectionWidth = () => {
19161
19354
  states.selectionWidth = selectionRef.value.getBoundingClientRect().width;
19162
19355
  };
19163
- const resetCalculatorWidth = () => {
19164
- states.calculatorWidth = calculatorRef.value.getBoundingClientRect().width;
19165
- };
19166
19356
  const resetCollapseItemWidth = () => {
19167
19357
  states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width;
19168
19358
  };
@@ -19196,7 +19386,10 @@
19196
19386
  emit(CHANGE_EVENT, val);
19197
19387
  }
19198
19388
  };
19199
- const getLastNotDisabledIndex = (value) => findLastIndex(value, (it) => !states.disabledOptions.has(it));
19389
+ const getLastNotDisabledIndex = (value) => findLastIndex(value, (it) => {
19390
+ const option = states.cachedOptions.get(it);
19391
+ return option && !option.disabled && !option.states.groupDisabled;
19392
+ });
19200
19393
  const deletePrevTag = (e) => {
19201
19394
  if (!props.multiple)
19202
19395
  return;
@@ -19246,7 +19439,7 @@
19246
19439
  var _a;
19247
19440
  if (props.multiple) {
19248
19441
  const value = castArray((_a = props.modelValue) != null ? _a : []).slice();
19249
- const optionIndex = getValueIndex(value, option.value);
19442
+ const optionIndex = getValueIndex(value, option);
19250
19443
  if (optionIndex > -1) {
19251
19444
  value.splice(optionIndex, 1);
19252
19445
  } else if (props.multipleLimit <= 0 || value.length < props.multipleLimit) {
@@ -19272,19 +19465,14 @@
19272
19465
  scrollToOption(option);
19273
19466
  });
19274
19467
  };
19275
- const getValueIndex = (arr = [], value) => {
19276
- if (!isObject$1(value))
19277
- return arr.indexOf(value);
19278
- const valueKey = props.valueKey;
19279
- let index = -1;
19280
- arr.some((item, i) => {
19281
- if (vue.toRaw(get(item, valueKey)) === get(value, valueKey)) {
19282
- index = i;
19283
- return true;
19284
- }
19285
- return false;
19468
+ const getValueIndex = (arr = [], option) => {
19469
+ if (isUndefined(option))
19470
+ return -1;
19471
+ if (!isObject$1(option.value))
19472
+ return arr.indexOf(option.value);
19473
+ return arr.findIndex((item) => {
19474
+ return isEqual(get(item, props.valueKey), getValueKey(option));
19286
19475
  });
19287
- return index;
19288
19476
  };
19289
19477
  const scrollToOption = (option) => {
19290
19478
  var _a, _b, _c, _d, _e;
@@ -19307,7 +19495,6 @@
19307
19495
  const onOptionCreate = (vm) => {
19308
19496
  states.options.set(vm.value, vm);
19309
19497
  states.cachedOptions.set(vm.value, vm);
19310
- vm.disabled && states.disabledOptions.set(vm.value, vm);
19311
19498
  };
19312
19499
  const onOptionDestroy = (key, vm) => {
19313
19500
  if (states.options.get(key) === vm) {
@@ -19328,14 +19515,25 @@
19328
19515
  };
19329
19516
  const blur = () => {
19330
19517
  var _a;
19518
+ if (expanded.value) {
19519
+ expanded.value = false;
19520
+ vue.nextTick(() => {
19521
+ var _a2;
19522
+ return (_a2 = inputRef.value) == null ? void 0 : _a2.blur();
19523
+ });
19524
+ return;
19525
+ }
19331
19526
  (_a = inputRef.value) == null ? void 0 : _a.blur();
19332
19527
  };
19333
19528
  const handleClearClick = (event) => {
19334
19529
  deleteSelected(event);
19335
19530
  };
19336
- const handleClickOutside = () => {
19531
+ const handleClickOutside = (event) => {
19337
19532
  expanded.value = false;
19338
- isFocused.value && blur();
19533
+ if (isFocused.value) {
19534
+ const _event = new FocusEvent("focus", event);
19535
+ vue.nextTick(() => handleBlur(_event));
19536
+ }
19339
19537
  };
19340
19538
  const handleEsc = () => {
19341
19539
  if (states.inputValue.length > 0) {
@@ -19359,15 +19557,16 @@
19359
19557
  if (!expanded.value) {
19360
19558
  toggleMenu();
19361
19559
  } else {
19362
- if (optionsArray.value[states.hoveringIndex]) {
19363
- handleOptionSelect(optionsArray.value[states.hoveringIndex]);
19560
+ const option = optionsArray.value[states.hoveringIndex];
19561
+ if (option && !option.isDisabled) {
19562
+ handleOptionSelect(option);
19364
19563
  }
19365
19564
  }
19366
19565
  };
19367
19566
  const getValueKey = (item) => {
19368
19567
  return isObject$1(item.value) ? get(item.value, props.valueKey) : item.value;
19369
19568
  };
19370
- const optionsAllDisabled = vue.computed(() => optionsArray.value.filter((option) => option.visible).every((option) => option.disabled));
19569
+ const optionsAllDisabled = vue.computed(() => optionsArray.value.filter((option) => option.visible).every((option) => option.isDisabled));
19371
19570
  const showTagList = vue.computed(() => {
19372
19571
  if (!props.multiple) {
19373
19572
  return [];
@@ -19385,7 +19584,7 @@
19385
19584
  expanded.value = true;
19386
19585
  return;
19387
19586
  }
19388
- if (states.options.size === 0 || states.filteredOptionsCount === 0 || isComposing.value)
19587
+ if (states.options.size === 0 || filteredOptionsCount.value === 0 || isComposing.value)
19389
19588
  return;
19390
19589
  if (!optionsAllDisabled.value) {
19391
19590
  if (direction === "next") {
@@ -19400,7 +19599,7 @@
19400
19599
  }
19401
19600
  }
19402
19601
  const option = optionsArray.value[states.hoveringIndex];
19403
- if (option.disabled === true || option.states.groupDisabled === true || !option.visible) {
19602
+ if (option.isDisabled || !option.visible) {
19404
19603
  navigateOptions(direction);
19405
19604
  }
19406
19605
  vue.nextTick(() => scrollToOption(hoverOption.value));
@@ -19420,11 +19619,7 @@
19420
19619
  const collapseTagStyle = vue.computed(() => {
19421
19620
  return { maxWidth: `${states.selectionWidth}px` };
19422
19621
  });
19423
- const inputStyle = vue.computed(() => ({
19424
- width: `${Math.max(states.calculatorWidth, MINIMUM_INPUT_WIDTH)}px`
19425
- }));
19426
19622
  useResizeObserver(selectionRef, resetSelectionWidth);
19427
- useResizeObserver(calculatorRef, resetCalculatorWidth);
19428
19623
  useResizeObserver(menuRef, updateTooltip);
19429
19624
  useResizeObserver(wrapperRef, updateTooltip);
19430
19625
  useResizeObserver(tagMenuRef, updateTagTooltip);
@@ -19444,7 +19639,6 @@
19444
19639
  hoverOption,
19445
19640
  selectSize,
19446
19641
  filteredOptionsCount,
19447
- resetCalculatorWidth,
19448
19642
  updateTooltip,
19449
19643
  updateTagTooltip,
19450
19644
  debouncedOnInputChange,
@@ -19458,6 +19652,7 @@
19458
19652
  shouldShowPlaceholder,
19459
19653
  currentPlaceholder,
19460
19654
  mouseEnterEventName,
19655
+ needStatusIcon,
19461
19656
  showClose,
19462
19657
  iconComponent,
19463
19658
  iconReverse,
@@ -19489,12 +19684,10 @@
19489
19684
  collapseTagList,
19490
19685
  tagStyle,
19491
19686
  collapseTagStyle,
19492
- inputStyle,
19493
19687
  popperRef,
19494
19688
  inputRef,
19495
19689
  tooltipRef,
19496
19690
  tagTooltipRef,
19497
- calculatorRef,
19498
19691
  prefixRef,
19499
19692
  suffixRef,
19500
19693
  selectRef,
@@ -19625,6 +19818,14 @@
19625
19818
  default: true
19626
19819
  },
19627
19820
  remoteShowSuffix: Boolean,
19821
+ showArrow: {
19822
+ type: Boolean,
19823
+ default: true
19824
+ },
19825
+ offset: {
19826
+ type: Number,
19827
+ default: 12
19828
+ },
19628
19829
  placement: {
19629
19830
  type: definePropType(String),
19630
19831
  values: Ee,
@@ -19634,12 +19835,17 @@
19634
19835
  type: definePropType(Array),
19635
19836
  default: ["bottom-start", "top-start", "right", "left"]
19636
19837
  },
19838
+ tabindex: {
19839
+ type: [String, Number],
19840
+ default: 0
19841
+ },
19842
+ appendTo: String,
19637
19843
  ...useEmptyValuesProps,
19638
19844
  ...useAriaProps(["ariaLabel"])
19639
19845
  });
19640
19846
 
19641
19847
  const COMPONENT_NAME = "ElSelect";
19642
- const _sfc_main$e = vue.defineComponent({
19848
+ const _sfc_main$f = vue.defineComponent({
19643
19849
  name: COMPONENT_NAME,
19644
19850
  componentName: COMPONENT_NAME,
19645
19851
  components: {
@@ -19676,6 +19882,7 @@
19676
19882
  modelValue
19677
19883
  });
19678
19884
  const API = useSelect(_props, emit);
19885
+ const { calculatorRef, inputStyle } = useCalcInputWidth();
19679
19886
  vue.provide(selectKey, vue.reactive({
19680
19887
  props: _props,
19681
19888
  states: API.states,
@@ -19686,9 +19893,18 @@
19686
19893
  selectRef: API.selectRef,
19687
19894
  setSelected: API.setSelected
19688
19895
  }));
19896
+ const selectedLabel = vue.computed(() => {
19897
+ if (!props.multiple) {
19898
+ return API.states.selectedLabel;
19899
+ }
19900
+ return API.states.selected.map((i) => i.currentLabel);
19901
+ });
19689
19902
  return {
19690
19903
  ...API,
19691
- modelValue
19904
+ modelValue,
19905
+ selectedLabel,
19906
+ calculatorRef,
19907
+ inputStyle
19692
19908
  };
19693
19909
  }
19694
19910
  });
@@ -19722,6 +19938,9 @@
19722
19938
  "stop-popper-mouse-event": false,
19723
19939
  "gpu-acceleration": false,
19724
19940
  persistent: _ctx.persistent,
19941
+ "append-to": _ctx.appendTo,
19942
+ "show-arrow": _ctx.showArrow,
19943
+ offset: _ctx.offset,
19725
19944
  onBeforeShow: _ctx.handleMenuEnter,
19726
19945
  onHide: ($event) => _ctx.states.isBeforeHide = false
19727
19946
  }, {
@@ -19855,8 +20074,7 @@
19855
20074
  _: 3
19856
20075
  }, 8, ["disabled", "effect", "teleported"])) : vue.createCommentVNode("v-if", true)
19857
20076
  ]) : vue.createCommentVNode("v-if", true),
19858
- !_ctx.selectDisabled ? (vue.openBlock(), vue.createElementBlock("div", {
19859
- key: 1,
20077
+ vue.createElementVNode("div", {
19860
20078
  class: vue.normalizeClass([
19861
20079
  _ctx.nsSelect.e("selected-item"),
19862
20080
  _ctx.nsSelect.e("input-wrapper"),
@@ -19873,6 +20091,7 @@
19873
20091
  disabled: _ctx.selectDisabled,
19874
20092
  autocomplete: _ctx.autocomplete,
19875
20093
  style: vue.normalizeStyle(_ctx.inputStyle),
20094
+ tabindex: _ctx.tabindex,
19876
20095
  role: "combobox",
19877
20096
  readonly: !_ctx.filterable,
19878
20097
  spellcheck: "false",
@@ -19894,7 +20113,7 @@
19894
20113
  onCompositionend: _ctx.handleCompositionEnd,
19895
20114
  onInput: _ctx.onInput,
19896
20115
  onClick: vue.withModifiers(_ctx.toggleMenu, ["stop"])
19897
- }, null, 46, ["id", "onUpdate:modelValue", "name", "disabled", "autocomplete", "readonly", "aria-activedescendant", "aria-controls", "aria-expanded", "aria-label", "onKeydown", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onInput", "onClick"]), [
20116
+ }, null, 46, ["id", "onUpdate:modelValue", "name", "disabled", "autocomplete", "tabindex", "readonly", "aria-activedescendant", "aria-controls", "aria-expanded", "aria-label", "onKeydown", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onInput", "onClick"]), [
19898
20117
  [vue.vModelText, _ctx.states.inputValue]
19899
20118
  ]),
19900
20119
  _ctx.filterable ? (vue.openBlock(), vue.createElementBlock("span", {
@@ -19904,9 +20123,9 @@
19904
20123
  class: vue.normalizeClass(_ctx.nsSelect.e("input-calculator")),
19905
20124
  textContent: vue.toDisplayString(_ctx.states.inputValue)
19906
20125
  }, null, 10, ["textContent"])) : vue.createCommentVNode("v-if", true)
19907
- ], 2)) : vue.createCommentVNode("v-if", true),
20126
+ ], 2),
19908
20127
  _ctx.shouldShowPlaceholder ? (vue.openBlock(), vue.createElementBlock("div", {
19909
- key: 2,
20128
+ key: 1,
19910
20129
  class: vue.normalizeClass([
19911
20130
  _ctx.nsSelect.e("selected-item"),
19912
20131
  _ctx.nsSelect.e("placeholder"),
@@ -19949,9 +20168,13 @@
19949
20168
  ]),
19950
20169
  _: 1
19951
20170
  }, 8, ["class", "onClick"])) : vue.createCommentVNode("v-if", true),
19952
- _ctx.validateState && _ctx.validateIcon ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
20171
+ _ctx.validateState && _ctx.validateIcon && _ctx.needStatusIcon ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
19953
20172
  key: 2,
19954
- class: vue.normalizeClass([_ctx.nsInput.e("icon"), _ctx.nsInput.e("validateIcon")])
20173
+ class: vue.normalizeClass([
20174
+ _ctx.nsInput.e("icon"),
20175
+ _ctx.nsInput.e("validateIcon"),
20176
+ _ctx.nsInput.is("loading", _ctx.validateState === "validating")
20177
+ ])
19955
20178
  }, {
19956
20179
  default: vue.withCtx(() => [
19957
20180
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.validateIcon)))
@@ -20027,14 +20250,14 @@
20027
20250
  }, 512)
20028
20251
  ]),
20029
20252
  _: 3
20030
- }, 8, ["visible", "placement", "teleported", "popper-class", "popper-options", "fallback-placements", "effect", "transition", "persistent", "onBeforeShow", "onHide"])
20253
+ }, 8, ["visible", "placement", "teleported", "popper-class", "popper-options", "fallback-placements", "effect", "transition", "persistent", "append-to", "show-arrow", "offset", "onBeforeShow", "onHide"])
20031
20254
  ], 16, ["onMouseleave"])), [
20032
20255
  [_directive_click_outside, _ctx.handleClickOutside, _ctx.popperRef]
20033
20256
  ]);
20034
20257
  }
20035
- var Select = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["render", _sfc_render$1], ["__file", "select.vue"]]);
20258
+ var Select = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["render", _sfc_render$1], ["__file", "select.vue"]]);
20036
20259
 
20037
- const _sfc_main$d = vue.defineComponent({
20260
+ const _sfc_main$e = vue.defineComponent({
20038
20261
  name: "ElOptionGroup",
20039
20262
  componentName: "ElOptionGroup",
20040
20263
  props: {
@@ -20106,7 +20329,7 @@
20106
20329
  [vue.vShow, _ctx.visible]
20107
20330
  ]);
20108
20331
  }
20109
- var OptionGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["render", _sfc_render], ["__file", "option-group.vue"]]);
20332
+ var OptionGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["render", _sfc_render], ["__file", "option-group.vue"]]);
20110
20333
 
20111
20334
  const ElSelect = withInstall(Select, {
20112
20335
  Option,
@@ -20177,11 +20400,11 @@
20177
20400
  };
20178
20401
 
20179
20402
  const updateEventKeyRaw = `onUpdate:visible`;
20180
- const __default__$b = vue.defineComponent({
20403
+ const __default__$c = vue.defineComponent({
20181
20404
  name: "ElPopover"
20182
20405
  });
20183
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
20184
- ...__default__$b,
20406
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
20407
+ ...__default__$c,
20185
20408
  props: popoverProps,
20186
20409
  emits: popoverEmits,
20187
20410
  setup(__props, { expose, emit }) {
@@ -20280,7 +20503,7 @@
20280
20503
  };
20281
20504
  }
20282
20505
  });
20283
- var Popover = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__file", "popover.vue"]]);
20506
+ var Popover = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__file", "popover.vue"]]);
20284
20507
 
20285
20508
  const attachEvents = (el, binding) => {
20286
20509
  const popperComponent = binding.arg || binding.value;
@@ -20312,18 +20535,18 @@
20312
20535
  return target;
20313
20536
  };
20314
20537
 
20315
- const _hoisted_1$9 = ["onClick"];
20316
- const _hoisted_2$8 = { class: "hzzt-dropdown-name" };
20538
+ const _hoisted_1$a = ["onClick"];
20539
+ const _hoisted_2$9 = { class: "hzzt-dropdown-name" };
20317
20540
  const _hoisted_3$7 = /* @__PURE__ */ vue.createElementVNode("span", { class: "caret" }, null, -1);
20318
20541
  const _hoisted_4$5 = { class: "hzzt-dropdown-menu" };
20319
20542
  const _hoisted_5$3 = ["onClick"];
20320
20543
  const _hoisted_6$3 = { class: "submenu" };
20321
20544
  const _hoisted_7$3 = ["onClick"];
20322
- const __default__$a = vue.defineComponent({
20545
+ const __default__$b = vue.defineComponent({
20323
20546
  name: "HzztDropDown"
20324
20547
  });
20325
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
20326
- ...__default__$a,
20548
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
20549
+ ...__default__$b,
20327
20550
  props: {
20328
20551
  options: {
20329
20552
  type: Array,
@@ -20378,7 +20601,7 @@
20378
20601
  vue.createElementVNode("li", {
20379
20602
  class: vue.normalizeClass({ "hzzt-dropdown-li": true, "hzzt-dropdown-li-show": toggle.value })
20380
20603
  }, [
20381
- vue.createElementVNode("span", _hoisted_2$8, vue.toDisplayString(__props.label), 1),
20604
+ vue.createElementVNode("span", _hoisted_2$9, vue.toDisplayString(__props.label), 1),
20382
20605
  _hoisted_3$7,
20383
20606
  vue.createElementVNode("ul", _hoisted_4$5, [
20384
20607
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.options, (option, index) => {
@@ -20426,18 +20649,18 @@
20426
20649
  }), 256))
20427
20650
  ])
20428
20651
  ], 2)
20429
- ], 8, _hoisted_1$9)), [
20652
+ ], 8, _hoisted_1$a)), [
20430
20653
  [vue.unref(ClickOutside), close]
20431
20654
  ]);
20432
20655
  };
20433
20656
  }
20434
20657
  });
20435
- var Dropdown = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "index.vue"]]);
20658
+ var Dropdown = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__file", "index.vue"]]);
20436
20659
 
20437
20660
  const HzztDropdown = withInstall$1(Dropdown);
20438
20661
 
20439
- const _hoisted_1$8 = { class: "hzzt-collapse" };
20440
- const _hoisted_2$7 = { class: "flex align-items-center" };
20662
+ const _hoisted_1$9 = { class: "hzzt-collapse" };
20663
+ const _hoisted_2$8 = { class: "flex align-items-center" };
20441
20664
  const _hoisted_3$6 = { class: "hzzt-collapse-title-wrapper" };
20442
20665
  const _hoisted_4$4 = /* @__PURE__ */ vue.createElementVNode("div", { class: "hzzt-collapse-title-block" }, null, -1);
20443
20666
  const _hoisted_5$2 = { class: "hzzt-collapse-title" };
@@ -20446,11 +20669,11 @@
20446
20669
  key: 0,
20447
20670
  class: "hzzt-collapse-text"
20448
20671
  };
20449
- const __default__$9 = vue.defineComponent({
20672
+ const __default__$a = vue.defineComponent({
20450
20673
  name: "HzztCollapse"
20451
20674
  });
20452
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
20453
- ...__default__$9,
20675
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
20676
+ ...__default__$a,
20454
20677
  props: {
20455
20678
  defaultActive: {
20456
20679
  type: Boolean,
@@ -20476,12 +20699,12 @@
20476
20699
  active.value = !active.value;
20477
20700
  }
20478
20701
  return (_ctx, _cache) => {
20479
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
20702
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
20480
20703
  vue.createElementVNode("div", {
20481
20704
  class: "hzzt-collapse-header",
20482
20705
  onClick: toggle
20483
20706
  }, [
20484
- vue.createElementVNode("div", _hoisted_2$7, [
20707
+ vue.createElementVNode("div", _hoisted_2$8, [
20485
20708
  vue.createElementVNode("div", _hoisted_3$6, [
20486
20709
  _hoisted_4$4,
20487
20710
  vue.createElementVNode("div", _hoisted_5$2, vue.toDisplayString(__props.title), 1)
@@ -20496,11 +20719,11 @@
20496
20719
  };
20497
20720
  }
20498
20721
  });
20499
- var Collapse = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__file", "collapse.vue"]]);
20722
+ var Collapse = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "collapse.vue"]]);
20500
20723
 
20501
20724
  const HzztCollapse = withInstall$1(Collapse);
20502
20725
 
20503
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
20726
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
20504
20727
  __name: "index",
20505
20728
  props: {
20506
20729
  name: {
@@ -20526,10 +20749,10 @@
20526
20749
  };
20527
20750
  }
20528
20751
  });
20529
- var HzztIcon$1 = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__file", "index.vue"]]);
20752
+ var HzztIcon$1 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__file", "index.vue"]]);
20530
20753
 
20531
- const _hoisted_1$7 = { class: "hzzt-tab flex align-items-center justify-content-between wrap" };
20532
- const _hoisted_2$6 = { class: "flex align-items-center" };
20754
+ const _hoisted_1$8 = { class: "hzzt-tab flex align-items-center justify-content-between wrap" };
20755
+ const _hoisted_2$7 = { class: "flex align-items-center" };
20533
20756
  const _hoisted_3$5 = { class: "flex" };
20534
20757
  const _hoisted_4$3 = ["onClick"];
20535
20758
  const _hoisted_5$1 = { class: "hzzt-tab-badge" };
@@ -20538,11 +20761,11 @@
20538
20761
  class: "hzzt-tab-badge-count"
20539
20762
  };
20540
20763
  const _hoisted_7$1 = { class: "flex wrap" };
20541
- const __default__$8 = vue.defineComponent({
20764
+ const __default__$9 = vue.defineComponent({
20542
20765
  name: "HzztTab"
20543
20766
  });
20544
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
20545
- ...__default__$8,
20767
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
20768
+ ...__default__$9,
20546
20769
  props: {
20547
20770
  tabList: {
20548
20771
  type: Array,
@@ -20579,8 +20802,8 @@
20579
20802
  emit("tab-close", index);
20580
20803
  }
20581
20804
  return (_ctx, _cache) => {
20582
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
20583
- vue.createElementVNode("div", _hoisted_2$6, [
20805
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
20806
+ vue.createElementVNode("div", _hoisted_2$7, [
20584
20807
  vue.createElementVNode("div", _hoisted_3$5, [
20585
20808
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(customTabList), (tab, index) => {
20586
20809
  return vue.openBlock(), vue.createElementBlock("div", {
@@ -20613,7 +20836,7 @@
20613
20836
  };
20614
20837
  }
20615
20838
  });
20616
- var Tab = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__file", "index.vue"]]);
20839
+ var Tab = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__file", "index.vue"]]);
20617
20840
 
20618
20841
  const HzztTab = withInstall$1(Tab);
20619
20842
 
@@ -20629,15 +20852,15 @@
20629
20852
  return `hzzt-el${name.replace(/[A-Z]/g, (match) => `-${match.toLocaleLowerCase()}`)}`;
20630
20853
  }
20631
20854
 
20632
- const _hoisted_1$6 = { class: "flex justify-content-between hzzt-pagination" };
20633
- const _hoisted_2$5 = { class: "flex align-items-center font-12 hzzt-pagination-total" };
20855
+ const _hoisted_1$7 = { class: "flex justify-content-between hzzt-pagination" };
20856
+ const _hoisted_2$6 = { class: "flex align-items-center font-12 hzzt-pagination-total" };
20634
20857
  const _hoisted_3$4 = { class: "flex align-items-center hzzt-pagination-page font-14" };
20635
20858
  const _hoisted_4$2 = { class: "flex" };
20636
- const __default__$7 = vue.defineComponent({
20859
+ const __default__$8 = vue.defineComponent({
20637
20860
  name: "HzztPagination"
20638
20861
  });
20639
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
20640
- ...__default__$7,
20862
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
20863
+ ...__default__$8,
20641
20864
  props: {
20642
20865
  pagination: {
20643
20866
  type: Object,
@@ -20667,8 +20890,8 @@
20667
20890
  }
20668
20891
  }
20669
20892
  return (_ctx, _cache) => {
20670
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
20671
- vue.createElementVNode("p", _hoisted_2$5, vue.toDisplayString(vue.unref(t)("hzzt.pagination.total")) + vue.toDisplayString(__props.pagination.total) + vue.toDisplayString(vue.unref(t)("hzzt.pagination.strip")), 1),
20893
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
20894
+ vue.createElementVNode("p", _hoisted_2$6, vue.toDisplayString(vue.unref(t)("hzzt.pagination.total")) + vue.toDisplayString(__props.pagination.total) + vue.toDisplayString(vue.unref(t)("hzzt.pagination.strip")), 1),
20672
20895
  vue.createElementVNode("div", _hoisted_3$4, [
20673
20896
  vue.renderSlot(_ctx.$slots, "right"),
20674
20897
  vue.createVNode(HzztIcon$1, {
@@ -20687,18 +20910,18 @@
20687
20910
  };
20688
20911
  }
20689
20912
  });
20690
- var Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__file", "index.vue"]]);
20913
+ var Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__file", "index.vue"]]);
20691
20914
 
20692
20915
  const HzztPagination = withInstall$1(Pagination);
20693
20916
 
20694
- const _hoisted_1$5 = { class: "flex align-content-center" };
20695
- const _hoisted_2$4 = { style: { "max-width": "300px" } };
20917
+ const _hoisted_1$6 = { class: "flex align-content-center" };
20918
+ const _hoisted_2$5 = { style: { "max-width": "300px" } };
20696
20919
  const _hoisted_3$3 = { style: { "padding": "0", "margin": "0", "word-break": "break-all", "white-space": "pre-wrap" } };
20697
- const __default__$6 = vue.defineComponent({
20920
+ const __default__$7 = vue.defineComponent({
20698
20921
  name: "HzztTooltip"
20699
20922
  });
20700
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
20701
- ...__default__$6,
20923
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
20924
+ ...__default__$7,
20702
20925
  props: {
20703
20926
  content: {
20704
20927
  type: String,
@@ -20709,11 +20932,11 @@
20709
20932
  setup(__props, { emit }) {
20710
20933
  const attrs = vue.useAttrs();
20711
20934
  return (_ctx, _cache) => {
20712
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
20935
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
20713
20936
  vue.createVNode(vue.unref(ElTooltip), vue.mergeProps({ effect: "dark" }, vue.unref(attrs)), {
20714
20937
  content: vue.withCtx(() => [
20715
20938
  vue.renderSlot(_ctx.$slots, "content", {}, () => [
20716
- vue.createElementVNode("div", _hoisted_2$4, [
20939
+ vue.createElementVNode("div", _hoisted_2$5, [
20717
20940
  vue.createElementVNode("pre", _hoisted_3$3, vue.toDisplayString(__props.content), 1)
20718
20941
  ])
20719
20942
  ])
@@ -20732,15 +20955,15 @@
20732
20955
  };
20733
20956
  }
20734
20957
  });
20735
- var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "tooltip.vue"]]);
20958
+ var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__file", "tooltip.vue"]]);
20736
20959
 
20737
20960
  const HzztTooltip = withInstall$1(Tooltip);
20738
20961
 
20739
- const _hoisted_1$4 = {
20962
+ const _hoisted_1$5 = {
20740
20963
  key: 0,
20741
20964
  style: { "white-space": "nowrap" }
20742
20965
  };
20743
- const _hoisted_2$3 = {
20966
+ const _hoisted_2$4 = {
20744
20967
  key: 1,
20745
20968
  style: { "white-space": "nowrap" }
20746
20969
  };
@@ -20749,11 +20972,11 @@
20749
20972
  key: 0,
20750
20973
  class: "margin-l-1 margin-r-2"
20751
20974
  };
20752
- const __default__$5 = vue.defineComponent({
20975
+ const __default__$6 = vue.defineComponent({
20753
20976
  name: "HzztPageSize"
20754
20977
  });
20755
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
20756
- ...__default__$5,
20978
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
20979
+ ...__default__$6,
20757
20980
  props: {
20758
20981
  modelValue: {
20759
20982
  type: Number,
@@ -20810,8 +21033,8 @@
20810
21033
  return vue.openBlock(), vue.createElementBlock("main", {
20811
21034
  class: vue.normalizeClass([vue.unref(compKls), "flex wrap align-items-center justify-content-end"])
20812
21035
  }, [
20813
- __props.total > 0 && !__props.isManual ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$4, vue.toDisplayString(vue.unref(t)("hzzt.pageSize.total")) + vue.toDisplayString(__props.total) + vue.toDisplayString(vue.unref(t)("hzzt.pageSize.strip")), 1)) : vue.createCommentVNode("v-if", true),
20814
- __props.isManual ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$3, vue.toDisplayString(vue.unref(t)("hzzt.pageSize.d")) + vue.toDisplayString(__props.modelValue) + vue.toDisplayString(vue.unref(t)("hzzt.pageSize.page")), 1)) : vue.createCommentVNode("v-if", true),
21036
+ __props.total > 0 && !__props.isManual ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$5, vue.toDisplayString(vue.unref(t)("hzzt.pageSize.total")) + vue.toDisplayString(__props.total) + vue.toDisplayString(vue.unref(t)("hzzt.pageSize.strip")), 1)) : vue.createCommentVNode("v-if", true),
21037
+ __props.isManual ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$4, vue.toDisplayString(vue.unref(t)("hzzt.pageSize.d")) + vue.toDisplayString(__props.modelValue) + vue.toDisplayString(vue.unref(t)("hzzt.pageSize.page")), 1)) : vue.createCommentVNode("v-if", true),
20815
21038
  __props.pageSizeOptions.length ? (vue.openBlock(), vue.createElementBlock("div", {
20816
21039
  key: 2,
20817
21040
  class: vue.normalizeClass([vue.unref(ns).e("option"), "flex align-items-center"])
@@ -20880,15 +21103,15 @@
20880
21103
  };
20881
21104
  }
20882
21105
  });
20883
- var PageSize = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "index.vue"]]);
21106
+ var PageSize = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "index.vue"]]);
20884
21107
 
20885
21108
  const HzztPageSize = withInstall$1(PageSize);
20886
21109
 
20887
- const __default__$4 = vue.defineComponent({
21110
+ const __default__$5 = vue.defineComponent({
20888
21111
  name: "HzztConfirmPassword"
20889
21112
  });
20890
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
20891
- ...__default__$4,
21113
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
21114
+ ...__default__$5,
20892
21115
  props: {
20893
21116
  placeholder: {
20894
21117
  type: String,
@@ -20948,16 +21171,16 @@
20948
21171
  };
20949
21172
  }
20950
21173
  });
20951
- var ConfirmPassword = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "confirm-password.vue"]]);
21174
+ var ConfirmPassword = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "confirm-password.vue"]]);
20952
21175
 
20953
21176
  const HzztConfirmPassword = withInstall$1(ConfirmPassword);
20954
21177
 
20955
- const _hoisted_1$3 = ["onClick"];
20956
- const __default__$3 = vue.defineComponent({
21178
+ const _hoisted_1$4 = ["onClick"];
21179
+ const __default__$4 = vue.defineComponent({
20957
21180
  name: "HzztCheckButton"
20958
21181
  });
20959
- const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
20960
- ...__default__$3,
21182
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
21183
+ ...__default__$4,
20961
21184
  props: {
20962
21185
  options: {
20963
21186
  type: Array,
@@ -21018,7 +21241,7 @@
21018
21241
  ...vue.unref(spanKls)
21019
21242
  ], "flex-1"]),
21020
21243
  onClick: ($event) => selectValue(item.value)
21021
- }, vue.toDisplayString(item.label), 11, _hoisted_1$3)
21244
+ }, vue.toDisplayString(item.label), 11, _hoisted_1$4)
21022
21245
  ]),
21023
21246
  _: 2
21024
21247
  }, 1032, ["hidden", "value"]);
@@ -21027,7 +21250,7 @@
21027
21250
  };
21028
21251
  }
21029
21252
  });
21030
- var CheckButton = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "index.vue"]]);
21253
+ var CheckButton = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "index.vue"]]);
21031
21254
 
21032
21255
  const HzztCheckButton = withInstall$1(CheckButton);
21033
21256
 
@@ -21268,8 +21491,8 @@
21268
21491
  return Array.from({ length: n }).map((_, n2) => n2);
21269
21492
  }
21270
21493
 
21271
- const _hoisted_1$2 = { class: "el-date-picker" };
21272
- const _hoisted_2$2 = { class: "el-picker-panel__body" };
21494
+ const _hoisted_1$3 = { class: "el-date-picker" };
21495
+ const _hoisted_2$3 = { class: "el-picker-panel__body" };
21273
21496
  const _hoisted_3$1 = {
21274
21497
  class: "el-date-picker__header el-date-picker__header--bordered",
21275
21498
  style: { "margin": "0px", "line-height": "30px" }
@@ -21285,11 +21508,11 @@
21285
21508
  const _hoisted_9 = { class: "cell" };
21286
21509
  const _hoisted_10 = { class: "cell" };
21287
21510
  const _hoisted_11 = { class: "cell" };
21288
- const __default__$2 = vue.defineComponent({
21511
+ const __default__$3 = vue.defineComponent({
21289
21512
  name: "HzztQuarterPicker"
21290
21513
  });
21291
- const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
21292
- ...__default__$2,
21514
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
21515
+ ...__default__$3,
21293
21516
  props: {
21294
21517
  size: useSizeProp$1,
21295
21518
  format: {
@@ -21467,8 +21690,8 @@
21467
21690
  }, 16, ["disabled", "size", "placeholder", "value"])
21468
21691
  ]),
21469
21692
  default: vue.withCtx(() => [
21470
- vue.createElementVNode("div", _hoisted_1$2, [
21471
- vue.createElementVNode("div", _hoisted_2$2, [
21693
+ vue.createElementVNode("div", _hoisted_1$3, [
21694
+ vue.createElementVNode("div", _hoisted_2$3, [
21472
21695
  vue.createElementVNode("div", _hoisted_3$1, [
21473
21696
  vue.createElementVNode("button", {
21474
21697
  type: "button",
@@ -21529,7 +21752,7 @@
21529
21752
  };
21530
21753
  }
21531
21754
  });
21532
- var QuarterPicker = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "index.vue"]]);
21755
+ var QuarterPicker = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "index.vue"]]);
21533
21756
 
21534
21757
  const HzztQuarterPicker = withInstall$1(QuarterPicker);
21535
21758
 
@@ -21553,7 +21776,7 @@
21553
21776
  [INPUT_EVENT$1]: (value) => isString$1(value)
21554
21777
  };
21555
21778
 
21556
- const _hoisted_1$1 = /* @__PURE__ */ vue.createElementVNode("div", { style: { "width": "0", "height": "0", "overflow": "hidden" } }, [
21779
+ const _hoisted_1$2 = /* @__PURE__ */ vue.createElementVNode("div", { style: { "width": "0", "height": "0", "overflow": "hidden" } }, [
21557
21780
  /* @__PURE__ */ vue.createElementVNode("input", {
21558
21781
  readonly: "",
21559
21782
  style: { "width": "0", "height": "0", "overflow": "hidden" }
@@ -21565,16 +21788,16 @@
21565
21788
  style: { "width": "0", "height": "0", "overflow": "hidden" }
21566
21789
  })
21567
21790
  ], -1);
21568
- const _hoisted_2$1 = {
21791
+ const _hoisted_2$2 = {
21569
21792
  class: "width-100%",
21570
21793
  style: { "overflow": "hidden" }
21571
21794
  };
21572
- const __default__$1 = vue.defineComponent({
21795
+ const __default__$2 = vue.defineComponent({
21573
21796
  inheritAttrs: false,
21574
21797
  name: "HzztScan"
21575
21798
  });
21576
- const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
21577
- ...__default__$1,
21799
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
21800
+ ...__default__$2,
21578
21801
  props: scanProps,
21579
21802
  emits: scanEmits,
21580
21803
  setup(__props, { expose, emit }) {
@@ -21653,7 +21876,7 @@
21653
21876
  class: vue.normalizeClass(["hzzt-scan", _ctx.$attrs.class]),
21654
21877
  style: vue.normalizeStyle([{ "position": "relative" }, _ctx.$attrs.style])
21655
21878
  }, [
21656
- _hoisted_1$1,
21879
+ _hoisted_1$2,
21657
21880
  vue.createVNode(vue.unref(ElInput), vue.mergeProps({
21658
21881
  ref_key: "inputRef",
21659
21882
  ref: inputRef,
@@ -21687,16 +21910,175 @@
21687
21910
  vue.createElementVNode("div", {
21688
21911
  class: vue.normalizeClass(["hzzt-scan-input-backup", { "placeholder-color": innerValue.value === " " }])
21689
21912
  }, [
21690
- vue.createElementVNode("div", _hoisted_2$1, vue.toDisplayString(vue.unref(showValue)), 1)
21913
+ vue.createElementVNode("div", _hoisted_2$2, vue.toDisplayString(vue.unref(showValue)), 1)
21691
21914
  ], 2)
21692
21915
  ], 6);
21693
21916
  };
21694
21917
  }
21695
21918
  });
21696
- var Scan = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "scan.vue"]]);
21919
+ var Scan = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "scan.vue"]]);
21697
21920
 
21698
21921
  const HzztScan = withInstall$1(Scan);
21699
21922
 
21923
+ const selectInputProps = buildProps$1({
21924
+ modelValue: {
21925
+ type: definePropType$1([
21926
+ String,
21927
+ Number
21928
+ ]),
21929
+ default: ""
21930
+ },
21931
+ indexType: {
21932
+ type: String,
21933
+ default: "number"
21934
+ },
21935
+ disabled: Boolean,
21936
+ replace: Boolean,
21937
+ label: String,
21938
+ data: {
21939
+ type: definePropType$1(Array),
21940
+ default: () => []
21941
+ },
21942
+ inputProps: Object,
21943
+ customProps: Object,
21944
+ position: {
21945
+ type: String,
21946
+ default: "left"
21947
+ },
21948
+ formatLabel: {
21949
+ type: Function
21950
+ },
21951
+ split: {
21952
+ type: String,
21953
+ default: ""
21954
+ },
21955
+ size: useSizeProp$1
21956
+ });
21957
+ const selectInputEmits = {
21958
+ [UPDATE_MODEL_EVENT$1]: (value) => isString$1(value),
21959
+ input: (value) => isString$1(value),
21960
+ change: (value) => isString$1(value)
21961
+ };
21962
+
21963
+ const _hoisted_1$1 = { slot: "append" };
21964
+ const _hoisted_2$1 = { key: 0 };
21965
+ const __default__$1 = vue.defineComponent({
21966
+ name: "HzztSelectInput"
21967
+ });
21968
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
21969
+ ...__default__$1,
21970
+ props: selectInputProps,
21971
+ emits: selectInputEmits,
21972
+ setup(__props, { emit }) {
21973
+ const props = __props;
21974
+ const inputVal = vue.ref(props.modelValue);
21975
+ const nsInput = useNamespace$1("select-input");
21976
+ const formSize = useFormSize();
21977
+ const formDisabled = useFormDisabled();
21978
+ const trueSize = vue.computed(() => props.size || formSize.value || useGlobalSize$1().value);
21979
+ const trueDisabled = vue.computed(() => props.disabled || formDisabled.value);
21980
+ const containerCls = vue.computed(() => [
21981
+ nsInput.b(),
21982
+ nsInput.m(trueSize.value)
21983
+ ]);
21984
+ const inputContainerCls = vue.computed(() => [
21985
+ "flex",
21986
+ props.position === "top" ? "column" : "row align-items-center"
21987
+ ]);
21988
+ const inputCls = vue.computed(() => [
21989
+ "flex-1",
21990
+ props.label ? props.position === "top" ? "margin-b-1" : "margin-l-1" : ""
21991
+ ]);
21992
+ const _inputProps = vue.computed(() => ({
21993
+ disabled: trueDisabled.value,
21994
+ clearable: true,
21995
+ ...props.inputProps
21996
+ }));
21997
+ vue.watch(() => props.modelValue, (v) => {
21998
+ inputVal.value = v;
21999
+ });
22000
+ function input(val) {
22001
+ emit("update:modelValue", val);
22002
+ emit("input", val);
22003
+ }
22004
+ function change(val) {
22005
+ emit("change", val);
22006
+ }
22007
+ function getLinkName(item, index) {
22008
+ let prefix = "";
22009
+ if (props.indexType == "number") {
22010
+ prefix = `\uFF08${index + 1}\uFF09`;
22011
+ } else if (props.indexType == "letter") {
22012
+ prefix = `\uFF08${numberToLetter(index)}\uFF09`;
22013
+ }
22014
+ return prefix + (item.label || item.value);
22015
+ }
22016
+ function select(item) {
22017
+ const value = item.value || item.label;
22018
+ let content = "";
22019
+ if (!inputVal.value)
22020
+ inputVal.value = "";
22021
+ if (props.formatLabel) {
22022
+ content = props.formatLabel(value);
22023
+ } else if (props.replace) {
22024
+ content = value;
22025
+ } else {
22026
+ content = inputVal.value ? `${inputVal.value}${props.split}${value}` : value;
22027
+ }
22028
+ inputVal.value = content;
22029
+ input(content);
22030
+ change(content);
22031
+ }
22032
+ return (_ctx, _cache) => {
22033
+ return vue.openBlock(), vue.createElementBlock("div", {
22034
+ class: vue.normalizeClass(vue.unref(containerCls))
22035
+ }, [
22036
+ vue.createElementVNode("div", {
22037
+ class: vue.normalizeClass(vue.unref(inputContainerCls))
22038
+ }, [
22039
+ vue.renderSlot(_ctx.$slots, "title", {}, () => [
22040
+ vue.createVNode(Title, { label: _ctx.label }, null, 8, ["label"])
22041
+ ]),
22042
+ vue.createVNode(vue.unref(ElInput), vue.mergeProps({
22043
+ ref: "inputRef",
22044
+ class: vue.unref(inputCls),
22045
+ modelValue: inputVal.value,
22046
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputVal.value = $event)
22047
+ }, vue.unref(_inputProps), {
22048
+ onInput: input,
22049
+ onChange: change
22050
+ }), {
22051
+ default: vue.withCtx(() => [
22052
+ vue.createElementVNode("template", _hoisted_1$1, [
22053
+ vue.renderSlot(_ctx.$slots, "append")
22054
+ ])
22055
+ ]),
22056
+ _: 3
22057
+ }, 16, ["class", "modelValue"])
22058
+ ], 2),
22059
+ _ctx.data.length && !vue.unref(trueDisabled) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1, [
22060
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.data, (item, index) => {
22061
+ return vue.openBlock(), vue.createBlock(vue.unref(ElLink), vue.mergeProps({
22062
+ key: index,
22063
+ class: "margin-r-4"
22064
+ }, _ctx.customProps, {
22065
+ onClick: ($event) => select(item)
22066
+ }), {
22067
+ default: vue.withCtx(() => [
22068
+ vue.createTextVNode(vue.toDisplayString(getLinkName(item, index)), 1)
22069
+ ]),
22070
+ _: 2
22071
+ }, 1040, ["onClick"]);
22072
+ }), 128))
22073
+ ])) : vue.createCommentVNode("v-if", true)
22074
+ ], 2);
22075
+ };
22076
+ }
22077
+ });
22078
+ var SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "select-input.vue"]]);
22079
+
22080
+ const HzztSelectInput = withInstall$1(SelectInput);
22081
+
21700
22082
  const _hoisted_1 = {
21701
22083
  key: 0,
21702
22084
  class: "hzzt-title flex align-items-center"
@@ -21757,7 +22139,8 @@
21757
22139
  HzztConfirmPassword,
21758
22140
  HzztCheckButton,
21759
22141
  HzztQuarterPicker,
21760
- HzztScan
22142
+ HzztScan,
22143
+ HzztSelectInput
21761
22144
  ];
21762
22145
 
21763
22146
  var Plugins = [];
@@ -21985,6 +22368,7 @@
21985
22368
  exports.HzztPagination = HzztPagination;
21986
22369
  exports.HzztQuarterPicker = HzztQuarterPicker;
21987
22370
  exports.HzztScan = HzztScan;
22371
+ exports.HzztSelectInput = HzztSelectInput;
21988
22372
  exports.HzztTab = HzztTab;
21989
22373
  exports.HzztTitle = HzztTitle;
21990
22374
  exports.HzztTooltip = HzztTooltip;
@@ -22006,9 +22390,12 @@
22006
22390
  exports.localeContextKey = localeContextKey$1;
22007
22391
  exports.makeInstaller = makeInstaller;
22008
22392
  exports.namespaceContextKey = namespaceContextKey$1;
22393
+ exports.numberToLetter = numberToLetter;
22009
22394
  exports.provideGlobalConfig = provideGlobalConfig;
22010
22395
  exports.scanEmits = scanEmits;
22011
22396
  exports.scanProps = scanProps;
22397
+ exports.selectInputEmits = selectInputEmits;
22398
+ exports.selectInputProps = selectInputProps;
22012
22399
  exports.titleProps = titleProps;
22013
22400
  exports.translate = translate$1;
22014
22401
  exports.useGetDerivedNamespace = useGetDerivedNamespace$1;