@ithinkdt/ui 4.0.0-50 → 4.0.0-500

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,1612 +0,0 @@
1
- import { n as useI18n } from "./use-i18n-Dx7V4KrY.js";
2
- import { i as vTooltip } from "./directives-DUuJW647.js";
3
- import { g as useStyle, h as useMergedClsPrefix, n as cB, r as cE, t as c } from "./use-style-DcT-1dj4.js";
4
- import { Fragment, computed, createTextVNode, createVNode, defineComponent, inject, isVNode, mergeProps, nextTick, reactive, ref, shallowRef, toRaw, toRef, toValue, unref, useTemplateRef, watch, withDirectives } from "vue";
5
- import { toReactive, unrefElement, until, useCurrentElement, useElementSize, watchDebounced } from "@vueuse/core";
6
- import { 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 } from "ithinkdt-ui";
7
- import { VOverflow, VResizeObserver } from "vueuc";
8
- import { Sortable } from "sortablejs/modular/sortable.core.esm.js";
9
- import { pickProps } from "@ithinkdt/common/object";
10
- import { PAGE_INJECTION, useFormModal } from "@ithinkdt/page";
11
- import { Sortable as Sortable$1 } from "sortablejs";
12
- import { flattenTree, walkTree } from "@ithinkdt/common";
13
- const NCheckboxes = /* @__PURE__ */ defineComponent({
14
- name: "Checkboxes",
15
- inheritAttrs: !1,
16
- props: {
17
- options: {
18
- type: Array,
19
- default: () => []
20
- },
21
- vertical: {
22
- type: Boolean,
23
- default: !1
24
- },
25
- default: {
26
- type: [
27
- Boolean,
28
- String,
29
- Object
30
- ],
31
- default: !1
32
- },
33
- gap: {
34
- type: [
35
- Number,
36
- String,
37
- Array
38
- ],
39
- default: void 0
40
- },
41
- modelValue: {
42
- type: Array,
43
- default: void 0
44
- },
45
- labelPadding: {
46
- type: String,
47
- default: void 0
48
- },
49
- labelField: {
50
- type: String,
51
- default: "label"
52
- },
53
- valueField: {
54
- type: String,
55
- default: "value"
56
- },
57
- disabledField: {
58
- type: String,
59
- default: "disabled"
60
- }
61
- },
62
- emits: {
63
- "update:modelValue": () => !0,
64
- updateModelValue: () => !0
65
- },
66
- setup(w, { emit: T, attrs: E }) {
67
- let { t: D } = useI18n(), O = computed(() => w.default ? w.default === !0 ? D("common.all") : typeof w.default == "string" ? w.default : w.default?.[w.labelField] ?? D("common.all") : ""), k = ref([]);
68
- watch(() => w.modelValue, (e) => k.value = e, { immediate: !0 });
69
- let A = (e) => {
70
- T("update:modelValue", e), T("updateModelValue", e);
71
- }, M = () => {
72
- A(k.value?.length === w.options.length ? [] : w.options.map((e) => e[w.valueField]));
73
- }, N = computed(() => w.options.length > k.value?.length && k.value?.length > 0), P = computed(() => ({ "--n-label-padding": w.labelPadding }));
74
- return () => {
75
- let e = createVNode(NCheckboxGroup, mergeProps(E, {
76
- value: k.value,
77
- onUpdateValue: A
78
- }), { default: () => [createVNode(NFlex, {
79
- size: w.gap ?? (w.vertical ? void 0 : "small"),
80
- vertical: w.vertical,
81
- style: !w.default && w.vertical ? { padding: "6px 0 0" } : {}
82
- }, { default: () => [w.options?.map((e) => createVNode(NCheckbox, {
83
- value: e[w.valueField],
84
- disabled: e[w.disabledField],
85
- style: P.value
86
- }, { default: () => [e[w.labelField]] }))] })] });
87
- return w.default ? createVNode(NFlex, {
88
- size: w.gap ?? (w.vertical ? void 0 : "small"),
89
- vertical: w.vertical,
90
- style: w.vertical ? { padding: "6px 0 0" } : {}
91
- }, { default: () => [createVNode("span", null, [createVNode(NCheckbox, {
92
- indeterminate: N.value,
93
- checked: k.value?.length > 0,
94
- onUpdateChecked: M,
95
- style: P.value
96
- }, { default: () => [O.value] })]), e] }) : e;
97
- };
98
- }
99
- }), IHelp = (e) => createVNode("svg", mergeProps({
100
- xmlns: "http://www.w3.org/2000/svg",
101
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
102
- role: "img",
103
- width: "1em",
104
- height: "1em",
105
- viewBox: "0 0 24 24"
106
- }, e), [createVNode("path", {
107
- fill: "currentColor",
108
- d: "M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2a2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"
109
- }, null)]), ICustom = (e) => createVNode("svg", mergeProps({
110
- xmlns: "http://www.w3.org/2000/svg",
111
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
112
- role: "img",
113
- width: "1em",
114
- height: "1em",
115
- viewBox: "0 0 1024 1024"
116
- }, e), [createVNode("path", {
117
- fill: "currentColor",
118
- d: "m924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1c0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5a449.4 449.4 0 0 0 159 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1l74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3l-17.9 97a377.5 377.5 0 0 1-85 0l-17.9-97.2l-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9l-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5l-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5c0-15.3 1.2-30.6 3.7-45.5l6.5-40l-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2l31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3l17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97l38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8l92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176s-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2z"
119
- }, null)]), IDrag = (e) => createVNode("svg", mergeProps({
120
- xmlns: "http://www.w3.org/2000/svg",
121
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
122
- role: "img",
123
- width: "1em",
124
- height: "1em",
125
- viewBox: "0 0 1024 1024"
126
- }, e), [createVNode("path", {
127
- fill: "currentColor",
128
- d: "M300 276.497a56 56 0 1 0 56-96.994a56 56 0 0 0-56 96.994Zm0 284a56 56 0 1 0 56-96.994a56 56 0 0 0-56 96.994ZM640 228a56 56 0 1 0 112 0a56 56 0 0 0-112 0Zm0 284a56 56 0 1 0 112 0a56 56 0 0 0-112 0ZM300 844.497a56 56 0 1 0 56-96.994a56 56 0 0 0-56 96.994ZM640 796a56 56 0 1 0 112 0a56 56 0 0 0-112 0Z"
129
- }, null)]), ILeft = (e) => createVNode("svg", mergeProps({
130
- xmlns: "http://www.w3.org/2000/svg",
131
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
132
- role: "img",
133
- width: "1em",
134
- height: "1em",
135
- viewBox: "0 0 1024 1024"
136
- }, e), [createVNode("path", {
137
- fill: "currentColor",
138
- d: "M326 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm444 72.4V164c0-6.8-7.9-10.5-13.1-6.1L335 512l421.9 354.1c5.2 4.4 13.1.7 13.1-6.1v-72.4c0-9.4-4.2-18.4-11.4-24.5L459.4 512l299.2-251.1c7.2-6.1 11.4-15.1 11.4-24.5z"
139
- }, null)]), IRight = (e) => createVNode("svg", mergeProps({
140
- xmlns: "http://www.w3.org/2000/svg",
141
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
142
- role: "img",
143
- width: "1em",
144
- height: "1em",
145
- viewBox: "0 0 1024 1024"
146
- }, e), [createVNode("path", {
147
- fill: "currentColor",
148
- d: "M762 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm-508 0v72.4c0 9.5 4.2 18.4 11.4 24.5L564.6 512L265.4 763.1c-7.2 6.1-11.4 15-11.4 24.5V860c0 6.8 7.9 10.5 13.1 6.1L689 512L267.1 157.9A7.95 7.95 0 0 0 254 164z"
149
- }, null)]), IDown = (e) => createVNode("svg", mergeProps({
150
- xmlns: "http://www.w3.org/2000/svg",
151
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
152
- role: "img",
153
- width: "1em",
154
- height: "1em",
155
- viewBox: "0 0 32 32"
156
- }, e), [createVNode("path", {
157
- fill: "currentColor",
158
- d: "M16 22L6 12l1.4-1.4l8.6 8.6l8.6-8.6L26 12z"
159
- }, null)]), IUp = (e) => createVNode("svg", mergeProps({
160
- xmlns: "http://www.w3.org/2000/svg",
161
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
162
- role: "img",
163
- width: "1em",
164
- height: "1em",
165
- viewBox: "0 0 32 32"
166
- }, e), [createVNode("path", {
167
- fill: "currentColor",
168
- d: "m16 10l10 10l-1.4 1.4l-8.6-8.6l-8.6 8.6L6 20z"
169
- }, null)]), ICheck = (e) => createVNode("svg", mergeProps({
170
- xmlns: "http://www.w3.org/2000/svg",
171
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
172
- role: "img",
173
- width: "1em",
174
- height: "1em",
175
- viewBox: "0 0 24 24"
176
- }, e), [createVNode("path", {
177
- fill: "currentColor",
178
- d: "m9.55 18l-5.7-5.7l1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4z"
179
- }, null)]), ILanguage = (e) => createVNode("svg", mergeProps({
180
- xmlns: "http://www.w3.org/2000/svg",
181
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
182
- role: "img",
183
- width: "1em",
184
- height: "1em",
185
- viewBox: "0 0 24 24"
186
- }, e), [createVNode("path", {
187
- fill: "currentColor",
188
- d: "M12 22q-2.05 0-3.875-.788t-3.187-2.15t-2.15-3.187T2 12q0-2.075.788-3.887t2.15-3.175t3.187-2.15T12 2q2.075 0 3.888.788t3.174 2.15t2.15 3.175T22 12q0 2.05-.788 3.875t-2.15 3.188t-3.175 2.15T12 22m0-2.05q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075T12 19.95m-2.6-.4q-.45-.825-.787-1.713T8.05 16H5.1q.725 1.25 1.813 2.175T9.4 19.55m5.2 0q1.4-.45 2.488-1.375T18.9 16h-2.95q-.225.95-.562 1.838T14.6 19.55M4.25 14h3.4q-.075-.5-.112-.987T7.5 12t.038-1.012T7.65 10h-3.4q-.125.5-.187.988T4 12t.063 1.013t.187.987m5.4 0h4.7q.075-.5.113-.987T14.5 12t-.038-1.012T14.35 10h-4.7q-.075.5-.112.988T9.5 12t.038 1.013t.112.987m6.7 0h3.4q.125-.5.188-.987T20 12t-.062-1.012T19.75 10h-3.4q.075.5.113.988T16.5 12t-.038 1.013t-.112.987m-.4-6h2.95q-.725-1.25-1.812-2.175T14.6 4.45q.45.825.788 1.713T15.95 8M10.1 8h3.8q-.3-1.1-.775-2.075T12 4.05q-.65.9-1.125 1.875T10.1 8m-5 0h2.95q.225-.95.563-1.838T9.4 4.45Q8 4.9 6.912 5.825T5.1 8"
189
- }, null)]), IMore = (e) => createVNode("svg", mergeProps({
190
- xmlns: "http://www.w3.org/2000/svg",
191
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
192
- role: "img",
193
- width: "1em",
194
- height: "1em",
195
- viewBox: "0 0 20 20"
196
- }, e), [createVNode("path", {
197
- fill: "currentColor",
198
- fillRule: "evenodd",
199
- d: "M2.5 7.5a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5m15 0a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5m-7.274 0a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5"
200
- }, null)]), IDept = (e) => createVNode("svg", mergeProps({
201
- xmlns: "http://www.w3.org/2000/svg",
202
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
203
- width: "1em",
204
- height: "1em",
205
- viewBox: "0 0 12 12"
206
- }, e), [createVNode("path", {
207
- fill: "currentColor",
208
- d: "M5.5 4.937a2 2 0 1 1 1 0V6h2a1 1 0 0 1 1 1v1.063a2 2 0 1 1-1 0V7h-5v1.063a2 2 0 1 1-1 0V7a1 1 0 0 1 1-1h2zM6 4a1 1 0 1 0 0-2a1 1 0 0 0 0 2m-3 7a1 1 0 1 0 0-2a1 1 0 0 0 0 2m5-1a1 1 0 1 0 2 0a1 1 0 0 0-2 0"
209
- }, null)]), IGroup = (e) => createVNode("svg", mergeProps({
210
- xmlns: "http://www.w3.org/2000/svg",
211
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
212
- width: "1em",
213
- height: "1em",
214
- viewBox: "0 0 24 24"
215
- }, e), [createVNode("g", {
216
- fill: "none",
217
- fillRule: "evenodd"
218
- }, [createVNode("path", { d: "M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035c-.01-.004-.019-.001-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427c-.002-.01-.009-.017-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093c.012.004.023 0 .029-.008l.004-.014l-.034-.614c-.003-.012-.01-.02-.02-.022m-.715.002a.023.023 0 0 0-.027.006l-.006.014l-.034.614c0 .012.007.02.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" }, null), createVNode("path", {
219
- fill: "currentColor",
220
- d: "M13 13a4 4 0 0 1 4 4v2a1 1 0 1 1-2 0v-2a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v2a1 1 0 1 1-2 0v-2a4 4 0 0 1 4-4zm6 0a3 3 0 0 1 3 3v2a1 1 0 1 1-2 0v-2a1 1 0 0 0-1-1h-1.416a5.02 5.02 0 0 0-1.583-2zM9.5 3a4.5 4.5 0 1 1 0 9a4.5 4.5 0 0 1 0-9M18 6a3 3 0 1 1 0 6a3 3 0 0 1 0-6M9.5 5a2.5 2.5 0 1 0 0 5a2.5 2.5 0 0 0 0-5M18 8a1 1 0 1 0 0 2a1 1 0 0 0 0-2"
221
- }, null)])]), IAccount = (e) => createVNode("svg", mergeProps({
222
- xmlns: "http://www.w3.org/2000/svg",
223
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
224
- role: "img",
225
- width: "1em",
226
- height: "1em",
227
- viewBox: "0 0 256 256"
228
- }, e), [createVNode("path", {
229
- fill: "currentColor",
230
- d: "M235.4 210a124.2 124.2 0 0 0-61.8-53.2a76 76 0 1 0-91.2 0A124.2 124.2 0 0 0 20.6 210a12 12 0 0 0 20.8 12a100 100 0 0 1 173.2 0a12.1 12.1 0 0 0 10.4 6a11.7 11.7 0 0 0 6-1.6a12 12 0 0 0 4.4-16.4ZM76 96a52 52 0 1 1 52 52a52 52 0 0 1-52-52Z"
231
- }, null)]), DataActions = /* @__PURE__ */ defineComponent({
232
- name: "DataActions",
233
- props: { options: {
234
- type: Array,
235
- default: () => []
236
- } },
237
- setup(e) {
238
- let w = ref(), T = !0, E = () => {
239
- T ? T = !1 : w.value?.sync({ showAllItemsBeforeCalculate: !0 });
240
- }, D = ref(), O = () => D.value, k = ref(-1), A = (w) => {
241
- k.value = e.options.length - w;
242
- }, M = (e) => {
243
- e || (k.value = -1);
244
- }, N = () => {}, P = computed(() => k.value === -1 ? [] : e.options.slice(k.value).map((e) => ({
245
- ...e,
246
- key: e.text
247
- }))), F = (e) => createVNode(NButton, {
248
- type: e.color === "danger" ? "error" : [
249
- "default",
250
- "tertiary",
251
- "primary",
252
- "info",
253
- "success",
254
- "warning",
255
- "error"
256
- ].includes(e.color) ? e.color : "primary",
257
- text: !0
258
- }, { default: () => [e.text] }), I = (e, w) => {
259
- w.onClick?.();
260
- };
261
- return () => createVNode(VResizeObserver, { onResize: E }, { default: () => [createVNode(VOverflow, {
262
- ref: w,
263
- getCounter: O,
264
- onUpdateCount: A,
265
- onUpdateOverflow: M,
266
- updateCounter: N,
267
- style: "margin-top: 2px"
268
- }, {
269
- default: () => e.options.map((e) => createVNode(NButton, {
270
- quaternary: !0,
271
- type: e.color === "danger" ? "error" : [
272
- "default",
273
- "tertiary",
274
- "primary",
275
- "info",
276
- "success",
277
- "warning",
278
- "error"
279
- ].includes(e.color) ? e.color : "primary",
280
- size: "small",
281
- onClick: e.onClick
282
- }, { default: () => [e.text] })),
283
- counter: () => createVNode("span", {
284
- ref: D,
285
- style: "position: absolute"
286
- }, [createVNode(NDropdown, {
287
- options: P.value,
288
- renderLabel: F,
289
- onSelect: I
290
- }, { default: () => [createVNode(NButton, {
291
- quaternary: !0,
292
- size: "small"
293
- }, { default: () => [createVNode(IMore, { style: "font-size: 14px; color: #888" }, null)] })] })])
294
- })] });
295
- }
296
- });
297
- function _isSlot$6(e) {
298
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
299
- }
300
- var DataCustomItem = /* @__PURE__ */ defineComponent({
301
- name: "DataCustomRow",
302
- props: {
303
- label: [String, Function],
304
- disabled: Boolean,
305
- hidden: Boolean,
306
- showFixed: Boolean,
307
- fixed: [Boolean, String]
308
- },
309
- emits: ["update-hidden", "update-fixed"],
310
- setup(e, { emit: w }) {
311
- return () => {
312
- let T;
313
- return createVNode(NFlex, {
314
- align: "center",
315
- wrap: !1,
316
- size: "small"
317
- }, { default: () => [
318
- createVNode(NButton, {
319
- type: "primary",
320
- text: !0,
321
- class: "icon-drag"
322
- }, { default: () => [createVNode(NIcon, { size: "18" }, { default: () => [createVNode(IDrag, null, null)] })] }),
323
- createVNode(NCheckbox, {
324
- checked: !e.hidden,
325
- disabled: e.disabled,
326
- onUpdateChecked: (e) => w("update-hidden", !e)
327
- }, null),
328
- createVNode(NEllipsis, { style: "flex: 1 1 auto" }, _isSlot$6(T = toValue(e.label)) ? T : { default: () => [T] }),
329
- e.showFixed ? [createVNode(NButton, {
330
- text: !0,
331
- type: e.fixed === "left" ? "primary" : void 0,
332
- onClick: () => w("update-fixed", e.fixed === "left" ? !1 : "left")
333
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(ILeft, null, null)] })] }), createVNode(NButton, {
334
- text: !0,
335
- type: e.fixed === "right" ? "primary" : void 0,
336
- onClick: () => w("update-fixed", e.fixed === "right" ? !1 : "right")
337
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IRight, null, null)] })] })] : void 0
338
- ] });
339
- };
340
- }
341
- });
342
- const DataCustom = /* @__PURE__ */ defineComponent({
343
- name: "DataCustom",
344
- props: {
345
- data: {
346
- type: Array,
347
- required: !0
348
- },
349
- keyField: {
350
- type: String,
351
- default: "key"
352
- },
353
- labelField: {
354
- type: String,
355
- default: "label"
356
- },
357
- fixedField: {
358
- type: String,
359
- default: "fixed"
360
- },
361
- hiddenField: {
362
- type: String,
363
- default: "hidden"
364
- },
365
- showFixed: {
366
- type: Boolean,
367
- default: !0
368
- },
369
- disabledField: {
370
- type: String,
371
- default: "disabled"
372
- },
373
- visiblityField: {
374
- type: String,
375
- default: "visiblity"
376
- },
377
- tooltip: [String, Object],
378
- size: {
379
- type: Number,
380
- default: 20
381
- },
382
- type: { type: String }
383
- },
384
- emits: { custom: () => !0 },
385
- setup(T, { emit: E }) {
386
- let { t: D } = useI18n();
387
- function O(e, w, D) {
388
- E("custom", {
389
- key: e[T.keyField],
390
- [w]: D
391
- });
392
- }
393
- let k = ref();
394
- return watch(k, (e) => {
395
- e.$el && Sortable.create(e.$el, {
396
- animation: 150,
397
- ghostClass: "ghost",
398
- handle: ".icon-drag",
399
- filter: ".disabled",
400
- onEnd(e) {
401
- let w = T.data.map((e) => e[T.keyField]), [D] = w.splice(e.oldIndex, 1);
402
- w.splice(e.newIndex, 0, D), E("custom", w);
403
- }
404
- });
405
- }), () => createVNode(NPopover, {
406
- trigger: "click",
407
- scrollable: !0,
408
- placement: "left-start",
409
- displayDirective: "show",
410
- style: "max-height: 400px; width: 240px"
411
- }, {
412
- trigger: () => withDirectives(createVNode(NButton, {
413
- text: !0,
414
- type: T.type
415
- }, { default: () => [createVNode(NIcon, { size: T.size }, { default: () => [createVNode(ICustom, null, null)] })] }), [[vTooltip, T.tooltip ?? D("common.page.custom.tooltip")]]),
416
- default: () => {
417
- let e, w;
418
- return createVNode(NFlex, { vertical: !0 }, { default: () => [createVNode(NFlex, { justify: "space-between" }, { default: () => [createVNode("div", { style: "font-weight: bold" }, [T.tooltip ?? D("common.page.custom.tooltip")]), createVNode(NButton, {
419
- text: !0,
420
- type: "primary",
421
- size: "small",
422
- onClick: () => E("custom", !0)
423
- }, _isSlot$6(e = D("common.page.custom.reset")) ? e : { default: () => [e] })] }), createVNode(NFlex, {
424
- ref: k,
425
- vertical: !0
426
- }, _isSlot$6(w = T.data.filter((e) => e[T.visiblityField] !== !1).map((e) => createVNode(DataCustomItem, {
427
- key: e[T.keyField],
428
- label: e[T.labelField],
429
- hidden: e[T.hiddenField],
430
- fixed: e[T.fixedField],
431
- showFixed: T.showFixed,
432
- onUpdateHidden: (w) => O(e, "hidden", w),
433
- onUpdateFixed: (w) => O(e, "fixed", w)
434
- }, null))) ? w : { default: () => [w] })] });
435
- }
436
- });
437
- }
438
- });
439
- function _isSlot$5(e) {
440
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
441
- }
442
- const DataForm = /* @__PURE__ */ defineComponent({
443
- name: "DataForm",
444
- props: {
445
- grid: {
446
- type: Object,
447
- default: () => ({})
448
- },
449
- ...pickProps(formProps, "disabled", "model", "labelWidth", "labelAlign", "showFeedback", "size"),
450
- readonly: {
451
- type: Boolean,
452
- required: !1,
453
- default: void 0
454
- },
455
- items: {
456
- type: Array,
457
- required: !0
458
- },
459
- validation: {
460
- type: Object,
461
- default: () => ({})
462
- },
463
- loading: Boolean,
464
- showColon: Boolean,
465
- actionAlign: {
466
- type: String,
467
- default: "start"
468
- },
469
- showAction: {
470
- type: [Boolean, Object],
471
- default: void 0
472
- },
473
- submitText: {
474
- type: [
475
- String,
476
- Number,
477
- Object
478
- ],
479
- default: void 0
480
- },
481
- resetText: {
482
- type: [
483
- String,
484
- Number,
485
- Object
486
- ],
487
- default: void 0
488
- },
489
- cancelText: {
490
- type: [
491
- String,
492
- Number,
493
- Object
494
- ],
495
- default: void 0
496
- },
497
- showSubmitBtn: {
498
- type: Boolean,
499
- required: !1,
500
- default: !0
501
- },
502
- showResetBtn: {
503
- type: Boolean,
504
- required: !1,
505
- default: !0
506
- },
507
- showCancelBtn: {
508
- type: Boolean,
509
- required: !1,
510
- default: !1
511
- },
512
- submitDisabled: Boolean,
513
- succeeded: Boolean,
514
- successText: {
515
- type: [
516
- String,
517
- Number,
518
- Object
519
- ],
520
- default: void 0
521
- },
522
- tooltipPlacement: {
523
- type: String,
524
- default: "bottom"
525
- },
526
- requireMarkPlacement: {
527
- type: String,
528
- default: "left"
529
- },
530
- labelPlacement: {
531
- type: String,
532
- default: "left"
533
- }
534
- },
535
- emits: [
536
- "submit",
537
- "reset",
538
- "cancel"
539
- ],
540
- setup(w, { emit: T, slots: E }) {
541
- let { t: D } = useI18n(), O = (e) => {
542
- e?.preventDefault?.(), T("submit", { ...toRaw(w.model) }, e);
543
- }, k = (e) => {
544
- e?.preventDefault?.(), T("reset");
545
- }, j = (e) => {
546
- e?.preventDefault?.(), T("cancel");
547
- }, N = ref(), P = ref(), { width: F } = useElementSize(useCurrentElement());
548
- return watchDebounced([N, F], () => {
549
- P.value = void 0, setTimeout(() => {
550
- P.value = N.value?.responsiveCols || void 0;
551
- }, 30);
552
- }, {
553
- immediate: !0,
554
- debounce: 100
555
- }), () => {
556
- let { items: e, loading: T, validation: F, showColon: L, showAction: R, actionAlign: z, submitText: B, submitDisabled: V, resetText: H, tooltipPlacement: W, showFeedback: G, labelWidth: K = "7.2em", labelAlign: q = w.labelPlacement === "top" ? "left" : "right", grid: J, succeeded: Y, successText: X = B,...Z } = w, Q = !w.readonly && G !== !1;
557
- return createVNode(NForm, mergeProps({
558
- labelWidth: K,
559
- labelAlign: q,
560
- onReset: k,
561
- onSubmit: O,
562
- showFeedback: Q
563
- }, Z), { default: () => [createVNode(NGrid, mergeProps({
564
- ref: N,
565
- itemResponsive: !0
566
- }, J, { yGap: Q ? 0 : J?.yGap ?? 24 }), { default: () => {
567
- let O = 0;
568
- return createVNode(Fragment, null, [e.map(({ hidden: e, name: T, render: E, label: D, showColon: k, span: A = 6, rowSpan: j, offset: N = 0, tooltip: P, tooltipPlacement: L = w.tooltipPlacement, validationStatus: R = F[T]?.errors?.some((e) => e !== void 0) ? "error" : F[T]?.warnings?.some((e) => e !== void 0) ? "warnings" : F[T] ? "success" : void 0, readonly: z = w.readonly, showRequireMark: B = !z, showTooltipWhenReadonly: V = !1,...H }) => {
569
- if (e) return;
570
- O += A;
571
- let W;
572
- return W = T[0] === "$" ? E({}) : createVNode(NFormItem, mergeProps({
573
- path: T,
574
- validationStatus: R,
575
- showRequireMark: H.required && B
576
- }, H), {
577
- label: () => createVNode(NText, {
578
- depth: w.readonly ? 3 : 2,
579
- style: "display: inline-flex; align-items: flex-start; gap: 1px"
580
- }, { default: () => [
581
- createVNode("span", null, [toValue(D)]),
582
- L === "icon" ? createVNode(NTooltip, null, {
583
- default: () => toValue(P),
584
- trigger: () => createVNode(NButton, {
585
- text: !0,
586
- style: "font-size: 1.25em; opacity: 0.8"
587
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IHelp, null, null)] })] })
588
- }) : void 0,
589
- w.showColon && k !== !1 ? createVNode("span", { style: "place-self: center" }, [createTextVNode(":")]) : void 0
590
- ] }),
591
- default: () => {
592
- let e, T = createVNode("div", { style: "width: 100%; font-size: calc(1rem - 2px); min-height: 32px; display: flex; align-items: center" }, [E({
593
- disabled: w.disabled,
594
- size: w.size,
595
- readonly: w.readonly
596
- })]);
597
- return P && L === "bottom" && (!w.readonly || V) ? createVNode("div", { style: "width: 100%; display: flex; flex-direction: column" }, [T, createVNode(NText, {
598
- depth: 3,
599
- style: "font-size: calc(1rem - 3px); margin-top: 6px"
600
- }, _isSlot$5(e = toValue(P)) ? e : { default: () => [e] })]) : T;
601
- },
602
- feedback: () => F[T]?.errors[0] ?? F[T]?.warnings[0]
603
- }), w.grid === !1 ? W : createVNode(NGi, {
604
- key: T,
605
- offset: N,
606
- span: A,
607
- style: j ? { gridRowEnd: `span ${j}` } : void 0
608
- }, _isSlot$5(W) ? W : { default: () => [W] });
609
- }), R === !1 || w.readonly === !0 && !E.action ? void 0 : createVNode(NGi, mergeProps({
610
- key: "action",
611
- span: 2 ** 53 - 1
612
- }, typeof w.showAction == "object" ? w.showAction : {}), { default: ({ overflow: e }) => E.action ? E.action({
613
- cols: P.value,
614
- spans: O,
615
- overflow: e
616
- }) : createVNode(NFormItem, {
617
- label: w.actionAlign === "start" ? " " : void 0,
618
- showLabel: w.labelPlacement !== "top",
619
- style: "padding-top: 16px"
620
- }, { default: () => [createVNode(NFlex, {
621
- justify: w.actionAlign,
622
- align: "center"
623
- }, { default: () => [
624
- w.showSubmitBtn === !1 ? void 0 : createVNode(NButton, {
625
- attrType: "submit",
626
- type: Y ? "success" : "primary",
627
- disabled: Y || w.disabled || w.submitDisabled || T,
628
- loading: T
629
- }, {
630
- default: () => (Y ? X : B) || D("common.page.form.submitText"),
631
- icon: () => Y ? createVNode(NIcon, null, { default: () => [createVNode(ICheck, null, null)] }) : void 0
632
- }),
633
- w.showResetBtn === !1 ? void 0 : createVNode(NButton, {
634
- attrType: "reset",
635
- disabled: w.disabled || T,
636
- type: w.showCancelBtn ? "primary" : "default",
637
- secondary: w.showCancelBtn
638
- }, { default: () => [w.resetText || D("common.page.form.resetText")] }),
639
- w.showCancelBtn === !1 ? void 0 : createVNode(NButton, {
640
- attrType: "button",
641
- disabled: w.disabled || T,
642
- onClick: j
643
- }, { default: () => [w.cancelText || D("common.page.form.cancelText")] })
644
- ] })] }) })]);
645
- } })] });
646
- };
647
- }
648
- }), DataFilter = /* @__PURE__ */ defineComponent({
649
- name: "DataFilter",
650
- props: {
651
- grid: {
652
- type: Object,
653
- default: () => ({})
654
- },
655
- ...pickProps(formProps, "disabled", "model"),
656
- labelWidth: {
657
- type: [String, Number],
658
- default: "5em"
659
- },
660
- labelPlacement: {
661
- type: String,
662
- default: "left"
663
- },
664
- items: {
665
- type: Array,
666
- required: !0
667
- },
668
- loading: {
669
- type: Boolean,
670
- required: !1,
671
- default: !1
672
- },
673
- filterOnReset: {
674
- type: Boolean,
675
- required: !1,
676
- default: !0
677
- },
678
- filterText: {
679
- type: String,
680
- default: void 0
681
- },
682
- resetText: {
683
- type: String,
684
- default: void 0
685
- },
686
- customizable: {
687
- type: Boolean,
688
- required: !1,
689
- default: !0
690
- },
691
- collapsible: {
692
- type: Boolean,
693
- required: !1,
694
- default: !0
695
- },
696
- defaultCollapsed: {
697
- type: Boolean,
698
- required: !1,
699
- default: !0
700
- }
701
- },
702
- emits: [
703
- "filter",
704
- "reset",
705
- "custom",
706
- "collapse"
707
- ],
708
- setup(w, { expose: T, emit: E }) {
709
- let { t: D } = useI18n(), O = (e) => {
710
- E("filter", w.model, e);
711
- }, k = (e) => {
712
- E("reset", e), w.filterOnReset && E("filter", w.model, e);
713
- }, A = ref(w.defaultCollapsed), j = (e) => {
714
- A.value = e;
715
- };
716
- T({ collapse: j });
717
- let N = reactive({
718
- span: 6,
719
- suffix: !0
720
- });
721
- return () => {
722
- let { filterOnReset: e, filterText: T, resetText: P, customizable: F, defaultCollapsed: L, collapsible: R, grid: z,...B } = w;
723
- return createVNode(DataForm, mergeProps({ grid: {
724
- cols: "12 768:18 1280:24 1536:30",
725
- yGap: 20,
726
- xGap: 8,
727
- ...z,
728
- collapsed: A.value
729
- } }, B, {
730
- showFeedback: !1,
731
- showAction: N,
732
- onSubmit: O,
733
- onReset: k
734
- }), { action: ({ cols: e, spans: O }) => (N.suffix = e < O + N.span, createVNode(NFlex, {
735
- justify: N.suffix ? "end" : "start",
736
- align: "center"
737
- }, { default: () => [
738
- N.suffix ? void 0 : createVNode("span", null, [createTextVNode("\xA0\xA0\xA0\xA0")]),
739
- createVNode(NButton, {
740
- attrType: "submit",
741
- type: "primary",
742
- disabled: w.disabled,
743
- loading: w.loading
744
- }, { default: () => [T || D("common.page.filter.submitText")] }),
745
- createVNode(NButton, {
746
- attrType: "reset",
747
- disabled: w.disabled || w.loading
748
- }, { default: () => [P || D("common.page.form.resetText")] }),
749
- F ? createVNode(DataCustom, {
750
- keyField: "name",
751
- showFixed: !1,
752
- data: B.items,
753
- onCustom: (e) => E("custom", e),
754
- size: 18,
755
- type: "primary"
756
- }, null) : void 0,
757
- R && N.suffix ? createVNode(NButton, {
758
- text: !0,
759
- type: "primary",
760
- iconPlacement: "right",
761
- renderIcon: A.value ? IDown : IUp,
762
- onClick: () => j(!A.value)
763
- }, { default: () => [A.value ? D("common.page.filter.expand") : D("common.page.filter.collapse")] }) : void 0
764
- ] })) });
765
- };
766
- }
767
- });
768
- function _isSlot$4(e) {
769
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
770
- }
771
- function useLocaleEdit(w, T, E = 1) {
772
- let { t: D } = useI18n(), O = ref(!1), k = [], { open: A, reinit: j } = useFormModal({
773
- title: w,
774
- showColon: !0,
775
- submitText: D("common.confirm.defaultOk"),
776
- items: ({ it: e }) => k.map((w) => e(w.value, w.label, "input", {
777
- span: 24,
778
- required: w.required,
779
- inputProps: {
780
- readonly: O,
781
- clearable: !0,
782
- type: "textarea",
783
- showCount: !0,
784
- autosize: {
785
- minRows: unref(E),
786
- maxRows: Math.max(unref(E), 5)
787
- }
788
- }
789
- })),
790
- onSubmit: T
791
- });
792
- return {
793
- open: (e, w = !1) => (O.value = w, A(e)),
794
- setSupports: (e) => {
795
- k = e, j();
796
- }
797
- };
798
- }
799
- const DataLocaleInput = /* @__PURE__ */ defineComponent({
800
- name: "DataLocaleInput",
801
- props: {
802
- label: { type: [
803
- String,
804
- Function,
805
- Number,
806
- Boolean,
807
- Object
808
- ] },
809
- modelValue: Object,
810
- supports: {
811
- type: Array,
812
- default: () => []
813
- },
814
- disabled: {
815
- type: Boolean,
816
- default: void 0
817
- },
818
- defaultLang: {
819
- type: String,
820
- default: "zh-CN"
821
- },
822
- showLang: {
823
- type: String,
824
- default: void 0
825
- },
826
- defaultRows: {
827
- type: Number,
828
- default: 1
829
- }
830
- },
831
- emits: ["update:modelValue", "updateModelValue"],
832
- setup(e, { emit: w }) {
833
- let T = (T) => {
834
- T = {
835
- ...e.modelValue,
836
- [e.showLang ?? e.defaultLang]: T
837
- }, w("update:modelValue", T), w("updateModelValue", T);
838
- }, { open: E, setSupports: D } = useLocaleEdit(computed(() => toValue(e.label)), (e) => {
839
- w("update:modelValue", e), w("updateModelValue", e);
840
- }, toRef(e, "defaultRows"));
841
- watch(() => e.supports, D, { immediate: !0 });
842
- let O = { suffix: () => createVNode(NButton, {
843
- quaternary: !0,
844
- onClick: () => E(e.modelValue, e.disabled),
845
- style: "--n-padding: 0 8px"
846
- }, { default: () => [createVNode(NIcon, {
847
- size: "20",
848
- depth: "3"
849
- }, { default: () => [createVNode(ILanguage, null, null)] })] }) }, k = { "--n-padding-right": "0" };
850
- return () => createVNode(NInput, {
851
- value: e.modelValue?.[e.showLang ?? e.defaultLang] ?? e.modelValue?.[e.defaultLang],
852
- onUpdateValue: T,
853
- disabled: e.disabled,
854
- clearable: !0,
855
- style: k,
856
- type: e.defaultRows > 1 ? "textarea" : "text",
857
- rows: e.defaultRows
858
- }, _isSlot$4(O) ? O : { default: () => [O] });
859
- }
860
- }), DataPagination = /* @__PURE__ */ defineComponent({
861
- name: "DataPagination",
862
- props: {
863
- total: {
864
- type: Number,
865
- default: 0
866
- },
867
- currentPage: { type: Number },
868
- pageSize: { type: Number },
869
- page: { type: Object },
870
- pageSizes: {
871
- type: Array,
872
- default: () => [
873
- 10,
874
- 20,
875
- 30,
876
- 50
877
- ]
878
- }
879
- },
880
- emits: { change: () => !0 },
881
- setup(w, { emit: T }) {
882
- let { t: E } = useI18n(), D = (e) => T("change", {
883
- pageSize: w.pageSize ?? w.page?.pageSize ?? 0,
884
- currentPage: e
885
- }), O = (e) => T("change", {
886
- pageSize: e,
887
- currentPage: w.currentPage ?? w.page?.currentPage ?? 0
888
- });
889
- return () => createVNode(NPagination, {
890
- page: w.currentPage ?? w.page?.currentPage,
891
- itemCount: w.total,
892
- pageSize: w.pageSize ?? w.page?.pageSize,
893
- onUpdatePage: D,
894
- onUpdatePageSize: O,
895
- pageSizes: w.pageSizes,
896
- showQuickJumper: !0,
897
- showSizePicker: !0,
898
- style: "justify-content: flex-end"
899
- }, {
900
- prefix: () => E("common.page.pagination.prefix", { total: w.total }),
901
- suffix: () => E("common.page.pagination.suffix")
902
- });
903
- }
904
- });
905
- function _isSlot$3(e) {
906
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
907
- }
908
- const DataSelection = /* @__PURE__ */ defineComponent({
909
- name: "DataSelection",
910
- props: {
911
- modelValue: {
912
- type: String,
913
- required: !0
914
- },
915
- count: {
916
- type: Number,
917
- default: 0
918
- }
919
- },
920
- emits: {
921
- "update:modelValue": () => !0,
922
- clear: () => !0
923
- },
924
- setup(w, { emit: T }) {
925
- let { t: E } = useI18n();
926
- return () => {
927
- let e;
928
- return w.modelValue !== "selection" && w.count === 0 ? createVNode("div", null, null) : createVNode("div", null, [createVNode(NFlex, {
929
- align: "center",
930
- "wrap-item": !1
931
- }, { default: () => [
932
- createVNode("span", null, [E("common.page.selection.countText", { count: w.count })]),
933
- createVNode(NButton, {
934
- text: !0,
935
- type: "primary",
936
- onClick: () => {
937
- T("update:modelValue", w.modelValue === "all" ? "selection" : "all");
938
- }
939
- }, { default: () => [w.modelValue === "all" ? E("common.page.selection.view") : E("common.page.selection.back")] }),
940
- createVNode(NButton, {
941
- text: !0,
942
- onClick: () => {
943
- T("clear"), T("update:modelValue", "all");
944
- }
945
- }, _isSlot$3(e = E("common.page.selection.clear")) ? e : { default: () => [e] })
946
- ] })]);
947
- };
948
- }
949
- });
950
- function _isSlot$2(e) {
951
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
952
- }
953
- function _map(e, T) {
954
- return (e ?? []).map((e) => {
955
- let E = {
956
- csvTitle: e.exportTitle,
957
- ...e,
958
- title: () => {
959
- let T = toValue(e.title), E = T && withDirectives(createVNode("span", null, [T]), [[
960
- vTooltip,
961
- () => toValue(e.title),
962
- void 0,
963
- { auto: !0 }
964
- ]]);
965
- return e.tooltip ? createVNode(NFlex, {
966
- size: 3,
967
- wrap: !1,
968
- inline: !0,
969
- style: "max-width: 100%"
970
- }, { default: () => [E, createVNode(NTooltip, null, {
971
- default: toValue(e.tooltip),
972
- trigger: () => createVNode(NButton, {
973
- text: !0,
974
- style: "font-size: 1.25em; opacity: 0.8"
975
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IHelp, null, null)] })] })
976
- })] }) : E;
977
- }
978
- };
979
- if (e.children?.length) E.children = _map(e.children, T);
980
- else {
981
- e.hidden !== !0 && (E.width ??= 100, T.value += Number(E.width));
982
- let w = e.render ?? ((e) => e);
983
- e.ellipsis !== !1 && (E.ellipsis = !1, E.render = (...T) => {
984
- let E = w(...T);
985
- return createVNode(NPerformantEllipsis, mergeProps({
986
- expandTrigger: "click",
987
- lineClamp: 1,
988
- tooltip: { style: {
989
- maxWidth: "61.8vw",
990
- wordBreak: "break-all"
991
- } }
992
- }, typeof e.ellipsis == "boolean" ? {} : e.ellipsis), _isSlot$2(E) ? E : { default: () => [E] });
993
- }, e.ellipsisTooltip === !0 && (E.ellipsisTooltip ??= w)), Object.assign(E, {
994
- resizable: e.resizable !== !1,
995
- sorter: e.sortable,
996
- type: ["selection", "expand"].includes(e.type) ? e.type : void 0,
997
- disabled: e.selectable ? (w) => e.selectable(w) === !1 : void 0
998
- });
999
- }
1000
- return E.key === "$actions" && (E.cellProps ??= () => ({ style: { padding: "0 2px" } })), E;
1001
- }).filter((e) => e?.hidden !== !0);
1002
- }
1003
- const DataTable = /* @__PURE__ */ defineComponent({
1004
- name: "DataTable",
1005
- props: {
1006
- data: {
1007
- type: Array,
1008
- default: () => []
1009
- },
1010
- columns: {
1011
- type: Array,
1012
- default: () => []
1013
- },
1014
- keyField: { type: String },
1015
- sorter: {
1016
- type: Object,
1017
- default: () => ({})
1018
- },
1019
- selectedKeys: { type: Array },
1020
- highlight: {
1021
- type: [
1022
- Boolean,
1023
- String,
1024
- Number,
1025
- Object
1026
- ],
1027
- default: !0
1028
- },
1029
- rowClassName: dataTableProps.rowClassName,
1030
- rowProps: dataTableProps.rowProps
1031
- },
1032
- emits: [
1033
- "sort",
1034
- "select",
1035
- "custom",
1036
- "highlight"
1037
- ],
1038
- setup(e, { slots: w, emit: D, expose: O }) {
1039
- let { keyField: k } = inject(PAGE_INJECTION), A = useMergedClsPrefix(), M = `${A.value}-datatable`;
1040
- useStyle("-datatable", style, A);
1041
- let N = useTemplateRef("table-ref"), F = ({ sortField: e, sortOrder: w } = {}, T) => {
1042
- e == T?.sortField && w == T?.sortOrder || N.value?.sort(e, w ? w + "end" : !1);
1043
- };
1044
- watch(() => ({ ...e.sorter }), F, { deep: !0 });
1045
- let I = computed(() => {
1046
- let w = e.keyField || k || "key";
1047
- return (e) => e[w];
1048
- }), L = shallowRef({
1049
- cache: [],
1050
- scrollToView(...e) {
1051
- this.cache.push(e);
1052
- }
1053
- });
1054
- until(N).changed().then(() => {
1055
- F(e.sorter);
1056
- let w = L.value.cache;
1057
- L.value = N.value, L.value.scrollToView = (w) => {
1058
- let T = e.data.findIndex((e) => I.value(e) === w);
1059
- if (T === -1) return;
1060
- let E = N.value.$el.querySelector(`.${M}__row-marker:nth-child(${T + 1})`);
1061
- N.value.scrollTo({
1062
- top: E.offsetTop,
1063
- behavior: "smooth"
1064
- });
1065
- };
1066
- for (let e of w) L.value.scrollToView(...e);
1067
- }), O(toReactive(L));
1068
- let R = ref(0), V = shallowRef([]);
1069
- watch(() => e.columns, () => {
1070
- R.value = 0, V.value = _map(e.columns, R);
1071
- }, {
1072
- immediate: !0,
1073
- deep: 1
1074
- });
1075
- let H = ref();
1076
- watch(() => e.highlight, (e) => {
1077
- H.value = typeof e == "boolean" ? null : e ?? null;
1078
- }, { immediate: !0 });
1079
- let U = computed(() => (w, T) => [
1080
- e.rowClassName?.(w, T) || "",
1081
- `${M}__row-marker`,
1082
- H.value != null && I.value(w) === H.value ? `${M}__row-highlight` : ""
1083
- ].join(" ")), W = computed(() => (w, T) => {
1084
- let E = e.rowProps?.(w, T);
1085
- return {
1086
- ...E,
1087
- onClick: (T) => {
1088
- let O = I.value(w);
1089
- e.highlight === !0 && (H.value = O), D("highlight", O), E?.onClick?.(T);
1090
- }
1091
- };
1092
- }), q = (w) => {
1093
- if (e.sorter) {
1094
- let { sortField: T, sortOrder: E } = e.sorter;
1095
- if (w?.columnKey == T && (w?.order ? w.order === E + "end" : !E)) return;
1096
- }
1097
- D("sort", {
1098
- sortField: w?.order ? w?.columnKey : void 0,
1099
- sortOrder: w?.order ? w.order.replace("end", "") : void 0
1100
- });
1101
- }, Y = (e) => {
1102
- D("select", e);
1103
- }, Z = (e, w, T) => {
1104
- D("custom", {
1105
- key: T.key,
1106
- width: e
1107
- });
1108
- };
1109
- return () => createVNode(NDataTable, {
1110
- class: M,
1111
- data: e.data,
1112
- columns: V.value,
1113
- rowKey: I.value,
1114
- tableLayout: "fixed",
1115
- ref: "table-ref",
1116
- scrollX: R.value,
1117
- rowClassName: U.value,
1118
- rowProps: W.value,
1119
- checkedRowKeys: e.selectedKeys,
1120
- onUpdateSorter: q,
1121
- onUpdateCheckedRowKeys: Y,
1122
- onUnstableColumnResize: Z
1123
- }, _isSlot$2(w) ? w : { default: () => [w] });
1124
- }
1125
- });
1126
- var style = /* @__PURE__ */ cB("datatable", [cE("row-highlight", [c("& > td", { backgroundColor: "var(--n-tr-highlight-color, var(--n-merged-border-color)) !important" })])]);
1127
- function useDataTableDrag(e, { data: w, onSort: T,...E }) {
1128
- watch([ref(w), e], async ([e, w]) => {
1129
- if (e.length === 0) return;
1130
- await nextTick();
1131
- let D = unrefElement(w)?.querySelector(".n-data-table-base-table-body .n-data-table-tbody");
1132
- if (!D) return;
1133
- let O = Sortable$1.create(D, {
1134
- animation: 150,
1135
- ...E,
1136
- onSort(e) {
1137
- T({
1138
- from: e.oldIndex,
1139
- to: e.newIndex
1140
- });
1141
- }
1142
- });
1143
- return () => {
1144
- O.destroy();
1145
- };
1146
- }, { immediate: !0 });
1147
- }
1148
- function _isSlot$1(e) {
1149
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
1150
- }
1151
- const NRadios = /* @__PURE__ */ defineComponent({
1152
- name: "Radios",
1153
- props: {
1154
- options: {
1155
- type: Array,
1156
- default: () => []
1157
- },
1158
- vertical: {
1159
- type: Boolean,
1160
- default: !1
1161
- },
1162
- type: {
1163
- type: String,
1164
- default: "radio"
1165
- },
1166
- default: {
1167
- type: [
1168
- Boolean,
1169
- String,
1170
- Object
1171
- ],
1172
- default: !1
1173
- },
1174
- padding: {
1175
- type: String,
1176
- default: void 0
1177
- },
1178
- labelField: {
1179
- type: String,
1180
- default: "label"
1181
- },
1182
- valueField: {
1183
- type: String,
1184
- default: "value"
1185
- },
1186
- disabledField: {
1187
- type: String,
1188
- default: "disabled"
1189
- },
1190
- modelValue: {
1191
- type: [
1192
- String,
1193
- Number,
1194
- Boolean
1195
- ],
1196
- default: void 0
1197
- }
1198
- },
1199
- emits: {
1200
- "update:modelValue": () => !0,
1201
- updateModelValue: () => !0
1202
- },
1203
- setup(w, { emit: T }) {
1204
- let { t: E } = useI18n(), D = computed(() => w.default === !1 ? "" : w.default === !0 ? E("common.all") : typeof w.default == "string" ? w.default : w.default?.[w.labelField] ?? E("common.all")), O = computed(() => w.type === "button-primary" ? {
1205
- "--n-button-color-active": "var(--color-primary)",
1206
- "--n-button-text-color-active": "var(--color-base)"
1207
- } : {}), k = (e) => {
1208
- T("update:modelValue", e), T("updateModelValue", e);
1209
- };
1210
- return () => {
1211
- let e = w.type === "button" ? NRadioButton : NRadio, T = createVNode(Fragment, null, [w.default ? createVNode(e, { value: typeof w.default == "object" ? w.default?.[w.valueField] : null }, { default: () => [D.value] }) : void 0, w.options?.map((T) => {
1212
- let E = typeof T[w.labelField] == "string" ? T[w.labelField] : T[w.labelField]?.();
1213
- return createVNode(e, {
1214
- value: T[w.valueField],
1215
- disabled: T[w.disabledField],
1216
- style: w.padding ? {
1217
- paddingLeft: w.padding,
1218
- paddingRight: w.padding
1219
- } : {}
1220
- }, { default: () => [T.tip ? createVNode(NTooltip, null, {
1221
- default: () => T.tip,
1222
- trigger: () => E
1223
- }) : E] });
1224
- })]);
1225
- return createVNode(NRadioGroup, {
1226
- style: w.vertical ? {
1227
- ...O.value,
1228
- padding: "6px 0 0"
1229
- } : O.value,
1230
- value: w.modelValue,
1231
- onUpdateValue: k
1232
- }, { default: () => [w.type === "radio" ? createVNode(NFlex, {
1233
- size: w.vertical ? void 0 : "small",
1234
- vertical: w.vertical
1235
- }, _isSlot$1(T) ? T : { default: () => [T] }) : T] });
1236
- };
1237
- }
1238
- });
1239
- function _isSlot(e) {
1240
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
1241
- }
1242
- const DtUserDept = /* @__PURE__ */ defineComponent({
1243
- name: "UserDept",
1244
- inheritAttrs: !1,
1245
- props: {
1246
- users: {
1247
- type: Array,
1248
- default: () => []
1249
- },
1250
- groups: {
1251
- type: Array,
1252
- default: () => []
1253
- },
1254
- depts: {
1255
- type: Array,
1256
- default: () => []
1257
- },
1258
- modelValue: {
1259
- type: [Array, String],
1260
- default: void 0
1261
- },
1262
- placeholder: {
1263
- type: String,
1264
- default: void 0
1265
- },
1266
- size: {
1267
- type: String,
1268
- default: void 0
1269
- },
1270
- type: {
1271
- type: String,
1272
- default: "user"
1273
- },
1274
- selectType: {
1275
- type: String,
1276
- default: "dropdown"
1277
- },
1278
- max: {
1279
- type: Number,
1280
- default: void 0
1281
- },
1282
- multiple: {
1283
- type: Boolean,
1284
- default: !1
1285
- },
1286
- defaultExpandAll: {
1287
- type: Boolean,
1288
- default: !1
1289
- },
1290
- filterable: {
1291
- type: Boolean,
1292
- default: !1
1293
- },
1294
- disabled: {
1295
- type: Boolean,
1296
- default: void 0
1297
- },
1298
- getUsersByGroup: {
1299
- type: Function,
1300
- default: () => []
1301
- },
1302
- getUsersByDept: {
1303
- type: Function,
1304
- default: () => []
1305
- }
1306
- },
1307
- emits: ["update:modelValue", "updateModelValue"],
1308
- setup(w, { emit: T, attrs: E }) {
1309
- let { t: D } = useI18n(), O = computed(() => {
1310
- if (w.multiple) return w.modelValue || [];
1311
- let e = w.modelValue?.trim();
1312
- return e ? [e] : [];
1313
- }), k = /* @__PURE__ */ new Map(), M = computed(() => (k.clear(), w.users.map((e) => (e = reactive(e), e.label = e.nickname, e.value = e.username, e.type = "user", k.set(e.username, e), e)))), N = shallowRef([]);
1314
- watch(() => w.depts, (e) => {
1315
- walkTree(e, (e) => {
1316
- e.label = e.name, e.value = e.code, e.type = "dept", e.children?.length || delete e.children;
1317
- }), N.value = flattenTree(e);
1318
- }, { immediate: !0 });
1319
- let P = computed(() => [
1320
- ...w.depts,
1321
- ...w.groups.map((e) => ({
1322
- label: e.name,
1323
- value: e.code,
1324
- type: "group"
1325
- })),
1326
- ...M.value
1327
- ]), F = ref([]), V = ref(), H = async (e) => {
1328
- let T = await (e.type === "group" ? w.getUsersByGroup(e.value) : w.getUsersByDept(e.value));
1329
- for (let e of M.value) e.disabled = !0;
1330
- V.value = [...e.type === "dept" ? e.children ?? [] : [], ...T.map((e) => {
1331
- let w = k.get(e.username);
1332
- return w && (w.disabled = !1), {
1333
- ...e,
1334
- label: e.nickname,
1335
- value: e.username,
1336
- type: "user"
1337
- };
1338
- })];
1339
- }, U = /* @__PURE__ */ new WeakMap(), W = (e, T, E) => {
1340
- let O;
1341
- if (w.type === "dept") return createVNode(NTree, {
1342
- data: w.depts,
1343
- keyField: "value",
1344
- labelField: "name",
1345
- defaultExpandAll: w.defaultExpandAll,
1346
- checkable: w.multiple,
1347
- selectable: !w.multiple,
1348
- multiple: !1,
1349
- blockLine: !0,
1350
- checkOnClick: !0,
1351
- pattern: E,
1352
- filter: (e, w) => w.label.includes(e) || w.value.includes(e),
1353
- checkedKeys: w.multiple ? e : void 0,
1354
- selectedKeys: w.multiple ? void 0 : e,
1355
- onUpdateCheckedKeys: (e) => {
1356
- w.max && e?.length > w.max || T(e);
1357
- },
1358
- onUpdateSelectedKeys: (e) => {
1359
- T(e);
1360
- }
1361
- }, null);
1362
- let k = e ? U.get(e) : /* @__PURE__ */ new Set();
1363
- if (e && !k && (k = new Set(e), U.set(e, k)), V.value === !1) return createVNode(NSpin, { show: !0 }, null);
1364
- let j = V.value || P.value;
1365
- E = E?.trim(), E && (j = j?.filter((e) => e.label.includes(E) || e.value.includes(E)));
1366
- let N = F.value;
1367
- return createVNode(Fragment, null, [createVNode("div", { style: "margin: 12px 16px; display: flex; justify-content: space-between; align-items: center" }, [N.length > 0 ? createVNode(Fragment, null, [createVNode("span", { style: "display: flex; align-items: center" }, [
1368
- N.length >= 2 ? N.at(-2).label : D("common.all"),
1369
- createVNode("span", { style: "padding: 0 4px" }, [createVNode(IRight, null, null)]),
1370
- N.at(-1).label
1371
- ]), createVNode(NButton, {
1372
- text: !0,
1373
- type: "warning",
1374
- onClick: () => {
1375
- if (N.pop(), V.value = N.length > 0 ? !1 : void 0, N.length > 0) H(N.at(-1));
1376
- else for (let e of M.value) e.disabled = !1;
1377
- }
1378
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(ILeft, null, null)] }), D("common.back")] })]) : createVNode("span", null, [D("common.all")])]), j?.length ? createVNode(NList, {
1379
- showDivider: !1,
1380
- style: "padding: 0 16px"
1381
- }, _isSlot(O = j.map((E) => {
1382
- let D, O;
1383
- return createVNode(NListItem, {
1384
- key: E.type + "_" + E.value,
1385
- style: "padding: 6px 0"
1386
- }, { default: () => [E.type === "user" ? w.multiple ? createVNode(NCheckbox, {
1387
- checked: k.has(E.value) || !1,
1388
- onUpdateChecked: (D) => {
1389
- if (D && w.max && e.length >= w.max) return;
1390
- let O = [...e || []];
1391
- if (D) O.push(E.value);
1392
- else {
1393
- let e = O.indexOf(E.value);
1394
- O.splice(e, 1);
1395
- }
1396
- T(O);
1397
- },
1398
- style: "margin-left: 3px"
1399
- }, _isSlot(D = renderUsers([E], {
1400
- max: 1,
1401
- size: 24,
1402
- placement: "right"
1403
- })) ? D : { default: () => [D] }) : createVNode(NRadio, {
1404
- checked: k.has(E.value) || !1,
1405
- onUpdateChecked: (e) => {
1406
- T(e ? [E.value] : []);
1407
- },
1408
- style: "margin-left: 3px"
1409
- }, _isSlot(O = renderUsers([E], {
1410
- max: 1,
1411
- size: 24,
1412
- placement: "right"
1413
- })) ? O : { default: () => [O] }) : createVNode("div", {
1414
- onClick: () => {
1415
- V.value = !1, F.value.push(E), H(E);
1416
- },
1417
- style: "cursor: pointer; display: flex; align-items: center; gap: 8px"
1418
- }, [
1419
- E.type === "dept" ? createVNode(NAvatar, {
1420
- size: 24,
1421
- style: "background-color: red"
1422
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IDept, null, null)] })] }) : createVNode(NAvatar, {
1423
- size: 24,
1424
- style: "background-color: green"
1425
- }, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IGroup, null, null)] })] }),
1426
- createVNode("span", { style: "flex: 1 1 auto" }, [E.label]),
1427
- createVNode(NIcon, null, { default: () => [createVNode(IRight, null, null)] })
1428
- ])] });
1429
- })) ? O : { default: () => [O] }) : createVNode(NEmpty, null, null)]);
1430
- }, G = () => createVNode(NEmpty, { description: w.placeholder }, null), q = (e, T, E, D, O) => createVNode(NTransfer, mergeProps(e, {
1431
- key: w.type,
1432
- options: T,
1433
- renderSourceList: ({ onCheck: e, pattern: w }) => W(E, e, w),
1434
- renderTargetList: w.placeholder?.trim() && !w.modelValue?.length ? G : void 0,
1435
- sourceFilterable: w.filterable,
1436
- size: w.size,
1437
- disabled: w.disabled || void 0,
1438
- value: E,
1439
- filter: (e, w) => w.label.includes(e) || w.value.includes(e),
1440
- "onUpdate:value": (e) => {
1441
- D?.(e);
1442
- },
1443
- onUpdateValue: (e) => {
1444
- O?.(e);
1445
- }
1446
- }), null), J = ({ option: e, handleClose: T }) => createVNode(NTag, {
1447
- type: w.type === "user" ? "primary" : "info",
1448
- closable: !0,
1449
- onMousedown: (e) => e.preventDefault(),
1450
- onClose: (e) => {
1451
- e.stopPropagation(), T();
1452
- }
1453
- }, { default: () => [e.label] }), Y = (e, E = "updateModelValue") => {
1454
- w.multiple ? T(E, e) : T(E, e?.[0]);
1455
- }, X = ref(), Z = !1, Q = () => {
1456
- if (Z) return;
1457
- Z = !0;
1458
- let e = shallowRef([...O.value || []]);
1459
- $dialog({
1460
- showIcon: !1,
1461
- title: w.placeholder,
1462
- style: { width: "700px" },
1463
- content: () => createVNode("div", { style: { height: "550px" } }, [q({ style: { height: "100%" } }, w.type === "user" ? M.value : N.value, e.value, (w) => e.value = w)]),
1464
- onOk() {
1465
- Y(e.value, "update:modelValue"), Y(e.value, "updateModelValue");
1466
- },
1467
- onAfterLeave() {
1468
- nextTick(() => {
1469
- X.value?.blur(), Z = !1;
1470
- });
1471
- }
1472
- });
1473
- }, $ = { arrow: () => createVNode(NIcon, null, { default: () => [w.type === "user" ? createVNode(IGroup, null, null) : createVNode(IDept, null, null)] }) };
1474
- return () => {
1475
- let e = w.type === "user" ? M.value : N.value;
1476
- if (w.selectType === "dropdown" && w.type === "dept") return createVNode(NTreeSelect, {
1477
- options: e,
1478
- keyField: "value",
1479
- defaultExpandAll: w.defaultExpandAll,
1480
- checkable: w.multiple,
1481
- multiple: w.multiple,
1482
- filter: (e, w) => w.label.includes(e) || w.value.includes(e),
1483
- value: w.modelValue,
1484
- onUpdateValue: (e) => {
1485
- w.multiple && w.max && e?.length > w.max || T("updateModelValue", e);
1486
- },
1487
- "onUpdate:value": (e) => {
1488
- w.multiple && w.max && e?.length > w.max || T("update:modelValue", e);
1489
- }
1490
- }, _isSlot($) ? $ : { default: () => [$] });
1491
- if (w.selectType === "transfer") return q(E, e, O.value, (e) => Y(e, "update:modelValue"), (e) => Y(e, "updateModelValue"));
1492
- let D = w.selectType === "dropdown";
1493
- return createVNode(NSelect, mergeProps(E, {
1494
- key: w.type,
1495
- ref: X,
1496
- show: D ? void 0 : !1,
1497
- filterable: D ? w.filterable : !1,
1498
- options: e,
1499
- multiple: w.multiple,
1500
- size: w.size,
1501
- placeholder: w.placeholder,
1502
- disabled: w.disabled || void 0,
1503
- value: w.modelValue,
1504
- renderTag: w.multiple ? J : void 0,
1505
- onFocus: D ? void 0 : Q,
1506
- onUpdateValue: (e) => {
1507
- T("updateModelValue", e);
1508
- },
1509
- "onUpdate:value": (e) => {
1510
- T("update:modelValue", e);
1511
- }
1512
- }), _isSlot($) ? $ : { default: () => [$] });
1513
- };
1514
- }
1515
- });
1516
- function renderUser(e, w, { placement: T, size: E }) {
1517
- let D = e.nickname.split(" ").at(-1), O = D;
1518
- return /^[\u4E00-\u9FA5]+$/.test(D) ? O = D.length >= 3 ? D.slice(-2) : D : D.length > 4 && (O = createVNode(NIcon, null, { default: () => [createVNode(IAccount, null, null)] })), createVNode(NPopover, {
1519
- key: e.username,
1520
- raw: !0,
1521
- placement: T
1522
- }, {
1523
- default: () => createVNode(NCard, {
1524
- style: "width: 200px",
1525
- size: "small"
1526
- }, { default: () => [createVNode(NH4, null, { default: () => [e.nickname] }), createVNode("span", null, [e.username])] }),
1527
- trigger: () => {
1528
- let T = createVNode(NAvatar, {
1529
- color: "var(--color-primary)",
1530
- round: !0,
1531
- size: E,
1532
- style: w ? {
1533
- position: "absolute",
1534
- bottom: -(E - 20) / 2 + "px"
1535
- } : ""
1536
- }, _isSlot(O) ? O : { default: () => [O] });
1537
- return w ? createVNode("div", { style: w ? {
1538
- display: "inline-block",
1539
- minWidth: E + "px",
1540
- height: E + "px"
1541
- } : "" }, [T, w ? createVNode("span", { style: { marginLeft: E + 6 + "px" } }, [e.nickname]) : void 0]) : T;
1542
- }
1543
- });
1544
- }
1545
- function renderUsers(e, w = {}) {
1546
- w.size ||= 24, w.max ||= 4;
1547
- let { max: T, size: E } = w;
1548
- return e.length <= 1 ? createVNode("span", { style: "position: relative" }, [e.map((e) => renderUser(e, !0, w))]) : createVNode("span", { style: {
1549
- display: "inline-block",
1550
- height: E + "px"
1551
- } }, [createVNode(NAvatarGroup, {
1552
- options: e,
1553
- size: E,
1554
- max: T || 4,
1555
- style: "top: -2px"
1556
- }, {
1557
- avatar: ({ option: e }) => renderUser(e, !1, w),
1558
- rest: ({ options: e, rest: w }) => createVNode(NDropdown, {
1559
- options: e,
1560
- keyField: "username",
1561
- labelField: "nickname",
1562
- renderOption: ({ option: w }) => renderUser(w, !1, e)
1563
- }, { default: () => [createVNode(NAvatar, null, { default: () => [createTextVNode("+"), w] })] })
1564
- })]);
1565
- }
1566
- const DtDeptRender = /* @__PURE__ */ defineComponent({
1567
- name: "DeptRender",
1568
- props: {
1569
- value: [String, Array],
1570
- multiple: Boolean,
1571
- getDeptsByCode: Function
1572
- },
1573
- setup(e) {
1574
- let w = ref([]), T = {};
1575
- return watch([() => e.modelValue, () => e.multiple], ([E, D]) => {
1576
- w.value = [];
1577
- let O = E ? D ? Array.isArray(E) ? E : E.trim() ? E.trim().split(",") : [] : [E] : [], k = [];
1578
- for (let [e, E] of O.entries()) T[E] || (T[E] = reactive({
1579
- code: E,
1580
- name: E
1581
- }), k.push(E)), w.value[e] = T[E];
1582
- k.length > 0 && e.getDeptsByCode(k).then((e) => {
1583
- for (let w of e) Object.assign(T[w.code], w);
1584
- });
1585
- }, { immediate: !0 }), () => w.value.map((e) => createVNode(NTag, { key: e.code }, { default: () => [e.name] }));
1586
- }
1587
- }), DtUserRender = /* @__PURE__ */ defineComponent({
1588
- name: "UserRender",
1589
- props: {
1590
- value: [String, Array],
1591
- multiple: Boolean,
1592
- max: Number,
1593
- size: Number,
1594
- placement: String,
1595
- getUsersByUsername: Function
1596
- },
1597
- setup(e) {
1598
- let w = ref([]), T = {};
1599
- return watch([() => e.modelValue, () => e.multiple], ([E, D]) => {
1600
- w.value = [];
1601
- let O = E ? D ? Array.isArray(E) ? E : E.trim() ? E.trim().split(",") : [] : [E] : [], k = [];
1602
- for (let [e, E] of O.entries()) T[E] || (T[E] = reactive({
1603
- code: E,
1604
- name: E
1605
- }), k.push(E)), w.value[e] = T[E];
1606
- k.length > 0 && e.getUsersByUsername(k).then((e) => {
1607
- for (let w of e) Object.assign(T[w.code], w);
1608
- });
1609
- }, { immediate: !0 }), () => renderUsers(w.value, e);
1610
- }
1611
- });
1612
- export { NRadios as a, DataSelection as c, useLocaleEdit as d, DataFilter as f, NCheckboxes as g, DataActions as h, renderUsers as i, DataPagination as l, DataCustom as m, DtUserDept as n, DataTable as o, DataForm as p, DtUserRender as r, useDataTableDrag as s, DtDeptRender as t, DataLocaleInput as u };