hys-ui 0.2.0 → 0.3.0

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 (201) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +15 -1
  3. package/dist/components/HysAlert/HysAlert.vue.js +5 -54
  4. package/dist/components/HysAlert/HysAlert2.vue.js +159 -2
  5. package/dist/components/HysAutocomplete/HysAutocomplete.vue.js +2 -2
  6. package/dist/components/HysAutocomplete/HysAutocomplete2.vue.js +285 -273
  7. package/dist/components/HysAvatarGroup/HysAvatarGroup.vue.js +1 -1
  8. package/dist/components/HysAvatarGroup/HysAvatarGroup2.vue.js +102 -98
  9. package/dist/components/HysBreadcrumb/HysBreadcrumb.vue.js +1 -1
  10. package/dist/components/HysBreadcrumb/HysBreadcrumb2.vue.js +273 -59
  11. package/dist/components/HysCalendar/HysCalendar.vue.js +3 -3
  12. package/dist/components/HysCalendar/HysCalendar2.vue.js +237 -225
  13. package/dist/components/HysCascader/HysCascader.vue.js +2 -2
  14. package/dist/components/HysCascader/HysCascader2.vue.js +337 -324
  15. package/dist/components/HysColorPicker/HysColorPanel.vue.js +7 -0
  16. package/dist/components/HysColorPicker/HysColorPanel2.vue.js +238 -0
  17. package/dist/components/HysColorPicker/HysColorPicker.vue.js +2 -2
  18. package/dist/components/HysColorPicker/HysColorPicker2.vue.js +239 -217
  19. package/dist/components/HysCommandPalette/HysCommandPalette.vue.js +90 -76
  20. package/dist/components/HysContextMenu/HysContextMenu.vue.js +5 -89
  21. package/dist/components/HysContextMenu/HysContextMenu2.vue.js +247 -2
  22. package/dist/components/HysContextMenu/HysMenuPanel.vue.js +7 -0
  23. package/dist/components/HysContextMenu/HysMenuPanel2.vue.js +208 -0
  24. package/dist/components/HysContextMenu/HysMenuSlot.js +10 -0
  25. package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
  26. package/dist/components/HysDataGrid/HysDataGrid2.vue.js +1008 -559
  27. package/dist/components/HysDatePicker/HysDatePicker.vue.js +2 -0
  28. package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +2 -2
  29. package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +539 -526
  30. package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +5 -3
  31. package/dist/components/HysDrawer/HysDrawer.vue.js +1 -1
  32. package/dist/components/HysDrawer/HysDrawer2.vue.js +434 -84
  33. package/dist/components/HysEmpty/HysEmpty.vue.js +5 -41
  34. package/dist/components/HysEmpty/HysEmpty2.vue.js +181 -2
  35. package/dist/components/HysFormItem/HysFormItem.vue.js +2 -2
  36. package/dist/components/HysFormItem/HysFormItem2.vue.js +171 -164
  37. package/dist/components/HysGantt/HysGantt.vue.js +1 -1
  38. package/dist/components/HysGantt/HysGantt2.vue.js +810 -795
  39. package/dist/components/HysMention/HysMention.vue.js +1 -1
  40. package/dist/components/HysMention/HysMention2.vue.js +112 -100
  41. package/dist/components/HysModal/HysModal.vue.js +2 -2
  42. package/dist/components/HysModal/HysModal2.vue.js +490 -85
  43. package/dist/components/HysPopover/HysPopover.vue.js +5 -91
  44. package/dist/components/HysPopover/HysPopover2.vue.js +120 -2
  45. package/dist/components/HysProgress/HysProgress.vue.js +2 -2
  46. package/dist/components/HysProgress/HysProgress2.vue.js +319 -52
  47. package/dist/components/HysSelect/HysSelect.vue.js +2 -2
  48. package/dist/components/HysSelect/HysSelect2.vue.js +730 -594
  49. package/dist/components/HysSlider/HysSlider.vue.js +2 -2
  50. package/dist/components/HysSlider/HysSlider2.vue.js +192 -188
  51. package/dist/components/HysSlider/SliderTooltip.vue.js +2 -2
  52. package/dist/components/HysSlider/SliderTooltip2.vue.js +103 -89
  53. package/dist/components/HysTable/HysTable.vue.js +2 -2
  54. package/dist/components/HysTable/HysTable2.vue.js +389 -368
  55. package/dist/components/HysTagInput/HysTagInput.vue.js +5 -82
  56. package/dist/components/HysTagInput/HysTagInput2.vue.js +396 -2
  57. package/dist/components/HysTimeline/HysTimeline.vue.js +2 -2
  58. package/dist/components/HysTimeline/HysTimeline2.vue.js +243 -24
  59. package/dist/components/HysTooltip/HysTooltip.vue.js +5 -64
  60. package/dist/components/HysTooltip/HysTooltip2.vue.js +110 -2
  61. package/dist/components/HysTour/HysTour.vue.js +46 -42
  62. package/dist/components/HysTransfer/HysTransfer.vue.js +2 -2
  63. package/dist/components/HysTransfer/HysTransfer2.vue.js +237 -207
  64. package/dist/components/HysTransfer/HysTransferPanel.vue.js +1 -1
  65. package/dist/components/HysTransfer/HysTransferPanel2.vue.js +320 -271
  66. package/dist/components/HysTree/HysTree.vue.js +2 -2
  67. package/dist/components/HysTree/HysTree2.vue.js +195 -184
  68. package/dist/components/HysTreeSelect/HysTreeSelect.vue.js +4 -4
  69. package/dist/components/HysTreeSelect/HysTreeSelect2.vue.js +389 -377
  70. package/dist/components/HysUpload/HysUpload.vue.js +2 -2
  71. package/dist/components/HysUpload/HysUpload2.vue.js +459 -125
  72. package/dist/components/HysVirtualTable/HysVirtualTable.vue.js +5 -94
  73. package/dist/components/HysVirtualTable/HysVirtualTable2.vue.js +656 -2
  74. package/dist/composables/color.js +97 -0
  75. package/dist/composables/dataGrid.js +68 -0
  76. package/dist/composables/drawer.js +17 -0
  77. package/dist/composables/feedback.js +14 -0
  78. package/dist/composables/menu.js +96 -0
  79. package/dist/composables/modal.js +14 -0
  80. package/dist/composables/overlayManager.js +48 -18
  81. package/dist/composables/progress.js +94 -0
  82. package/dist/composables/tagInput.js +16 -0
  83. package/dist/composables/timeline.js +19 -0
  84. package/dist/composables/transfer.js +19 -17
  85. package/dist/composables/upload.js +55 -0
  86. package/dist/composables/uploadRequest.js +58 -0
  87. package/dist/composables/useAlert.js +124 -0
  88. package/dist/composables/useColorPicker.js +402 -0
  89. package/dist/composables/useContextMenu.js +514 -0
  90. package/dist/composables/useDataGridRemote.js +67 -0
  91. package/dist/composables/useDialog.js +86 -43
  92. package/dist/composables/useDrawerPush.js +33 -0
  93. package/dist/composables/useDrawerResize.js +221 -0
  94. package/dist/composables/useFloating.js +110 -76
  95. package/dist/composables/useHysModal.js +185 -0
  96. package/dist/composables/useModal.js +295 -0
  97. package/dist/composables/useModalInteraction.js +394 -0
  98. package/dist/composables/usePopupSurface.js +458 -0
  99. package/dist/composables/useTagInput.js +313 -0
  100. package/dist/composables/useTransferMotion.js +185 -0
  101. package/dist/composables/useUpload.js +472 -0
  102. package/dist/composables/useUploadModel.js +65 -0
  103. package/dist/composables/useUploadRequests.js +266 -0
  104. package/dist/composables/useVirtualTableLayout.js +277 -0
  105. package/dist/composables/virtualTable.js +43 -0
  106. package/dist/index.js +27 -24
  107. package/dist/internal/PopupReference.js +39 -0
  108. package/dist/internal/PopupSurfacePanel.vue.js +7 -0
  109. package/dist/internal/PopupSurfacePanel2.vue.js +92 -0
  110. package/dist/motion/PopupMotion.js +105 -0
  111. package/dist/motion/popup.js +10 -0
  112. package/dist/style.css +1 -1
  113. package/dist/types/components/HysAlert/HysAlert.vue.d.ts +32 -22
  114. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +7 -7
  115. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +6 -1
  116. package/dist/types/components/HysBadge/HysBadge.vue.d.ts +3 -3
  117. package/dist/types/components/HysBreadcrumb/HysBreadcrumb.vue.d.ts +54 -31
  118. package/dist/types/components/HysCalendar/HysCalendar.vue.d.ts +3 -2
  119. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +7 -7
  120. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +2 -2
  121. package/dist/types/components/HysColorPicker/HysColorPanel.vue.d.ts +58 -0
  122. package/dist/types/components/HysColorPicker/HysColorPicker.vue.d.ts +63 -10
  123. package/dist/types/components/HysCommandPalette/HysCommandPalette.vue.d.ts +2 -1
  124. package/dist/types/components/HysContextMenu/HysContextMenu.vue.d.ts +50 -34
  125. package/dist/types/components/HysContextMenu/HysMenuPanel.vue.d.ts +79 -0
  126. package/dist/types/components/HysContextMenu/HysMenuSlot.d.ts +8 -0
  127. package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +65 -118
  128. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +1 -1
  129. package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +92 -35
  130. package/dist/types/components/HysEmpty/HysEmpty.vue.d.ts +24 -20
  131. package/dist/types/components/HysFileManager/HysFileManager.vue.d.ts +2 -2
  132. package/dist/types/components/HysGantt/HysGantt.vue.d.ts +2 -1
  133. package/dist/types/components/HysMention/HysMention.vue.d.ts +2 -1
  134. package/dist/types/components/HysModal/HysModal.vue.d.ts +111 -34
  135. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +41 -29
  136. package/dist/types/components/HysProgress/HysProgress.vue.d.ts +18 -24
  137. package/dist/types/components/HysResizablePanel/HysResizablePanel.vue.d.ts +2 -2
  138. package/dist/types/components/HysSelect/HysSelect.vue.d.ts +13 -4
  139. package/dist/types/components/HysSlider/HysSlider.vue.d.ts +5 -4
  140. package/dist/types/components/HysSlider/SliderTooltip.vue.d.ts +3 -1
  141. package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +2 -2
  142. package/dist/types/components/HysTable/HysTable.vue.d.ts +4 -4
  143. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +2 -2
  144. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +47 -25
  145. package/dist/types/components/HysTimeline/HysTimeline.vue.d.ts +19 -32
  146. package/dist/types/components/HysTooltip/HysTooltip.vue.d.ts +39 -19
  147. package/dist/types/components/HysTour/HysTour.vue.d.ts +2 -1
  148. package/dist/types/components/HysTransfer/HysTransfer.vue.d.ts +2 -2
  149. package/dist/types/components/HysTransfer/HysTransferPanel.vue.d.ts +5 -3
  150. package/dist/types/components/HysTree/HysTree.vue.d.ts +2 -2
  151. package/dist/types/components/HysUpload/HysUpload.vue.d.ts +55 -67
  152. package/dist/types/components/HysVirtualTable/HysVirtualTable.vue.d.ts +71 -40
  153. package/dist/types/composables/autocomplete.d.ts +3 -0
  154. package/dist/types/composables/avatar.d.ts +3 -0
  155. package/dist/types/composables/cascader.d.ts +3 -0
  156. package/dist/types/composables/color.d.ts +97 -0
  157. package/dist/types/composables/dataGrid.d.ts +100 -0
  158. package/dist/types/composables/datePicker.d.ts +3 -0
  159. package/dist/types/composables/drawer.d.ts +102 -0
  160. package/dist/types/composables/feedback.d.ts +98 -0
  161. package/dist/types/composables/formContext.d.ts +2 -0
  162. package/dist/types/composables/menu.d.ts +183 -0
  163. package/dist/types/composables/modal.d.ts +183 -0
  164. package/dist/types/composables/overlayManager.d.ts +7 -3
  165. package/dist/types/composables/popupSurface.d.ts +83 -0
  166. package/dist/types/composables/progress.d.ts +92 -0
  167. package/dist/types/composables/selectOptions.d.ts +2 -0
  168. package/dist/types/composables/table.d.ts +3 -0
  169. package/dist/types/composables/tagInput.d.ts +96 -0
  170. package/dist/types/composables/timeline.d.ts +82 -0
  171. package/dist/types/composables/transfer.d.ts +7 -0
  172. package/dist/types/composables/tree.d.ts +3 -0
  173. package/dist/types/composables/treeSelect.d.ts +3 -0
  174. package/dist/types/composables/upload.d.ts +202 -0
  175. package/dist/types/composables/uploadRequest.d.ts +3 -0
  176. package/dist/types/composables/useAlert.d.ts +21 -0
  177. package/dist/types/composables/useCascader.d.ts +1 -1
  178. package/dist/types/composables/useColorPicker.d.ts +101 -0
  179. package/dist/types/composables/useContextMenu.d.ts +81 -0
  180. package/dist/types/composables/useDataGridRemote.d.ts +15 -0
  181. package/dist/types/composables/useDialog.d.ts +16 -3
  182. package/dist/types/composables/useDrawerPush.d.ts +6 -0
  183. package/dist/types/composables/useDrawerResize.d.ts +27 -0
  184. package/dist/types/composables/useFloating.d.ts +21 -2
  185. package/dist/types/composables/useHysModal.d.ts +44 -0
  186. package/dist/types/composables/useModal.d.ts +62 -0
  187. package/dist/types/composables/useModalInteraction.d.ts +27 -0
  188. package/dist/types/composables/usePopupSurface.d.ts +3341 -0
  189. package/dist/types/composables/useTagInput.d.ts +66 -0
  190. package/dist/types/composables/useTransferMotion.d.ts +36 -0
  191. package/dist/types/composables/useUpload.d.ts +94 -0
  192. package/dist/types/composables/useUploadModel.d.ts +14 -0
  193. package/dist/types/composables/useUploadRequests.d.ts +38 -0
  194. package/dist/types/composables/useVirtualTableLayout.d.ts +51 -0
  195. package/dist/types/composables/virtualTable.d.ts +126 -0
  196. package/dist/types/index.d.ts +17 -2
  197. package/dist/types/internal/PopupReference.d.ts +18 -0
  198. package/dist/types/internal/PopupSurfacePanel.vue.d.ts +37 -0
  199. package/dist/types/motion/PopupMotion.d.ts +59 -0
  200. package/dist/types/motion/popup.d.ts +12 -0
  201. package/package.json +1 -1
@@ -1,36 +1,44 @@
1
- import { defineComponent as Va, useAttrs as za, inject as La, ref as w, useId as $a, shallowRef as pe, computed as r, watch as I, nextTick as z, onMounted as Ea, onUpdated as Fa, onActivated as Ha, onDeactivated as ja, onBeforeUnmount as Wa, openBlock as c, createElementBlock as v, mergeProps as qe, unref as s, createElementVNode as U, withModifiers as Ae, renderSlot as x, Fragment as le, renderList as Pe, toDisplayString as Q, createVNode as Oe, createCommentVNode as L, createTextVNode as J, normalizeClass as va, createBlock as Re, Teleport as Ka, normalizeStyle as he } from "vue";
2
- import { X as fa, LoaderCircle as qa, ChevronDown as Pa, Plus as Ra, Check as Da } from "lucide-vue-next";
3
- import { fieldKey as Na, useHysControlState as Ia, formValue as Ua } from "../../composables/formContext.js";
4
- import { useHysRootAttrs as Qa } from "../../config.js";
5
- import { useFloating as Ya } from "../../composables/useFloating.js";
6
- import { normalizeSelectOptions as Xa, selectKeyFactory as Ga } from "../../composables/selectOptions.js";
7
- const Ja = ["disabled"], Za = ["id", "tabindex", "aria-label", "aria-expanded", "aria-disabled", "aria-readonly", "aria-required", "aria-invalid", "aria-describedby", "aria-controls", "aria-activedescendant"], _a = { class: "hys-ui-select-label" }, et = ["title"], at = ["disabled", "aria-label", "onClick"], tt = ["title"], lt = ["title"], ot = {
1
+ import { defineComponent as Dt, useAttrs as Rt, inject as Pt, ref as L, useId as It, shallowRef as ye, computed as c, watch as X, nextTick as V, onMounted as Nt, onUpdated as Ut, onActivated as Qt, onDeactivated as Yt, onBeforeUnmount as Xt, openBlock as d, createElementBlock as h, mergeProps as Ue, unref as n, createElementVNode as $, withModifiers as Ee, renderSlot as A, Fragment as ue, renderList as Qe, toDisplayString as M, createVNode as me, createCommentVNode as E, createTextVNode as _, normalizeClass as xt, createBlock as Ye, Teleport as Gt, withCtx as Jt, normalizeStyle as be } from "vue";
2
+ import Zt from "../../motion/PopupMotion.js";
3
+ import { X as Tt, LoaderCircle as _t, ChevronDown as el, Plus as tl, Check as ll } from "lucide-vue-next";
4
+ import { fieldKey as al, useHysControlState as il, formValue as ol } from "../../composables/formContext.js";
5
+ import { useHysRootAttrs as ul } from "../../config.js";
6
+ import { useFloating as sl } from "../../composables/useFloating.js";
7
+ import { normalizeSelectOptions as nl, selectKeyFactory as rl } from "../../composables/selectOptions.js";
8
+ const cl = ["disabled"], dl = ["id", "tabindex", "aria-label", "aria-expanded", "aria-disabled", "aria-readonly", "aria-required", "aria-invalid", "aria-describedby", "aria-controls", "aria-activedescendant"], vl = { class: "hys-ui-select-label" }, fl = ["title"], pl = ["disabled", "aria-label", "onClick"], hl = ["title"], yl = ["title"], ml = {
8
9
  key: 0,
9
10
  class: "hys-ui-select-suffix"
10
- }, it = ["name", "value", "disabled"], ut = ["data-size", "data-placement"], st = {
11
+ }, bl = ["name", "value", "disabled"], gl = ["data-size", "data-placement"], kl = {
11
12
  key: 0,
12
13
  class: "hys-ui-select-header"
13
- }, nt = ["value", "aria-controls", "aria-activedescendant"], rt = ["id", "aria-label", "aria-multiselectable", "aria-busy"], ct = {
14
+ }, xl = ["value", "aria-controls", "aria-activedescendant"], Tl = {
15
+ key: 2,
16
+ class: "hys-ui-select-bulk",
17
+ role: "group",
18
+ "aria-label": "批量选择"
19
+ }, Sl = ["title"], Al = ["disabled", "aria-label"], Cl = ["disabled", "aria-label"], wl = ["id", "aria-label", "aria-multiselectable", "aria-busy"], Ml = {
14
20
  key: 0,
15
21
  class: "hys-ui-floating-empty",
16
22
  role: "status"
17
- }, dt = {
23
+ }, Bl = {
18
24
  key: 1,
19
25
  class: "hys-ui-floating-empty",
20
26
  role: "status"
21
- }, vt = ["id", "data-active", "aria-label", "aria-description", "aria-selected", "aria-setsize", "aria-posinset", "disabled", "onPointerenter", "onClick"], ft = ["title"], pt = {
27
+ }, Ol = ["id", "data-active", "aria-label", "aria-description", "aria-selected", "aria-setsize", "aria-posinset", "disabled", "onPointerenter", "onClick"], Ll = ["title"], zl = {
22
28
  key: 0,
23
29
  class: "hys-ui-select-create-label"
24
- }, ht = {
30
+ }, Vl = {
25
31
  key: 3,
26
32
  class: "hys-ui-floating-empty"
27
- }, yt = {
28
- key: 2,
33
+ }, $l = {
34
+ key: 3,
29
35
  class: "hys-ui-select-footer"
30
- }, Ct = /* @__PURE__ */ Va({
36
+ }, St = 'a[href],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex]:not([tabindex="-1"])', Dl = /* @__PURE__ */ Dt({
31
37
  inheritAttrs: !1,
32
38
  __name: "HysSelect",
33
39
  props: {
40
+ popupTransition: {},
41
+ popupTransitionDuration: {},
34
42
  modelValue: {},
35
43
  defaultValue: {},
36
44
  options: { default: () => [] },
@@ -41,13 +49,17 @@ const Ja = ["disabled"], Za = ["id", "tabindex", "aria-label", "aria-expanded",
41
49
  ariaLabel: {},
42
50
  placeholder: { default: "请选择" },
43
51
  multiple: { type: Boolean },
52
+ showSelectAll: { type: Boolean, default: !0 },
53
+ selectAllScope: { default: "filtered" },
54
+ selectAllText: { default: "全选" },
55
+ deselectAllText: { default: "全不选" },
44
56
  filterable: { type: Boolean },
45
57
  clearable: { type: Boolean },
46
58
  emptyValues: { default: () => ["", null, void 0] },
47
59
  clearValue: { type: [String, Number, Boolean, Object, null], default: "" },
48
60
  fallbackOption: { type: [Boolean, Function] },
49
61
  multipleLimit: { default: 0 },
50
- maxTagCount: {},
62
+ maxTagCount: { default: 3 },
51
63
  maxTagTextLength: {},
52
64
  removable: { type: Boolean, default: !0 },
53
65
  clearSearchAfterSelect: { type: Boolean, default: !1 },
@@ -89,808 +101,932 @@ const Ja = ["disabled"], Za = ["id", "tabindex", "aria-label", "aria-expanded",
89
101
  autofocus: { type: Boolean },
90
102
  name: {}
91
103
  },
92
- emits: ["update:modelValue", "change", "clear", "update:open", "visibleChange", "update:searchValue", "search", "select", "deselect", "removeTag", "create", "reject", "searchError", "focus", "blur", "popupScroll", "reachEnd"],
93
- setup(d, { expose: pa, emit: ha }) {
94
- const l = d, f = ha, ya = za(), De = Qa(), $ = La(Na, void 0), {
95
- disabled: m,
96
- size: B,
97
- label: Ne
98
- } = Ia(l), b = w(), H = w(), A = w(), Z = w(), oe = $a(), Ve = w("");
99
- function Ie() {
100
- var o;
101
- const e = (o = b.value) == null ? void 0 : o.closest("label");
104
+ emits: ["update:modelValue", "change", "clear", "selectAll", "deselectAll", "update:open", "visibleChange", "update:searchValue", "search", "select", "deselect", "removeTag", "create", "reject", "searchError", "focus", "blur", "popupScroll", "reachEnd"],
105
+ setup(r, { expose: At, emit: Ct }) {
106
+ const a = r, p = Ct, wt = Rt(), Xe = ul(), D = Pt(al, void 0), {
107
+ disabled: b,
108
+ size: F,
109
+ label: Ge
110
+ } = il(a), m = L(), C = L(), H = L(), ee = L(), se = It(), Fe = L("");
111
+ function Je() {
112
+ var i;
113
+ const e = (i = m.value) == null ? void 0 : i.closest("label");
102
114
  if (!e) {
103
- Ve.value = "";
115
+ Fe.value = "";
104
116
  return;
105
117
  }
106
- const a = e.cloneNode(!0);
107
- a.querySelectorAll(".hys-ui-select-wrap").forEach((i) => i.remove()), Ve.value = (a.textContent ?? "").replace(/\s+/g, " ").trim();
108
- }
109
- const Ue = pe(l.defaultValue ?? null), _ = r(
110
- () => l.modelValue !== void 0 ? l.modelValue : Ue.value
111
- ), j = r(() => l.multiple || Array.isArray(_.value)), n = Ga(() => l.valueKey), g = r(() => {
112
- const e = Array.isArray(_.value) ? _.value.filter((o) => o != null) : _.value == null || l.emptyValues.some((o) => Object.is(o, _.value)) ? [] : [_.value], a = /* @__PURE__ */ new Set();
113
- return e.filter((o) => {
114
- const i = n(o);
115
- return a.has(i) ? !1 : (a.add(i), !0);
118
+ const t = e.cloneNode(!0);
119
+ t.querySelectorAll(".hys-ui-select-wrap").forEach((o) => o.remove()), Fe.value = (t.textContent ?? "").replace(/\s+/g, " ").trim();
120
+ }
121
+ const Ze = ye(a.defaultValue ?? null), te = c(
122
+ () => a.modelValue !== void 0 ? a.modelValue : Ze.value
123
+ ), z = c(() => a.multiple || Array.isArray(te.value)), s = rl(() => a.valueKey), g = c(() => {
124
+ const e = Array.isArray(te.value) ? te.value.filter((i) => i != null) : te.value == null || a.emptyValues.some((i) => Object.is(i, te.value)) ? [] : [te.value], t = /* @__PURE__ */ new Set();
125
+ return e.filter((i) => {
126
+ const o = s(i);
127
+ return t.has(o) ? !1 : (t.add(o), !0);
116
128
  });
117
- }), W = r(() => new Set(g.value.map(n))), K = pe([]), q = pe(/* @__PURE__ */ new Map()), ye = pe(), me = w(!1), ie = pe(), Qe = w(""), be = w(l.searchValue ?? ""), ge = w(!1), k = r(() => l.searchValue ?? Qe.value), ue = r(() => l.filterable || l.allowCreate), Ye = r(
118
- () => Xa(
119
- ye.value ?? l.options,
120
- l.fieldNames,
121
- n
129
+ }), j = c(() => new Set(g.value.map(s))), R = ye([]), K = ye(/* @__PURE__ */ new Map()), ge = ye(), ke = L(!1), le = ye(), _e = L(""), xe = L(a.searchValue ?? ""), Te = L(!1), k = c(() => a.searchValue ?? _e.value), ne = c(() => a.filterable || a.allowCreate), et = c(
130
+ () => nl(
131
+ ge.value ?? a.options,
132
+ a.fieldNames,
133
+ s
122
134
  )
123
- ), se = r(
124
- () => Ye.value.flatMap((e) => e.option ? [e.option] : [])
135
+ ), ae = c(
136
+ () => et.value.flatMap((e) => e.option ? [e.option] : [])
125
137
  );
126
- I(
127
- [se, g, K],
138
+ X(
139
+ [ae, g, R],
128
140
  () => {
129
- const e = q.value, a = /* @__PURE__ */ new Map();
130
- for (const o of [...K.value, ...se.value])
131
- a.set(n(o.value), o);
132
- for (const o of g.value) {
133
- const i = n(o);
134
- !a.has(i) && e.has(i) && a.set(i, e.get(i));
141
+ const e = K.value, t = /* @__PURE__ */ new Map();
142
+ for (const i of [...R.value, ...ae.value])
143
+ t.set(s(i.value), i);
144
+ for (const i of g.value) {
145
+ const o = s(i);
146
+ !t.has(o) && e.has(o) && t.set(o, e.get(o));
135
147
  }
136
- q.value = a;
148
+ K.value = t;
137
149
  },
138
150
  { immediate: !0 }
139
151
  );
140
- function Xe(e) {
141
- if (l.fallbackOption !== !1)
142
- return typeof l.fallbackOption == "function" ? l.fallbackOption(e) : {
152
+ function He(e) {
153
+ if (a.fallbackOption !== !1)
154
+ return typeof a.fallbackOption == "function" ? a.fallbackOption(e) : {
143
155
  value: e,
144
156
  label: String(
145
- typeof e == "object" ? e.label ?? e.name ?? e[l.valueKey] ?? "未命名选项" : e
157
+ typeof e == "object" ? e.label ?? e.name ?? e[a.valueKey] ?? "未命名选项" : e
146
158
  )
147
159
  };
148
160
  }
149
- const M = r(
161
+ const B = c(
150
162
  () => g.value.flatMap((e) => {
151
- const a = q.value.get(n(e)) ?? Xe(e);
152
- return a ? [a] : [];
163
+ const t = K.value.get(s(e)) ?? He(e);
164
+ return t ? [t] : [];
153
165
  })
154
- ), Ge = r(
155
- () => M.value.slice(
166
+ ), tt = c(
167
+ () => B.value.slice(
156
168
  0,
157
- l.maxTagCount === void 0 ? void 0 : Math.max(0, l.maxTagCount)
169
+ a.maxTagCount === void 0 ? void 0 : Math.max(0, a.maxTagCount)
158
170
  )
159
- ), ke = r(
160
- () => M.value.slice(Ge.value.length)
161
- ), P = r(() => l.loading || me.value), ze = r(
162
- () => j.value && l.multipleLimit > 0 && g.value.length >= l.multipleLimit
163
- ), xe = r(
171
+ ), Se = c(
172
+ () => B.value.slice(tt.value.length)
173
+ ), P = c(() => a.loading || ke.value), Ae = c(
174
+ () => z.value && a.multipleLimit > 0 && g.value.length >= a.multipleLimit
175
+ ), Ce = c(
164
176
  () => {
165
- var e, a;
166
- return l.status ?? ((e = $ == null ? void 0 : $.invalid) != null && e.value ? "error" : (a = $ == null ? void 0 : $.status) == null ? void 0 : a.value);
177
+ var e, t;
178
+ return a.status ?? ((e = D == null ? void 0 : D.invalid) != null && e.value ? "error" : (t = D == null ? void 0 : D.status) == null ? void 0 : t.value);
167
179
  }
168
- ), ee = r(
169
- () => B.value === "sm" ? 14 : B.value === "lg" ? 18 : 16
170
- ), E = r(
180
+ ), ie = c(
181
+ () => F.value === "sm" ? 14 : F.value === "lg" ? 18 : 16
182
+ ), I = c(
171
183
  () => Math.max(
172
184
  24,
173
- l.itemHeight ?? (B.value === "sm" ? 34 : B.value === "lg" ? 50 : 42)
185
+ a.itemHeight ?? (F.value === "sm" ? 34 : F.value === "lg" ? 50 : 42)
174
186
  )
175
- ), Le = r(() => {
187
+ ), je = c(() => {
176
188
  const e = k.value.trim();
177
- if (!(!l.allowCreate || !e || [...se.value, ...K.value].some(
178
- (a) => a.label === e || n(a.value) === n(e)
189
+ if (!(!a.allowCreate || !e || [...ae.value, ...R.value].some(
190
+ (t) => t.label === e || s(t.value) === s(e)
179
191
  )))
180
192
  return { value: e, label: e };
181
- }), T = r(() => {
182
- let e = Ye.value.filter((u) => u.option).concat(
183
- K.value.filter(
184
- (u) => !se.value.some(
185
- (t) => n(t.value) === n(u.value)
193
+ }), S = c(() => {
194
+ let e = et.value.filter((u) => u.option).concat(
195
+ R.value.filter(
196
+ (u) => !ae.value.some(
197
+ (l) => s(l.value) === s(u.value)
186
198
  )
187
- ).map((u) => ({ key: n(u.value), option: u, index: -1 }))
199
+ ).map((u) => ({ key: s(u.value), option: u, index: -1 }))
188
200
  );
189
- !l.remote && !l.remoteMethod && (e = e.filter(
190
- (u) => !k.value || (l.filterMethod ? l.filterMethod(k.value, u.option) : u.option.label.toLocaleLowerCase().includes(k.value.toLocaleLowerCase()))
191
- )), l.filterSort && (e = [...e].sort(
192
- (u, t) => l.filterSort(u.option, t.option)
193
- )), Le.value && (e = [
201
+ !a.remote && !a.remoteMethod && (e = e.filter(
202
+ (u) => !k.value || (a.filterMethod ? a.filterMethod(k.value, u.option) : u.option.label.toLocaleLowerCase().includes(k.value.toLocaleLowerCase()))
203
+ )), a.filterSort && (e = [...e].sort(
204
+ (u, l) => a.filterSort(u.option, l.option)
205
+ )), je.value && (e = [
194
206
  {
195
- key: "create:" + n(Le.value.value),
196
- option: Le.value,
207
+ key: "create:" + s(je.value.value),
208
+ option: je.value,
197
209
  created: !0,
198
210
  index: -1
199
211
  },
200
212
  ...e
201
213
  ]);
202
- const a = [];
203
- let o, i = 0;
214
+ const t = [];
215
+ let i, o = 0;
204
216
  for (const u of e)
205
- u.group !== o && (o = u.group, o && a.push({ key: "group:" + o + ":" + i, index: -1, group: o })), a.push({ ...u, index: i++ });
206
- return a;
207
- }), ma = r(
208
- () => T.value.filter((e) => e.option).length
209
- ), S = w(), Te = w(0), $e = w(0), O = r(
210
- () => l.virtual && T.value.length > 100
211
- ), ne = r(
217
+ u.group !== i && (i = u.group, i && t.push({ key: "group:" + i + ":" + o, index: -1, group: i })), t.push({ ...u, index: o++ });
218
+ return t;
219
+ }), we = c(() => z.value && a.showSelectAll), Ke = c(() => {
220
+ const e = a.selectAllScope === "all" ? [...ae.value, ...R.value] : S.value.flatMap(
221
+ (i) => i.option && !i.created ? [i.option] : []
222
+ ), t = /* @__PURE__ */ new Set();
223
+ return e.filter((i) => {
224
+ const o = s(i.value);
225
+ return t.has(o) ? !1 : (t.add(o), !i.disabled);
226
+ });
227
+ }), Me = c(
228
+ () => b.value || a.readonly || P.value || !!le.value
229
+ ), Mt = c(
230
+ () => Ke.value.some(
231
+ (e) => !j.value.has(s(e.value))
232
+ )
233
+ ), lt = c(() => {
234
+ const e = new Set(
235
+ Ke.value.map((t) => s(t.value))
236
+ );
237
+ return g.value.filter((t) => {
238
+ const i = K.value.get(s(t));
239
+ return !(i != null && i.disabled) && (a.selectAllScope === "all" || e.has(s(t)));
240
+ });
241
+ }), Bt = c(
242
+ () => S.value.filter((e) => e.option).length
243
+ ), O = L(), Be = L(0), We = L(0), W = c(
244
+ () => a.virtual && S.value.length > 100
245
+ ), re = c(
212
246
  () => Math.min(
213
247
  800,
214
- Math.max(80, Number.isFinite(l.listHeight) ? l.listHeight : 240)
248
+ Math.max(80, Number.isFinite(a.listHeight) ? a.listHeight : 240)
215
249
  )
216
- ), Je = r(() => Math.max(1, Math.min(30, l.overscan))), Ee = r(
217
- () => O.value ? Math.max(
250
+ ), at = c(() => Math.max(1, Math.min(30, a.overscan))), qe = c(
251
+ () => W.value ? Math.max(
218
252
  0,
219
253
  Math.min(
220
- Math.max(0, T.value.length - 1),
221
- Math.floor(Te.value / E.value) - Je.value
254
+ Math.max(0, S.value.length - 1),
255
+ Math.floor(Be.value / I.value) - at.value
222
256
  )
223
257
  ) : 0
224
- ), Ze = r(
225
- () => O.value ? T.value.slice(
226
- Ee.value,
227
- Ee.value + Math.ceil(ne.value / E.value) + Je.value * 2
228
- ) : T.value
229
- ), re = r(
230
- () => T.value.find((e) => e.key === S.value)
231
- ), _e = r(
258
+ ), it = c(
259
+ () => W.value ? S.value.slice(
260
+ qe.value,
261
+ qe.value + Math.ceil(re.value / I.value) + at.value * 2
262
+ ) : S.value
263
+ ), ce = c(
264
+ () => S.value.find((e) => e.key === O.value)
265
+ ), ot = c(
232
266
  () => {
233
267
  var e;
234
- return !P.value && ((e = re.value) != null && e.option) && (!O.value || Ze.value.some((a) => a.key === S.value)) ? oe + "-" + re.value.index : void 0;
268
+ return !P.value && ((e = ce.value) != null && e.option) && (!W.value || it.value.some((t) => t.key === O.value)) ? se + "-" + ce.value.index : void 0;
235
269
  }
236
- ), ba = r(() => {
237
- var o;
238
- if (!O.value || l.popupMatchWidth || l.popupWidth !== void 0)
239
- return l.popupWidth;
240
- const e = B.value === "sm" ? 12 : B.value === "lg" ? 15 : 14;
241
- let a = 0;
242
- for (const i of T.value) {
243
- const u = ((o = i.option) == null ? void 0 : o.label) ?? i.group ?? "";
244
- let t = 0;
245
- for (const y of u) t += y.charCodeAt(0) > 255 ? 1 : 0.58;
246
- a = Math.max(a, t * e);
270
+ ), Ot = c(() => {
271
+ var i;
272
+ if (!W.value || a.popupMatchWidth || a.popupWidth !== void 0)
273
+ return a.popupWidth;
274
+ const e = F.value === "sm" ? 12 : F.value === "lg" ? 15 : 14;
275
+ let t = 0;
276
+ for (const o of S.value) {
277
+ const u = ((i = o.option) == null ? void 0 : i.label) ?? o.group ?? "";
278
+ let l = 0;
279
+ for (const v of u) l += v.charCodeAt(0) > 255 ? 1 : 0.58;
280
+ t = Math.max(t, l * e);
247
281
  }
248
- return Math.max($e.value, a + 52);
282
+ return Math.max(We.value, t + 52);
249
283
  });
250
- let R = !0, ce = !1, de = 0, ae, Fe, Y, He = 0, Ce, Me = "";
284
+ let U = !0, de = !1, ve = 0, oe, De, G, Re = 0, Oe, Le = "";
251
285
  const {
252
- open: h,
253
- style: ga,
254
- placement: ka,
255
- show: xa,
256
- close: V,
257
- update: Se,
258
- restoringFocus: Ta
259
- } = Ya(b, H, {
286
+ open: y,
287
+ style: Lt,
288
+ placement: ut,
289
+ show: zt,
290
+ close: w,
291
+ update: ze,
292
+ restoringFocus: Vt
293
+ } = sl(m, C, {
260
294
  get placement() {
261
- return l.placement;
295
+ return a.placement;
262
296
  },
263
- matchWidth: () => l.popupMatchWidth ? !0 : "min",
264
- width: () => ba.value,
265
- requestOpen: (e) => (f("update:open", e), l.open === void 0 ? void 0 : !1)
266
- }), Ca = r(() => ({
267
- ...l.popupStyle,
268
- ...ga.value,
297
+ get closeOnTab() {
298
+ return !we.value;
299
+ },
300
+ matchWidth: () => a.popupMatchWidth ? !0 : "min",
301
+ width: () => Ot.value,
302
+ requestOpen: (e) => (p("update:open", e), a.open === void 0 ? void 0 : !1)
303
+ }), $t = c(() => ({
304
+ ...a.popupStyle,
305
+ ...Lt.value,
269
306
  maxHeight: "min(60dvh, calc(100dvh - 20px))",
270
307
  overflowY: "hidden",
271
- "--hys-ui-select-stride": E.value + "px",
272
- "--hys-ui-select-list-height": ne.value + "px"
273
- })), Ma = () => Object.fromEntries(
274
- Object.entries(ya).filter(([e]) => !["class", "style"].includes(e))
275
- ), X = (e) => !!e.disabled || l.readonly || P.value || m.value || ze.value && !W.value.has(n(e.value));
276
- function ea() {
277
- return T.value.filter((e) => e.option && !X(e.option));
278
- }
279
- function we(e = !1) {
280
- var i;
281
- const a = ea(), o = a.find(
282
- (u) => W.value.has(n(u.option.value))
308
+ "--hys-ui-select-stride": I.value + "px",
309
+ "--hys-ui-select-list-height": re.value + "px"
310
+ })), Et = () => Object.fromEntries(
311
+ Object.entries(wt).filter(([e]) => !["class", "style"].includes(e))
312
+ ), J = (e) => !!e.disabled || a.readonly || P.value || b.value || Ae.value && !j.value.has(s(e.value));
313
+ function st() {
314
+ return S.value.filter((e) => e.option && !J(e.option));
315
+ }
316
+ function Ve(e = !1) {
317
+ var o;
318
+ const t = st(), i = t.find(
319
+ (u) => j.value.has(s(u.option.value))
283
320
  );
284
- S.value = (i = o ?? (l.defaultActiveFirst ? e ? a.at(-1) : a[0] : void 0)) == null ? void 0 : i.key;
321
+ O.value = (o = i ?? (a.defaultActiveFirst ? e ? t.at(-1) : t[0] : void 0)) == null ? void 0 : o.key;
285
322
  }
286
- async function G() {
287
- var a, o;
288
- const e = T.value.findIndex(
289
- (i) => i.key === S.value
323
+ async function Z() {
324
+ var t, i;
325
+ const e = S.value.findIndex(
326
+ (o) => o.key === O.value
290
327
  );
291
328
  if (!(e < 0)) {
292
- if (O.value && A.value) {
293
- const i = e * E.value, u = i + E.value, t = A.value.clientHeight || ne.value;
294
- i < A.value.scrollTop ? A.value.scrollTop = i : u > A.value.scrollTop + t && (A.value.scrollTop = u - t), Te.value = A.value.scrollTop;
329
+ if (W.value && H.value) {
330
+ const o = e * I.value, u = o + I.value, l = H.value.clientHeight || re.value;
331
+ o < H.value.scrollTop ? H.value.scrollTop = o : u > H.value.scrollTop + l && (H.value.scrollTop = u - l), Be.value = H.value.scrollTop;
295
332
  }
296
- await z(), O.value || (o = (a = H.value) == null ? void 0 : a.querySelector('[data-active="true"]')) == null || o.scrollIntoView({ block: "nearest" });
333
+ await V(), W.value || (i = (t = C.value) == null ? void 0 : t.querySelector('[data-active="true"]')) == null || i.scrollIntoView({ block: "nearest" });
297
334
  }
298
335
  }
299
- function te(e) {
300
- const a = Array.isArray(e) ? e : e == null || l.emptyValues.some((i) => Object.is(i, e)) ? [] : [e];
301
- if (a.length === g.value.length && a.every((i, u) => n(i) === n(g.value[u])))
336
+ function Q(e) {
337
+ const t = Array.isArray(e) ? e : e == null || a.emptyValues.some((o) => Object.is(o, e)) ? [] : [e];
338
+ if (t.length === g.value.length && t.every((o, u) => s(o) === s(g.value[u])))
302
339
  return;
303
- l.modelValue === void 0 && (Ue.value = e);
304
- const o = a.flatMap((i) => {
305
- const u = q.value.get(n(i)) ?? Xe(i);
340
+ a.modelValue === void 0 && (Ze.value = e);
341
+ const i = t.flatMap((o) => {
342
+ const u = K.value.get(s(o)) ?? He(o);
306
343
  return u ? [u] : [];
307
344
  });
308
- f("update:modelValue", e), f("change", e, j.value ? o : o[0]);
345
+ p("update:modelValue", e), p("change", e, z.value ? i : i[0]);
346
+ }
347
+ function nt() {
348
+ const e = document.activeElement;
349
+ V(() => {
350
+ var t, i;
351
+ e && ((t = C.value) != null && t.contains(e)) && e.disabled && ((i = dt()[0] ?? m.value) == null || i.focus());
352
+ });
353
+ }
354
+ function rt() {
355
+ if (!z.value || Me.value) return 0;
356
+ const e = [...g.value], t = [], i = new Set(j.value), o = a.multipleLimit > 0 ? a.multipleLimit : 1 / 0;
357
+ for (const u of Ke.value) {
358
+ const l = s(u.value);
359
+ if (!i.has(l)) {
360
+ if (e.length >= o) break;
361
+ i.add(l), e.push(u.value), t.push(u);
362
+ }
363
+ }
364
+ return t.length ? (Q(e), nt(), p("selectAll", e, t), t.length) : 0;
365
+ }
366
+ function ct() {
367
+ if (!z.value || Me.value) return 0;
368
+ const e = new Set(lt.value.map(s));
369
+ if (!e.size) return 0;
370
+ const t = g.value.filter((o) => !e.has(s(o))), i = g.value.filter((o) => e.has(s(o))).map(
371
+ (o) => K.value.get(s(o)) ?? He(o) ?? { value: o, label: String(o) }
372
+ );
373
+ return Q(t), nt(), p("deselectAll", t, i), e.size;
374
+ }
375
+ function dt() {
376
+ var e;
377
+ return Array.from(
378
+ ((e = C.value) == null ? void 0 : e.querySelectorAll(St)) ?? []
379
+ ).filter(
380
+ (t) => t.tabIndex >= 0 && t.getClientRects().length && !t.closest("[inert]")
381
+ );
309
382
  }
310
- function ve(e) {
311
- be.value = e, l.searchValue === void 0 && (Qe.value = e), f("update:searchValue", e);
383
+ function Ft(e) {
384
+ var l, v;
385
+ const t = dt(), i = document.activeElement, o = t.indexOf(i), u = i === m.value ? e.shiftKey ? void 0 : t[0] : t[o + (e.shiftKey ? -1 : 1)];
386
+ if (u) {
387
+ e.preventDefault(), u.focus();
388
+ return;
389
+ }
390
+ if ((l = C.value) != null && l.contains(i)) {
391
+ e.preventDefault();
392
+ const f = Array.from(
393
+ document.querySelectorAll(St)
394
+ ).filter(
395
+ (T) => {
396
+ var Y;
397
+ return !((Y = C.value) != null && Y.contains(T)) && T.tabIndex >= 0 && T.getClientRects().length && !T.closest("[inert]");
398
+ }
399
+ ), x = f.indexOf(m.value), q = f.slice(x + 1).find((T) => {
400
+ var Y, he;
401
+ return !((he = (Y = m.value) == null ? void 0 : Y.parentElement) != null && he.contains(T));
402
+ });
403
+ w(), (v = e.shiftKey ? m.value : q ?? m.value) == null || v.focus();
404
+ } else w();
405
+ }
406
+ function fe(e) {
407
+ xe.value = e, a.searchValue === void 0 && (_e.value = e), p("update:searchValue", e);
312
408
  }
313
- function aa(e) {
314
- q.value.has(n(e.value)) || (K.value = [...K.value, e], q.value = new Map(q.value).set(
315
- n(e.value),
409
+ function vt(e) {
410
+ K.value.has(s(e.value)) || (R.value = [...R.value, e], K.value = new Map(K.value).set(
411
+ s(e.value),
316
412
  e
317
- ), f("create", e));
413
+ ), p("create", e));
318
414
  }
319
- function ta(e) {
415
+ function ft(e) {
320
416
  try {
321
- const a = l.createOption ? l.createOption(e) : { label: e, value: e };
322
- return a ? { ...a, label: String(a.label) } : void 0;
417
+ const t = a.createOption ? a.createOption(e) : { label: e, value: e };
418
+ return t ? { ...t, label: String(t.label) } : void 0;
323
419
  } catch {
324
- f("reject", e, "create");
420
+ p("reject", e, "create");
325
421
  return;
326
422
  }
327
423
  }
328
- async function la(e) {
424
+ async function pt(e) {
329
425
  var u;
330
- if (!(e != null && e.option) || X(e.option)) return;
331
- let a = e.option;
426
+ if (!(e != null && e.option) || J(e.option)) return;
427
+ let t = e.option;
332
428
  if (e.created) {
333
- const t = ta(a.label);
334
- if (!t) return;
335
- if (a = q.value.get(n(t.value)) ?? t, ze.value && !W.value.has(n(a.value))) {
336
- f("reject", a.value, "limit");
429
+ const l = ft(t.label);
430
+ if (!l) return;
431
+ if (t = K.value.get(s(l.value)) ?? l, Ae.value && !j.value.has(s(t.value))) {
432
+ p("reject", t.value, "limit");
337
433
  return;
338
434
  }
339
- aa(a);
435
+ vt(t);
340
436
  }
341
- const o = n(a.value), i = W.value.has(o);
342
- if (j.value) {
343
- if (i)
344
- te(g.value.filter((t) => n(t) !== o)), f("deselect", a.value, a);
437
+ const i = s(t.value), o = j.value.has(i);
438
+ if (z.value) {
439
+ if (o)
440
+ Q(g.value.filter((l) => s(l) !== i)), p("deselect", t.value, t);
345
441
  else {
346
- if (ze.value) {
347
- f("reject", a.value, "limit");
442
+ if (Ae.value) {
443
+ p("reject", t.value, "limit");
348
444
  return;
349
445
  }
350
- te([...g.value, a.value]), f("select", a.value, a);
446
+ Q([...g.value, t.value]), p("select", t.value, t);
351
447
  }
352
- l.clearSearchAfterSelect && ve(""), await z(), h.value && ue.value && ((u = Z.value) == null || u.focus());
448
+ a.clearSearchAfterSelect && fe(""), await V(), y.value && ne.value && ((u = ee.value) == null || u.focus());
353
449
  } else
354
- te(a.value), f("select", a.value, a), V(!0);
450
+ Q(t.value), p("select", t.value, t), w(!0);
355
451
  }
356
- function je(e) {
357
- var a;
358
- m.value || l.readonly || e.disabled || !l.removable || (te(g.value.filter((o) => n(o) !== n(e.value))), f("removeTag", e.value, e), f("deselect", e.value, e), (a = b.value) == null || a.focus());
452
+ function Pe(e) {
453
+ var t;
454
+ b.value || a.readonly || e.disabled || !a.removable || (Q(g.value.filter((i) => s(i) !== s(e.value))), p("removeTag", e.value, e), p("deselect", e.value, e), (t = m.value) == null || t.focus());
359
455
  }
360
- function Sa() {
361
- var e, a;
362
- m.value || l.readonly || (fe(), te(j.value ? [] : l.clearValue), l.clearCreatedOnClear && (K.value = []), ve(""), f("clear"), h.value && ue.value ? (e = Z.value) == null || e.focus() : (a = b.value) == null || a.focus());
456
+ function Ht() {
457
+ var e, t;
458
+ b.value || a.readonly || (pe(), Q(z.value ? [] : a.clearValue), a.clearCreatedOnClear && (R.value = []), fe(""), p("clear"), y.value && ne.value ? (e = ee.value) == null || e.focus() : (t = m.value) == null || t.focus());
363
459
  }
364
- async function F(e = !1, a = !1) {
365
- var o;
366
- !R || m.value || (!l.retainSearch && !l.searchValue && ve(""), we(e), await xa(a), await z(), h.value && (ue.value && ((o = Z.value) == null || o.focus()), await G()));
460
+ async function N(e = !1, t = !1) {
461
+ var i;
462
+ !U || b.value || (!a.retainSearch && !a.searchValue && fe(""), Ve(e), await zt(t), await V(), y.value && (ne.value && ((i = ee.value) == null || i.focus()), await Z()));
367
463
  }
368
- function oa() {
369
- h.value ? V() : F();
464
+ function ht() {
465
+ y.value ? w() : N();
370
466
  }
371
- function fe() {
372
- de++, clearTimeout(Fe), Fe = void 0, ae == null || ae.abort(), ae = void 0, me.value = !1;
467
+ function pe() {
468
+ ve++, clearTimeout(De), De = void 0, oe == null || oe.abort(), oe = void 0, ke.value = !1;
373
469
  }
374
- function Be(e, a = !1) {
375
- if (fe(), !l.remoteMethod || !h.value || !R || m.value)
470
+ function $e(e, t = !1) {
471
+ if (pe(), !a.remoteMethod || !y.value || !U || b.value)
376
472
  return;
377
- const o = de, i = new AbortController();
378
- ae = i, me.value = !0, ie.value = void 0;
473
+ const i = ve, o = new AbortController();
474
+ oe = o, ke.value = !0, le.value = void 0;
379
475
  const u = async () => {
380
476
  try {
381
- const t = await l.remoteMethod(e, {
382
- signal: i.signal
477
+ const l = await a.remoteMethod(e, {
478
+ signal: o.signal
383
479
  });
384
- if (!R || i.signal.aborted || o !== de || !h.value)
480
+ if (!U || o.signal.aborted || i !== ve || !y.value)
385
481
  return;
386
- Array.isArray(t) && (ye.value = t);
387
- } catch (t) {
388
- if (i.signal.aborted || o !== de || !R) return;
389
- ie.value = t, ye.value = [], f("searchError", t, e);
482
+ Array.isArray(l) && (ge.value = l);
483
+ } catch (l) {
484
+ if (o.signal.aborted || i !== ve || !U) return;
485
+ le.value = l, ge.value = [], p("searchError", l, e);
390
486
  } finally {
391
- o === de && (me.value = !1, ae = void 0, await z(), h.value && (we(), Se(), G()));
487
+ i === ve && (ke.value = !1, oe = void 0, await V(), y.value && (Ve(), ze(), Z()));
392
488
  }
393
489
  };
394
- a || l.debounce <= 0 ? u() : Fe = setTimeout(u, l.debounce);
490
+ t || a.debounce <= 0 ? u() : De = setTimeout(u, a.debounce);
395
491
  }
396
- function We() {
397
- Be(k.value, !0);
492
+ function Ie() {
493
+ $e(k.value, !0);
398
494
  }
399
- function wa(e) {
400
- var p;
401
- if (m.value || l.readonly || P.value || !j.value || !l.allowCreate || !((p = l.tokenSeparators) != null && p.length))
495
+ function jt(e) {
496
+ var f;
497
+ if (b.value || a.readonly || P.value || !z.value || !a.allowCreate || !((f = a.tokenSeparators) != null && f.length))
402
498
  return !1;
403
- let a = [e], o = !1;
404
- for (const C of l.tokenSeparators)
405
- C && (a.some((D) => D.includes(C)) && (o = !0), a = a.flatMap((D) => D.split(C)));
406
- if (!o) return !1;
407
- const i = a.pop() ?? "", u = [...g.value], t = new Set(u.map(n));
408
- let y = !1;
409
- for (const C of a.map((D) => D.trim()).filter(Boolean)) {
410
- const D = [...se.value, ...K.value].find(
411
- (da) => da.label === C || n(da.value) === n(C)
412
- ), N = D ?? ta(C);
413
- if (!N) continue;
414
- const ca = n(N.value);
415
- if (!(t.has(ca) || N.disabled)) {
416
- if (l.multipleLimit > 0 && u.length >= l.multipleLimit) {
417
- f("reject", N.value, "limit");
499
+ let t = [e], i = !1;
500
+ for (const x of a.tokenSeparators)
501
+ x && (t.some((q) => q.includes(x)) && (i = !0), t = t.flatMap((q) => q.split(x)));
502
+ if (!i) return !1;
503
+ const o = t.pop() ?? "", u = [...g.value], l = new Set(u.map(s));
504
+ let v = !1;
505
+ for (const x of t.map((q) => q.trim()).filter(Boolean)) {
506
+ const q = [...ae.value, ...R.value].find(
507
+ (he) => he.label === x || s(he.value) === s(x)
508
+ ), T = q ?? ft(x);
509
+ if (!T) continue;
510
+ const Y = s(T.value);
511
+ if (!(l.has(Y) || T.disabled)) {
512
+ if (a.multipleLimit > 0 && u.length >= a.multipleLimit) {
513
+ p("reject", T.value, "limit");
418
514
  continue;
419
515
  }
420
- D || aa(N), t.add(ca), u.push(N.value), y = !0, f("select", N.value, N);
516
+ q || vt(T), l.add(Y), u.push(T.value), v = !0, p("select", T.value, T);
421
517
  }
422
518
  }
423
- return y && te(u), ve(i), !0;
519
+ return v && Q(u), fe(o), !0;
424
520
  }
425
- function ia(e) {
426
- if (m.value) return;
427
- const a = e.target.value;
428
- be.value = a, !ge.value && (wa(a) || ve(a));
521
+ function yt(e) {
522
+ if (b.value) return;
523
+ const t = e.target.value;
524
+ xe.value = t, !Te.value && (jt(t) || fe(t));
429
525
  }
430
- function Ba(e) {
431
- ge.value = !1, ia(e);
526
+ function Kt(e) {
527
+ Te.value = !1, yt(e);
432
528
  }
433
- async function ua(e) {
434
- var i, u;
435
- if (m.value || !l.keyboard || e.isComposing || ge.value || e.keyCode === 229 || e.target.closest(
529
+ async function mt(e) {
530
+ var o, u;
531
+ if (b.value || !a.keyboard || e.isComposing || Te.value || e.keyCode === 229)
532
+ return;
533
+ if (e.key === "Tab" && y.value && we.value) {
534
+ Ft(e);
535
+ return;
536
+ }
537
+ if (e.target.closest(
436
538
  ".hys-ui-select-tag button,.hys-ui-select-clear"
437
539
  ))
438
540
  return;
439
- const a = e.target === Z.value, o = e.target;
440
- if (!(o !== b.value && !a && !o.matches('[role="option"]') && o.closest(
541
+ const t = e.target === ee.value, i = e.target;
542
+ if (!(i !== m.value && !t && !i.matches('[role="option"]') && i.closest(
441
543
  'button,input,textarea,select,a,[role="button"],[contenteditable="true"]'
442
544
  ))) {
443
545
  if (["ArrowDown", "ArrowUp", "Home", "End", "PageDown", "PageUp"].includes(
444
546
  e.key
445
547
  )) {
446
- if (e.preventDefault(), !h.value)
447
- await F(e.key === "ArrowUp" || e.key === "End");
548
+ if (e.preventDefault(), !y.value)
549
+ await N(e.key === "ArrowUp" || e.key === "End");
448
550
  else {
449
- const t = T.value, y = ["ArrowUp", "End", "PageUp"].includes(e.key) ? -1 : 1;
450
- let p = e.key === "Home" ? -1 : e.key === "End" ? t.length : t.findIndex((C) => C.key === S.value);
451
- e.key.startsWith("Page") && (p = Math.max(
551
+ const l = S.value, v = ["ArrowUp", "End", "PageUp"].includes(e.key) ? -1 : 1;
552
+ let f = e.key === "Home" ? -1 : e.key === "End" ? l.length : l.findIndex((x) => x.key === O.value);
553
+ e.key.startsWith("Page") && (f = Math.max(
452
554
  -1,
453
555
  Math.min(
454
- t.length,
455
- p + y * (Math.max(1, Math.floor(ne.value / E.value)) - 1)
556
+ l.length,
557
+ f + v * (Math.max(1, Math.floor(re.value / I.value)) - 1)
456
558
  )
457
559
  ));
458
- for (let C = 0; C < t.length; C++)
459
- if (p = (p + y + t.length) % t.length, t[p].option && !X(t[p].option)) {
460
- S.value = t[p].key;
560
+ for (let x = 0; x < l.length; x++)
561
+ if (f = (f + v + l.length) % l.length, l[f].option && !J(l[f].option)) {
562
+ O.value = l[f].key;
461
563
  break;
462
564
  }
463
565
  }
464
- await G();
465
- } else if (e.key === "Enter" || e.key === " " && !a)
466
- e.preventDefault(), h.value ? await la(re.value) : await F();
566
+ await Z();
567
+ } else if (e.key === "Enter" || e.key === " " && !t)
568
+ e.preventDefault(), y.value ? await pt(ce.value) : await N();
467
569
  else if (e.key === "Tab")
468
- V(!!((i = H.value) != null && i.contains(document.activeElement)));
469
- else if (e.key === "Backspace" && j.value && !k.value) {
470
- const t = [...M.value].reverse().find((y) => !y.disabled);
471
- t && l.removable && (e.preventDefault(), je(t), a && (await z(), (u = Z.value) == null || u.focus()));
472
- } else if (!ue.value && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
473
- Me += e.key.toLocaleLowerCase(), clearTimeout(Ce), Ce = setTimeout(() => {
474
- Me = "";
475
- }, 600), h.value || await F();
476
- const t = ea().find(
477
- (y) => y.option.label.toLocaleLowerCase().startsWith(Me)
570
+ w(!!((o = C.value) != null && o.contains(document.activeElement)));
571
+ else if (e.key === "Backspace" && z.value && !k.value) {
572
+ const l = [...B.value].reverse().find((v) => !v.disabled);
573
+ l && a.removable && (e.preventDefault(), Pe(l), t && (await V(), (u = ee.value) == null || u.focus()));
574
+ } else if (!ne.value && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
575
+ Le += e.key.toLocaleLowerCase(), clearTimeout(Oe), Oe = setTimeout(() => {
576
+ Le = "";
577
+ }, 600), y.value || await N();
578
+ const l = st().find(
579
+ (v) => v.option.label.toLocaleLowerCase().startsWith(Le)
478
580
  );
479
- t && (S.value = t.key, await G());
581
+ l && (O.value = l.key, await Z());
480
582
  }
481
583
  }
482
584
  }
483
- function sa(e) {
484
- ce || (ce = !0, f("focus", e)), l.showOnFocus && !h.value && !Ta.value && e.target === b.value && F();
585
+ function bt(e) {
586
+ de || (de = !0, p("focus", e)), a.showOnFocus && !y.value && !Vt.value && e.target === m.value && N();
485
587
  }
486
- function na(e) {
487
- z(() => {
488
- var o, i;
489
- const a = document.activeElement;
490
- ce && !((o = b.value) != null && o.contains(a)) && !((i = H.value) != null && i.contains(a)) && (ce = !1, f("blur", e));
588
+ function gt(e) {
589
+ var i, o;
590
+ const t = e.relatedTarget;
591
+ t && ((i = m.value) != null && i.contains(t) || (o = C.value) != null && o.contains(t)) || V(() => {
592
+ var l, v;
593
+ const u = document.activeElement;
594
+ de && !((l = m.value) != null && l.contains(u)) && !((v = C.value) != null && v.contains(u)) && (de = !1, we.value && w(), p("blur", e));
491
595
  });
492
596
  }
493
- function Aa(e) {
494
- const a = e.target;
495
- Te.value = a.scrollTop, f("popupScroll", e), a.scrollTop + a.clientHeight >= a.scrollHeight - 2 && f("reachEnd");
597
+ function Wt(e) {
598
+ const t = e.target;
599
+ Be.value = t.scrollTop, p("popupScroll", e), t.scrollTop + t.clientHeight >= t.scrollHeight - 2 && p("reachEnd");
496
600
  }
497
- function Ke() {
498
- Y == null || Y.disconnect(), Y = void 0, cancelAnimationFrame(He);
601
+ function Ne() {
602
+ G == null || G.disconnect(), G = void 0, cancelAnimationFrame(Re);
499
603
  }
500
- function Oa() {
501
- if (Ke(), !h.value || !R) return;
604
+ function qt() {
605
+ if (Ne(), !y.value || !U) return;
502
606
  const e = () => {
503
- cancelAnimationFrame(He), He = requestAnimationFrame(() => {
504
- var a;
505
- $e.value = ((a = b.value) == null ? void 0 : a.clientWidth) ?? 0, Se();
607
+ cancelAnimationFrame(Re), Re = requestAnimationFrame(() => {
608
+ var t;
609
+ We.value = ((t = m.value) == null ? void 0 : t.clientWidth) ?? 0, ze();
506
610
  });
507
611
  };
508
- typeof ResizeObserver < "u" && (Y = new ResizeObserver(e), b.value && Y.observe(b.value), H.value && Y.observe(H.value));
509
- }
510
- I(k, (e) => {
511
- be.value = e, S.value = void 0, Te.value = 0, A.value && (A.value.scrollTop = 0), we(), f("search", e), Be(e), h.value && z(G);
512
- }), I(T, () => {
513
- var a;
514
- const e = !((a = re.value) != null && a.option) || X(re.value.option);
515
- e && we(), h.value && z(() => {
516
- Se(), e && G();
612
+ typeof ResizeObserver < "u" && (G = new ResizeObserver(e), m.value && G.observe(m.value), C.value && G.observe(C.value));
613
+ }
614
+ X(k, (e) => {
615
+ xe.value = e, O.value = void 0, Be.value = 0, H.value && (H.value.scrollTop = 0), Ve(), p("search", e), $e(e), y.value && V(Z);
616
+ }), X(S, () => {
617
+ var t;
618
+ const e = !((t = ce.value) != null && t.option) || J(ce.value.option);
619
+ e && Ve(), y.value && V(() => {
620
+ ze(), e && Z();
517
621
  });
518
- }), I(
622
+ }), X(
519
623
  [
520
624
  g,
521
- B,
522
- () => l.popupMatchWidth,
523
- () => l.popupWidth,
524
- () => l.placement
625
+ F,
626
+ () => a.popupMatchWidth,
627
+ () => a.popupWidth,
628
+ () => a.placement
525
629
  ],
526
630
  () => {
527
- h.value && z(Se);
631
+ y.value && V(ze);
528
632
  }
529
- ), I(h, (e) => {
530
- var a;
531
- f("visibleChange", e), e ? ($e.value = ((a = b.value) == null ? void 0 : a.clientWidth) ?? 0, z(Oa), Be(k.value)) : (Ke(), fe(), clearTimeout(Ce), Me = "");
532
- }), I(
533
- () => l.open,
633
+ ), X(y, (e) => {
634
+ var t;
635
+ p("visibleChange", e), e ? (We.value = ((t = m.value) == null ? void 0 : t.clientWidth) ?? 0, V(qt), $e(k.value)) : (Ne(), pe(), clearTimeout(Oe), Le = "");
636
+ }), X(
637
+ () => a.open,
534
638
  (e) => {
535
- R && (e ? F(!1, !0) : e === !1 && V(!1, !0));
639
+ U && (e ? N(!1, !0) : e === !1 && w(!1, !0));
536
640
  }
537
- ), I(
538
- m,
641
+ ), X(
642
+ b,
539
643
  (e) => {
540
- e && (V(!1, !0), fe(), f("update:open", !1));
644
+ e && (w(!1, !0), pe(), p("update:open", !1));
541
645
  },
542
646
  { flush: "sync" }
543
- ), I(
544
- () => l.remoteMethod,
647
+ ), X(
648
+ () => a.remoteMethod,
545
649
  () => {
546
- ye.value = void 0, ie.value = void 0, h.value && Be(k.value);
650
+ ge.value = void 0, le.value = void 0, y.value && $e(k.value);
547
651
  }
548
652
  );
549
- function ra() {
550
- R = !1, V(!1, !0), Ke(), fe(), clearTimeout(Ce), ce = !1;
653
+ function kt() {
654
+ U = !1, w(!1, !0), Ne(), pe(), clearTimeout(Oe), de = !1;
551
655
  }
552
- return Ea(() => {
656
+ return Nt(() => {
553
657
  var e;
554
- Ie(), l.autofocus && !m.value && ((e = b.value) == null || e.focus()), (l.open ?? l.defaultOpen) && F(!1, !0);
555
- }), Fa(Ie), Ha(() => {
556
- R = !0, l.open && F(!1, !0);
557
- }), ja(ra), Wa(ra), pa({
658
+ Je(), a.autofocus && !b.value && ((e = m.value) == null || e.focus()), (a.open ?? a.defaultOpen) && N(!1, !0);
659
+ }), Ut(Je), Qt(() => {
660
+ U = !0, a.open && N(!1, !0);
661
+ }), Yt(kt), Xt(kt), At({
558
662
  focus: () => {
559
663
  var e;
560
- m.value || (e = b.value) == null || e.focus();
664
+ b.value || (e = m.value) == null || e.focus();
561
665
  },
562
666
  blur: () => {
563
- var a, o;
667
+ var t, i;
564
668
  const e = document.activeElement;
565
- e && ((a = b.value) != null && a.contains(e) || (o = H.value) != null && o.contains(e)) && e.blur(), V();
669
+ e && ((t = m.value) != null && t.contains(e) || (i = C.value) != null && i.contains(e)) && e.blur(), w();
566
670
  },
567
- open: () => F(),
568
- close: () => V(),
671
+ open: () => N(),
672
+ close: () => w(),
569
673
  scrollTo: (e) => {
570
- S.value = n(e), G();
674
+ O.value = s(e), Z();
571
675
  },
572
- retry: We,
573
- selected: M,
676
+ retry: Ie,
677
+ selectAll: rt,
678
+ deselectAll: ct,
679
+ selected: B,
574
680
  query: k,
575
- isOpen: h
576
- }), (e, a) => {
577
- var o, i, u;
578
- return c(), v("div", qe(s(De), {
579
- class: ["hys-ui-select-wrap", [e.$attrs.class, "hys-ui-select-" + s(B)]],
681
+ isOpen: y
682
+ }), (e, t) => {
683
+ var i, o, u;
684
+ return d(), h("div", Ue(n(Xe), {
685
+ class: ["hys-ui-select-wrap", [e.$attrs.class, "hys-ui-select-" + n(F)]],
580
686
  style: e.$attrs.style
581
687
  }), [
582
- U("button", {
688
+ $("button", {
583
689
  hidden: "",
584
690
  type: "button",
585
691
  tabindex: "-1",
586
692
  "aria-hidden": "true",
587
- disabled: s(m),
588
- onClick: a[0] || (a[0] = Ae((t) => {
589
- var y;
590
- (y = b.value) == null || y.focus(), oa();
693
+ disabled: n(b),
694
+ onClick: t[0] || (t[0] = Ee((l) => {
695
+ var v;
696
+ (v = m.value) == null || v.focus(), ht();
591
697
  }, ["prevent"]))
592
- }, null, 8, Ja),
593
- U("div", qe({
698
+ }, null, 8, cl),
699
+ $("div", Ue({
594
700
  ref_key: "trigger",
595
- ref: b
596
- }, Ma(), {
701
+ ref: m
702
+ }, Et(), {
597
703
  class: ["hys-ui-select", {
598
- "hys-ui-select-disabled": s(m),
599
- "hys-ui-select-borderless": !d.bordered,
600
- "hys-ui-select-error": xe.value === "error",
601
- "hys-ui-select-warning": xe.value === "warning",
602
- "hys-ui-select-success": xe.value === "success"
704
+ "hys-ui-select-disabled": n(b),
705
+ "hys-ui-select-borderless": !r.bordered,
706
+ "hys-ui-select-error": Ce.value === "error",
707
+ "hys-ui-select-warning": Ce.value === "warning",
708
+ "hys-ui-select-success": Ce.value === "success"
603
709
  }],
604
- id: e.$attrs.id || ((o = s($)) == null ? void 0 : o.id.value) || void 0,
710
+ id: e.$attrs.id || ((i = n(D)) == null ? void 0 : i.id.value) || void 0,
605
711
  "data-hys-ui-field-managed": "",
606
712
  role: "combobox",
607
- tabindex: s(m) ? -1 : 0,
608
- "aria-label": d.ariaLabel || s(Ne) || Ve.value || M.value.map((t) => t.label).join("、") || d.placeholder,
713
+ tabindex: n(b) ? -1 : 0,
714
+ "aria-label": r.ariaLabel || n(Ge) || Fe.value || B.value.map((l) => l.label).join("、") || r.placeholder,
609
715
  "aria-haspopup": "listbox",
610
- "aria-expanded": s(h),
611
- "aria-disabled": s(m) || void 0,
612
- "aria-readonly": d.readonly || void 0,
613
- "aria-required": ((i = s($)) == null ? void 0 : i.required.value) || void 0,
614
- "aria-invalid": xe.value === "error" || !1,
615
- "aria-describedby": [e.$attrs["aria-describedby"], (u = s($)) == null ? void 0 : u.describedBy.value].filter(Boolean).join(" ") || void 0,
616
- "aria-controls": s(h) ? s(oe) : void 0,
617
- "aria-activedescendant": s(h) ? _e.value : void 0,
618
- onClick: a[1] || (a[1] = Ae((t) => !t.target.closest("button") && oa(), ["prevent"])),
619
- onKeydown: ua,
620
- onFocusin: sa,
621
- onFocusout: na
716
+ "aria-expanded": n(y),
717
+ "aria-disabled": n(b) || void 0,
718
+ "aria-readonly": r.readonly || void 0,
719
+ "aria-required": ((o = n(D)) == null ? void 0 : o.required.value) || void 0,
720
+ "aria-invalid": Ce.value === "error" || !1,
721
+ "aria-describedby": [e.$attrs["aria-describedby"], (u = n(D)) == null ? void 0 : u.describedBy.value].filter(Boolean).join(" ") || void 0,
722
+ "aria-controls": n(y) ? n(se) : void 0,
723
+ "aria-activedescendant": n(y) ? ot.value : void 0,
724
+ onClick: t[1] || (t[1] = Ee((l) => !l.target.closest("button") && ht(), ["prevent"])),
725
+ onKeydown: mt,
726
+ onFocusin: bt,
727
+ onFocusout: gt
622
728
  }), [
623
- U("span", _a, [
624
- x(e.$slots, "label", { selected: M.value }, () => {
625
- var t, y;
729
+ $("span", vl, [
730
+ A(e.$slots, "label", { selected: B.value }, () => {
731
+ var l, v;
626
732
  return [
627
- j.value && M.value.length ? (c(), v(le, { key: 0 }, [
628
- (c(!0), v(le, null, Pe(Ge.value, (p) => (c(), v("span", {
629
- key: s(n)(p.value),
733
+ z.value && B.value.length ? (d(), h(ue, { key: 0 }, [
734
+ (d(!0), h(ue, null, Qe(tt.value, (f) => (d(), h("span", {
735
+ key: n(s)(f.value),
630
736
  class: "hys-ui-select-tag"
631
737
  }, [
632
- x(e.$slots, "tag", {
633
- option: p,
634
- remove: () => je(p),
635
- disabled: s(m) || d.readonly || p.disabled
738
+ A(e.$slots, "tag", {
739
+ option: f,
740
+ remove: () => Pe(f),
741
+ disabled: n(b) || r.readonly || f.disabled
636
742
  }, () => [
637
- U("span", {
743
+ $("span", {
638
744
  class: "hys-ui-select-tag-text",
639
- title: p.label
640
- }, Q(d.maxTagTextLength && p.label.length > d.maxTagTextLength ? p.label.slice(0, d.maxTagTextLength) + "…" : p.label), 9, et),
641
- d.removable && !d.readonly && !p.disabled ? (c(), v("button", {
745
+ title: f.label
746
+ }, M(r.maxTagTextLength && f.label.length > r.maxTagTextLength ? f.label.slice(0, r.maxTagTextLength) + "…" : f.label), 9, fl),
747
+ r.removable && !r.readonly && !f.disabled ? (d(), h("button", {
642
748
  key: 0,
643
749
  type: "button",
644
- disabled: s(m),
645
- "aria-label": "移除 " + p.label,
646
- onClick: Ae((C) => je(p), ["stop"])
750
+ disabled: n(b),
751
+ "aria-label": "移除 " + f.label,
752
+ onClick: Ee((x) => Pe(f), ["stop"])
647
753
  }, [
648
- x(e.$slots, "remove-icon", {}, () => [
649
- Oe(s(fa), {
650
- size: ee.value - 3
754
+ A(e.$slots, "remove-icon", {}, () => [
755
+ me(n(Tt), {
756
+ size: ie.value - 3
651
757
  }, null, 8, ["size"])
652
758
  ], !0)
653
- ], 8, at)) : L("", !0)
759
+ ], 8, pl)) : E("", !0)
654
760
  ], !0)
655
761
  ]))), 128)),
656
- ke.value.length ? (c(), v("span", {
762
+ Se.value.length ? (d(), h("span", {
657
763
  key: 0,
658
764
  class: "hys-ui-select-tag hys-ui-select-more",
659
- title: ke.value.map((p) => p.label).join("、")
765
+ title: Se.value.map((f) => f.label).join("、")
660
766
  }, [
661
- x(e.$slots, "max-tag", { omitted: ke.value }, () => [
662
- J("+" + Q(ke.value.length), 1)
767
+ A(e.$slots, "max-tag", { omitted: Se.value }, () => [
768
+ _("+" + M(Se.value.length), 1)
663
769
  ], !0)
664
- ], 8, tt)) : L("", !0)
665
- ], 64)) : (c(), v("span", {
770
+ ], 8, hl)) : E("", !0)
771
+ ], 64)) : (d(), h("span", {
666
772
  key: 1,
667
- class: va(["hys-ui-select-single-label", { "hys-ui-select-placeholder": !M.value.length }]),
668
- title: (t = M.value[0]) == null ? void 0 : t.label
669
- }, Q(((y = M.value[0]) == null ? void 0 : y.label) ?? d.placeholder), 11, lt))
773
+ class: xt(["hys-ui-select-single-label", { "hys-ui-select-placeholder": !B.value.length }]),
774
+ title: (l = B.value[0]) == null ? void 0 : l.label
775
+ }, M(((v = B.value[0]) == null ? void 0 : v.label) ?? r.placeholder), 11, yl))
670
776
  ];
671
777
  }, !0)
672
778
  ]),
673
- d.showArrow || P.value ? (c(), v("span", ot, [
674
- x(e.$slots, "suffix", {
675
- open: s(h),
779
+ r.showArrow || P.value ? (d(), h("span", ml, [
780
+ A(e.$slots, "suffix", {
781
+ open: n(y),
676
782
  loading: P.value
677
783
  }, () => [
678
- P.value ? (c(), Re(s(qa), {
784
+ P.value ? (d(), Ye(n(_t), {
679
785
  key: 0,
680
786
  class: "hys-ui-icon-spin",
681
- size: ee.value
682
- }, null, 8, ["size"])) : (c(), Re(s(Pa), {
787
+ size: ie.value
788
+ }, null, 8, ["size"])) : (d(), Ye(n(el), {
683
789
  key: 1,
684
790
  class: "hys-ui-select-chevron",
685
- size: ee.value,
791
+ size: ie.value,
686
792
  "aria-hidden": "true"
687
793
  }, null, 8, ["size"]))
688
794
  ], !0)
689
- ])) : L("", !0)
690
- ], 16, Za),
691
- d.clearable && g.value.length && !s(m) && !d.readonly ? (c(), v("button", {
795
+ ])) : E("", !0)
796
+ ], 16, dl),
797
+ r.clearable && g.value.length && !n(b) && !r.readonly ? (d(), h("button", {
692
798
  key: 0,
693
799
  type: "button",
694
800
  class: "hys-ui-select-clear",
695
801
  "aria-label": "清空选择",
696
- onClick: Ae(Sa, ["stop"])
802
+ onClick: Ee(Ht, ["stop"])
697
803
  }, [
698
- x(e.$slots, "clear-icon", {}, () => [
699
- Oe(s(fa), {
700
- size: ee.value - 2
804
+ A(e.$slots, "clear-icon", {}, () => [
805
+ me(n(Tt), {
806
+ size: ie.value - 2
701
807
  }, null, 8, ["size"])
702
808
  ], !0)
703
- ])) : L("", !0),
704
- d.name ? (c(!0), v(le, { key: 1 }, Pe(g.value, (t, y) => (c(), v("input", {
705
- key: y,
809
+ ])) : E("", !0),
810
+ r.name ? (d(!0), h(ue, { key: 1 }, Qe(g.value, (l, v) => (d(), h("input", {
811
+ key: v,
706
812
  type: "hidden",
707
- name: d.name,
708
- value: String(typeof t == "object" ? s(Ua)(t, d.valueKey) ?? "" : t),
709
- disabled: s(m)
710
- }, null, 8, it))), 128)) : L("", !0),
711
- (c(), Re(Ka, {
712
- to: d.appendTo === !1 ? "body" : d.appendTo,
713
- disabled: d.appendTo === !1
813
+ name: r.name,
814
+ value: String(typeof l == "object" ? n(ol)(l, r.valueKey) ?? "" : l),
815
+ disabled: n(b)
816
+ }, null, 8, bl))), 128)) : E("", !0),
817
+ (d(), Ye(Gt, {
818
+ to: r.appendTo === !1 ? "body" : r.appendTo,
819
+ disabled: r.appendTo === !1
714
820
  }, [
715
- s(h) ? (c(), v("div", qe({
716
- key: 0,
717
- ref_key: "panel",
718
- ref: H
719
- }, s(De), {
720
- class: ["hys-ui-select-options hys-ui-floating-surface", ["hys-ui-select-popup-" + s(B), d.popupClass]],
721
- "data-size": s(B),
722
- "data-placement": s(ka),
723
- style: Ca.value,
724
- onKeydown: ua,
725
- onFocusin: sa,
726
- onFocusout: na
727
- }), [
728
- e.$slots.header ? (c(), v("div", st, [
729
- x(e.$slots, "header", {
730
- query: k.value,
731
- selected: M.value,
732
- close: () => s(V)()
733
- }, void 0, !0)
734
- ])) : L("", !0),
735
- ue.value ? (c(), v("input", {
736
- key: 1,
737
- ref_key: "searchInput",
738
- ref: Z,
739
- value: be.value,
740
- class: "hys-ui-select-search",
741
- placeholder: "搜索选项…",
742
- "aria-label": "搜索选项",
743
- "aria-controls": s(oe),
744
- "aria-activedescendant": _e.value,
745
- "aria-autocomplete": "list",
746
- onInput: ia,
747
- onCompositionstart: a[2] || (a[2] = (t) => ge.value = !0),
748
- onCompositionend: Ba
749
- }, null, 40, nt)) : L("", !0),
750
- U("div", {
751
- id: s(oe),
752
- ref_key: "viewport",
753
- ref: A,
754
- role: "listbox",
755
- "aria-label": d.ariaLabel || s(Ne) || "可选项",
756
- "aria-multiselectable": j.value || void 0,
757
- "aria-busy": P.value || void 0,
758
- class: "hys-ui-select-list",
759
- style: he({
760
- maxHeight: "min(" + ne.value + "px, 45dvh)"
761
- }),
762
- onScroll: Aa
763
- }, [
764
- P.value ? (c(), v("p", ct, [
765
- x(e.$slots, "loading", {}, () => [
766
- J(Q(d.loadingText), 1)
767
- ], !0)
768
- ])) : ie.value ? (c(), v("div", dt, [
769
- x(e.$slots, "error", {
770
- error: ie.value,
771
- retry: We
772
- }, () => [
773
- a[3] || (a[3] = J("加载失败,", -1)),
774
- U("button", {
821
+ me(n(Zt), {
822
+ "popup-transition": a.popupTransition,
823
+ "popup-transition-duration": a.popupTransitionDuration,
824
+ placement: n(ut)
825
+ }, {
826
+ default: Jt(() => [
827
+ n(y) ? (d(), h("div", Ue({
828
+ key: 0,
829
+ ref_key: "panel",
830
+ ref: C
831
+ }, n(Xe), {
832
+ class: ["hys-ui-select-options hys-ui-floating-surface", ["hys-ui-select-popup-" + n(F), r.popupClass]],
833
+ "data-size": n(F),
834
+ "data-placement": n(ut),
835
+ style: $t.value,
836
+ onKeydown: mt,
837
+ onFocusin: bt,
838
+ onFocusout: gt
839
+ }), [
840
+ e.$slots.header ? (d(), h("div", kl, [
841
+ A(e.$slots, "header", {
842
+ query: k.value,
843
+ selected: B.value,
844
+ close: () => n(w)()
845
+ }, void 0, !0)
846
+ ])) : E("", !0),
847
+ ne.value ? (d(), h("input", {
848
+ key: 1,
849
+ ref_key: "searchInput",
850
+ ref: ee,
851
+ value: xe.value,
852
+ class: "hys-ui-select-search",
853
+ placeholder: "搜索选项…",
854
+ "aria-label": "搜索选项",
855
+ "aria-controls": n(se),
856
+ "aria-activedescendant": ot.value,
857
+ "aria-autocomplete": "list",
858
+ onInput: yt,
859
+ onCompositionstart: t[2] || (t[2] = (l) => Te.value = !0),
860
+ onCompositionend: Kt
861
+ }, null, 40, xl)) : E("", !0),
862
+ we.value ? (d(), h("div", Tl, [
863
+ $("span", {
864
+ class: "hys-ui-select-bulk-count",
865
+ "aria-live": "polite",
866
+ title: r.selectAllScope === "filtered" ? "批量操作仅作用于当前结果;禁用项保持不变" : "批量操作所有已加载选项;禁用项保持不变"
867
+ }, M(r.selectAllScope === "filtered" && k.value ? "当前结果 · " : "") + "已选 " + M(g.value.length) + M(r.multipleLimit > 0 ? " / " + r.multipleLimit : ""), 9, Sl),
868
+ $("button", {
775
869
  type: "button",
776
- class: "hys-ui-select-retry",
777
- onClick: We
778
- }, " 重试 ")
779
- ], !0)
780
- ])) : T.value.length ? (c(), v("div", {
781
- key: 2,
782
- style: he(
783
- O.value ? {
784
- height: T.value.length * E.value + "px",
785
- position: "relative"
786
- } : void 0
787
- ),
788
- role: "presentation"
789
- }, [
790
- U("div", {
791
- style: he(
792
- O.value ? {
793
- position: "absolute",
794
- top: 0,
795
- left: 0,
796
- right: 0,
797
- transform: "translateY(" + Ee.value * E.value + "px)"
798
- } : void 0
799
- ),
800
- role: "presentation"
870
+ class: "hys-ui-select-bulk-action",
871
+ disabled: Me.value || !Mt.value || Ae.value,
872
+ "aria-label": r.selectAllText + (r.selectAllScope === "filtered" ? "当前结果" : "全部选项"),
873
+ onClick: rt
874
+ }, M(r.selectAllText), 9, Al),
875
+ $("button", {
876
+ type: "button",
877
+ class: "hys-ui-select-bulk-action",
878
+ disabled: Me.value || !lt.value.length,
879
+ "aria-label": r.deselectAllText + (r.selectAllScope === "filtered" ? "当前结果" : "全部选项"),
880
+ onClick: ct
881
+ }, M(r.deselectAllText), 9, Cl)
882
+ ])) : E("", !0),
883
+ $("div", {
884
+ id: n(se),
885
+ ref_key: "viewport",
886
+ ref: H,
887
+ role: "listbox",
888
+ "aria-label": r.ariaLabel || n(Ge) || "可选项",
889
+ "aria-multiselectable": z.value || void 0,
890
+ "aria-busy": P.value || void 0,
891
+ class: "hys-ui-select-list",
892
+ style: be({
893
+ maxHeight: "min(" + re.value + "px, 45dvh)"
894
+ }),
895
+ onScroll: Wt
801
896
  }, [
802
- (c(!0), v(le, null, Pe(Ze.value, (t) => (c(), v(le, {
803
- key: t.key
897
+ P.value ? (d(), h("p", Ml, [
898
+ A(e.$slots, "loading", {}, () => [
899
+ _(M(r.loadingText), 1)
900
+ ], !0)
901
+ ])) : le.value ? (d(), h("div", Bl, [
902
+ A(e.$slots, "error", {
903
+ error: le.value,
904
+ retry: Ie
905
+ }, () => [
906
+ t[3] || (t[3] = _("加载失败,", -1)),
907
+ $("button", {
908
+ type: "button",
909
+ class: "hys-ui-select-retry",
910
+ onClick: Ie
911
+ }, " 重试 ")
912
+ ], !0)
913
+ ])) : S.value.length ? (d(), h("div", {
914
+ key: 2,
915
+ style: be(
916
+ W.value ? {
917
+ height: S.value.length * I.value + "px",
918
+ position: "relative"
919
+ } : void 0
920
+ ),
921
+ role: "presentation"
804
922
  }, [
805
- t.option ? (c(), v("button", {
806
- key: 1,
807
- id: s(oe) + "-" + t.index,
808
- type: "button",
809
- role: "option",
810
- tabindex: "-1",
811
- class: va(["hys-ui-select-option", {
812
- "hys-ui-selected": W.value.has(
813
- s(n)(t.option.value)
814
- ),
815
- "hys-ui-active": S.value === t.key && !X(t.option),
816
- "hys-ui-select-created": t.created
817
- }]),
818
- style: he(
819
- O.value ? {
820
- height: "calc(var(--hys-ui-select-stride) - var(--hys-ui-select-option-gap))",
821
- minHeight: 0
923
+ $("div", {
924
+ style: be(
925
+ W.value ? {
926
+ position: "absolute",
927
+ top: 0,
928
+ left: 0,
929
+ right: 0,
930
+ transform: "translateY(" + qe.value * I.value + "px)"
822
931
  } : void 0
823
932
  ),
824
- "data-active": S.value === t.key,
825
- "aria-label": t.created ? "创建 " + t.option.label : t.option.label,
826
- "aria-description": t.group,
827
- "aria-selected": W.value.has(s(n)(t.option.value)),
828
- "aria-setsize": ma.value,
829
- "aria-posinset": t.index + 1,
830
- disabled: X(t.option),
831
- onPointerenter: (y) => !X(t.option) && (S.value = t.key),
832
- onClick: (y) => la(t)
833
- }, [
834
- U("span", {
835
- class: "hys-ui-select-option-label",
836
- title: t.option.label
837
- }, [
838
- x(e.$slots, "option", {
839
- option: t.option,
840
- selected: W.value.has(s(n)(t.option.value)),
841
- created: !!t.created
842
- }, () => [
843
- t.created ? (c(), v("span", pt, [
844
- Oe(s(Ra), { size: ee.value }, null, 8, ["size"]),
845
- J("创建 " + Q(t.option.label), 1)
846
- ])) : (c(), v(le, { key: 1 }, [
847
- J(Q(t.option.label), 1)
848
- ], 64))
849
- ], !0)
850
- ], 8, ft),
851
- d.showCheckmark && W.value.has(s(n)(t.option.value)) ? x(e.$slots, "selected-icon", {
852
- option: t.option
853
- }, () => [
854
- Oe(s(Da), {
855
- size: ee.value - 1,
856
- "aria-hidden": "true"
857
- }, null, 8, ["size"])
858
- ], !0, 0) : L("", !0)
859
- ], 46, vt)) : (c(), v("div", {
860
- key: 0,
861
- class: "hys-ui-select-group",
862
- style: he(
863
- O.value ? { height: E.value + "px" } : void 0
864
- ),
865
933
  role: "presentation"
866
934
  }, [
867
- x(e.$slots, "group", {
868
- label: t.group
869
- }, () => [
870
- J(Q(t.group), 1)
871
- ], !0)
872
- ], 4))
873
- ], 64))), 128))
874
- ], 4)
875
- ], 4)) : (c(), v("p", ht, [
876
- x(e.$slots, "empty", { query: k.value }, () => [
877
- J(Q(k.value ? d.noMatchText : d.emptyText), 1)
878
- ], !0)
879
- ]))
880
- ], 44, rt),
881
- e.$slots.footer ? (c(), v("div", yt, [
882
- x(e.$slots, "footer", {
883
- query: k.value,
884
- selected: M.value,
885
- close: () => s(V)()
886
- }, void 0, !0)
887
- ])) : L("", !0)
888
- ], 16, ut)) : L("", !0)
935
+ (d(!0), h(ue, null, Qe(it.value, (l) => (d(), h(ue, {
936
+ key: l.key
937
+ }, [
938
+ l.option ? (d(), h("button", {
939
+ key: 1,
940
+ id: n(se) + "-" + l.index,
941
+ type: "button",
942
+ role: "option",
943
+ tabindex: "-1",
944
+ class: xt(["hys-ui-select-option", {
945
+ "hys-ui-selected": j.value.has(
946
+ n(s)(l.option.value)
947
+ ),
948
+ "hys-ui-active": O.value === l.key && !J(l.option),
949
+ "hys-ui-select-created": l.created
950
+ }]),
951
+ style: be(
952
+ W.value ? {
953
+ height: "calc(var(--hys-ui-select-stride) - var(--hys-ui-select-option-gap))",
954
+ minHeight: 0
955
+ } : void 0
956
+ ),
957
+ "data-active": O.value === l.key,
958
+ "aria-label": l.created ? "创建 " + l.option.label : l.option.label,
959
+ "aria-description": l.group,
960
+ "aria-selected": j.value.has(n(s)(l.option.value)),
961
+ "aria-setsize": Bt.value,
962
+ "aria-posinset": l.index + 1,
963
+ disabled: J(l.option),
964
+ onPointerenter: (v) => !J(l.option) && (O.value = l.key),
965
+ onClick: (v) => pt(l)
966
+ }, [
967
+ $("span", {
968
+ class: "hys-ui-select-option-label",
969
+ title: l.option.label
970
+ }, [
971
+ A(e.$slots, "option", {
972
+ option: l.option,
973
+ selected: j.value.has(n(s)(l.option.value)),
974
+ created: !!l.created
975
+ }, () => [
976
+ l.created ? (d(), h("span", zl, [
977
+ me(n(tl), { size: ie.value }, null, 8, ["size"]),
978
+ _("创建 " + M(l.option.label), 1)
979
+ ])) : (d(), h(ue, { key: 1 }, [
980
+ _(M(l.option.label), 1)
981
+ ], 64))
982
+ ], !0)
983
+ ], 8, Ll),
984
+ r.showCheckmark && j.value.has(n(s)(l.option.value)) ? A(e.$slots, "selected-icon", {
985
+ option: l.option
986
+ }, () => [
987
+ me(n(ll), {
988
+ size: ie.value - 1,
989
+ "aria-hidden": "true"
990
+ }, null, 8, ["size"])
991
+ ], !0, 0) : E("", !0)
992
+ ], 46, Ol)) : (d(), h("div", {
993
+ key: 0,
994
+ class: "hys-ui-select-group",
995
+ style: be(
996
+ W.value ? { height: I.value + "px" } : void 0
997
+ ),
998
+ role: "presentation"
999
+ }, [
1000
+ A(e.$slots, "group", {
1001
+ label: l.group
1002
+ }, () => [
1003
+ _(M(l.group), 1)
1004
+ ], !0)
1005
+ ], 4))
1006
+ ], 64))), 128))
1007
+ ], 4)
1008
+ ], 4)) : (d(), h("p", Vl, [
1009
+ A(e.$slots, "empty", { query: k.value }, () => [
1010
+ _(M(k.value ? r.noMatchText : r.emptyText), 1)
1011
+ ], !0)
1012
+ ]))
1013
+ ], 44, wl),
1014
+ e.$slots.footer ? (d(), h("div", $l, [
1015
+ A(e.$slots, "footer", {
1016
+ query: k.value,
1017
+ selected: B.value,
1018
+ close: () => n(w)()
1019
+ }, void 0, !0)
1020
+ ])) : E("", !0)
1021
+ ], 16, gl)) : E("", !0)
1022
+ ]),
1023
+ _: 3
1024
+ }, 8, ["popup-transition", "popup-transition-duration", "placement"])
889
1025
  ], 8, ["to", "disabled"]))
890
1026
  ], 16);
891
1027
  };
892
1028
  }
893
1029
  });
894
1030
  export {
895
- Ct as default
1031
+ Dl as default
896
1032
  };