hys-ui 0.2.0 → 0.4.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 (261) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +68 -59
  3. package/dist/components/HysAlert/HysAlert.vue.js +5 -54
  4. package/dist/components/HysAlert/HysAlert2.vue.js +159 -2
  5. package/dist/components/HysAnimatedNumber/HysAnimatedNumber.vue.js +5 -41
  6. package/dist/components/HysAnimatedNumber/HysAnimatedNumber2.vue.js +146 -2
  7. package/dist/components/HysAutocomplete/HysAutocomplete.vue.js +2 -2
  8. package/dist/components/HysAutocomplete/HysAutocomplete2.vue.js +285 -273
  9. package/dist/components/HysAvatarGroup/HysAvatarGroup.vue.js +1 -1
  10. package/dist/components/HysAvatarGroup/HysAvatarGroup2.vue.js +102 -98
  11. package/dist/components/HysBreadcrumb/HysBreadcrumb.vue.js +1 -1
  12. package/dist/components/HysBreadcrumb/HysBreadcrumb2.vue.js +273 -59
  13. package/dist/components/HysButton/HysButton.vue.js +2 -2
  14. package/dist/components/HysButton/HysButton2.vue.js +227 -60
  15. package/dist/components/HysButtonGroup/HysButtonGroup.vue.js +7 -0
  16. package/dist/components/HysButtonGroup/HysButtonGroup2.vue.js +51 -0
  17. package/dist/components/HysCalendar/HysCalendar.vue.js +3 -3
  18. package/dist/components/HysCalendar/HysCalendar2.vue.js +237 -225
  19. package/dist/components/HysCascader/HysCascader.vue.js +2 -2
  20. package/dist/components/HysCascader/HysCascader2.vue.js +337 -324
  21. package/dist/components/HysColorPicker/HysColorPanel.vue.js +7 -0
  22. package/dist/components/HysColorPicker/HysColorPanel2.vue.js +238 -0
  23. package/dist/components/HysColorPicker/HysColorPicker.vue.js +2 -2
  24. package/dist/components/HysColorPicker/HysColorPicker2.vue.js +239 -217
  25. package/dist/components/HysCommandPalette/HysCommandPalette.vue.js +90 -76
  26. package/dist/components/HysContextMenu/HysContextMenu.vue.js +5 -89
  27. package/dist/components/HysContextMenu/HysContextMenu2.vue.js +247 -2
  28. package/dist/components/HysContextMenu/HysMenuPanel.vue.js +7 -0
  29. package/dist/components/HysContextMenu/HysMenuPanel2.vue.js +208 -0
  30. package/dist/components/HysContextMenu/HysMenuSlot.js +10 -0
  31. package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
  32. package/dist/components/HysDataGrid/HysDataGrid2.vue.js +1008 -559
  33. package/dist/components/HysDatePicker/HysDatePicker.vue.js +2 -0
  34. package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +2 -2
  35. package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +539 -526
  36. package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +5 -3
  37. package/dist/components/HysDrawer/HysDrawer.vue.js +1 -1
  38. package/dist/components/HysDrawer/HysDrawer2.vue.js +434 -84
  39. package/dist/components/HysEmpty/HysEmpty.vue.js +5 -41
  40. package/dist/components/HysEmpty/HysEmpty2.vue.js +181 -2
  41. package/dist/components/HysFormItem/HysFormItem.vue.js +2 -2
  42. package/dist/components/HysFormItem/HysFormItem2.vue.js +171 -164
  43. package/dist/components/HysGantt/HysGantt.vue.js +1 -1
  44. package/dist/components/HysGantt/HysGantt2.vue.js +810 -795
  45. package/dist/components/HysMention/HysMention.vue.js +1 -1
  46. package/dist/components/HysMention/HysMention2.vue.js +1092 -142
  47. package/dist/components/HysModal/HysModal.vue.js +2 -2
  48. package/dist/components/HysModal/HysModal2.vue.js +491 -85
  49. package/dist/components/HysPagination/HysPagination.vue.js +2 -2
  50. package/dist/components/HysPagination/HysPagination2.vue.js +243 -180
  51. package/dist/components/HysPopover/HysPopover.vue.js +5 -91
  52. package/dist/components/HysPopover/HysPopover2.vue.js +120 -2
  53. package/dist/components/HysProgress/HysProgress.vue.js +2 -2
  54. package/dist/components/HysProgress/HysProgress2.vue.js +319 -52
  55. package/dist/components/HysSearch/HysSearch.vue.js +5 -82
  56. package/dist/components/HysSearch/HysSearch2.vue.js +176 -2
  57. package/dist/components/HysSelect/HysSelect.vue.js +2 -2
  58. package/dist/components/HysSelect/HysSelect2.vue.js +755 -590
  59. package/dist/components/HysSlider/HysSlider.vue.js +2 -2
  60. package/dist/components/HysSlider/HysSlider2.vue.js +192 -188
  61. package/dist/components/HysSlider/SliderTooltip.vue.js +2 -2
  62. package/dist/components/HysSlider/SliderTooltip2.vue.js +103 -89
  63. package/dist/components/HysSplitPane/HysSplitPane.vue.js +315 -58
  64. package/dist/components/HysSplitPane/HysSplitPane3.vue.js +5 -0
  65. package/dist/components/HysTable/HysTable.vue.js +2 -2
  66. package/dist/components/HysTable/HysTable2.vue.js +1416 -1127
  67. package/dist/components/HysTagInput/HysTagInput.vue.js +5 -82
  68. package/dist/components/HysTagInput/HysTagInput2.vue.js +396 -2
  69. package/dist/components/HysTimeline/HysTimeline.vue.js +2 -2
  70. package/dist/components/HysTimeline/HysTimeline2.vue.js +243 -24
  71. package/dist/components/HysTooltip/HysTooltip.vue.js +5 -64
  72. package/dist/components/HysTooltip/HysTooltip2.vue.js +110 -2
  73. package/dist/components/HysTour/HysTour.vue.js +291 -63
  74. package/dist/components/HysTour/HysTour3.vue.js +5 -0
  75. package/dist/components/HysTransfer/HysTransfer.vue.js +2 -2
  76. package/dist/components/HysTransfer/HysTransfer2.vue.js +237 -207
  77. package/dist/components/HysTransfer/HysTransferPanel.vue.js +1 -1
  78. package/dist/components/HysTransfer/HysTransferPanel2.vue.js +320 -271
  79. package/dist/components/HysTree/HysTree.vue.js +2 -2
  80. package/dist/components/HysTree/HysTree2.vue.js +195 -184
  81. package/dist/components/HysTreeSelect/HysTreeSelect.vue.js +4 -4
  82. package/dist/components/HysTreeSelect/HysTreeSelect2.vue.js +389 -377
  83. package/dist/components/HysUpload/HysUpload.vue.js +2 -2
  84. package/dist/components/HysUpload/HysUpload2.vue.js +459 -125
  85. package/dist/components/HysVirtualTable/HysVirtualTable.vue.js +5 -94
  86. package/dist/components/HysVirtualTable/HysVirtualTable2.vue.js +656 -2
  87. package/dist/composables/buttonGroup.js +12 -0
  88. package/dist/composables/color.js +97 -0
  89. package/dist/composables/dataGrid.js +68 -0
  90. package/dist/composables/drawer.js +17 -0
  91. package/dist/composables/feedback.js +14 -0
  92. package/dist/composables/floatingPosition.js +18 -0
  93. package/dist/composables/mentionDocument.js +79 -0
  94. package/dist/composables/mentionEditor.js +58 -0
  95. package/dist/composables/menu.js +96 -0
  96. package/dist/composables/modal.js +14 -0
  97. package/dist/composables/overlayManager.js +48 -18
  98. package/dist/composables/progress.js +94 -0
  99. package/dist/composables/selectOptions.js +44 -38
  100. package/dist/composables/splitPaneSizes.js +58 -0
  101. package/dist/composables/table.js +128 -105
  102. package/dist/composables/tagInput.js +16 -0
  103. package/dist/composables/timeline.js +19 -0
  104. package/dist/composables/transfer.js +19 -17
  105. package/dist/composables/upload.js +55 -0
  106. package/dist/composables/uploadRequest.js +58 -0
  107. package/dist/composables/useAlert.js +124 -0
  108. package/dist/composables/useColorPicker.js +402 -0
  109. package/dist/composables/useContextMenu.js +514 -0
  110. package/dist/composables/useDataGridRemote.js +67 -0
  111. package/dist/composables/useDialog.js +86 -43
  112. package/dist/composables/useDrawerPush.js +33 -0
  113. package/dist/composables/useDrawerResize.js +221 -0
  114. package/dist/composables/useFloating.js +118 -80
  115. package/dist/composables/useHysModal.js +185 -0
  116. package/dist/composables/useMentionCaret.js +81 -0
  117. package/dist/composables/useMentionList.js +81 -0
  118. package/dist/composables/useMentionModel.js +90 -0
  119. package/dist/composables/useMentionOptions.js +421 -0
  120. package/dist/composables/useModal.js +295 -0
  121. package/dist/composables/useModalInteraction.js +394 -0
  122. package/dist/composables/usePopupSurface.js +458 -0
  123. package/dist/composables/useSplitPaneDrag.js +52 -0
  124. package/dist/composables/useSplitPaneStorage.js +38 -0
  125. package/dist/composables/useTable.js +344 -312
  126. package/dist/composables/useTableSticky.js +79 -0
  127. package/dist/composables/useTagInput.js +313 -0
  128. package/dist/composables/useTourLayout.js +129 -0
  129. package/dist/composables/useTransferMotion.js +185 -0
  130. package/dist/composables/useUpload.js +472 -0
  131. package/dist/composables/useUploadModel.js +65 -0
  132. package/dist/composables/useUploadRequests.js +266 -0
  133. package/dist/composables/useVirtualTableLayout.js +277 -0
  134. package/dist/composables/virtualTable.js +43 -0
  135. package/dist/config.js +11 -11
  136. package/dist/index.js +175 -153
  137. package/dist/internal/MultiSplitPane.vue.js +305 -0
  138. package/dist/internal/MultiSplitPane2.vue.js +4 -0
  139. package/dist/internal/PopupReference.js +39 -0
  140. package/dist/internal/PopupSurfacePanel.vue.js +7 -0
  141. package/dist/internal/PopupSurfacePanel2.vue.js +92 -0
  142. package/dist/motion/PopupMotion.js +105 -0
  143. package/dist/motion/popup.js +10 -0
  144. package/dist/style.css +1 -1
  145. package/dist/types/components/HysAlert/HysAlert.vue.d.ts +32 -22
  146. package/dist/types/components/HysAnimatedNumber/HysAnimatedNumber.vue.d.ts +61 -7
  147. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +7 -7
  148. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +6 -1
  149. package/dist/types/components/HysBadge/HysBadge.vue.d.ts +3 -3
  150. package/dist/types/components/HysBreadcrumb/HysBreadcrumb.vue.d.ts +54 -31
  151. package/dist/types/components/HysButton/HysButton.vue.d.ts +82 -22
  152. package/dist/types/components/HysButtonGroup/HysButtonGroup.vue.d.ts +30 -0
  153. package/dist/types/components/HysCalendar/HysCalendar.vue.d.ts +3 -2
  154. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +7 -7
  155. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +2 -2
  156. package/dist/types/components/HysColorPicker/HysColorPanel.vue.d.ts +58 -0
  157. package/dist/types/components/HysColorPicker/HysColorPicker.vue.d.ts +63 -10
  158. package/dist/types/components/HysCommandPalette/HysCommandPalette.vue.d.ts +2 -1
  159. package/dist/types/components/HysContextMenu/HysContextMenu.vue.d.ts +50 -34
  160. package/dist/types/components/HysContextMenu/HysMenuPanel.vue.d.ts +79 -0
  161. package/dist/types/components/HysContextMenu/HysMenuSlot.d.ts +8 -0
  162. package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +65 -118
  163. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +3 -3
  164. package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +92 -35
  165. package/dist/types/components/HysEmpty/HysEmpty.vue.d.ts +24 -20
  166. package/dist/types/components/HysFileManager/HysFileManager.vue.d.ts +2 -2
  167. package/dist/types/components/HysGantt/HysGantt.vue.d.ts +2 -1
  168. package/dist/types/components/HysMention/HysMention.vue.d.ts +91 -39
  169. package/dist/types/components/HysModal/HysModal.vue.d.ts +111 -34
  170. package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +2 -2
  171. package/dist/types/components/HysPagination/HysPagination.vue.d.ts +55 -4
  172. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +41 -29
  173. package/dist/types/components/HysProgress/HysProgress.vue.d.ts +18 -24
  174. package/dist/types/components/HysRating/HysRating.vue.d.ts +1 -1
  175. package/dist/types/components/HysResizablePanel/HysResizablePanel.vue.d.ts +2 -2
  176. package/dist/types/components/HysSearch/HysSearch.vue.d.ts +45 -7
  177. package/dist/types/components/HysSelect/HysSelect.vue.d.ts +19 -5
  178. package/dist/types/components/HysSlider/HysSlider.vue.d.ts +5 -4
  179. package/dist/types/components/HysSlider/SliderTooltip.vue.d.ts +3 -1
  180. package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +125 -14
  181. package/dist/types/components/HysSteps/HysSteps.vue.d.ts +1 -1
  182. package/dist/types/components/HysTable/HysTable.vue.d.ts +1742 -5
  183. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +2 -2
  184. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +47 -25
  185. package/dist/types/components/HysTimeline/HysTimeline.vue.d.ts +19 -32
  186. package/dist/types/components/HysTooltip/HysTooltip.vue.d.ts +39 -19
  187. package/dist/types/components/HysTour/HysTour.vue.d.ts +46 -8
  188. package/dist/types/components/HysTransfer/HysTransfer.vue.d.ts +2 -2
  189. package/dist/types/components/HysTransfer/HysTransferPanel.vue.d.ts +5 -3
  190. package/dist/types/components/HysTree/HysTree.vue.d.ts +2 -2
  191. package/dist/types/components/HysUpload/HysUpload.vue.d.ts +55 -67
  192. package/dist/types/components/HysVirtualTable/HysVirtualTable.vue.d.ts +71 -40
  193. package/dist/types/composables/autocomplete.d.ts +3 -0
  194. package/dist/types/composables/avatar.d.ts +3 -0
  195. package/dist/types/composables/buttonGroup.d.ts +9 -0
  196. package/dist/types/composables/cascader.d.ts +3 -0
  197. package/dist/types/composables/color.d.ts +97 -0
  198. package/dist/types/composables/dataGrid.d.ts +100 -0
  199. package/dist/types/composables/datePicker.d.ts +3 -0
  200. package/dist/types/composables/drawer.d.ts +102 -0
  201. package/dist/types/composables/feedback.d.ts +98 -0
  202. package/dist/types/composables/floatingPosition.d.ts +14 -0
  203. package/dist/types/composables/formContext.d.ts +2 -0
  204. package/dist/types/composables/mention.d.ts +284 -0
  205. package/dist/types/composables/mentionDocument.d.ts +15 -0
  206. package/dist/types/composables/mentionEditor.d.ts +7 -0
  207. package/dist/types/composables/menu.d.ts +183 -0
  208. package/dist/types/composables/modal.d.ts +185 -0
  209. package/dist/types/composables/overlayManager.d.ts +7 -3
  210. package/dist/types/composables/popupSurface.d.ts +83 -0
  211. package/dist/types/composables/progress.d.ts +92 -0
  212. package/dist/types/composables/selectOptions.d.ts +7 -0
  213. package/dist/types/composables/splitPaneSizes.d.ts +11 -0
  214. package/dist/types/composables/table.d.ts +119 -6
  215. package/dist/types/composables/tagInput.d.ts +96 -0
  216. package/dist/types/composables/timeline.d.ts +82 -0
  217. package/dist/types/composables/tour.d.ts +68 -0
  218. package/dist/types/composables/transfer.d.ts +7 -0
  219. package/dist/types/composables/tree.d.ts +3 -0
  220. package/dist/types/composables/treeSelect.d.ts +3 -0
  221. package/dist/types/composables/upload.d.ts +202 -0
  222. package/dist/types/composables/uploadRequest.d.ts +3 -0
  223. package/dist/types/composables/useAlert.d.ts +21 -0
  224. package/dist/types/composables/useCascader.d.ts +1 -1
  225. package/dist/types/composables/useColorPicker.d.ts +101 -0
  226. package/dist/types/composables/useContextMenu.d.ts +81 -0
  227. package/dist/types/composables/useDataGridRemote.d.ts +15 -0
  228. package/dist/types/composables/useDialog.d.ts +16 -3
  229. package/dist/types/composables/useDrawerPush.d.ts +6 -0
  230. package/dist/types/composables/useDrawerResize.d.ts +27 -0
  231. package/dist/types/composables/useFloating.d.ts +22 -3
  232. package/dist/types/composables/useHysModal.d.ts +44 -0
  233. package/dist/types/composables/useMentionCaret.d.ts +6 -0
  234. package/dist/types/composables/useMentionList.d.ts +23 -0
  235. package/dist/types/composables/useMentionModel.d.ts +14 -0
  236. package/dist/types/composables/useMentionOptions.d.ts +26 -0
  237. package/dist/types/composables/useModal.d.ts +62 -0
  238. package/dist/types/composables/useModalInteraction.d.ts +27 -0
  239. package/dist/types/composables/usePopupSurface.d.ts +3341 -0
  240. package/dist/types/composables/useSplitPaneDrag.d.ts +14 -0
  241. package/dist/types/composables/useSplitPaneStorage.d.ts +4 -0
  242. package/dist/types/composables/useTable.d.ts +7 -3
  243. package/dist/types/composables/useTableSticky.d.ts +22 -0
  244. package/dist/types/composables/useTagInput.d.ts +66 -0
  245. package/dist/types/composables/useTourLayout.d.ts +33 -0
  246. package/dist/types/composables/useTransferMotion.d.ts +36 -0
  247. package/dist/types/composables/useUpload.d.ts +94 -0
  248. package/dist/types/composables/useUploadModel.d.ts +14 -0
  249. package/dist/types/composables/useUploadRequests.d.ts +38 -0
  250. package/dist/types/composables/useVirtualTableLayout.d.ts +51 -0
  251. package/dist/types/composables/virtualTable.d.ts +126 -0
  252. package/dist/types/config.d.ts +1 -0
  253. package/dist/types/index.d.ts +53 -3
  254. package/dist/types/internal/MultiSplitPane.vue.d.ts +54 -0
  255. package/dist/types/internal/PopupReference.d.ts +18 -0
  256. package/dist/types/internal/PopupSurfacePanel.vue.d.ts +37 -0
  257. package/dist/types/motion/PopupMotion.d.ts +59 -0
  258. package/dist/types/motion/popup.d.ts +12 -0
  259. package/package.json +3 -2
  260. package/dist/components/HysSplitPane/HysSplitPane2.vue.js +0 -4
  261. package/dist/components/HysTour/HysTour2.vue.js +0 -4
@@ -1,84 +1,7 @@
1
- import { defineComponent as V, ref as g, openBlock as m, createElementBlock as f, mergeProps as h, unref as i, Fragment as B, renderList as x, renderSlot as k, createTextVNode as C, toDisplayString as A, createVNode as D, createCommentVNode as N, withDirectives as w, createElementVNode as E, withKeys as y, vModelText as H } from "vue";
2
- import { useHysControlState as S } from "../../composables/formContext.js";
3
- import { useHysRootAttrs as T } from "../../config.js";
4
- import { X as j } from "lucide-vue-next";
5
- const K = ["aria-disabled"], O = ["disabled", "aria-label", "onClick"], R = ["placeholder", "disabled", "readonly"], L = /* @__PURE__ */ V({
6
- __name: "HysTagInput",
7
- props: {
8
- modelValue: {},
9
- max: { default: 10 },
10
- placeholder: { default: "输入后按 Enter" },
11
- disabled: { type: Boolean },
12
- readonly: { type: Boolean },
13
- addOnBlur: { type: Boolean, default: !0 },
14
- separator: {},
15
- beforeAdd: {}
16
- },
17
- emits: ["update:modelValue", "change", "add", "remove", "reject"],
18
- setup(a, { emit: b }) {
19
- const v = T(), l = a, d = b, r = g(""), { disabled: u } = S(l);
20
- function c() {
21
- if (u.value || l.readonly) return;
22
- const n = r.value.trim();
23
- if (!n) return;
24
- const t = l.separator ? n.split(l.separator) : [n], e = [...l.modelValue];
25
- for (const o of t.map((s) => s.trim()).filter(Boolean)) {
26
- if (e.includes(o) || e.length >= l.max || l.beforeAdd && l.beforeAdd(o) === !1) {
27
- d("reject", o);
28
- continue;
29
- }
30
- e.push(o), d("add", o);
31
- }
32
- d("update:modelValue", e), d("change", e), r.value = "";
33
- }
34
- function p(n) {
35
- if (u.value || l.readonly) return;
36
- const t = l.modelValue[n], e = l.modelValue.filter((o, s) => s !== n);
37
- d("update:modelValue", e), d("change", e), d("remove", t);
38
- }
39
- return (n, t) => (m(), f("div", h(i(v), {
40
- class: "hys-ui-ex-tags",
41
- "aria-disabled": i(u)
42
- }), [
43
- (m(!0), f(B, null, x(a.modelValue, (e, o) => (m(), f("span", {
44
- key: e,
45
- class: "hys-ui-ex-tag"
46
- }, [
47
- k(n.$slots, "tag", {
48
- value: e,
49
- index: o
50
- }, () => [
51
- C(A(e), 1)
52
- ]),
53
- a.readonly ? N("", !0) : (m(), f("button", {
54
- key: 0,
55
- type: "button",
56
- disabled: i(u),
57
- "aria-label": "移除 " + e,
58
- onClick: (s) => p(o)
59
- }, [
60
- D(i(j), { size: 14 })
61
- ], 8, O))
62
- ]))), 128)),
63
- w(E("input", {
64
- "onUpdate:modelValue": t[0] || (t[0] = (e) => r.value = e),
65
- placeholder: a.placeholder,
66
- "aria-label": "输入标签",
67
- disabled: i(u) || a.modelValue.length >= a.max,
68
- readonly: a.readonly,
69
- onKeydown: [
70
- t[1] || (t[1] = y((e) => {
71
- e.isComposing || (e.preventDefault(), c());
72
- }, ["enter"])),
73
- t[2] || (t[2] = y((e) => !r.value && a.modelValue.length && !e.isComposing && p(a.modelValue.length - 1), ["backspace"]))
74
- ],
75
- onBlur: t[3] || (t[3] = (e) => a.addOnBlur && c())
76
- }, null, 40, R), [
77
- [H, r.value]
78
- ])
79
- ], 16, K));
80
- }
81
- });
1
+ import o from "./HysTagInput2.vue.js";
2
+ /* empty css */
3
+ import t from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ t(o, [["__scopeId", "data-v-c030b4f1"]]);
82
5
  export {
83
- L as default
6
+ f as default
84
7
  };
@@ -1,4 +1,398 @@
1
- import f from "./HysTagInput.vue.js";
1
+ import { defineComponent as ee, ref as N, computed as g, toRaw as ae, openBlock as n, createElementBlock as u, Fragment as h, createElementVNode as f, mergeProps as y, unref as a, renderSlot as p, normalizeProps as C, guardReactiveProps as D, createCommentVNode as m, renderList as I, withModifiers as x, normalizeClass as te, createBlock as c, createTextVNode as M, toDisplayString as b, createVNode as P, withCtx as R, normalizeStyle as $, resolveDynamicComponent as le } from "vue";
2
+ import { GripVertical as oe, X as z, LoaderCircle as ie } from "lucide-vue-next";
3
+ import ne from "../HysPopover/HysPopover.vue.js";
4
+ import { useHysRootAttrs as re } from "../../config.js";
5
+ import { useTagInput as se } from "../../composables/useTagInput.js";
6
+ const ue = ["data-status", "aria-disabled", "aria-busy"], de = {
7
+ key: 0,
8
+ class: "hys-ui-tags-affix"
9
+ }, ve = { class: "hys-ui-tags-items" }, ge = ["data-tag-index", "draggable", "onKeydown", "onDragstart", "onDragover"], fe = ["title"], me = ["disabled", "aria-label", "onClick", "onKeydown"], pe = ["disabled", "aria-label"], ye = ["title"], ce = ["aria-label", "disabled", "onClick"], be = ["aria-label"], he = ["id", "value", "placeholder", "disabled", "readonly", "maxlength", "minlength", "autocomplete", "tabindex", "aria-label", "aria-required", "aria-invalid", "aria-describedby"], xe = ["disabled"], Te = {
10
+ key: 3,
11
+ class: "hys-ui-tags-affix"
12
+ }, ke = ["name", "form", "value"], we = ["id"], $e = /* @__PURE__ */ ee({
13
+ inheritAttrs: !1,
14
+ __name: "HysTagInput",
15
+ props: {
16
+ modelValue: { default: void 0 },
17
+ defaultValue: {},
18
+ max: { default: 10 },
19
+ placeholder: { default: "输入后按 Enter" },
20
+ disabled: { type: Boolean },
21
+ readonly: { type: Boolean },
22
+ size: {},
23
+ addOnBlur: { type: Boolean, default: !0 },
24
+ separator: {},
25
+ delimiters: {},
26
+ trigger: {},
27
+ beforeAdd: {},
28
+ allowDuplicates: { type: Boolean },
29
+ caseSensitive: { type: Boolean, default: !0 },
30
+ trim: { type: Boolean, default: !0 },
31
+ clearable: { type: Boolean },
32
+ clearIcon: {},
33
+ tagTone: { default: "primary" },
34
+ tagEffect: { default: "light" },
35
+ tagRound: { type: Boolean },
36
+ draggable: { type: Boolean },
37
+ collapseTags: { type: Boolean },
38
+ maxCollapseTags: { default: 1 },
39
+ collapseTagsTooltip: { type: Boolean, default: !0 },
40
+ overflowHeight: { default: 240 },
41
+ maxTagTextLength: {},
42
+ maxlength: {},
43
+ minlength: {},
44
+ ariaLabel: {},
45
+ label: {},
46
+ name: {},
47
+ form: {},
48
+ autocomplete: { default: "off" },
49
+ autofocus: { type: Boolean },
50
+ tabindex: {},
51
+ status: {},
52
+ error: {},
53
+ validateEvent: { type: Boolean, default: !0 },
54
+ inputProps: {},
55
+ popupTransition: {},
56
+ popupTransitionDuration: {}
57
+ },
58
+ emits: ["update:modelValue", "change", "acceptedChange", "add", "remove", "reject", "invalid", "clear", "input", "focus", "blur", "compositionend", "reorder"],
59
+ setup(o, { expose: q, emit: G }) {
60
+ const r = o, W = G, e = se(
61
+ r,
62
+ (i, ...l) => W(i, ...l)
63
+ ), E = re(), T = N(), k = N(0), X = g(
64
+ () => r.clearIcon && typeof r.clearIcon == "object" ? ae(r.clearIcon) : r.clearIcon
65
+ ), J = g(
66
+ () => r.collapseTags ? Math.max(
67
+ 0,
68
+ Math.floor(
69
+ Number.isFinite(r.maxCollapseTags) ? r.maxCollapseTags : 1
70
+ )
71
+ ) : e.tags.value.length
72
+ ), H = g(() => e.tags.value.slice(0, J.value)), s = g(() => e.tags.value.slice(H.value.length)), w = g(
73
+ () => Math.max(
74
+ 0,
75
+ Math.min(
76
+ Math.max(0, s.value.length - 1),
77
+ Math.floor(k.value / 36) - 3
78
+ )
79
+ )
80
+ ), B = g(
81
+ () => Math.max(
82
+ 72,
83
+ Math.min(
84
+ 480,
85
+ Number.isFinite(r.overflowHeight) ? r.overflowHeight : 240
86
+ )
87
+ )
88
+ ), Q = g(
89
+ () => s.value.slice(
90
+ w.value,
91
+ w.value + Math.ceil(B.value / 36) + 6
92
+ )
93
+ ), L = (i) => i === "id" || i.startsWith("aria-") || ["required", "title"].includes(i), U = g(
94
+ () => Object.fromEntries(
95
+ Object.entries(e.attrs).filter(([i]) => !L(i))
96
+ )
97
+ ), Y = g(
98
+ () => Object.fromEntries(
99
+ Object.entries(e.attrs).filter(([i]) => L(i))
100
+ )
101
+ );
102
+ function F(i, l) {
103
+ return {
104
+ value: i,
105
+ index: l,
106
+ disabled: e.control.disabled.value,
107
+ readonly: !!r.readonly,
108
+ remove: () => e.remove(l)
109
+ };
110
+ }
111
+ function Z(i) {
112
+ return r.maxTagTextLength !== void 0 && Number.isFinite(r.maxTagTextLength) && i.length > Math.max(0, r.maxTagTextLength) ? i.slice(0, Math.max(0, r.maxTagTextLength)) + "…" : i;
113
+ }
114
+ function _(i) {
115
+ i.target.closest("button,a,input,[data-tag-index]") || e.focus();
116
+ }
117
+ return q({
118
+ element: e.element,
119
+ input: e.input,
120
+ values: e.values,
121
+ draft: e.draft,
122
+ pending: e.pending,
123
+ focus: e.focus,
124
+ blur: () => {
125
+ var i;
126
+ return (i = e.input.value) == null ? void 0 : i.blur();
127
+ },
128
+ add: (i) => e.add(i),
129
+ remove: e.remove,
130
+ clear: e.clear,
131
+ move: e.move,
132
+ setDraft: e.setDraft
133
+ }), (i, l) => {
134
+ var K, O, S, V;
135
+ return n(), u(h, null, [
136
+ f("div", y({ ...a(E), ...U.value }, {
137
+ ref: (t) => a(e).element.value = t,
138
+ class: ["hys-ui-ex-tags hys-ui-tag-input", [
139
+ "hys-ui-tag-input-" + a(e).control.size.value,
140
+ "hys-ui-tags-" + o.tagTone,
141
+ "hys-ui-tags-" + o.tagEffect,
142
+ {
143
+ "hys-ui-tag-input-disabled": a(e).control.disabled.value,
144
+ "hys-ui-tag-input-readonly": o.readonly,
145
+ "hys-ui-tag-input-focused": a(e).focused.value,
146
+ "hys-ui-tags-round": o.tagRound
147
+ }
148
+ ]],
149
+ "data-status": a(e).status.value,
150
+ "aria-disabled": a(e).control.disabled.value || void 0,
151
+ "aria-busy": a(e).pending.value || void 0,
152
+ onClick: _,
153
+ onFocusin: l[14] || (l[14] = //@ts-ignore
154
+ (...t) => a(e).focusIn && a(e).focusIn(...t)),
155
+ onFocusout: l[15] || (l[15] = (t) => {
156
+ var v;
157
+ return a(e).focusOut(t, (v = T.value) == null ? void 0 : v.element);
158
+ })
159
+ }), [
160
+ i.$slots.prefix ? (n(), u("span", de, [
161
+ p(i.$slots, "prefix", C(D(a(e).context.value)), void 0, !0)
162
+ ])) : m("", !0),
163
+ f("div", ve, [
164
+ (n(!0), u(h, null, I(H.value, (t) => {
165
+ var v, j, A;
166
+ return n(), u("span", {
167
+ key: t.key,
168
+ class: te(["hys-ui-ex-tag hys-ui-tag-item", {
169
+ "hys-ui-tag-dragging": ((v = a(e).drag.value) == null ? void 0 : v.index) === t.index,
170
+ "hys-ui-tag-drop-before": ((j = a(e).drop.value) == null ? void 0 : j.index) === t.index && !a(e).drop.value.after,
171
+ "hys-ui-tag-drop-after": ((A = a(e).drop.value) == null ? void 0 : A.index) === t.index && a(e).drop.value.after
172
+ }]),
173
+ "data-tag-index": t.index,
174
+ tabindex: "-1",
175
+ draggable: o.draggable && !a(e).control.disabled.value && !o.readonly && !a(e).pending.value,
176
+ onKeydown: x((d) => a(e).tagKey(d, t.index), ["self"]),
177
+ onDragstart: (d) => a(e).dragStart(d, t.index),
178
+ onDragover: (d) => a(e).dragOver(d, t.index),
179
+ onDrop: l[1] || (l[1] = //@ts-ignore
180
+ (...d) => a(e).dragDrop && a(e).dragDrop(...d)),
181
+ onDragend: l[2] || (l[2] = //@ts-ignore
182
+ (...d) => a(e).stopDrag && a(e).stopDrag(...d))
183
+ }, [
184
+ o.draggable ? (n(), c(a(oe), {
185
+ key: 0,
186
+ class: "hys-ui-tag-grip",
187
+ size: 12,
188
+ "aria-hidden": "true"
189
+ })) : m("", !0),
190
+ f("span", {
191
+ class: "hys-ui-tag-label",
192
+ title: t.value
193
+ }, [
194
+ p(i.$slots, "tag", y({ ref_for: !0 }, F(t.value, t.index)), () => [
195
+ M(b(Z(t.value)), 1)
196
+ ], !0)
197
+ ], 8, fe),
198
+ o.readonly ? m("", !0) : (n(), u("button", {
199
+ key: 1,
200
+ type: "button",
201
+ class: "hys-ui-tag-remove",
202
+ disabled: a(e).control.disabled.value,
203
+ "aria-label": "移除 " + t.value,
204
+ onMousedown: l[0] || (l[0] = x(() => {
205
+ }, ["prevent"])),
206
+ onClick: x((d) => a(e).remove(t.index), ["stop"]),
207
+ onKeydown: (d) => a(e).tagKey(d, t.index)
208
+ }, [
209
+ p(i.$slots, "remove-icon", y({ ref_for: !0 }, F(t.value, t.index)), () => [
210
+ P(a(z), {
211
+ size: 12,
212
+ "aria-hidden": "true"
213
+ })
214
+ ], !0)
215
+ ], 40, me))
216
+ ], 42, ge);
217
+ }), 128)),
218
+ s.value.length && o.collapseTagsTooltip ? (n(), c(ne, {
219
+ key: 0,
220
+ ref_key: "overflowApi",
221
+ ref: T,
222
+ trigger: "click",
223
+ placement: "bottom-start",
224
+ width: 280,
225
+ disabled: a(e).control.disabled.value,
226
+ "popup-transition": o.popupTransition,
227
+ "popup-transition-duration": o.popupTransitionDuration,
228
+ title: "更多标签",
229
+ onHide: l[6] || (l[6] = (t) => k.value = 0)
230
+ }, {
231
+ trigger: R(() => [
232
+ f("button", {
233
+ type: "button",
234
+ class: "hys-ui-tag-overflow-trigger",
235
+ disabled: a(e).control.disabled.value,
236
+ "aria-label": "查看其余 " + s.value.length + " 个标签"
237
+ }, [
238
+ p(i.$slots, "collapse-tag", {
239
+ count: s.value.length,
240
+ values: s.value.map((t) => t.value)
241
+ }, () => [
242
+ M("+" + b(s.value.length), 1)
243
+ ], !0)
244
+ ], 8, pe)
245
+ ]),
246
+ default: R(() => [
247
+ f("div", {
248
+ class: "hys-ui-tag-overflow",
249
+ style: $({
250
+ maxHeight: B.value + "px",
251
+ height: Math.min(s.value.length * 36, B.value) + "px"
252
+ }),
253
+ role: "group",
254
+ "aria-label": "折叠标签",
255
+ onScroll: l[3] || (l[3] = (t) => k.value = t.target.scrollTop),
256
+ onFocusin: l[4] || (l[4] = //@ts-ignore
257
+ (...t) => a(e).focusIn && a(e).focusIn(...t)),
258
+ onFocusout: l[5] || (l[5] = (t) => {
259
+ var v;
260
+ return a(e).focusOut(t, (v = T.value) == null ? void 0 : v.element);
261
+ })
262
+ }, [
263
+ f("div", {
264
+ style: $({
265
+ height: s.value.length * 36 + "px",
266
+ position: "relative"
267
+ })
268
+ }, [
269
+ f("div", {
270
+ style: $({
271
+ position: "absolute",
272
+ left: 0,
273
+ right: 0,
274
+ top: w.value * 36 + "px"
275
+ })
276
+ }, [
277
+ (n(!0), u(h, null, I(Q.value, (t) => (n(), u("div", {
278
+ key: t.key,
279
+ class: "hys-ui-tag-overflow-row"
280
+ }, [
281
+ f("span", {
282
+ title: t.value
283
+ }, b(t.value), 9, ye),
284
+ o.readonly ? m("", !0) : (n(), u("button", {
285
+ key: 0,
286
+ type: "button",
287
+ "aria-label": "移除 " + t.value,
288
+ disabled: a(e).control.disabled.value,
289
+ onClick: (v) => a(e).remove(t.index)
290
+ }, [
291
+ P(a(z), {
292
+ size: 14,
293
+ "aria-hidden": "true"
294
+ })
295
+ ], 8, ce))
296
+ ]))), 128))
297
+ ], 4)
298
+ ], 4)
299
+ ], 36)
300
+ ]),
301
+ _: 3
302
+ }, 8, ["disabled", "popup-transition", "popup-transition-duration"])) : s.value.length ? (n(), u("span", {
303
+ key: 1,
304
+ class: "hys-ui-tag-overflow-trigger",
305
+ "aria-label": "另有 " + s.value.length + " 个标签"
306
+ }, [
307
+ p(i.$slots, "collapse-tag", {
308
+ count: s.value.length,
309
+ values: s.value.map((t) => t.value)
310
+ }, () => [
311
+ M("+" + b(s.value.length), 1)
312
+ ], !0)
313
+ ], 8, be)) : m("", !0),
314
+ f("input", y({
315
+ ref: (t) => a(e).input.value = t
316
+ }, { ...o.inputProps, ...Y.value }, {
317
+ class: "hys-ui-tags-native",
318
+ type: "text",
319
+ id: a(e).attrs.id || ((K = a(e).field) == null ? void 0 : K.id.value),
320
+ "data-hys-ui-field-managed": "",
321
+ value: a(e).draft.value,
322
+ placeholder: o.readonly ? "" : o.placeholder,
323
+ disabled: a(e).control.disabled.value,
324
+ readonly: o.readonly,
325
+ maxlength: o.maxlength,
326
+ minlength: o.minlength,
327
+ autocomplete: o.autocomplete,
328
+ tabindex: o.tabindex,
329
+ "aria-label": o.ariaLabel || a(e).attrs["aria-label"] || o.label || ((O = a(e).field) == null ? void 0 : O.label.value) || "输入标签",
330
+ "aria-required": ((S = a(e).field) == null ? void 0 : S.required.value) || void 0,
331
+ "aria-invalid": a(e).status.value === "error" || void 0,
332
+ "aria-describedby": [
333
+ a(e).attrs["aria-describedby"],
334
+ (V = a(e).field) == null ? void 0 : V.describedBy.value,
335
+ o.error ? a(e).errorId : void 0
336
+ ].filter(Boolean).join(" ") || void 0,
337
+ onInput: l[7] || (l[7] = //@ts-ignore
338
+ (...t) => a(e).nativeInput && a(e).nativeInput(...t)),
339
+ onKeydown: l[8] || (l[8] = //@ts-ignore
340
+ (...t) => a(e).key && a(e).key(...t)),
341
+ onPaste: l[9] || (l[9] = //@ts-ignore
342
+ (...t) => a(e).pasted && a(e).pasted(...t)),
343
+ onCompositionstart: l[10] || (l[10] = (t) => a(e).composing.value = !0),
344
+ onCompositionend: l[11] || (l[11] = //@ts-ignore
345
+ (...t) => a(e).compositionEnd && a(e).compositionEnd(...t))
346
+ }), null, 16, he)
347
+ ]),
348
+ a(e).pending.value ? (n(), c(a(ie), {
349
+ key: 1,
350
+ class: "hys-ui-tag-spinner",
351
+ size: 16,
352
+ "aria-hidden": "true"
353
+ })) : o.clearable && !o.readonly && (a(e).values.value.length || a(e).draft.value) ? (n(), u("button", {
354
+ key: 2,
355
+ type: "button",
356
+ class: "hys-ui-tags-clear",
357
+ disabled: a(e).control.disabled.value,
358
+ "aria-label": "清空标签",
359
+ onMousedown: l[12] || (l[12] = x(() => {
360
+ }, ["prevent"])),
361
+ onClick: l[13] || (l[13] = //@ts-ignore
362
+ (...t) => a(e).clear && a(e).clear(...t))
363
+ }, [
364
+ p(i.$slots, "clear-icon", C(D(a(e).context.value)), () => [
365
+ o.clearIcon ? (n(), c(le(X.value), {
366
+ key: 0,
367
+ size: 14,
368
+ "aria-hidden": "true"
369
+ })) : (n(), c(a(z), {
370
+ key: 1,
371
+ size: 14,
372
+ "aria-hidden": "true"
373
+ }))
374
+ ], !0)
375
+ ], 40, xe)) : m("", !0),
376
+ i.$slots.suffix ? (n(), u("span", Te, [
377
+ p(i.$slots, "suffix", C(D(a(e).context.value)), void 0, !0)
378
+ ])) : m("", !0),
379
+ (n(!0), u(h, null, I(o.name && !a(e).control.disabled.value ? a(e).values.value : [], (t, v) => (n(), u("input", {
380
+ key: v,
381
+ type: "hidden",
382
+ name: o.name,
383
+ form: o.form,
384
+ value: t
385
+ }, null, 8, ke))), 128))
386
+ ], 16, ue),
387
+ o.error ? (n(), u("small", y({ key: 0 }, a(E), {
388
+ id: a(e).errorId,
389
+ class: "hys-ui-tags-error",
390
+ role: "alert"
391
+ }), b(o.error), 17, we)) : m("", !0)
392
+ ], 64);
393
+ };
394
+ }
395
+ });
2
396
  export {
3
- f as default
397
+ $e as default
4
398
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./HysTimeline2.vue.js";
2
2
  /* empty css */
3
3
  import t from "../../_virtual/_plugin-vue_export-helper.js";
4
- const c = /* @__PURE__ */ t(o, [["__scopeId", "data-v-ff6c14c6"]]);
4
+ const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-9c4b5dcf"]]);
5
5
  export {
6
- c as default
6
+ e as default
7
7
  };