@duxweb/dvha-pro 1.0.30 → 1.0.32

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 (37) hide show
  1. package/dist/cjs/component.cjs +1 -1
  2. package/dist/cjs/components/data/dynamicSelect.cjs +1 -1
  3. package/dist/cjs/components/data/selectModal.cjs +1 -1
  4. package/dist/cjs/components/form/pageForm.cjs +1 -1
  5. package/dist/cjs/components/form/pageTabForm.cjs +1 -0
  6. package/dist/cjs/components/layout/table.cjs +1 -1
  7. package/dist/cjs/components/upload/file.cjs +1 -1
  8. package/dist/cjs/components/upload/selectFile.cjs +1 -0
  9. package/dist/cjs/dvha-pro.css +1 -1
  10. package/dist/cjs/index.cjs +1 -1
  11. package/dist/cjs/langs/en-US.json.cjs +1 -1
  12. package/dist/cjs/langs/zh-CN.json.cjs +1 -1
  13. package/dist/cjs/pages/layout.cjs +1 -1
  14. package/dist/cjs/theme/uno.css.cjs +4 -1
  15. package/dist/esm/component.js +31 -31
  16. package/dist/esm/components/data/dynamicSelect.js +1 -1
  17. package/dist/esm/components/data/selectModal.js +1 -1
  18. package/dist/esm/components/form/pageForm.js +0 -4
  19. package/dist/esm/components/form/pageTabForm.js +145 -0
  20. package/dist/esm/components/layout/table.js +73 -71
  21. package/dist/esm/components/upload/file.js +4 -2
  22. package/dist/esm/components/upload/selectFile.js +72 -0
  23. package/dist/esm/dvha-pro.css +1 -1
  24. package/dist/esm/index.js +130 -126
  25. package/dist/esm/langs/en-US.json.js +2 -2
  26. package/dist/esm/langs/zh-CN.json.js +1 -1
  27. package/dist/esm/pages/layout.js +6 -7
  28. package/dist/esm/theme/uno.css.js +4 -1
  29. package/dist/types/components/data/selectModal.d.ts +1 -1
  30. package/dist/types/components/form/index.d.ts +1 -0
  31. package/dist/types/components/form/pageForm.d.ts +0 -9
  32. package/dist/types/components/form/pageTabForm.d.ts +63 -0
  33. package/dist/types/components/layout/table.d.ts +2 -2
  34. package/dist/types/components/table/tablePage.d.ts +2 -2
  35. package/dist/types/components/upload/index.d.ts +1 -0
  36. package/dist/types/components/upload/selectFile.d.ts +23 -0
  37. package/package.json +3 -3
@@ -77,10 +77,6 @@ const vt = /* @__PURE__ */ f({
77
77
  onError: {
78
78
  type: Function
79
79
  },
80
- size: {
81
- type: String,
82
- default: "medium"
83
- },
84
80
  invalidate: {
85
81
  type: String
86
82
  }
@@ -0,0 +1,145 @@
1
+ import { defineComponent as d, toRef as f, createVNode as t } from "vue";
2
+ import { useI18n as g, useTabStore as b, useInvalidate as y, useExtendForm as v } from "@duxweb/dvha-core";
3
+ import { useMessage as x, NTabs as S, NButton as p } from "naive-ui";
4
+ import { useRouter as h } from "vue-router";
5
+ import "@overlastic/vue";
6
+ import { DuxCard as T } from "../card/card.js";
7
+ import "clsx";
8
+ import "vue-echarts";
9
+ import "@vueuse/core";
10
+ import "vue3-ace-editor";
11
+ import "ace-builds/src-noconflict/mode-vue";
12
+ import "ace-builds/src-noconflict/mode-javascript";
13
+ import "ace-builds/src-noconflict/mode-html";
14
+ import "ace-builds/src-noconflict/mode-json";
15
+ import "ace-builds/src-noconflict/mode-json5";
16
+ import "ace-builds/src-noconflict/theme-tomorrow_night";
17
+ import "ace-builds/src-noconflict/theme-tomorrow";
18
+ import "ace-builds/src-noconflict/ext-searchbox";
19
+ import "ace-builds/src-noconflict/ext-language_tools";
20
+ import "ace-builds/src-noconflict/mode-snippets";
21
+ import "vue-cropper";
22
+ import "jinrishici";
23
+ import "lodash-es";
24
+ import "vue-draggable-plus";
25
+ import "short-unique-id";
26
+ import "aieditor";
27
+ import "vee-validate";
28
+ import "@duxweb/dvha-naiveui";
29
+ import "@iconify-json/tabler/icons.json";
30
+ import "../posterEditor/elements/index.js";
31
+ import "fabric";
32
+ import "mime";
33
+ import "dayjs";
34
+ import "@tanstack/vue-query";
35
+ import "pinia";
36
+ import "@vee-validate/i18n";
37
+ import "colorizr";
38
+ import "echarts";
39
+ import "@ant-design/colors";
40
+ import "@unocss/preset-icons/browser";
41
+ import "@unocss/preset-typography";
42
+ import "unocss/preset-wind4";
43
+ import "@vee-validate/i18n/dist/locale/en.json";
44
+ import "@vee-validate/i18n/dist/locale/zh_CN.json";
45
+ import "vue-command-palette";
46
+ import { DuxPage as E } from "../../pages/page.js";
47
+ import "../../pages/page404.js";
48
+ const yt = /* @__PURE__ */ d({
49
+ name: "DuxPageTabForm",
50
+ props: {
51
+ id: {
52
+ type: [String, Number]
53
+ },
54
+ action: {
55
+ type: String
56
+ },
57
+ title: {
58
+ type: String
59
+ },
60
+ path: {
61
+ type: String
62
+ },
63
+ data: {
64
+ type: Object
65
+ },
66
+ onSuccess: {
67
+ type: Function
68
+ },
69
+ onError: {
70
+ type: Function
71
+ },
72
+ invalidate: {
73
+ type: String
74
+ },
75
+ defaultTab: {
76
+ type: String,
77
+ default: "0"
78
+ }
79
+ },
80
+ setup(o, {
81
+ slots: m
82
+ }) {
83
+ const {
84
+ t: e
85
+ } = g(), s = f(o, "data", {}), n = x(), l = h(), a = b(), {
86
+ invalidate: u
87
+ } = y(), i = v({
88
+ id: o.id,
89
+ path: o.path,
90
+ form: s,
91
+ action: o.action,
92
+ onError: (r) => {
93
+ n.error(r.message || e("components.form.error")), o.onError?.(r);
94
+ },
95
+ onSuccess: (r) => {
96
+ n.success(e("components.form.success")), o.onSuccess?.(r), !i.isEdit.value && a.current && a.delTab(a.current, (c) => l.push(c.path || "")), o.invalidate && u(o.invalidate);
97
+ }
98
+ });
99
+ return () => t(E, {
100
+ card: !1,
101
+ scrollbar: !1
102
+ }, {
103
+ default: () => [t(T, {
104
+ class: "h-full"
105
+ }, {
106
+ default: () => [t(S, {
107
+ class: "app-page-tabs",
108
+ type: "line",
109
+ size: "large",
110
+ defaultValue: o.defaultTab
111
+ }, {
112
+ prefix: () => t("div", {
113
+ class: "w-1"
114
+ }, null),
115
+ default: () => m?.default?.(i),
116
+ suffix: () => t("div", {
117
+ class: "flex gap-6 items-center px-3"
118
+ }, [m?.actions?.(i), t("div", {
119
+ class: "flex gap-2"
120
+ }, [t(p, {
121
+ onClick: () => i.onReset(),
122
+ loading: i.isLoading.value
123
+ }, {
124
+ default: () => e("components.button.reset"),
125
+ icon: () => t("i", {
126
+ class: "i-tabler:refresh"
127
+ }, null)
128
+ }), t(p, {
129
+ type: "primary",
130
+ onClick: () => i.onSubmit(),
131
+ loading: i.isLoading.value
132
+ }, {
133
+ default: () => e("components.button.submit"),
134
+ icon: () => t("i", {
135
+ class: "i-tabler:device-floppy"
136
+ }, null)
137
+ })])])
138
+ })]
139
+ })]
140
+ });
141
+ }
142
+ });
143
+ export {
144
+ yt as DuxPageTabForm
145
+ };
@@ -1,8 +1,8 @@
1
- import { defineComponent as J, toRef as x, computed as s, reactive as v, createVNode as e, h as k, mergeProps as K, isVNode as G } from "vue";
2
- import { useI18n as H, useJsonSchema as C } from "@duxweb/dvha-core";
3
- import { useWindowSize as Q } from "@vueuse/core";
4
- import { NTabs as X, NTab as Y, NButton as r, NPopselect as Z, NTooltip as f, NProgress as $, NPagination as ee, NModal as te, NDrawer as N } from "naive-ui";
5
- import { useAction as oe } from "../../hooks/action.js";
1
+ import { defineComponent as G, toRef as k, computed as s, reactive as v, createVNode as e, h as C, mergeProps as H, isVNode as Q } from "vue";
2
+ import { useI18n as X, useJsonSchema as N, useTabStore as Y } from "@duxweb/dvha-core";
3
+ import { useWindowSize as Z } from "@vueuse/core";
4
+ import { NTabs as $, NTab as ee, NButton as r, NPopselect as te, NTooltip as f, NProgress as oe, NPagination as le, NModal as ie, NDrawer as R } from "naive-ui";
5
+ import { useAction as ae } from "../../hooks/action.js";
6
6
  import "@overlastic/vue";
7
7
  import "clsx";
8
8
  import "vue-echarts";
@@ -18,12 +18,12 @@ import "ace-builds/src-noconflict/ext-searchbox";
18
18
  import "ace-builds/src-noconflict/ext-language_tools";
19
19
  import "ace-builds/src-noconflict/mode-snippets";
20
20
  import "vue-cropper";
21
- import le from "../modal/modalPage.js";
21
+ import re from "../modal/modalPage.js";
22
22
  import "jinrishici";
23
23
  import "lodash-es";
24
24
  import "vue-draggable-plus";
25
- import { DuxTableFilter as ie } from "./filter.js";
26
- import { DuxFilterLayout as ae } from "./filterLayout.js";
25
+ import { DuxTableFilter as ne } from "./filter.js";
26
+ import { DuxFilterLayout as se } from "./filterLayout.js";
27
27
  import "@vee-validate/i18n";
28
28
  import "colorizr";
29
29
  import "echarts";
@@ -37,10 +37,10 @@ import "vee-validate";
37
37
  import "vue-router";
38
38
  import "vue-command-palette";
39
39
  import "@duxweb/dvha-naiveui";
40
- import { DuxPage as re } from "../../pages/page.js";
40
+ import { DuxPage as ue } from "../../pages/page.js";
41
41
  import "../../pages/page404.js";
42
- import { DuxDrawerPage as R } from "../drawer/drawerPage.js";
43
- import { DuxTableTools as ne } from "./tools.js";
42
+ import { DuxDrawerPage as S } from "../drawer/drawerPage.js";
43
+ import { DuxTableTools as ce } from "./tools.js";
44
44
  import "short-unique-id";
45
45
  import "aieditor";
46
46
  import "@iconify-json/tabler/icons.json";
@@ -49,12 +49,12 @@ import "fabric";
49
49
  import "mime";
50
50
  import "dayjs";
51
51
  import "@tanstack/vue-query";
52
- import { useTable as se } from "../../hooks/table.js";
52
+ import { useTable as de } from "../../hooks/table.js";
53
53
  import "pinia";
54
- function ue(t) {
55
- return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !G(t);
54
+ function me(t) {
55
+ return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !Q(t);
56
56
  }
57
- const ut = /* @__PURE__ */ J({
57
+ const mt = /* @__PURE__ */ G({
58
58
  name: "DuxTableLayout",
59
59
  props: {
60
60
  path: {
@@ -103,38 +103,38 @@ const ut = /* @__PURE__ */ J({
103
103
  setup(t, {
104
104
  slots: l
105
105
  }) {
106
- const p = x(t, "filter", {}), S = x(t, "columns", []), {
106
+ const p = k(t, "filter", {}), T = k(t, "columns", []), {
107
107
  t: i
108
- } = H(), {
109
- renderAction: T
110
- } = oe(), b = se({
108
+ } = X(), {
109
+ renderAction: j
110
+ } = ae(), b = de({
111
111
  path: t.path,
112
112
  filters: p.value,
113
- columns: S,
113
+ columns: T,
114
114
  pagination: t.pagination,
115
115
  ...t.hookTableProps
116
116
  }), {
117
117
  columns: w,
118
- tablePagination: j,
119
- table: L,
120
- onUpdateColumnSelected: P,
121
- onUpdateChecked: z,
122
- columnSelected: D,
123
- autoRefetch: A,
124
- autoCountdown: y,
125
- onAutoRefetch: O,
126
- isExporting: U,
127
- isExportingRows: E,
128
- isImporting: F,
118
+ tablePagination: L,
119
+ table: P,
120
+ onUpdateColumnSelected: z,
121
+ onUpdateChecked: D,
122
+ columnSelected: A,
123
+ autoRefetch: O,
124
+ autoCountdown: x,
125
+ onAutoRefetch: U,
126
+ isExporting: E,
127
+ isExportingRows: F,
128
+ isImporting: I,
129
129
  onExport: V,
130
130
  onExportRows: W,
131
- onImport: I
132
- } = b, B = s(() => w.value.filter((o) => "title" in o && "key" in o).map((o) => ({
131
+ onImport: B
132
+ } = b, M = s(() => w.value.filter((o) => "title" in o && "key" in o).map((o) => ({
133
133
  label: o.title,
134
134
  value: o.key
135
135
  }))), {
136
136
  width: n
137
- } = Q(), M = s(() => w.value.reduce((a, m) => a + (Number(m?.width) || Number(m?.minWidth) || 110), 0)), u = v({
137
+ } = Z(), _ = s(() => w.value.reduce((a, m) => a + (Number(m?.width) || Number(m?.minWidth) || 110), 0)), u = v({
138
138
  show: !1
139
139
  }), c = v({
140
140
  show: !1
@@ -146,27 +146,27 @@ const ut = /* @__PURE__ */ J({
146
146
  ...m
147
147
  } = o;
148
148
  return {
149
- tag: ie,
149
+ tag: ne,
150
150
  attrs: {
151
151
  label: a
152
152
  },
153
153
  children: m
154
154
  };
155
155
  })), {
156
- render: _
157
- } = C({
156
+ render: q
157
+ } = N({
158
158
  data: s(() => h.value?.slice(t.filterNumber))
159
159
  }), {
160
- render: q
161
- } = C({
160
+ render: J
161
+ } = N({
162
162
  data: s(() => h.value?.slice(0, t.filterNumber))
163
163
  }), g = s(() => ({
164
164
  import: !1,
165
165
  export: !0,
166
166
  refresh: !0,
167
167
  ...t.tools
168
- }));
169
- return () => e(re, {
168
+ })), y = Y(), K = y.tabs.find((o) => o.path === y.current);
169
+ return () => e(ue, {
170
170
  actions: t.actions,
171
171
  scrollbar: !1
172
172
  }, {
@@ -178,7 +178,7 @@ const ut = /* @__PURE__ */ J({
178
178
  class: "flex gap-2 justify-between flex-col lg:flex-row"
179
179
  }, [t.tabs && e("div", {
180
180
  class: "flex flex-none"
181
- }, [e(X, {
181
+ }, [e($, {
182
182
  type: "segment",
183
183
  size: "small",
184
184
  style: {
@@ -190,7 +190,7 @@ const ut = /* @__PURE__ */ J({
190
190
  p.value.tab = o;
191
191
  }
192
192
  }, {
193
- default: () => [t.tabs?.map((o) => e(Y, {
193
+ default: () => [t.tabs?.map((o) => e(ee, {
194
194
  name: o.value,
195
195
  tab: o.label
196
196
  }, null))]
@@ -208,7 +208,9 @@ const ut = /* @__PURE__ */ J({
208
208
  }, null)
209
209
  }), e("div", {
210
210
  class: ["flex-1 flex flex-col lg:flex-row gap-2 flex-wrap", t.tabs ? "justify-end" : "justify-start"]
211
- }, [k(q)]), l?.sideRight && n.value < 1024 && e(r, {
211
+ }, [!t.tabs && !t.filterSchema?.length && e("div", {
212
+ class: "flex flex-none items-center text-base font-medium"
213
+ }, [K?.label]), C(J)]), l?.sideRight && n.value < 1024 && e(r, {
212
214
  class: "flex-none",
213
215
  secondary: !0,
214
216
  onClick: () => {
@@ -232,11 +234,11 @@ const ut = /* @__PURE__ */ J({
232
234
  icon: () => e("div", {
233
235
  class: ["i-tabler:chevrons-down size-4 transition-all"]
234
236
  }, null)
235
- }), l?.tools?.(), e(Z, {
236
- options: B.value,
237
- value: D.value,
237
+ }), l?.tools?.(), e(te, {
238
+ options: M.value,
239
+ value: A.value,
238
240
  onUpdateValue: (o) => {
239
- P(o);
241
+ z(o);
240
242
  },
241
243
  multiple: !0,
242
244
  placement: "bottom-start",
@@ -256,7 +258,7 @@ const ut = /* @__PURE__ */ J({
256
258
  }), g.value.export && e(f, null, {
257
259
  trigger: () => e(r, {
258
260
  secondary: !0,
259
- loading: U.value,
261
+ loading: E.value,
260
262
  onClick: V
261
263
  }, {
262
264
  icon: () => e("div", {
@@ -267,8 +269,8 @@ const ut = /* @__PURE__ */ J({
267
269
  }), g.value.import && e(f, null, {
268
270
  trigger: () => e(r, {
269
271
  secondary: !0,
270
- loading: F.value,
271
- onClick: I
272
+ loading: I.value,
273
+ onClick: B
272
274
  }, {
273
275
  icon: () => e("div", {
274
276
  class: "i-tabler:database-import size-4"
@@ -278,18 +280,18 @@ const ut = /* @__PURE__ */ J({
278
280
  }), g.value.refresh && e(f, null, {
279
281
  trigger: () => e(r, {
280
282
  secondary: !0,
281
- onClick: O
283
+ onClick: U
282
284
  }, {
283
- icon: () => A.value ? e($, {
285
+ icon: () => O.value ? e(oe, {
284
286
  class: "size-4",
285
287
  type: "circle",
286
- percentage: y.value * 10,
288
+ percentage: x.value * 10,
287
289
  strokeWidth: 20,
288
290
  color: "rgba(var(--ui-color-primary))"
289
291
  }, {
290
292
  default: () => [e("span", {
291
293
  class: "text-8px"
292
- }, [y.value])]
294
+ }, [x.value])]
293
295
  }) : e("div", {
294
296
  class: "i-tabler:refresh size-4"
295
297
  }, null)
@@ -297,40 +299,40 @@ const ut = /* @__PURE__ */ J({
297
299
  default: () => i("components.button.autoRefresh")
298
300
  })]), e("div", {
299
301
  class: "flex gap-2 justify-end"
300
- }, [l.actions?.(), t.actions?.length > 0 && T({
302
+ }, [l.actions?.(), t.actions?.length > 0 && j({
301
303
  type: n.value < 1024 ? "dropdown" : "button",
302
304
  items: t.actions
303
305
  })])])]), l?.header?.(), e("div", {
304
306
  class: "flex-1 min-h-0"
305
307
  }, [l?.default?.({
306
308
  ...b,
307
- width: M.value
309
+ width: _.value
308
310
  })]), e("div", {
309
311
  class: "flex justify-between"
310
- }, [e("div", null, [l?.bottom?.()]), e("div", null, [t.pagination && e(ee, K(j.value, {
312
+ }, [e("div", null, [l?.bottom?.()]), e("div", null, [t.pagination && e(le, H(L.value, {
311
313
  simple: n.value < 768
312
314
  }), {
313
315
  prefix: () => e("div", null, [i("components.list.total", {
314
316
  total: b.total.value || 0
315
317
  })])
316
- })])]), e(ne, {
317
- number: L.value.checkedRowKeys?.length || 0 || 0,
318
+ })])]), e(ce, {
319
+ number: P.value.checkedRowKeys?.length || 0 || 0,
318
320
  group: [[{
319
321
  icon: "i-tabler:x",
320
322
  onClick: () => {
321
- z?.([]);
323
+ D?.([]);
322
324
  }
323
325
  }], [{
324
326
  label: i("components.button.export"),
325
327
  icon: "i-tabler:file-export",
326
- loading: E.value,
328
+ loading: F.value,
327
329
  onClick: W
328
330
  }, {
329
331
  label: i("components.button.delete"),
330
332
  type: "error",
331
333
  icon: "i-tabler:trash"
332
334
  }]]
333
- }, null), e(te, {
335
+ }, null), e(ie, {
334
336
  draggable: !0,
335
337
  class: "bg-white rounded dark:shadow-gray-950/80 dark:bg-gray-800/60 backdrop-blur min-w-110",
336
338
  show: u.show,
@@ -340,39 +342,39 @@ const ut = /* @__PURE__ */ J({
340
342
  draggableClass: o
341
343
  }) => {
342
344
  let a;
343
- return e(le, {
345
+ return e(re, {
344
346
  title: i("components.button.filter"),
345
347
  handle: o,
346
348
  onClose: () => u.show = !1
347
349
  }, {
348
- default: () => [e(ae, {
350
+ default: () => [e(se, {
349
351
  showLabel: !0,
350
352
  labelPlacement: "top"
351
- }, ue(a = k(_)) ? a : {
353
+ }, me(a = C(q)) ? a : {
352
354
  default: () => [a]
353
355
  })]
354
356
  });
355
357
  }
356
- }), e(N, {
358
+ }), e(R, {
357
359
  show: c.show,
358
360
  onUpdateShow: (o) => c.show = o,
359
361
  autoFocus: !1,
360
362
  placement: "left"
361
363
  }, {
362
- default: () => [e(R, {
364
+ default: () => [e(S, {
363
365
  title: t.sideLeftTitle || i("components.button.sideLeft"),
364
366
  onClose: () => c.show = !1,
365
367
  scrollbar: !1
366
368
  }, {
367
369
  default: () => [l?.sideLeft?.()]
368
370
  })]
369
- }), e(N, {
371
+ }), e(R, {
370
372
  show: d.show,
371
373
  onUpdateShow: (o) => d.show = o,
372
374
  autoFocus: !1,
373
375
  placement: "right"
374
376
  }, {
375
- default: () => [e(R, {
377
+ default: () => [e(S, {
376
378
  title: t.sideRightTitle || i("components.button.sideRight"),
377
379
  onClose: () => d.show = !1,
378
380
  scrollbar: !1
@@ -384,5 +386,5 @@ const ut = /* @__PURE__ */ J({
384
386
  }
385
387
  });
386
388
  export {
387
- ut as DuxTableLayout
389
+ mt as DuxTableLayout
388
390
  };
@@ -241,7 +241,9 @@ const m = {
241
241
  key: "status",
242
242
  title: a("components.upload.file.status"),
243
243
  width: 120,
244
- render: (e) => e.status === "uploading" ? o(T, {
244
+ render: (e) => e.status === "uploading" ? o("div", {
245
+ class: "flex items-center"
246
+ }, [o(T, {
245
247
  type: "line",
246
248
  style: {
247
249
  width: "24px",
@@ -252,7 +254,7 @@ const m = {
252
254
  percentage: e.progress?.percent,
253
255
  showIndicator: !1,
254
256
  height: 14
255
- }, null) : V.value[e.status]
257
+ }, null)]) : V.value[e.status]
256
258
  }, {
257
259
  key: "actions",
258
260
  title: a("components.upload.actions"),
@@ -0,0 +1,72 @@
1
+ import { defineComponent as r, ref as p, computed as f, createVNode as t, createTextVNode as d } from "vue";
2
+ import { useI18n as x } from "@duxweb/dvha-core";
3
+ import { useVModel as v } from "@vueuse/core";
4
+ const b = /* @__PURE__ */ r({
5
+ name: "DuxSelectUpload",
6
+ props: {
7
+ maxNum: Number,
8
+ multiple: Boolean,
9
+ value: [String, Array, Object],
10
+ onUpdateValue: Function,
11
+ accept: {
12
+ type: String,
13
+ default: "*"
14
+ }
15
+ },
16
+ setup(e, {
17
+ emit: s
18
+ }) {
19
+ const o = p([]), u = v(e, "value", s), {
20
+ t: a
21
+ } = x(), i = f(() => {
22
+ const n = o.value.length;
23
+ return n === 0 ? a("components.upload.selectUpload.clickOrDrag") : e.multiple ? a("components.upload.selectUpload.selectedFiles", {
24
+ count: n
25
+ }) : o.value[0]?.name || "";
26
+ });
27
+ function m(n) {
28
+ const c = Array.from(n.target.files || []);
29
+ if (e.multiple) {
30
+ const l = e.maxNum ? c.slice(0, e.maxNum) : c;
31
+ o.value = l, u.value = l, e.onUpdateValue?.(l);
32
+ } else {
33
+ const l = c[0];
34
+ o.value = l ? [l] : [], u.value = l || void 0, e.onUpdateValue?.(l);
35
+ }
36
+ }
37
+ return () => t("div", {
38
+ class: "relative border border-dashed border-muted rounded p-8 text-center hover:border-primary transition-colors duration-200 bg-muted hover:bg-elevated"
39
+ }, [t("input", {
40
+ type: "file",
41
+ multiple: e.multiple,
42
+ class: "absolute inset-0 w-full h-full opacity-0 cursor-pointer",
43
+ onChange: m,
44
+ accept: e.accept
45
+ }, null), t("div", {
46
+ class: "flex flex-col items-center gap-3"
47
+ }, [t("svg", {
48
+ class: "w-12 h-12 text-muted",
49
+ fill: "none",
50
+ stroke: "currentColor",
51
+ viewBox: "0 0 24 24"
52
+ }, [t("path", {
53
+ "stroke-linecap": "round",
54
+ "stroke-linejoin": "round",
55
+ "stroke-width": "2",
56
+ d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"
57
+ }, null)]), t("div", null, [t("p", {
58
+ class: "text-lg font-medium text-default"
59
+ }, [i.value]), t("p", {
60
+ class: "text-sm text-muted mt-1"
61
+ }, [e.multiple ? a("components.upload.selectUpload.multipleSupport") : e.accept !== "*" ? a("components.upload.selectUpload.acceptDesc", {
62
+ accept: e.accept
63
+ }) : a("components.upload.selectUpload.defaultDesc"), e.maxNum && t("span", {
64
+ class: "ml-2 text-warning"
65
+ }, [d("("), a("components.upload.selectUpload.maxFiles", {
66
+ max: e.maxNum
67
+ }), d(")")])])])])]);
68
+ }
69
+ });
70
+ export {
71
+ b as DuxSelectUpload
72
+ };
@@ -1 +1 @@
1
- @charset "UTF-8";.n-popover-shared .n-popover-arrow-wrapper .n-popover-arrow{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.n-dropdown-menu{min-width:130px}.icon-gradient{color:rgb(var(--ui-color-primary));animation:icon-color-cycle 12s ease-in-out infinite}@keyframes icon-color-cycle{0%{color:rgb(var(--ui-color-primary))}20%{color:rgb(var(--ui-color-info))}40%{color:rgb(var(--ui-color-success))}60%{color:rgb(var(--ui-color-warning))}80%{color:rgb(var(--ui-color-error))}to{color:rgb(var(--ui-color-primary))}}@keyframes icon-gradient-shift{0%{background-position:0% 50%}25%{background-position:50% 0%}50%{background-position:100% 50%}75%{background-position:50% 100%}to{background-position:0% 50%}}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--card-type .n-tabs-pad{border:none}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--card-type .n-tabs-nav__prefix,.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--card-type .n-tabs-nav__suffix{border-bottom:none}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--card-type .n-tabs-tab{padding:0;border-bottom:none;border-radius:0;background-color:transparent}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--top.n-tabs-nav--card-type .n-tabs-tab-pad{height:20px;width:1px;background-color:#0000001a;border-bottom:none;position:absolute;top:50%;transform:translateY(-50%)}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--top.n-tabs-nav--card-type .n-tabs-tab{background-color:transparent;border-bottom:none;border:none;position:relative}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--top.n-tabs-nav--card-type .n-tabs-tab.n-tabs-tab--active{background-color:transparent}.dark .app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--top.n-tabs-nav--card-type .n-tabs-tab-pad{background-color:#ffffff1a}.app-modal-tabs.n-tabs .n-tabs-wrapper{padding:0 16px}.app-modal-tabs.n-tabs .n-tabs-nav{background-color:rgb(var(--ui-color-gray-200)/.2)}.app-modal-tabs.n-tabs .n-tabs-tab{padding:12px 4px;font-size:var(--n-font-size)}.dark .app-modal-tabs.n-tabs .n-tabs-nav{background-color:rgb(var(--ui-bg-elevated)/.5)}.n-data-table .n-data-table-thead{border:1px solid rgb(var(--ui-border-muted))}.n-data-table .n-data-table-thead .n-data-table-tr>.n-data-table-th:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-left:1px solid rgba(var(--ui-border-accented)/.5)}.n-data-table .n-data-table-thead .n-data-table-tr>.n-data-table-th--last{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-right:1px solid rgba(var(--ui-border-accented)/.5)}.n-data-table .n-data-table-th{border-top:1px solid rgba(var(--ui-border-accented)/.5);border-bottom:1px solid rgba(var(--ui-border-accented)/.5)}.command-palette [command-dialog-mask]{background-color:rgb(var(--ui-bg-inverted)/.3);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);height:100vh;width:100vw;position:fixed;top:0;left:0;z-index:1000}.command-palette [command-dialog-wrapper]{position:relative;flex-direction:column;margin:20vh auto auto;max-width:560px;background-color:rgb(var(--ui-bg)/.9);border-radius:6px}.command-palette [command-group-heading]{color:rgba(var(--ui-text-muted));padding:6px}.command-palette [command-separator]{border-bottom:1px solid rgb(var(--ui-border-muted));margin:6px 0}.command-palette [command-list]{border-top:1px solid rgb(var(--ui-border-muted));padding:0 6px 6px}.command-palette [command-item]{padding:6px 12px;display:flex;align-items:center;gap:6px;border-radius:3px;color:rgba(var(--ui-text-toned))}.command-palette [command-item][aria-selected=true],.command-palette [command-item]:active{background-color:rgb(var(--ui-bg-accented)/.8);color:rgba(var(--ui-color-primary-500))}.dark .command-palette [command-dialog-mask]{background-color:rgb(var(--ui-bg-inverted)/.02)}.dark .command-palette [command-dialog-wrapper]{background-color:rgb(var(--ui-bg-elevated)/.95)}.dark .command-palette [command-separator]{border-bottom:1px solid rgb(var(--ui-border)/.5)}.dark .command-palette [command-list]{border-top:1px solid rgb(var(--ui-border)/.5)}.n-menu.n-menu--collapsed .n-menu-item-content .n-menu-item-content-header{opacity:1}.n-menu.n-menu--collapsed .n-menu-item-content .n-menu-item-content__arrow{display:none}.app-login-bg{background-image:repeating-linear-gradient(90deg,hsla(298,16%,68%,.06) 0px,hsla(298,16%,68%,.06) 1px,transparent 1px,transparent 21px,hsla(298,16%,68%,.06) 21px,hsla(298,16%,68%,.06) 22px,transparent 22px,transparent 72px),repeating-linear-gradient(0deg,hsla(298,16%,68%,.06) 0px,hsla(298,16%,68%,.06) 1px,transparent 1px,transparent 21px,hsla(298,16%,68%,.06) 21px,hsla(298,16%,68%,.06) 22px,transparent 22px,transparent 72px),repeating-linear-gradient(135deg,hsla(298,16%,68%,.06) 0px,hsla(298,16%,68%,.06) 1px,transparent 1px,transparent 21px,hsla(298,16%,68%,.06) 21px,hsla(298,16%,68%,.06) 22px,transparent 22px,transparent 72px),linear-gradient(90deg,#f7f7f8,#f7f7f8)}.app-login-dark-bg{background-image:repeating-linear-gradient(90deg,rgba(90,90,90,.06) 0px,rgba(90,90,90,.06) 1px,transparent 1px,transparent 21px,rgba(90,90,90,.06) 21px,rgba(90,90,90,.06) 22px,transparent 22px,transparent 72px),repeating-linear-gradient(0deg,rgba(90,90,90,.06) 0px,rgba(90,90,90,.06) 1px,transparent 1px,transparent 21px,rgba(90,90,90,.06) 21px,rgba(90,90,90,.06) 22px,transparent 22px,transparent 72px),repeating-linear-gradient(135deg,rgba(90,90,90,.06) 0px,rgba(90,90,90,.06) 1px,transparent 1px,transparent 21px,rgba(90,90,90,.06) 21px,rgba(90,90,90,.06) 22px,transparent 22px,transparent 72px),linear-gradient(90deg,#101014,#101014)}.app-loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;background-color:rgb(var(--ui-bg));overflow:hidden}.app-box-loading{width:50px;height:50px;position:relative}.app-box-loading:before{content:"";width:50px;height:5px;background:rgb(var(--ui-color-gray-200));opacity:.3;position:absolute;top:59px;left:0;border-radius:50%;animation:shadow .5s linear infinite}.app-box-loading:after{content:"";width:50px;height:50px;background:rgba(var(--ui-color-primary));animation:animate .5s linear infinite;position:absolute;top:0;left:0;border-radius:3px}@keyframes animate{17%{border-bottom-right-radius:3px}25%{transform:translateY(9px) rotate(22.5deg)}50%{transform:translateY(18px) scaleY(.9) rotate(45deg);border-bottom-right-radius:40px}75%{transform:translateY(9px) rotate(67.5deg)}to{transform:translateY(0) rotate(90deg)}}@keyframes shadow{0%,to{transform:scale(1)}50%{transform:scaleX(1.2)}}html{color-scheme:light;background-color:rgb(var(--ui-color-primary-700)/.05)}html.dark{color-scheme:dark;background-color:rgb(var(--ui-bg)/.5)}[un-cloak]{display:none}.app-remote-loader{height:100%}.tab-fade-leave-active,.tab-fade-enter-active{transition:all .3s}.tab-fade-enter-from{opacity:0;transform:translate(-30px)}.tab-fade-enter-to{opacity:1;transform:translate(0)}.tab-fade-leave-to{opacity:0;transform:translate(30px)}
1
+ @charset "UTF-8";.n-popover-shared .n-popover-arrow-wrapper .n-popover-arrow{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.n-dropdown-menu{min-width:130px}.icon-gradient{color:rgb(var(--ui-color-primary));animation:icon-color-cycle 12s ease-in-out infinite}@keyframes icon-color-cycle{0%{color:rgb(var(--ui-color-primary))}20%{color:rgb(var(--ui-color-info))}40%{color:rgb(var(--ui-color-success))}60%{color:rgb(var(--ui-color-warning))}80%{color:rgb(var(--ui-color-error))}to{color:rgb(var(--ui-color-primary))}}@keyframes icon-gradient-shift{0%{background-position:0% 50%}25%{background-position:50% 0%}50%{background-position:100% 50%}75%{background-position:50% 100%}to{background-position:0% 50%}}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--card-type .n-tabs-pad{border:none}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--card-type .n-tabs-nav__prefix,.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--card-type .n-tabs-nav__suffix{border-bottom:none}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--card-type .n-tabs-tab{padding:0;border-bottom:none;border-radius:0;background-color:transparent}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--top.n-tabs-nav--card-type .n-tabs-tab-pad{height:20px;width:1px;background-color:#0000001a;border-bottom:none;position:absolute;top:50%;transform:translateY(-50%)}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--top.n-tabs-nav--card-type .n-tabs-tab{background-color:transparent;border-bottom:none;border:none;position:relative}.app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--top.n-tabs-nav--card-type .n-tabs-tab.n-tabs-tab--active{background-color:transparent}.dark .app-page-tabs.n-tabs .n-tabs-nav.n-tabs-nav--top.n-tabs-nav--card-type .n-tabs-tab-pad{background-color:#ffffff1a}.app-modal-tabs.n-tabs .n-tabs-wrapper{padding:0 16px}.app-modal-tabs.n-tabs .n-tabs-nav{background-color:rgb(var(--ui-color-gray-200)/.2)}.app-modal-tabs.n-tabs .n-tabs-tab{padding:12px 4px;font-size:var(--n-font-size)}.dark .app-modal-tabs.n-tabs .n-tabs-nav{background-color:rgb(var(--ui-bg-elevated)/.5)}.app-page-tabs.n-tabs{display:flex;height:100%;flex-direction:column}.app-page-tabs.n-tabs .n-tabs-nav{flex:none}.app-page-tabs.n-tabs .n-tab-pane{flex:1;min-height:0;overflow-y:auto;padding:20px}.app-page-tabs.n-tabs .n-tabs-tab{font-size:.85rem;padding:1rem}.n-data-table .n-data-table-thead{border:1px solid rgb(var(--ui-border-muted))}.n-data-table .n-data-table-thead .n-data-table-tr>.n-data-table-th:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-left:1px solid rgba(var(--ui-border-accented)/.5)}.n-data-table .n-data-table-thead .n-data-table-tr>.n-data-table-th--last{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-right:1px solid rgba(var(--ui-border-accented)/.5)}.n-data-table .n-data-table-th{border-top:1px solid rgba(var(--ui-border-accented)/.5);border-bottom:1px solid rgba(var(--ui-border-accented)/.5)}.command-palette [command-dialog-mask]{background-color:rgb(var(--ui-bg-inverted)/.3);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);height:100vh;width:100vw;position:fixed;top:0;left:0;z-index:1000}.command-palette [command-dialog-wrapper]{position:relative;flex-direction:column;margin:20vh auto auto;max-width:560px;background-color:rgb(var(--ui-bg)/.9);border-radius:6px}.command-palette [command-group-heading]{color:rgba(var(--ui-text-muted));padding:6px}.command-palette [command-separator]{border-bottom:1px solid rgb(var(--ui-border-muted));margin:6px 0}.command-palette [command-list]{border-top:1px solid rgb(var(--ui-border-muted));padding:0 6px 6px}.command-palette [command-item]{padding:6px 12px;display:flex;align-items:center;gap:6px;border-radius:3px;color:rgba(var(--ui-text-toned))}.command-palette [command-item][aria-selected=true],.command-palette [command-item]:active{background-color:rgb(var(--ui-bg-accented)/.8);color:rgba(var(--ui-color-primary-500))}.dark .command-palette [command-dialog-mask]{background-color:rgb(var(--ui-bg-inverted)/.02)}.dark .command-palette [command-dialog-wrapper]{background-color:rgb(var(--ui-bg-elevated)/.95)}.dark .command-palette [command-separator]{border-bottom:1px solid rgb(var(--ui-border)/.5)}.dark .command-palette [command-list]{border-top:1px solid rgb(var(--ui-border)/.5)}.n-menu.n-menu--collapsed .n-menu-item-content .n-menu-item-content-header{opacity:1}.n-menu.n-menu--collapsed .n-menu-item-content .n-menu-item-content__arrow{display:none}.app-login-bg{background-image:repeating-linear-gradient(90deg,hsla(298,16%,68%,.06) 0px,hsla(298,16%,68%,.06) 1px,transparent 1px,transparent 21px,hsla(298,16%,68%,.06) 21px,hsla(298,16%,68%,.06) 22px,transparent 22px,transparent 72px),repeating-linear-gradient(0deg,hsla(298,16%,68%,.06) 0px,hsla(298,16%,68%,.06) 1px,transparent 1px,transparent 21px,hsla(298,16%,68%,.06) 21px,hsla(298,16%,68%,.06) 22px,transparent 22px,transparent 72px),repeating-linear-gradient(135deg,hsla(298,16%,68%,.06) 0px,hsla(298,16%,68%,.06) 1px,transparent 1px,transparent 21px,hsla(298,16%,68%,.06) 21px,hsla(298,16%,68%,.06) 22px,transparent 22px,transparent 72px),linear-gradient(90deg,#f7f7f8,#f7f7f8)}.app-login-dark-bg{background-image:repeating-linear-gradient(90deg,rgba(90,90,90,.06) 0px,rgba(90,90,90,.06) 1px,transparent 1px,transparent 21px,rgba(90,90,90,.06) 21px,rgba(90,90,90,.06) 22px,transparent 22px,transparent 72px),repeating-linear-gradient(0deg,rgba(90,90,90,.06) 0px,rgba(90,90,90,.06) 1px,transparent 1px,transparent 21px,rgba(90,90,90,.06) 21px,rgba(90,90,90,.06) 22px,transparent 22px,transparent 72px),repeating-linear-gradient(135deg,rgba(90,90,90,.06) 0px,rgba(90,90,90,.06) 1px,transparent 1px,transparent 21px,rgba(90,90,90,.06) 21px,rgba(90,90,90,.06) 22px,transparent 22px,transparent 72px),linear-gradient(90deg,#101014,#101014)}.app-loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;background-color:rgb(var(--ui-bg));overflow:hidden}.app-box-loading{width:50px;height:50px;position:relative}.app-box-loading:before{content:"";width:50px;height:5px;background:rgb(var(--ui-color-gray-200));opacity:.3;position:absolute;top:59px;left:0;border-radius:50%;animation:shadow .5s linear infinite}.app-box-loading:after{content:"";width:50px;height:50px;background:rgba(var(--ui-color-primary));animation:animate .5s linear infinite;position:absolute;top:0;left:0;border-radius:3px}@keyframes animate{17%{border-bottom-right-radius:3px}25%{transform:translateY(9px) rotate(22.5deg)}50%{transform:translateY(18px) scaleY(.9) rotate(45deg);border-bottom-right-radius:40px}75%{transform:translateY(9px) rotate(67.5deg)}to{transform:translateY(0) rotate(90deg)}}@keyframes shadow{0%,to{transform:scale(1)}50%{transform:scaleX(1.2)}}html{color-scheme:light;background-color:rgb(var(--ui-color-primary-700)/.05)}html.dark{color-scheme:dark;background-color:rgb(var(--ui-bg)/.5)}[un-cloak]{display:none}.app-remote-loader{height:100%}.tab-fade-leave-active,.tab-fade-enter-active{transition:all .3s}.tab-fade-enter-from{opacity:0;transform:translate(-30px)}.tab-fade-enter-to{opacity:1;transform:translate(0)}.tab-fade-leave-to{opacity:0;transform:translate(30px)}