@ithinkdt/ui 4.0.0-601 → 4.0.0-800

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.
@@ -1,9 +1,9 @@
1
- import { n as useI18n } from "./use-i18n-Dx7V4KrY.js";
2
- import { g as useStyle, h as useMergedClsPrefix, n as cB, r as cE, t as c } from "./use-style-D9hLG26i.js";
3
- import { i as vTooltip } from "./directives-8VsgmCuO.js";
4
- import { Fragment, computed, createTextVNode, createVNode, defineComponent, h, inject, isVNode, mergeProps, nextTick, reactive, ref, shallowRef, toRaw, toRef, toValue, unref, useTemplateRef, watch, withDirectives } from "vue";
1
+ import { n as useI18n } from "./use-i18n-D-AJ8KbA.js";
2
+ import { g as useStyle, h as useMergedClsPrefix, i as cM, n as cB, r as cE, t as c } from "./use-style-BGq0HdRK.js";
3
+ import { i as vTooltip } from "./directives-CBQhJ3zJ.js";
4
+ import { Fragment, computed, createTextVNode, createVNode, defineComponent, h, inject, isVNode, markRaw, mergeProps, nextTick, reactive, ref, shallowRef, toRaw, toRef, toValue, unref, useTemplateRef, watch, withDirectives } from "vue";
5
5
  import { toReactive, unrefElement, until, useCurrentElement, useElementSize, watchDebounced } from "@vueuse/core";
6
- import { NAnchor, NAnchorLink, NAvatar, NAvatarGroup, NButton, NCard, NCheckbox, NCheckboxGroup, NDataTable, NDropdown, NEllipsis, NEmpty, NFlex, NForm, NFormItem, NGi, NGrid, NH4, NIcon, NInput, NList, NListItem, NPagination, NPerformantEllipsis, NPopover, NRadio, NRadioButton, NRadioGroup, NSelect, NSpin, NTag, NText, NTooltip, NTransfer, NTree, NTreeSelect, dataTableProps, formProps, useDialog } from "ithinkdt-ui";
6
+ import { NAnchor, NAnchorLink, NAvatar, NAvatarGroup, NButton, NCard, NCheckbox, NCheckboxGroup, NDataTable, NDropdown, NEllipsis, NEmpty, NFlex, NForm, NFormItem, NGi, NGrid, NIcon, NInput, NList, NListItem, NPagination, NPopover, NRadio, NRadioButton, NRadioGroup, NSelect, NSpin, NTag, NText, NTooltip, NTransfer, NTree, NTreeSelect, dataTableProps, formProps, useDialog } from "ithinkdt-ui";
7
7
  import { nanoid } from "nanoid";
8
8
  import { VOverflow, VResizeObserver } from "vueuc";
9
9
  import { Sortable } from "sortablejs/modular/sortable.core.esm.js";
@@ -67,37 +67,37 @@ const NCheckboxes = /* @__PURE__ */ defineComponent({
67
67
  "update:modelValue": () => !0,
68
68
  updateModelValue: () => !0
69
69
  },
70
- setup(y, { emit: b, attrs: x }) {
71
- let { t: S } = useI18n(), C = computed(() => y.default ? y.default === !0 ? S("common.all") : typeof y.default == "string" ? y.default : y.default?.[y.labelField] ?? S("common.all") : ""), w = ref([]);
72
- watch(() => y.modelValue, (e) => w.value = e, { immediate: !0 });
73
- let T = (e) => {
74
- b("update:modelValue", e), b("updateModelValue", e);
75
- }, D = () => {
76
- T(w.value?.length === y.options.length ? [] : y.options.map((e) => e[y.valueField]));
77
- }, O = computed(() => y.options.length > w.value?.length && w.value?.length > 0), k = computed(() => ({ "--n-label-padding": y.labelPadding }));
70
+ setup(t, { emit: n, attrs: r }) {
71
+ let { t: i } = useI18n(), a = computed(() => t.default ? t.default === !0 ? i("common.all") : typeof t.default == "string" ? t.default : t.default?.[t.labelField] ?? i("common.all") : ""), o = ref([]);
72
+ watch(() => t.modelValue, (e) => o.value = e, { immediate: !0 });
73
+ let s = (e) => {
74
+ n("update:modelValue", e), n("updateModelValue", e);
75
+ }, l = () => {
76
+ s(o.value?.length === t.options.length ? [] : t.options.map((e) => e[t.valueField]));
77
+ }, d = computed(() => t.options.length > o.value?.length && o.value?.length > 0), f = computed(() => ({ "--n-label-padding": t.labelPadding }));
78
78
  return () => {
79
- let e = createVNode(NCheckboxGroup, mergeProps(x, {
80
- value: w.value,
81
- onUpdateValue: T
79
+ let e = createVNode(NCheckboxGroup, mergeProps(r, {
80
+ value: o.value,
81
+ onUpdateValue: s
82
82
  }), { default: () => [createVNode(NFlex, {
83
- size: y.gap ?? (y.vertical ? void 0 : "small"),
84
- vertical: y.vertical,
85
- style: !y.default && y.vertical ? { padding: "6px 0 0" } : {}
86
- }, { default: () => [y.options?.map((e) => createVNode(NCheckbox, {
87
- value: e[y.valueField],
88
- disabled: e[y.disabledField],
89
- style: k.value
90
- }, { default: () => [e[y.labelField]] }))] })] });
91
- return y.default ? createVNode(NFlex, {
92
- size: y.gap ?? (y.vertical ? void 0 : "small"),
93
- vertical: y.vertical,
94
- style: y.vertical ? { padding: "6px 0 0" } : {}
83
+ size: t.gap ?? (t.vertical ? void 0 : "small"),
84
+ vertical: t.vertical,
85
+ style: !t.default && t.vertical ? { padding: "6px 0 0" } : {}
86
+ }, { default: () => [t.options?.map((e) => createVNode(NCheckbox, {
87
+ value: e[t.valueField],
88
+ disabled: e[t.disabledField],
89
+ style: f.value
90
+ }, { default: () => [e[t.labelField]] }))] })] });
91
+ return t.default ? createVNode(NFlex, {
92
+ size: t.gap ?? (t.vertical ? void 0 : "small"),
93
+ vertical: t.vertical,
94
+ style: t.vertical ? { padding: "6px 0 0" } : {}
95
95
  }, { default: () => [createVNode("span", null, [createVNode(NCheckbox, {
96
- indeterminate: O.value,
97
- checked: w.value?.length > 0,
98
- onUpdateChecked: D,
99
- style: k.value
100
- }, { default: () => [C.value] })]), e] }) : e;
96
+ indeterminate: d.value,
97
+ checked: o.value?.length > 0,
98
+ onUpdateChecked: l,
99
+ style: f.value
100
+ }, { default: () => [a.value] })]), e] }) : e;
101
101
  };
102
102
  }
103
103
  }), IHelp = (e) => createVNode("svg", mergeProps({
@@ -289,16 +289,16 @@ const NCheckboxes = /* @__PURE__ */ defineComponent({
289
289
  default: () => []
290
290
  } },
291
291
  setup(e) {
292
- let y = ref(), b = !0, x = () => {
293
- b ? b = !1 : y.value?.sync({ showAllItemsBeforeCalculate: !0 });
294
- }, S = ref(), C = () => S.value, w = ref(-1), T = (y) => {
295
- w.value = e.options.length - y;
296
- }, D = (e) => {
297
- e || (w.value = -1);
298
- }, O = () => {}, k = computed(() => w.value === -1 ? [] : e.options.slice(w.value).map((e) => ({
292
+ let t = ref(), n = !0, r = () => {
293
+ n ? n = !1 : t.value?.sync({ showAllItemsBeforeCalculate: !0 });
294
+ }, i = ref(), a = () => i.value, o = ref(-1), s = (t) => {
295
+ o.value = e.options.length - t;
296
+ }, l = (e) => {
297
+ e || (o.value = -1);
298
+ }, d = () => {}, f = computed(() => o.value === -1 ? [] : e.options.slice(o.value).map((e) => ({
299
299
  ...e,
300
300
  key: e.text
301
- }))), A = (e) => createVNode(NButton, {
301
+ }))), p = (e) => createVNode(NButton, {
302
302
  type: e.color === "danger" ? "error" : [
303
303
  "default",
304
304
  "tertiary",
@@ -309,15 +309,15 @@ const NCheckboxes = /* @__PURE__ */ defineComponent({
309
309
  "error"
310
310
  ].includes(e.color) ? e.color : "primary",
311
311
  text: !0
312
- }, { default: () => [e.text] }), j = (e, y) => {
313
- y.onClick?.();
312
+ }, { default: () => [e.text] }), m = (e, t) => {
313
+ t.onClick?.();
314
314
  };
315
- return () => createVNode(VResizeObserver, { onResize: x }, { default: () => [createVNode(VOverflow, {
316
- ref: y,
317
- getCounter: C,
318
- onUpdateCount: T,
319
- onUpdateOverflow: D,
320
- updateCounter: O,
315
+ return () => createVNode(VResizeObserver, { onResize: r }, { default: () => [createVNode(VOverflow, {
316
+ ref: t,
317
+ getCounter: a,
318
+ onUpdateCount: s,
319
+ onUpdateOverflow: l,
320
+ updateCounter: d,
321
321
  style: "margin-top: 2px"
322
322
  }, {
323
323
  default: () => e.options.map((e) => createVNode(NButton, {
@@ -335,12 +335,12 @@ const NCheckboxes = /* @__PURE__ */ defineComponent({
335
335
  onClick: e.onClick
336
336
  }, { default: () => [e.text] })),
337
337
  counter: () => createVNode("span", {
338
- ref: S,
338
+ ref: i,
339
339
  style: "position: absolute"
340
340
  }, [createVNode(NDropdown, {
341
- options: k.value,
342
- renderLabel: A,
343
- onSelect: j
341
+ options: f.value,
342
+ renderLabel: p,
343
+ onSelect: m
344
344
  }, { default: () => [createVNode(NButton, {
345
345
  quaternary: !0,
346
346
  size: "small"
@@ -361,9 +361,9 @@ var DataCustomItem = /* @__PURE__ */ defineComponent({
361
361
  fixed: [Boolean, String]
362
362
  },
363
363
  emits: ["update-hidden", "update-fixed"],
364
- setup(e, { emit: y }) {
364
+ setup(e, { emit: t }) {
365
365
  return () => {
366
- let b;
366
+ let n;
367
367
  return createVNode(NFlex, {
368
368
  align: "center",
369
369
  wrap: !1,
@@ -377,17 +377,17 @@ var DataCustomItem = /* @__PURE__ */ defineComponent({
377
377
  createVNode(NCheckbox, {
378
378
  checked: !e.hidden,
379
379
  disabled: e.disabled,
380
- onUpdateChecked: (e) => y("update-hidden", !e)
380
+ onUpdateChecked: (e) => t("update-hidden", !e)
381
381
  }, null),
382
- createVNode(NEllipsis, { style: "flex: 1 1 auto" }, _isSlot$7(b = toValue(e.label)) ? b : { default: () => [b] }),
382
+ createVNode(NEllipsis, { style: "flex: 1 1 auto" }, _isSlot$7(n = toValue(e.label)) ? n : { default: () => [n] }),
383
383
  e.showFixed ? [createVNode(NButton, {
384
384
  text: !0,
385
385
  type: e.fixed === "left" ? "primary" : void 0,
386
- onClick: () => y("update-fixed", e.fixed === "left" ? !1 : "left")
386
+ onClick: () => t("update-fixed", e.fixed === "left" ? !1 : "left")
387
387
  }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(ILeft2, null, null)] })] }), createVNode(NButton, {
388
388
  text: !0,
389
389
  type: e.fixed === "right" ? "primary" : void 0,
390
- onClick: () => y("update-fixed", e.fixed === "right" ? !1 : "right")
390
+ onClick: () => t("update-fixed", e.fixed === "right" ? !1 : "right")
391
391
  }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IRight2, null, null)] })] })] : void 0
392
392
  ] });
393
393
  };
@@ -424,9 +424,9 @@ const DataCustom = /* @__PURE__ */ defineComponent({
424
424
  type: String,
425
425
  default: "disabled"
426
426
  },
427
- visiblityField: {
427
+ visibleField: {
428
428
  type: String,
429
- default: "visiblity"
429
+ default: "visible"
430
430
  },
431
431
  tooltip: [String, Object],
432
432
  size: {
@@ -436,24 +436,24 @@ const DataCustom = /* @__PURE__ */ defineComponent({
436
436
  type: { type: String }
437
437
  },
438
438
  emits: { custom: () => !0 },
439
- setup(y, { emit: b }) {
440
- let { t: x } = useI18n();
441
- function S(e, x, S) {
442
- b("custom", {
443
- key: e[y.keyField],
444
- [x]: S
439
+ setup(t, { emit: n }) {
440
+ let { t: r } = useI18n();
441
+ function i(e, r, i) {
442
+ n("custom", {
443
+ key: e[t.keyField],
444
+ [r]: i
445
445
  });
446
446
  }
447
- let C = ref();
448
- return watch(C, (e) => {
447
+ let a = ref();
448
+ return watch(a, (e) => {
449
449
  e.$el && Sortable.create(e.$el, {
450
450
  animation: 150,
451
451
  ghostClass: "ghost",
452
452
  handle: ".icon-drag",
453
453
  filter: ".disabled",
454
454
  onEnd(e) {
455
- let x = y.data.map((e) => e[y.keyField]), [S] = x.splice(e.oldIndex, 1);
456
- x.splice(e.newIndex, 0, S), b("custom", x);
455
+ let r = t.data.map((e) => e[t.keyField]), [i] = r.splice(e.oldIndex, 1);
456
+ r.splice(e.newIndex, 0, i), n("custom", r);
457
457
  }
458
458
  });
459
459
  }), () => createVNode(NPopover, {
@@ -465,27 +465,27 @@ const DataCustom = /* @__PURE__ */ defineComponent({
465
465
  }, {
466
466
  trigger: () => withDirectives(createVNode(NButton, {
467
467
  text: !0,
468
- type: y.type
469
- }, { default: () => [createVNode(NIcon, { size: y.size }, { default: () => [createVNode(ICustom, null, null)] })] }), [[vTooltip, y.tooltip ?? x("common.page.custom.tooltip")]]),
468
+ type: t.type
469
+ }, { default: () => [createVNode(NIcon, { size: t.size }, { default: () => [createVNode(ICustom, null, null)] })] }), [[vTooltip, t.tooltip ?? r("common.page.custom.tooltip")]]),
470
470
  default: () => {
471
- let e, w;
472
- return createVNode(NFlex, { vertical: !0 }, { default: () => [createVNode(NFlex, { justify: "space-between" }, { default: () => [createVNode("div", { style: "font-weight: bold" }, [y.tooltip ?? x("common.page.custom.tooltip")]), createVNode(NButton, {
471
+ let e, o;
472
+ return createVNode(NFlex, { vertical: !0 }, { default: () => [createVNode(NFlex, { justify: "space-between" }, { default: () => [createVNode("div", { style: "font-weight: bold" }, [t.tooltip ?? r("common.page.custom.tooltip")]), createVNode(NButton, {
473
473
  text: !0,
474
474
  type: "primary",
475
475
  size: "small",
476
- onClick: () => b("custom", !0)
477
- }, _isSlot$7(e = x("common.page.custom.reset")) ? e : { default: () => [e] })] }), createVNode(NFlex, {
478
- ref: C,
476
+ onClick: () => n("custom", !0)
477
+ }, _isSlot$7(e = r("common.page.custom.reset")) ? e : { default: () => [e] })] }), createVNode(NFlex, {
478
+ ref: a,
479
479
  vertical: !0
480
- }, _isSlot$7(w = y.data.filter((e) => e[y.visiblityField] !== !1).map((e) => createVNode(DataCustomItem, {
481
- key: e[y.keyField],
482
- label: e[y.labelField],
483
- hidden: e[y.hiddenField],
484
- fixed: e[y.fixedField],
485
- showFixed: y.showFixed,
486
- onUpdateHidden: (y) => S(e, "hidden", y),
487
- onUpdateFixed: (y) => S(e, "fixed", y)
488
- }, null))) ? w : { default: () => [w] })] });
480
+ }, _isSlot$7(o = t.data.filter((e) => e[t.visibleField] !== !1).map((e) => createVNode(DataCustomItem, {
481
+ key: e[t.keyField],
482
+ label: e[t.labelField],
483
+ hidden: e[t.hiddenField],
484
+ fixed: e[t.fixedField],
485
+ showFixed: t.showFixed,
486
+ onUpdateHidden: (t) => i(e, "hidden", t),
487
+ onUpdateFixed: (t) => i(e, "fixed", t)
488
+ }, null))) ? o : { default: () => [o] })] });
489
489
  }
490
490
  });
491
491
  }
@@ -493,31 +493,31 @@ const DataCustom = /* @__PURE__ */ defineComponent({
493
493
  function _isSlot$6(e) {
494
494
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
495
495
  }
496
- function renderLabel(e, y) {
497
- return typeof e == "function" ? e(y) : e;
496
+ function renderLabel(e, t) {
497
+ return typeof e == "function" ? e(t) : e;
498
498
  }
499
- function renderAnchorLink(e, y) {
499
+ function renderAnchorLink(e, t) {
500
500
  return e.isGroup ? (e.__children ??= e.children?.filter((e) => e.isGroup) ?? [], createVNode(NAnchorLink, { href: `#${e.prop}` }, {
501
- title: () => renderLabel(e.label, y),
502
- default: e.__children?.length ? () => e.__children.map((e) => renderAnchorLink(e, y)) : void 0
501
+ title: () => renderLabel(e.label, t),
502
+ default: e.__children?.length ? () => e.__children.map((e) => renderAnchorLink(e, t)) : void 0
503
503
  })) : null;
504
504
  }
505
- function getSpan(e, y, b) {
506
- return typeof e == "function" ? e(y, b) : e;
505
+ function getSpan(e, t, n) {
506
+ return typeof e == "function" ? e(t, n) : e;
507
507
  }
508
- function renderItem(e, y, b, x) {
508
+ function renderItem(e, t, n, r) {
509
509
  return e.isGroup ? createVNode("div", {
510
510
  key: e.prop,
511
- class: `${x}__group`,
511
+ class: `${r}__group`,
512
512
  id: e.prop
513
- }, [createVNode("div", { class: `${x}__title` }, [renderLabel(e.label, b)]), createVNode("div", { class: `${x}__wrapper` }, [e.children?.map((e) => renderItem(e, y, b, x))])]) : createVNode("div", {
513
+ }, [createVNode("div", { class: `${r}__title` }, [renderLabel(e.label, n)]), createVNode("div", { class: `${r}__wrapper` }, [e.children?.map((e) => renderItem(e, t, n, r))])]) : createVNode("div", {
514
514
  key: e.prop,
515
- class: `${x}__item`,
515
+ class: `${r}__item`,
516
516
  style: {
517
- "--descriptions-col-span": getSpan(e.colSpan, y, b) ?? 1,
518
- "--descriptions-row-span": getSpan(e.rowSpan, y, b) ?? 1
517
+ "--descriptions-col-span": getSpan(e.colSpan, t, n) ?? 1,
518
+ "--descriptions-row-span": getSpan(e.rowSpan, t, n) ?? 1
519
519
  }
520
- }, [e.label ? createVNode("div", { class: `${x}__label` }, [renderLabel(e.label, b)]) : void 0, createVNode("div", { class: `${x}__content` }, [(b ? e.render ? e.render(b) : b[e.prop] : void 0) ?? createVNode("span", { class: `${x}__nothing` }, [createTextVNode("--")])])]);
520
+ }, [e.label ? createVNode("div", { class: `${r}__label` }, [renderLabel(e.label, n)]) : void 0, createVNode("div", { class: `${r}__content` }, [(n ? e.render ? e.render(n) : n[e.prop] : void 0) ?? createVNode("span", { class: `${r}__nothing` }, [createTextVNode("--")])])]);
521
521
  }
522
522
  const DataDescriptions = /* @__PURE__ */ defineComponent({
523
523
  name: "DataDescriptions",
@@ -538,29 +538,29 @@ const DataDescriptions = /* @__PURE__ */ defineComponent({
538
538
  }
539
539
  },
540
540
  setup(e) {
541
- let x = useMergedClsPrefix(), S = `${x.value}-data-descriptions`;
542
- useStyle("-data-descriptions", style$1, x);
543
- let C = ref();
541
+ let r = useMergedClsPrefix(), i = `${r.value}-data-descriptions`;
542
+ useStyle("-data-descriptions", style$1, r);
543
+ let a = ref();
544
544
  watch(() => e.items, () => {
545
- location.hash && until(C).toBeTruthy().then((e) => {
545
+ location.hash && until(a).toBeTruthy().then((e) => {
546
546
  e.scrollTo(location.hash);
547
547
  });
548
548
  }, { immediate: !0 });
549
- let w = computed(() => ({ "--descriptions-cols": e.cols })), T = computed(() => mergeProps({
550
- ref: C,
551
- class: `${S}__anchor`,
549
+ let o = computed(() => ({ "--descriptions-cols": e.cols })), s = computed(() => mergeProps({
550
+ ref: a,
551
+ class: `${i}__anchor`,
552
552
  showBackground: !1,
553
553
  affix: !0
554
554
  }, e.anchor && typeof e.anchor == "object" ? e.anchor : {}));
555
555
  return () => {
556
- let y, { cols: b, title: x, data: C, items: E, anchor: D } = e, O = isNullish(x) ? void 0 : createVNode("div", { class: `${S}__header` }, [typeof x == "string" ? createVNode("span", null, [x]) : x(C ?? void 0)]), A = E.filter((e) => !e.hiddden).map((e) => renderItem(e, b, C, S)), j = D === !1 ? void 0 : createVNode(NAnchor, T.value, _isSlot$6(y = E.map((e) => h(renderAnchorLink(e, C), { key: e.prop }))) ? y : { default: () => [y] });
556
+ let t, { cols: n, title: r, data: a, items: l, anchor: u } = e, d = isNullish(r) ? void 0 : createVNode("div", { class: `${i}__header` }, [typeof r == "string" ? createVNode("span", null, [r]) : r(a ?? void 0)]), f = l.filter((e) => !e.hiddden).map((e) => renderItem(e, n, a, i)), m = u === !1 ? void 0 : createVNode(NAnchor, s.value, _isSlot$6(t = l.map((e) => h(renderAnchorLink(e, a), { key: e.prop }))) ? t : { default: () => [t] });
557
557
  return createVNode("div", {
558
- class: S,
559
- style: w.value
558
+ class: i,
559
+ style: o.value
560
560
  }, [
561
- O,
562
- createVNode("div", { class: `${S}__wrapper` }, [A]),
563
- j
561
+ d,
562
+ createVNode("div", { class: `${i}__wrapper` }, [f]),
563
+ m
564
564
  ]);
565
565
  };
566
566
  }
@@ -681,43 +681,43 @@ const dataFormActionsProps = {
681
681
  "reset",
682
682
  "cancel"
683
683
  ],
684
- setup(y, { emit: b, slots: x }) {
685
- let { t: S } = useI18n(), C = () => {
686
- b("submit");
687
- }, w = () => {
688
- b("reset");
689
- }, T = () => {
690
- b("cancel");
691
- }, { mergedDisabledRef: E, mergedSizeRef: D } = useFormItem(y);
684
+ setup(t, { emit: n, slots: r }) {
685
+ let { t: i } = useI18n(), a = () => {
686
+ n("submit");
687
+ }, o = () => {
688
+ n("reset");
689
+ }, s = () => {
690
+ n("cancel");
691
+ }, { mergedDisabledRef: l, mergedSizeRef: u } = useFormItem(t);
692
692
  return () => {
693
- let e = D.value, b = E.value, { gap: O = e === "small" ? 8 : e === "medium" ? 12 : 16, submitText: k, resetText: A, cancelText: j, submitDisabled: M, submitLoading: N, showSubmitBtn: P, showResetBtn: F, showCancelBtn: I, succeeded: L, successText: R = k, failureText: z = k, nativeButtonType: B } = y;
694
- return createVNode(NFlex, { size: O === void 0 ? e : O }, { default: () => [
695
- x.prefix?.(),
696
- P === !1 ? void 0 : createVNode(NButton, {
697
- attrType: B ? "submit" : "button",
693
+ let e = u.value, n = l.value, { gap: d = e === "small" ? 8 : e === "medium" ? 12 : 16, submitText: f, resetText: p, cancelText: m, submitDisabled: g, submitLoading: _, showSubmitBtn: v, showResetBtn: y, showCancelBtn: b, succeeded: x, successText: S = f, failureText: C = f, nativeButtonType: w } = t;
694
+ return createVNode(NFlex, { size: d === void 0 ? e : d }, { default: () => [
695
+ r.prefix?.(),
696
+ v === !1 ? void 0 : createVNode(NButton, {
697
+ attrType: w ? "submit" : "button",
698
698
  size: e,
699
- type: L ? "success" : L === !1 ? "error" : "primary",
700
- disabled: L !== void 0 || b || M || N,
701
- loading: N,
702
- onClick: B ? void 0 : C
699
+ type: x ? "success" : x === !1 ? "error" : "primary",
700
+ disabled: x !== void 0 || n || g || _,
701
+ loading: _,
702
+ onClick: w ? void 0 : a
703
703
  }, {
704
- default: () => (L ? R : L === !1 ? z : k) || S("common.page.form.submitText"),
705
- icon: () => L ? createVNode(NIcon, null, { default: () => [createVNode(ICheck, null, null)] }) : L === !1 ? createVNode(NIcon, null, { default: () => [createVNode(IClose, null, null)] }) : void 0
704
+ default: () => (x ? S : x === !1 ? C : f) || i("common.page.form.submitText"),
705
+ icon: () => x ? createVNode(NIcon, null, { default: () => [createVNode(ICheck, null, null)] }) : x === !1 ? createVNode(NIcon, null, { default: () => [createVNode(IClose, null, null)] }) : void 0
706
706
  }),
707
- F === !1 ? void 0 : createVNode(NButton, {
708
- size: D.value,
709
- attrType: B ? "reset" : "button",
710
- disabled: b || N || L,
711
- type: I ? "primary" : "default",
712
- secondary: I,
713
- onClick: B ? void 0 : w
714
- }, { default: () => [A || S("common.page.form.resetText")] }),
715
- I === !1 || L ? void 0 : createVNode(NButton, {
707
+ y === !1 ? void 0 : createVNode(NButton, {
708
+ size: u.value,
709
+ attrType: w ? "reset" : "button",
710
+ disabled: n || _ || x,
711
+ type: b ? "primary" : "default",
712
+ secondary: b,
713
+ onClick: w ? void 0 : o
714
+ }, { default: () => [p || i("common.page.form.resetText")] }),
715
+ b === !1 || x ? void 0 : createVNode(NButton, {
716
716
  attrType: "button",
717
- disabled: b || N,
718
- onClick: T
719
- }, { default: () => [j || S("common.page.form.cancelText")] }),
720
- x.suffix?.()
717
+ disabled: n || _,
718
+ onClick: s
719
+ }, { default: () => [m || i("common.page.form.cancelText")] }),
720
+ r.suffix?.()
721
721
  ] });
722
722
  };
723
723
  }
@@ -783,108 +783,114 @@ const DataForm = /* @__PURE__ */ defineComponent({
783
783
  "reset",
784
784
  "cancel"
785
785
  ],
786
- setup(e, { emit: y, slots: b }) {
787
- let x = (b) => {
788
- b?.preventDefault?.(), y("submit", { ...toRaw(e.model) }, b);
789
- }, S = (e) => {
790
- e?.preventDefault?.(), y("reset");
791
- }, C = (e) => {
792
- e?.preventDefault?.(), y("cancel");
793
- }, w = ref(), E = ref(), { width: O } = useElementSize(useCurrentElement());
794
- return watchDebounced([w, O], () => {
795
- E.value = void 0, setTimeout(() => {
796
- E.value = w.value?.responsiveCols || void 0;
797
- }, 30);
786
+ setup(e, { emit: t, slots: n }) {
787
+ let r = (n) => {
788
+ n?.preventDefault?.(), t("submit", { ...toRaw(e.model) }, n);
789
+ }, i = (e) => {
790
+ e?.preventDefault?.(), t("reset");
791
+ }, a = (e) => {
792
+ e?.preventDefault?.(), t("cancel");
793
+ }, o = ref(), s = ref(), { width: u } = useElementSize(useCurrentElement());
794
+ watchDebounced([o, u], () => {
795
+ s.value = void 0, nextTick(() => {
796
+ s.value = o.value?.responsiveCols || void 0;
797
+ });
798
798
  }, {
799
799
  immediate: !0,
800
- debounce: 100
801
- }), () => {
802
- let { items: y, loading: O, validation: k, showColon: A, tooltipPlacement: j, showFeedback: N, labelWidth: P = "7.2em", labelAlign: F = e.labelPlacement === "top" ? "left" : "right", grid: I, showAction: L, showSubmitBtn: R, showResetBtn: B, showCancelBtn: V, actionAlign: H, actionJustify: U, actionGap: W, submitDisabled: G, submitText: K, resetText: q, cancelText: J, succeeded: Y, successText: X, failureText: Z,...Q } = e, $ = !e.readonly && N !== !1;
800
+ debounce: 1e3 / 20
801
+ });
802
+ let f = 0, p = ({ overflow: t }) => {
803
+ if (n.action) return n.action({
804
+ cols: s.value,
805
+ spans: f,
806
+ overflow: t
807
+ });
808
+ let { loading: r, showSubmitBtn: i, showResetBtn: o, showCancelBtn: l, actionAlign: u, actionJustify: d, actionGap: p, submitDisabled: m, submitText: g, resetText: _, cancelText: v, succeeded: y, successText: b, failureText: x } = e;
809
+ return createVNode(NFormItem, {
810
+ label: d === "start" ? " " : void 0,
811
+ showLabel: e.labelPlacement !== "top",
812
+ style: "padding-top: 16px"
813
+ }, { default: () => [createVNode(DataFormActions, {
814
+ align: u,
815
+ justify: d,
816
+ gap: p,
817
+ showSubmitBtn: i,
818
+ showResetBtn: o,
819
+ showCancelBtn: l,
820
+ submitText: g,
821
+ resetText: _,
822
+ cancelText: v,
823
+ submitDisabled: m,
824
+ submitLoading: r,
825
+ succeeded: y,
826
+ successText: b,
827
+ failureText: x,
828
+ nativeButtonType: !0,
829
+ onCancel: a
830
+ }, {
831
+ prefix: () => n.actionPrefix?.(),
832
+ suffix: () => n.actionSuffix?.()
833
+ })] });
834
+ }, m = () => {
835
+ let { items: t, validation: r, showAction: i } = e;
836
+ return f = 0, createVNode(Fragment, null, [t.map(({ hidden: t, name: n, render: i, label: a, showColon: o, span: s = 6, rowSpan: l, offset: u = 0, tooltip: p, tooltipPlacement: m = e.tooltipPlacement, validationStatus: g = r[n]?.errors?.length ? "error" : r[n]?.warnings?.length ? "warnings" : r[n] ? "success" : void 0, readonly: _ = e.readonly, showRequireMark: y = !_, showTooltipWhenReadonly: b = !1, ...x }) => {
837
+ if (t) return;
838
+ f += s;
839
+ let S;
840
+ return S = n[0] === "$" ? i({}) : createVNode(NFormItem, mergeProps({
841
+ path: n,
842
+ validationStatus: g,
843
+ showRequireMark: x.required && y
844
+ }, x), {
845
+ label: () => createVNode(NText, {
846
+ depth: e.readonly ? 3 : 2,
847
+ style: "display: inline-flex; align-items: flex-start; gap: 1px"
848
+ }, { default: () => [
849
+ createVNode("span", null, [toValue(a)]),
850
+ m === "icon" ? createVNode(NTooltip, null, {
851
+ default: () => toValue(p),
852
+ trigger: () => createVNode(NButton, {
853
+ text: !0,
854
+ style: "font-size: 1.25em; opacity: 0.8"
855
+ }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IHelp, null, null)] })] })
856
+ }) : void 0,
857
+ e.showColon && o !== !1 ? createVNode("span", { style: "place-self: center" }, [createTextVNode(":")]) : void 0
858
+ ] }),
859
+ default: () => {
860
+ let t, n = createVNode("div", { style: "width: 100%; font-size: calc(1rem - 2px); min-height: 32px; display: flex; align-items: center" }, [i({
861
+ disabled: e.disabled,
862
+ size: e.size,
863
+ readonly: e.readonly
864
+ })]);
865
+ return p && m === "bottom" && (!e.readonly || b) ? createVNode("div", { style: "width: 100%; display: flex; flex-direction: column" }, [n, createVNode(NText, {
866
+ depth: 3,
867
+ style: "font-size: calc(1rem - 3px); margin-top: 6px"
868
+ }, _isSlot$5(t = toValue(p)) ? t : { default: () => [t] })]) : n;
869
+ },
870
+ feedback: () => r[n]?.errors?.[0] ?? r[n]?.warnings?.[0]
871
+ }), e.grid === !1 ? S : createVNode(NGi, {
872
+ key: n,
873
+ offset: u,
874
+ span: s,
875
+ style: l ? { gridRowEnd: `span ${l}` } : void 0
876
+ }, _isSlot$5(S) ? S : { default: () => [S] });
877
+ }), i === !1 || e.readonly === !0 && !n.action ? void 0 : createVNode(NGi, mergeProps({
878
+ key: "action",
879
+ span: 2 ** 53 - 1
880
+ }, typeof e.showAction == "object" ? e.showAction : {}), { default: p })]);
881
+ };
882
+ return () => {
883
+ let { items: t, loading: n, validation: a, showColon: s, tooltipPlacement: l, showFeedback: u, labelWidth: d = "7.2em", labelAlign: f = e.labelPlacement === "top" ? "left" : "right", grid: p, showAction: g, showSubmitBtn: _, showResetBtn: y, showCancelBtn: b, actionAlign: x, actionJustify: S, actionGap: C, submitDisabled: w, submitText: T, resetText: E, cancelText: D, succeeded: O, successText: k, failureText: A, ...j } = e, M = !e.readonly && u !== !1;
803
884
  return createVNode(NForm, mergeProps({
804
- labelWidth: P,
805
- labelAlign: F,
806
- onReset: S,
807
- onSubmit: x,
808
- showFeedback: $
809
- }, Q), { default: () => [createVNode(NGrid, mergeProps({
810
- ref: w,
885
+ labelWidth: d,
886
+ labelAlign: f,
887
+ onReset: i,
888
+ onSubmit: r,
889
+ showFeedback: M
890
+ }, j), { default: () => [createVNode(NGrid, mergeProps({
891
+ ref: o,
811
892
  itemResponsive: !0
812
- }, I, { yGap: $ ? 0 : I?.yGap ?? 24 }), { default: () => {
813
- let x = 0;
814
- return createVNode(Fragment, null, [y.map(({ hidden: y, name: b, render: S, label: C, showColon: w, span: T = 6, rowSpan: E, offset: O = 0, tooltip: A, tooltipPlacement: j = e.tooltipPlacement, validationStatus: N = k[b]?.errors?.some((e) => e !== void 0) ? "error" : k[b]?.warnings?.some((e) => e !== void 0) ? "warnings" : k[b] ? "success" : void 0, readonly: P = e.readonly, showRequireMark: F = !P, showTooltipWhenReadonly: I = !1,...L }) => {
815
- if (y) return;
816
- x += T;
817
- let R;
818
- return R = b[0] === "$" ? S({}) : createVNode(NFormItem, mergeProps({
819
- path: b,
820
- validationStatus: N,
821
- showRequireMark: L.required && F
822
- }, L), {
823
- label: () => createVNode(NText, {
824
- depth: e.readonly ? 3 : 2,
825
- style: "display: inline-flex; align-items: flex-start; gap: 1px"
826
- }, { default: () => [
827
- createVNode("span", null, [toValue(C)]),
828
- j === "icon" ? createVNode(NTooltip, null, {
829
- default: () => toValue(A),
830
- trigger: () => createVNode(NButton, {
831
- text: !0,
832
- style: "font-size: 1.25em; opacity: 0.8"
833
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IHelp, null, null)] })] })
834
- }) : void 0,
835
- e.showColon && w !== !1 ? createVNode("span", { style: "place-self: center" }, [createTextVNode(":")]) : void 0
836
- ] }),
837
- default: () => {
838
- let y, b = createVNode("div", { style: "width: 100%; font-size: calc(1rem - 2px); min-height: 32px; display: flex; align-items: center" }, [S({
839
- disabled: e.disabled,
840
- size: e.size,
841
- readonly: e.readonly
842
- })]);
843
- return A && j === "bottom" && (!e.readonly || I) ? createVNode("div", { style: "width: 100%; display: flex; flex-direction: column" }, [b, createVNode(NText, {
844
- depth: 3,
845
- style: "font-size: calc(1rem - 3px); margin-top: 6px"
846
- }, _isSlot$5(y = toValue(A)) ? y : { default: () => [y] })]) : b;
847
- },
848
- feedback: () => k[b]?.errors[0] ?? k[b]?.warnings[0]
849
- }), e.grid === !1 ? R : createVNode(NGi, {
850
- key: b,
851
- offset: O,
852
- span: T,
853
- style: E ? { gridRowEnd: `span ${E}` } : void 0
854
- }, _isSlot$5(R) ? R : { default: () => [R] });
855
- }), L === !1 || e.readonly === !0 && !b.action ? void 0 : createVNode(NGi, mergeProps({
856
- key: "action",
857
- span: 2 ** 53 - 1
858
- }, typeof e.showAction == "object" ? e.showAction : {}), { default: ({ overflow: y }) => b.action ? b.action({
859
- cols: E.value,
860
- spans: x,
861
- overflow: y
862
- }) : createVNode(NFormItem, {
863
- label: U === "start" ? " " : void 0,
864
- showLabel: e.labelPlacement !== "top",
865
- style: "padding-top: 16px"
866
- }, { default: () => [createVNode(DataFormActions, {
867
- align: H,
868
- justify: U,
869
- gap: W,
870
- showSubmitBtn: R,
871
- showResetBtn: B,
872
- showCancelBtn: V,
873
- submitText: K,
874
- resetText: q,
875
- cancelText: J,
876
- submitDisabled: G,
877
- submitloading: O,
878
- succeeded: Y,
879
- successText: X,
880
- failureText: Z,
881
- nativeButtonType: !0,
882
- onCancel: C
883
- }, {
884
- prefix: () => b.actionPrefix?.(),
885
- suffix: () => b.actionSuffix?.()
886
- })] }) })]);
887
- } })] });
893
+ }, p, { yGap: M ? 0 : p?.yGap ?? 24 }), { default: m })] });
888
894
  };
889
895
  }
890
896
  }), DataFilter = /* @__PURE__ */ defineComponent({
@@ -947,62 +953,62 @@ const DataForm = /* @__PURE__ */ defineComponent({
947
953
  "custom",
948
954
  "collapse"
949
955
  ],
950
- setup(y, { expose: b, emit: x }) {
951
- let { t: S } = useI18n(), C = (e) => {
952
- x("filter", y.model, e);
953
- }, w = (e) => {
954
- x("reset", e), y.filterOnReset && x("filter", y.model, e);
955
- }, T = ref(y.defaultCollapsed), E = (e) => {
956
- T.value = e;
956
+ setup(t, { expose: n, emit: r }) {
957
+ let { t: i } = useI18n(), a = (e) => {
958
+ r("filter", t.model, e);
959
+ }, o = (e) => {
960
+ r("reset", e), t.filterOnReset && r("filter", t.model, e);
961
+ }, s = ref(t.defaultCollapsed), l = (e) => {
962
+ s.value = e;
957
963
  };
958
- b({ collapse: E });
959
- let O = reactive({
964
+ n({ collapse: l });
965
+ let u = reactive({
960
966
  span: 6,
961
967
  suffix: !0
962
968
  });
963
969
  return () => {
964
- let { filterOnReset: e, filterText: b, resetText: k, customizable: A, defaultCollapsed: j, collapsible: N, grid: P,...F } = y;
970
+ let { filterOnReset: e, filterText: n, resetText: f, customizable: p, defaultCollapsed: m, collapsible: g, grid: _, ...y } = t;
965
971
  return createVNode(DataForm, mergeProps({ grid: {
966
972
  cols: "12 768:18 1280:24 1536:30",
967
973
  yGap: 20,
968
974
  xGap: 8,
969
- ...P,
970
- collapsed: T.value
971
- } }, F, {
975
+ ..._,
976
+ collapsed: s.value
977
+ } }, y, {
972
978
  showFeedback: !1,
973
- showAction: O,
974
- onSubmit: C,
975
- onReset: w
976
- }), { action: ({ cols: e, spans: C }) => (O.suffix = e < C + O.span, createVNode(NFlex, {
977
- justify: O.suffix ? "end" : "start",
979
+ showAction: u,
980
+ onSubmit: a,
981
+ onReset: o
982
+ }), { action: ({ cols: e, spans: a }) => (u.suffix = e < a + u.span, createVNode(NFlex, {
983
+ justify: u.suffix ? "end" : "start",
978
984
  align: "center"
979
985
  }, { default: () => [
980
- O.suffix ? void 0 : createVNode("span", null, [createTextVNode("\xA0\xA0\xA0\xA0")]),
986
+ u.suffix ? void 0 : createVNode("span", null, [createTextVNode("\xA0\xA0\xA0\xA0")]),
981
987
  createVNode(NButton, {
982
988
  attrType: "submit",
983
989
  type: "primary",
984
- disabled: y.disabled,
985
- loading: y.loading
986
- }, { default: () => [b || S("common.page.filter.submitText")] }),
990
+ disabled: t.disabled,
991
+ loading: t.loading
992
+ }, { default: () => [n || i("common.page.filter.submitText")] }),
987
993
  createVNode(NButton, {
988
994
  attrType: "reset",
989
- disabled: y.disabled || y.loading
990
- }, { default: () => [k || S("common.page.form.resetText")] }),
991
- A ? createVNode(DataCustom, {
995
+ disabled: t.disabled || t.loading
996
+ }, { default: () => [f || i("common.page.form.resetText")] }),
997
+ p ? createVNode(DataCustom, {
992
998
  keyField: "name",
993
999
  showFixed: !1,
994
- data: F.items,
995
- onCustom: (e) => x("custom", e),
1000
+ data: y.items,
996
1001
  size: 18,
997
- type: "primary"
1002
+ type: "primary",
1003
+ onCustom: (e) => r("custom", e)
998
1004
  }, null) : void 0,
999
- N && O.suffix ? createVNode(NButton, {
1005
+ g && u.suffix ? createVNode(NButton, {
1000
1006
  text: !0,
1001
1007
  type: "primary",
1002
1008
  iconPlacement: "right",
1003
- renderIcon: T.value ? IDown : IUp,
1004
- onClick: () => E(!T.value)
1005
- }, { default: () => [T.value ? S("common.page.filter.expand") : S("common.page.filter.collapse")] }) : void 0
1009
+ renderIcon: s.value ? IDown : IUp,
1010
+ onClick: () => l(!s.value)
1011
+ }, { default: () => [s.value ? i("common.page.filter.expand") : i("common.page.filter.collapse")] }) : void 0
1006
1012
  ] })) });
1007
1013
  };
1008
1014
  }
@@ -1010,31 +1016,31 @@ const DataForm = /* @__PURE__ */ defineComponent({
1010
1016
  function _isSlot$4(e) {
1011
1017
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
1012
1018
  }
1013
- function useLocaleEdit(y, b, x = 1) {
1014
- let { t: S } = useI18n(), C = ref(!1), w = [], { open: T, reinit: E } = useFormModal({
1015
- title: y,
1019
+ function useLocaleEdit(t, n, r = 1) {
1020
+ let { t: i } = useI18n(), a = ref(!1), o = [], { open: s, reinit: l } = useFormModal({
1021
+ title: t,
1016
1022
  showColon: !0,
1017
- submitText: S("common.confirm.defaultOk"),
1018
- items: ({ it: e }) => w.map((y) => e(y.value, y.label, "input", {
1023
+ submitText: i("common.confirm.defaultOk"),
1024
+ items: ({ it: e }) => o.map((t) => e(t.value, t.label, "input", {
1019
1025
  span: 24,
1020
- required: y.required,
1026
+ required: t.required,
1021
1027
  inputProps: {
1022
- readonly: C,
1028
+ readonly: a,
1023
1029
  clearable: !0,
1024
1030
  type: "textarea",
1025
1031
  showCount: !0,
1026
1032
  autosize: {
1027
- minRows: unref(x),
1028
- maxRows: Math.max(unref(x), 5)
1033
+ minRows: unref(r),
1034
+ maxRows: Math.max(unref(r), 5)
1029
1035
  }
1030
1036
  }
1031
1037
  })),
1032
- onSubmit: b
1038
+ onSubmit: n
1033
1039
  });
1034
1040
  return {
1035
- open: (e, y = !1) => (C.value = y, T(e)),
1041
+ open: (e, t = !1) => (a.value = t, s(e)),
1036
1042
  setSupports: (e) => {
1037
- w = e, E();
1043
+ o = e, l();
1038
1044
  }
1039
1045
  };
1040
1046
  }
@@ -1079,102 +1085,102 @@ const DataLocaleInput = /* @__PURE__ */ defineComponent({
1079
1085
  }
1080
1086
  },
1081
1087
  emits: ["update:modelValue", "updateModelValue"],
1082
- setup(e, { emit: y }) {
1083
- let b = (b, x = e.showLang ?? e.defaultLang) => {
1084
- b = {
1088
+ setup(e, { emit: t }) {
1089
+ let n = (n, r = e.showLang ?? e.defaultLang) => {
1090
+ n = {
1085
1091
  ...e.modelValue,
1086
- [x]: b
1087
- }, y("update:modelValue", b), y("updateModelValue", b);
1088
- }, { open: x, setSupports: S } = useLocaleEdit(computed(() => toValue(e.label)), (e) => {
1089
- y("update:modelValue", e), y("updateModelValue", e);
1090
- }, toRef(e, "defaultRows")), C = ref(e.defaultExpanded);
1092
+ [r]: n
1093
+ }, t("update:modelValue", n), t("updateModelValue", n);
1094
+ }, { open: r, setSupports: i } = useLocaleEdit(computed(() => toValue(e.label)), (e) => {
1095
+ t("update:modelValue", e), t("updateModelValue", e);
1096
+ }, toRef(e, "defaultRows")), a = ref(e.defaultExpanded);
1091
1097
  watch(() => e.defaultExpanded, (e) => {
1092
- C.value = e;
1098
+ a.value = e;
1093
1099
  });
1094
- let T = () => createVNode(NButton, {
1100
+ let o = () => createVNode(NButton, {
1095
1101
  quaternary: !0,
1096
1102
  onClick: () => {
1097
- C.value = !C.value;
1103
+ a.value = !a.value;
1098
1104
  },
1099
1105
  style: "--n-padding: 0 8px"
1100
1106
  }, { default: () => [createVNode(NIcon, {
1101
1107
  size: "20",
1102
1108
  depth: "3"
1103
- }, { default: () => [C.value ? createVNode(ILangCollapse, null, null) : createVNode(ILangExpand, null, null)] })] }), D = (y) => {
1104
- let b = y.split("-")[0];
1105
- return e.supports.some((e) => e.value !== y && e.value.startsWith(b)) ? y : b;
1106
- }, O = `__slots${nanoid(6)}`;
1109
+ }, { default: () => [a.value ? createVNode(ILangCollapse, null, null) : createVNode(ILangExpand, null, null)] })] }), l = (t) => {
1110
+ let n = t.split("-")[0];
1111
+ return e.supports.some((e) => e.value !== t && e.value.startsWith(n)) ? t : n;
1112
+ }, d = `__slots${nanoid(6)}`;
1107
1113
  watch(() => e.supports, (e) => {
1108
- S(e);
1109
- let y = 0;
1110
- for (let [b, x] of e.entries()) {
1111
- let e = D(x.value);
1112
- y = Math.max(y, measureText(e, "monospace")), x[O] = markRaw({
1114
+ i(e);
1115
+ let t = 0;
1116
+ for (let [n, r] of e.entries()) {
1117
+ let e = l(r.value);
1118
+ t = Math.max(t, measureText(e, "monospace")), r[d] = markRaw({
1113
1119
  prefix: () => createVNode("div", { style: {
1114
- width: `${y + 4}px`,
1120
+ width: `${t + 4}px`,
1115
1121
  height: "100%",
1116
1122
  opacity: .5,
1117
1123
  fontSize: "12px",
1118
1124
  fontFamily: "monospace",
1119
- color: x.required ? "var(--color-danger)" : void 0
1125
+ color: r.required ? "var(--color-danger)" : void 0
1120
1126
  } }, [e]),
1121
- suffix: b === 0 ? T : void 0
1127
+ suffix: n === 0 ? o : void 0
1122
1128
  });
1123
1129
  }
1124
1130
  }, { immediate: !0 });
1125
- let k = computed(() => {
1126
- let y = D(e.showLang ?? e.defaultLang);
1127
- return [y, measureText(y, "monospace")];
1128
- }), A = {
1131
+ let f = computed(() => {
1132
+ let t = l(e.showLang ?? e.defaultLang);
1133
+ return [t, measureText(t, "monospace")];
1134
+ }), p = {
1129
1135
  prefix: () => createVNode("div", { style: {
1130
- width: `${k.value[1] + 4}px`,
1136
+ width: `${f.value[1] + 4}px`,
1131
1137
  height: "100%",
1132
1138
  opacity: .5,
1133
1139
  fontSize: "12px",
1134
1140
  fontFamily: "monospace"
1135
- } }, [k.value[0]]),
1141
+ } }, [f.value[0]]),
1136
1142
  suffix: () => createVNode(NButton, {
1137
1143
  quaternary: !0,
1138
- onClick: () => x(e.modelValue, e.disabled),
1144
+ onClick: () => r(e.modelValue, e.disabled),
1139
1145
  style: "--n-padding: 0 8px"
1140
1146
  }, { default: () => [createVNode(NIcon, {
1141
1147
  size: "20",
1142
1148
  depth: "3"
1143
1149
  }, { default: () => [createVNode(ILanguage, null, null)] })] })
1144
- }, j = { "--n-padding-right": "0" };
1150
+ }, m = { "--n-padding-right": "0" };
1145
1151
  return () => {
1146
- let y;
1152
+ let t;
1147
1153
  return e.mode === "dialog" ? createVNode(NInput, {
1148
1154
  value: e.modelValue?.[e.showLang ?? e.defaultLang] ?? e.modelValue?.[e.defaultLang],
1149
- onUpdateValue: b,
1155
+ onUpdateValue: n,
1150
1156
  disabled: e.disabled,
1151
1157
  clearable: !0,
1152
- style: j,
1158
+ style: m,
1153
1159
  type: e.defaultRows > 1 ? "textarea" : "text",
1154
1160
  rows: e.defaultRows
1155
- }, _isSlot$4(A) ? A : { default: () => [A] }) : createVNode(NFlex, {
1161
+ }, _isSlot$4(p) ? p : { default: () => [p] }) : createVNode(NFlex, {
1156
1162
  vertical: !0,
1157
1163
  wrap: !1,
1158
1164
  style: "width: 100%"
1159
- }, _isSlot$4(y = e.supports.map((y, x) => {
1160
- if (!C.value && x !== 0) return;
1161
- let S = x == 0;
1165
+ }, _isSlot$4(t = e.supports.map((t, r) => {
1166
+ if (!a.value && r !== 0) return;
1167
+ let i = r == 0;
1162
1168
  return withDirectives(createVNode(NInput, {
1163
- key: y.value,
1164
- value: e.modelValue?.[y.value],
1165
- onUpdateValue: (e) => b(e, y.value),
1169
+ key: t.value,
1170
+ value: e.modelValue?.[t.value],
1171
+ onUpdateValue: (e) => n(e, t.value),
1166
1172
  disabled: e.disabled,
1167
1173
  clearable: !0,
1168
- style: S ? j : void 0,
1174
+ style: i ? m : void 0,
1169
1175
  type: e.defaultRows > 1 ? "textarea" : "text",
1170
1176
  rows: e.defaultRows
1171
- }, y[O]), [[
1177
+ }, t[d]), [[
1172
1178
  vTooltip,
1173
- y.label,
1179
+ t.label,
1174
1180
  void 0,
1175
1181
  { left: !0 }
1176
1182
  ]]);
1177
- })) ? y : { default: () => [y] });
1183
+ })) ? t : { default: () => [t] });
1178
1184
  };
1179
1185
  }
1180
1186
  }), DataPagination = /* @__PURE__ */ defineComponent({
@@ -1187,6 +1193,10 @@ const DataLocaleInput = /* @__PURE__ */ defineComponent({
1187
1193
  currentPage: { type: Number },
1188
1194
  pageSize: { type: Number },
1189
1195
  page: { type: Object },
1196
+ resetPageOnSizeChange: {
1197
+ type: Boolean,
1198
+ default: !0
1199
+ },
1190
1200
  pageSizes: {
1191
1201
  type: Array,
1192
1202
  default: () => [
@@ -1198,27 +1208,27 @@ const DataLocaleInput = /* @__PURE__ */ defineComponent({
1198
1208
  }
1199
1209
  },
1200
1210
  emits: { change: () => !0 },
1201
- setup(y, { emit: b }) {
1202
- let { t: x } = useI18n(), S = (e) => b("change", {
1203
- pageSize: y.pageSize ?? y.page?.pageSize ?? 0,
1211
+ setup(t, { emit: n }) {
1212
+ let { t: r } = useI18n(), i = (e) => n("change", {
1213
+ pageSize: t.pageSize ?? t.page?.pageSize ?? 0,
1204
1214
  currentPage: e
1205
- }), C = (e) => b("change", {
1215
+ }), a = (e) => n("change", {
1206
1216
  pageSize: e,
1207
- currentPage: y.currentPage ?? y.page?.currentPage ?? 0
1217
+ currentPage: t.resetPageOnSizeChange ? 1 : t.currentPage ?? t.page?.currentPage ?? 1
1208
1218
  });
1209
1219
  return () => createVNode(NPagination, {
1210
- page: y.currentPage ?? y.page?.currentPage,
1211
- itemCount: y.total,
1212
- pageSize: y.pageSize ?? y.page?.pageSize,
1213
- onUpdatePage: S,
1214
- onUpdatePageSize: C,
1215
- pageSizes: y.pageSizes,
1220
+ page: t.currentPage ?? t.page?.currentPage,
1221
+ itemCount: t.total,
1222
+ pageSize: t.pageSize ?? t.page?.pageSize,
1223
+ onUpdatePage: i,
1224
+ onUpdatePageSize: a,
1225
+ pageSizes: t.pageSizes,
1216
1226
  showQuickJumper: !0,
1217
1227
  showSizePicker: !0,
1218
1228
  style: "justify-content: flex-end"
1219
1229
  }, {
1220
- prefix: () => x("common.page.pagination.prefix", { total: y.total }),
1221
- suffix: () => x("common.page.pagination.suffix")
1230
+ prefix: () => r("common.page.pagination.prefix", { total: t.total }),
1231
+ suffix: () => r("common.page.pagination.suffix")
1222
1232
  });
1223
1233
  }
1224
1234
  });
@@ -1241,28 +1251,28 @@ const DataSelection = /* @__PURE__ */ defineComponent({
1241
1251
  "update:modelValue": () => !0,
1242
1252
  clear: () => !0
1243
1253
  },
1244
- setup(y, { emit: b }) {
1245
- let { t: x } = useI18n();
1254
+ setup(t, { emit: n }) {
1255
+ let { t: r } = useI18n();
1246
1256
  return () => {
1247
1257
  let e;
1248
- return y.modelValue !== "selection" && y.count === 0 ? createVNode("div", null, null) : createVNode("div", null, [createVNode(NFlex, {
1258
+ return t.modelValue !== "selection" && t.count === 0 ? createVNode("div", null, null) : createVNode("div", null, [createVNode(NFlex, {
1249
1259
  align: "center",
1250
1260
  "wrap-item": !1
1251
1261
  }, { default: () => [
1252
- createVNode("span", null, [x("common.page.selection.countText", { count: y.count })]),
1262
+ createVNode("span", null, [r("common.page.selection.countText", { count: t.count })]),
1253
1263
  createVNode(NButton, {
1254
1264
  text: !0,
1255
1265
  type: "primary",
1256
1266
  onClick: () => {
1257
- b("update:modelValue", y.modelValue === "all" ? "selection" : "all");
1267
+ n("update:modelValue", t.modelValue === "all" ? "selection" : "all");
1258
1268
  }
1259
- }, { default: () => [y.modelValue === "all" ? x("common.page.selection.view") : x("common.page.selection.back")] }),
1269
+ }, { default: () => [t.modelValue === "all" ? r("common.page.selection.view") : r("common.page.selection.back")] }),
1260
1270
  createVNode(NButton, {
1261
1271
  text: !0,
1262
1272
  onClick: () => {
1263
- b("clear"), b("update:modelValue", "all");
1273
+ n("clear"), n("update:modelValue", "all");
1264
1274
  }
1265
- }, _isSlot$3(e = x("common.page.selection.clear")) ? e : { default: () => [e] })
1275
+ }, _isSlot$3(e = r("common.page.selection.clear")) ? e : { default: () => [e] })
1266
1276
  ] })]);
1267
1277
  };
1268
1278
  }
@@ -1270,13 +1280,13 @@ const DataSelection = /* @__PURE__ */ defineComponent({
1270
1280
  function _isSlot$2(e) {
1271
1281
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
1272
1282
  }
1273
- function _map(e, y) {
1283
+ function _map(e, t) {
1274
1284
  return (e ?? []).map((e) => {
1275
- let b = {
1285
+ let n = {
1276
1286
  csvTitle: e.exportTitle,
1277
1287
  ...e,
1278
1288
  title: () => {
1279
- let y = toValue(e.title), b = y && withDirectives(createVNode("div", null, [y]), [[
1289
+ let t = toValue(e.title), n = t && withDirectives(createVNode("div", null, [t]), [[
1280
1290
  vTooltip,
1281
1291
  () => toValue(e.title),
1282
1292
  void 0,
@@ -1287,44 +1297,41 @@ function _map(e, y) {
1287
1297
  wrap: !1,
1288
1298
  inline: !0,
1289
1299
  style: "max-width: 100%"
1290
- }, { default: () => [b, createVNode(NTooltip, null, {
1300
+ }, { default: () => [n, createVNode(NTooltip, null, {
1291
1301
  default: toValue(e.tooltip),
1292
1302
  trigger: () => createVNode(NButton, {
1293
1303
  text: !0,
1294
1304
  style: "font-size: 1.25em; opacity: 0.8"
1295
1305
  }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IHelp, null, null)] })] })
1296
- })] }) : b;
1306
+ })] }) : n;
1297
1307
  }
1298
1308
  };
1299
- if (e.children?.length) b.children = _map(e.children, y);
1309
+ if (e.children?.length) n.children = _map(e.children, t);
1300
1310
  else {
1301
- e.hidden !== !0 && (b.width ??= 100, y.value += Number(b.width));
1302
- let x = e.render ?? ((e) => e);
1303
- e.ellipsis !== !1 && (b.ellipsis = !1, b.render = (...y) => {
1304
- let b = x(...y);
1305
- return b && (typeof b == "string" && ((function() {
1306
- return b;
1307
- })(), b = createVNode("span", null, [b])), e.ellipsis?.expandable ? createVNode(NPerformantEllipsis, mergeProps({
1308
- expandTrigger: "click",
1309
- lineClamp: 1,
1310
- tooltip: { style: {
1311
- maxWidth: "61.8vw",
1312
- wordBreak: "break-all"
1313
- } }
1314
- }, typeof e.ellipsis == "boolean" ? {} : e.ellipsis), _isSlot$2(b) ? b : { default: () => [b] }) : withDirectives(b, [[
1311
+ e.hidden !== !0 && (n.width ??= 100, t.value += Number(n.width));
1312
+ let r = e.render ?? ((e) => e);
1313
+ e.ellipsis !== !1 && (n.ellipsis = !1, n.render = (...t) => {
1314
+ let n = r(...t);
1315
+ return n && (isVNode(n) || ((function() {
1316
+ return n;
1317
+ })(), n = createVNode("span", null, [n])), withDirectives(n, [[
1315
1318
  vTooltip,
1316
- () => e.ellipsisTooltip ? e.ellipsisTooltip(...y) : b,
1319
+ () => e.ellipsisTooltip ? e.ellipsisTooltip(...t) : n,
1317
1320
  void 0,
1318
- { auto: !0 }
1321
+ {
1322
+ auto: !0,
1323
+ expandable: e.ellipsisExpandable,
1324
+ [`ell${e.ellipsis}`]: !0
1325
+ }
1319
1326
  ]]));
1320
- }, e.ellipsisTooltip === !0 && (b.ellipsisTooltip = x)), Object.assign(b, {
1327
+ }, e.ellipsisTooltip === !0 && (n.ellipsisTooltip = r)), Object.assign(n, {
1321
1328
  resizable: e.resizable !== !1,
1322
1329
  sorter: e.sortable,
1323
1330
  type: ["selection", "expand"].includes(e.type) ? e.type : void 0,
1324
- disabled: e.selectable ? (y) => e.selectable(y) === !1 : void 0
1331
+ disabled: e.selectable ? (t) => e.selectable(t) === !1 : void 0
1325
1332
  });
1326
1333
  }
1327
- return b.key === "$actions" && (b.cellProps ??= () => ({ style: { padding: "0 2px" } })), b;
1334
+ return n.key === "$actions" && (n.cellProps ??= () => ({ style: { padding: "0 2px" } })), n;
1328
1335
  }).filter((e) => e?.hidden !== !0);
1329
1336
  }
1330
1337
  const DataTable = /* @__PURE__ */ defineComponent({
@@ -1353,8 +1360,14 @@ const DataTable = /* @__PURE__ */ defineComponent({
1353
1360
  ],
1354
1361
  default: !0
1355
1362
  },
1363
+ highlightColor: String,
1364
+ appear: {
1365
+ type: String,
1366
+ default: "normal"
1367
+ },
1356
1368
  rowClassName: dataTableProps.rowClassName,
1357
- rowProps: dataTableProps.rowProps
1369
+ rowProps: dataTableProps.rowProps,
1370
+ maxHeight: [String, Number]
1358
1371
  },
1359
1372
  emits: [
1360
1373
  "sort",
@@ -1362,113 +1375,137 @@ const DataTable = /* @__PURE__ */ defineComponent({
1362
1375
  "custom",
1363
1376
  "highlight"
1364
1377
  ],
1365
- setup(e, { slots: x, emit: S, expose: C }) {
1366
- let { keyField: w } = inject(PAGE_INJECTION), T = useMergedClsPrefix(), D = `${T.value}-datatable`;
1367
- useStyle("-datatable", style, T);
1368
- let O = useTemplateRef("table-ref"), k = ({ sortField: e, sortOrder: y } = {}, b) => {
1369
- e == b?.sortField && y == b?.sortOrder || O.value?.sort(e, y ? y + "end" : !1);
1378
+ setup(e, { slots: r, emit: i, expose: a }) {
1379
+ let { keyField: o } = inject(PAGE_INJECTION), s = useMergedClsPrefix(), l = `${s.value}-datatable`;
1380
+ useStyle("-datatable", style, s);
1381
+ let d = useTemplateRef("table-ref"), f = ({ sortField: e, sortOrder: t } = {}, n) => {
1382
+ e == n?.sortField && t == n?.sortOrder || d.value?.sort(e, t ? t + "end" : !1);
1370
1383
  };
1371
- watch(() => ({ ...e.sorter }), k, { deep: !0 });
1372
- let j = computed(() => {
1373
- let y = e.keyField || w || "key";
1374
- return (e) => e[y];
1375
- }), M = shallowRef({
1384
+ watch(() => ({ ...e.sorter }), f, { deep: !0 });
1385
+ let p = computed(() => {
1386
+ let t = e.keyField || o || "key";
1387
+ return (e) => e[t];
1388
+ }), g = shallowRef({
1376
1389
  cache: [],
1377
1390
  scrollToView(...e) {
1378
1391
  this.cache.push(e);
1379
1392
  }
1380
1393
  });
1381
- until(O).changed().then(() => {
1382
- k(e.sorter);
1383
- let y = M.value.cache;
1384
- M.value = O.value, M.value.scrollToView = (y) => {
1385
- let b = e.data.findIndex((e) => j.value(e) === y);
1386
- if (b === -1) return;
1387
- let x = O.value.$el.querySelector(`.${D}__row-marker:nth-child(${b + 1})`);
1388
- O.value.scrollTo({
1389
- top: x.offsetTop,
1394
+ until(d).changed().then(() => {
1395
+ f(e.sorter);
1396
+ let t = g.value.cache;
1397
+ g.value = d.value, g.value.scrollToView = (t) => {
1398
+ let n = e.data.findIndex((e) => p.value(e) === t);
1399
+ if (n === -1) return;
1400
+ let r = d.value.$el.querySelector(`.${l}__row-marker:nth-child(${n + 1})`);
1401
+ d.value.scrollTo({
1402
+ top: r.offsetTop,
1390
1403
  behavior: "smooth"
1391
1404
  });
1392
1405
  };
1393
- for (let e of y) M.value.scrollToView(...e);
1394
- }), C(toReactive(M));
1395
- let N = ref(0), P = shallowRef([]);
1406
+ for (let e of t) g.value.scrollToView(...e);
1407
+ }), a(toReactive(g));
1408
+ let _ = ref(0), v = shallowRef([]);
1396
1409
  watch(() => e.columns, () => {
1397
- N.value = 0, P.value = _map(e.columns, N);
1410
+ _.value = 0, v.value = _map(e.columns, _);
1398
1411
  }, {
1399
1412
  immediate: !0,
1400
1413
  deep: 1
1401
1414
  });
1402
- let L = ref();
1415
+ let y = ref();
1403
1416
  watch(() => e.highlight, (e) => {
1404
- L.value = typeof e == "boolean" ? null : e ?? null;
1417
+ y.value = typeof e == "boolean" ? null : e ?? null;
1405
1418
  }, { immediate: !0 });
1406
- let R = computed(() => (y, b) => [
1407
- e.rowClassName?.(y, b) || "",
1408
- `${D}__row-marker`,
1409
- L.value != null && j.value(y) === L.value ? `${D}__row-highlight` : ""
1410
- ].join(" ")), z = computed(() => (y, b) => {
1411
- let x = e.rowProps?.(y, b);
1419
+ let b = computed(() => (t, n) => [
1420
+ e.rowClassName?.(t, n) || "",
1421
+ `${l}__row-marker`,
1422
+ y.value != null && p.value(t) === y.value ? `${l}__row-highlight` : ""
1423
+ ].join(" ")), C = computed(() => (t, n) => {
1424
+ let r = e.rowProps?.(t, n);
1412
1425
  return {
1413
- ...x,
1414
- onClick: (b) => {
1415
- let C = j.value(y);
1416
- e.highlight === !0 && (L.value = C), S("highlight", C), x?.onClick?.(b);
1426
+ ...r,
1427
+ onClick: (n) => {
1428
+ let a = p.value(t);
1429
+ e.highlight === !0 && (y.value = a), i("highlight", a), r?.onClick?.(n);
1417
1430
  }
1418
1431
  };
1419
- }), B = (y) => {
1432
+ }), w = (t) => {
1420
1433
  if (e.sorter) {
1421
- let { sortField: b, sortOrder: x } = e.sorter;
1422
- if (y?.columnKey == b && (y?.order ? y.order === x + "end" : !x)) return;
1434
+ let { sortField: n, sortOrder: r } = e.sorter;
1435
+ if (t?.columnKey == n && (t?.order ? t.order === r + "end" : !r)) return;
1423
1436
  }
1424
- S("sort", {
1425
- sortField: y?.order ? y?.columnKey : void 0,
1426
- sortOrder: y?.order ? y.order.replace("end", "") : void 0
1437
+ i("sort", {
1438
+ sortField: t?.order ? t?.columnKey : void 0,
1439
+ sortOrder: t?.order ? t.order.replace("end", "") : void 0
1427
1440
  });
1428
- }, U = (e) => {
1429
- S("select", e);
1430
- }, G = (e, y, b) => {
1431
- S("custom", {
1432
- key: b.key,
1441
+ }, T = (e) => {
1442
+ i("select", e);
1443
+ }, E = (e, t, n) => {
1444
+ i("custom", {
1445
+ key: n.key,
1433
1446
  width: e
1434
1447
  });
1435
1448
  };
1436
1449
  return () => createVNode(NDataTable, {
1437
- class: D,
1450
+ class: [l, e.appear === "sticky" ? `${l}--sticky` : ""],
1438
1451
  data: e.data,
1439
- columns: P.value,
1440
- rowKey: j.value,
1452
+ columns: v.value,
1453
+ rowKey: p.value,
1441
1454
  tableLayout: "fixed",
1442
1455
  ref: "table-ref",
1443
- scrollX: N.value,
1444
- rowClassName: R.value,
1445
- rowProps: z.value,
1456
+ scrollX: _.value,
1457
+ rowClassName: b.value,
1458
+ rowProps: C.value,
1446
1459
  checkedRowKeys: e.selectedKeys,
1447
- onUpdateSorter: B,
1448
- onUpdateCheckedRowKeys: U,
1449
- onUnstableColumnResize: G
1450
- }, _isSlot$2(x) ? x : { default: () => [x] });
1460
+ style: { "--n-tr-highlight-color": e.highlightColor },
1461
+ maxHeight: e.maxHeight ?? (e.appear === "sticky" ? "auto" : void 0),
1462
+ onUpdateSorter: w,
1463
+ onUpdateCheckedRowKeys: T,
1464
+ onUnstableColumnResize: E
1465
+ }, _isSlot$2(r) ? r : { default: () => [r] });
1451
1466
  }
1452
1467
  });
1453
- var style = /* @__PURE__ */ cB("datatable", [cE("row-highlight", [c("& > td", { backgroundColor: "var(--n-tr-highlight-color, var(--n-merged-border-color)) !important" })])]);
1454
- function useDataTableDrag(e, { data: y, onSort: b,...x }) {
1455
- watch([ref(y), e], async ([e, y]) => {
1468
+ var style = /* @__PURE__ */ cB("datatable", [cE("row-highlight", [c("& > td", { backgroundColor: "var(--n-tr-highlight-color, var(--n-merged-border-color)) !important" })]), cM("sticky", [
1469
+ c(".n-data-table-base-table-header", {
1470
+ position: "sticky",
1471
+ top: "-1px",
1472
+ zIndex: 10,
1473
+ overflowY: "hidden"
1474
+ }),
1475
+ c(".n-data-table-base-table-body", { overflow: "initial" }, [c("& > .n-scrollbar-container", {
1476
+ overflow: "initial",
1477
+ overflowX: "scroll"
1478
+ }), c("& > .n-scrollbar-rail--horizontal", {
1479
+ position: "sticky",
1480
+ bottom: "0"
1481
+ })]),
1482
+ c(".n-data-table-base-table:has(.n-data-table-empty) .n-data-table-base-table-header", {
1483
+ scrollbarWidth: "thin",
1484
+ overflowX: "auto"
1485
+ }),
1486
+ c(".n-data-table-td > *", {
1487
+ verticalAlign: "middle",
1488
+ contentVisibility: "auto"
1489
+ })
1490
+ ])]);
1491
+ function useDataTableDrag(e, { data: t, onSort: n, ...r }) {
1492
+ watch([ref(t), e], async ([e, t]) => {
1456
1493
  if (e.length === 0) return;
1457
1494
  await nextTick();
1458
- let S = unrefElement(y)?.querySelector(".n-data-table-base-table-body .n-data-table-tbody");
1459
- if (!S) return;
1460
- let C = Sortable$1.create(S, {
1495
+ let i = unrefElement(t)?.querySelector(".n-data-table-base-table-body .n-data-table-tbody");
1496
+ if (!i) return;
1497
+ let a = Sortable$1.create(i, {
1461
1498
  animation: 150,
1462
- ...x,
1499
+ ...r,
1463
1500
  onSort(e) {
1464
- b({
1501
+ n({
1465
1502
  from: e.oldIndex,
1466
1503
  to: e.newIndex
1467
1504
  });
1468
1505
  }
1469
1506
  });
1470
1507
  return () => {
1471
- C.destroy();
1508
+ a.destroy();
1472
1509
  };
1473
1510
  }, { immediate: !0 });
1474
1511
  }
@@ -1527,39 +1564,39 @@ const NRadios = /* @__PURE__ */ defineComponent({
1527
1564
  "update:modelValue": () => !0,
1528
1565
  updateModelValue: () => !0
1529
1566
  },
1530
- setup(y, { emit: b }) {
1531
- let { t: x } = useI18n(), S = computed(() => y.default === !1 ? "" : y.default === !0 ? x("common.all") : typeof y.default == "string" ? y.default : y.default?.[y.labelField] ?? x("common.all")), C = computed(() => y.type === "button-primary" ? {
1567
+ setup(t, { emit: n }) {
1568
+ let { t: r } = useI18n(), i = computed(() => t.default === !1 ? "" : t.default === !0 ? r("common.all") : typeof t.default == "string" ? t.default : t.default?.[t.labelField] ?? r("common.all")), a = computed(() => t.type === "button-primary" ? {
1532
1569
  "--n-button-color-active": "var(--color-primary)",
1533
1570
  "--n-button-text-color-active": "var(--color-base)"
1534
- } : {}), w = (e) => {
1535
- b("update:modelValue", e), b("updateModelValue", e);
1571
+ } : {}), o = (e) => {
1572
+ n("update:modelValue", e), n("updateModelValue", e);
1536
1573
  };
1537
1574
  return () => {
1538
- let e = y.type === "button" ? NRadioButton : NRadio, b = createVNode(Fragment, null, [y.default ? createVNode(e, { value: typeof y.default == "object" ? y.default?.[y.valueField] : null }, { default: () => [S.value] }) : void 0, y.options?.map((b) => {
1539
- let x = typeof b[y.labelField] == "string" ? b[y.labelField] : b[y.labelField]?.();
1575
+ let e = t.type === "button" ? NRadioButton : NRadio, n = createVNode(Fragment, null, [t.default ? createVNode(e, { value: typeof t.default == "object" ? t.default?.[t.valueField] : null }, { default: () => [i.value] }) : void 0, t.options?.map((n) => {
1576
+ let r = typeof n[t.labelField] == "string" ? n[t.labelField] : n[t.labelField]?.();
1540
1577
  return createVNode(e, {
1541
- value: b[y.valueField],
1542
- disabled: b[y.disabledField],
1543
- style: y.padding ? {
1544
- paddingLeft: y.padding,
1545
- paddingRight: y.padding
1578
+ value: n[t.valueField],
1579
+ disabled: n[t.disabledField],
1580
+ style: t.padding ? {
1581
+ paddingLeft: t.padding,
1582
+ paddingRight: t.padding
1546
1583
  } : {}
1547
- }, { default: () => [b.tip ? createVNode(NTooltip, null, {
1548
- default: () => b.tip,
1549
- trigger: () => x
1550
- }) : x] });
1584
+ }, { default: () => [n.tip ? createVNode(NTooltip, null, {
1585
+ default: () => n.tip,
1586
+ trigger: () => r
1587
+ }) : r] });
1551
1588
  })]);
1552
1589
  return createVNode(NRadioGroup, {
1553
- style: y.vertical ? {
1554
- ...C.value,
1590
+ style: t.vertical ? {
1591
+ ...a.value,
1555
1592
  padding: "6px 0 0"
1556
- } : C.value,
1557
- value: y.modelValue,
1558
- onUpdateValue: w
1559
- }, { default: () => [y.type === "radio" ? createVNode(NFlex, {
1560
- size: y.vertical ? void 0 : "small",
1561
- vertical: y.vertical
1562
- }, _isSlot$1(b) ? b : { default: () => [b] }) : b] });
1593
+ } : a.value,
1594
+ value: t.modelValue,
1595
+ onUpdateValue: o
1596
+ }, { default: () => [t.type === "radio" ? createVNode(NFlex, {
1597
+ size: t.vertical ? void 0 : "small",
1598
+ vertical: t.vertical
1599
+ }, _isSlot$1(n) ? n : { default: () => [n] }) : n] });
1563
1600
  };
1564
1601
  }
1565
1602
  });
@@ -1630,281 +1667,273 @@ const DtUserDept = /* @__PURE__ */ defineComponent({
1630
1667
  type: Function,
1631
1668
  default: () => []
1632
1669
  },
1633
- valueField: { type: String }
1670
+ valueField: { type: String },
1671
+ renderUserInfo: Function
1634
1672
  },
1635
1673
  emits: ["update:modelValue", "updateModelValue"],
1636
- setup(y, { emit: b, attrs: x }) {
1637
- let { t: S } = useI18n(), { localeRef: C } = useLocale("Popconfirm"), w = computed(() => y.valueField || (y.type === "user" ? "username" : "code")), D = computed(() => {
1638
- if (y.multiple) return y.modelValue || [];
1639
- let e = y.modelValue?.trim();
1674
+ setup(t, { emit: n, attrs: r }) {
1675
+ let { t: i } = useI18n(), { localeRef: a } = useLocale("Popconfirm"), o = computed(() => t.valueField || (t.type === "user" ? "username" : "code")), s = computed(() => {
1676
+ if (t.multiple) return t.modelValue || [];
1677
+ let e = t.modelValue?.trim();
1640
1678
  return e ? [e] : [];
1641
- }), O = /* @__PURE__ */ new Map(), k = computed(() => (O.clear(), y.users.map((e) => (e = reactive(e), e.label = e.nickname + e.username, e.value = e[w.value], e.type = "user", O.set(e[w.value], e), e)))), A = shallowRef([]);
1642
- watch(() => y.depts, (e) => {
1679
+ }), d = /* @__PURE__ */ new Map(), f = computed(() => (d.clear(), t.users.map((e) => (e = reactive(e), e.label = e.nickname + e.username, e.value = e[o.value], e.type = "user", d.set(e[o.value], e), e)))), p = shallowRef([]);
1680
+ watch(() => t.depts, (e) => {
1643
1681
  walkTree(e, (e) => {
1644
- e.label = e.name, e.value = e[w.value], e.type = "dept", e.children?.length || delete e.children;
1645
- }), A.value = flattenTree(e);
1682
+ e.label = e.name, e.value = e[o.value], e.type = "dept", e.children?.length || delete e.children;
1683
+ }), p.value = flattenTree(e);
1646
1684
  }, { immediate: !0 });
1647
- let j = computed(() => [
1648
- ...y.depts,
1649
- ...y.groups.map((e) => ({
1685
+ let m = computed(() => [
1686
+ ...t.depts,
1687
+ ...t.groups.map((e) => ({
1650
1688
  label: e.name,
1651
1689
  value: e.code,
1652
1690
  type: "group"
1653
1691
  })),
1654
- ...k.value
1655
- ]), L = ref([]), R = ref(), z = async (e) => {
1656
- let b = await (e.type === "group" ? y.getUsersByGroup(e.value) : y.getUsersByDept(e.value));
1657
- for (let e of k.value) e.disabled = !0;
1658
- R.value = [...e.type === "dept" ? e.children ?? [] : [], ...b.map((e) => {
1659
- let y = O.get(e[w.value]);
1660
- return y && (y.disabled = !1), {
1692
+ ...f.value
1693
+ ]), g = ref([]), _ = ref(), C = async (e) => {
1694
+ let n = await (e.type === "group" ? t.getUsersByGroup(e.value) : t.getUsersByDept(e.value));
1695
+ for (let e of f.value) e.disabled = !0;
1696
+ _.value = [...e.type === "dept" ? e.children ?? [] : [], ...n.map((e) => {
1697
+ let t = d.get(e[o.value]);
1698
+ return t && (t.disabled = !1), {
1661
1699
  ...e,
1662
1700
  label: e.nickname + e.username,
1663
- value: e[w.value],
1701
+ value: e[o.value],
1664
1702
  type: "user"
1665
1703
  };
1666
1704
  })];
1667
- }, B = /* @__PURE__ */ new WeakMap(), V = (e, b, x) => {
1668
- let C;
1669
- if (y.type === "dept") return createVNode(NTree, {
1670
- data: y.depts,
1705
+ }, w = /* @__PURE__ */ new WeakMap(), T = (e, n, r) => {
1706
+ let a;
1707
+ if (t.type === "dept") return createVNode(NTree, {
1708
+ data: t.depts,
1671
1709
  keyField: "value",
1672
1710
  labelField: "name",
1673
- defaultExpandAll: y.defaultExpandAll,
1674
- checkable: y.multiple,
1675
- selectable: !y.multiple,
1711
+ defaultExpandAll: t.defaultExpandAll,
1712
+ checkable: t.multiple,
1713
+ selectable: !t.multiple,
1676
1714
  multiple: !1,
1677
1715
  blockLine: !0,
1678
1716
  checkOnClick: !0,
1679
- pattern: x,
1680
- filter: (e, y) => y.label.includes(e) || y.value.includes(e),
1681
- checkedKeys: y.multiple ? e : void 0,
1682
- selectedKeys: y.multiple ? void 0 : e,
1717
+ pattern: r,
1718
+ filter: (e, t) => t.label.includes(e) || t.value.includes(e),
1719
+ checkedKeys: t.multiple ? e : void 0,
1720
+ selectedKeys: t.multiple ? void 0 : e,
1683
1721
  onUpdateCheckedKeys: (e) => {
1684
- y.max && e?.length > y.max || b(e);
1722
+ t.max && e?.length > t.max || n(e);
1685
1723
  },
1686
1724
  onUpdateSelectedKeys: (e) => {
1687
- b(e);
1725
+ n(e);
1688
1726
  }
1689
1727
  }, null);
1690
- let w = e ? B.get(e) : /* @__PURE__ */ new Set();
1691
- if (e && !w && (w = new Set(e), B.set(e, w)), R.value === !1) return createVNode(NSpin, { show: !0 }, null);
1692
- let E = R.value || j.value;
1693
- x = x?.trim(), x && (E = E?.filter((e) => e.label.includes(x) || e.value.includes(x)));
1694
- let D = L.value;
1695
- return createVNode(Fragment, null, [createVNode("div", { style: "margin: 12px 16px; display: flex; justify-content: space-between; align-items: center" }, [D.length > 0 ? createVNode(Fragment, null, [createVNode("span", { style: "display: flex; align-items: center" }, [
1696
- D.length >= 2 ? D.at(-2).label : S("common.all"),
1728
+ let o = e ? w.get(e) : /* @__PURE__ */ new Set();
1729
+ if (e && !o && (o = new Set(e), w.set(e, o)), _.value === !1) return createVNode(NSpin, { show: !0 }, null);
1730
+ let s = _.value || m.value;
1731
+ r = r?.trim(), r && (s = s?.filter((e) => e.label.includes(r) || e.value.includes(r)));
1732
+ let u = g.value;
1733
+ return createVNode(Fragment, null, [createVNode("div", { style: "margin: 12px 16px; display: flex; justify-content: space-between; align-items: center" }, [u.length > 0 ? createVNode(Fragment, null, [createVNode("span", { style: "display: flex; align-items: center" }, [
1734
+ u.length >= 2 ? u.at(-2).label : i("common.all"),
1697
1735
  createVNode("span", { style: "padding: 0 4px" }, [createVNode(IRight, null, null)]),
1698
- D.at(-1).label
1736
+ u.at(-1).label
1699
1737
  ]), createVNode(NButton, {
1700
1738
  text: !0,
1701
1739
  type: "warning",
1702
1740
  onClick: () => {
1703
- if (D.pop(), R.value = D.length > 0 ? !1 : void 0, D.length > 0) z(D.at(-1));
1704
- else for (let e of k.value) e.disabled = !1;
1741
+ if (u.pop(), _.value = u.length > 0 ? !1 : void 0, u.length > 0) C(u.at(-1));
1742
+ else for (let e of f.value) e.disabled = !1;
1705
1743
  }
1706
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(ILeft, null, null)] }), S("common.back")] })]) : createVNode("span", null, [S("common.all")])]), E?.length ? createVNode(NList, {
1744
+ }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(ILeft, null, null)] }), i("common.back")] })]) : createVNode("span", null, [i("common.all")])]), s?.length ? createVNode(NList, {
1707
1745
  showDivider: !1,
1708
1746
  style: "padding: 0 16px"
1709
- }, _isSlot(C = E.map((x) => {
1710
- let S, C;
1747
+ }, _isSlot(a = s.map((r) => {
1748
+ let i, a;
1711
1749
  return createVNode(NListItem, {
1712
- key: x.type + "_" + x.value,
1750
+ key: r.type + "_" + r.value,
1713
1751
  style: "padding: 6px 0"
1714
- }, { default: () => [x.type === "user" ? y.multiple ? createVNode(NCheckbox, {
1715
- checked: w.has(x.value) || !1,
1716
- onUpdateChecked: (S) => {
1717
- if (S && y.max && e.length >= y.max) return;
1718
- let C = [...e || []];
1719
- if (S) C.push(x.value);
1752
+ }, { default: () => [r.type === "user" ? t.multiple ? createVNode(NCheckbox, {
1753
+ checked: o.has(r.value) || !1,
1754
+ onUpdateChecked: (i) => {
1755
+ if (i && t.max && e.length >= t.max) return;
1756
+ let a = [...e || []];
1757
+ if (i) a.push(r.value);
1720
1758
  else {
1721
- let e = C.indexOf(x.value);
1722
- C.splice(e, 1);
1759
+ let e = a.indexOf(r.value);
1760
+ a.splice(e, 1);
1723
1761
  }
1724
- b(C);
1762
+ n(a);
1725
1763
  },
1726
1764
  style: "margin-left: 3px"
1727
- }, _isSlot(S = renderUsers([x], {
1765
+ }, _isSlot(i = renderUsers([r], {
1728
1766
  max: 1,
1729
1767
  size: 24,
1730
1768
  placement: "right",
1731
1769
  tooltip: !1,
1732
- username: !0
1733
- })) ? S : { default: () => [S] }) : createVNode(NRadio, {
1734
- checked: w.has(x.value) || !1,
1770
+ username: !0,
1771
+ renderInfo: t.renderUserInfo
1772
+ })) ? i : { default: () => [i] }) : createVNode(NRadio, {
1773
+ checked: o.has(r.value) || !1,
1735
1774
  onUpdateChecked: (e) => {
1736
- b(e ? [x.value] : []);
1775
+ n(e ? [r.value] : []);
1737
1776
  },
1738
1777
  style: "margin-left: 3px;"
1739
- }, _isSlot(C = renderUsers([x], {
1778
+ }, _isSlot(a = renderUsers([r], {
1740
1779
  max: 1,
1741
1780
  size: 24,
1742
1781
  placement: "right",
1743
1782
  tooltip: !1,
1744
- username: !0
1745
- })) ? C : { default: () => [C] }) : createVNode("div", {
1783
+ username: !0,
1784
+ renderInfo: t.renderUserInfo
1785
+ })) ? a : { default: () => [a] }) : createVNode("div", {
1746
1786
  onClick: () => {
1747
- R.value = !1, L.value.push(x), z(x);
1787
+ _.value = !1, g.value.push(r), C(r);
1748
1788
  },
1749
1789
  style: "cursor: pointer; display: flex; align-items: center; gap: 8px"
1750
1790
  }, [
1751
- x.type === "dept" ? createVNode(NAvatar, {
1791
+ r.type === "dept" ? createVNode(NAvatar, {
1752
1792
  size: 24,
1753
1793
  style: "background-color: red"
1754
1794
  }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IDept, null, null)] })] }) : createVNode(NAvatar, {
1755
1795
  size: 24,
1756
1796
  style: "background-color: green"
1757
1797
  }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IGroup, null, null)] })] }),
1758
- createVNode("span", { style: "flex: 1 1 auto" }, [x.label]),
1798
+ createVNode("span", { style: "flex: 1 1 auto" }, [r.label]),
1759
1799
  createVNode(NIcon, null, { default: () => [createVNode(IRight, null, null)] })
1760
1800
  ])] });
1761
- })) ? C : { default: () => [C] }) : createVNode(NEmpty, null, null)]);
1762
- }, U = () => createVNode(NEmpty, { description: y.placeholder }, null), W = ({ option: e }) => e.type === "user" ? createVNode("span", null, [e.nickname, createVNode("span", { style: {
1801
+ })) ? a : { default: () => [a] }) : createVNode(NEmpty, null, null)]);
1802
+ }, E = () => createVNode(NEmpty, { description: t.placeholder }, null), D = ({ option: e }) => e.type === "user" ? createVNode("span", null, [e.nickname, createVNode("span", { style: {
1763
1803
  opacity: .4,
1764
1804
  marginLeft: "8px"
1765
- } }, [e.username])]) : createVNode("span", null, [e.label]), G = (e, b, x, S, C) => createVNode(NTransfer, mergeProps(e, {
1766
- key: y.type,
1767
- options: b,
1768
- renderSourceList: ({ onCheck: e, pattern: y }) => V(x, e, y),
1769
- renderTargetList: y.placeholder?.trim() && !y.modelValue?.length ? U : void 0,
1770
- renderTargetLabel: W,
1771
- sourceFilterable: y.filterable,
1772
- size: y.size,
1773
- disabled: y.disabled || void 0,
1774
- value: x,
1775
- filter: (e, y) => y.label.includes(e) || y.value.includes(e),
1805
+ } }, [e.username])]) : createVNode("span", null, [e.label]), k = (e, n, r, i, a) => createVNode(NTransfer, mergeProps(e, {
1806
+ key: t.type,
1807
+ options: n,
1808
+ renderSourceList: ({ onCheck: e, pattern: t }) => T(r, e, t),
1809
+ renderTargetList: t.placeholder?.trim() && !t.modelValue?.length ? E : void 0,
1810
+ renderTargetLabel: D,
1811
+ sourceFilterable: t.filterable,
1812
+ size: t.size,
1813
+ disabled: t.disabled || void 0,
1814
+ value: r,
1815
+ filter: (e, t) => t.label.includes(e) || t.value.includes(e),
1776
1816
  "onUpdate:value": (e) => {
1777
- S?.(e);
1817
+ i?.(e);
1778
1818
  },
1779
1819
  onUpdateValue: (e) => {
1780
- C?.(e);
1820
+ a?.(e);
1781
1821
  }
1782
- }), null), K = ({ option: e, handleClose: b }) => createVNode(NTag, {
1783
- type: y.type === "user" ? "primary" : "info",
1822
+ }), null), A = ({ option: e, handleClose: n }) => createVNode(NTag, {
1823
+ type: t.type === "user" ? "primary" : "info",
1784
1824
  closable: !0,
1785
1825
  onMousedown: (e) => e.preventDefault(),
1786
1826
  onClose: (e) => {
1787
- e.stopPropagation(), b();
1827
+ e.stopPropagation(), n();
1788
1828
  }
1789
- }, { default: () => [e.label] }), q = (e, x = "updateModelValue") => {
1790
- y.multiple ? b(x, e) : b(x, e?.[0]);
1791
- }, J = ref(), Y = !1, X = useDialog(), Z = () => {
1792
- if (Y) return;
1793
- Y = !0;
1794
- let e = shallowRef([...D.value || []]);
1795
- X.create({
1829
+ }, { default: () => [e.label] }), j = (e, r = "updateModelValue") => {
1830
+ t.multiple ? n(r, e) : n(r, e?.[0]);
1831
+ }, M = ref(), N = !1, P = useDialog(), F = () => {
1832
+ if (N) return;
1833
+ N = !0;
1834
+ let e = shallowRef([...s.value || []]);
1835
+ P.create({
1796
1836
  showIcon: !1,
1797
- title: y.placeholder,
1837
+ title: t.placeholder,
1798
1838
  style: { width: "700px" },
1799
- content: () => createVNode("div", { style: { height: "550px" } }, [G({ style: { height: "100%" } }, y.type === "user" ? k.value : A.value, e.value, (y) => e.value = y)]),
1800
- positiveText: C.value.positiveText,
1801
- negativeText: C.value.negativeText,
1839
+ content: () => createVNode("div", { style: { height: "550px" } }, [k({ style: { height: "100%" } }, t.type === "user" ? f.value : p.value, e.value, (t) => e.value = t)]),
1840
+ positiveText: a.value.positiveText,
1841
+ negativeText: a.value.negativeText,
1802
1842
  onPositiveClick() {
1803
- q(e.value, "update:modelValue"), q(e.value, "updateModelValue");
1843
+ j(e.value, "update:modelValue"), j(e.value, "updateModelValue");
1804
1844
  },
1805
1845
  onAfterLeave() {
1806
1846
  nextTick(() => {
1807
- J.value?.blur(), Y = !1;
1847
+ M.value?.blur(), N = !1;
1808
1848
  });
1809
1849
  }
1810
1850
  });
1811
- }, $ = { arrow: () => createVNode(NIcon, null, { default: () => [y.type === "user" ? createVNode(IGroup, null, null) : createVNode(IDept, null, null)] }) };
1851
+ }, I = { arrow: () => createVNode(NIcon, null, { default: () => [t.type === "user" ? createVNode(IGroup, null, null) : createVNode(IDept, null, null)] }) };
1812
1852
  return () => {
1813
- let e = y.type === "user" ? k.value : A.value;
1814
- if (y.selectType === "dropdown" && y.type === "dept") return createVNode(NTreeSelect, {
1853
+ let e = t.type === "user" ? f.value : p.value;
1854
+ if (t.selectType === "dropdown" && t.type === "dept") return createVNode(NTreeSelect, {
1815
1855
  options: e,
1816
1856
  keyField: "value",
1817
- defaultExpandAll: y.defaultExpandAll,
1818
- checkable: y.multiple,
1819
- multiple: y.multiple,
1820
- filter: (e, y) => y.label.includes(e) || y.value.includes(e),
1821
- value: y.modelValue,
1857
+ defaultExpandAll: t.defaultExpandAll,
1858
+ checkable: t.multiple,
1859
+ multiple: t.multiple,
1860
+ filter: (e, t) => t.label.includes(e) || t.value.includes(e),
1861
+ value: t.modelValue,
1822
1862
  onUpdateValue: (e) => {
1823
- y.multiple && y.max && e?.length > y.max || b("updateModelValue", e);
1863
+ t.multiple && t.max && e?.length > t.max || n("updateModelValue", e);
1824
1864
  },
1825
1865
  "onUpdate:value": (e) => {
1826
- y.multiple && y.max && e?.length > y.max || b("update:modelValue", e);
1866
+ t.multiple && t.max && e?.length > t.max || n("update:modelValue", e);
1827
1867
  }
1828
- }, _isSlot($) ? $ : { default: () => [$] });
1829
- if (y.selectType === "transfer") return G(x, e, D.value, (e) => q(e, "update:modelValue"), (e) => q(e, "updateModelValue"));
1830
- let S = y.selectType === "dropdown";
1831
- return createVNode(NSelect, mergeProps(x, {
1832
- key: y.type,
1833
- ref: J,
1834
- show: S ? void 0 : !1,
1835
- filterable: S ? y.filterable : !1,
1868
+ }, _isSlot(I) ? I : { default: () => [I] });
1869
+ if (t.selectType === "transfer") return k(r, e, s.value, (e) => j(e, "update:modelValue"), (e) => j(e, "updateModelValue"));
1870
+ let i = t.selectType === "dropdown";
1871
+ return createVNode(NSelect, mergeProps(r, {
1872
+ key: t.type,
1873
+ ref: M,
1874
+ show: i ? void 0 : !1,
1875
+ filterable: i ? t.filterable : !1,
1836
1876
  options: e,
1837
- multiple: y.multiple,
1838
- size: y.size,
1839
- placeholder: y.placeholder,
1840
- disabled: y.disabled || void 0,
1841
- value: y.modelValue,
1842
- renderTag: y.multiple ? K : void 0,
1843
- onFocus: S ? void 0 : Z,
1877
+ multiple: t.multiple,
1878
+ size: t.size,
1879
+ placeholder: t.placeholder,
1880
+ disabled: t.disabled || void 0,
1881
+ value: t.modelValue,
1882
+ renderTag: t.multiple ? A : void 0,
1883
+ onFocus: i ? void 0 : F,
1844
1884
  onUpdateValue: (e) => {
1845
- b("updateModelValue", e);
1885
+ n("updateModelValue", e);
1846
1886
  },
1847
1887
  "onUpdate:value": (e) => {
1848
- b("update:modelValue", e);
1888
+ n("update:modelValue", e);
1849
1889
  }
1850
- }), _isSlot($) ? $ : { default: () => [$] });
1890
+ }), _isSlot(I) ? I : { default: () => [I] });
1851
1891
  };
1852
1892
  }
1853
1893
  });
1854
- function renderUser(e, y, { placement: b, size: x, tooltip: S = !0, username: C = !1 }) {
1855
- let w = e.nickname.split(" ").at(-1), E = w;
1856
- return /^[\u4E00-\u9FA5]+$/.test(w) ? E = w.length >= 3 ? w.slice(-2) : w : w.length > 4 && (E = createVNode(NIcon, null, { default: () => [createVNode(IAccount, null, null)] })), createVNode(NPopover, {
1894
+ function renderUser(e, t, { placement: n = "left", size: r = 24, tooltip: i = !0, username: a = !1, renderInfo: o }) {
1895
+ let s = e.nickname.split(" ").at(-1), l = s;
1896
+ /^[\u4E00-\u9FA5]+$/.test(s) ? l = s.length >= 3 ? s.slice(-2) : s : s.length > 4 && (l = createVNode(NIcon, null, { default: () => [createVNode(IAccount, null, null)] }));
1897
+ let u = (e, t) => createVNode(NAvatar, {
1898
+ color: "var(--color-primary)",
1899
+ round: !0,
1900
+ size: e,
1901
+ style: t ? { position: "absolute" } : ""
1902
+ }, _isSlot(l) ? l : { default: () => [l] });
1903
+ return createVNode(NPopover, {
1857
1904
  key: e.username,
1858
1905
  raw: !0,
1859
- placement: b,
1860
- disabled: S === !1
1906
+ placement: n,
1907
+ disabled: i === !1
1861
1908
  }, {
1862
1909
  default: () => createVNode(NCard, {
1863
1910
  style: "width: 200px",
1864
1911
  size: "small"
1865
- }, { default: () => [createVNode(NH4, null, { default: () => [e.nickname] }), createVNode("span", null, [e.username])] }),
1912
+ }, { default: () => [createVNode("div", { style: "display: flex; align-items: center; gap: 12px" }, [u(48), createVNode("div", null, [createVNode("div", { style: "font-size: 16px; font-weight: 500;" }, [e.nickname]), createVNode("div", { style: "font-size: 14px; color: #999" }, [e.username])])]), o?.(e)] }),
1866
1913
  trigger: () => {
1867
- let b = createVNode(NAvatar, {
1868
- color: "var(--color-primary)",
1869
- round: !0,
1870
- size: x,
1871
- style: y ? {
1872
- position: "absolute",
1873
- bottom: -(x - 16) / 2 + "px"
1874
- } : ""
1875
- }, _isSlot(E) ? E : { default: () => [E] });
1876
- return y ? createVNode("div", { style: y ? {
1877
- display: "inline-flex",
1878
- itemsAlign: "center",
1879
- whiteSpace: "nowrap",
1880
- minWidth: x + "px",
1881
- height: x + "px"
1882
- } : "" }, [b, y ? createVNode(Fragment, null, [createVNode("span", { style: { marginLeft: x + 6 + "px" } }, [e.nickname]), C ? createVNode("span", { style: {
1883
- marginLeft: "8px",
1884
- opacity: .4
1885
- } }, [e.username]) : void 0]) : void 0]) : b;
1914
+ let n = u(r, t);
1915
+ return t ? createVNode("span", null, [n, createVNode("div", { style: `overflow: hidden; white-space: nowrap; text-overflow: ellipsis; min-width: ${r}px` }, [createVNode("span", { style: `margin-left: ${r + 6}px` }, [e.nickname]), a ? createVNode("span", { style: "margin-left: 8px; opacity: 0.4" }, [e.username]) : void 0])]) : n;
1886
1916
  }
1887
1917
  });
1888
1918
  }
1889
- function renderUsers(e, y = {}) {
1890
- y.size ||= 24, y.max ||= 4;
1891
- let { max: b, size: x } = y;
1892
- return e.length <= 1 ? createVNode("span", { style: "position: relative" }, [e.map((e) => renderUser(e, !0, y))]) : createVNode("span", { style: {
1919
+ function renderUsers(e, t = {}) {
1920
+ let { max: n = 4, size: r = 24 } = t;
1921
+ return e.length <= 1 ? e[0] ? renderUser(e[0], !0, t) : null : createVNode("span", { style: {
1893
1922
  display: "inline-block",
1894
- height: x + "px"
1923
+ height: r + "px"
1895
1924
  } }, [createVNode(NAvatarGroup, {
1896
1925
  options: e,
1897
- size: x,
1898
- max: b || 4,
1926
+ size: r,
1927
+ max: n || 4,
1899
1928
  style: "top: -2px"
1900
1929
  }, {
1901
- avatar: ({ option: e }) => renderUser(e, !1, y),
1902
- rest: ({ options: e, rest: y }) => createVNode(NDropdown, {
1930
+ avatar: ({ option: e }) => renderUser(e, !1, t),
1931
+ rest: ({ options: e, rest: t }) => createVNode(NDropdown, {
1903
1932
  options: e,
1904
1933
  keyField: "username",
1905
1934
  labelField: "nickname",
1906
- renderOption: ({ option: y }) => renderUser(y, !1, e)
1907
- }, { default: () => [createVNode(NAvatar, null, { default: () => [createTextVNode("+"), y] })] })
1935
+ renderOption: ({ option: t }) => renderUser(t, !1, e)
1936
+ }, { default: () => [createVNode(NAvatar, null, { default: () => [createTextVNode("+"), t] })] })
1908
1937
  })]);
1909
1938
  }
1910
1939
  const DtDeptRender = /* @__PURE__ */ defineComponent({
@@ -1915,18 +1944,18 @@ const DtDeptRender = /* @__PURE__ */ defineComponent({
1915
1944
  getDeptsByCode: Function
1916
1945
  },
1917
1946
  setup(e) {
1918
- let y = ref([]), b = {};
1919
- return watch([() => e.modelValue, () => e.multiple], ([x, S]) => {
1920
- y.value = [];
1921
- let C = x ? S ? Array.isArray(x) ? x : x.trim() ? x.trim().split(",") : [] : [x] : [], w = [];
1922
- for (let [e, x] of C.entries()) b[x] || (b[x] = reactive({
1923
- code: x,
1924
- name: x
1925
- }), w.push(x)), y.value[e] = b[x];
1926
- w.length > 0 && e.getDeptsByCode(w).then((e) => {
1927
- for (let y of e) Object.assign(b[y.code], y);
1947
+ let t = ref([]), n = {};
1948
+ return watch([() => e.modelValue, () => e.multiple], ([r, i]) => {
1949
+ t.value = [];
1950
+ let a = r ? i ? Array.isArray(r) ? r : r.trim() ? r.trim().split(",") : [] : [r] : [], o = [];
1951
+ for (let [e, r] of a.entries()) n[r] || (n[r] = reactive({
1952
+ code: r,
1953
+ name: r
1954
+ }), o.push(r)), t.value[e] = n[r];
1955
+ o.length > 0 && e.getDeptsByCode(o).then((e) => {
1956
+ for (let t of e) Object.assign(n[t.code], t);
1928
1957
  });
1929
- }, { immediate: !0 }), () => y.value.map((e) => createVNode(NTag, { key: e.code }, { default: () => [e.name] }));
1958
+ }, { immediate: !0 }), () => t.value.map((e) => createVNode(NTag, { key: e.code }, { default: () => [e.name] }));
1930
1959
  }
1931
1960
  }), DtUserRender = /* @__PURE__ */ defineComponent({
1932
1961
  name: "UserRender",
@@ -1936,21 +1965,22 @@ const DtDeptRender = /* @__PURE__ */ defineComponent({
1936
1965
  max: Number,
1937
1966
  size: Number,
1938
1967
  placement: String,
1939
- getUsersByUsername: Function
1968
+ getUsersByUsername: Function,
1969
+ renderInfo: Function
1940
1970
  },
1941
1971
  setup(e) {
1942
- let y = ref([]), b = {};
1943
- return watch([() => e.modelValue, () => e.multiple], ([x, S]) => {
1944
- y.value = [];
1945
- let C = x ? S ? Array.isArray(x) ? x : x.trim() ? x.trim().split(",") : [] : [x] : [], w = [];
1946
- for (let [e, x] of C.entries()) b[x] || (b[x] = reactive({
1947
- code: x,
1948
- name: x
1949
- }), w.push(x)), y.value[e] = b[x];
1950
- w.length > 0 && e.getUsersByUsername(w).then((e) => {
1951
- for (let y of e) Object.assign(b[y.code], y);
1972
+ let t = ref([]), n = {};
1973
+ return watch([() => e.value, () => e.multiple], ([r, i]) => {
1974
+ t.value = [];
1975
+ let a = r ? i ? Array.isArray(r) ? r : r.trim() ? r.trim().split(",") : [] : [r] : [], o = [];
1976
+ for (let [e, r] of a.entries()) n[r] || (n[r] = reactive({
1977
+ username: r,
1978
+ nickname: r
1979
+ }), o.push(r)), t.value[e] = n[r];
1980
+ o.length > 0 && e.getUsersByUsername(o).then((e) => {
1981
+ for (let t of e) Object.assign(n[t.username], t);
1952
1982
  });
1953
- }, { immediate: !0 }), () => renderUsers(y.value, e);
1983
+ }, { immediate: !0 }), () => renderUsers(t.value, e);
1954
1984
  }
1955
1985
  }), StateButtonProps = {
1956
1986
  disabled: {
@@ -1984,15 +2014,15 @@ const DtDeptRender = /* @__PURE__ */ defineComponent({
1984
2014
  }, NStateButton = /* @__PURE__ */ defineComponent({
1985
2015
  name: "StateButton",
1986
2016
  props: StateButtonProps,
1987
- setup(e, { slots: y }) {
2017
+ setup(e, { slots: t }) {
1988
2018
  return () => {
1989
- let { type: b, disabled: x, succeeded: S, successText: C, failureText: w } = e;
2019
+ let { type: n, disabled: r, succeeded: i, successText: a, failureText: o } = e;
1990
2020
  return createVNode(NButton, {
1991
- type: S ? "success" : S === !1 ? "error" : b,
1992
- disabled: typeof S == "boolean" ? !0 : x
2021
+ type: i ? "success" : i === !1 ? "error" : n,
2022
+ disabled: typeof i == "boolean" ? !0 : r
1993
2023
  }, {
1994
- default: () => (S ? y.success ? y.success() : C : S === !1 ? y.failure ? y.failure() : w : y.default?.()) ?? y.default(),
1995
- icon: () => S ? y.successIcon ? y.successIcon() : createVNode(NIcon, null, { default: () => [createVNode(ICheck, null, null)] }) : S === !1 ? y.failureIcon ? y.failureIcon() : createVNode(NIcon, null, { default: () => [createVNode(IClose, null, null)] }) : y.icon?.()
2024
+ default: () => (i ? t.success ? t.success() : a : i === !1 ? t.failure ? t.failure() : o : t.default?.()) ?? t.default(),
2025
+ icon: () => i ? t.successIcon ? t.successIcon() : createVNode(NIcon, null, { default: () => [createVNode(ICheck, null, null)] }) : i === !1 ? t.failureIcon ? t.failureIcon() : createVNode(NIcon, null, { default: () => [createVNode(IClose, null, null)] }) : t.icon?.()
1996
2026
  });
1997
2027
  };
1998
2028
  }