hys-ui 0.1.0 → 0.2.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 (247) hide show
  1. package/CHANGELOG.md +137 -1
  2. package/README.md +18 -6
  3. package/dist/components/HysAccordion/HysAccordion.vue.js +1 -1
  4. package/dist/components/HysAccordion/HysAccordion2.vue.js +181 -47
  5. package/dist/components/HysAlert/HysAlert.vue.js +14 -14
  6. package/dist/components/HysAnimatedNumber/HysAnimatedNumber.vue.js +23 -20
  7. package/dist/components/HysAutocomplete/HysAutocomplete.vue.js +7 -0
  8. package/dist/components/HysAutocomplete/HysAutocomplete2.vue.js +627 -0
  9. package/dist/components/HysAvatar/HysAvatar.vue.js +5 -35
  10. package/dist/components/HysAvatar/HysAvatar2.vue.js +221 -2
  11. package/dist/components/HysAvatarGroup/HysAvatarGroup.vue.js +7 -0
  12. package/dist/components/HysAvatarGroup/HysAvatarGroup2.vue.js +252 -0
  13. package/dist/components/HysBadge/HysBadge.vue.js +2 -2
  14. package/dist/components/HysBadge/HysBadge2.vue.js +154 -26
  15. package/dist/components/HysBreadcrumb/HysBreadcrumb.vue.js +5 -38
  16. package/dist/components/HysBreadcrumb/HysBreadcrumb2.vue.js +74 -2
  17. package/dist/components/HysButton/HysButton.vue.js +2 -2
  18. package/dist/components/HysButton/HysButton2.vue.js +29 -28
  19. package/dist/components/HysCalendar/HysCalendar.vue.js +5 -84
  20. package/dist/components/HysCalendar/HysCalendar2.vue.js +803 -2
  21. package/dist/components/HysCard/HysCard.vue.js +1 -1
  22. package/dist/components/HysCard/HysCard2.vue.js +177 -44
  23. package/dist/components/HysCascader/HysCascader.vue.js +5 -182
  24. package/dist/components/HysCascader/HysCascader2.vue.js +760 -2
  25. package/dist/components/HysCascader/HysCascaderColumn.vue.js +7 -0
  26. package/dist/components/HysCascader/HysCascaderColumn2.vue.js +232 -0
  27. package/dist/components/HysCheckbox/HysCheckbox.vue.js +5 -39
  28. package/dist/components/HysCheckbox/HysCheckbox2.vue.js +200 -2
  29. package/dist/components/HysCheckboxGroup/HysCheckboxGroup.vue.js +7 -0
  30. package/dist/components/HysCheckboxGroup/HysCheckboxGroup2.vue.js +237 -0
  31. package/dist/components/HysColorPicker/HysColorPicker.vue.js +2 -2
  32. package/dist/components/HysColorPicker/HysColorPicker2.vue.js +107 -106
  33. package/dist/components/HysCommandPalette/HysCommandPalette.vue.js +52 -51
  34. package/dist/components/HysCommentEditor/HysCommentEditor.vue.js +17 -17
  35. package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
  36. package/dist/components/HysDataGrid/HysDataGrid2.vue.js +397 -390
  37. package/dist/components/HysDatePicker/HysDatePicker.vue.js +268 -139
  38. package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +7 -0
  39. package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +807 -0
  40. package/dist/components/HysDatePicker/HysDatePickerPanel.vue.js +7 -0
  41. package/dist/components/HysDatePicker/HysDatePickerPanel2.vue.js +357 -0
  42. package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +268 -158
  43. package/dist/components/HysDivider/HysDivider.vue.js +2 -2
  44. package/dist/components/HysDivider/HysDivider2.vue.js +33 -13
  45. package/dist/components/HysDrawer/HysDrawer.vue.js +1 -1
  46. package/dist/components/HysDrawer/HysDrawer2.vue.js +55 -54
  47. package/dist/components/HysFileManager/HysFileManager.vue.js +5 -63
  48. package/dist/components/HysFileManager/HysFileManager2.vue.js +86 -2
  49. package/dist/components/HysForm/HysForm.vue.js +3 -3
  50. package/dist/components/HysForm/HysForm2.vue.js +580 -92
  51. package/dist/components/HysFormItem/HysFormItem.vue.js +5 -69
  52. package/dist/components/HysFormItem/HysFormItem2.vue.js +521 -2
  53. package/dist/components/HysGantt/HysGantt.vue.js +5 -264
  54. package/dist/components/HysGantt/HysGantt2.vue.js +1399 -2
  55. package/dist/components/HysInput/HysInput.vue.js +2 -2
  56. package/dist/components/HysInput/HysInput2.vue.js +468 -120
  57. package/dist/components/HysMention/HysMention.vue.js +2 -2
  58. package/dist/components/HysMention/HysMention2.vue.js +89 -88
  59. package/dist/components/HysModal/HysModal.vue.js +2 -2
  60. package/dist/components/HysModal/HysModal2.vue.js +35 -35
  61. package/dist/components/HysNotificationCenter/HysNotificationCenter.vue.js +37 -36
  62. package/dist/components/HysNumberInput/HysNumberInput.vue.js +2 -2
  63. package/dist/components/HysNumberInput/HysNumberInput2.vue.js +561 -70
  64. package/dist/components/HysOrgTree/HysOrgTree.vue.js +41 -36
  65. package/dist/components/HysPagination/HysPagination.vue.js +2 -2
  66. package/dist/components/HysPagination/HysPagination2.vue.js +93 -91
  67. package/dist/components/HysPermissionMatrix/HysPermissionMatrix.vue.js +5 -41
  68. package/dist/components/HysPermissionMatrix/HysPermissionMatrix2.vue.js +101 -2
  69. package/dist/components/HysRadio/HysRadio.vue.js +7 -0
  70. package/dist/components/HysRadio/HysRadio2.vue.js +180 -0
  71. package/dist/components/HysRadioGroup/HysRadioGroup.vue.js +5 -40
  72. package/dist/components/HysRadioGroup/HysRadioGroup2.vue.js +205 -2
  73. package/dist/components/HysRating/HysRating.vue.js +1 -1
  74. package/dist/components/HysRating/HysRating2.vue.js +288 -68
  75. package/dist/components/HysResizablePanel/HysResizablePanel.vue.js +46 -28
  76. package/dist/components/HysRichTextEditor/HysRichTextEditor.vue.js +2 -2
  77. package/dist/components/HysRichTextEditor/HysRichTextEditor2.vue.js +87 -67
  78. package/dist/components/HysSearch/HysSearch.vue.js +50 -38
  79. package/dist/components/HysSegmented/HysSegmented.vue.js +5 -58
  80. package/dist/components/HysSegmented/HysSegmented2.vue.js +273 -2
  81. package/dist/components/HysSelect/HysSelect.vue.js +3 -2
  82. package/dist/components/HysSelect/HysSelect2.vue.js +859 -164
  83. package/dist/components/HysSkeleton/HysSkeleton.vue.js +2 -2
  84. package/dist/components/HysSkeleton/HysSkeleton2.vue.js +126 -29
  85. package/dist/components/HysSlider/HysSlider.vue.js +2 -2
  86. package/dist/components/HysSlider/HysSlider2.vue.js +532 -59
  87. package/dist/components/HysSlider/SliderTooltip.vue.js +7 -0
  88. package/dist/components/HysSlider/SliderTooltip2.vue.js +156 -0
  89. package/dist/components/HysSplitPane/HysSplitPane.vue.js +48 -42
  90. package/dist/components/HysSteps/HysSteps.vue.js +2 -2
  91. package/dist/components/HysSteps/HysSteps2.vue.js +111 -36
  92. package/dist/components/HysSwitch/HysSwitch.vue.js +2 -2
  93. package/dist/components/HysSwitch/HysSwitch2.vue.js +235 -42
  94. package/dist/components/HysTable/HysTable.vue.js +1 -1
  95. package/dist/components/HysTable/HysTable2.vue.js +1471 -82
  96. package/dist/components/HysTable/HysTableFilterOptions.vue.js +7 -0
  97. package/dist/components/HysTable/HysTableFilterOptions2.vue.js +133 -0
  98. package/dist/components/HysTabs/HysTabs.vue.js +2 -2
  99. package/dist/components/HysTabs/HysTabs2.vue.js +262 -66
  100. package/dist/components/HysTagInput/HysTagInput.vue.js +43 -42
  101. package/dist/components/HysTextarea/HysTextarea.vue.js +137 -66
  102. package/dist/components/HysToast/HysToast.vue.js +2 -2
  103. package/dist/components/HysToast/HysToast2.vue.js +121 -38
  104. package/dist/components/HysTour/HysTour.vue.js +47 -42
  105. package/dist/components/HysTransfer/HysTransfer.vue.js +5 -207
  106. package/dist/components/HysTransfer/HysTransfer2.vue.js +416 -2
  107. package/dist/components/HysTransfer/HysTransferPanel.vue.js +7 -0
  108. package/dist/components/HysTransfer/HysTransferPanel2.vue.js +454 -0
  109. package/dist/components/HysTree/HysTree.vue.js +2 -3
  110. package/dist/components/HysTree/HysTree2.vue.js +641 -301
  111. package/dist/components/HysTreeSelect/HysTreeSelect.vue.js +5 -129
  112. package/dist/components/HysTreeSelect/HysTreeSelect2.vue.js +558 -2
  113. package/dist/components/HysTreeSelect/HysTreeSelectPanel.vue.js +7 -0
  114. package/dist/components/HysTreeSelect/HysTreeSelectPanel2.vue.js +323 -0
  115. package/dist/components/HysUpload/HysUpload.vue.js +2 -2
  116. package/dist/components/HysUpload/HysUpload2.vue.js +97 -78
  117. package/dist/composables/autocomplete.js +50 -0
  118. package/dist/composables/avatar.js +57 -0
  119. package/dist/composables/calendar.js +96 -0
  120. package/dist/composables/cascader.js +79 -0
  121. package/dist/composables/choice.js +38 -0
  122. package/dist/composables/choiceModel.js +67 -0
  123. package/dist/composables/datePicker.js +227 -0
  124. package/dist/composables/formContext.js +94 -3
  125. package/dist/composables/formLayout.js +57 -0
  126. package/dist/composables/formValidation.js +240 -0
  127. package/dist/composables/ganttConflicts.js +143 -0
  128. package/dist/composables/numberInput.js +91 -0
  129. package/dist/composables/rating.js +16 -0
  130. package/dist/composables/selectOptions.js +54 -0
  131. package/dist/composables/table.js +150 -0
  132. package/dist/composables/textInput.js +34 -0
  133. package/dist/composables/toastEscape.js +16 -0
  134. package/dist/composables/transfer.js +63 -0
  135. package/dist/composables/tree.js +118 -0
  136. package/dist/composables/treeSelect.js +71 -0
  137. package/dist/composables/useCascader.js +438 -0
  138. package/dist/composables/useDatePicker.js +425 -0
  139. package/dist/composables/useDialog.js +16 -16
  140. package/dist/composables/useFloating.js +98 -52
  141. package/dist/composables/useGanttDependencies.js +306 -0
  142. package/dist/composables/useGanttHistory.js +157 -0
  143. package/dist/composables/useGanttLabelResize.js +100 -0
  144. package/dist/composables/useHysToast.js +148 -0
  145. package/dist/composables/useTable.js +474 -0
  146. package/dist/composables/useTextareaSize.js +72 -0
  147. package/dist/composables/useTransfer.js +257 -0
  148. package/dist/composables/useTree.js +439 -0
  149. package/dist/composables/useTreeSelect.js +361 -0
  150. package/dist/config.js +18 -15
  151. package/dist/index.js +149 -136
  152. package/dist/style.css +1 -1
  153. package/dist/types/components/HysAccordion/HysAccordion.vue.d.ts +61 -22
  154. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +201 -0
  155. package/dist/types/components/HysAvatar/HysAvatar.vue.d.ts +28 -15
  156. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +99 -0
  157. package/dist/types/components/HysBadge/HysBadge.vue.d.ts +41 -4
  158. package/dist/types/components/HysBreadcrumb/HysBreadcrumb.vue.d.ts +38 -10
  159. package/dist/types/components/HysButton/HysButton.vue.d.ts +0 -1
  160. package/dist/types/components/HysCalendar/HysCalendar.vue.d.ts +119 -29
  161. package/dist/types/components/HysCard/HysCard.vue.d.ts +57 -5
  162. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +129 -41
  163. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +55 -0
  164. package/dist/types/components/HysCheckbox/HysCheckbox.vue.d.ts +55 -27
  165. package/dist/types/components/HysCheckboxGroup/HysCheckboxGroup.vue.d.ts +73 -0
  166. package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +1 -1
  167. package/dist/types/components/HysDatePicker/HysDatePicker.vue.d.ts +66 -14
  168. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +90 -0
  169. package/dist/types/components/HysDatePicker/HysDatePickerPanel.vue.d.ts +93 -0
  170. package/dist/types/components/HysDateRangePicker/HysDateRangePicker.vue.d.ts +66 -14
  171. package/dist/types/components/HysDivider/HysDivider.vue.d.ts +8 -3
  172. package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +1 -0
  173. package/dist/types/components/HysFileManager/HysFileManager.vue.d.ts +8 -4
  174. package/dist/types/components/HysForm/HysForm.vue.d.ts +110 -18
  175. package/dist/types/components/HysFormItem/HysFormItem.vue.d.ts +108 -2
  176. package/dist/types/components/HysGantt/HysGantt.vue.d.ts +88 -4
  177. package/dist/types/components/HysInput/HysInput.vue.d.ts +52 -29
  178. package/dist/types/components/HysMention/HysMention.vue.d.ts +2 -2
  179. package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +93 -33
  180. package/dist/types/components/HysOrgTree/HysOrgTree.vue.d.ts +4 -1
  181. package/dist/types/components/HysPagination/HysPagination.vue.d.ts +1 -1
  182. package/dist/types/components/HysPermissionMatrix/HysPermissionMatrix.vue.d.ts +8 -1
  183. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +3 -3
  184. package/dist/types/components/HysProgress/HysProgress.vue.d.ts +1 -1
  185. package/dist/types/components/HysRadio/HysRadio.vue.d.ts +56 -0
  186. package/dist/types/components/HysRadioGroup/HysRadioGroup.vue.d.ts +62 -17
  187. package/dist/types/components/HysRating/HysRating.vue.d.ts +85 -5
  188. package/dist/types/components/HysResizablePanel/HysResizablePanel.vue.d.ts +6 -0
  189. package/dist/types/components/HysRichTextEditor/HysRichTextEditor.vue.d.ts +4 -4
  190. package/dist/types/components/HysSearch/HysSearch.vue.d.ts +2 -2
  191. package/dist/types/components/HysSegmented/HysSegmented.vue.d.ts +64 -32
  192. package/dist/types/components/HysSelect/HysSelect.vue.d.ts +120 -14
  193. package/dist/types/components/HysSkeleton/HysSkeleton.vue.d.ts +30 -2
  194. package/dist/types/components/HysSlider/HysSlider.vue.d.ts +66 -9
  195. package/dist/types/components/HysSlider/SliderTooltip.vue.d.ts +22 -0
  196. package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +6 -0
  197. package/dist/types/components/HysSteps/HysSteps.vue.d.ts +65 -9
  198. package/dist/types/components/HysSwitch/HysSwitch.vue.d.ts +76 -17
  199. package/dist/types/components/HysTable/HysTable.vue.d.ts +206 -32
  200. package/dist/types/components/HysTable/HysTableFilterOptions.vue.d.ts +18 -0
  201. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +76 -23
  202. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +5 -5
  203. package/dist/types/components/HysTextarea/HysTextarea.vue.d.ts +44 -27
  204. package/dist/types/components/HysToast/HysToast.vue.d.ts +55 -7
  205. package/dist/types/components/HysTour/HysTour.vue.d.ts +5 -3
  206. package/dist/types/components/HysTransfer/HysTransfer.vue.d.ts +55 -30
  207. package/dist/types/components/HysTransfer/HysTransferPanel.vue.d.ts +105 -0
  208. package/dist/types/components/HysTree/HysTree.vue.d.ts +140 -73
  209. package/dist/types/components/HysTreeSelect/HysTreeSelect.vue.d.ts +102 -23
  210. package/dist/types/components/HysTreeSelect/HysTreeSelectPanel.vue.d.ts +56 -0
  211. package/dist/types/composables/autocomplete.d.ts +106 -0
  212. package/dist/types/composables/avatar.d.ts +70 -0
  213. package/dist/types/composables/calendar.d.ts +66 -0
  214. package/dist/types/composables/cascader.d.ts +192 -0
  215. package/dist/types/composables/choice.d.ts +110 -0
  216. package/dist/types/composables/choiceModel.d.ts +11 -0
  217. package/dist/types/composables/datePicker.d.ts +247 -0
  218. package/dist/types/composables/formContext.d.ts +138 -8
  219. package/dist/types/composables/formLayout.d.ts +11 -0
  220. package/dist/types/composables/formValidation.d.ts +13 -0
  221. package/dist/types/composables/gantt.d.ts +68 -0
  222. package/dist/types/composables/ganttConflicts.d.ts +30 -0
  223. package/dist/types/composables/numberInput.d.ts +45 -0
  224. package/dist/types/composables/rating.d.ts +18 -0
  225. package/dist/types/composables/segmented.d.ts +15 -0
  226. package/dist/types/composables/selectOptions.d.ts +44 -0
  227. package/dist/types/composables/slider.d.ts +21 -0
  228. package/dist/types/composables/table.d.ts +309 -0
  229. package/dist/types/composables/textInput.d.ts +76 -0
  230. package/dist/types/composables/toastEscape.d.ts +1 -0
  231. package/dist/types/composables/transfer.d.ts +180 -0
  232. package/dist/types/composables/tree.d.ts +237 -0
  233. package/dist/types/composables/treeSelect.d.ts +167 -0
  234. package/dist/types/composables/useCascader.d.ts +162 -0
  235. package/dist/types/composables/useDatePicker.d.ts +79 -0
  236. package/dist/types/composables/useFloating.d.ts +8 -5
  237. package/dist/types/composables/useGanttDependencies.d.ts +83 -0
  238. package/dist/types/composables/useGanttHistory.d.ts +42 -0
  239. package/dist/types/composables/useGanttLabelResize.d.ts +23 -0
  240. package/dist/types/composables/useHysToast.d.ts +50 -0
  241. package/dist/types/composables/useTable.d.ts +60 -0
  242. package/dist/types/composables/useTextareaSize.d.ts +3 -0
  243. package/dist/types/composables/useTransfer.d.ts +58 -0
  244. package/dist/types/composables/useTree.d.ts +77 -0
  245. package/dist/types/composables/useTreeSelect.d.ts +117 -0
  246. package/dist/types/index.d.ts +38 -7
  247. package/package.json +47 -11
@@ -0,0 +1,180 @@
1
+ import { defineComponent as Y, inject as M, useAttrs as Z, ref as p, useId as g, computed as d, watch as _, onMounted as ee, onActivated as ae, onDeactivated as te, onBeforeUnmount as le, openBlock as O, createElementBlock as R, mergeProps as I, unref as l, createElementVNode as S, renderSlot as $, createTextVNode as oe, toDisplayString as K, createCommentVNode as ie } from "vue";
2
+ import { fieldKey as re, useHysControlState as de } from "../../composables/formContext.js";
3
+ import { radioGroupKey as ue, isChoice as se } from "../../composables/choice.js";
4
+ import { useChoiceModel as ne, useChoiceNativeReset as ve } from "../../composables/choiceModel.js";
5
+ import { useHysRootAttrs as ce } from "../../config.js";
6
+ const fe = ["data-status"], be = ["id", "data-hys-ui-radio-controlled", "name", "form", "value", "checked", "disabled", "required", "aria-readonly", "aria-label", "aria-invalid", "aria-describedby", "tabindex"], me = {
7
+ class: "hys-ui-radio-box",
8
+ "aria-hidden": "true"
9
+ }, ye = { class: "hys-ui-radio-label" }, he = ["id"], Ee = /* @__PURE__ */ Y({
10
+ inheritAttrs: !1,
11
+ __name: "HysRadio",
12
+ props: {
13
+ modelValue: { default: void 0 },
14
+ defaultValue: { default: void 0 },
15
+ value: { default: void 0 },
16
+ label: {},
17
+ disabled: { type: Boolean },
18
+ readonly: { type: Boolean },
19
+ size: {},
20
+ button: { type: Boolean, default: void 0 },
21
+ border: { type: Boolean, default: void 0 },
22
+ buttonStyle: {},
23
+ name: {},
24
+ form: {},
25
+ required: { type: Boolean },
26
+ ariaLabel: {},
27
+ tabindex: {},
28
+ focusable: { type: Boolean, default: !0 },
29
+ autofocus: { type: Boolean },
30
+ error: {},
31
+ status: {}
32
+ },
33
+ emits: ["update:modelValue", "change", "focus", "blur"],
34
+ setup(i, { expose: T, emit: U }) {
35
+ const t = i, m = U, e = M(ue, void 0), s = M(re, void 0), y = Z(), W = ce(), u = p(), q = g(), A = de(t), x = ne(
36
+ t,
37
+ () => t.defaultValue ?? null
38
+ ), n = d(() => se(t.value) ? t.value : "on"), v = d(
39
+ () => (e ? e.value.value : x.current.value) === n.value
40
+ ), h = d(() => A.disabled.value || !!(e != null && e.disabled.value)), C = d(() => t.readonly || (e == null ? void 0 : e.readonly.value)), F = d(() => t.size ?? (e == null ? void 0 : e.size.value) ?? A.size.value), G = d(() => t.button ?? (e == null ? void 0 : e.button.value) ?? !1), P = d(() => t.border ?? (e == null ? void 0 : e.border.value) ?? !1), J = d(
41
+ () => t.buttonStyle ? t.buttonStyle === "solid" : (e == null ? void 0 : e.solid.value) ?? !1
42
+ ), E = d(
43
+ () => {
44
+ var a, o;
45
+ return t.error || t.status === "error" || !e && ((a = s == null ? void 0 : s.invalid) != null && a.value) ? "error" : t.status ?? (e == null ? void 0 : e.status.value) ?? ((o = s == null ? void 0 : s.status) == null ? void 0 : o.value);
46
+ }
47
+ );
48
+ function c() {
49
+ u.value && (u.value.checked = v.value);
50
+ }
51
+ async function j() {
52
+ var k, V;
53
+ if (!x.isLive() || h.value || C.value || v.value)
54
+ return c(), !1;
55
+ const a = e == null ? void 0 : e.select(n.value);
56
+ e && m("change", n.value);
57
+ const o = a ? await a : await x.commit(
58
+ n.value,
59
+ (r) => m("update:modelValue", r),
60
+ (r) => m("change", r),
61
+ !0
62
+ );
63
+ c();
64
+ const B = (k = u.value) == null ? void 0 : k.name;
65
+ if (!e && B)
66
+ for (const r of document.getElementsByName(B))
67
+ r instanceof HTMLInputElement && r.type === "radio" && r.form === ((V = u.value) == null ? void 0 : V.form) && r.hasAttribute("data-hys-ui-radio-controlled") && r.dispatchEvent(new Event("hys-ui-radio-sync"));
68
+ return o;
69
+ }
70
+ let b;
71
+ function w() {
72
+ e && !b && (b = e.register({
73
+ input: u,
74
+ value: d(() => n.value),
75
+ disabled: d(() => !!t.disabled),
76
+ locked: d(() => !!t.disabled || !!t.readonly)
77
+ }));
78
+ }
79
+ function z() {
80
+ b == null || b(), b = void 0;
81
+ }
82
+ _(v, c, { flush: "post" }), ve(
83
+ u,
84
+ x.reset,
85
+ c,
86
+ () => t.form ?? (e == null ? void 0 : e.form.value)
87
+ ), ee(() => {
88
+ var a;
89
+ c(), w(), t.autofocus && !h.value && ((a = u.value) == null || a.focus());
90
+ }), ae(w), te(z), le(z);
91
+ const Q = () => Object.fromEntries(
92
+ Object.entries(y).filter(
93
+ ([a]) => a === "id" || a.startsWith("aria-")
94
+ )
95
+ ), X = () => Object.fromEntries(
96
+ Object.entries(y).filter(
97
+ ([a]) => a !== "id" && !a.startsWith("aria-")
98
+ )
99
+ );
100
+ return T({
101
+ input: u,
102
+ checked: v,
103
+ focus: (a) => {
104
+ var o;
105
+ h.value || (o = u.value) == null || o.focus(a);
106
+ },
107
+ blur: () => {
108
+ var a;
109
+ return (a = u.value) == null ? void 0 : a.blur();
110
+ },
111
+ select: j
112
+ }), (a, o) => {
113
+ var B, k, V, r, H, N, D, L;
114
+ return O(), R("label", I({ ...l(W), ...X() }, {
115
+ class: ["hys-ui-radio-option", [
116
+ "hys-ui-radio-" + F.value,
117
+ {
118
+ "hys-ui-radio-option-disabled": h.value,
119
+ "hys-ui-radio-option-readonly": C.value,
120
+ "hys-ui-radio-bordered": P.value,
121
+ "hys-ui-radio-button": G.value,
122
+ "hys-ui-radio-solid": J.value,
123
+ "hys-ui-radio-selected": v.value,
124
+ "hys-ui-radio-error": E.value === "error"
125
+ }
126
+ ]],
127
+ "data-status": E.value,
128
+ onMousedown: o[3] || (o[3] = (f) => !i.focusable && f.preventDefault())
129
+ }), [
130
+ S("input", I({
131
+ ref_key: "input",
132
+ ref: u
133
+ }, Q(), {
134
+ class: "hys-ui-radio-native",
135
+ type: "radio",
136
+ id: l(y).id || (l(e) || (B = l(s)) == null ? void 0 : B.id.value),
137
+ "data-hys-ui-field-managed": "",
138
+ "data-hys-ui-radio-controlled": i.modelValue !== void 0 ? "" : void 0,
139
+ name: ((k = l(e)) == null ? void 0 : k.name.value) || i.name,
140
+ form: i.form || ((V = l(e)) == null ? void 0 : V.form.value),
141
+ value: String(n.value),
142
+ checked: v.value,
143
+ disabled: h.value,
144
+ required: i.required || ((r = l(e)) == null ? void 0 : r.required.value) || !l(e) && ((H = l(s)) == null ? void 0 : H.required.value),
145
+ "aria-readonly": C.value || void 0,
146
+ "aria-label": i.ariaLabel || l(y)["aria-label"] || i.label || (!i.label && !a.$slots.default && !l(e) ? (N = l(s)) == null ? void 0 : N.label.value : void 0),
147
+ "aria-invalid": E.value === "error" || void 0,
148
+ "aria-describedby": [
149
+ l(y)["aria-describedby"],
150
+ i.error ? l(q) : void 0,
151
+ l(e) || (D = l(s)) == null ? void 0 : D.describedBy.value
152
+ ].filter(Boolean).join(" ") || void 0,
153
+ tabindex: i.focusable ? i.tabindex ?? ((L = l(e)) == null ? void 0 : L.tabindex(n.value)) : -1,
154
+ onClick: o[0] || (o[0] = (f) => C.value && f.preventDefault()),
155
+ onChange: j,
156
+ onHysUiRadioSync: c,
157
+ onFocus: o[1] || (o[1] = (f) => m("focus", f)),
158
+ onBlur: o[2] || (o[2] = (f) => m("blur", f))
159
+ }), null, 16, be),
160
+ S("span", me, [
161
+ $(a.$slots, "icon", { checked: v.value }, void 0, !0)
162
+ ]),
163
+ S("span", ye, [
164
+ $(a.$slots, "default", {}, () => [
165
+ oe(K(i.label), 1)
166
+ ], !0)
167
+ ]),
168
+ i.error ? (O(), R("small", {
169
+ key: 0,
170
+ id: l(q),
171
+ class: "hys-ui-radio-error-text",
172
+ role: "alert"
173
+ }, K(i.error), 9, he)) : ie("", !0)
174
+ ], 16, fe);
175
+ };
176
+ }
177
+ });
178
+ export {
179
+ Ee as default
180
+ };
@@ -1,42 +1,7 @@
1
- import { defineComponent as u, useId as s, openBlock as t, createElementBlock as l, mergeProps as c, unref as o, Fragment as m, renderList as v, createElementVNode as b, createTextVNode as h, toDisplayString as p } from "vue";
2
- import { useHysRootAttrs as y } from "../../config.js";
3
- const g = ["aria-label"], f = ["name", "value", "checked", "disabled", "onChange"], L = /* @__PURE__ */ u({
4
- __name: "HysRadioGroup",
5
- props: {
6
- modelValue: {},
7
- options: {},
8
- name: {},
9
- disabled: { type: Boolean },
10
- vertical: { type: Boolean },
11
- ariaLabel: {}
12
- },
13
- emits: ["update:modelValue", "change"],
14
- setup(a, { emit: i }) {
15
- const r = y(), d = s(), n = i;
16
- return (V, k) => (t(), l("div", c(o(r), {
17
- class: "hys-ui-ex-radio",
18
- role: "radiogroup",
19
- "aria-label": a.ariaLabel || "单选组",
20
- style: { flexDirection: a.vertical ? "column" : void 0 }
21
- }), [
22
- (t(!0), l(m, null, v(a.options, (e) => (t(), l("label", {
23
- key: e.value
24
- }, [
25
- b("input", {
26
- type: "radio",
27
- name: a.name || o(d),
28
- value: e.value,
29
- checked: a.modelValue === e.value,
30
- disabled: a.disabled || e.disabled,
31
- onChange: (x) => {
32
- n("update:modelValue", e.value), n("change", e.value);
33
- }
34
- }, null, 40, f),
35
- h(" " + p(e.label), 1)
36
- ]))), 128))
37
- ], 16, g));
38
- }
39
- });
1
+ import o from "./HysRadioGroup2.vue.js";
2
+ /* empty css */
3
+ import r from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ r(o, [["__scopeId", "data-v-f34c441a"]]);
40
5
  export {
41
- L as default
6
+ f as default
42
7
  };
@@ -1,4 +1,207 @@
1
- import f from "./HysRadioGroup.vue.js";
1
+ import { defineComponent as z, inject as $, useAttrs as W, ref as J, useId as Q, computed as s, shallowRef as X, provide as Y, onMounted as Z, openBlock as b, createElementBlock as p, mergeProps as _, unref as u, Fragment as D, renderList as ee, createBlock as ae, withCtx as re, renderSlot as N, createTextVNode as L, toDisplayString as w, createCommentVNode as E, createElementVNode as te } from "vue";
2
+ import oe from "../HysRadio/HysRadio.vue.js";
3
+ import { useHysControlState as le, fieldKey as ie } from "../../composables/formContext.js";
4
+ import { choiceOptions as ue, radioGroupKey as de, choiceKey as ne } from "../../composables/choice.js";
5
+ import { useChoiceModel as se, useChoiceNativeReset as ce } from "../../composables/choiceModel.js";
6
+ import { useHysRootAttrs as ve } from "../../config.js";
7
+ const fe = ["id", "aria-label", "aria-disabled", "aria-readonly", "aria-required", "aria-invalid", "aria-describedby"], ye = {
8
+ key: 0,
9
+ class: "hys-ui-radio-empty"
10
+ }, me = { class: "hys-ui-radio-empty" }, be = ["id"], Be = /* @__PURE__ */ z({
11
+ inheritAttrs: !1,
12
+ __name: "HysRadioGroup",
13
+ props: {
14
+ modelValue: { default: void 0 },
15
+ defaultValue: { default: void 0 },
16
+ options: {},
17
+ fieldNames: {},
18
+ name: {},
19
+ form: {},
20
+ disabled: { type: Boolean },
21
+ readonly: { type: Boolean },
22
+ required: { type: Boolean },
23
+ vertical: { type: Boolean },
24
+ size: {},
25
+ ariaLabel: {},
26
+ type: { default: "radio" },
27
+ buttonStyle: { default: "outline" },
28
+ border: { type: Boolean },
29
+ block: { type: Boolean },
30
+ loopNavigation: { type: Boolean, default: !0 },
31
+ autofocus: { type: Boolean },
32
+ error: {},
33
+ status: {},
34
+ emptyText: { default: "暂无选项" }
35
+ },
36
+ emits: ["update:modelValue", "change", "focus", "blur"],
37
+ setup(d, { expose: H, emit: I }) {
38
+ const t = d, h = I, { disabled: m, size: T, label: O } = le(t), n = $(ie, void 0), g = W(), M = ve(), f = J(), B = Q(), k = se(
39
+ t,
40
+ () => t.defaultValue ?? null
41
+ ), y = k.current, q = s(
42
+ () => ue(t.options ?? [], t.fieldNames)
43
+ ), c = X([]), F = s(() => t.name || B), x = s(
44
+ () => {
45
+ var e, a;
46
+ return t.error || (e = n == null ? void 0 : n.invalid) != null && e.value || t.status === "error" ? "error" : t.status ?? ((a = n == null ? void 0 : n.status) == null ? void 0 : a.value);
47
+ }
48
+ ), C = () => [...c.value].sort((e, a) => {
49
+ const o = e.input.value, l = a.input.value;
50
+ return o && l ? o.compareDocumentPosition(l) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : o === l ? 0 : 1 : 0;
51
+ }), K = () => C().filter(
52
+ (e) => {
53
+ var a;
54
+ return !((a = e.input.value) != null && a.disabled) && !e.locked.value;
55
+ }
56
+ );
57
+ function A() {
58
+ for (const e of c.value)
59
+ e.input.value && (e.input.value.checked = e.value.value === y.value);
60
+ }
61
+ async function V(e) {
62
+ if (!k.isLive() || m.value || t.readonly) return !1;
63
+ const a = c.value.find((i) => i.value.value === e), o = q.value.find((i) => i.value === e);
64
+ if (!a && !o || a != null && a.locked.value || o != null && o.disabled)
65
+ return A(), !1;
66
+ const l = await k.commit(
67
+ e,
68
+ (i) => h("update:modelValue", i),
69
+ (i) => h("change", i),
70
+ !0
71
+ );
72
+ return A(), l;
73
+ }
74
+ function P(e) {
75
+ const a = c.value.filter((l) => !l.disabled.value), o = a.find((l) => l.value.value === y.value) ?? a[0];
76
+ return (o == null ? void 0 : o.value.value) === e ? 0 : -1;
77
+ }
78
+ function R(e) {
79
+ var o, l;
80
+ if (m.value) return;
81
+ const a = C().filter((i) => {
82
+ var r;
83
+ return !((r = i.input.value) != null && r.disabled);
84
+ });
85
+ (l = (o = a.find((i) => i.value.value === (e ?? y.value)) ?? a[0]) == null ? void 0 : o.input.value) == null || l.focus();
86
+ }
87
+ function G() {
88
+ var a;
89
+ const e = document.activeElement;
90
+ (a = f.value) != null && a.contains(e) && (e == null || e.blur());
91
+ }
92
+ function U(e) {
93
+ var v, S;
94
+ if (![
95
+ "ArrowDown",
96
+ "ArrowUp",
97
+ "ArrowLeft",
98
+ "ArrowRight",
99
+ "Home",
100
+ "End"
101
+ ].includes(e.key) || e.target.tagName !== "INPUT" || (e.preventDefault(), m.value || t.readonly)) return;
102
+ const a = K();
103
+ if (!a.length) return;
104
+ const o = a.findIndex(
105
+ (j) => j.input.value === e.target
106
+ ), l = f.value && getComputedStyle(f.value).direction === "rtl", i = e.key === "ArrowDown" || e.key === (l ? "ArrowLeft" : "ArrowRight") ? 1 : -1;
107
+ let r = e.key === "Home" ? 0 : e.key === "End" ? a.length - 1 : o < 0 ? i > 0 ? 0 : a.length - 1 : o + i;
108
+ t.loopNavigation ? r = (r + a.length) % a.length : r = Math.max(0, Math.min(a.length - 1, r)), (v = a[r].input.value) == null || v.focus(), (S = a[r].input.value) == null || S.click();
109
+ }
110
+ return Y(de, {
111
+ value: y,
112
+ disabled: m,
113
+ readonly: s(() => !!t.readonly),
114
+ required: s(() => !!t.required || !!(n != null && n.required.value)),
115
+ size: T,
116
+ button: s(() => t.type === "button"),
117
+ border: s(() => !!t.border),
118
+ solid: s(() => t.buttonStyle === "solid"),
119
+ name: F,
120
+ form: s(() => t.form),
121
+ status: x,
122
+ select: V,
123
+ tabindex: P,
124
+ register: (e) => (c.value = [...c.value, e], () => {
125
+ c.value = c.value.filter((a) => a !== e);
126
+ })
127
+ }), ce(f, k.reset, A, () => t.form), Z(() => {
128
+ t.autofocus && R();
129
+ }), H({ value: y, focus: R, blur: G, select: V }), (e, a) => {
130
+ var o, l, i;
131
+ return b(), p("div", _({
132
+ ref_key: "root",
133
+ ref: f
134
+ }, { ...u(M), ...u(g) }, {
135
+ id: u(g).id || ((o = u(n)) == null ? void 0 : o.id.value),
136
+ "data-hys-ui-field-managed": "",
137
+ class: ["hys-ui-ex-radio", [
138
+ "hys-ui-radio-" + u(T),
139
+ {
140
+ "hys-ui-radio-disabled": u(m),
141
+ "hys-ui-radio-readonly": d.readonly,
142
+ "hys-ui-radio-vertical": d.vertical,
143
+ "hys-ui-radio-block": d.block
144
+ }
145
+ ]],
146
+ role: "radiogroup",
147
+ "aria-label": d.ariaLabel || u(g)["aria-label"] || u(O) || "单选组",
148
+ "aria-disabled": u(m) || void 0,
149
+ "aria-readonly": d.readonly || void 0,
150
+ "aria-required": d.required || ((l = u(n)) == null ? void 0 : l.required.value) || void 0,
151
+ "aria-invalid": x.value === "error" || void 0,
152
+ "aria-describedby": [
153
+ u(g)["aria-describedby"],
154
+ d.error ? u(B) + "-error" : (i = u(n)) == null ? void 0 : i.describedBy.value
155
+ ].filter(Boolean).join(" ") || void 0,
156
+ onKeydown: U,
157
+ onFocusin: a[0] || (a[0] = (r) => {
158
+ var v;
159
+ return !((v = f.value) != null && v.contains(r.relatedTarget)) && h("focus", r);
160
+ }),
161
+ onFocusout: a[1] || (a[1] = (r) => {
162
+ var v;
163
+ return !((v = f.value) != null && v.contains(r.relatedTarget)) && h("blur", r);
164
+ })
165
+ }), [
166
+ t.options !== void 0 ? (b(), p(D, { key: 0 }, [
167
+ (b(!0), p(D, null, ee(q.value, (r) => (b(), ae(oe, {
168
+ key: u(ne)(r.value),
169
+ value: r.value,
170
+ disabled: r.disabled,
171
+ required: d.required
172
+ }, {
173
+ default: re(() => [
174
+ N(e.$slots, "label", {
175
+ option: r,
176
+ checked: u(y) === r.value
177
+ }, () => [
178
+ L(w(r.label), 1)
179
+ ], !0)
180
+ ]),
181
+ _: 2
182
+ }, 1032, ["value", "disabled", "required"]))), 128)),
183
+ q.value.length ? E("", !0) : (b(), p("span", ye, [
184
+ N(e.$slots, "empty", {}, () => [
185
+ L(w(d.emptyText), 1)
186
+ ], !0)
187
+ ]))
188
+ ], 64)) : N(e.$slots, "default", { value: u(y) }, () => [
189
+ te("span", me, [
190
+ N(e.$slots, "empty", {}, () => [
191
+ L(w(d.emptyText), 1)
192
+ ], !0)
193
+ ])
194
+ ], !0, 1),
195
+ d.error ? (b(), p("small", {
196
+ key: 2,
197
+ id: u(B) + "-error",
198
+ class: "hys-ui-radio-group-error",
199
+ role: "alert"
200
+ }, w(d.error), 9, be)) : E("", !0)
201
+ ], 16, fe);
202
+ };
203
+ }
204
+ });
2
205
  export {
3
- f as default
206
+ Be as default
4
207
  };
@@ -1,7 +1,7 @@
1
1
  import o from "./HysRating2.vue.js";
2
2
  /* empty css */
3
3
  import t from "../../_virtual/_plugin-vue_export-helper.js";
4
- const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-80786dbb"]]);
4
+ const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-59bceb0b"]]);
5
5
  export {
6
6
  p as default
7
7
  };