hisonvue 1.0.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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +248 -0
  3. package/dist/HAccordion-CPtgQUK0.js +1 -0
  4. package/dist/HAccordion-ll-4cIAw.mjs +262 -0
  5. package/dist/HBaggie-D6omQoFh.js +1 -0
  6. package/dist/HBaggie-D_7mEiuV.mjs +283 -0
  7. package/dist/HBanner-DmcMOFqS.mjs +420 -0
  8. package/dist/HBanner-Io4SdGGs.js +1 -0
  9. package/dist/HButton-DAVuDmOQ.js +1 -0
  10. package/dist/HButton-DAriO81x.mjs +256 -0
  11. package/dist/HCalendar-DKwGatUk.js +2 -0
  12. package/dist/HCalendar-w18iIB90.mjs +3387 -0
  13. package/dist/HCaption-6CbSqRA7.js +1 -0
  14. package/dist/HCaption-DwsXHDNK.mjs +275 -0
  15. package/dist/HChart-C86JXUyW.js +1 -0
  16. package/dist/HChart-CcArHFr0.mjs +179 -0
  17. package/dist/HDrawer-DG1O42iF.mjs +439 -0
  18. package/dist/HDrawer-U5VC_okK.js +1 -0
  19. package/dist/HDropdown-Bs7AfefJ.mjs +393 -0
  20. package/dist/HDropdown-D4RAGmjE.js +1 -0
  21. package/dist/HFileset-BGuP9O4l.mjs +578 -0
  22. package/dist/HFileset-CuPR6Hwf.js +2 -0
  23. package/dist/HGap-BPAdnOQz.js +1 -0
  24. package/dist/HGap-DzGrfWVt.mjs +233 -0
  25. package/dist/HGrid-BiIhVCv_.mjs +345 -0
  26. package/dist/HGrid-C3EV_pgM.js +1 -0
  27. package/dist/HImagebox-D_DKeCrO.mjs +654 -0
  28. package/dist/HImagebox-t_UdFjQO.js +2 -0
  29. package/dist/HInput-BEyJqYkD.mjs +1103 -0
  30. package/dist/HInput-DMGLY473.js +1 -0
  31. package/dist/HInputGroup-D37WTYoI.mjs +281 -0
  32. package/dist/HInputGroup-Dcfr23sZ.js +1 -0
  33. package/dist/HLabel-B2FOqSiS.mjs +369 -0
  34. package/dist/HLabel-Dm48mSwn.js +1 -0
  35. package/dist/HLayout-BbCEm_aO.mjs +196 -0
  36. package/dist/HLayout-C1e4BZ_K.js +1 -0
  37. package/dist/HList-CAeYb-hz.mjs +419 -0
  38. package/dist/HList-eNXmMf27.js +1 -0
  39. package/dist/HModal-BDBEEpKm.mjs +778 -0
  40. package/dist/HModal-GODLq3wH.js +1 -0
  41. package/dist/HNote-CWnUjt3_.mjs +934 -0
  42. package/dist/HNote-D_Xwu9oL.js +1 -0
  43. package/dist/HPagination-Db_L9wv-.js +1 -0
  44. package/dist/HPagination-e5e2a5GS.mjs +496 -0
  45. package/dist/HParagraph-BRuSeOMU.js +1 -0
  46. package/dist/HParagraph-DYuB-qjY.mjs +463 -0
  47. package/dist/HPopup-Brp1FVpm.mjs +431 -0
  48. package/dist/HPopup-ChkoI3xm.js +1 -0
  49. package/dist/HSpinner-DDtU9PL_.js +1 -0
  50. package/dist/HSpinner-DOq2k5kT.mjs +281 -0
  51. package/dist/HTable-DGFnzD4u.js +1 -0
  52. package/dist/HTable-GCDP5O_J.mjs +620 -0
  53. package/dist/_plugin-vue_export-helper-BHFhmbuH.js +1 -0
  54. package/dist/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
  55. package/dist/ar.es-CKau4tBl.js +5 -0
  56. package/dist/ar.es-XxSuE68c.mjs +57 -0
  57. package/dist/bg.es-BJ7fu6yy.mjs +57 -0
  58. package/dist/bg.es-Melqx1M5.js +5 -0
  59. package/dist/bn.es-CYlBkxc5.mjs +57 -0
  60. package/dist/bn.es-ClbAZ4WP.js +5 -0
  61. package/dist/bs.es-KjOcbE96.js +5 -0
  62. package/dist/bs.es-yMnaKmdi.mjs +57 -0
  63. package/dist/ca.es-BaGTENcW.js +5 -0
  64. package/dist/ca.es-DIhlxmQc.mjs +67 -0
  65. package/dist/cs.es-BN8oxRXQ.mjs +57 -0
  66. package/dist/cs.es-ChOlHqBr.js +5 -0
  67. package/dist/da.es-DJB5lAli.mjs +57 -0
  68. package/dist/da.es-DOFXbf8-.js +5 -0
  69. package/dist/de.es-DwE82Kaw.js +5 -0
  70. package/dist/de.es-glb8GeJh.mjs +57 -0
  71. package/dist/drag-and-drop.es-4ttM1tRs.js +5 -0
  72. package/dist/drag-and-drop.es-Ckzp6XEn.mjs +183 -0
  73. package/dist/el.es-CNrCgzYI.js +5 -0
  74. package/dist/el.es-_bBZf22h.mjs +76 -0
  75. package/dist/en.es-CV9nmQGr.mjs +57 -0
  76. package/dist/en.es-CgL601qd.js +5 -0
  77. package/dist/es.es-CZjcWK54.mjs +57 -0
  78. package/dist/es.es-IdFGKY7Q.js +5 -0
  79. package/dist/et.es-BygWmV3P.js +5 -0
  80. package/dist/et.es-CjvQAzNF.mjs +57 -0
  81. package/dist/fa.es-DW_0SmsT.js +5 -0
  82. package/dist/fa.es-DykeFwDA.mjs +57 -0
  83. package/dist/fi.es-Bl7Pp7AO.mjs +57 -0
  84. package/dist/fi.es-pgfJlZ8i.js +5 -0
  85. package/dist/fr.es-CNKVhFfO.mjs +57 -0
  86. package/dist/fr.es-OENguFuM.js +5 -0
  87. package/dist/he.es-bixEnAeH.js +5 -0
  88. package/dist/he.es-nF4GFhjH.mjs +57 -0
  89. package/dist/hisonvue.cjs.js +1 -0
  90. package/dist/hisonvue.css +1 -0
  91. package/dist/hisonvue.d.ts +19934 -0
  92. package/dist/hisonvue.es.js +114 -0
  93. package/dist/hr.es-CkRAP94O.js +5 -0
  94. package/dist/hr.es-QFfz660j.mjs +57 -0
  95. package/dist/hu.es-Ck2rE01V.mjs +57 -0
  96. package/dist/hu.es-DG6HeiQJ.js +5 -0
  97. package/dist/id.es-D4tPi6wP.js +5 -0
  98. package/dist/id.es-Je7FEUJ5.mjs +57 -0
  99. package/dist/index-BmKMHsSZ.js +153 -0
  100. package/dist/index-DUh7pai4.mjs +19976 -0
  101. package/dist/is.es-CDFqLYCV.js +5 -0
  102. package/dist/is.es-bzprHvXI.mjs +57 -0
  103. package/dist/it.es-BHgrw_C6.js +5 -0
  104. package/dist/it.es-CJtfqmNS.mjs +57 -0
  105. package/dist/ja.es-BaiGjqZ6.mjs +57 -0
  106. package/dist/ja.es-D-lxWwyb.js +5 -0
  107. package/dist/ka.es-CnnB6q4A.js +5 -0
  108. package/dist/ka.es-x9QJo_dl.mjs +57 -0
  109. package/dist/ko.es-6c447eTS.mjs +57 -0
  110. package/dist/ko.es-b18aaB3V.js +5 -0
  111. package/dist/lt.es-2twYdvmJ.mjs +57 -0
  112. package/dist/lt.es-BY9UQ6wZ.js +5 -0
  113. package/dist/mn.es-BLQRG1uu.mjs +57 -0
  114. package/dist/mn.es-YFS7gSdf.js +5 -0
  115. package/dist/nl.es-BEx-4hnj.js +5 -0
  116. package/dist/nl.es-bB1qWR_S.mjs +57 -0
  117. package/dist/no.es-BQnRWlWR.js +5 -0
  118. package/dist/no.es-CWDVXpTf.mjs +57 -0
  119. package/dist/pl.es-CKCsZ_02.js +5 -0
  120. package/dist/pl.es-Dzct23w9.mjs +57 -0
  121. package/dist/pt-br.es-BeBuiitI.mjs +57 -0
  122. package/dist/pt-br.es-oH7qh6Fd.js +5 -0
  123. package/dist/pt-pt.es-BeBuiitI.mjs +57 -0
  124. package/dist/pt-pt.es-DLk5I0ej.js +5 -0
  125. package/dist/ro.es-DfMVJ30M.mjs +57 -0
  126. package/dist/ro.es-DgTen1Dh.js +5 -0
  127. package/dist/ru.es-Bv9UvrBe.mjs +67 -0
  128. package/dist/ru.es-jGIQfREl.js +5 -0
  129. package/dist/scrollManager-BGnq4wyt.mjs +14 -0
  130. package/dist/scrollManager-CEEWQwoK.js +1 -0
  131. package/dist/setButtonCssEvent-B9WTs2X7.js +1 -0
  132. package/dist/setButtonCssEvent-dBs1GcAh.mjs +70 -0
  133. package/dist/sk.es-CUOTpLuL.mjs +57 -0
  134. package/dist/sk.es-D2bhVb26.js +5 -0
  135. package/dist/sl.es-DeIGgZbR.mjs +57 -0
  136. package/dist/sl.es-TV8Uraa1.js +5 -0
  137. package/dist/sq.es-CQJJrZHv.mjs +67 -0
  138. package/dist/sq.es-Cc65zxbr.js +5 -0
  139. package/dist/sr.es-CKS0AkiW.mjs +57 -0
  140. package/dist/sr.es-D5VNA_GW.js +5 -0
  141. package/dist/sv.es-ChHQRrAe.mjs +57 -0
  142. package/dist/sv.es-dBeK_DZs.js +5 -0
  143. package/dist/tr.es-B3v90gVv.mjs +57 -0
  144. package/dist/tr.es-BUz4S13G.js +5 -0
  145. package/dist/uk.es-B8uaeLcK.js +5 -0
  146. package/dist/uk.es-CiR4NnbN.mjs +67 -0
  147. package/dist/vi.es-2OFMtbQI.js +5 -0
  148. package/dist/vi.es-DFDi5l7p.mjs +67 -0
  149. package/dist/zh-cn.es-9cbEAuAi.mjs +67 -0
  150. package/dist/zh-cn.es-fDHCbCIg.js +5 -0
  151. package/dist/zh-hk.es-COzeh5F8.js +5 -0
  152. package/dist/zh-hk.es-z0tio4jE.mjs +67 -0
  153. package/nuxt/module.mjs +39 -0
  154. package/nuxt/plugin.mjs +21 -0
  155. package/package.json +53 -0
@@ -0,0 +1,578 @@
1
+ import { defineComponent as Me, ref as i, computed as N, onMounted as ze, onBeforeUnmount as Ne, watch as o, nextTick as _, resolveComponent as xe, createElementBlock as F, openBlock as T, normalizeClass as x, createElementVNode as O, normalizeStyle as $e, createCommentVNode as de, withModifiers as W, toDisplayString as X, Fragment as re, renderList as Ae, renderSlot as ee, createVNode as ke, withCtx as Be } from "vue";
2
+ import { E as Ee, y as D, g as Le, l as y, u as Oe, j as ve, t as le, h as S, e as je, a as Re, b as fe, r as He, c as Ve, d as Pe } from "./index-DUh7pai4.mjs";
3
+ import { _ as Ue } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
4
+ const Je = {
5
+ /**
6
+ * Unique identifier for the file set.
7
+ * - Access methods via `hison.component.getFileset(id)`
8
+ * - ⚠️ Duplicate `id` will throw at mount time
9
+ */
10
+ id: { type: String, required: !1 },
11
+ /**
12
+ * Custom class for the root (string / array / object supported).
13
+ * - Works with responsive classes like `hison-col-*`, `hison-size-*`, etc.
14
+ */
15
+ class: {
16
+ type: [String, Array, Object],
17
+ required: !1
18
+ },
19
+ /**
20
+ * Inline style for the root (string | object | array of objects).
21
+ */
22
+ style: {
23
+ type: [String, Object, Array],
24
+ required: !1
25
+ },
26
+ /**
27
+ * Visibility of the component.
28
+ * - Boolean only. Use `:visible="false"`
29
+ */
30
+ visible: { type: Boolean, default: !0 },
31
+ /**
32
+ * Edit mode of the component.
33
+ * - 'editable' | 'readonly' | 'disable'
34
+ */
35
+ editMode: {
36
+ type: String,
37
+ default: D.editable,
38
+ validator: (l) => Ee.includes(l)
39
+ },
40
+ /**
41
+ * v-model: list of attached files.
42
+ */
43
+ modelValue: {
44
+ type: Array,
45
+ default: () => []
46
+ },
47
+ /**
48
+ * Attachment group id for backend linkage.
49
+ */
50
+ attId: { type: String, default: "" },
51
+ /**
52
+ * Text for the "Add" button. (Use `#add-button` slot to fully customize.)
53
+ */
54
+ addButtonText: { type: String, default: "Add" },
55
+ /**
56
+ * Text for the "Remove" button. (Use `#remove-button` slot to fully customize.)
57
+ */
58
+ removeButtonText: { type: String, default: "x" },
59
+ /**
60
+ * Placeholder text when list is empty.
61
+ */
62
+ placeholder: { type: String, default: "There are no files." },
63
+ /**
64
+ * Enable drag-and-drop file upload.
65
+ */
66
+ enableDrop: { type: Boolean, default: !0 },
67
+ /**
68
+ * Custom download handler. Overrides default behavior when provided.
69
+ */
70
+ downloadHandler: {
71
+ type: Function,
72
+ default: void 0
73
+ },
74
+ /**
75
+ * Wrap files into multiple columns (UI option).
76
+ */
77
+ multiCols: { type: Boolean, default: !1 },
78
+ /**
79
+ * Allow multiple file selection.
80
+ */
81
+ multiple: { type: Boolean, default: !0 },
82
+ /**
83
+ * Allowed file types (string or string[]).
84
+ * - Accepts MIME types ('image/png') or extensions ('.jpg').
85
+ * - Comma-separated string will be split internally.
86
+ * - Takes precedence over `disallowedTypes`.
87
+ */
88
+ allowedTypes: {
89
+ type: [String, Array],
90
+ default: void 0,
91
+ validator: (l) => l === void 0 || typeof l == "string" || Array.isArray(l) && l.every((a) => typeof a == "string")
92
+ },
93
+ /**
94
+ * Disallowed file types (string or string[]).
95
+ * - MIME types or extensions. Comma-separated string supported.
96
+ * - Ignored if `allowedTypes` is set.
97
+ */
98
+ disallowedTypes: {
99
+ type: [String, Array],
100
+ default: void 0,
101
+ validator: (l) => l === void 0 || typeof l == "string" || Array.isArray(l) && l.every((a) => typeof a == "string")
102
+ },
103
+ /**
104
+ * Max file size per file (bytes). Infinity = no limit.
105
+ */
106
+ maxFileSize: {
107
+ type: Number,
108
+ default: 1 / 0,
109
+ validator: (l) => Number.isFinite(l) && l >= 0 || l === 1 / 0
110
+ },
111
+ /**
112
+ * Max total size of all files (bytes). Infinity = no limit.
113
+ */
114
+ maxTotalFileSize: {
115
+ type: Number,
116
+ default: 1 / 0,
117
+ validator: (l) => Number.isFinite(l) && l >= 0 || l === 1 / 0
118
+ },
119
+ /**
120
+ * Max number of files (0 = unlimited).
121
+ */
122
+ maxFileCount: {
123
+ type: Number,
124
+ default: 0,
125
+ validator: (l) => Number.isInteger(l) && l >= 0
126
+ },
127
+ /**
128
+ * Callback when file type is disallowed.
129
+ * (file, allowedTypes[]|null, disallowedTypes[]|null) => void
130
+ */
131
+ onDisallowedType: {
132
+ type: Function,
133
+ default: void 0
134
+ },
135
+ /**
136
+ * Callback when a file exceeds `maxFileSize`.
137
+ * (file, size, max) => void
138
+ */
139
+ onMaxFileSizeExceeded: {
140
+ type: Function,
141
+ default: void 0
142
+ },
143
+ /**
144
+ * Callback when total size exceeds `maxTotalFileSize`.
145
+ * (file, total, max) => void
146
+ */
147
+ onMaxTotalSizeExceeded: {
148
+ type: Function,
149
+ default: void 0
150
+ },
151
+ /**
152
+ * Controls keyboard focus order of the element.
153
+ * - `0` enables natural tab navigation, positive numbers set custom order.
154
+ * - `null` or `''` removes tabindex (not focusable).
155
+ */
156
+ tabIndex: {
157
+ type: [Number, String],
158
+ default: null,
159
+ validator: (l) => l === null || l === "" || !isNaN(+l) && isFinite(+l)
160
+ }
161
+ }, qe = Me({
162
+ name: "HFileset",
163
+ props: Je,
164
+ emits: [
165
+ "mounted",
166
+ "responsive-change",
167
+ "update:modelValue",
168
+ "add",
169
+ "remove",
170
+ "focus",
171
+ "blur",
172
+ "download",
173
+ "change"
174
+ ],
175
+ setup(l, { emit: a }) {
176
+ const $ = i(null), n = i([...l.modelValue]), m = i(null), v = l.id ? l.id : Le(), j = `hbutton:${v}`, s = i(l.visible), d = i(l.editMode), R = N(() => d.value === D.disable), ce = N(() => d.value === D.readonly), ye = N(() => d.value !== D.editable ? `hison-fileset-${d.value}` : ""), me = N(() => s.value ? "" : "hison-display-none"), K = i(l.attId || ""), H = i(l.addButtonText || ""), V = i(l.removeButtonText || ""), P = i(l.placeholder ?? ""), Y = i(!1), A = i(l.enableDrop), U = i(typeof l.downloadHandler == "function" ? l.downloadHandler : void 0), J = i(l.multiCols ?? !1), w = i(l.multiple ?? !1), Q = i(!1), be = N(() => {
177
+ if (b.value.length === 0) return "";
178
+ const e = new Set(C.value.map((u) => u.toLowerCase())), t = b.value.filter((u) => !e.has(u.toLowerCase()));
179
+ return t.length > 0 ? t.join(",") : void 0;
180
+ }), b = i(Array.isArray(l.allowedTypes) ? l.allowedTypes : l.allowedTypes ? l.allowedTypes.split(",") : []), C = i(Array.isArray(l.disallowedTypes) ? l.disallowedTypes : l.disallowedTypes ? l.disallowedTypes.split(",") : []), g = i(l.maxFileSize ?? y.getMaxFilesetSize()), I = i(l.maxTotalFileSize ?? y.getMaxFilesetTotalSize()), k = i(l.maxFileCount), p = i(typeof l.onDisallowedType == "function" ? l.onDisallowedType : void 0), B = i(typeof l.onMaxFileSizeExceeded == "function" ? l.onMaxFileSizeExceeded : void 0), E = i(typeof l.onMaxTotalSizeExceeded == "function" ? l.onMaxTotalSizeExceeded : void 0), q = i(
181
+ l.tabIndex !== null && l.tabIndex !== "" ? Number(l.tabIndex) : null
182
+ ), te = Oe(), L = i([]), Z = () => {
183
+ L.value = je(le(l.class) || "", te.value), Re(L.value, "col") === -1 && L.value.push("hison-col-12"), fe(L.value, "size", S.componentStyle.size), fe(L.value, "color", "primary");
184
+ }, ge = N(() => {
185
+ const e = [];
186
+ return e.push(...ve(le(l.class) || "", "size")), e.push(...ve(le(l.class) || "", "color")), e;
187
+ }), pe = () => {
188
+ var e;
189
+ (e = $.value) == null || e.click();
190
+ }, he = (e) => {
191
+ var r, M, f;
192
+ const t = e.type, u = "." + ((r = e.name.split(".").pop()) == null ? void 0 : r.toLowerCase());
193
+ return b.value.length > 0 && !b.value.some((z) => z === t || z === u) ? (console.warn(`File type not in allowedTypes: ${t} / ${u}`), (M = p.value) == null || M.call(p, e, b.value, null), !1) : C.value.length > 0 && C.value.some((z) => z === t || z === u) ? (console.warn(`File type is in disallowedTypes: ${t} / ${u}`), (f = p.value) == null || f.call(p, e, null, C.value), !1) : !0;
194
+ }, we = (e) => {
195
+ var t;
196
+ return typeof g.value == "number" && Number.isFinite(g.value) && e.size > g.value ? (console.warn(`File too large: ${e.name}
197
+ Max size: ${g.value} Byte`), (t = B.value) == null || t.call(B, e, e.size, g.value), !1) : !0;
198
+ }, ae = (e) => {
199
+ var M;
200
+ let t = e.filter(
201
+ (f) => we(f) && he(f)
202
+ );
203
+ !w.value && t.length > 1 && (t = [t[0]]);
204
+ let u = !1;
205
+ const r = [];
206
+ for (const f of t) {
207
+ let G = n.value.filter((c) => !c.isDeleted), z = G.length;
208
+ const se = G.reduce((c, h) => c + (h.fileSize ?? 0), 0) + f.size;
209
+ if (I.value > 0 && se > I.value) {
210
+ (M = E.value) == null || M.call(E, f, se, I.value), console.warn("Total file size exceeds limit.");
211
+ break;
212
+ }
213
+ if (!w.value) {
214
+ for (const c of G)
215
+ if (c.isNew) {
216
+ const h = n.value.indexOf(c);
217
+ h !== -1 && n.value.splice(h, 1);
218
+ } else
219
+ c.isDeleted = !0;
220
+ u = !0;
221
+ }
222
+ if (w.value && k.value > 0 && z >= k.value) {
223
+ const c = n.value.findIndex((h) => !h.isDeleted);
224
+ if (c !== -1) {
225
+ const h = n.value[c];
226
+ h.isNew ? n.value.splice(c, 1) : h.isDeleted = !0, u = !0;
227
+ } else {
228
+ console.warn("No replaceable file found for maxFileCount overflow.");
229
+ break;
230
+ }
231
+ }
232
+ const ue = {
233
+ fileName: f.name,
234
+ fileSize: f.size,
235
+ extension: f.name.split(".").pop(),
236
+ file: f,
237
+ isNew: !0
238
+ };
239
+ n.value.push(ue), u = !0, r.push(ue);
240
+ }
241
+ u && (Q.value = !0, a("update:modelValue", [...n.value]), r.length && a("add", y.utils.deepCopyObject(r), m.value), a("change", y.utils.deepCopyObject(n.value), m.value));
242
+ }, Ce = (e) => {
243
+ if (d.value !== D.editable) return;
244
+ const t = n.value[e];
245
+ t.fileId ? t.isDeleted = !0 : n.value.splice(e, 1), Q.value = !0, a("update:modelValue", [...n.value]), a("remove", y.utils.deepCopyObject(t), e, m.value), a("change", y.utils.deepCopyObject(n.value), m.value);
246
+ }, Fe = (e) => {
247
+ if (d.value !== D.editable) return;
248
+ const t = e.target.files;
249
+ !t || t.length === 0 || (ae(Array.from(t)), _(() => {
250
+ $.value && ($.value.value = "");
251
+ }));
252
+ }, Te = N(() => n.value.filter((e) => !e.isDeleted)), Se = (e) => {
253
+ if (a("download", y.utils.deepCopyObject(e), m.value), U.value) {
254
+ U.value(e);
255
+ return;
256
+ }
257
+ let t = "", u = e.fileName || "download";
258
+ if (e.file) {
259
+ const M = new Blob([e.file], { type: e.file.type });
260
+ t = URL.createObjectURL(M);
261
+ } else if (e.filePath)
262
+ t = e.filePath;
263
+ else {
264
+ console.warn("Download failed: no filePath or file object.");
265
+ return;
266
+ }
267
+ const r = document.createElement("a");
268
+ r.href = t, r.download = u, r.click(), e.file && URL.revokeObjectURL(t);
269
+ }, De = (e) => {
270
+ !A.value || d.value !== D.editable || (Y.value = !0);
271
+ }, Ie = (e) => {
272
+ var t;
273
+ Y.value = !1, !(!A.value || d.value !== D.editable) && (t = e.dataTransfer) != null && t.files && ae(Array.from(e.dataTransfer.files));
274
+ }, ie = (e) => {
275
+ if (!e || !e.getIsDataModel || !e.getIsDataModel() || e.getRowCount() === 0) return;
276
+ const t = e.getRows();
277
+ n.value = [...t];
278
+ }, ne = () => {
279
+ S.component.filesetList[v] && S.component.filesetList[v].isHisonvueComponent && console.warn(`[Hisonvue] The fileset ID is at risk of being duplicated. ${v}`), He(j, () => {
280
+ oe(), _(ne);
281
+ }), $.value && (Z(), m.value = {
282
+ isHisonvueComponent: !0,
283
+ getId: () => v,
284
+ getType: () => "fileset",
285
+ isVisible: () => s.value,
286
+ setVisible: (e) => {
287
+ s.value = e;
288
+ },
289
+ getEditMode: () => d.value,
290
+ setEditMode: (e) => {
291
+ var t;
292
+ d.value = e, (t = S.component.buttonList[`hison_fileset_add_button_${v}`]) == null || t.setDisable(R.value);
293
+ },
294
+ getValue: () => y.utils.deepCopyObject(n.value),
295
+ setValue: (e) => {
296
+ n.value = y.utils.deepCopyObject([...e]);
297
+ },
298
+ getDataModel: () => n.value.length > 0 ? new y.data.DataModel(n.value) : null,
299
+ setDataModel: (e) => {
300
+ ie(e);
301
+ },
302
+ load: (e) => {
303
+ e && e.getIsDataModel && e.getIsDataModel() ? ie(e) : n.value = y.utils.deepCopyObject([...e]);
304
+ },
305
+ getAttId: () => K.value,
306
+ setAttId: (e) => {
307
+ K.value = e;
308
+ },
309
+ getAddButtonText: () => H.value,
310
+ setAddButtonText: (e) => {
311
+ H.value = e;
312
+ },
313
+ getRemoveButtonText: () => V.value,
314
+ setRemoveButtonText: (e) => {
315
+ V.value = e;
316
+ },
317
+ isEnableDrop: () => A.value,
318
+ setEnableDrop: (e) => {
319
+ A.value = e;
320
+ },
321
+ setDownloadHandler: (e) => {
322
+ U.value = e;
323
+ },
324
+ isMultiCols: () => J.value,
325
+ setMultiCols: (e) => {
326
+ J.value = e;
327
+ },
328
+ isMultiple: () => w.value,
329
+ setMultiple: (e) => {
330
+ w.value = e;
331
+ },
332
+ getPlaceholder: () => P.value,
333
+ setPlaceholder: (e) => {
334
+ P.value = e;
335
+ },
336
+ getAllowedTypes: () => b.value,
337
+ setAllowedTypes: (e) => {
338
+ b.value = e;
339
+ },
340
+ getDisallowedTypes: () => C.value,
341
+ setDisallowedTypes: (e) => {
342
+ C.value = e;
343
+ },
344
+ getMaxFileSize: () => g.value,
345
+ setMaxFileSize: (e) => {
346
+ g.value = e;
347
+ },
348
+ getMaxTotalFileSize: () => I.value,
349
+ setMaxTotalFileSize: (e) => {
350
+ I.value = e;
351
+ },
352
+ getMaxFileCount: () => k.value,
353
+ setMaxFileCount: (e) => {
354
+ k.value = e;
355
+ },
356
+ setOnDisallowedType: (e) => {
357
+ p.value = e;
358
+ },
359
+ setOnMaxFileSizeExceeded: (e) => {
360
+ B.value = e;
361
+ },
362
+ setOnMaxTotalSizeExceeded: (e) => {
363
+ E.value = e;
364
+ },
365
+ isModified: () => Q.value,
366
+ setModified: (e) => {
367
+ Q.value = e;
368
+ },
369
+ getTabIndex: () => q.value,
370
+ setTabIndex: (e) => {
371
+ q.value = e != null ? Number(e) : null;
372
+ },
373
+ focus: () => {
374
+ var e;
375
+ (e = S.component.buttonList[`hison_fileset_add_button_${v}`]) == null || e.focus();
376
+ },
377
+ reload: () => Ve(j)
378
+ }, S.component.filesetList[v] = m.value, a("mounted", m.value));
379
+ }, oe = () => {
380
+ Pe(j), delete S.component.filesetList[v];
381
+ };
382
+ return ze(ne), Ne(oe), o(
383
+ () => l.modelValue,
384
+ (e) => {
385
+ JSON.stringify(e) !== JSON.stringify(n.value) && (n.value = [...e]);
386
+ },
387
+ { deep: !0 }
388
+ ), o(te, (e) => {
389
+ Z(), a("responsive-change", e);
390
+ }), o(() => l.visible, (e) => {
391
+ const t = !!e;
392
+ t !== s.value && (s.value = t);
393
+ }), o(() => l.editMode, (e) => {
394
+ e && e !== d.value && (d.value = e, _(() => {
395
+ var t;
396
+ return (t = S.component.buttonList[`hison_fileset_add_button_${v}`]) == null ? void 0 : t.setDisable(R.value);
397
+ }));
398
+ }), o(() => l.attId, (e) => {
399
+ const t = e ?? "";
400
+ t !== K.value && (K.value = t);
401
+ }), o(() => l.addButtonText, (e) => {
402
+ const t = e ?? "";
403
+ t !== H.value && (H.value = t);
404
+ }), o(() => l.removeButtonText, (e) => {
405
+ const t = e ?? "";
406
+ t !== V.value && (V.value = t);
407
+ }), o(() => l.placeholder, (e) => {
408
+ const t = e ?? "";
409
+ t !== P.value && (P.value = t);
410
+ }), o(() => l.enableDrop, (e) => {
411
+ const t = !!e;
412
+ t !== A.value && (A.value = t);
413
+ }), o(() => l.downloadHandler, (e) => {
414
+ const t = typeof e == "function" ? e : void 0;
415
+ t !== U.value && (U.value = t);
416
+ }), o(() => l.multiCols, (e) => {
417
+ const t = !!e;
418
+ t !== J.value && (J.value = t);
419
+ }), o(() => l.multiple, (e) => {
420
+ const t = !!e;
421
+ t !== w.value && (w.value = t);
422
+ }), o(() => l.allowedTypes, (e) => {
423
+ const u = (Array.isArray(e) ? e : typeof e == "string" ? e.split(",") : []).map((r) => String(r).trim()).filter(Boolean);
424
+ JSON.stringify(u) !== JSON.stringify(b.value) && (b.value = u);
425
+ }), o(() => l.disallowedTypes, (e) => {
426
+ const u = (Array.isArray(e) ? e : typeof e == "string" ? e.split(",") : []).map((r) => String(r).trim()).filter(Boolean);
427
+ JSON.stringify(u) !== JSON.stringify(C.value) && (C.value = u);
428
+ }), o(() => l.maxFileSize, (e) => {
429
+ const t = e === 1 / 0 ? 1 / 0 : Number(e);
430
+ (Number.isFinite(t) || t === 1 / 0) && t !== g.value && (g.value = t);
431
+ }), o(() => l.maxTotalFileSize, (e) => {
432
+ const t = e === 1 / 0 ? 1 / 0 : Number(e);
433
+ (Number.isFinite(t) || t === 1 / 0) && t !== I.value && (I.value = t);
434
+ }), o(() => l.maxFileCount, (e) => {
435
+ const t = Number(e);
436
+ Number.isInteger(t) && t >= 0 && t !== k.value && (k.value = t);
437
+ }), o(() => l.onDisallowedType, (e) => {
438
+ const t = typeof e == "function" ? e : void 0;
439
+ t !== p.value && (p.value = t);
440
+ }), o(() => l.onMaxFileSizeExceeded, (e) => {
441
+ const t = typeof e == "function" ? e : void 0;
442
+ t !== B.value && (B.value = t);
443
+ }), o(() => l.onMaxTotalSizeExceeded, (e) => {
444
+ const t = typeof e == "function" ? e : void 0;
445
+ t !== E.value && (E.value = t);
446
+ }), o(() => l.tabIndex, (e) => {
447
+ const t = e === null || e === "" ? null : Number(e);
448
+ t !== q.value && (q.value = t);
449
+ }), o(() => l.class, () => {
450
+ Z();
451
+ }), {
452
+ fileInputRef: $,
453
+ id: v,
454
+ props: l,
455
+ visibleFiles: Te,
456
+ filesetMethods: m,
457
+ responsiveClassList: L,
458
+ buttonClassList: ge,
459
+ visibleClass: me,
460
+ editModeClass: ye,
461
+ disable: R,
462
+ readonly: ce,
463
+ addButtonText: H,
464
+ removeButtonText: V,
465
+ placeholder: P,
466
+ isDragging: Y,
467
+ multiCols: J,
468
+ multiple: w,
469
+ accept: be,
470
+ tabIndex: q,
471
+ openFileDialog: pe,
472
+ removeFile: Ce,
473
+ onFileChange: Fe,
474
+ downloadFile: Se,
475
+ handleDragEnter: De,
476
+ handleDrop: Ie
477
+ };
478
+ }
479
+ }), Ge = {
480
+ key: 0,
481
+ class: "file-placeholder"
482
+ }, Ke = ["onClick"], Qe = ["disabled", "onClick"], We = { class: "hison-fileset-remove-text" }, Xe = {
483
+ key: 0,
484
+ class: "add-btn-container"
485
+ }, Ye = {
486
+ key: 1,
487
+ class: "hison-fileset-add-text"
488
+ }, Ze = ["id", "accept", "multiple"];
489
+ function _e(l, a, $, n, m, v) {
490
+ const j = xe("HButton");
491
+ return T(), F("div", {
492
+ class: x([
493
+ "hison-wrapper",
494
+ ...l.responsiveClassList,
495
+ l.visibleClass
496
+ ])
497
+ }, [
498
+ O("div", {
499
+ class: x([
500
+ "hison-fileset",
501
+ l.editModeClass
502
+ ]),
503
+ style: $e(l.props.style)
504
+ }, [
505
+ O("div", {
506
+ class: x(["file-list-wrapper", { "drag-over": l.isDragging }]),
507
+ onDragover: a[0] || (a[0] = W(() => {
508
+ }, ["prevent"])),
509
+ onDragenter: a[1] || (a[1] = W((...s) => l.handleDragEnter && l.handleDragEnter(...s), ["prevent"])),
510
+ onDragleave: a[2] || (a[2] = W((s) => l.isDragging = !1, ["prevent"])),
511
+ onDrop: a[3] || (a[3] = W((...s) => l.handleDrop && l.handleDrop(...s), ["prevent"]))
512
+ }, [
513
+ O("div", {
514
+ class: x(["file-list", { "multi-cols": l.multiCols }])
515
+ }, [
516
+ l.visibleFiles.length === 0 && l.placeholder ? (T(), F("div", Ge, X(l.placeholder), 1)) : (T(!0), F(re, { key: 1 }, Ae(l.visibleFiles, (s, d) => (T(), F("div", {
517
+ key: d,
518
+ class: "file-item"
519
+ }, [
520
+ ee(l.$slots, "file-icon", { file: s }),
521
+ O("span", {
522
+ class: x(["file-name", { clickable: s.file || s.filePath }]),
523
+ onClick: (R) => l.downloadFile(s)
524
+ }, X(s.fileName), 11, Ke),
525
+ l.readonly ? de("", !0) : (T(), F(re, { key: 0 }, [
526
+ l.$slots["remove-button"] ? ee(l.$slots, "remove-button", {
527
+ key: 0,
528
+ file: s,
529
+ index: d,
530
+ remove: () => l.removeFile(d),
531
+ disable: l.disable
532
+ }) : (T(), F("button", {
533
+ key: 1,
534
+ class: x(["delete-btn", { "hison-disable": l.disable }]),
535
+ disabled: l.disable,
536
+ onClick: (R) => l.removeFile(d)
537
+ }, [
538
+ O("span", We, X(l.removeButtonText), 1)
539
+ ], 10, Qe))
540
+ ], 64))
541
+ ]))), 128))
542
+ ], 2)
543
+ ], 34),
544
+ l.readonly ? de("", !0) : (T(), F("div", Xe, [
545
+ ke(j, {
546
+ onClick: l.openFileDialog,
547
+ onFocus: a[4] || (a[4] = (s) => l.$emit("focus", l.filesetMethods)),
548
+ onBlur: a[5] || (a[5] = (s) => l.$emit("blur", l.filesetMethods)),
549
+ id: `hison_fileset_add_button_${l.id}`,
550
+ disable: l.disable,
551
+ class: x([...l.buttonClassList]),
552
+ tabindex: l.tabIndex ?? void 0
553
+ }, {
554
+ default: Be(() => [
555
+ l.$slots["add-button"] ? ee(l.$slots, "add-button", {
556
+ key: 0,
557
+ add: l.openFileDialog
558
+ }) : (T(), F("span", Ye, X(l.addButtonText), 1))
559
+ ]),
560
+ _: 3
561
+ }, 8, ["onClick", "id", "disable", "class", "tabindex"])
562
+ ])),
563
+ O("input", {
564
+ id: `hison_fileset_${l.id}`,
565
+ ref: "fileInputRef",
566
+ type: "file",
567
+ accept: l.accept || void 0,
568
+ multiple: l.multiple,
569
+ hidden: "",
570
+ onChange: a[6] || (a[6] = (...s) => l.onFileChange && l.onFileChange(...s))
571
+ }, null, 40, Ze)
572
+ ], 6)
573
+ ], 2);
574
+ }
575
+ const il = /* @__PURE__ */ Ue(qe, [["render", _e]]);
576
+ export {
577
+ il as default
578
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),i=require("./index-BmKMHsSZ.js"),re=require("./_plugin-vue_export-helper-BHFhmbuH.js"),ce={id:{type:String,required:!1},class:{type:[String,Array,Object],required:!1},style:{type:[String,Object,Array],required:!1},visible:{type:Boolean,default:!0},editMode:{type:String,default:i.EditMode.editable,validator:t=>i.EDIT_MODE_VALUES.includes(t)},modelValue:{type:Array,default:()=>[]},attId:{type:String,default:""},addButtonText:{type:String,default:"Add"},removeButtonText:{type:String,default:"x"},placeholder:{type:String,default:"There are no files."},enableDrop:{type:Boolean,default:!0},downloadHandler:{type:Function,default:void 0},multiCols:{type:Boolean,default:!1},multiple:{type:Boolean,default:!0},allowedTypes:{type:[String,Array],default:void 0,validator:t=>t===void 0||typeof t=="string"||Array.isArray(t)&&t.every(o=>typeof o=="string")},disallowedTypes:{type:[String,Array],default:void 0,validator:t=>t===void 0||typeof t=="string"||Array.isArray(t)&&t.every(o=>typeof o=="string")},maxFileSize:{type:Number,default:1/0,validator:t=>Number.isFinite(t)&&t>=0||t===1/0},maxTotalFileSize:{type:Number,default:1/0,validator:t=>Number.isFinite(t)&&t>=0||t===1/0},maxFileCount:{type:Number,default:0,validator:t=>Number.isInteger(t)&&t>=0},onDisallowedType:{type:Function,default:void 0},onMaxFileSizeExceeded:{type:Function,default:void 0},onMaxTotalSizeExceeded:{type:Function,default:void 0},tabIndex:{type:[Number,String],default:null,validator:t=>t===null||t===""||!isNaN(+t)&&isFinite(+t)}},fe=l.defineComponent({name:"HFileset",props:ce,emits:["mounted","responsive-change","update:modelValue","add","remove","focus","blur","download","change"],setup(t,{emit:o}){const F=l.ref(null),n=l.ref([...t.modelValue]),m=l.ref(null),c=t.id?t.id:i.getUUID(),N=`hbutton:${c}`,s=l.ref(t.visible),d=l.ref(t.editMode),B=l.computed(()=>d.value===i.EditMode.disable),X=l.computed(()=>d.value===i.EditMode.readonly),Y=l.computed(()=>d.value!==i.EditMode.editable?`hison-fileset-${d.value}`:""),Z=l.computed(()=>s.value?"":"hison-display-none"),j=l.ref(t.attId||""),E=l.ref(t.addButtonText||""),x=l.ref(t.removeButtonText||""),A=l.ref(t.placeholder??""),R=l.ref(!1),M=l.ref(t.enableDrop),$=l.ref(typeof t.downloadHandler=="function"?t.downloadHandler:void 0),O=l.ref(t.multiCols??!1),h=l.ref(t.multiple??!1),H=l.ref(!1),_=l.computed(()=>{if(y.value.length===0)return"";const e=new Set(w.value.map(u=>u.toLowerCase())),a=y.value.filter(u=>!e.has(u.toLowerCase()));return a.length>0?a.join(","):void 0}),y=l.ref(Array.isArray(t.allowedTypes)?t.allowedTypes:t.allowedTypes?t.allowedTypes.split(","):[]),w=l.ref(Array.isArray(t.disallowedTypes)?t.disallowedTypes:t.disallowedTypes?t.disallowedTypes.split(","):[]),b=l.ref(t.maxFileSize??i.hison.getMaxFilesetSize()),C=l.ref(t.maxTotalFileSize??i.hison.getMaxFilesetTotalSize()),D=l.ref(t.maxFileCount),g=l.ref(typeof t.onDisallowedType=="function"?t.onDisallowedType:void 0),z=l.ref(typeof t.onMaxFileSizeExceeded=="function"?t.onMaxFileSizeExceeded:void 0),k=l.ref(typeof t.onMaxTotalSizeExceeded=="function"?t.onMaxTotalSizeExceeded:void 0),L=l.ref(t.tabIndex!==null&&t.tabIndex!==""?Number(t.tabIndex):null),U=i.useDevice(),I=l.ref([]),P=()=>{I.value=i.extractResponsiveClasses(i.toClassString(t.class)||"",U.value),i.getIndexSpecificClassNameFromClassList(I.value,"col")===-1&&I.value.push("hison-col-12"),i.addComponentNameToClass(I.value,"size",i.hisonCloser.componentStyle.size),i.addComponentNameToClass(I.value,"color","primary")},ee=l.computed(()=>{const e=[];return e.push(...i.extractPrefixedClasses(i.toClassString(t.class)||"","size")),e.push(...i.extractPrefixedClasses(i.toClassString(t.class)||"","color")),e}),te=()=>{var e;(e=F.value)==null||e.click()},le=e=>{var r,S,f;const a=e.type,u="."+((r=e.name.split(".").pop())==null?void 0:r.toLowerCase());return y.value.length>0&&!y.value.some(T=>T===a||T===u)?(console.warn(`File type not in allowedTypes: ${a} / ${u}`),(S=g.value)==null||S.call(g,e,y.value,null),!1):w.value.length>0&&w.value.some(T=>T===a||T===u)?(console.warn(`File type is in disallowedTypes: ${a} / ${u}`),(f=g.value)==null||f.call(g,e,null,w.value),!1):!0},ae=e=>{var a;return typeof b.value=="number"&&Number.isFinite(b.value)&&e.size>b.value?(console.warn(`File too large: ${e.name}
2
+ Max size: ${b.value} Byte`),(a=z.value)==null||a.call(z,e,e.size,b.value),!1):!0},q=e=>{var S;let a=e.filter(f=>ae(f)&&le(f));!h.value&&a.length>1&&(a=[a[0]]);let u=!1;const r=[];for(const f of a){let V=n.value.filter(v=>!v.isDeleted),T=V.length;const Q=V.reduce((v,p)=>v+(p.fileSize??0),0)+f.size;if(C.value>0&&Q>C.value){(S=k.value)==null||S.call(k,f,Q,C.value),console.warn("Total file size exceeds limit.");break}if(!h.value){for(const v of V)if(v.isNew){const p=n.value.indexOf(v);p!==-1&&n.value.splice(p,1)}else v.isDeleted=!0;u=!0}if(h.value&&D.value>0&&T>=D.value){const v=n.value.findIndex(p=>!p.isDeleted);if(v!==-1){const p=n.value[v];p.isNew?n.value.splice(v,1):p.isDeleted=!0,u=!0}else{console.warn("No replaceable file found for maxFileCount overflow.");break}}const W={fileName:f.name,fileSize:f.size,extension:f.name.split(".").pop(),file:f,isNew:!0};n.value.push(W),u=!0,r.push(W)}u&&(H.value=!0,o("update:modelValue",[...n.value]),r.length&&o("add",i.hison.utils.deepCopyObject(r),m.value),o("change",i.hison.utils.deepCopyObject(n.value),m.value))},ie=e=>{if(d.value!==i.EditMode.editable)return;const a=n.value[e];a.fileId?a.isDeleted=!0:n.value.splice(e,1),H.value=!0,o("update:modelValue",[...n.value]),o("remove",i.hison.utils.deepCopyObject(a),e,m.value),o("change",i.hison.utils.deepCopyObject(n.value),m.value)},oe=e=>{if(d.value!==i.EditMode.editable)return;const a=e.target.files;!a||a.length===0||(q(Array.from(a)),l.nextTick(()=>{F.value&&(F.value.value="")}))},ne=l.computed(()=>n.value.filter(e=>!e.isDeleted)),se=e=>{if(o("download",i.hison.utils.deepCopyObject(e),m.value),$.value){$.value(e);return}let a="",u=e.fileName||"download";if(e.file){const S=new Blob([e.file],{type:e.file.type});a=URL.createObjectURL(S)}else if(e.filePath)a=e.filePath;else{console.warn("Download failed: no filePath or file object.");return}const r=document.createElement("a");r.href=a,r.download=u,r.click(),e.file&&URL.revokeObjectURL(a)},ue=e=>{!M.value||d.value!==i.EditMode.editable||(R.value=!0)},de=e=>{var a;R.value=!1,!(!M.value||d.value!==i.EditMode.editable)&&(a=e.dataTransfer)!=null&&a.files&&q(Array.from(e.dataTransfer.files))},J=e=>{if(!e||!e.getIsDataModel||!e.getIsDataModel()||e.getRowCount()===0)return;const a=e.getRows();n.value=[...a]},G=()=>{i.hisonCloser.component.filesetList[c]&&i.hisonCloser.component.filesetList[c].isHisonvueComponent&&console.warn(`[Hisonvue] The fileset ID is at risk of being duplicated. ${c}`),i.registerReloadable(N,()=>{K(),l.nextTick(G)}),F.value&&(P(),m.value={isHisonvueComponent:!0,getId:()=>c,getType:()=>"fileset",isVisible:()=>s.value,setVisible:e=>{s.value=e},getEditMode:()=>d.value,setEditMode:e=>{var a;d.value=e,(a=i.hisonCloser.component.buttonList[`hison_fileset_add_button_${c}`])==null||a.setDisable(B.value)},getValue:()=>i.hison.utils.deepCopyObject(n.value),setValue:e=>{n.value=i.hison.utils.deepCopyObject([...e])},getDataModel:()=>n.value.length>0?new i.hison.data.DataModel(n.value):null,setDataModel:e=>{J(e)},load:e=>{e&&e.getIsDataModel&&e.getIsDataModel()?J(e):n.value=i.hison.utils.deepCopyObject([...e])},getAttId:()=>j.value,setAttId:e=>{j.value=e},getAddButtonText:()=>E.value,setAddButtonText:e=>{E.value=e},getRemoveButtonText:()=>x.value,setRemoveButtonText:e=>{x.value=e},isEnableDrop:()=>M.value,setEnableDrop:e=>{M.value=e},setDownloadHandler:e=>{$.value=e},isMultiCols:()=>O.value,setMultiCols:e=>{O.value=e},isMultiple:()=>h.value,setMultiple:e=>{h.value=e},getPlaceholder:()=>A.value,setPlaceholder:e=>{A.value=e},getAllowedTypes:()=>y.value,setAllowedTypes:e=>{y.value=e},getDisallowedTypes:()=>w.value,setDisallowedTypes:e=>{w.value=e},getMaxFileSize:()=>b.value,setMaxFileSize:e=>{b.value=e},getMaxTotalFileSize:()=>C.value,setMaxTotalFileSize:e=>{C.value=e},getMaxFileCount:()=>D.value,setMaxFileCount:e=>{D.value=e},setOnDisallowedType:e=>{g.value=e},setOnMaxFileSizeExceeded:e=>{z.value=e},setOnMaxTotalSizeExceeded:e=>{k.value=e},isModified:()=>H.value,setModified:e=>{H.value=e},getTabIndex:()=>L.value,setTabIndex:e=>{L.value=e!=null?Number(e):null},focus:()=>{var e;(e=i.hisonCloser.component.buttonList[`hison_fileset_add_button_${c}`])==null||e.focus()},reload:()=>i.reloadHisonComponent(N)},i.hisonCloser.component.filesetList[c]=m.value,o("mounted",m.value))},K=()=>{i.unregisterReloadable(N),delete i.hisonCloser.component.filesetList[c]};return l.onMounted(G),l.onBeforeUnmount(K),l.watch(()=>t.modelValue,e=>{JSON.stringify(e)!==JSON.stringify(n.value)&&(n.value=[...e])},{deep:!0}),l.watch(U,e=>{P(),o("responsive-change",e)}),l.watch(()=>t.visible,e=>{const a=!!e;a!==s.value&&(s.value=a)}),l.watch(()=>t.editMode,e=>{e&&e!==d.value&&(d.value=e,l.nextTick(()=>{var a;return(a=i.hisonCloser.component.buttonList[`hison_fileset_add_button_${c}`])==null?void 0:a.setDisable(B.value)}))}),l.watch(()=>t.attId,e=>{const a=e??"";a!==j.value&&(j.value=a)}),l.watch(()=>t.addButtonText,e=>{const a=e??"";a!==E.value&&(E.value=a)}),l.watch(()=>t.removeButtonText,e=>{const a=e??"";a!==x.value&&(x.value=a)}),l.watch(()=>t.placeholder,e=>{const a=e??"";a!==A.value&&(A.value=a)}),l.watch(()=>t.enableDrop,e=>{const a=!!e;a!==M.value&&(M.value=a)}),l.watch(()=>t.downloadHandler,e=>{const a=typeof e=="function"?e:void 0;a!==$.value&&($.value=a)}),l.watch(()=>t.multiCols,e=>{const a=!!e;a!==O.value&&(O.value=a)}),l.watch(()=>t.multiple,e=>{const a=!!e;a!==h.value&&(h.value=a)}),l.watch(()=>t.allowedTypes,e=>{const u=(Array.isArray(e)?e:typeof e=="string"?e.split(","):[]).map(r=>String(r).trim()).filter(Boolean);JSON.stringify(u)!==JSON.stringify(y.value)&&(y.value=u)}),l.watch(()=>t.disallowedTypes,e=>{const u=(Array.isArray(e)?e:typeof e=="string"?e.split(","):[]).map(r=>String(r).trim()).filter(Boolean);JSON.stringify(u)!==JSON.stringify(w.value)&&(w.value=u)}),l.watch(()=>t.maxFileSize,e=>{const a=e===1/0?1/0:Number(e);(Number.isFinite(a)||a===1/0)&&a!==b.value&&(b.value=a)}),l.watch(()=>t.maxTotalFileSize,e=>{const a=e===1/0?1/0:Number(e);(Number.isFinite(a)||a===1/0)&&a!==C.value&&(C.value=a)}),l.watch(()=>t.maxFileCount,e=>{const a=Number(e);Number.isInteger(a)&&a>=0&&a!==D.value&&(D.value=a)}),l.watch(()=>t.onDisallowedType,e=>{const a=typeof e=="function"?e:void 0;a!==g.value&&(g.value=a)}),l.watch(()=>t.onMaxFileSizeExceeded,e=>{const a=typeof e=="function"?e:void 0;a!==z.value&&(z.value=a)}),l.watch(()=>t.onMaxTotalSizeExceeded,e=>{const a=typeof e=="function"?e:void 0;a!==k.value&&(k.value=a)}),l.watch(()=>t.tabIndex,e=>{const a=e===null||e===""?null:Number(e);a!==L.value&&(L.value=a)}),l.watch(()=>t.class,()=>{P()}),{fileInputRef:F,id:c,props:t,visibleFiles:ne,filesetMethods:m,responsiveClassList:I,buttonClassList:ee,visibleClass:Z,editModeClass:Y,disable:B,readonly:X,addButtonText:E,removeButtonText:x,placeholder:A,isDragging:R,multiCols:O,multiple:h,accept:_,tabIndex:L,openFileDialog:te,removeFile:ie,onFileChange:oe,downloadFile:se,handleDragEnter:ue,handleDrop:de}}}),ve={key:0,class:"file-placeholder"},me=["onClick"],ye=["disabled","onClick"],be={class:"hison-fileset-remove-text"},ge={key:0,class:"add-btn-container"},pe={key:1,class:"hison-fileset-add-text"},he=["id","accept","multiple"];function we(t,o,F,n,m,c){const N=l.resolveComponent("HButton");return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["hison-wrapper",...t.responsiveClassList,t.visibleClass])},[l.createElementVNode("div",{class:l.normalizeClass(["hison-fileset",t.editModeClass]),style:l.normalizeStyle(t.props.style)},[l.createElementVNode("div",{class:l.normalizeClass(["file-list-wrapper",{"drag-over":t.isDragging}]),onDragover:o[0]||(o[0]=l.withModifiers(()=>{},["prevent"])),onDragenter:o[1]||(o[1]=l.withModifiers((...s)=>t.handleDragEnter&&t.handleDragEnter(...s),["prevent"])),onDragleave:o[2]||(o[2]=l.withModifiers(s=>t.isDragging=!1,["prevent"])),onDrop:o[3]||(o[3]=l.withModifiers((...s)=>t.handleDrop&&t.handleDrop(...s),["prevent"]))},[l.createElementVNode("div",{class:l.normalizeClass(["file-list",{"multi-cols":t.multiCols}])},[t.visibleFiles.length===0&&t.placeholder?(l.openBlock(),l.createElementBlock("div",ve,l.toDisplayString(t.placeholder),1)):(l.openBlock(!0),l.createElementBlock(l.Fragment,{key:1},l.renderList(t.visibleFiles,(s,d)=>(l.openBlock(),l.createElementBlock("div",{key:d,class:"file-item"},[l.renderSlot(t.$slots,"file-icon",{file:s}),l.createElementVNode("span",{class:l.normalizeClass(["file-name",{clickable:s.file||s.filePath}]),onClick:B=>t.downloadFile(s)},l.toDisplayString(s.fileName),11,me),t.readonly?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[t.$slots["remove-button"]?l.renderSlot(t.$slots,"remove-button",{key:0,file:s,index:d,remove:()=>t.removeFile(d),disable:t.disable}):(l.openBlock(),l.createElementBlock("button",{key:1,class:l.normalizeClass(["delete-btn",{"hison-disable":t.disable}]),disabled:t.disable,onClick:B=>t.removeFile(d)},[l.createElementVNode("span",be,l.toDisplayString(t.removeButtonText),1)],10,ye))],64))]))),128))],2)],34),t.readonly?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",ge,[l.createVNode(N,{onClick:t.openFileDialog,onFocus:o[4]||(o[4]=s=>t.$emit("focus",t.filesetMethods)),onBlur:o[5]||(o[5]=s=>t.$emit("blur",t.filesetMethods)),id:`hison_fileset_add_button_${t.id}`,disable:t.disable,class:l.normalizeClass([...t.buttonClassList]),tabindex:t.tabIndex??void 0},{default:l.withCtx(()=>[t.$slots["add-button"]?l.renderSlot(t.$slots,"add-button",{key:0,add:t.openFileDialog}):(l.openBlock(),l.createElementBlock("span",pe,l.toDisplayString(t.addButtonText),1))]),_:3},8,["onClick","id","disable","class","tabindex"])])),l.createElementVNode("input",{id:`hison_fileset_${t.id}`,ref:"fileInputRef",type:"file",accept:t.accept||void 0,multiple:t.multiple,hidden:"",onChange:o[6]||(o[6]=(...s)=>t.onFileChange&&t.onFileChange(...s))},null,40,he)],6)],2)}const Ce=re._export_sfc(fe,[["render",we]]);exports.default=Ce;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),n=require("./index-BmKMHsSZ.js"),A=require("./_plugin-vue_export-helper-BHFhmbuH.js"),R={id:{type:String,required:!1},class:{type:[String,Array,Object],required:!1},style:{type:[String,Object,Array],required:!1},visible:{type:Boolean,default:!0},border:{type:Boolean,default:!1},backgroundType:{type:String,default:n.BackgroundType.empty,validator:l=>n.BACKGROUND_TYPE_VALUES.includes(l)},line:{type:String,default:"none",validator:l=>n.H_GAP_RULE_VALUES.includes(l)},lineStyle:{type:String,default:"solid",validator:l=>n.H_GAP_LINE_STYLE_VALUES.includes(l)},lineWidth:{type:[Number,String],default:1},lineColor:{type:String,default:""}},V=t.defineComponent({name:"HGap",props:R,inheritAttrs:!1,emits:["mounted","responsive-change"],setup(l,{emit:y}){const h=t.ref(null),g=t.ref(null),a=l.id?l.id:n.getUUID(),f=`hgap:${a}`,C=n.useDevice(),u=t.ref(l.visible),c=t.ref(l.border??!1),d=t.ref(l.backgroundType??n.BackgroundType.empty),v=t.ref(l.line),i=t.ref(l.lineStyle||"solid"),r=t.ref(l.lineWidth??1),p=t.ref(l.lineColor||""),b=t.computed(()=>{var w,$;const e=String(p.value||"").trim(),o=n.getHexCodeFromColorText(e);if(o)return o;if(e)return e;const k=n.getSpecificClassValueFromClassList(s.value,"color"),B=k?n.getHexCodeFromColorText(k):null;return B||(($=(w=n.hisonCloser)==null?void 0:w.componentStyle)==null?void 0:$.mutedColor)||"#999999"}),S=t.computed(()=>{const e=r.value;return typeof e=="number"?`${e}px`:String(e||"1px")}),z=t.computed(()=>({borderTop:`${S.value} ${i.value} ${b.value}`})),E=t.computed(()=>({borderLeft:`${S.value} ${i.value} ${b.value}`})),H=t.computed(()=>u.value?"":"hison-display-none"),N=t.computed(()=>c.value?"hison-border":""),_=t.computed(()=>{switch(d.value){case n.BackgroundType.empty:return"hison-bg-empty";case n.BackgroundType.transparent:return"hison-bg-transparent";default:return"hison-bg-filled"}}),s=t.ref([]),m=()=>{s.value=n.extractResponsiveClasses(n.toClassString(l.class)||"",C.value),n.addComponentNameToClass(s.value,"size",n.hisonCloser.componentStyle.size),n.addComponentNameToClass(s.value,"color","primary"),n.getIndexSpecificClassNameFromClassList(s.value,"col")===-1&&s.value.push("hison-col-12")},L=()=>{n.hisonCloser.component.gapList[a]&&n.hisonCloser.component.gapList[a].isHisonvueComponent&&console.warn(`[Hisonvue] The gap ID is at risk of being duplicated. ${a}`),n.registerReloadable(f,()=>{T(),t.nextTick(L)}),m(),g.value={isHisonvueComponent:!0,getId:()=>a,getType:()=>"gap",isVisible:()=>u.value,setVisible:e=>{u.value=e},isBorder:()=>c.value,setBorder:e=>{c.value=e},getBackgroundType:()=>d.value,setBackgroundType:e=>{d.value=e},getLine:()=>v.value,setLine:e=>{v.value=e},getLineStyle:()=>i.value,setLineStyle:e=>{i.value=e},getLineWidth:()=>r.value,setLineWidth:e=>{r.value=e},getLineColor:()=>p.value,setLineColor:e=>{p.value=e??""},reload:()=>n.reloadHisonComponent(f)},n.hisonCloser.component.gapList[a]=g.value,y("mounted",g.value)},T=()=>{n.unregisterReloadable(f),delete n.hisonCloser.component.gapList[a]};return t.onMounted(L),t.onBeforeUnmount(T),t.watch(C,e=>{m(),y("responsive-change",e)}),t.watch(()=>l.visible,e=>{const o=!!e;o!==u.value&&(u.value=o)}),t.watch(()=>l.border,e=>{const o=!!e;o!==c.value&&(c.value=o)}),t.watch(()=>l.backgroundType,e=>{e&&e!==d.value&&(d.value=e)}),t.watch(()=>l.line,e=>{(e==="none"||e==="horizontal"||e==="vertical")&&e!==v.value&&(v.value=e)}),t.watch(()=>l.lineStyle,e=>{["solid","dashed","dotted","double","groove","ridge","inset","outset"].includes(e)&&e!==i.value&&(i.value=e)}),t.watch(()=>l.lineWidth,e=>{const o=typeof e=="number"&&Number.isFinite(e)&&e>=0||typeof e=="string"?e:r.value;o!==r.value&&(r.value=o)}),t.watch(()=>l.lineColor,e=>{const o=(e??"").toString();o!==p.value&&(p.value=o)}),t.watch(()=>l.class,()=>{m()}),{gapRef:h,props:l,line:v,visibleClass:H,borderClass:N,backgroundTypeClass:_,responsiveClassList:s,horizontalStyle:z,verticalStyle:E}}});function U(l,y,h,g,a,f){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["hison-wrapper",...l.responsiveClassList,l.visibleClass])},[t.createElementVNode("div",{ref:"gapRef",class:t.normalizeClass(["hison-gap",l.borderClass,l.backgroundTypeClass]),style:t.normalizeStyle(l.props.style)},[l.line==="horizontal"?(t.openBlock(),t.createElementBlock("div",{key:0,class:"hison-gap-line-horizontal",style:t.normalizeStyle(l.horizontalStyle)},null,4)):l.line==="vertical"?(t.openBlock(),t.createElementBlock("div",{key:1,class:"hison-gap-line-vertical",style:t.normalizeStyle(l.verticalStyle)},null,4)):t.createCommentVNode("",!0)],6)],2)}const x=A._export_sfc(V,[["render",U]]);exports.default=x;