@ianicdev/datatables2 0.13.3 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/{Comparison-Bfmyo3Xa.cjs → Comparison-B1k718kG.cjs} +1 -1
  2. package/dist/{Comparison-DQKuQ5sY.js → Comparison-DTzJRNSy.js} +6 -6
  3. package/dist/{Datepicker-CgaWBwqc.js → Datepicker-C_KKuvSU.js} +24 -24
  4. package/dist/{Datepicker-CHXMZ0_U.cjs → Datepicker-S2Vl_t28.cjs} +1 -1
  5. package/dist/{Options-Dzm1_SN_.js → Options-Bj3Jo-IP.js} +6 -6
  6. package/dist/{Options-BsWwBtFA.cjs → Options-EhfS46B8.cjs} +1 -1
  7. package/dist/{RefreshTable-CiCnJqRp.cjs → RefreshTable-Bs1a9PJD.cjs} +1 -1
  8. package/dist/{RefreshTable-0OZhCgVc.js → RefreshTable-Dq7B7xo2.js} +1 -1
  9. package/dist/{Search-B-kaxLsc.cjs → Search-BWy8k_Eg.cjs} +1 -1
  10. package/dist/{Search-DBCGZBxm.js → Search-CRW-DZiL.js} +8 -8
  11. package/dist/{Table-Cngs-CvH.cjs → Table-Du0Te7Zd.cjs} +1 -1
  12. package/dist/{Table-VfsWPt6d.js → Table-spuLCMf3.js} +3 -3
  13. package/dist/{TableServer-DPQ_XeXs.cjs → TableServer-BRxInTYw.cjs} +1 -1
  14. package/dist/{TableServer-CPxJnObB.js → TableServer-lxgN28QV.js} +3 -3
  15. package/dist/TableVirtual-CNTcgkyE.js +310 -0
  16. package/dist/TableVirtual-DHsPiFBj.cjs +1 -0
  17. package/dist/{cellRender-CuPsd_dj.js → cellRender-Bhtc4Itp.js} +22 -19
  18. package/dist/{cellRender-DNNEbGS8.cjs → cellRender-DnNtKWhj.cjs} +1 -1
  19. package/dist/{dataTables-DaHH5BJi.js → dataTables-CWzjBBzz.js} +326 -326
  20. package/dist/dataTables-DyiBukfs.cjs +4 -0
  21. package/dist/datatables.cjs +1 -1
  22. package/dist/datatables.js +1 -1
  23. package/dist/datatables2.css +1 -1
  24. package/dist/index-BIU6vg82.js +4656 -0
  25. package/dist/{index-DoH33mkF.js → index-Bkdn_tzR.js} +2 -2
  26. package/dist/{index-CheHIvYC.cjs → index-BzQgkBK3.cjs} +1 -1
  27. package/dist/index-CBlqNooE.cjs +1 -0
  28. package/dist/{index-Dyh2yegg.cjs → index-CaNvcRDB.cjs} +1 -1
  29. package/dist/{index-CYN9sV_c.cjs → index-DIZGGvJw.cjs} +1 -1
  30. package/dist/{index-D65STyD7.js → index-ka-ZCwwl.js} +1 -1
  31. package/dist/{index-2dniBO7B.js → index-tBoBj0Rj.js} +12 -12
  32. package/dist/{useColumns-DBnIlIB2.cjs → useColumns-QAZVw0r6.cjs} +1 -1
  33. package/dist/{useColumns-CwA9Nn3T.js → useColumns-tIJVX7bL.js} +2 -2
  34. package/lib/locale/de.js +5 -0
  35. package/lib/locale/el.js +5 -0
  36. package/lib/locale/en.js +5 -0
  37. package/package.json +2 -2
  38. package/dist/dataTables-DCTgRVVK.cjs +0 -4
  39. package/dist/index-DT_nX8re.cjs +0 -1
  40. package/dist/index-upuyXG4P.js +0 -4627
@@ -0,0 +1,4656 @@
1
+ import { ref as q, inject as _e, computed as x, toRef as R, shallowRef as ee, watch as se, createVNode as y, normalizeStyle as xe, normalizeClass as re, createElementVNode as b, mergeProps as H, withDirectives as Ke, vShow as At, Fragment as ce, toDisplayString as It, useModel as Ft, openBlock as ae, createBlock as ye, withCtx as Ce, createElementBlock as je, renderList as qt, unref as $, mergeModels as Jt, useId as Ye, provide as qe, onScopeDispose as ct, nextTick as ke, onBeforeMount as _n, onBeforeUnmount as Cl, onMounted as ot, cloneVNode as An, watchEffect as Ut, toValue as Kt, createTextVNode as Vl, defineAsyncComponent as Be, resolveDynamicComponent as Me, onUnmounted as Fn, isRef as wt, createCommentVNode as Ne, defineComponent as Dt, useTemplateRef as xl } from "vue";
2
+ import { defineStore as Il } from "pinia";
3
+ import { u as Tt, m as jt, P as wl, c as Le, a as Dn, e as Tn, r as Bn, g as ue, b as Pl, d as _l, f as Pt, I as dt, h as de, V as dl, i as Se, j as Xt, p as X, k as he, l as Al, n as $e, o as Rn, q as be, s as ut, t as Yt, v as Je, w as Qt, x as ze, R as nt, y as it, z as Zt, A as Bt, B as el, C as yt, D as En, E as Ve, F as vl, G as Fl, H as Dl, J as Tl, K as Bl, L as De, M as at, N as On, O as Rl, Q as ht, S as $n, T as tl, U as bt, W as ll, X as He, Y as Rt, Z as pt, _ as nl, $ as El, a0 as Ol, a1 as al, a2 as kt, a3 as $l, a4 as Re, a5 as St, a6 as vt, a7 as Qe, a8 as Ml, a9 as ol, aa as Et, ab as Nl, ac as Ll, ad as Hl, ae as Gt, af as Mn, ag as zl, ah as Nn, ai as Ln, aj as Hn, ak as Ul, al as tt, am as Kl, an as zn, ao as fl, ap as Ct, aq as jl, ar as Un, as as Kn, at as Gl, au as Wl, av as ul, aw as ft, ax as jn, ay as Ue, az as ql, aA as Jl, aB as _t, aC as Xl, aD as Gn, aE as Wn, aF as qn, aG as Jn, aH as Xn, aI as Yn, aJ as ml, aK as Qn, aL as Zn, aM as lt, aN as ea, aO as ta, aP as la, aQ as na } from "./dataTables-CWzjBBzz.js";
4
+ import { useEventBus as Yl, createSharedComposable as aa, useResizeObserver as oa } from "@vueuse/core";
5
+ import { useI18n as ua } from "vue-i18n";
6
+ const Ot = Il("datatables", () => {
7
+ const e = q([]), a = ({ table_id: o }) => {
8
+ const u = e.value.findIndex((d) => d.id === o), c = {
9
+ search: {
10
+ query: ""
11
+ },
12
+ advancedFilters: {
13
+ query: {}
14
+ },
15
+ hardFilters: {
16
+ query: {}
17
+ },
18
+ options: {
19
+ hash: null,
20
+ columns: {},
21
+ state: {}
22
+ }
23
+ };
24
+ u !== -1 && e.value.splice(u, 1), e.value.push({ id: o, ...c });
25
+ }, t = async (o) => {
26
+ const c = new TextEncoder().encode(o), d = await crypto.subtle.digest("SHA-256", c);
27
+ return Array.from(new Uint8Array(d)).map((f) => f.toString(16).padStart(2, "0")).join("");
28
+ }, n = ({ table_id: o, headers: u }) => {
29
+ t(JSON.stringify(u ?? [])).then((c) => {
30
+ l({ table_id: o, name: "options", value: { hash: c } });
31
+ });
32
+ }, l = ({ table_id: o, name: u, value: c }) => {
33
+ e.value = e.value.map((d) => {
34
+ if (d.id === o && d.hasOwnProperty(u)) {
35
+ const v = d[u];
36
+ if (v && typeof c == "object")
37
+ for (const r in c)
38
+ r in v && (v[r] = c[r]);
39
+ }
40
+ return d;
41
+ });
42
+ };
43
+ return {
44
+ // Store Data
45
+ tables: e,
46
+ // Store Methods
47
+ addTable: a,
48
+ setData: l,
49
+ restoreData: ({ table_id: o, data: u }) => {
50
+ e.value = e.value.map((c) => (c.id === o && (c = u), c));
51
+ },
52
+ getCurrentTable: (o) => e.value.find((u) => u.id === o),
53
+ // Hash
54
+ hashString: t,
55
+ setTableHash: n
56
+ };
57
+ });
58
+ function Vt() {
59
+ const { setData: e, getCurrentTable: a } = Ot(), t = _e("table_props"), n = x(() => a(t.id)), l = x(() => n.value.search?.query), i = x(() => {
60
+ if (!t?.headers.length) return null;
61
+ const c = n.value.options?.columns.selected ?? [];
62
+ return (n.value.options?.columns.sorted ?? []).filter((r) => c.includes(r)).map(
63
+ (r) => t.headers.find((f) => f.key === r)
64
+ );
65
+ }), s = x(() => n.value.hardFilters?.query), o = x(() => n.value.advancedFilters?.query);
66
+ return {
67
+ tableState: n,
68
+ searchState: l,
69
+ advancedFiltersState: o,
70
+ hardFiltersState: s,
71
+ headersState: i,
72
+ saveTableOptions: (c) => {
73
+ e({
74
+ table_id: t.id,
75
+ name: "options",
76
+ value: {
77
+ state: c
78
+ }
79
+ });
80
+ }
81
+ };
82
+ }
83
+ const ia = /* @__PURE__ */ Symbol.for("vuetify:goto");
84
+ function sa() {
85
+ return {
86
+ container: void 0,
87
+ duration: 300,
88
+ layout: !1,
89
+ offset: 0,
90
+ easing: "easeInOutCubic",
91
+ patterns: Tn
92
+ };
93
+ }
94
+ function ra(e) {
95
+ return il(e) ?? (document.scrollingElement || document.body);
96
+ }
97
+ function il(e) {
98
+ return typeof e == "string" ? document.querySelector(e) : Bn(e);
99
+ }
100
+ function Lt(e, a, t) {
101
+ if (typeof e == "number") return a && t ? -e : e;
102
+ let n = il(e), l = 0;
103
+ for (; n; )
104
+ l += a ? n.offsetLeft : n.offsetTop, n = n.offsetParent;
105
+ return l;
106
+ }
107
+ async function gl(e, a, t, n) {
108
+ const l = t ? "scrollLeft" : "scrollTop", i = jt(n?.options ?? sa(), a), s = n?.rtl.value, o = (typeof e == "number" ? e : il(e)) ?? 0, u = i.container === "parent" && o instanceof HTMLElement ? o.parentElement : ra(i.container), c = wl() ? i.patterns.instant : typeof i.easing == "function" ? i.easing : i.patterns[i.easing];
109
+ if (!c) throw new TypeError(`Easing function "${i.easing}" not found.`);
110
+ let d;
111
+ if (typeof o == "number")
112
+ d = Lt(o, t, s);
113
+ else if (d = Lt(o, t, s) - Lt(u, t, s), i.layout) {
114
+ const g = window.getComputedStyle(o).getPropertyValue("--v-layout-top");
115
+ g && (d -= parseInt(g, 10));
116
+ }
117
+ d += i.offset, d = da(u, d, !!s, !!t);
118
+ const v = u[l] ?? 0;
119
+ if (d === v) return Promise.resolve(d);
120
+ const r = performance.now();
121
+ return new Promise((f) => requestAnimationFrame(function g(h) {
122
+ const w = (h - r) / i.duration, I = Math.floor(v + (d - v) * c(Le(w, 0, 1)));
123
+ if (u[l] = I, w >= 1 && Math.abs(I - u[l]) < 10)
124
+ return f(d);
125
+ if (w > 2)
126
+ return Dn("Scroll target is not reachable"), f(u[l]);
127
+ requestAnimationFrame(g);
128
+ }));
129
+ }
130
+ function ca() {
131
+ let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
132
+ const a = _e(ia), {
133
+ isRtl: t
134
+ } = Tt();
135
+ if (!a) throw new Error("[Vuetify] Could not find injected goto instance");
136
+ const n = {
137
+ ...a,
138
+ // can be set via VLocaleProvider
139
+ rtl: R(() => a.rtl.value || t.value)
140
+ };
141
+ async function l(i, s) {
142
+ return gl(i, jt(e, s), !1, n);
143
+ }
144
+ return l.horizontal = async (i, s) => gl(i, jt(e, s), !0, n), l;
145
+ }
146
+ function da(e, a, t, n) {
147
+ const {
148
+ scrollWidth: l,
149
+ scrollHeight: i
150
+ } = e, [s, o] = e === document.scrollingElement ? [window.innerWidth, window.innerHeight] : [e.offsetWidth, e.offsetHeight];
151
+ let u, c;
152
+ return n ? t ? (u = -(l - s), c = 0) : (u = 0, c = l - s) : (u = 0, c = i + -o), Le(a, u, c);
153
+ }
154
+ function va(e) {
155
+ let {
156
+ selectedElement: a,
157
+ containerElement: t,
158
+ isRtl: n,
159
+ isHorizontal: l
160
+ } = e;
161
+ const i = mt(l, t), s = Ql(l, n, t), o = mt(l, a), u = Zl(l, a), c = o * 0.4;
162
+ return s > u ? u - c : s + i < u + o ? u - i + o + c : s;
163
+ }
164
+ function fa(e) {
165
+ let {
166
+ selectedElement: a,
167
+ containerElement: t,
168
+ isHorizontal: n
169
+ } = e;
170
+ const l = mt(n, t), i = Zl(n, a), s = mt(n, a);
171
+ return i - l / 2 + s / 2;
172
+ }
173
+ function yl(e, a) {
174
+ return a?.[e ? "scrollWidth" : "scrollHeight"] || 0;
175
+ }
176
+ function ma(e, a) {
177
+ return a?.[e ? "clientWidth" : "clientHeight"] || 0;
178
+ }
179
+ function Ql(e, a, t) {
180
+ if (!t)
181
+ return 0;
182
+ const {
183
+ scrollLeft: n,
184
+ offsetWidth: l,
185
+ scrollWidth: i
186
+ } = t;
187
+ return e ? a ? i - l + n : n : t.scrollTop;
188
+ }
189
+ function mt(e, a) {
190
+ return a?.[e ? "offsetWidth" : "offsetHeight"] || 0;
191
+ }
192
+ function Zl(e, a) {
193
+ return a?.[e ? "offsetLeft" : "offsetTop"] || 0;
194
+ }
195
+ const en = /* @__PURE__ */ Symbol.for("vuetify:v-slide-group"), tn = X({
196
+ centerActive: Boolean,
197
+ scrollToActive: {
198
+ type: Boolean,
199
+ default: !0
200
+ },
201
+ contentClass: null,
202
+ direction: {
203
+ type: String,
204
+ default: "horizontal"
205
+ },
206
+ symbol: {
207
+ type: null,
208
+ default: en
209
+ },
210
+ nextIcon: {
211
+ type: he,
212
+ default: "$next"
213
+ },
214
+ prevIcon: {
215
+ type: he,
216
+ default: "$prev"
217
+ },
218
+ showArrows: {
219
+ type: [Boolean, String],
220
+ validator: (e) => typeof e == "boolean" || ["always", "desktop", "mobile", "never"].includes(e)
221
+ },
222
+ ...be(),
223
+ ...Rn({
224
+ mobile: null
225
+ }),
226
+ ...$e(),
227
+ ...Al({
228
+ selectedClass: "v-slide-group-item--active"
229
+ })
230
+ }, "VSlideGroup"), hl = ue()({
231
+ name: "VSlideGroup",
232
+ props: tn(),
233
+ emits: {
234
+ "update:modelValue": (e) => !0
235
+ },
236
+ setup(e, a) {
237
+ let {
238
+ slots: t
239
+ } = a;
240
+ const {
241
+ isRtl: n
242
+ } = Tt(), {
243
+ displayClasses: l,
244
+ mobile: i
245
+ } = Pl(e), s = _l(e, e.symbol), o = ee(!1), u = ee(0), c = ee(0), d = ee(0), v = x(() => e.direction === "horizontal"), {
246
+ resizeRef: r,
247
+ contentRect: f
248
+ } = Pt(), {
249
+ resizeRef: g,
250
+ contentRect: h
251
+ } = Pt(), p = ca(), w = x(() => ({
252
+ container: r.el,
253
+ duration: 200,
254
+ easing: "easeOutQuart"
255
+ })), I = x(() => s.selected.value.length ? s.items.value.findIndex((k) => k.id === s.selected.value[0]) : -1), C = x(() => s.selected.value.length ? s.items.value.findIndex((k) => k.id === s.selected.value[s.selected.value.length - 1]) : -1);
256
+ if (dt) {
257
+ let k = -1;
258
+ se(() => [s.selected.value, f.value, h.value, v.value], () => {
259
+ cancelAnimationFrame(k), k = requestAnimationFrame(() => {
260
+ if (f.value && h.value) {
261
+ const m = v.value ? "width" : "height";
262
+ c.value = f.value[m], d.value = h.value[m], o.value = c.value + 1 < d.value;
263
+ }
264
+ if (e.scrollToActive && I.value >= 0 && g.el) {
265
+ const m = g.el.children[C.value];
266
+ E(m, e.centerActive);
267
+ }
268
+ });
269
+ });
270
+ }
271
+ const F = ee(!1);
272
+ function E(k, m) {
273
+ let _ = 0;
274
+ m ? _ = fa({
275
+ containerElement: r.el,
276
+ isHorizontal: v.value,
277
+ selectedElement: k
278
+ }) : _ = va({
279
+ containerElement: r.el,
280
+ isHorizontal: v.value,
281
+ isRtl: n.value,
282
+ selectedElement: k
283
+ }), U(_);
284
+ }
285
+ function U(k) {
286
+ if (!dt || !r.el) return;
287
+ const m = mt(v.value, r.el), _ = Ql(v.value, n.value, r.el);
288
+ if (!(yl(v.value, r.el) <= m || // Prevent scrolling by only a couple of pixels, which doesn't look smooth
289
+ Math.abs(k - _) < 16)) {
290
+ if (v.value && n.value && r.el) {
291
+ const {
292
+ scrollWidth: oe,
293
+ offsetWidth: ge
294
+ } = r.el;
295
+ k = oe - ge - k;
296
+ }
297
+ v.value ? p.horizontal(k, w.value) : p(k, w.value);
298
+ }
299
+ }
300
+ function A(k) {
301
+ const {
302
+ scrollTop: m,
303
+ scrollLeft: _
304
+ } = k.target;
305
+ u.value = v.value ? _ : m;
306
+ }
307
+ function V(k) {
308
+ if (F.value = !0, !(!o.value || !g.el)) {
309
+ for (const m of k.composedPath())
310
+ for (const _ of g.el.children)
311
+ if (_ === m) {
312
+ E(_);
313
+ return;
314
+ }
315
+ }
316
+ }
317
+ function M(k) {
318
+ F.value = !1;
319
+ }
320
+ let D = !1;
321
+ function N(k) {
322
+ !D && !F.value && !(k.relatedTarget && g.el?.contains(k.relatedTarget)) && W(), D = !1;
323
+ }
324
+ function le() {
325
+ D = !0;
326
+ }
327
+ function z(k) {
328
+ if (!g.el) return;
329
+ function m(_) {
330
+ k.preventDefault(), W(_);
331
+ }
332
+ v.value ? k.key === "ArrowRight" ? m(n.value ? "prev" : "next") : k.key === "ArrowLeft" && m(n.value ? "next" : "prev") : k.key === "ArrowDown" ? m("next") : k.key === "ArrowUp" && m("prev"), k.key === "Home" ? m("first") : k.key === "End" && m("last");
333
+ }
334
+ function J(k, m) {
335
+ if (!k) return;
336
+ let _ = k;
337
+ do
338
+ _ = _?.[m === "next" ? "nextElementSibling" : "previousElementSibling"];
339
+ while (_?.hasAttribute("disabled"));
340
+ return _;
341
+ }
342
+ function W(k) {
343
+ if (!g.el) return;
344
+ let m;
345
+ if (!k)
346
+ m = Xt(g.el)[0];
347
+ else if (k === "next") {
348
+ if (m = J(g.el.querySelector(":focus"), k), !m) return W("first");
349
+ } else if (k === "prev") {
350
+ if (m = J(g.el.querySelector(":focus"), k), !m) return W("last");
351
+ } else k === "first" ? (m = g.el.firstElementChild, m?.hasAttribute("disabled") && (m = J(m, "next"))) : k === "last" && (m = g.el.lastElementChild, m?.hasAttribute("disabled") && (m = J(m, "prev")));
352
+ m && m.focus({
353
+ preventScroll: !0
354
+ });
355
+ }
356
+ function ie(k) {
357
+ const m = v.value && n.value ? -1 : 1, _ = (k === "prev" ? -m : m) * c.value;
358
+ let Q = u.value + _;
359
+ if (v.value && n.value && r.el) {
360
+ const {
361
+ scrollWidth: oe,
362
+ offsetWidth: ge
363
+ } = r.el;
364
+ Q += oe - ge;
365
+ }
366
+ U(Q);
367
+ }
368
+ const j = x(() => ({
369
+ next: s.next,
370
+ prev: s.prev,
371
+ select: s.select,
372
+ isSelected: s.isSelected
373
+ })), K = x(() => o.value || Math.abs(u.value) > 0), ve = x(() => {
374
+ switch (e.showArrows) {
375
+ case "never":
376
+ return !1;
377
+ // Always show arrows on desktop & mobile
378
+ case "always":
379
+ return !0;
380
+ // Always show arrows on desktop
381
+ case "desktop":
382
+ return !i.value;
383
+ // Show arrows on mobile when overflowing.
384
+ // This matches the default 2.2 behavior
385
+ case !0:
386
+ return K.value;
387
+ // Always show on mobile
388
+ case "mobile":
389
+ return i.value || K.value;
390
+ // https://material.io/components/tabs#scrollable-tabs
391
+ // Always show arrows when
392
+ // overflowed on desktop
393
+ default:
394
+ return !i.value && K.value;
395
+ }
396
+ }), B = x(() => Math.abs(u.value) > 1), O = x(() => {
397
+ if (!r.value || !K.value) return !1;
398
+ const k = yl(v.value, r.el), m = ma(v.value, r.el);
399
+ return k - m - Math.abs(u.value) > 1;
400
+ });
401
+ return de(() => y(e.tag, {
402
+ class: re(["v-slide-group", {
403
+ "v-slide-group--vertical": !v.value,
404
+ "v-slide-group--has-affixes": ve.value,
405
+ "v-slide-group--is-overflowing": o.value
406
+ }, l.value, e.class]),
407
+ style: xe(e.style),
408
+ tabindex: F.value || s.selected.value.length ? -1 : 0,
409
+ onFocus: N
410
+ }, {
411
+ default: () => [ve.value && b("div", {
412
+ key: "prev",
413
+ class: re(["v-slide-group__prev", {
414
+ "v-slide-group__prev--disabled": !B.value
415
+ }]),
416
+ onMousedown: le,
417
+ onClick: () => B.value && ie("prev")
418
+ }, [t.prev?.(j.value) ?? y(dl, null, {
419
+ default: () => [y(Se, {
420
+ icon: n.value ? e.nextIcon : e.prevIcon
421
+ }, null)]
422
+ })]), b("div", {
423
+ key: "container",
424
+ ref: r,
425
+ class: re(["v-slide-group__container", e.contentClass]),
426
+ onScroll: A
427
+ }, [b("div", {
428
+ ref: g,
429
+ class: "v-slide-group__content",
430
+ onFocusin: V,
431
+ onFocusout: M,
432
+ onKeydown: z
433
+ }, [t.default?.(j.value)])]), ve.value && b("div", {
434
+ key: "next",
435
+ class: re(["v-slide-group__next", {
436
+ "v-slide-group__next--disabled": !O.value
437
+ }]),
438
+ onMousedown: le,
439
+ onClick: () => O.value && ie("next")
440
+ }, [t.next?.(j.value) ?? y(dl, null, {
441
+ default: () => [y(Se, {
442
+ icon: n.value ? e.prevIcon : e.nextIcon
443
+ }, null)]
444
+ })])]
445
+ })), {
446
+ selected: s.selected,
447
+ scrollTo: ie,
448
+ scrollOffset: u,
449
+ focus: W,
450
+ hasPrev: B,
451
+ hasNext: O
452
+ };
453
+ }
454
+ }), ln = /* @__PURE__ */ Symbol.for("vuetify:v-chip-group"), ga = X({
455
+ baseColor: String,
456
+ column: Boolean,
457
+ filter: Boolean,
458
+ valueComparator: {
459
+ type: Function,
460
+ default: Je
461
+ },
462
+ ...tn({
463
+ scrollToActive: !1
464
+ }),
465
+ ...be(),
466
+ ...Al({
467
+ selectedClass: "v-chip--selected"
468
+ }),
469
+ ...$e(),
470
+ ...ze(),
471
+ ...Qt({
472
+ variant: "tonal"
473
+ })
474
+ }, "VChipGroup"), ya = ue()({
475
+ name: "VChipGroup",
476
+ props: ga(),
477
+ emits: {
478
+ "update:modelValue": (e) => !0
479
+ },
480
+ setup(e, a) {
481
+ let {
482
+ slots: t
483
+ } = a;
484
+ const {
485
+ themeClasses: n
486
+ } = ut(e), {
487
+ isSelected: l,
488
+ select: i,
489
+ next: s,
490
+ prev: o,
491
+ selected: u
492
+ } = _l(e, ln);
493
+ return Yt({
494
+ VChip: {
495
+ baseColor: R(() => e.baseColor),
496
+ color: R(() => e.color),
497
+ disabled: R(() => e.disabled),
498
+ filter: R(() => e.filter),
499
+ variant: R(() => e.variant)
500
+ }
501
+ }), de(() => {
502
+ const c = hl.filterProps(e);
503
+ return y(hl, H(c, {
504
+ class: ["v-chip-group", {
505
+ "v-chip-group--column": e.column
506
+ }, n.value, e.class],
507
+ style: e.style
508
+ }), {
509
+ default: () => [t.default?.({
510
+ isSelected: l,
511
+ select: i,
512
+ next: s,
513
+ prev: o,
514
+ selected: u.value
515
+ })]
516
+ });
517
+ }), {};
518
+ }
519
+ }), ha = X({
520
+ activeClass: String,
521
+ appendAvatar: String,
522
+ appendIcon: he,
523
+ baseColor: String,
524
+ closable: Boolean,
525
+ closeIcon: {
526
+ type: he,
527
+ default: "$delete"
528
+ },
529
+ closeLabel: {
530
+ type: String,
531
+ default: "$vuetify.close"
532
+ },
533
+ draggable: Boolean,
534
+ filter: Boolean,
535
+ filterIcon: {
536
+ type: he,
537
+ default: "$complete"
538
+ },
539
+ label: Boolean,
540
+ link: {
541
+ type: Boolean,
542
+ default: void 0
543
+ },
544
+ pill: Boolean,
545
+ prependAvatar: String,
546
+ prependIcon: he,
547
+ ripple: {
548
+ type: [Boolean, Object],
549
+ default: !0
550
+ },
551
+ text: {
552
+ type: [String, Number, Boolean],
553
+ default: void 0
554
+ },
555
+ modelValue: {
556
+ type: Boolean,
557
+ default: !0
558
+ },
559
+ onClick: He(),
560
+ onClickOnce: He(),
561
+ ...ll(),
562
+ ...be(),
563
+ ...bt(),
564
+ ...tl(),
565
+ ...$n(),
566
+ ...ht(),
567
+ ...Rl(),
568
+ ...On(),
569
+ ...$e({
570
+ tag: "span"
571
+ }),
572
+ ...ze(),
573
+ ...Qt({
574
+ variant: "tonal"
575
+ })
576
+ }, "VChip"), gt = ue()({
577
+ name: "VChip",
578
+ directives: {
579
+ vRipple: nt
580
+ },
581
+ props: ha(),
582
+ emits: {
583
+ "click:close": (e) => !0,
584
+ "update:modelValue": (e) => !0,
585
+ "group:selected": (e) => !0,
586
+ click: (e) => !0
587
+ },
588
+ setup(e, a) {
589
+ let {
590
+ attrs: t,
591
+ emit: n,
592
+ slots: l
593
+ } = a;
594
+ const {
595
+ t: i
596
+ } = it(), {
597
+ borderClasses: s
598
+ } = Zt(e), {
599
+ densityClasses: o
600
+ } = Bt(e), {
601
+ elevationClasses: u
602
+ } = el(e), {
603
+ roundedClasses: c
604
+ } = yt(e), {
605
+ sizeClasses: d
606
+ } = En(e), {
607
+ themeClasses: v
608
+ } = ut(e), r = Ve(e, "modelValue"), f = vl(e, ln, !1), g = vl(e, en, !1), h = Fl(e, t), p = R(() => e.link !== !1 && h.isLink.value), w = x(() => !e.disabled && e.link !== !1 && (!!f || e.link || h.isClickable.value)), I = R(() => ({
609
+ "aria-label": i(e.closeLabel),
610
+ disabled: e.disabled,
611
+ onClick(V) {
612
+ V.preventDefault(), V.stopPropagation(), r.value = !1, n("click:close", V);
613
+ }
614
+ }));
615
+ se(r, (V) => {
616
+ V ? (f?.register(), g?.register()) : (f?.unregister(), g?.unregister());
617
+ });
618
+ const {
619
+ colorClasses: C,
620
+ colorStyles: F,
621
+ variantClasses: E
622
+ } = Dl(() => ({
623
+ color: !f || f.isSelected.value ? e.color ?? e.baseColor : e.baseColor,
624
+ variant: e.variant
625
+ }));
626
+ function U(V) {
627
+ n("click", V), w.value && (h.navigate.value?.(V), f?.toggle());
628
+ }
629
+ function A(V) {
630
+ (V.key === "Enter" || V.key === " ") && (V.preventDefault(), U(V));
631
+ }
632
+ return () => {
633
+ const V = h.isLink.value ? "a" : e.tag, M = !!(e.appendIcon || e.appendAvatar), D = !!(M || l.append), N = !!(l.close || e.closable), le = !!(l.filter || e.filter) && f, z = !!(e.prependIcon || e.prependAvatar), J = !!(z || l.prepend);
634
+ return r.value && Ke(y(V, H(h.linkProps, {
635
+ class: ["v-chip", {
636
+ "v-chip--disabled": e.disabled,
637
+ "v-chip--label": e.label,
638
+ "v-chip--link": w.value,
639
+ "v-chip--filter": le,
640
+ "v-chip--pill": e.pill,
641
+ [`${e.activeClass}`]: e.activeClass && h.isActive?.value
642
+ }, v.value, s.value, C.value, o.value, u.value, c.value, d.value, E.value, f?.selectedClass.value, e.class],
643
+ style: [F.value, e.style],
644
+ disabled: e.disabled || void 0,
645
+ draggable: e.draggable,
646
+ tabindex: w.value ? 0 : void 0,
647
+ onClick: U,
648
+ onKeydown: w.value && !p.value && A
649
+ }), {
650
+ default: () => [Tl(w.value, "v-chip"), le && y(Bl, {
651
+ key: "filter"
652
+ }, {
653
+ default: () => [Ke(b("div", {
654
+ class: "v-chip__filter"
655
+ }, [l.filter ? y(De, {
656
+ key: "filter-defaults",
657
+ disabled: !e.filterIcon,
658
+ defaults: {
659
+ VIcon: {
660
+ icon: e.filterIcon
661
+ }
662
+ }
663
+ }, l.filter) : y(Se, {
664
+ key: "filter-icon",
665
+ icon: e.filterIcon
666
+ }, null)]), [[At, f.isSelected.value]])]
667
+ }), J && b("div", {
668
+ key: "prepend",
669
+ class: "v-chip__prepend"
670
+ }, [l.prepend ? y(De, {
671
+ key: "prepend-defaults",
672
+ disabled: !z,
673
+ defaults: {
674
+ VAvatar: {
675
+ image: e.prependAvatar,
676
+ start: !0
677
+ },
678
+ VIcon: {
679
+ icon: e.prependIcon,
680
+ start: !0
681
+ }
682
+ }
683
+ }, l.prepend) : b(ce, null, [e.prependIcon && y(Se, {
684
+ key: "prepend-icon",
685
+ icon: e.prependIcon,
686
+ start: !0
687
+ }, null), e.prependAvatar && y(at, {
688
+ key: "prepend-avatar",
689
+ image: e.prependAvatar,
690
+ start: !0
691
+ }, null)])]), b("div", {
692
+ class: "v-chip__content",
693
+ "data-no-activator": ""
694
+ }, [l.default?.({
695
+ isSelected: f?.isSelected.value,
696
+ selectedClass: f?.selectedClass.value,
697
+ select: f?.select,
698
+ toggle: f?.toggle,
699
+ value: f?.value.value,
700
+ disabled: e.disabled
701
+ }) ?? It(e.text)]), D && b("div", {
702
+ key: "append",
703
+ class: "v-chip__append"
704
+ }, [l.append ? y(De, {
705
+ key: "append-defaults",
706
+ disabled: !M,
707
+ defaults: {
708
+ VAvatar: {
709
+ end: !0,
710
+ image: e.appendAvatar
711
+ },
712
+ VIcon: {
713
+ end: !0,
714
+ icon: e.appendIcon
715
+ }
716
+ }
717
+ }, l.append) : b(ce, null, [e.appendIcon && y(Se, {
718
+ key: "append-icon",
719
+ end: !0,
720
+ icon: e.appendIcon
721
+ }, null), e.appendAvatar && y(at, {
722
+ key: "append-avatar",
723
+ end: !0,
724
+ image: e.appendAvatar
725
+ }, null)])]), N && b("button", H({
726
+ key: "close",
727
+ class: "v-chip__close",
728
+ type: "button",
729
+ "data-testid": "close-chip"
730
+ }, I.value), [l.close ? y(De, {
731
+ key: "close-defaults",
732
+ defaults: {
733
+ VIcon: {
734
+ icon: e.closeIcon,
735
+ size: "x-small"
736
+ }
737
+ }
738
+ }, l.close) : y(Se, {
739
+ key: "close-icon",
740
+ icon: e.closeIcon,
741
+ size: "x-small"
742
+ }, null)])]
743
+ }), [[nt, w.value && e.ripple, null]]);
744
+ };
745
+ }
746
+ }), ba = X({
747
+ color: String,
748
+ ...ll(),
749
+ ...be(),
750
+ ...kt(),
751
+ ...tl(),
752
+ ...al(),
753
+ ...Ol(),
754
+ ...ht(),
755
+ ...$e(),
756
+ ...ze()
757
+ }, "VSheet"), sl = ue()({
758
+ name: "VSheet",
759
+ props: ba(),
760
+ setup(e, a) {
761
+ let {
762
+ slots: t
763
+ } = a;
764
+ const {
765
+ themeClasses: n
766
+ } = ut(e), {
767
+ backgroundColorClasses: l,
768
+ backgroundColorStyles: i
769
+ } = Rt(() => e.color), {
770
+ borderClasses: s
771
+ } = Zt(e), {
772
+ dimensionStyles: o
773
+ } = pt(e), {
774
+ elevationClasses: u
775
+ } = el(e), {
776
+ locationStyles: c
777
+ } = nl(e), {
778
+ positionClasses: d
779
+ } = El(e), {
780
+ roundedClasses: v
781
+ } = yt(e);
782
+ return de(() => y(e.tag, {
783
+ class: re(["v-sheet", n.value, l.value, s.value, u.value, d.value, v.value, e.class]),
784
+ style: xe([i.value, o.value, c.value, e.style])
785
+ }, t)), {};
786
+ }
787
+ }), pa = {
788
+ __name: "Selected",
789
+ props: {
790
+ modelValue: {},
791
+ modelModifiers: {}
792
+ },
793
+ emits: /* @__PURE__ */ Jt("save", ["update:modelValue"]),
794
+ setup(e, { emit: a }) {
795
+ const { advancedFiltersState: t } = Vt(), n = _e("table_props"), l = Ft(e, "modelValue"), i = (u, c) => {
796
+ const d = n.headers.find((g) => (g.advancedFilter?.key ?? g.key) === c), v = u.comparison === "=" ? ":" : " " + u.comparison, r = Array.isArray(u.value) ? u.value : [u.value], f = r.filter((g, h) => !(d.advancedFilter?.component === "datepicker" && h !== 0 && h !== r.length - 1)).map((g) => {
797
+ const h = d.advancedFilter?.options?.items ?? [];
798
+ let p = g, w;
799
+ return h.length && (w = h.find((I) => I.value === g), w && (p = w.title)), typeof d.advancedFilter?.valueFormatter == "function" && (p = d.advancedFilter.valueFormatter({
800
+ item: w,
801
+ value: g
802
+ })), p;
803
+ });
804
+ return `${d.title}${v} ${f.join(", ")}`;
805
+ }, s = (u) => {
806
+ l.value[u] = { comparison: "=", value: null }, o("save");
807
+ }, o = a;
808
+ return (u, c) => (ae(), ye(sl, null, {
809
+ default: Ce(() => [
810
+ y(ya, null, {
811
+ default: Ce(() => [
812
+ (ae(!0), je(ce, null, qt($(t), (d, v) => (ae(), ye(gt, {
813
+ key: v,
814
+ class: "my-0",
815
+ text: i(d, v),
816
+ closable: "",
817
+ value: d,
818
+ density: "comfortable",
819
+ "onClick:close": (r) => s(v)
820
+ }, null, 8, ["text", "value", "onClick:close"]))), 128))
821
+ ]),
822
+ _: 1
823
+ })
824
+ ]),
825
+ _: 1
826
+ }));
827
+ }
828
+ }, ka = X({
829
+ text: String,
830
+ onClick: He(),
831
+ ...be(),
832
+ ...ze()
833
+ }, "VLabel"), nn = ue()({
834
+ name: "VLabel",
835
+ props: ka(),
836
+ setup(e, a) {
837
+ let {
838
+ slots: t
839
+ } = a;
840
+ return de(() => b("label", {
841
+ class: re(["v-label", {
842
+ "v-label--clickable": !!e.onClick
843
+ }, e.class]),
844
+ style: xe(e.style),
845
+ onClick: e.onClick
846
+ }, [e.text, t.default?.()])), {};
847
+ }
848
+ }), an = /* @__PURE__ */ Symbol.for("vuetify:selection-control-group"), on = X({
849
+ color: String,
850
+ disabled: {
851
+ type: Boolean,
852
+ default: null
853
+ },
854
+ defaultsTarget: String,
855
+ error: Boolean,
856
+ id: String,
857
+ inline: Boolean,
858
+ falseIcon: he,
859
+ trueIcon: he,
860
+ ripple: {
861
+ type: [Boolean, Object],
862
+ default: !0
863
+ },
864
+ multiple: {
865
+ type: Boolean,
866
+ default: null
867
+ },
868
+ name: String,
869
+ readonly: {
870
+ type: Boolean,
871
+ default: null
872
+ },
873
+ modelValue: null,
874
+ type: String,
875
+ valueComparator: {
876
+ type: Function,
877
+ default: Je
878
+ },
879
+ ...be(),
880
+ ...bt(),
881
+ ...ze()
882
+ }, "SelectionControlGroup"), Sa = X({
883
+ ...on({
884
+ defaultsTarget: "VSelectionControl"
885
+ })
886
+ }, "VSelectionControlGroup");
887
+ ue()({
888
+ name: "VSelectionControlGroup",
889
+ props: Sa(),
890
+ emits: {
891
+ "update:modelValue": (e) => !0
892
+ },
893
+ setup(e, a) {
894
+ let {
895
+ slots: t
896
+ } = a;
897
+ const n = Ve(e, "modelValue"), l = Ye(), i = R(() => e.id || `v-selection-control-group-${l}`), s = R(() => e.name || i.value), o = /* @__PURE__ */ new Set();
898
+ return qe(an, {
899
+ modelValue: n,
900
+ forceUpdate: () => {
901
+ o.forEach((u) => u());
902
+ },
903
+ onForceUpdate: (u) => {
904
+ o.add(u), ct(() => {
905
+ o.delete(u);
906
+ });
907
+ }
908
+ }), Yt({
909
+ [e.defaultsTarget]: {
910
+ color: R(() => e.color),
911
+ disabled: R(() => e.disabled),
912
+ density: R(() => e.density),
913
+ error: R(() => e.error),
914
+ inline: R(() => e.inline),
915
+ modelValue: n,
916
+ multiple: R(() => !!e.multiple || e.multiple == null && Array.isArray(n.value)),
917
+ name: s,
918
+ falseIcon: R(() => e.falseIcon),
919
+ trueIcon: R(() => e.trueIcon),
920
+ readonly: R(() => e.readonly),
921
+ ripple: R(() => e.ripple),
922
+ type: R(() => e.type),
923
+ valueComparator: R(() => e.valueComparator)
924
+ }
925
+ }), de(() => b("div", {
926
+ class: re(["v-selection-control-group", {
927
+ "v-selection-control-group--inline": e.inline
928
+ }, e.class]),
929
+ style: xe(e.style),
930
+ role: e.type === "radio" ? "radiogroup" : void 0
931
+ }, [t.default?.()])), {};
932
+ }
933
+ });
934
+ const un = X({
935
+ label: String,
936
+ baseColor: String,
937
+ trueValue: null,
938
+ falseValue: null,
939
+ value: null,
940
+ ...be(),
941
+ ...on()
942
+ }, "VSelectionControl");
943
+ function Ca(e) {
944
+ const a = _e(an, void 0), {
945
+ densityClasses: t
946
+ } = Bt(e), n = Ve(e, "modelValue"), l = x(() => e.trueValue !== void 0 ? e.trueValue : e.value !== void 0 ? e.value : !0), i = x(() => e.falseValue !== void 0 ? e.falseValue : !1), s = x(() => !!e.multiple || e.multiple == null && Array.isArray(n.value)), o = x({
947
+ get() {
948
+ const f = a ? a.modelValue.value : n.value;
949
+ return s.value ? Re(f).some((g) => e.valueComparator(g, l.value)) : e.valueComparator(f, l.value);
950
+ },
951
+ set(f) {
952
+ if (e.readonly) return;
953
+ const g = f ? l.value : i.value;
954
+ let h = g;
955
+ s.value && (h = f ? [...Re(n.value), g] : Re(n.value).filter((p) => !e.valueComparator(p, l.value))), a ? a.modelValue.value = h : n.value = h;
956
+ }
957
+ }), {
958
+ textColorClasses: u,
959
+ textColorStyles: c
960
+ } = St(() => {
961
+ if (!(e.error || e.disabled))
962
+ return o.value ? e.color : e.baseColor;
963
+ }), {
964
+ backgroundColorClasses: d,
965
+ backgroundColorStyles: v
966
+ } = Rt(() => o.value && !e.error && !e.disabled ? e.color : e.baseColor), r = x(() => o.value ? e.trueIcon : e.falseIcon);
967
+ return {
968
+ group: a,
969
+ densityClasses: t,
970
+ trueValue: l,
971
+ falseValue: i,
972
+ model: o,
973
+ textColorClasses: u,
974
+ textColorStyles: c,
975
+ backgroundColorClasses: d,
976
+ backgroundColorStyles: v,
977
+ icon: r
978
+ };
979
+ }
980
+ const bl = ue()({
981
+ name: "VSelectionControl",
982
+ directives: {
983
+ vRipple: nt
984
+ },
985
+ inheritAttrs: !1,
986
+ props: un(),
987
+ emits: {
988
+ "update:modelValue": (e) => !0
989
+ },
990
+ setup(e, a) {
991
+ let {
992
+ attrs: t,
993
+ slots: n
994
+ } = a;
995
+ const {
996
+ group: l,
997
+ densityClasses: i,
998
+ icon: s,
999
+ model: o,
1000
+ textColorClasses: u,
1001
+ textColorStyles: c,
1002
+ backgroundColorClasses: d,
1003
+ backgroundColorStyles: v,
1004
+ trueValue: r
1005
+ } = Ca(e), f = Ye(), g = ee(!1), h = ee(!1), p = q(), w = R(() => e.id || `input-${f}`), I = R(() => !e.disabled && !e.readonly);
1006
+ l?.onForceUpdate(() => {
1007
+ p.value && (p.value.checked = o.value);
1008
+ });
1009
+ function C(A) {
1010
+ I.value && (g.value = !0, vt(A.target, ":focus-visible") !== !1 && (h.value = !0));
1011
+ }
1012
+ function F() {
1013
+ g.value = !1, h.value = !1;
1014
+ }
1015
+ function E(A) {
1016
+ A.stopPropagation();
1017
+ }
1018
+ function U(A) {
1019
+ if (!I.value) {
1020
+ p.value && (p.value.checked = o.value);
1021
+ return;
1022
+ }
1023
+ e.readonly && l && ke(() => l.forceUpdate()), o.value = A.target.checked;
1024
+ }
1025
+ return de(() => {
1026
+ const A = n.label ? n.label({
1027
+ label: e.label,
1028
+ props: {
1029
+ for: w.value
1030
+ }
1031
+ }) : e.label, [V, M] = $l(t), D = b("input", H({
1032
+ ref: p,
1033
+ checked: o.value,
1034
+ disabled: !!e.disabled,
1035
+ id: w.value,
1036
+ onBlur: F,
1037
+ onFocus: C,
1038
+ onInput: U,
1039
+ "aria-disabled": !!e.disabled,
1040
+ "aria-label": e.label,
1041
+ type: e.type,
1042
+ value: r.value,
1043
+ name: e.name,
1044
+ "aria-checked": e.type === "checkbox" ? o.value : void 0
1045
+ }, M), null);
1046
+ return b("div", H({
1047
+ class: ["v-selection-control", {
1048
+ "v-selection-control--dirty": o.value,
1049
+ "v-selection-control--disabled": e.disabled,
1050
+ "v-selection-control--error": e.error,
1051
+ "v-selection-control--focused": g.value,
1052
+ "v-selection-control--focus-visible": h.value,
1053
+ "v-selection-control--inline": e.inline
1054
+ }, i.value, e.class]
1055
+ }, V, {
1056
+ style: e.style
1057
+ }), [b("div", {
1058
+ class: re(["v-selection-control__wrapper", u.value]),
1059
+ style: xe(c.value)
1060
+ }, [n.default?.({
1061
+ backgroundColorClasses: d,
1062
+ backgroundColorStyles: v
1063
+ }), Ke(b("div", {
1064
+ class: re(["v-selection-control__input"])
1065
+ }, [n.input?.({
1066
+ model: o,
1067
+ textColorClasses: u,
1068
+ textColorStyles: c,
1069
+ backgroundColorClasses: d,
1070
+ backgroundColorStyles: v,
1071
+ inputNode: D,
1072
+ icon: s.value,
1073
+ props: {
1074
+ onFocus: C,
1075
+ onBlur: F,
1076
+ id: w.value
1077
+ }
1078
+ }) ?? b(ce, null, [s.value && y(Se, {
1079
+ key: "icon",
1080
+ icon: s.value
1081
+ }, null), D])]), [[nt, !e.disabled && !e.readonly && e.ripple, null, {
1082
+ center: !0,
1083
+ circle: !0
1084
+ }]])]), A && y(nn, {
1085
+ for: w.value,
1086
+ onClick: E
1087
+ }, {
1088
+ default: () => [A]
1089
+ })]);
1090
+ }), {
1091
+ isFocused: g,
1092
+ input: p
1093
+ };
1094
+ }
1095
+ }), Va = X({
1096
+ indeterminate: Boolean,
1097
+ indeterminateIcon: {
1098
+ type: he,
1099
+ default: "$checkboxIndeterminate"
1100
+ },
1101
+ ...un({
1102
+ falseIcon: "$checkboxOff",
1103
+ trueIcon: "$checkboxOn"
1104
+ })
1105
+ }, "VCheckboxBtn"), sn = ue()({
1106
+ name: "VCheckboxBtn",
1107
+ props: Va(),
1108
+ emits: {
1109
+ "update:modelValue": (e) => !0,
1110
+ "update:indeterminate": (e) => !0
1111
+ },
1112
+ setup(e, a) {
1113
+ let {
1114
+ slots: t
1115
+ } = a;
1116
+ const n = Ve(e, "indeterminate"), l = Ve(e, "modelValue");
1117
+ function i(u) {
1118
+ n.value && (n.value = !1);
1119
+ }
1120
+ const s = R(() => n.value ? e.indeterminateIcon : e.falseIcon), o = R(() => n.value ? e.indeterminateIcon : e.trueIcon);
1121
+ return de(() => {
1122
+ const u = Qe(bl.filterProps(e), ["modelValue"]);
1123
+ return y(bl, H(u, {
1124
+ modelValue: l.value,
1125
+ "onUpdate:modelValue": [(c) => l.value = c, i],
1126
+ class: ["v-checkbox-btn", e.class],
1127
+ style: e.style,
1128
+ type: "checkbox",
1129
+ falseIcon: s.value,
1130
+ trueIcon: o.value,
1131
+ "aria-checked": n.value ? "mixed" : void 0
1132
+ }), t);
1133
+ }), {};
1134
+ }
1135
+ });
1136
+ function $t(e) {
1137
+ const {
1138
+ t: a
1139
+ } = it();
1140
+ function t(n) {
1141
+ let {
1142
+ name: l,
1143
+ color: i,
1144
+ ...s
1145
+ } = n;
1146
+ const o = {
1147
+ prepend: "prependAction",
1148
+ prependInner: "prependAction",
1149
+ append: "appendAction",
1150
+ appendInner: "appendAction",
1151
+ clear: "clear"
1152
+ }[l], u = e[`onClick:${l}`];
1153
+ function c(v) {
1154
+ v.key !== "Enter" && v.key !== " " || (v.preventDefault(), v.stopPropagation(), Ml(u, new PointerEvent("click", v)));
1155
+ }
1156
+ const d = u && o ? a(`$vuetify.input.${o}`, e.label ?? "") : void 0;
1157
+ return y(Se, H({
1158
+ icon: e[`${l}Icon`],
1159
+ "aria-label": d,
1160
+ onClick: u,
1161
+ onKeydown: c,
1162
+ color: i
1163
+ }, s), null);
1164
+ }
1165
+ return {
1166
+ InputIcon: t
1167
+ };
1168
+ }
1169
+ const xa = X({
1170
+ active: Boolean,
1171
+ color: String,
1172
+ messages: {
1173
+ type: [Array, String],
1174
+ default: () => []
1175
+ },
1176
+ ...be(),
1177
+ ...Et({
1178
+ transition: {
1179
+ component: Nl,
1180
+ leaveAbsolute: !0,
1181
+ group: !0
1182
+ }
1183
+ })
1184
+ }, "VMessages"), Ia = ue()({
1185
+ name: "VMessages",
1186
+ props: xa(),
1187
+ setup(e, a) {
1188
+ let {
1189
+ slots: t
1190
+ } = a;
1191
+ const n = x(() => Re(e.messages)), {
1192
+ textColorClasses: l,
1193
+ textColorStyles: i
1194
+ } = St(() => e.color);
1195
+ return de(() => y(ol, {
1196
+ transition: e.transition,
1197
+ tag: "div",
1198
+ class: re(["v-messages", l.value, e.class]),
1199
+ style: xe([i.value, e.style])
1200
+ }, {
1201
+ default: () => [e.active && n.value.map((s, o) => b("div", {
1202
+ class: "v-messages__message",
1203
+ key: `${o}-${n.value}`
1204
+ }, [t.message ? t.message({
1205
+ message: s
1206
+ }) : s]))]
1207
+ })), {};
1208
+ }
1209
+ }), rn = X({
1210
+ focused: Boolean,
1211
+ "onUpdate:focused": He()
1212
+ }, "focus");
1213
+ function cn(e) {
1214
+ let a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Ll();
1215
+ const t = Ve(e, "focused"), n = R(() => ({
1216
+ [`${a}--focused`]: t.value
1217
+ }));
1218
+ function l() {
1219
+ t.value = !0;
1220
+ }
1221
+ function i() {
1222
+ t.value = !1;
1223
+ }
1224
+ return {
1225
+ focusClasses: n,
1226
+ isFocused: t,
1227
+ focus: l,
1228
+ blur: i
1229
+ };
1230
+ }
1231
+ const wa = /* @__PURE__ */ Symbol.for("vuetify:form");
1232
+ function Mt(e) {
1233
+ const a = _e(wa, null);
1234
+ return {
1235
+ ...a,
1236
+ isReadonly: x(() => !!(e?.readonly ?? a?.isReadonly.value)),
1237
+ isDisabled: x(() => !!(e?.disabled ?? a?.isDisabled.value))
1238
+ };
1239
+ }
1240
+ const Pa = /* @__PURE__ */ Symbol.for("vuetify:rules");
1241
+ function _a(e) {
1242
+ const a = _e(Pa, null);
1243
+ if (!e) {
1244
+ if (!a)
1245
+ throw new Error("Could not find Vuetify rules injection");
1246
+ return a.aliases;
1247
+ }
1248
+ return a?.resolve(e) ?? R(e);
1249
+ }
1250
+ const Aa = X({
1251
+ disabled: {
1252
+ type: Boolean,
1253
+ default: null
1254
+ },
1255
+ error: Boolean,
1256
+ errorMessages: {
1257
+ type: [Array, String],
1258
+ default: () => []
1259
+ },
1260
+ maxErrors: {
1261
+ type: [Number, String],
1262
+ default: 1
1263
+ },
1264
+ name: String,
1265
+ label: String,
1266
+ readonly: {
1267
+ type: Boolean,
1268
+ default: null
1269
+ },
1270
+ rules: {
1271
+ type: Array,
1272
+ default: () => []
1273
+ },
1274
+ modelValue: null,
1275
+ validateOn: String,
1276
+ validationValue: null,
1277
+ ...rn()
1278
+ }, "validation");
1279
+ function Fa(e) {
1280
+ let a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Ll(), t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Ye();
1281
+ const n = Ve(e, "modelValue"), l = x(() => e.validationValue === void 0 ? n.value : e.validationValue), i = Mt(e), s = _a(() => e.rules), o = q([]), u = ee(!0), c = x(() => !!(Re(n.value === "" ? null : n.value).length || Re(l.value === "" ? null : l.value).length)), d = x(() => e.errorMessages?.length ? Re(e.errorMessages).concat(o.value).slice(0, Math.max(0, Number(e.maxErrors))) : o.value), v = x(() => {
1282
+ let F = (e.validateOn ?? i.validateOn?.value) || "input";
1283
+ F === "lazy" && (F = "input lazy"), F === "eager" && (F = "input eager");
1284
+ const E = new Set(F?.split(" ") ?? []);
1285
+ return {
1286
+ input: E.has("input"),
1287
+ blur: E.has("blur") || E.has("input") || E.has("invalid-input"),
1288
+ invalidInput: E.has("invalid-input"),
1289
+ lazy: E.has("lazy"),
1290
+ eager: E.has("eager")
1291
+ };
1292
+ }), r = x(() => e.error || e.errorMessages?.length ? !1 : e.rules.length ? u.value ? o.value.length || v.value.lazy ? null : !0 : !o.value.length : !0), f = ee(!1), g = x(() => ({
1293
+ [`${a}--error`]: r.value === !1,
1294
+ [`${a}--dirty`]: c.value,
1295
+ [`${a}--disabled`]: i.isDisabled.value,
1296
+ [`${a}--readonly`]: i.isReadonly.value
1297
+ })), h = Hl("validation"), p = x(() => e.name ?? $(t));
1298
+ _n(() => {
1299
+ i.register?.({
1300
+ id: p.value,
1301
+ vm: h,
1302
+ validate: C,
1303
+ reset: w,
1304
+ resetValidation: I
1305
+ });
1306
+ }), Cl(() => {
1307
+ i.unregister?.(p.value);
1308
+ }), ot(async () => {
1309
+ v.value.lazy || await C(!v.value.eager), i.update?.(p.value, r.value, d.value);
1310
+ }), Gt(() => v.value.input || v.value.invalidInput && r.value === !1, () => {
1311
+ se(l, () => {
1312
+ if (l.value != null)
1313
+ C();
1314
+ else if (e.focused) {
1315
+ const F = se(() => e.focused, (E) => {
1316
+ E || C(), F();
1317
+ });
1318
+ }
1319
+ });
1320
+ }), Gt(() => v.value.blur, () => {
1321
+ se(() => e.focused, (F) => {
1322
+ F || C();
1323
+ });
1324
+ }), se([r, d], () => {
1325
+ i.update?.(p.value, r.value, d.value);
1326
+ });
1327
+ async function w() {
1328
+ n.value = null, await ke(), await I();
1329
+ }
1330
+ async function I() {
1331
+ u.value = !0, v.value.lazy ? o.value = [] : await C(!v.value.eager);
1332
+ }
1333
+ async function C() {
1334
+ let F = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1;
1335
+ const E = [];
1336
+ f.value = !0;
1337
+ for (const U of s.value) {
1338
+ if (E.length >= Number(e.maxErrors ?? 1))
1339
+ break;
1340
+ const V = await (typeof U == "function" ? U : () => U)(l.value);
1341
+ if (V !== !0) {
1342
+ if (V !== !1 && typeof V != "string") {
1343
+ console.warn(`${V} is not a valid value. Rule functions must return boolean true or a string.`);
1344
+ continue;
1345
+ }
1346
+ E.push(V || "");
1347
+ }
1348
+ }
1349
+ return o.value = E, f.value = !1, u.value = F, o.value;
1350
+ }
1351
+ return {
1352
+ errorMessages: d,
1353
+ isDirty: c,
1354
+ isDisabled: i.isDisabled,
1355
+ isReadonly: i.isReadonly,
1356
+ isPristine: u,
1357
+ isValid: r,
1358
+ isValidating: f,
1359
+ reset: w,
1360
+ resetValidation: I,
1361
+ validate: C,
1362
+ validationClasses: g
1363
+ };
1364
+ }
1365
+ const dn = X({
1366
+ id: String,
1367
+ appendIcon: he,
1368
+ baseColor: String,
1369
+ centerAffix: {
1370
+ type: Boolean,
1371
+ default: !0
1372
+ },
1373
+ color: String,
1374
+ glow: Boolean,
1375
+ iconColor: [Boolean, String],
1376
+ prependIcon: he,
1377
+ hideDetails: [Boolean, String],
1378
+ hideSpinButtons: Boolean,
1379
+ hint: String,
1380
+ persistentHint: Boolean,
1381
+ messages: {
1382
+ type: [Array, String],
1383
+ default: () => []
1384
+ },
1385
+ direction: {
1386
+ type: String,
1387
+ default: "horizontal",
1388
+ validator: (e) => ["horizontal", "vertical"].includes(e)
1389
+ },
1390
+ "onClick:prepend": He(),
1391
+ "onClick:append": He(),
1392
+ ...be(),
1393
+ ...bt(),
1394
+ ...Mn(kt(), ["maxWidth", "minWidth", "width"]),
1395
+ ...ze(),
1396
+ ...Aa()
1397
+ }, "VInput"), pl = ue()({
1398
+ name: "VInput",
1399
+ props: {
1400
+ ...dn()
1401
+ },
1402
+ emits: {
1403
+ "update:modelValue": (e) => !0
1404
+ },
1405
+ setup(e, a) {
1406
+ let {
1407
+ attrs: t,
1408
+ slots: n,
1409
+ emit: l
1410
+ } = a;
1411
+ const {
1412
+ densityClasses: i
1413
+ } = Bt(e), {
1414
+ dimensionStyles: s
1415
+ } = pt(e), {
1416
+ themeClasses: o
1417
+ } = ut(e), {
1418
+ rtlClasses: u
1419
+ } = Tt(), {
1420
+ InputIcon: c
1421
+ } = $t(e), d = Ye(), v = x(() => e.id || `input-${d}`), {
1422
+ errorMessages: r,
1423
+ isDirty: f,
1424
+ isDisabled: g,
1425
+ isReadonly: h,
1426
+ isPristine: p,
1427
+ isValid: w,
1428
+ isValidating: I,
1429
+ reset: C,
1430
+ resetValidation: F,
1431
+ validate: E,
1432
+ validationClasses: U
1433
+ } = Fa(e, "v-input", v), A = x(() => e.errorMessages?.length || !p.value && r.value.length ? r.value : e.hint && (e.persistentHint || e.focused) ? e.hint : e.messages), V = R(() => A.value.length > 0), M = R(() => !e.hideDetails || e.hideDetails === "auto" && (V.value || !!n.details)), D = x(() => M.value ? `${v.value}-messages` : void 0), N = x(() => ({
1434
+ id: v,
1435
+ messagesId: D,
1436
+ isDirty: f,
1437
+ isDisabled: g,
1438
+ isReadonly: h,
1439
+ isPristine: p,
1440
+ isValid: w,
1441
+ isValidating: I,
1442
+ hasDetails: M,
1443
+ reset: C,
1444
+ resetValidation: F,
1445
+ validate: E
1446
+ })), le = R(() => e.error || e.disabled ? void 0 : e.focused ? e.color : e.baseColor), z = R(() => {
1447
+ if (e.iconColor)
1448
+ return e.iconColor === !0 ? le.value : e.iconColor;
1449
+ });
1450
+ return de(() => {
1451
+ const J = !!(n.prepend || e.prependIcon), W = !!(n.append || e.appendIcon);
1452
+ return b("div", {
1453
+ class: re(["v-input", `v-input--${e.direction}`, {
1454
+ "v-input--center-affix": e.centerAffix,
1455
+ "v-input--focused": e.focused,
1456
+ "v-input--glow": e.glow,
1457
+ "v-input--hide-spin-buttons": e.hideSpinButtons
1458
+ }, i.value, o.value, u.value, U.value, e.class]),
1459
+ style: xe([s.value, e.style])
1460
+ }, [J && b("div", {
1461
+ key: "prepend",
1462
+ class: "v-input__prepend"
1463
+ }, [n.prepend ? n.prepend(N.value) : e.prependIcon && y(c, {
1464
+ key: "prepend-icon",
1465
+ name: "prepend",
1466
+ color: z.value
1467
+ }, null)]), n.default && b("div", {
1468
+ class: "v-input__control"
1469
+ }, [n.default?.(N.value)]), W && b("div", {
1470
+ key: "append",
1471
+ class: "v-input__append"
1472
+ }, [n.append ? n.append(N.value) : e.appendIcon && y(c, {
1473
+ key: "append-icon",
1474
+ name: "append",
1475
+ color: z.value
1476
+ }, null)]), M.value && b("div", {
1477
+ id: D.value,
1478
+ class: "v-input__details",
1479
+ role: "alert",
1480
+ "aria-live": "polite"
1481
+ }, [y(Ia, {
1482
+ active: V.value,
1483
+ messages: A.value
1484
+ }, {
1485
+ message: n.message
1486
+ }), n.details?.(N.value)])]);
1487
+ }), {
1488
+ reset: C,
1489
+ resetValidation: F,
1490
+ validate: E,
1491
+ isValid: w,
1492
+ errorMessages: r
1493
+ };
1494
+ }
1495
+ }), Da = X({
1496
+ active: Boolean,
1497
+ disabled: Boolean,
1498
+ max: [Number, String],
1499
+ value: {
1500
+ type: [Number, String],
1501
+ default: 0
1502
+ },
1503
+ ...be(),
1504
+ ...Et({
1505
+ transition: {
1506
+ component: Nl
1507
+ }
1508
+ })
1509
+ }, "VCounter"), Ta = ue()({
1510
+ name: "VCounter",
1511
+ functional: !0,
1512
+ props: Da(),
1513
+ setup(e, a) {
1514
+ let {
1515
+ slots: t
1516
+ } = a;
1517
+ const n = R(() => e.max ? `${e.value} / ${e.max}` : String(e.value));
1518
+ return de(() => y(ol, {
1519
+ transition: e.transition
1520
+ }, {
1521
+ default: () => [Ke(b("div", {
1522
+ class: re(["v-counter", {
1523
+ "text-error": e.max && !e.disabled && parseFloat(e.value) > parseFloat(e.max)
1524
+ }, e.class]),
1525
+ style: xe(e.style)
1526
+ }, [t.default ? t.default({
1527
+ counter: n.value,
1528
+ max: e.max,
1529
+ value: e.value
1530
+ }) : n.value]), [[At, e.active]])]
1531
+ })), {};
1532
+ }
1533
+ }), Ba = X({
1534
+ floating: Boolean,
1535
+ ...be()
1536
+ }, "VFieldLabel"), xt = ue()({
1537
+ name: "VFieldLabel",
1538
+ props: Ba(),
1539
+ setup(e, a) {
1540
+ let {
1541
+ slots: t
1542
+ } = a;
1543
+ return de(() => y(nn, {
1544
+ class: re(["v-field-label", {
1545
+ "v-field-label--floating": e.floating
1546
+ }, e.class]),
1547
+ style: xe(e.style)
1548
+ }, t)), {};
1549
+ }
1550
+ }), Ra = ["underlined", "outlined", "filled", "solo", "solo-inverted", "solo-filled", "plain"], vn = X({
1551
+ appendInnerIcon: he,
1552
+ bgColor: String,
1553
+ clearable: Boolean,
1554
+ clearIcon: {
1555
+ type: he,
1556
+ default: "$clear"
1557
+ },
1558
+ active: Boolean,
1559
+ centerAffix: {
1560
+ type: Boolean,
1561
+ default: void 0
1562
+ },
1563
+ color: String,
1564
+ baseColor: String,
1565
+ dirty: Boolean,
1566
+ disabled: {
1567
+ type: Boolean,
1568
+ default: null
1569
+ },
1570
+ glow: Boolean,
1571
+ error: Boolean,
1572
+ flat: Boolean,
1573
+ iconColor: [Boolean, String],
1574
+ label: String,
1575
+ persistentClear: Boolean,
1576
+ prependInnerIcon: he,
1577
+ reverse: Boolean,
1578
+ singleLine: Boolean,
1579
+ variant: {
1580
+ type: String,
1581
+ default: "filled",
1582
+ validator: (e) => Ra.includes(e)
1583
+ },
1584
+ "onClick:clear": He(),
1585
+ "onClick:appendInner": He(),
1586
+ "onClick:prependInner": He(),
1587
+ ...be(),
1588
+ ...Kl(),
1589
+ ...ht(),
1590
+ ...ze()
1591
+ }, "VField"), kl = ue()({
1592
+ name: "VField",
1593
+ inheritAttrs: !1,
1594
+ props: {
1595
+ id: String,
1596
+ details: Boolean,
1597
+ labelId: String,
1598
+ ...rn(),
1599
+ ...vn()
1600
+ },
1601
+ emits: {
1602
+ "update:focused": (e) => !0,
1603
+ "update:modelValue": (e) => !0
1604
+ },
1605
+ setup(e, a) {
1606
+ let {
1607
+ attrs: t,
1608
+ emit: n,
1609
+ slots: l
1610
+ } = a;
1611
+ const {
1612
+ themeClasses: i
1613
+ } = ut(e), {
1614
+ loaderClasses: s
1615
+ } = zl(e), {
1616
+ focusClasses: o,
1617
+ isFocused: u,
1618
+ focus: c,
1619
+ blur: d
1620
+ } = cn(e), {
1621
+ InputIcon: v
1622
+ } = $t(e), {
1623
+ roundedClasses: r
1624
+ } = yt(e), {
1625
+ rtlClasses: f
1626
+ } = Tt(), g = R(() => e.dirty || e.active), h = R(() => !!(e.label || l.label)), p = R(() => !e.singleLine && h.value), w = Ye(), I = x(() => e.id || `input-${w}`), C = R(() => e.details ? `${I.value}-messages` : void 0), F = q(), E = q(), U = q(), A = x(() => ["plain", "underlined"].includes(e.variant)), V = x(() => e.error || e.disabled ? void 0 : g.value && u.value ? e.color : e.baseColor), M = x(() => {
1627
+ if (!(!e.iconColor || e.glow && !u.value))
1628
+ return e.iconColor === !0 ? V.value : e.iconColor;
1629
+ }), {
1630
+ backgroundColorClasses: D,
1631
+ backgroundColorStyles: N
1632
+ } = Rt(() => e.bgColor), {
1633
+ textColorClasses: le,
1634
+ textColorStyles: z
1635
+ } = St(V);
1636
+ se(g, (K) => {
1637
+ if (p.value && !wl()) {
1638
+ const ve = F.value.$el, B = E.value.$el;
1639
+ requestAnimationFrame(() => {
1640
+ const O = Nn(ve), k = new Ln(B), m = k.x - O.x, _ = k.y - O.y - (O.height / 2 - k.height / 2), Q = k.width / 0.75, oe = Math.abs(Q - O.width) > 1 ? {
1641
+ maxWidth: tt(Q)
1642
+ } : void 0, ge = getComputedStyle(ve), pe = getComputedStyle(B), Ie = parseFloat(ge.transitionDuration) * 1e3 || 150, Te = parseFloat(pe.getPropertyValue("--v-field-label-scale")), Ge = pe.getPropertyValue("color");
1643
+ ve.style.visibility = "visible", B.style.visibility = "hidden", Hn(ve, {
1644
+ transform: `translate(${m}px, ${_}px) scale(${Te})`,
1645
+ color: Ge,
1646
+ ...oe
1647
+ }, {
1648
+ duration: Ie,
1649
+ easing: zn,
1650
+ direction: K ? "normal" : "reverse"
1651
+ }).finished.then(() => {
1652
+ ve.style.removeProperty("visibility"), B.style.removeProperty("visibility");
1653
+ });
1654
+ });
1655
+ }
1656
+ }, {
1657
+ flush: "post"
1658
+ });
1659
+ const J = x(() => ({
1660
+ isActive: g,
1661
+ isFocused: u,
1662
+ controlRef: U,
1663
+ iconColor: M,
1664
+ blur: d,
1665
+ focus: c
1666
+ })), W = R(() => {
1667
+ const K = !g.value;
1668
+ return {
1669
+ "aria-hidden": K,
1670
+ for: K ? void 0 : I.value
1671
+ };
1672
+ }), ie = R(() => {
1673
+ const K = p.value && g.value;
1674
+ return {
1675
+ "aria-hidden": K,
1676
+ for: K ? void 0 : I.value
1677
+ };
1678
+ });
1679
+ function j(K) {
1680
+ K.target !== document.activeElement && K.preventDefault();
1681
+ }
1682
+ return de(() => {
1683
+ const K = e.variant === "outlined", ve = !!(l["prepend-inner"] || e.prependInnerIcon), B = !!(e.clearable || l.clear) && !e.disabled, O = !!(l["append-inner"] || e.appendInnerIcon || B), k = () => l.label ? l.label({
1684
+ ...J.value,
1685
+ label: e.label,
1686
+ props: {
1687
+ for: I.value
1688
+ }
1689
+ }) : e.label;
1690
+ return b("div", H({
1691
+ class: ["v-field", {
1692
+ "v-field--active": g.value,
1693
+ "v-field--appended": O,
1694
+ "v-field--center-affix": e.centerAffix ?? !A.value,
1695
+ "v-field--disabled": e.disabled,
1696
+ "v-field--dirty": e.dirty,
1697
+ "v-field--error": e.error,
1698
+ "v-field--glow": e.glow,
1699
+ "v-field--flat": e.flat,
1700
+ "v-field--has-background": !!e.bgColor,
1701
+ "v-field--persistent-clear": e.persistentClear,
1702
+ "v-field--prepended": ve,
1703
+ "v-field--reverse": e.reverse,
1704
+ "v-field--single-line": e.singleLine,
1705
+ "v-field--no-label": !k(),
1706
+ [`v-field--variant-${e.variant}`]: !0
1707
+ }, i.value, D.value, o.value, s.value, r.value, f.value, e.class],
1708
+ style: [N.value, e.style],
1709
+ onClick: j
1710
+ }, t), [b("div", {
1711
+ class: "v-field__overlay"
1712
+ }, null), y(Ul, {
1713
+ name: "v-field",
1714
+ active: !!e.loading,
1715
+ color: e.error ? "error" : typeof e.loading == "string" ? e.loading : e.color
1716
+ }, {
1717
+ default: l.loader
1718
+ }), ve && b("div", {
1719
+ key: "prepend",
1720
+ class: "v-field__prepend-inner"
1721
+ }, [l["prepend-inner"] ? l["prepend-inner"](J.value) : e.prependInnerIcon && y(v, {
1722
+ key: "prepend-icon",
1723
+ name: "prependInner",
1724
+ color: M.value
1725
+ }, null)]), b("div", {
1726
+ class: "v-field__field",
1727
+ "data-no-activator": ""
1728
+ }, [["filled", "solo", "solo-inverted", "solo-filled"].includes(e.variant) && p.value && y(xt, H({
1729
+ key: "floating-label",
1730
+ ref: E,
1731
+ class: [le.value],
1732
+ floating: !0
1733
+ }, W.value, {
1734
+ style: z.value
1735
+ }), {
1736
+ default: () => [k()]
1737
+ }), h.value && y(xt, H({
1738
+ key: "label",
1739
+ ref: F,
1740
+ id: e.labelId
1741
+ }, ie.value), {
1742
+ default: () => [k()]
1743
+ }), l.default?.({
1744
+ ...J.value,
1745
+ props: {
1746
+ id: I.value,
1747
+ class: "v-field__input",
1748
+ "aria-describedby": C.value
1749
+ },
1750
+ focus: c,
1751
+ blur: d
1752
+ }) ?? b("div", {
1753
+ id: I.value,
1754
+ class: "v-field__input",
1755
+ "aria-describedby": C.value
1756
+ }, null)]), B && y(Bl, {
1757
+ key: "clear"
1758
+ }, {
1759
+ default: () => [Ke(b("div", {
1760
+ class: "v-field__clearable",
1761
+ onMousedown: (m) => {
1762
+ m.preventDefault(), m.stopPropagation();
1763
+ }
1764
+ }, [y(De, {
1765
+ defaults: {
1766
+ VIcon: {
1767
+ icon: e.clearIcon
1768
+ }
1769
+ }
1770
+ }, {
1771
+ default: () => [l.clear ? l.clear({
1772
+ ...J.value,
1773
+ props: {
1774
+ onFocus: c,
1775
+ onBlur: d,
1776
+ onClick: e["onClick:clear"],
1777
+ tabindex: -1
1778
+ }
1779
+ }) : y(v, {
1780
+ name: "clear",
1781
+ onFocus: c,
1782
+ onBlur: d,
1783
+ tabindex: -1
1784
+ }, null)]
1785
+ })]), [[At, e.dirty]])]
1786
+ }), O && b("div", {
1787
+ key: "append",
1788
+ class: "v-field__append-inner"
1789
+ }, [l["append-inner"] ? l["append-inner"](J.value) : e.appendInnerIcon && y(v, {
1790
+ key: "append-icon",
1791
+ name: "appendInner",
1792
+ color: M.value
1793
+ }, null)]), b("div", {
1794
+ class: re(["v-field__outline", le.value]),
1795
+ style: xe(z.value)
1796
+ }, [K && b(ce, null, [b("div", {
1797
+ class: "v-field__outline__start"
1798
+ }, null), p.value && b("div", {
1799
+ class: "v-field__outline__notch"
1800
+ }, [y(xt, H({
1801
+ ref: E,
1802
+ floating: !0
1803
+ }, W.value), {
1804
+ default: () => [k()]
1805
+ })]), b("div", {
1806
+ class: "v-field__outline__end"
1807
+ }, null)]), A.value && p.value && y(xt, H({
1808
+ ref: E,
1809
+ floating: !0
1810
+ }, W.value), {
1811
+ default: () => [k()]
1812
+ })])]);
1813
+ }), {
1814
+ controlRef: U,
1815
+ fieldIconColor: M
1816
+ };
1817
+ }
1818
+ }), Ea = X({
1819
+ autocomplete: String
1820
+ }, "autocomplete");
1821
+ function fn(e) {
1822
+ const a = Ye(), t = ee(0), n = R(() => e.autocomplete === "suppress"), l = R(() => {
1823
+ if (e.name)
1824
+ return n.value ? `${e.name}-${a}-${t.value}` : e.name;
1825
+ }), i = R(() => n.value ? "off" : e.autocomplete);
1826
+ return {
1827
+ isSuppressing: n,
1828
+ fieldAutocomplete: i,
1829
+ fieldName: l,
1830
+ update: () => t.value = (/* @__PURE__ */ new Date()).getTime()
1831
+ };
1832
+ }
1833
+ function Oa(e) {
1834
+ function a(t, n) {
1835
+ if (!e.autofocus || !t) return;
1836
+ const l = n[0].target;
1837
+ (l.matches("input,textarea") ? l : l.querySelector("input,textarea"))?.focus();
1838
+ }
1839
+ return {
1840
+ onIntersect: a
1841
+ };
1842
+ }
1843
+ const $a = ["color", "file", "time", "date", "datetime-local", "week", "month"], Nt = X({
1844
+ autofocus: Boolean,
1845
+ counter: [Boolean, Number, String],
1846
+ counterValue: [Number, Function],
1847
+ prefix: String,
1848
+ placeholder: String,
1849
+ persistentPlaceholder: Boolean,
1850
+ persistentCounter: Boolean,
1851
+ suffix: String,
1852
+ role: String,
1853
+ type: {
1854
+ type: String,
1855
+ default: "text"
1856
+ },
1857
+ modelModifiers: Object,
1858
+ ...Ea(),
1859
+ ...Qe(dn(), ["direction"]),
1860
+ ...vn()
1861
+ }, "VTextField"), Xe = ue()({
1862
+ name: "VTextField",
1863
+ directives: {
1864
+ vIntersect: fl
1865
+ },
1866
+ inheritAttrs: !1,
1867
+ props: Nt(),
1868
+ emits: {
1869
+ "click:control": (e) => !0,
1870
+ "mousedown:control": (e) => !0,
1871
+ "update:focused": (e) => !0,
1872
+ "update:modelValue": (e) => !0
1873
+ },
1874
+ setup(e, a) {
1875
+ let {
1876
+ attrs: t,
1877
+ emit: n,
1878
+ slots: l
1879
+ } = a;
1880
+ const i = Ve(e, "modelValue", void 0, (A) => Object.is(A, -0) ? "-0" : A), {
1881
+ isFocused: s,
1882
+ focus: o,
1883
+ blur: u
1884
+ } = cn(e), {
1885
+ onIntersect: c
1886
+ } = Oa(e), d = x(() => typeof e.counterValue == "function" ? e.counterValue(i.value) : typeof e.counterValue == "number" ? e.counterValue : (i.value ?? "").toString().length), v = x(() => {
1887
+ if (t.maxlength) return t.maxlength;
1888
+ if (!(!e.counter || typeof e.counter != "number" && typeof e.counter != "string"))
1889
+ return e.counter;
1890
+ }), r = x(() => ["plain", "underlined"].includes(e.variant)), f = q(), g = q(), h = q(), p = fn(e), w = x(() => $a.includes(e.type) || e.persistentPlaceholder || s.value || e.active);
1891
+ function I() {
1892
+ p.isSuppressing.value && p.update(), s.value || o(), ke(() => {
1893
+ h.value !== document.activeElement && h.value?.focus();
1894
+ });
1895
+ }
1896
+ function C(A) {
1897
+ n("mousedown:control", A), A.target !== h.value && (I(), A.preventDefault());
1898
+ }
1899
+ function F(A) {
1900
+ n("click:control", A);
1901
+ }
1902
+ function E(A, V) {
1903
+ A.stopPropagation(), I(), ke(() => {
1904
+ V(), Ml(e["onClick:clear"], A);
1905
+ });
1906
+ }
1907
+ function U(A) {
1908
+ const V = A.target;
1909
+ if (!(e.modelModifiers?.trim && ["text", "search", "password", "tel", "url"].includes(e.type))) {
1910
+ i.value = V.value;
1911
+ return;
1912
+ }
1913
+ const M = V.value, D = V.selectionStart, N = V.selectionEnd;
1914
+ i.value = M, ke(() => {
1915
+ let le = 0;
1916
+ M.trimStart().length === V.value.length && (le = M.length - V.value.length), D != null && (V.selectionStart = D - le), N != null && (V.selectionEnd = N - le);
1917
+ });
1918
+ }
1919
+ return de(() => {
1920
+ const A = !!(l.counter || e.counter !== !1 && e.counter != null), V = !!(A || l.details), [M, D] = $l(t), {
1921
+ modelValue: N,
1922
+ ...le
1923
+ } = pl.filterProps(e), z = kl.filterProps(e);
1924
+ return y(pl, H({
1925
+ ref: f,
1926
+ modelValue: i.value,
1927
+ "onUpdate:modelValue": (J) => i.value = J,
1928
+ class: ["v-text-field", {
1929
+ "v-text-field--prefixed": e.prefix,
1930
+ "v-text-field--suffixed": e.suffix,
1931
+ "v-input--plain-underlined": r.value
1932
+ }, e.class],
1933
+ style: e.style
1934
+ }, M, le, {
1935
+ centerAffix: !r.value,
1936
+ focused: s.value
1937
+ }), {
1938
+ ...l,
1939
+ default: (J) => {
1940
+ let {
1941
+ id: W,
1942
+ isDisabled: ie,
1943
+ isDirty: j,
1944
+ isReadonly: K,
1945
+ isValid: ve,
1946
+ hasDetails: B,
1947
+ reset: O
1948
+ } = J;
1949
+ return y(kl, H({
1950
+ ref: g,
1951
+ onMousedown: C,
1952
+ onClick: F,
1953
+ "onClick:clear": (k) => E(k, O),
1954
+ role: e.role
1955
+ }, Qe(z, ["onClick:clear"]), {
1956
+ id: W.value,
1957
+ labelId: `${W.value}-label`,
1958
+ active: w.value || j.value,
1959
+ dirty: j.value || e.dirty,
1960
+ disabled: ie.value,
1961
+ focused: s.value,
1962
+ details: B.value,
1963
+ error: ve.value === !1
1964
+ }), {
1965
+ ...l,
1966
+ default: (k) => {
1967
+ let {
1968
+ props: {
1969
+ class: m,
1970
+ ..._
1971
+ },
1972
+ controlRef: Q
1973
+ } = k;
1974
+ const oe = b("input", H({
1975
+ ref: (ge) => h.value = Q.value = ge,
1976
+ value: i.value,
1977
+ onInput: U,
1978
+ autofocus: e.autofocus,
1979
+ readonly: K.value,
1980
+ disabled: ie.value,
1981
+ name: p.fieldName.value,
1982
+ autocomplete: p.fieldAutocomplete.value,
1983
+ placeholder: e.placeholder,
1984
+ size: 1,
1985
+ role: e.role,
1986
+ type: e.type,
1987
+ onFocus: o,
1988
+ onBlur: u,
1989
+ "aria-labelledby": `${W.value}-label`
1990
+ }, _, D), null);
1991
+ return b(ce, null, [e.prefix && b("span", {
1992
+ class: "v-text-field__prefix"
1993
+ }, [b("span", {
1994
+ class: "v-text-field__prefix__text"
1995
+ }, [e.prefix])]), Ke(l.default ? b("div", {
1996
+ class: re(m),
1997
+ "data-no-activator": ""
1998
+ }, [l.default({
1999
+ id: W
2000
+ }), oe]) : An(oe, {
2001
+ class: m
2002
+ }), [[fl, c, null, {
2003
+ once: !0
2004
+ }]]), e.suffix && b("span", {
2005
+ class: "v-text-field__suffix"
2006
+ }, [b("span", {
2007
+ class: "v-text-field__suffix__text"
2008
+ }, [e.suffix])])]);
2009
+ }
2010
+ });
2011
+ },
2012
+ details: V ? (J) => b(ce, null, [l.details?.(J), A && b(ce, null, [b("span", null, null), y(Ta, {
2013
+ active: e.persistentCounter || s.value,
2014
+ value: d.value,
2015
+ max: v.value,
2016
+ disabled: e.disabled
2017
+ }, l.counter)])]) : void 0
2018
+ });
2019
+ }), Ct({}, f, g, h);
2020
+ }
2021
+ }), Ma = X({
2022
+ renderless: Boolean,
2023
+ ...be()
2024
+ }, "VVirtualScrollItem"), Na = ue()({
2025
+ name: "VVirtualScrollItem",
2026
+ inheritAttrs: !1,
2027
+ props: Ma(),
2028
+ emits: {
2029
+ "update:height": (e) => !0
2030
+ },
2031
+ setup(e, a) {
2032
+ let {
2033
+ attrs: t,
2034
+ emit: n,
2035
+ slots: l
2036
+ } = a;
2037
+ const {
2038
+ resizeRef: i,
2039
+ contentRect: s
2040
+ } = Pt(void 0, "border");
2041
+ se(() => s.value?.height, (o) => {
2042
+ o != null && n("update:height", o);
2043
+ }), de(() => e.renderless ? b(ce, null, [l.default?.({
2044
+ itemRef: i
2045
+ })]) : b("div", H({
2046
+ ref: i,
2047
+ class: ["v-virtual-scroll__item", e.class],
2048
+ style: e.style
2049
+ }, t), [l.default?.()]));
2050
+ }
2051
+ }), La = -1, Ha = 1, Ht = 100, za = X({
2052
+ itemHeight: {
2053
+ type: [Number, String],
2054
+ default: null
2055
+ },
2056
+ itemKey: {
2057
+ type: [String, Array, Function],
2058
+ default: null
2059
+ },
2060
+ height: [Number, String]
2061
+ }, "virtual");
2062
+ function Ua(e, a) {
2063
+ const t = Pl(), n = ee(0);
2064
+ Ut(() => {
2065
+ n.value = parseFloat(e.itemHeight || 0);
2066
+ });
2067
+ const l = ee(0), i = ee(Math.ceil(
2068
+ // Assume 16px items filling the entire screen height if
2069
+ // not provided. This is probably incorrect but it minimises
2070
+ // the chance of ending up with empty space at the bottom.
2071
+ // The default value is set here to avoid poisoning getSize()
2072
+ (parseInt(e.height) || t.height.value) / (n.value || 16)
2073
+ ) || 1), s = ee(0), o = ee(0), u = q(), c = q();
2074
+ let d = 0;
2075
+ const {
2076
+ resizeRef: v,
2077
+ contentRect: r
2078
+ } = Pt();
2079
+ Ut(() => {
2080
+ v.value = u.value;
2081
+ });
2082
+ const f = x(() => u.value === document.documentElement ? t.height.value : r.value?.height || parseInt(e.height) || 0), g = x(() => !!(u.value && c.value && f.value && n.value));
2083
+ let h = Array.from({
2084
+ length: a.value.length
2085
+ }), p = Array.from({
2086
+ length: a.value.length
2087
+ });
2088
+ const w = ee(0);
2089
+ let I = -1;
2090
+ function C(B) {
2091
+ return h[B] || n.value;
2092
+ }
2093
+ const F = Un(() => {
2094
+ const B = performance.now();
2095
+ p[0] = 0;
2096
+ const O = a.value.length;
2097
+ for (let k = 1; k <= O; k++)
2098
+ p[k] = (p[k - 1] || 0) + C(k - 1);
2099
+ w.value = Math.max(w.value, performance.now() - B);
2100
+ }, w), E = se(g, (B) => {
2101
+ B && (E(), d = c.value.offsetTop, F.immediate(), ie(), ~I && ke(() => {
2102
+ dt && window.requestAnimationFrame(() => {
2103
+ K(I), I = -1;
2104
+ });
2105
+ }));
2106
+ });
2107
+ ct(() => {
2108
+ F.clear();
2109
+ });
2110
+ function U(B, O) {
2111
+ const k = h[B], m = n.value;
2112
+ n.value = m ? Math.min(n.value, O) : O, (k !== O || m !== n.value) && (h[B] = O, F());
2113
+ }
2114
+ function A(B) {
2115
+ B = Le(B, 0, a.value.length);
2116
+ const O = Math.floor(B), k = B % 1, m = O + 1, _ = p[O] || 0, Q = p[m] || _;
2117
+ return _ + (Q - _) * k;
2118
+ }
2119
+ function V(B) {
2120
+ return Ka(p, B);
2121
+ }
2122
+ let M = 0, D = 0, N = 0;
2123
+ se(f, (B, O) => {
2124
+ ie(), B < O && requestAnimationFrame(() => {
2125
+ D = 0, ie();
2126
+ });
2127
+ });
2128
+ let le = -1;
2129
+ function z() {
2130
+ if (!u.value || !c.value) return;
2131
+ const B = u.value.scrollTop, O = performance.now();
2132
+ O - N > 500 ? (D = Math.sign(B - M), d = c.value.offsetTop) : D = B - M, M = B, N = O, window.clearTimeout(le), le = window.setTimeout(J, 500), ie();
2133
+ }
2134
+ function J() {
2135
+ !u.value || !c.value || (D = 0, N = 0, window.clearTimeout(le), ie());
2136
+ }
2137
+ let W = -1;
2138
+ function ie() {
2139
+ cancelAnimationFrame(W), W = requestAnimationFrame(j);
2140
+ }
2141
+ function j() {
2142
+ if (!u.value || !f.value || !n.value) return;
2143
+ const B = M - d, O = Math.sign(D), k = Math.max(0, B - Ht), m = Le(V(k), 0, a.value.length), _ = B + f.value + Ht, Q = Le(V(_) + 1, m + 1, a.value.length);
2144
+ if (
2145
+ // Only update the side we're scrolling towards,
2146
+ // the other side will be updated incidentally
2147
+ (O !== La || m < l.value) && (O !== Ha || Q > i.value)
2148
+ ) {
2149
+ const oe = A(l.value) - A(m), ge = A(Q) - A(i.value);
2150
+ Math.max(oe, ge) > Ht ? (l.value = m, i.value = Q) : (m <= 0 && (l.value = m), Q >= a.value.length && (i.value = Q));
2151
+ }
2152
+ s.value = A(l.value), o.value = A(a.value.length) - A(i.value);
2153
+ }
2154
+ function K(B) {
2155
+ const O = A(B);
2156
+ !u.value || B && !O ? I = B : u.value.scrollTop = O;
2157
+ }
2158
+ const ve = x(() => a.value.slice(l.value, i.value).map((B, O) => {
2159
+ const k = O + l.value;
2160
+ return {
2161
+ raw: B,
2162
+ index: k,
2163
+ key: jl(B, e.itemKey, k)
2164
+ };
2165
+ }));
2166
+ return se(a, () => {
2167
+ h = Array.from({
2168
+ length: a.value.length
2169
+ }), p = Array.from({
2170
+ length: a.value.length
2171
+ }), F.immediate(), ie();
2172
+ }, {
2173
+ deep: 1
2174
+ }), {
2175
+ calculateVisibleItems: ie,
2176
+ containerRef: u,
2177
+ markerRef: c,
2178
+ computedItems: ve,
2179
+ paddingTop: s,
2180
+ paddingBottom: o,
2181
+ scrollToIndex: K,
2182
+ handleScroll: z,
2183
+ handleScrollend: J,
2184
+ handleItemResize: U
2185
+ };
2186
+ }
2187
+ function Ka(e, a) {
2188
+ let t = e.length - 1, n = 0, l = 0, i = null, s = -1;
2189
+ if (e[t] < a)
2190
+ return t;
2191
+ for (; n <= t; )
2192
+ if (l = n + t >> 1, i = e[l], i > a)
2193
+ t = l - 1;
2194
+ else if (i < a)
2195
+ s = l, n = l + 1;
2196
+ else return i === a ? l : n;
2197
+ return s;
2198
+ }
2199
+ const ja = X({
2200
+ items: {
2201
+ type: Array,
2202
+ default: () => []
2203
+ },
2204
+ renderless: Boolean,
2205
+ ...za(),
2206
+ ...be(),
2207
+ ...kt()
2208
+ }, "VVirtualScroll"), mn = ue()({
2209
+ name: "VVirtualScroll",
2210
+ props: ja(),
2211
+ setup(e, a) {
2212
+ let {
2213
+ slots: t
2214
+ } = a;
2215
+ const n = Hl("VVirtualScroll"), {
2216
+ dimensionStyles: l
2217
+ } = pt(e), {
2218
+ calculateVisibleItems: i,
2219
+ containerRef: s,
2220
+ markerRef: o,
2221
+ handleScroll: u,
2222
+ handleScrollend: c,
2223
+ handleItemResize: d,
2224
+ scrollToIndex: v,
2225
+ paddingTop: r,
2226
+ paddingBottom: f,
2227
+ computedItems: g
2228
+ } = Ua(e, R(() => e.items));
2229
+ return Gt(() => e.renderless, () => {
2230
+ function h() {
2231
+ const w = (arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1) ? "addEventListener" : "removeEventListener";
2232
+ s.value === document.documentElement ? (document[w]("scroll", u, {
2233
+ passive: !0
2234
+ }), document[w]("scrollend", c)) : (s.value?.[w]("scroll", u, {
2235
+ passive: !0
2236
+ }), s.value?.[w]("scrollend", c));
2237
+ }
2238
+ ot(() => {
2239
+ s.value = Kn(n.vnode.el, !0), h(!0);
2240
+ }), ct(h);
2241
+ }), de(() => {
2242
+ const h = g.value.map((p) => y(Na, {
2243
+ key: p.key,
2244
+ renderless: e.renderless,
2245
+ "onUpdate:height": (w) => d(p.index, w)
2246
+ }, {
2247
+ default: (w) => t.default?.({
2248
+ item: p.raw,
2249
+ index: p.index,
2250
+ ...w
2251
+ })
2252
+ }));
2253
+ return e.renderless ? b(ce, null, [b("div", {
2254
+ ref: o,
2255
+ class: "v-virtual-scroll__spacer",
2256
+ style: {
2257
+ paddingTop: tt(r.value)
2258
+ }
2259
+ }, null), h, b("div", {
2260
+ class: "v-virtual-scroll__spacer",
2261
+ style: {
2262
+ paddingBottom: tt(f.value)
2263
+ }
2264
+ }, null)]) : b("div", {
2265
+ ref: s,
2266
+ class: re(["v-virtual-scroll", e.class]),
2267
+ onScrollPassive: u,
2268
+ onScrollend: c,
2269
+ style: xe([l.value, e.style])
2270
+ }, [b("div", {
2271
+ ref: o,
2272
+ class: "v-virtual-scroll__container",
2273
+ style: {
2274
+ paddingTop: tt(r.value),
2275
+ paddingBottom: tt(f.value)
2276
+ }
2277
+ }, [h])]);
2278
+ }), {
2279
+ calculateVisibleItems: i,
2280
+ scrollToIndex: v
2281
+ };
2282
+ }
2283
+ });
2284
+ function gn(e, a, t) {
2285
+ return function(l) {
2286
+ return !l.relatedTarget && document.activeElement === document.body && e.value ? (requestAnimationFrame(() => {
2287
+ if (!e.value) return;
2288
+ const i = a();
2289
+ ((i && Xt(i)[0]) ?? t())?.focus({
2290
+ preventScroll: !0
2291
+ });
2292
+ }), !0) : !1;
2293
+ };
2294
+ }
2295
+ function yn(e, a) {
2296
+ const t = ee(!1);
2297
+ let n;
2298
+ function l(o) {
2299
+ cancelAnimationFrame(n), t.value = !0, n = requestAnimationFrame(() => {
2300
+ n = requestAnimationFrame(() => {
2301
+ t.value = !1;
2302
+ });
2303
+ });
2304
+ }
2305
+ async function i() {
2306
+ await new Promise((o) => requestAnimationFrame(o)), await new Promise((o) => requestAnimationFrame(o)), await new Promise((o) => requestAnimationFrame(o)), await new Promise((o) => {
2307
+ if (t.value) {
2308
+ const u = se(t, () => {
2309
+ u(), o();
2310
+ });
2311
+ } else o();
2312
+ });
2313
+ }
2314
+ async function s(o) {
2315
+ if (o.key === "Tab" && a.value?.focus(), !["PageDown", "PageUp", "Home", "End"].includes(o.key)) return;
2316
+ const u = e.value?.$el;
2317
+ if (!u) return;
2318
+ (o.key === "Home" || o.key === "End") && u.scrollTo({
2319
+ top: o.key === "Home" ? 0 : u.scrollHeight,
2320
+ behavior: "smooth"
2321
+ }), await i();
2322
+ const c = u.querySelectorAll(":scope > :not(.v-virtual-scroll__spacer)");
2323
+ if (o.key === "PageDown" || o.key === "Home") {
2324
+ const d = u.getBoundingClientRect().top;
2325
+ for (const v of c)
2326
+ if (v.getBoundingClientRect().top >= d) {
2327
+ v.focus();
2328
+ break;
2329
+ }
2330
+ } else {
2331
+ const d = u.getBoundingClientRect().bottom;
2332
+ for (const v of [...c].reverse())
2333
+ if (v.getBoundingClientRect().bottom <= d) {
2334
+ v.focus();
2335
+ break;
2336
+ }
2337
+ }
2338
+ }
2339
+ return {
2340
+ onScrollPassive: l,
2341
+ onKeydown: s
2342
+ };
2343
+ }
2344
+ function hn(e) {
2345
+ let {
2346
+ groups: a,
2347
+ onLeave: t
2348
+ } = e;
2349
+ function n(o) {
2350
+ return o.type === "list" ? o.contentRef.value?.$el : o.contentRef.value;
2351
+ }
2352
+ function l(o) {
2353
+ const u = n(o);
2354
+ return u ? Xt(u) : [];
2355
+ }
2356
+ function i(o) {
2357
+ const u = o.target, c = o.shiftKey ? "backward" : "forward", d = a.map(l), v = a.map((f) => f.type === "list" ? f.contentRef.value?.$el : f.contentRef.value).findIndex((f) => f?.contains(u)), r = s(d, v, c, u);
2358
+ if (r === null) {
2359
+ const f = a[v], g = d[v];
2360
+ (f.type === "list" || (c === "forward" ? g.at(-1) === o.target : g.at(0) === o.target)) && t();
2361
+ } else {
2362
+ o.preventDefault(), o.stopImmediatePropagation();
2363
+ const f = a[r];
2364
+ if (f.type === "list" && Kt(f.displayItemsCount) > 0)
2365
+ f.contentRef.value?.focus(0);
2366
+ else {
2367
+ const g = c === "forward";
2368
+ d[r].at(g ? 0 : -1).focus();
2369
+ }
2370
+ }
2371
+ }
2372
+ function s(o, u, c, d) {
2373
+ const v = a[u], r = o[u];
2374
+ if (v.type !== "list" && !(c === "forward" ? r.at(-1) === d : r.at(0) === d))
2375
+ return null;
2376
+ const f = c === "forward" ? 1 : -1;
2377
+ for (let g = u + f; g >= 0 && g < a.length; g += f) {
2378
+ const h = a[g];
2379
+ if (o[g].length > 0 || h.type === "list" && Kt(h.displayItemsCount) > 0)
2380
+ return g;
2381
+ }
2382
+ return null;
2383
+ }
2384
+ return {
2385
+ onTabKeydown: i
2386
+ };
2387
+ }
2388
+ const Ga = (e, a, t) => {
2389
+ if (e == null || a == null) return -1;
2390
+ if (!a.length) return 0;
2391
+ e = e.toString().toLocaleLowerCase(), a = a.toString().toLocaleLowerCase();
2392
+ const n = [];
2393
+ let l = e.indexOf(a);
2394
+ for (; ~l; )
2395
+ n.push([l, l + a.length]), l = e.indexOf(a, l + a.length);
2396
+ return n.length ? n : -1;
2397
+ };
2398
+ function zt(e, a) {
2399
+ if (!(e == null || typeof e == "boolean" || e === -1))
2400
+ return typeof e == "number" ? [[e, e + a.length]] : Array.isArray(e[0]) ? e : [e];
2401
+ }
2402
+ const bn = X({
2403
+ customFilter: Function,
2404
+ customKeyFilter: Object,
2405
+ filterKeys: [Array, String],
2406
+ filterMode: {
2407
+ type: String,
2408
+ default: "intersection"
2409
+ },
2410
+ noFilter: Boolean
2411
+ }, "filter");
2412
+ function Wa(e, a, t) {
2413
+ const n = [], l = t?.default ?? Ga, i = t?.filterKeys ? Re(t.filterKeys) : !1, s = Object.keys(t?.customKeyFilter ?? {}).length;
2414
+ if (!e?.length) return n;
2415
+ let o = [];
2416
+ e: for (let u = 0; u < e.length; u++) {
2417
+ const [c, d = c] = Re(e[u]), v = {}, r = {};
2418
+ let f = -1;
2419
+ if ((a || s > 0) && !t?.noFilter) {
2420
+ let g = !1;
2421
+ if (typeof c == "object") {
2422
+ if (c.type === "divider" || c.type === "subheader") {
2423
+ (o.at(-1)?.type !== "divider" || c.type !== "subheader") && (o = []), o.push({
2424
+ index: u,
2425
+ matches: {},
2426
+ type: c.type
2427
+ });
2428
+ continue;
2429
+ }
2430
+ const w = i || Object.keys(d);
2431
+ g = w.length === s;
2432
+ for (const I of w) {
2433
+ const C = jl(d, I), F = t?.customKeyFilter?.[I];
2434
+ if (f = F ? F(C, a, c) : l(C, a, c), f !== -1 && f !== !1)
2435
+ F ? v[I] = zt(f, a) : r[I] = zt(f, a);
2436
+ else if (t?.filterMode === "every")
2437
+ continue e;
2438
+ }
2439
+ } else
2440
+ f = l(c, a, c), f !== -1 && f !== !1 && (r.title = zt(f, a));
2441
+ const h = Object.keys(r).length, p = Object.keys(v).length;
2442
+ if (!h && !p || t?.filterMode === "union" && p !== s && !h || t?.filterMode === "intersection" && (p !== s || !h && s > 0 && !g)) continue;
2443
+ }
2444
+ o.length && (n.push(...o), o = []), n.push({
2445
+ index: u,
2446
+ matches: {
2447
+ ...r,
2448
+ ...v
2449
+ }
2450
+ });
2451
+ }
2452
+ return n;
2453
+ }
2454
+ function pn(e, a, t, n) {
2455
+ const l = ee([]), i = ee(/* @__PURE__ */ new Map()), s = x(() => n?.transform ? $(a).map((u) => [u, n.transform(u)]) : $(a));
2456
+ Ut(() => {
2457
+ const u = typeof t == "function" ? t() : $(t), c = typeof u != "string" && typeof u != "number" ? "" : String(u), d = Wa(s.value, c, {
2458
+ customKeyFilter: {
2459
+ ...e.customKeyFilter,
2460
+ ...$(n?.customKeyFilter)
2461
+ },
2462
+ default: e.customFilter,
2463
+ filterKeys: e.filterKeys,
2464
+ filterMode: e.filterMode,
2465
+ noFilter: e.noFilter
2466
+ }), v = $(a), r = [], f = /* @__PURE__ */ new Map();
2467
+ d.forEach((g) => {
2468
+ let {
2469
+ index: h,
2470
+ matches: p
2471
+ } = g;
2472
+ const w = v[h];
2473
+ r.push(w), f.set(w.value, p);
2474
+ }), l.value = r, i.value = f;
2475
+ });
2476
+ function o(u) {
2477
+ return i.value.get(u.value);
2478
+ }
2479
+ return {
2480
+ filteredItems: l,
2481
+ filteredMatches: i,
2482
+ getMatches: o
2483
+ };
2484
+ }
2485
+ function kn(e, a, t) {
2486
+ return t == null || !t.length ? a : t.map((n, l) => {
2487
+ const i = l === 0 ? 0 : t[l - 1][1], s = [b("span", {
2488
+ class: re(`${e}__unmask`)
2489
+ }, [a.slice(i, n[0])]), b("span", {
2490
+ class: re(`${e}__mask`)
2491
+ }, [a.slice(n[0], n[1])])];
2492
+ return l === t.length - 1 && s.push(b("span", {
2493
+ class: re(`${e}__unmask`)
2494
+ }, [a.slice(n[1])])), b(ce, null, [s]);
2495
+ });
2496
+ }
2497
+ const qa = X({
2498
+ closeText: {
2499
+ type: String,
2500
+ default: "$vuetify.close"
2501
+ },
2502
+ openText: {
2503
+ type: String,
2504
+ default: "$vuetify.open"
2505
+ }
2506
+ }, "autocomplete");
2507
+ function Sn(e, a) {
2508
+ const t = Ye(), n = x(() => `menu-${t}`), l = R(() => Kt(a)), i = R(() => n.value);
2509
+ return {
2510
+ menuId: n,
2511
+ ariaExpanded: l,
2512
+ ariaControls: i
2513
+ };
2514
+ }
2515
+ const Cn = X({
2516
+ chips: Boolean,
2517
+ closableChips: Boolean,
2518
+ eager: Boolean,
2519
+ hideNoData: Boolean,
2520
+ hideSelected: Boolean,
2521
+ listProps: {
2522
+ type: Object
2523
+ },
2524
+ menu: Boolean,
2525
+ menuIcon: {
2526
+ type: he,
2527
+ default: "$dropdown"
2528
+ },
2529
+ menuProps: {
2530
+ type: Object
2531
+ },
2532
+ multiple: Boolean,
2533
+ noDataText: {
2534
+ type: String,
2535
+ default: "$vuetify.noDataText"
2536
+ },
2537
+ openOnClear: Boolean,
2538
+ itemColor: String,
2539
+ noAutoScroll: Boolean,
2540
+ ...qa(),
2541
+ ...Gn({
2542
+ itemChildren: !1
2543
+ })
2544
+ }, "Select"), Ja = X({
2545
+ search: String,
2546
+ ...bn({
2547
+ filterKeys: ["title"]
2548
+ }),
2549
+ ...Cn(),
2550
+ ...Qe(Nt({
2551
+ modelValue: null,
2552
+ role: "combobox"
2553
+ }), ["validationValue", "dirty"]),
2554
+ ...Et({
2555
+ transition: {
2556
+ component: Xl
2557
+ }
2558
+ })
2559
+ }, "VSelect"), Eo = ue()({
2560
+ name: "VSelect",
2561
+ props: Ja(),
2562
+ emits: {
2563
+ "update:focused": (e) => !0,
2564
+ "update:modelValue": (e) => !0,
2565
+ "update:menu": (e) => !0,
2566
+ "update:search": (e) => !0
2567
+ },
2568
+ setup(e, a) {
2569
+ let {
2570
+ slots: t
2571
+ } = a;
2572
+ const {
2573
+ t: n
2574
+ } = it(), l = q(), i = q(), s = q(), o = q(), u = q(), {
2575
+ items: c,
2576
+ transformIn: d,
2577
+ transformOut: v
2578
+ } = Gl(e), r = Ve(e, "search", ""), {
2579
+ filteredItems: f,
2580
+ getMatches: g
2581
+ } = pn(e, c, () => r.value), h = Ve(e, "modelValue", [], (P) => d(P === null ? [null] : Re(P)), (P) => {
2582
+ const G = v(P);
2583
+ return e.multiple ? G : G[0] ?? null;
2584
+ }), p = x(() => typeof e.counterValue == "function" ? e.counterValue(h.value) : typeof e.counterValue == "number" ? e.counterValue : h.value.length), w = Mt(e), I = fn(e), C = x(() => h.value.map((P) => P.value)), F = ee(!1), E = R(() => e.closableChips && !w.isReadonly.value && !w.isDisabled.value), {
2585
+ InputIcon: U
2586
+ } = $t(e);
2587
+ let A = "", V = 0, M;
2588
+ const D = x(() => {
2589
+ const P = r.value ? f.value : c.value;
2590
+ return e.hideSelected ? P.filter((G) => !h.value.some((me) => (e.valueComparator || Je)(me, G))) : P;
2591
+ }), N = x(() => e.hideNoData && !D.value.length || w.isReadonly.value || w.isDisabled.value), le = Ve(e, "menu"), z = x({
2592
+ get: () => le.value,
2593
+ set: (P) => {
2594
+ le.value && !P && i.value?.ΨopenChildren.size || P && N.value || (le.value = P);
2595
+ }
2596
+ }), {
2597
+ menuId: J,
2598
+ ariaExpanded: W,
2599
+ ariaControls: ie
2600
+ } = Sn(e, z), j = x(() => ({
2601
+ ...e.menuProps,
2602
+ activatorProps: {
2603
+ ...e.menuProps?.activatorProps || {},
2604
+ "aria-haspopup": "listbox"
2605
+ // Set aria-haspopup to 'listbox'
2606
+ }
2607
+ })), K = q(), ve = yn(K, l), B = gn(z, () => i.value?.contentEl, () => l.value?.controlRef), {
2608
+ onTabKeydown: O
2609
+ } = hn({
2610
+ groups: [{
2611
+ type: "element",
2612
+ contentRef: s
2613
+ }, {
2614
+ type: "list",
2615
+ contentRef: K,
2616
+ displayItemsCount: () => D.value.length
2617
+ }, {
2618
+ type: "element",
2619
+ contentRef: o
2620
+ }],
2621
+ onLeave: () => {
2622
+ z.value = !1, l.value?.focus();
2623
+ }
2624
+ });
2625
+ function k(P) {
2626
+ e.openOnClear && (z.value = !0);
2627
+ }
2628
+ function m() {
2629
+ N.value || (z.value = !z.value);
2630
+ }
2631
+ function _(P) {
2632
+ P.key === "Tab" && O(P), K.value?.$el.contains(P.target) && _t(P) && Q(P);
2633
+ }
2634
+ function Q(P) {
2635
+ if (!P.key || w.isReadonly.value) return;
2636
+ if (["Enter", " ", "ArrowDown", "ArrowUp", "Home", "End"].includes(P.key) && P.preventDefault(), ["Enter", "ArrowDown", " "].includes(P.key) && (z.value = !0), ["Escape", "Tab"].includes(P.key) && (z.value = !1), e.clearable && P.key === "Backspace") {
2637
+ P.preventDefault(), h.value = [], k();
2638
+ return;
2639
+ }
2640
+ P.key === "Home" ? K.value?.focus("first") : P.key === "End" && K.value?.focus("last");
2641
+ const G = 1e3;
2642
+ if (!_t(P)) return;
2643
+ const me = performance.now();
2644
+ me - M > G && (A = "", V = 0), A += P.key.toLowerCase(), M = me;
2645
+ const Ee = D.value;
2646
+ function Pe() {
2647
+ let T = we();
2648
+ return T || A.at(-1) === A.at(-2) && (A = A.slice(0, -1), V++, T = we(), T) || (V = 0, T = we(), T) ? T : (A = P.key.toLowerCase(), we());
2649
+ }
2650
+ function we() {
2651
+ for (let T = V; T < Ee.length; T++) {
2652
+ const te = Ee[T];
2653
+ if (te.title.toLowerCase().startsWith(A))
2654
+ return [te, T];
2655
+ }
2656
+ }
2657
+ const S = Pe();
2658
+ if (!S) return;
2659
+ const [Y, L] = S;
2660
+ V = L, K.value?.focus(L), e.multiple || (h.value = [Y]);
2661
+ }
2662
+ function oe(P) {
2663
+ let G = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
2664
+ if (!P.props.disabled)
2665
+ if (e.multiple) {
2666
+ const me = h.value.findIndex((Pe) => (e.valueComparator || Je)(Pe.value, P.value)), Ee = G ?? !~me;
2667
+ if (~me) {
2668
+ const Pe = Ee ? [...h.value, P] : [...h.value];
2669
+ Pe.splice(me, 1), h.value = Pe;
2670
+ } else Ee && (h.value = [...h.value, P]);
2671
+ } else {
2672
+ const me = G !== !1;
2673
+ h.value = me ? [P] : [], ke(() => {
2674
+ z.value = !1;
2675
+ });
2676
+ }
2677
+ }
2678
+ function ge(P) {
2679
+ const G = P.target;
2680
+ l.value?.$el.contains(G) || (z.value = !1);
2681
+ }
2682
+ function pe() {
2683
+ return D.value.findIndex((P) => h.value.some((G) => (e.valueComparator || Je)(G.value, P.value)));
2684
+ }
2685
+ function Ie() {
2686
+ if (!h.value.length) return -1;
2687
+ const P = e.valueComparator || Je;
2688
+ let G = 0;
2689
+ for (const me of D.value) {
2690
+ if (h.value.some((Pe) => P(Pe.value, me.value))) return me.props.disabled ? -1 : G;
2691
+ me.props.disabled || G++;
2692
+ }
2693
+ return -1;
2694
+ }
2695
+ function Te() {
2696
+ if (e.eager && u.value?.calculateVisibleItems(), K.value && F.value) {
2697
+ const P = Ie();
2698
+ K.value.focus(P >= 0 ? P : "first", {
2699
+ focusVisible: !1
2700
+ });
2701
+ }
2702
+ }
2703
+ function Ge() {
2704
+ r.value = "", F.value && l.value?.focus();
2705
+ }
2706
+ function Ze(P) {
2707
+ F.value = !0;
2708
+ }
2709
+ function st(P) {
2710
+ if (!l.value?.$el.contains(P.relatedTarget)) {
2711
+ if (B(P)) return;
2712
+ F.value = !1;
2713
+ }
2714
+ }
2715
+ function Ae(P) {
2716
+ if (P == null) h.value = [];
2717
+ else if (vt(l.value, ":autofill") || vt(l.value, ":-webkit-autofill")) {
2718
+ const G = c.value.find((me) => me.title === P);
2719
+ G && oe(G);
2720
+ } else l.value && (l.value.value = "");
2721
+ }
2722
+ return se(z, () => {
2723
+ if (!e.hideSelected && z.value && h.value.length) {
2724
+ const P = pe();
2725
+ dt && !e.noAutoScroll && window.requestAnimationFrame(() => {
2726
+ P >= 0 && u.value?.scrollToIndex(P);
2727
+ });
2728
+ }
2729
+ }), se(c, (P, G) => {
2730
+ z.value || F.value && e.hideNoData && !G.length && P.length && (z.value = !0);
2731
+ }), de(() => {
2732
+ const P = !!(e.chips || t.chip), G = !!(!e.hideNoData || D.value.length || t["prepend-item"] || t["append-item"] || t["no-data"]), me = h.value.length > 0, Ee = Xe.filterProps(e), Pe = me || !F.value && e.label && !e.persistentPlaceholder ? void 0 : e.placeholder, we = {
2733
+ search: r,
2734
+ filteredItems: f.value
2735
+ };
2736
+ return y(Xe, H({
2737
+ ref: l
2738
+ }, Ee, {
2739
+ modelValue: h.value.map((S) => S.props.title).join(", "),
2740
+ name: void 0,
2741
+ "onUpdate:modelValue": Ae,
2742
+ focused: F.value,
2743
+ "onUpdate:focused": (S) => F.value = S,
2744
+ validationValue: h.externalValue,
2745
+ counterValue: p.value,
2746
+ dirty: me,
2747
+ class: ["v-select", {
2748
+ "v-select--active-menu": z.value,
2749
+ "v-select--chips": !!e.chips,
2750
+ [`v-select--${e.multiple ? "multiple" : "single"}`]: !0,
2751
+ "v-select--selected": h.value.length,
2752
+ "v-select--selection-slot": !!t.selection
2753
+ }, e.class],
2754
+ style: e.style,
2755
+ inputmode: "none",
2756
+ placeholder: Pe,
2757
+ "onClick:clear": k,
2758
+ "onMousedown:control": m,
2759
+ onBlur: ge,
2760
+ onKeydown: Q,
2761
+ "aria-expanded": W.value,
2762
+ "aria-controls": ie.value
2763
+ }), {
2764
+ ...t,
2765
+ default: (S) => {
2766
+ let {
2767
+ id: Y
2768
+ } = S;
2769
+ return b(ce, null, [b("select", {
2770
+ hidden: !0,
2771
+ multiple: e.multiple,
2772
+ name: I.fieldName.value
2773
+ }, [c.value.map((L) => b("option", {
2774
+ key: L.value,
2775
+ value: L.value,
2776
+ selected: C.value.includes(L.value)
2777
+ }, null))]), y(Wl, H({
2778
+ id: J.value,
2779
+ ref: i,
2780
+ modelValue: z.value,
2781
+ "onUpdate:modelValue": (L) => z.value = L,
2782
+ activator: "parent",
2783
+ disabled: N.value,
2784
+ eager: e.eager,
2785
+ maxHeight: 310,
2786
+ openOnClick: !1,
2787
+ closeOnContentClick: !1,
2788
+ transition: e.transition,
2789
+ onAfterEnter: Te,
2790
+ onAfterLeave: Ge
2791
+ }, j.value, {
2792
+ contentClass: ["v-select__content", j.value.contentClass]
2793
+ }), {
2794
+ default: () => [y(sl, {
2795
+ onFocusin: Ze,
2796
+ onFocusout: st,
2797
+ onKeydown: _
2798
+ }, {
2799
+ default: () => [t["menu-header"] && b("header", {
2800
+ ref: s
2801
+ }, [t["menu-header"](we)]), G && y(ul, H({
2802
+ key: "select-list",
2803
+ ref: K,
2804
+ selected: C.value,
2805
+ selectStrategy: e.multiple ? "independent" : "single-independent",
2806
+ tabindex: "-1",
2807
+ selectable: !!D.value.length,
2808
+ "aria-live": "polite",
2809
+ "aria-labelledby": `${Y.value}-label`,
2810
+ "aria-multiselectable": e.multiple,
2811
+ color: e.itemColor ?? e.color
2812
+ }, ve, e.listProps), {
2813
+ default: () => [t["prepend-item"]?.(), !D.value.length && !e.hideNoData && (t["no-data"]?.() ?? y(ft, {
2814
+ key: "no-data",
2815
+ title: n(e.noDataText)
2816
+ }, null)), y(mn, {
2817
+ ref: u,
2818
+ renderless: !0,
2819
+ items: D.value,
2820
+ itemKey: "value"
2821
+ }, {
2822
+ default: (L) => {
2823
+ let {
2824
+ item: T,
2825
+ index: te,
2826
+ itemRef: Oe
2827
+ } = L;
2828
+ const ne = jn(T.props), Z = H(T.props, {
2829
+ ref: Oe,
2830
+ key: T.value,
2831
+ onClick: () => oe(T, null),
2832
+ "aria-posinset": te + 1,
2833
+ "aria-setsize": D.value.length
2834
+ });
2835
+ return T.type === "divider" ? t.divider?.({
2836
+ props: T.raw,
2837
+ index: te
2838
+ }) ?? y(Ue, H(T.props, {
2839
+ key: `divider-${te}`
2840
+ }), null) : T.type === "subheader" ? t.subheader?.({
2841
+ props: T.raw,
2842
+ index: te
2843
+ }) ?? y(ql, H(T.props, {
2844
+ key: `subheader-${te}`
2845
+ }), null) : t.item?.({
2846
+ item: T,
2847
+ index: te,
2848
+ props: Z
2849
+ }) ?? y(ft, H(Z, {
2850
+ role: "option"
2851
+ }), {
2852
+ prepend: (fe) => {
2853
+ let {
2854
+ isSelected: et
2855
+ } = fe;
2856
+ return b(ce, null, [e.multiple && !e.hideSelected ? y(sn, {
2857
+ key: T.value,
2858
+ modelValue: et,
2859
+ ripple: !1,
2860
+ tabindex: "-1",
2861
+ "aria-hidden": !0,
2862
+ onClick: (We) => We.preventDefault()
2863
+ }, null) : void 0, ne.prependAvatar && y(at, {
2864
+ image: ne.prependAvatar
2865
+ }, null), ne.prependIcon && y(Se, {
2866
+ icon: ne.prependIcon
2867
+ }, null)]);
2868
+ },
2869
+ title: () => r.value ? kn("v-select", T.title, g(T)?.title) : T.title
2870
+ });
2871
+ }
2872
+ }), t["append-item"]?.()]
2873
+ }), t["menu-footer"] && b("footer", {
2874
+ ref: o
2875
+ }, [t["menu-footer"](we)])]
2876
+ })]
2877
+ }), h.value.map((L, T) => {
2878
+ function te(fe) {
2879
+ fe.stopPropagation(), fe.preventDefault(), oe(L, !1);
2880
+ }
2881
+ const Oe = H(gt.filterProps(L.props), {
2882
+ "onClick:close": te,
2883
+ onKeydown(fe) {
2884
+ fe.key !== "Enter" && fe.key !== " " || (fe.preventDefault(), fe.stopPropagation(), te(fe));
2885
+ },
2886
+ onMousedown(fe) {
2887
+ fe.preventDefault(), fe.stopPropagation();
2888
+ },
2889
+ modelValue: !0,
2890
+ "onUpdate:modelValue": void 0
2891
+ }), ne = P ? !!t.chip : !!t.selection, Z = ne ? Jl(P ? t.chip({
2892
+ item: L,
2893
+ index: T,
2894
+ props: Oe
2895
+ }) : t.selection({
2896
+ item: L,
2897
+ index: T
2898
+ })) : void 0;
2899
+ if (!(ne && !Z))
2900
+ return b("div", {
2901
+ key: L.value,
2902
+ class: "v-select__selection"
2903
+ }, [P ? t.chip ? y(De, {
2904
+ key: "chip-defaults",
2905
+ defaults: {
2906
+ VChip: {
2907
+ closable: E.value,
2908
+ size: "small",
2909
+ text: L.title
2910
+ }
2911
+ }
2912
+ }, {
2913
+ default: () => [Z]
2914
+ }) : y(gt, H({
2915
+ key: "chip",
2916
+ closable: E.value,
2917
+ size: "small",
2918
+ text: L.title,
2919
+ disabled: L.props.disabled
2920
+ }, Oe), null) : Z ?? b("span", {
2921
+ class: "v-select__selection-text"
2922
+ }, [L.title, e.multiple && T < h.value.length - 1 && b("span", {
2923
+ class: "v-select__selection-comma"
2924
+ }, [Vl(",")])])]);
2925
+ })]);
2926
+ },
2927
+ "append-inner": function() {
2928
+ for (var S = arguments.length, Y = new Array(S), L = 0; L < S; L++)
2929
+ Y[L] = arguments[L];
2930
+ return b(ce, null, [t["append-inner"]?.(...Y), e.menuIcon ? y(Se, {
2931
+ class: "v-select__menu-icon",
2932
+ color: l.value?.fieldIconColor,
2933
+ icon: e.menuIcon,
2934
+ "aria-hidden": !0
2935
+ }, null) : void 0, e.appendInnerIcon && y(U, {
2936
+ key: "append-icon",
2937
+ name: "appendInner",
2938
+ color: Y[0].iconColor.value
2939
+ }, null)]);
2940
+ }
2941
+ });
2942
+ }), Ct({
2943
+ isFocused: F,
2944
+ menu: z,
2945
+ search: r,
2946
+ filteredItems: f,
2947
+ select: oe
2948
+ }, l);
2949
+ }
2950
+ }), Xa = X({
2951
+ autoSelectFirst: {
2952
+ type: [Boolean, String]
2953
+ },
2954
+ clearOnSelect: Boolean,
2955
+ search: String,
2956
+ ...bn({
2957
+ filterKeys: ["title"]
2958
+ }),
2959
+ ...Cn(),
2960
+ ...Qe(Nt({
2961
+ modelValue: null,
2962
+ role: "combobox"
2963
+ }), ["validationValue", "dirty"])
2964
+ }, "VAutocomplete"), Ya = ue()({
2965
+ name: "VAutocomplete",
2966
+ props: Xa(),
2967
+ emits: {
2968
+ "update:focused": (e) => !0,
2969
+ "update:search": (e) => !0,
2970
+ "update:modelValue": (e) => !0,
2971
+ "update:menu": (e) => !0
2972
+ },
2973
+ setup(e, a) {
2974
+ let {
2975
+ slots: t
2976
+ } = a;
2977
+ const {
2978
+ t: n
2979
+ } = it(), l = q(), i = ee(!1), s = ee(!0), o = ee(!1), u = q(), c = q(), d = ee(-1), v = ee(null), {
2980
+ items: r,
2981
+ transformIn: f,
2982
+ transformOut: g
2983
+ } = Gl(e), {
2984
+ textColorClasses: h,
2985
+ textColorStyles: p
2986
+ } = St(() => l.value?.color), {
2987
+ InputIcon: w
2988
+ } = $t(e), I = Ve(e, "search", ""), C = Ve(e, "modelValue", [], (S) => f(S === null ? [null] : Re(S)), (S) => {
2989
+ const Y = g(S);
2990
+ return e.multiple ? Y : Y[0] ?? null;
2991
+ }), F = x(() => typeof e.counterValue == "function" ? e.counterValue(C.value) : typeof e.counterValue == "number" ? e.counterValue : C.value.length), E = Mt(e), {
2992
+ filteredItems: U,
2993
+ getMatches: A
2994
+ } = pn(e, r, () => v.value ?? (s.value ? "" : I.value)), V = x(() => e.hideSelected && v.value === null ? U.value.filter((S) => !C.value.some((Y) => Y.value === S.value)) : U.value), M = R(() => e.closableChips && !E.isReadonly.value && !E.isDisabled.value), D = x(() => !!(e.chips || t.chip)), N = x(() => D.value || !!t.selection), le = x(() => C.value.map((S) => S.props.value)), z = x(() => V.value.find((S) => S.type === "item" && !S.props.disabled)), J = x(() => (e.autoSelectFirst === !0 || e.autoSelectFirst === "exact" && I.value === z.value?.title) && V.value.length > 0 && !s.value && !o.value), W = x(() => e.hideNoData && !V.value.length || E.isReadonly.value || E.isDisabled.value), ie = Ve(e, "menu"), j = x({
2995
+ get: () => ie.value,
2996
+ set: (S) => {
2997
+ ie.value && !S && u.value?.ΨopenChildren.size || S && W.value || (ie.value = S);
2998
+ }
2999
+ }), {
3000
+ menuId: K,
3001
+ ariaExpanded: ve,
3002
+ ariaControls: B
3003
+ } = Sn(e, j), O = q(), k = q(), m = q(), _ = yn(O, l), Q = gn(j, () => u.value?.contentEl, () => l.value?.controlRef), {
3004
+ onTabKeydown: oe
3005
+ } = hn({
3006
+ groups: [{
3007
+ type: "element",
3008
+ contentRef: k
3009
+ }, {
3010
+ type: "list",
3011
+ contentRef: O,
3012
+ displayItemsCount: () => V.value.length
3013
+ }, {
3014
+ type: "element",
3015
+ contentRef: m
3016
+ }],
3017
+ onLeave: () => {
3018
+ j.value = !1, l.value?.focus();
3019
+ }
3020
+ });
3021
+ function ge(S) {
3022
+ e.openOnClear && (j.value = !0), I.value = "";
3023
+ }
3024
+ function pe() {
3025
+ W.value || (j.value = !0);
3026
+ }
3027
+ function Ie(S) {
3028
+ W.value || (i.value && (S.preventDefault(), S.stopPropagation()), j.value = !j.value);
3029
+ }
3030
+ function Te(S) {
3031
+ S.key === "Tab" && oe(S), O.value?.$el.contains(S.target) && (_t(S) || S.key === "Backspace") && l.value?.focus();
3032
+ }
3033
+ function Ge(S) {
3034
+ if (E.isReadonly.value) return;
3035
+ const Y = l.value?.selectionStart, L = C.value.length;
3036
+ if (["Enter", "ArrowDown", "ArrowUp"].includes(S.key) && S.preventDefault(), ["Enter", "ArrowDown"].includes(S.key) && (j.value = !0), ["Escape"].includes(S.key) && (j.value = !1), J.value && ["Enter", "Tab"].includes(S.key) && z.value && !C.value.some((T) => {
3037
+ let {
3038
+ value: te
3039
+ } = T;
3040
+ return te === z.value.value;
3041
+ }) && we(z.value), S.key === "ArrowDown" && J.value && O.value?.focus("next"), ["Backspace", "Delete"].includes(S.key)) {
3042
+ if (!e.multiple && N.value && C.value.length > 0 && !I.value) return we(C.value[0], !1);
3043
+ if (~d.value) {
3044
+ S.preventDefault();
3045
+ const T = d.value;
3046
+ we(C.value[d.value], !1), d.value = T >= L - 1 ? L - 2 : T;
3047
+ } else S.key === "Backspace" && !I.value && (d.value = L - 1);
3048
+ return;
3049
+ }
3050
+ if (e.multiple)
3051
+ if (S.key === "ArrowLeft") {
3052
+ if (d.value < 0 && Y && Y > 0) return;
3053
+ const T = d.value > -1 ? d.value - 1 : L - 1;
3054
+ if (C.value[T])
3055
+ d.value = T;
3056
+ else {
3057
+ const te = I.value?.length ?? null;
3058
+ d.value = -1, l.value?.setSelectionRange(te, te);
3059
+ }
3060
+ } else if (S.key === "ArrowRight") {
3061
+ if (d.value < 0) return;
3062
+ const T = d.value + 1;
3063
+ C.value[T] ? d.value = T : (d.value = -1, l.value?.setSelectionRange(0, 0));
3064
+ } else ~d.value && _t(S) && (d.value = -1);
3065
+ }
3066
+ function Ze(S) {
3067
+ if (vt(l.value, ":autofill") || vt(l.value, ":-webkit-autofill")) {
3068
+ const Y = r.value.find((L) => L.title === S.target.value);
3069
+ Y && we(Y);
3070
+ }
3071
+ }
3072
+ function st() {
3073
+ e.eager && c.value?.calculateVisibleItems();
3074
+ }
3075
+ function Ae() {
3076
+ i.value && (s.value = !0, l.value?.focus()), v.value = null;
3077
+ }
3078
+ function P(S) {
3079
+ i.value = !0, setTimeout(() => {
3080
+ o.value = !0;
3081
+ });
3082
+ }
3083
+ function G(S) {
3084
+ if (o.value = !1, !l.value?.$el.contains(S.relatedTarget)) {
3085
+ if (Q(S)) return;
3086
+ i.value = !1;
3087
+ }
3088
+ }
3089
+ function me(S) {
3090
+ (S == null || S === "" && !e.multiple && !N.value) && (C.value = []);
3091
+ }
3092
+ function Ee(S) {
3093
+ u.value?.contentEl?.contains(S.relatedTarget) && (i.value = !0);
3094
+ }
3095
+ const Pe = ee(!1);
3096
+ function we(S) {
3097
+ let Y = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
3098
+ if (!(!S || S.props.disabled))
3099
+ if (e.multiple) {
3100
+ const L = C.value.findIndex((te) => (e.valueComparator || Je)(te.value, S.value)), T = Y ?? !~L;
3101
+ if (~L) {
3102
+ const te = T ? [...C.value, S] : [...C.value];
3103
+ te.splice(L, 1), C.value = te;
3104
+ } else T && (C.value = [...C.value, S]);
3105
+ e.clearOnSelect && (I.value = "");
3106
+ } else {
3107
+ const L = Y !== !1;
3108
+ C.value = L ? [S] : [], v.value = s.value ? "" : I.value ?? "", I.value = L && !N.value ? S.title : "", ke(() => {
3109
+ j.value = !1, s.value = !0;
3110
+ });
3111
+ }
3112
+ }
3113
+ return se(i, (S, Y) => {
3114
+ S !== Y && (S ? (Pe.value = !0, I.value = e.multiple || N.value ? "" : String(C.value.at(-1)?.props.title ?? ""), s.value = !0, ke(() => Pe.value = !1)) : (!e.multiple && I.value == null && (C.value = []), j.value = !1, !s.value && I.value && (v.value = I.value), I.value = "", d.value = -1));
3115
+ }), se(I, (S) => {
3116
+ !i.value || Pe.value || (S && (j.value = !0), s.value = !S);
3117
+ }), se(j, (S) => {
3118
+ if (!e.hideSelected && S && C.value.length && s.value) {
3119
+ const Y = V.value.findIndex((L) => C.value.some((T) => L.value === T.value));
3120
+ dt && window.requestAnimationFrame(() => {
3121
+ Y >= 0 && c.value?.scrollToIndex(Y);
3122
+ });
3123
+ }
3124
+ S && (v.value = null);
3125
+ }), se(r, (S, Y) => {
3126
+ j.value || i.value && !Y.length && S.length && (j.value = !0);
3127
+ }), de(() => {
3128
+ const S = !!(!e.hideNoData || V.value.length || t["prepend-item"] || t["append-item"] || t["no-data"]), Y = C.value.length > 0, L = Xe.filterProps(e), T = {
3129
+ search: I,
3130
+ filteredItems: U.value
3131
+ };
3132
+ return y(Xe, H({
3133
+ ref: l
3134
+ }, L, {
3135
+ modelValue: I.value,
3136
+ "onUpdate:modelValue": [(te) => I.value = te, me],
3137
+ focused: i.value,
3138
+ "onUpdate:focused": (te) => i.value = te,
3139
+ validationValue: C.externalValue,
3140
+ counterValue: F.value,
3141
+ dirty: Y,
3142
+ onChange: Ze,
3143
+ class: ["v-autocomplete", `v-autocomplete--${e.multiple ? "multiple" : "single"}`, {
3144
+ "v-autocomplete--active-menu": j.value,
3145
+ "v-autocomplete--chips": !!e.chips,
3146
+ "v-autocomplete--selection-slot": !!N.value,
3147
+ "v-autocomplete--selecting-index": d.value > -1
3148
+ }, e.class],
3149
+ style: e.style,
3150
+ readonly: E.isReadonly.value,
3151
+ placeholder: Y ? void 0 : e.placeholder,
3152
+ "onClick:clear": ge,
3153
+ "onMousedown:control": pe,
3154
+ onKeydown: Ge,
3155
+ onBlur: Ee,
3156
+ "aria-expanded": ve.value,
3157
+ "aria-controls": B.value
3158
+ }), {
3159
+ ...t,
3160
+ default: (te) => {
3161
+ let {
3162
+ id: Oe
3163
+ } = te;
3164
+ return b(ce, null, [y(Wl, H({
3165
+ id: K.value,
3166
+ ref: u,
3167
+ modelValue: j.value,
3168
+ "onUpdate:modelValue": (ne) => j.value = ne,
3169
+ activator: "parent",
3170
+ disabled: W.value,
3171
+ eager: e.eager,
3172
+ maxHeight: 310,
3173
+ openOnClick: !1,
3174
+ closeOnContentClick: !1,
3175
+ onAfterEnter: st,
3176
+ onAfterLeave: Ae
3177
+ }, e.menuProps, {
3178
+ contentClass: ["v-autocomplete__content", e.menuProps?.contentClass]
3179
+ }), {
3180
+ default: () => [y(sl, {
3181
+ onFocusin: P,
3182
+ onKeydown: Te
3183
+ }, {
3184
+ default: () => [t["menu-header"] && b("header", {
3185
+ ref: k
3186
+ }, [t["menu-header"](T)]), S && y(ul, H({
3187
+ key: "autocomplete-list",
3188
+ ref: O,
3189
+ filterable: !0,
3190
+ selected: le.value,
3191
+ selectStrategy: e.multiple ? "independent" : "single-independent",
3192
+ onMousedown: (ne) => ne.preventDefault(),
3193
+ onFocusout: G,
3194
+ tabindex: "-1",
3195
+ selectable: !!V.value.length,
3196
+ "aria-live": "polite",
3197
+ "aria-labelledby": `${Oe.value}-label`,
3198
+ "aria-multiselectable": e.multiple,
3199
+ color: e.itemColor ?? e.color
3200
+ }, _, e.listProps), {
3201
+ default: () => [t["prepend-item"]?.(), !V.value.length && !e.hideNoData && (t["no-data"]?.() ?? y(ft, {
3202
+ key: "no-data",
3203
+ title: n(e.noDataText)
3204
+ }, null)), y(mn, {
3205
+ ref: c,
3206
+ renderless: !0,
3207
+ items: V.value,
3208
+ itemKey: "value"
3209
+ }, {
3210
+ default: (ne) => {
3211
+ let {
3212
+ item: Z,
3213
+ index: fe,
3214
+ itemRef: et
3215
+ } = ne;
3216
+ const We = H(Z.props, {
3217
+ ref: et,
3218
+ key: Z.value,
3219
+ active: J.value && Z === z.value ? !0 : void 0,
3220
+ onClick: () => we(Z, null),
3221
+ "aria-posinset": fe + 1,
3222
+ "aria-setsize": V.value.length
3223
+ });
3224
+ return Z.type === "divider" ? t.divider?.({
3225
+ props: Z.raw,
3226
+ index: fe
3227
+ }) ?? y(Ue, H(Z.props, {
3228
+ key: `divider-${fe}`
3229
+ }), null) : Z.type === "subheader" ? t.subheader?.({
3230
+ props: Z.raw,
3231
+ index: fe
3232
+ }) ?? y(ql, H(Z.props, {
3233
+ key: `subheader-${fe}`
3234
+ }), null) : t.item?.({
3235
+ item: Z,
3236
+ index: fe,
3237
+ props: We
3238
+ }) ?? y(ft, H(We, {
3239
+ role: "option"
3240
+ }), {
3241
+ prepend: (rt) => {
3242
+ let {
3243
+ isSelected: Fe
3244
+ } = rt;
3245
+ return b(ce, null, [e.multiple && !e.hideSelected ? y(sn, {
3246
+ key: Z.value,
3247
+ modelValue: Fe,
3248
+ ripple: !1,
3249
+ tabindex: "-1",
3250
+ "aria-hidden": !0,
3251
+ onClick: (Pn) => Pn.preventDefault()
3252
+ }, null) : void 0, Z.props.prependAvatar && y(at, {
3253
+ image: Z.props.prependAvatar
3254
+ }, null), Z.props.prependIcon && y(Se, {
3255
+ icon: Z.props.prependIcon
3256
+ }, null)]);
3257
+ },
3258
+ title: () => s.value ? Z.title : kn("v-autocomplete", Z.title, A(Z)?.title)
3259
+ });
3260
+ }
3261
+ }), t["append-item"]?.()]
3262
+ }), t["menu-footer"] && b("footer", {
3263
+ ref: m
3264
+ }, [t["menu-footer"](T)])]
3265
+ })]
3266
+ }), C.value.map((ne, Z) => {
3267
+ function fe(Fe) {
3268
+ Fe.stopPropagation(), Fe.preventDefault(), we(ne, !1);
3269
+ }
3270
+ const et = H(gt.filterProps(ne.props), {
3271
+ "onClick:close": fe,
3272
+ onKeydown(Fe) {
3273
+ Fe.key !== "Enter" && Fe.key !== " " || (Fe.preventDefault(), Fe.stopPropagation(), fe(Fe));
3274
+ },
3275
+ onMousedown(Fe) {
3276
+ Fe.preventDefault(), Fe.stopPropagation();
3277
+ },
3278
+ modelValue: !0,
3279
+ "onUpdate:modelValue": void 0
3280
+ }), We = D.value ? !!t.chip : !!t.selection, rt = We ? Jl(D.value ? t.chip({
3281
+ item: ne,
3282
+ index: Z,
3283
+ props: et
3284
+ }) : t.selection({
3285
+ item: ne,
3286
+ index: Z
3287
+ })) : void 0;
3288
+ if (!(We && !rt))
3289
+ return b("div", {
3290
+ key: ne.value,
3291
+ class: re(["v-autocomplete__selection", Z === d.value && ["v-autocomplete__selection--selected", h.value]]),
3292
+ style: xe(Z === d.value ? p.value : {})
3293
+ }, [D.value ? t.chip ? y(De, {
3294
+ key: "chip-defaults",
3295
+ defaults: {
3296
+ VChip: {
3297
+ closable: M.value,
3298
+ size: "small",
3299
+ text: ne.title
3300
+ }
3301
+ }
3302
+ }, {
3303
+ default: () => [rt]
3304
+ }) : y(gt, H({
3305
+ key: "chip",
3306
+ closable: M.value,
3307
+ size: "small",
3308
+ text: ne.title,
3309
+ disabled: ne.props.disabled
3310
+ }, et), null) : rt ?? b("span", {
3311
+ class: "v-autocomplete__selection-text"
3312
+ }, [ne.title, e.multiple && Z < C.value.length - 1 && b("span", {
3313
+ class: "v-autocomplete__selection-comma"
3314
+ }, [Vl(",")])])]);
3315
+ })]);
3316
+ },
3317
+ "append-inner": function() {
3318
+ for (var te = arguments.length, Oe = new Array(te), ne = 0; ne < te; ne++)
3319
+ Oe[ne] = arguments[ne];
3320
+ return b(ce, null, [t["append-inner"]?.(...Oe), e.menuIcon ? y(Se, {
3321
+ class: "v-autocomplete__menu-icon",
3322
+ color: l.value?.fieldIconColor,
3323
+ icon: e.menuIcon,
3324
+ onMousedown: Ie,
3325
+ onClick: Wn,
3326
+ "aria-hidden": !0,
3327
+ tabindex: "-1"
3328
+ }, null) : void 0, e.appendInnerIcon && y(w, {
3329
+ key: "append-icon",
3330
+ name: "appendInner",
3331
+ color: Oe[0].iconColor.value
3332
+ }, null)]);
3333
+ }
3334
+ });
3335
+ }), Ct({
3336
+ isFocused: i,
3337
+ isPristine: s,
3338
+ menu: j,
3339
+ search: I,
3340
+ filteredItems: U,
3341
+ select: we
3342
+ }, l);
3343
+ }
3344
+ }), Qa = X({
3345
+ bordered: Boolean,
3346
+ color: String,
3347
+ content: [Number, String],
3348
+ dot: Boolean,
3349
+ floating: Boolean,
3350
+ icon: he,
3351
+ inline: Boolean,
3352
+ label: {
3353
+ type: String,
3354
+ default: "$vuetify.badge"
3355
+ },
3356
+ max: [Number, String],
3357
+ modelValue: {
3358
+ type: Boolean,
3359
+ default: !0
3360
+ },
3361
+ offsetX: [Number, String],
3362
+ offsetY: [Number, String],
3363
+ textColor: String,
3364
+ ...be(),
3365
+ ...al({
3366
+ location: "top end"
3367
+ }),
3368
+ ...ht(),
3369
+ ...$e(),
3370
+ ...ze(),
3371
+ ...Et({
3372
+ transition: "scale-rotate-transition"
3373
+ }),
3374
+ ...kt()
3375
+ }, "VBadge"), Za = ue()({
3376
+ name: "VBadge",
3377
+ inheritAttrs: !1,
3378
+ props: Qa(),
3379
+ setup(e, a) {
3380
+ const {
3381
+ backgroundColorClasses: t,
3382
+ backgroundColorStyles: n
3383
+ } = Rt(() => e.color), {
3384
+ roundedClasses: l
3385
+ } = yt(e), {
3386
+ t: i
3387
+ } = it(), {
3388
+ textColorClasses: s,
3389
+ textColorStyles: o
3390
+ } = St(() => e.textColor), {
3391
+ themeClasses: u
3392
+ } = qn(), {
3393
+ locationStyles: c
3394
+ } = nl(e, !0, (v) => (e.floating ? e.dot ? 2 : 4 : e.dot ? 8 : 12) + (["top", "bottom"].includes(v) ? Number(e.offsetY ?? 0) : ["left", "right"].includes(v) ? Number(e.offsetX ?? 0) : 0)), {
3395
+ dimensionStyles: d
3396
+ } = pt(e);
3397
+ return de(() => {
3398
+ const v = Number(e.content), r = !e.max || isNaN(v) ? e.content : v <= Number(e.max) ? v : `${e.max}+`, [f, g] = Jn(a.attrs, ["aria-atomic", "aria-label", "aria-live", "role", "title"]);
3399
+ return y(e.tag, H({
3400
+ class: ["v-badge", {
3401
+ "v-badge--bordered": e.bordered,
3402
+ "v-badge--dot": e.dot,
3403
+ "v-badge--floating": e.floating,
3404
+ "v-badge--inline": e.inline
3405
+ }, e.class]
3406
+ }, g, {
3407
+ style: e.style
3408
+ }), {
3409
+ default: () => [b("div", {
3410
+ class: "v-badge__wrapper"
3411
+ }, [a.slots.default?.(), y(ol, {
3412
+ transition: e.transition
3413
+ }, {
3414
+ default: () => [Ke(b("span", H({
3415
+ class: ["v-badge__badge", u.value, t.value, l.value, s.value],
3416
+ style: [n.value, o.value, d.value, e.inline ? {} : c.value],
3417
+ "aria-atomic": "true",
3418
+ "aria-label": i(e.label, v),
3419
+ "aria-live": "polite",
3420
+ role: "status"
3421
+ }, f), [e.dot ? void 0 : a.slots.badge ? a.slots.badge?.() : e.icon ? y(Se, {
3422
+ icon: e.icon
3423
+ }, null) : r]), [[At, e.modelValue]])]
3424
+ })])]
3425
+ });
3426
+ }), {};
3427
+ }
3428
+ }), eo = X({
3429
+ fullscreen: Boolean,
3430
+ scrollable: Boolean,
3431
+ ...Qe(Yn({
3432
+ captureFocus: !0,
3433
+ origin: "center center",
3434
+ scrollStrategy: "block",
3435
+ transition: {
3436
+ component: Xl
3437
+ },
3438
+ zIndex: 2400,
3439
+ retainFocus: !0
3440
+ }), ["disableInitialFocus"])
3441
+ }, "VDialog"), Vn = ue()({
3442
+ name: "VDialog",
3443
+ props: eo(),
3444
+ emits: {
3445
+ "update:modelValue": (e) => !0,
3446
+ afterEnter: () => !0,
3447
+ afterLeave: () => !0
3448
+ },
3449
+ setup(e, a) {
3450
+ let {
3451
+ emit: t,
3452
+ slots: n
3453
+ } = a;
3454
+ const l = Ve(e, "modelValue"), {
3455
+ scopeId: i
3456
+ } = Xn(), s = q();
3457
+ function o() {
3458
+ t("afterEnter"), (e.scrim || e.retainFocus) && s.value?.contentEl && !s.value.contentEl.contains(document.activeElement) && s.value.contentEl.focus({
3459
+ preventScroll: !0
3460
+ });
3461
+ }
3462
+ function u() {
3463
+ t("afterLeave");
3464
+ }
3465
+ return se(l, async (c) => {
3466
+ c || (await ke(), s.value.activatorEl?.focus({
3467
+ preventScroll: !0
3468
+ }));
3469
+ }), de(() => {
3470
+ const c = ml.filterProps(e), d = H({
3471
+ "aria-haspopup": "dialog"
3472
+ }, e.activatorProps), v = H({
3473
+ tabindex: -1
3474
+ }, e.contentProps);
3475
+ return y(ml, H({
3476
+ ref: s,
3477
+ class: ["v-dialog", {
3478
+ "v-dialog--fullscreen": e.fullscreen,
3479
+ "v-dialog--scrollable": e.scrollable
3480
+ }, e.class],
3481
+ style: e.style
3482
+ }, c, {
3483
+ modelValue: l.value,
3484
+ "onUpdate:modelValue": (r) => l.value = r,
3485
+ "aria-modal": "true",
3486
+ activatorProps: d,
3487
+ contentProps: v,
3488
+ height: e.fullscreen ? void 0 : e.height,
3489
+ width: e.fullscreen ? void 0 : e.width,
3490
+ maxHeight: e.fullscreen ? void 0 : e.maxHeight,
3491
+ maxWidth: e.fullscreen ? void 0 : e.maxWidth,
3492
+ role: "dialog",
3493
+ onAfterEnter: o,
3494
+ onAfterLeave: u
3495
+ }, i), {
3496
+ activator: n.activator,
3497
+ default: function() {
3498
+ for (var r = arguments.length, f = new Array(r), g = 0; g < r; g++)
3499
+ f[g] = arguments[g];
3500
+ return y(De, {
3501
+ root: "VDialog"
3502
+ }, {
3503
+ default: () => [n.default?.(...f)]
3504
+ });
3505
+ }
3506
+ });
3507
+ }), Ct({}, s);
3508
+ }
3509
+ }), to = X({
3510
+ ...be(),
3511
+ ...$e()
3512
+ }, "VCardActions"), xn = ue()({
3513
+ name: "VCardActions",
3514
+ props: to(),
3515
+ setup(e, a) {
3516
+ let {
3517
+ slots: t
3518
+ } = a;
3519
+ return Yt({
3520
+ VBtn: {
3521
+ slim: !0,
3522
+ variant: "text"
3523
+ }
3524
+ }), de(() => y(e.tag, {
3525
+ class: re(["v-card-actions", e.class]),
3526
+ style: xe(e.style)
3527
+ }, t)), {};
3528
+ }
3529
+ }), lo = X({
3530
+ opacity: [Number, String],
3531
+ ...be(),
3532
+ ...$e()
3533
+ }, "VCardSubtitle"), no = ue()({
3534
+ name: "VCardSubtitle",
3535
+ props: lo(),
3536
+ setup(e, a) {
3537
+ let {
3538
+ slots: t
3539
+ } = a;
3540
+ return de(() => y(e.tag, {
3541
+ class: re(["v-card-subtitle", e.class]),
3542
+ style: xe([{
3543
+ "--v-card-subtitle-opacity": e.opacity
3544
+ }, e.style])
3545
+ }, t)), {};
3546
+ }
3547
+ }), rl = Qn("v-card-title"), ao = X({
3548
+ appendAvatar: String,
3549
+ appendIcon: he,
3550
+ prependAvatar: String,
3551
+ prependIcon: he,
3552
+ subtitle: {
3553
+ type: [String, Number, Boolean],
3554
+ default: void 0
3555
+ },
3556
+ title: {
3557
+ type: [String, Number, Boolean],
3558
+ default: void 0
3559
+ },
3560
+ ...be(),
3561
+ ...bt(),
3562
+ ...$e()
3563
+ }, "VCardItem"), oo = ue()({
3564
+ name: "VCardItem",
3565
+ props: ao(),
3566
+ setup(e, a) {
3567
+ let {
3568
+ slots: t
3569
+ } = a;
3570
+ return de(() => {
3571
+ const n = !!(e.prependAvatar || e.prependIcon), l = !!(n || t.prepend), i = !!(e.appendAvatar || e.appendIcon), s = !!(i || t.append), o = !!(e.title != null || t.title), u = !!(e.subtitle != null || t.subtitle);
3572
+ return y(e.tag, {
3573
+ class: re(["v-card-item", e.class]),
3574
+ style: xe(e.style)
3575
+ }, {
3576
+ default: () => [l && b("div", {
3577
+ key: "prepend",
3578
+ class: "v-card-item__prepend"
3579
+ }, [t.prepend ? y(De, {
3580
+ key: "prepend-defaults",
3581
+ disabled: !n,
3582
+ defaults: {
3583
+ VAvatar: {
3584
+ density: e.density,
3585
+ image: e.prependAvatar
3586
+ },
3587
+ VIcon: {
3588
+ density: e.density,
3589
+ icon: e.prependIcon
3590
+ }
3591
+ }
3592
+ }, t.prepend) : b(ce, null, [e.prependAvatar && y(at, {
3593
+ key: "prepend-avatar",
3594
+ density: e.density,
3595
+ image: e.prependAvatar
3596
+ }, null), e.prependIcon && y(Se, {
3597
+ key: "prepend-icon",
3598
+ density: e.density,
3599
+ icon: e.prependIcon
3600
+ }, null)])]), b("div", {
3601
+ class: "v-card-item__content"
3602
+ }, [o && y(rl, {
3603
+ key: "title"
3604
+ }, {
3605
+ default: () => [t.title?.() ?? It(e.title)]
3606
+ }), u && y(no, {
3607
+ key: "subtitle"
3608
+ }, {
3609
+ default: () => [t.subtitle?.() ?? It(e.subtitle)]
3610
+ }), t.default?.()]), s && b("div", {
3611
+ key: "append",
3612
+ class: "v-card-item__append"
3613
+ }, [t.append ? y(De, {
3614
+ key: "append-defaults",
3615
+ disabled: !i,
3616
+ defaults: {
3617
+ VAvatar: {
3618
+ density: e.density,
3619
+ image: e.appendAvatar
3620
+ },
3621
+ VIcon: {
3622
+ density: e.density,
3623
+ icon: e.appendIcon
3624
+ }
3625
+ }
3626
+ }, t.append) : b(ce, null, [e.appendIcon && y(Se, {
3627
+ key: "append-icon",
3628
+ density: e.density,
3629
+ icon: e.appendIcon
3630
+ }, null), e.appendAvatar && y(at, {
3631
+ key: "append-avatar",
3632
+ density: e.density,
3633
+ image: e.appendAvatar
3634
+ }, null)])])]
3635
+ });
3636
+ }), {};
3637
+ }
3638
+ }), uo = X({
3639
+ opacity: [Number, String],
3640
+ ...be(),
3641
+ ...$e()
3642
+ }, "VCardText"), cl = ue()({
3643
+ name: "VCardText",
3644
+ props: uo(),
3645
+ setup(e, a) {
3646
+ let {
3647
+ slots: t
3648
+ } = a;
3649
+ return de(() => y(e.tag, {
3650
+ class: re(["v-card-text", e.class]),
3651
+ style: xe([{
3652
+ "--v-card-text-opacity": e.opacity
3653
+ }, e.style])
3654
+ }, t)), {};
3655
+ }
3656
+ }), io = X({
3657
+ appendAvatar: String,
3658
+ appendIcon: he,
3659
+ disabled: Boolean,
3660
+ flat: Boolean,
3661
+ hover: Boolean,
3662
+ image: String,
3663
+ link: {
3664
+ type: Boolean,
3665
+ default: void 0
3666
+ },
3667
+ prependAvatar: String,
3668
+ prependIcon: he,
3669
+ ripple: {
3670
+ type: [Boolean, Object],
3671
+ default: !0
3672
+ },
3673
+ subtitle: {
3674
+ type: [String, Number, Boolean],
3675
+ default: void 0
3676
+ },
3677
+ text: {
3678
+ type: [String, Number, Boolean],
3679
+ default: void 0
3680
+ },
3681
+ title: {
3682
+ type: [String, Number, Boolean],
3683
+ default: void 0
3684
+ },
3685
+ ...ll(),
3686
+ ...be(),
3687
+ ...bt(),
3688
+ ...kt(),
3689
+ ...tl(),
3690
+ ...Kl(),
3691
+ ...al(),
3692
+ ...Ol(),
3693
+ ...ht(),
3694
+ ...Rl(),
3695
+ ...$e(),
3696
+ ...ze(),
3697
+ ...Qt({
3698
+ variant: "elevated"
3699
+ })
3700
+ }, "VCard"), In = ue()({
3701
+ name: "VCard",
3702
+ directives: {
3703
+ vRipple: nt
3704
+ },
3705
+ props: io(),
3706
+ setup(e, a) {
3707
+ let {
3708
+ attrs: t,
3709
+ slots: n
3710
+ } = a;
3711
+ const {
3712
+ themeClasses: l
3713
+ } = ut(e), {
3714
+ borderClasses: i
3715
+ } = Zt(e), {
3716
+ colorClasses: s,
3717
+ colorStyles: o,
3718
+ variantClasses: u
3719
+ } = Dl(e), {
3720
+ densityClasses: c
3721
+ } = Bt(e), {
3722
+ dimensionStyles: d
3723
+ } = pt(e), {
3724
+ elevationClasses: v
3725
+ } = el(e), {
3726
+ loaderClasses: r
3727
+ } = zl(e), {
3728
+ locationStyles: f
3729
+ } = nl(e), {
3730
+ positionClasses: g
3731
+ } = El(e), {
3732
+ roundedClasses: h
3733
+ } = yt(e), p = Fl(e, t), w = ee(void 0);
3734
+ return se(() => e.loading, (I, C) => {
3735
+ w.value = !I && typeof C == "string" ? C : typeof I == "boolean" ? void 0 : I;
3736
+ }, {
3737
+ immediate: !0
3738
+ }), de(() => {
3739
+ const I = e.link !== !1 && p.isLink.value, C = !e.disabled && e.link !== !1 && (e.link || p.isClickable.value), F = I ? "a" : e.tag, E = !!(n.title || e.title != null), U = !!(n.subtitle || e.subtitle != null), A = E || U, V = !!(n.append || e.appendAvatar || e.appendIcon), M = !!(n.prepend || e.prependAvatar || e.prependIcon), D = !!(n.image || e.image), N = A || M || V, le = !!(n.text || e.text != null);
3740
+ return Ke(y(F, H(p.linkProps, {
3741
+ class: ["v-card", {
3742
+ "v-card--disabled": e.disabled,
3743
+ "v-card--flat": e.flat,
3744
+ "v-card--hover": e.hover && !(e.disabled || e.flat),
3745
+ "v-card--link": C
3746
+ }, l.value, i.value, s.value, c.value, v.value, r.value, g.value, h.value, u.value, e.class],
3747
+ style: [o.value, d.value, f.value, {
3748
+ "--v-card-height": tt(e.height)
3749
+ }, e.style],
3750
+ onClick: C && p.navigate.value,
3751
+ tabindex: e.disabled ? -1 : void 0
3752
+ }), {
3753
+ default: () => [D && b("div", {
3754
+ key: "image",
3755
+ class: "v-card__image"
3756
+ }, [n.image ? y(De, {
3757
+ key: "image-defaults",
3758
+ disabled: !e.image,
3759
+ defaults: {
3760
+ VImg: {
3761
+ cover: !0,
3762
+ src: e.image
3763
+ }
3764
+ }
3765
+ }, n.image) : y(Zn, {
3766
+ key: "image-img",
3767
+ cover: !0,
3768
+ src: e.image
3769
+ }, null)]), y(Ul, {
3770
+ name: "v-card",
3771
+ active: !!e.loading,
3772
+ color: w.value
3773
+ }, {
3774
+ default: n.loader
3775
+ }), N && y(oo, {
3776
+ key: "item",
3777
+ prependAvatar: e.prependAvatar,
3778
+ prependIcon: e.prependIcon,
3779
+ title: e.title,
3780
+ subtitle: e.subtitle,
3781
+ appendAvatar: e.appendAvatar,
3782
+ appendIcon: e.appendIcon
3783
+ }, {
3784
+ default: n.item,
3785
+ prepend: n.prepend,
3786
+ title: n.title,
3787
+ subtitle: n.subtitle,
3788
+ append: n.append
3789
+ }), le && y(cl, {
3790
+ key: "text"
3791
+ }, {
3792
+ default: () => [n.text?.() ?? e.text]
3793
+ }), n.default?.(), n.actions && y(xn, null, {
3794
+ default: n.actions
3795
+ }), Tl(C, "v-card")]
3796
+ }), [[nt, C && e.ripple]]);
3797
+ }), {};
3798
+ }
3799
+ }), so = 50, ro = 500;
3800
+ function co(e) {
3801
+ let {
3802
+ toggleUpDown: a
3803
+ } = e, t = -1, n = -1;
3804
+ ct(i);
3805
+ function l(o) {
3806
+ i(), s(o), window.addEventListener("pointerup", i), document.addEventListener("blur", i), t = window.setTimeout(() => {
3807
+ n = window.setInterval(() => s(o), so);
3808
+ }, ro);
3809
+ }
3810
+ function i() {
3811
+ window.clearTimeout(t), window.clearInterval(n), window.removeEventListener("pointerup", i), document.removeEventListener("blur", i);
3812
+ }
3813
+ ct(i);
3814
+ function s(o) {
3815
+ a(o === "up");
3816
+ }
3817
+ return {
3818
+ holdStart: l,
3819
+ holdStop: i
3820
+ };
3821
+ }
3822
+ const vo = X({
3823
+ controlVariant: {
3824
+ type: String,
3825
+ default: "default"
3826
+ },
3827
+ inset: Boolean,
3828
+ hideInput: Boolean,
3829
+ modelValue: {
3830
+ type: Number,
3831
+ default: null
3832
+ },
3833
+ min: {
3834
+ type: Number,
3835
+ default: Number.MIN_SAFE_INTEGER
3836
+ },
3837
+ max: {
3838
+ type: Number,
3839
+ default: Number.MAX_SAFE_INTEGER
3840
+ },
3841
+ step: {
3842
+ type: Number,
3843
+ default: 1
3844
+ },
3845
+ precision: {
3846
+ type: Number,
3847
+ default: 0
3848
+ },
3849
+ minFractionDigits: {
3850
+ type: Number,
3851
+ default: null
3852
+ },
3853
+ decimalSeparator: {
3854
+ type: String,
3855
+ validator: (e) => !e || e.length === 1
3856
+ },
3857
+ ...Qe(Nt(), ["modelValue", "validationValue"])
3858
+ }, "VNumberInput"), fo = ue()({
3859
+ name: "VNumberInput",
3860
+ props: {
3861
+ ...vo()
3862
+ },
3863
+ emits: {
3864
+ "update:focused": (e) => !0,
3865
+ "update:modelValue": (e) => !0
3866
+ },
3867
+ setup(e, a) {
3868
+ let {
3869
+ slots: t
3870
+ } = a;
3871
+ const n = q(), {
3872
+ holdStart: l,
3873
+ holdStop: i
3874
+ } = co({
3875
+ toggleUpDown: N
3876
+ }), s = Mt(e), o = x(() => s.isDisabled.value || s.isReadonly.value), u = ee(e.focused), {
3877
+ decimalSeparator: c
3878
+ } = it(), d = x(() => e.decimalSeparator?.[0] || c.value);
3879
+ function v(m) {
3880
+ let _ = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : e.precision, Q = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0;
3881
+ const oe = _ == null ? String(m) : m.toFixed(_);
3882
+ if (u.value && Q)
3883
+ return Number(oe).toString().replace(".", d.value);
3884
+ if (e.minFractionDigits === null || _ !== null && _ < e.minFractionDigits)
3885
+ return oe.replace(".", d.value);
3886
+ let [ge, pe] = oe.split(".");
3887
+ return pe = (pe ?? "").padEnd(e.minFractionDigits, "0").replace(new RegExp(`(?<=\\d{${e.minFractionDigits}})0+$`, "g"), ""), [ge, pe].filter(Boolean).join(d.value);
3888
+ }
3889
+ const r = Ve(e, "modelValue", null, (m) => m ?? null, (m) => m == null ? m ?? null : Le(Number(m), e.min, e.max)), f = ee(null), g = ee(null);
3890
+ se(r, (m) => {
3891
+ u.value && !o.value && Number(f.value?.replace(d.value, ".")) === m || (m == null ? (f.value = null, g.value = null) : isNaN(m) || (f.value = v(m), g.value = Number(f.value.replace(d.value, "."))));
3892
+ }, {
3893
+ immediate: !0
3894
+ });
3895
+ const h = x({
3896
+ get: () => f.value,
3897
+ set(m) {
3898
+ if (m === null || m === "") {
3899
+ r.value = null, f.value = null, g.value = null;
3900
+ return;
3901
+ }
3902
+ const _ = Number(m.replace(d.value, "."));
3903
+ isNaN(_) || (f.value = m, g.value = _, _ <= e.max && _ >= e.min && (r.value = _));
3904
+ }
3905
+ }), p = x(() => {
3906
+ if (g.value === null) return !1;
3907
+ const m = Number(f.value?.replace(d.value, "."));
3908
+ return m !== Le(m, e.min, e.max);
3909
+ }), w = x(() => o.value ? !1 : r.value == null ? !0 : r.value + e.step <= e.max), I = x(() => o.value ? !1 : r.value == null ? !0 : r.value - e.step >= e.min), C = x(() => e.hideInput ? "stacked" : e.controlVariant), F = R(() => C.value === "split" ? "$plus" : "$collapse"), E = R(() => C.value === "split" ? "$minus" : "$expand"), U = R(() => C.value === "split" ? "default" : "small"), A = R(() => C.value === "stacked" ? "auto" : "100%"), V = {
3910
+ props: {
3911
+ onClick: J,
3912
+ onPointerup: W,
3913
+ onPointerdown: ie,
3914
+ onPointercancel: W
3915
+ }
3916
+ }, M = {
3917
+ props: {
3918
+ onClick: J,
3919
+ onPointerup: W,
3920
+ onPointerdown: j,
3921
+ onPointercancel: W
3922
+ }
3923
+ };
3924
+ se(() => e.precision, () => ve()), se(() => e.minFractionDigits, () => ve()), ot(() => {
3925
+ K();
3926
+ });
3927
+ function D(m) {
3928
+ if (m == null) return 0;
3929
+ const _ = m.toString(), Q = _.indexOf(".");
3930
+ return ~Q ? _.length - Q : 0;
3931
+ }
3932
+ function N() {
3933
+ let m = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0;
3934
+ if (o.value) return;
3935
+ if (r.value == null) {
3936
+ h.value = v(Le(0, e.min, e.max));
3937
+ return;
3938
+ }
3939
+ let _ = Math.max(D(r.value), D(e.step));
3940
+ e.precision != null && (_ = Math.max(_, e.precision)), m ? w.value && (h.value = v(r.value + e.step, _)) : I.value && (h.value = v(r.value - e.step, _));
3941
+ }
3942
+ function le(m) {
3943
+ if (o.value || !m.data) return;
3944
+ const _ = m.target, {
3945
+ value: Q,
3946
+ selectionStart: oe,
3947
+ selectionEnd: ge
3948
+ } = _ ?? {}, pe = Q ? Q.slice(0, oe) + m.data + Q.slice(ge) : m.data, Ie = ea(pe, e.precision, d.value);
3949
+ if (new RegExp(`^-?\\d*${ta(d.value)}?\\d*$`).test(pe) || (m.preventDefault(), _.value = Ie, ke(() => h.value = Ie)), e.precision != null) {
3950
+ if (pe.split(d.value)[1]?.length > e.precision) {
3951
+ m.preventDefault(), _.value = Ie, ke(() => h.value = Ie);
3952
+ const Te = (oe ?? 0) + m.data.length;
3953
+ _.setSelectionRange(Te, Te);
3954
+ }
3955
+ e.precision === 0 && pe.endsWith(d.value) && (m.preventDefault(), _.value = Ie, ke(() => h.value = Ie));
3956
+ }
3957
+ }
3958
+ async function z(m) {
3959
+ ["Enter", "ArrowLeft", "ArrowRight", "Backspace", "Delete", "Tab"].includes(m.key) || m.ctrlKey || ["ArrowDown", "ArrowUp"].includes(m.key) && (m.preventDefault(), m.stopPropagation(), K(), await ke(), m.key === "ArrowDown" ? N(!1) : N());
3960
+ }
3961
+ function J(m) {
3962
+ m.stopPropagation();
3963
+ }
3964
+ function W(m) {
3965
+ m.currentTarget?.releasePointerCapture(m.pointerId), m.preventDefault(), i();
3966
+ }
3967
+ function ie(m) {
3968
+ m.currentTarget?.setPointerCapture(m.pointerId), m.preventDefault(), m.stopPropagation(), l("up");
3969
+ }
3970
+ function j(m) {
3971
+ m.currentTarget?.setPointerCapture(m.pointerId), m.preventDefault(), m.stopPropagation(), l("down");
3972
+ }
3973
+ function K() {
3974
+ if (o.value || !n.value) return;
3975
+ const m = n.value.value, _ = Number(m.replace(d.value, "."));
3976
+ m && !isNaN(_) ? h.value = v(Le(_, e.min, e.max)) : h.value = null;
3977
+ }
3978
+ function ve() {
3979
+ o.value || (h.value = r.value !== null && !isNaN(r.value) ? v(r.value, e.precision, !1) : null);
3980
+ }
3981
+ function B() {
3982
+ if (!o.value) {
3983
+ if (r.value === null || isNaN(r.value)) {
3984
+ h.value = null;
3985
+ return;
3986
+ }
3987
+ h.value = r.value.toString().replace(".", d.value);
3988
+ }
3989
+ }
3990
+ function O() {
3991
+ B();
3992
+ }
3993
+ function k() {
3994
+ K();
3995
+ }
3996
+ return de(() => {
3997
+ const {
3998
+ modelValue: m,
3999
+ type: _,
4000
+ ...Q
4001
+ } = Xe.filterProps(e);
4002
+ function oe() {
4003
+ return t.increment ? y(De, {
4004
+ key: "increment-defaults",
4005
+ defaults: {
4006
+ VBtn: {
4007
+ disabled: !w.value,
4008
+ height: A.value,
4009
+ size: U.value,
4010
+ icon: F.value,
4011
+ variant: "text"
4012
+ }
4013
+ }
4014
+ }, {
4015
+ default: () => [t.increment(V)]
4016
+ }) : y(lt, {
4017
+ "aria-hidden": "true",
4018
+ "data-testid": "increment",
4019
+ disabled: !w.value,
4020
+ height: A.value,
4021
+ icon: F.value,
4022
+ key: "increment-btn",
4023
+ onClick: J,
4024
+ onPointerdown: ie,
4025
+ onPointerup: W,
4026
+ onPointercancel: W,
4027
+ size: U.value,
4028
+ variant: "text",
4029
+ tabindex: "-1"
4030
+ }, null);
4031
+ }
4032
+ function ge() {
4033
+ return t.decrement ? y(De, {
4034
+ key: "decrement-defaults",
4035
+ defaults: {
4036
+ VBtn: {
4037
+ disabled: !I.value,
4038
+ height: A.value,
4039
+ size: U.value,
4040
+ icon: E.value,
4041
+ variant: "text"
4042
+ }
4043
+ }
4044
+ }, {
4045
+ default: () => [t.decrement(M)]
4046
+ }) : y(lt, {
4047
+ "aria-hidden": "true",
4048
+ "data-testid": "decrement",
4049
+ disabled: !I.value,
4050
+ height: A.value,
4051
+ icon: E.value,
4052
+ key: "decrement-btn",
4053
+ onClick: J,
4054
+ onPointerdown: j,
4055
+ onPointerup: W,
4056
+ onPointercancel: W,
4057
+ size: U.value,
4058
+ variant: "text",
4059
+ tabindex: "-1"
4060
+ }, null);
4061
+ }
4062
+ function pe() {
4063
+ return b("div", {
4064
+ class: "v-number-input__control"
4065
+ }, [ge(), y(Ue, {
4066
+ vertical: C.value !== "stacked"
4067
+ }, null), oe()]);
4068
+ }
4069
+ function Ie() {
4070
+ return !e.hideInput && !e.inset ? y(Ue, {
4071
+ vertical: !0
4072
+ }, null) : void 0;
4073
+ }
4074
+ const Te = C.value === "split" ? b("div", {
4075
+ class: "v-number-input__control"
4076
+ }, [y(Ue, {
4077
+ vertical: !0
4078
+ }, null), oe()]) : e.reverse || C.value === "hidden" ? void 0 : b(ce, null, [Ie(), pe()]), Ge = t["append-inner"] || Te, Ze = C.value === "split" ? b("div", {
4079
+ class: "v-number-input__control"
4080
+ }, [ge(), y(Ue, {
4081
+ vertical: !0
4082
+ }, null)]) : e.reverse && C.value !== "hidden" ? b(ce, null, [pe(), Ie()]) : void 0, st = t["prepend-inner"] || Ze;
4083
+ return y(Xe, H({
4084
+ ref: n
4085
+ }, Q, {
4086
+ modelValue: h.value,
4087
+ "onUpdate:modelValue": (Ae) => h.value = Ae,
4088
+ focused: u.value,
4089
+ "onUpdate:focused": (Ae) => u.value = Ae,
4090
+ validationValue: r.value,
4091
+ error: e.error || p.value || void 0,
4092
+ onBeforeinput: le,
4093
+ onFocus: O,
4094
+ onBlur: k,
4095
+ onKeydown: z,
4096
+ class: ["v-number-input", {
4097
+ "v-number-input--default": C.value === "default",
4098
+ "v-number-input--hide-input": e.hideInput,
4099
+ "v-number-input--inset": e.inset,
4100
+ "v-number-input--reverse": e.reverse,
4101
+ "v-number-input--split": C.value === "split",
4102
+ "v-number-input--stacked": C.value === "stacked"
4103
+ }, e.class],
4104
+ style: e.style,
4105
+ inputmode: "decimal"
4106
+ }), {
4107
+ ...t,
4108
+ "append-inner": Ge ? function() {
4109
+ for (var Ae = arguments.length, P = new Array(Ae), G = 0; G < Ae; G++)
4110
+ P[G] = arguments[G];
4111
+ return b(ce, null, [t["append-inner"]?.(...P), Te]);
4112
+ } : void 0,
4113
+ "prepend-inner": st ? function() {
4114
+ for (var Ae = arguments.length, P = new Array(Ae), G = 0; G < Ae; G++)
4115
+ P[G] = arguments[G];
4116
+ return b(ce, null, [Ze, t["prepend-inner"]?.(...P)]);
4117
+ } : void 0
4118
+ });
4119
+ }), Ct({}, n);
4120
+ }
4121
+ }), mo = { class: "text-medium-emphasis ps-2" }, go = ["id"], yo = {
4122
+ __name: "index",
4123
+ props: {
4124
+ modelValue: {},
4125
+ modelModifiers: {}
4126
+ },
4127
+ emits: /* @__PURE__ */ Jt(["closeDialog", "save"], ["update:modelValue"]),
4128
+ setup(e, { emit: a }) {
4129
+ const t = _e("table_props"), n = _e("datatablesPluginOptions"), l = Ft(e, "modelValue"), i = a, { tableState: s } = Vt(), o = {
4130
+ textfield: Xe,
4131
+ select: Ya,
4132
+ number: fo,
4133
+ datepicker: Be(
4134
+ () => import("./Datepicker-C_KKuvSU.js")
4135
+ ),
4136
+ comparison: Be(
4137
+ () => import("./Comparison-DTzJRNSy.js")
4138
+ )
4139
+ }, u = x(() => t.headers.filter((d) => {
4140
+ const v = s.value.options.columns?.selected?.includes(d.key);
4141
+ return d.advancedFilter !== !1 && v;
4142
+ })), c = (d) => d ? typeof d == "string" ? o[d] : d : o.textfield;
4143
+ return se(
4144
+ u,
4145
+ (d) => {
4146
+ d.forEach((v) => {
4147
+ const r = v.advancedFilter?.key ?? v.key;
4148
+ Object.hasOwn(l.value, r) || (l.value[r] = {
4149
+ comparison: "=",
4150
+ value: null
4151
+ });
4152
+ });
4153
+ },
4154
+ { immediate: !0 }
4155
+ ), ot(async () => await t.options.advancedFilters?.onMounted()), (d, v) => (ae(), ye(In, { rounded: "lg" }, {
4156
+ default: Ce(() => [
4157
+ y(rl, { class: "d-flex justify-space-between align-center" }, {
4158
+ default: Ce(() => [
4159
+ b("div", mo, It(d.$t("$datatables.advancedFilters")), 1),
4160
+ y(lt, {
4161
+ icon: $(n).header.icons.close,
4162
+ variant: "text",
4163
+ onClick: v[0] || (v[0] = (r) => i("closeDialog"))
4164
+ }, null, 8, ["icon"])
4165
+ ]),
4166
+ _: 1
4167
+ }),
4168
+ y(Ue),
4169
+ y(cl, { class: "overflow-auto pt-8" }, {
4170
+ default: Ce(() => [
4171
+ (ae(!0), je(ce, null, qt($(u), (r, f) => (ae(), je("div", {
4172
+ id: `advanced-filter-${r.key}`,
4173
+ key: `filter-${f}`,
4174
+ class: re(`advanced-filter advanced-filter--${r.key}`)
4175
+ }, [
4176
+ (ae(), ye(Me(c(r.advancedFilter?.component)), H({
4177
+ modelValue: l.value[r.advancedFilter?.key ?? r.key].value,
4178
+ "onUpdate:modelValue": (g) => l.value[r.advancedFilter?.key ?? r.key].value = g,
4179
+ comparison: l.value[r.advancedFilter?.key ?? r.key].comparison,
4180
+ "onUpdate:comparison": (g) => l.value[r.advancedFilter?.key ?? r.key].comparison = g
4181
+ }, { ref_for: !0 }, r.advancedFilter?.options, {
4182
+ label: r.title,
4183
+ variant: "underlined",
4184
+ clearable: ""
4185
+ }), null, 16, ["modelValue", "onUpdate:modelValue", "comparison", "onUpdate:comparison", "label"]))
4186
+ ], 10, go))), 128))
4187
+ ]),
4188
+ _: 1
4189
+ }),
4190
+ y(Ue, { class: "mt-2" }),
4191
+ y(xn, { class: "my-2 d-flex justify-end" }, {
4192
+ default: Ce(() => [
4193
+ y(lt, {
4194
+ class: "text-none",
4195
+ text: d.$t("$datatables.cancel"),
4196
+ onClick: v[1] || (v[1] = (r) => i("closeDialog"))
4197
+ }, null, 8, ["text"]),
4198
+ y(lt, {
4199
+ class: "text-none",
4200
+ color: "primary",
4201
+ text: d.$t("$datatables.submit"),
4202
+ variant: "flat",
4203
+ onClick: v[2] || (v[2] = (r) => i("save"))
4204
+ }, null, 8, ["text"])
4205
+ ]),
4206
+ _: 1
4207
+ })
4208
+ ]),
4209
+ _: 1
4210
+ }));
4211
+ }
4212
+ };
4213
+ function Sl(e) {
4214
+ return e === null || typeof e != "object" ? e : JSON.parse(JSON.stringify(e));
4215
+ }
4216
+ function Wt(e, a) {
4217
+ if (e === a) return !0;
4218
+ if (e == null || a == null || typeof e != typeof a) return !1;
4219
+ if (e instanceof Date && a instanceof Date)
4220
+ return e.getTime() === a.getTime();
4221
+ if (e instanceof RegExp && a instanceof RegExp)
4222
+ return e.toString() === a.toString();
4223
+ if (Array.isArray(e) && Array.isArray(a)) {
4224
+ if (e.length !== a.length) return !1;
4225
+ for (let t = 0; t < e.length; t++)
4226
+ if (!Wt(e[t], a[t])) return !1;
4227
+ return !0;
4228
+ }
4229
+ if (typeof e == "object" && typeof a == "object") {
4230
+ const t = Object.keys(e), n = Object.keys(a);
4231
+ if (t.length !== n.length) return !1;
4232
+ for (const l of t) {
4233
+ if (!n.includes(l)) return !1;
4234
+ const i = e[l], s = a[l];
4235
+ if (!Wt(i, s)) return !1;
4236
+ }
4237
+ return !0;
4238
+ }
4239
+ return !1;
4240
+ }
4241
+ const ho = {
4242
+ __name: "Dialog",
4243
+ props: {
4244
+ modelValue: { required: !0 },
4245
+ modelModifiers: {}
4246
+ },
4247
+ emits: ["update:modelValue"],
4248
+ setup(e) {
4249
+ const a = _e("table_props"), t = _e("busEmits"), n = Ot(), { advancedFiltersState: l } = Vt(), i = Yl("advancedFilters"), { setData: s } = n, o = Ft(e, "modelValue"), u = q({}), c = () => {
4250
+ const r = Object.entries(u.value).filter(([, f]) => {
4251
+ const g = f.value;
4252
+ return Array.isArray(g) || typeof g == "string" ? g.length > 0 : g != null && g !== "";
4253
+ }).reduce((f, [g, h]) => (f[g] = h, f), {});
4254
+ Wt(r, l.value) || (s({
4255
+ table_id: a.id,
4256
+ name: "advancedFilters",
4257
+ value: { query: Sl(r) }
4258
+ }), t("advancedFilters:update", r)), o.value = !1;
4259
+ }, d = (r, f) => {
4260
+ r === "save" && (u.value[f.key] = { comparison: f.comparison, value: f.value }, c());
4261
+ }, v = i.on(d);
4262
+ return ot(() => {
4263
+ u.value = Sl(l.value);
4264
+ }), Fn(v), (r, f) => {
4265
+ const g = yo, h = pa;
4266
+ return ae(), je("div", null, [
4267
+ y(Vn, {
4268
+ modelValue: o.value,
4269
+ "onUpdate:modelValue": f[1] || (f[1] = (p) => o.value = p),
4270
+ "max-width": "550",
4271
+ "retain-focus": !1
4272
+ }, {
4273
+ default: Ce(({ isActive: p }) => [
4274
+ y(g, {
4275
+ modelValue: $(u),
4276
+ "onUpdate:modelValue": f[0] || (f[0] = (w) => wt(u) ? u.value = w : null),
4277
+ onSave: c,
4278
+ onCloseDialog: (w) => p.value = !1
4279
+ }, null, 8, ["modelValue", "onCloseDialog"])
4280
+ ]),
4281
+ _: 1
4282
+ }, 8, ["modelValue"]),
4283
+ Object.keys($(l)).length ? (ae(), ye(h, {
4284
+ key: 0,
4285
+ modelValue: $(u),
4286
+ "onUpdate:modelValue": f[2] || (f[2] = (p) => wt(u) ? u.value = p : null),
4287
+ onSave: c
4288
+ }, null, 8, ["modelValue"])) : Ne("", !0)
4289
+ ]);
4290
+ };
4291
+ }
4292
+ };
4293
+ function bo() {
4294
+ const e = _e("datatablesPluginOptions"), { t: a } = ua(), { advancedFiltersState: t } = Vt(), n = q(!1), l = x(() => Object.keys(t.value).length);
4295
+ return { advancedFiltersItems: x(() => [
4296
+ {
4297
+ title: `${a("$datatables.advancedFilters")}`,
4298
+ onClick: () => n.value = !0,
4299
+ prependIcon: e.header.icons.advancedFilters
4300
+ }
4301
+ ]), advancedFiltersDialog: n, activeAdvancedFilters: l };
4302
+ }
4303
+ const po = {
4304
+ class: "d-flex align-center",
4305
+ style: { gap: "0.5rem" }
4306
+ }, ko = /* @__PURE__ */ Dt({
4307
+ __name: "index",
4308
+ setup(e) {
4309
+ const { advancedFiltersItems: a, advancedFiltersDialog: t, activeAdvancedFilters: n } = bo();
4310
+ return (l, i) => {
4311
+ const s = ho;
4312
+ return ae(), je("div", po, [
4313
+ (ae(!0), je(ce, null, qt($(a), (o, u) => (ae(), ye(lt, H({
4314
+ key: u,
4315
+ icon: "",
4316
+ variant: "text",
4317
+ color: $(n) ? "primary" : "dark",
4318
+ density: "comfortable"
4319
+ }, { ref_for: !0 }, o), {
4320
+ default: Ce(() => [
4321
+ $(n) ? (ae(), ye(Za, {
4322
+ key: 0,
4323
+ color: "primary",
4324
+ content: $(n)
4325
+ }, {
4326
+ default: Ce(() => [
4327
+ y(Se, {
4328
+ icon: o.prependIcon
4329
+ }, null, 8, ["icon"])
4330
+ ]),
4331
+ _: 2
4332
+ }, 1032, ["content"])) : (ae(), ye(Se, {
4333
+ key: 1,
4334
+ icon: o.prependIcon
4335
+ }, null, 8, ["icon"]))
4336
+ ]),
4337
+ _: 2
4338
+ }, 1040, ["color"]))), 128)),
4339
+ y(s, {
4340
+ modelValue: $(t),
4341
+ "onUpdate:modelValue": i[0] || (i[0] = (o) => wt(t) ? t.value = o : null)
4342
+ }, null, 8, ["modelValue"])
4343
+ ]);
4344
+ };
4345
+ }
4346
+ }), So = {
4347
+ class: "d-flex align-center",
4348
+ style: { gap: "0.75rem" }
4349
+ }, Co = { class: "ms-auto" }, Vo = /* @__PURE__ */ Dt({
4350
+ __name: "index",
4351
+ props: {
4352
+ responsiveHeader: { type: Boolean }
4353
+ },
4354
+ setup(e) {
4355
+ const a = Be(() => import("./Search-CRW-DZiL.js")), t = Be(() => import("./RefreshTable-Dq7B7xo2.js")), n = Be(() => import("./Options-Bj3Jo-IP.js")), l = Be(() => import("./index-tBoBj0Rj.js")), i = Be(() => import("./index-Bkdn_tzR.js")), s = Be(() => import("./index-ka-ZCwwl.js")), o = _e("table_props"), u = q(null), c = o.options?.header?.components ?? {};
4356
+ return (d, v) => {
4357
+ const r = ko;
4358
+ return ae(), je("div", So, [
4359
+ e.responsiveHeader ? Ne("", !0) : (ae(), ye(r, { key: 0 })),
4360
+ $(o).hardFilters.length ? (ae(), ye(Me($(c).hardFilters ?? $(l)), {
4361
+ key: 1,
4362
+ id: "header-hardFilters"
4363
+ })) : Ne("", !0),
4364
+ (ae(), ye(Me($(c).toolbar), { id: "header-toolbar" })),
4365
+ b("div", Co, [
4366
+ (ae(), ye(Me($(c).search ?? $(a)), { id: "header-search" })),
4367
+ e.responsiveHeader ? Ne("", !0) : (ae(), ye(Me($(c).columns ?? $(i)), {
4368
+ key: 0,
4369
+ "component-refs": { columns: $(u) }
4370
+ }, null, 8, ["component-refs"])),
4371
+ e.responsiveHeader ? Ne("", !0) : (ae(), ye(Me($(c).download ?? $(s)), { key: 1 })),
4372
+ e.responsiveHeader ? Ne("", !0) : (ae(), ye(Me($(c).refreshTable ?? $(t)), { key: 2 })),
4373
+ (ae(), ye(Me($(c).options ?? $(n)), { "responsive-header": e.responsiveHeader }, null, 8, ["responsive-header"]))
4374
+ ])
4375
+ ]);
4376
+ };
4377
+ }
4378
+ });
4379
+ function xo(e) {
4380
+ const a = Ot(), { getCurrentTable: t, setTableHash: n, hashString: l } = a, i = q(!1), s = 5, o = x(() => t(e.id));
4381
+ se(
4382
+ o,
4383
+ async (f) => {
4384
+ f.options.hash && await u(f);
4385
+ },
4386
+ {
4387
+ deep: !0
4388
+ }
4389
+ );
4390
+ const u = async (f) => {
4391
+ if (i.value) return;
4392
+ i.value = !0, await ke();
4393
+ const g = c(), h = g.findIndex((p) => p.id === e.id);
4394
+ h > -1 ? g[h] = f : g.push(f), localStorage.setItem("datatables-state", JSON.stringify(g)), i.value = !1;
4395
+ }, c = () => {
4396
+ const f = localStorage.getItem("datatables-state");
4397
+ return JSON.parse(f ?? "[]");
4398
+ }, d = () => c().find((h) => h.id === e.id);
4399
+ return {
4400
+ saving: i,
4401
+ dataStateGet: d,
4402
+ tableDataState: o,
4403
+ checkTableState: async () => {
4404
+ const f = localStorage.getItem("datatables-state-v");
4405
+ parseInt(f) !== parseInt(s) && (localStorage.removeItem("datatables-state"), localStorage.setItem("datatables-state-v", s));
4406
+ const h = d()?.options.hash;
4407
+ if (h) {
4408
+ const p = await l(JSON.stringify(e.headers ?? []));
4409
+ h !== p && localStorage.removeItem("datatables-state");
4410
+ }
4411
+ n({ table_id: e.id, headers: e.headers });
4412
+ },
4413
+ deleteDataStorage: () => {
4414
+ localStorage.removeItem("datatables-state"), localStorage.removeItem("datatables-state-v");
4415
+ }
4416
+ };
4417
+ }
4418
+ const wn = aa(() => {
4419
+ const e = ee({}), a = ee({});
4420
+ return {
4421
+ storeOptions: {
4422
+ state: e,
4423
+ columns: a
4424
+ },
4425
+ setUserOptions: ({
4426
+ state: l = null,
4427
+ columns: i = null
4428
+ }) => {
4429
+ l && (e.value = l), i && (a.value = i);
4430
+ }
4431
+ };
4432
+ }), Io = {
4433
+ key: 0,
4434
+ class: "datatables-v2"
4435
+ }, wo = { class: "pe-4" }, Po = /* @__PURE__ */ Dt({
4436
+ __name: "Blueprint",
4437
+ props: {
4438
+ modelValue: {},
4439
+ modelModifiers: {}
4440
+ },
4441
+ emits: /* @__PURE__ */ Jt(["refreshTable", "refetchData", "advancedFilters:update", "hardFilters:update"], ["update:modelValue"]),
4442
+ setup(e, { expose: a, emit: t }) {
4443
+ const n = Be(() => import("./Table-spuLCMf3.js")), l = Be(() => import("./TableVirtual-CNTcgkyE.js")), i = Be(() => import("./TableServer-lxgN28QV.js")), { storeOptions: s } = wn(), { saveTableOptions: o } = Vt(), u = Ft(e, "modelValue"), c = _e("table_props"), d = _e("datatablesPluginOptions"), v = xl("tableRef"), r = q(!1), f = q(!1), g = q(!1), h = t, p = Ot(), { dataStateGet: w, tableDataState: I, checkTableState: C } = xo(c), { addTable: F, restoreData: E } = p, U = q(!1);
4444
+ oa(v, (V) => {
4445
+ if (!g.value) return;
4446
+ const M = V[0], { width: D } = M.contentRect;
4447
+ U.value = D < 950;
4448
+ });
4449
+ const A = x(() => {
4450
+ const V = c.options?.header;
4451
+ return V === void 0 || typeof V == "object" && V !== null;
4452
+ });
4453
+ return ot(async () => {
4454
+ F({ table_id: c.id }), await C();
4455
+ const V = w();
4456
+ V && E({ table_id: c.id, data: V });
4457
+ const D = I.value.options.columns;
4458
+ D.sorted?.length || (D.selected?.length || (D.selected = c.headers.filter((N) => !N.hidden).map((N) => N.key)), D.sorted = c.headers.map((N) => N.key)), o(la(s.state.value, I.value.options.state)), f.value = !0, await ke(), g.value = !0;
4459
+ }), Cl(() => {
4460
+ g.value = !1;
4461
+ }), qe("busEmits", h), qe("tableRef", v), qe("tableState", I), qe("downloadModal", r), a({ tableRef: v }), (V, M) => {
4462
+ const D = Vo;
4463
+ return $(f) ? (ae(), je("div", Io, [
4464
+ y(In, null, {
4465
+ default: Ce(() => [
4466
+ $(A) ? (ae(), ye(rl, { key: 0 }, {
4467
+ default: Ce(() => [
4468
+ (ae(), ye(D, {
4469
+ key: $(U) ? "responsive" : "full",
4470
+ "responsive-header": $(U)
4471
+ }, null, 8, ["responsive-header"]))
4472
+ ]),
4473
+ _: 1
4474
+ })) : Ne("", !0),
4475
+ y(cl, { class: "pa-0" }, {
4476
+ default: Ce(() => [
4477
+ $(g) ? (ae(), ye(Me($(c).api ? $(i) : $(c).virtual ? $(l) : $(n)), {
4478
+ ref_key: "tableRef",
4479
+ ref: v,
4480
+ key: $(c).api ? "server" : "client",
4481
+ modelValue: u.value,
4482
+ "onUpdate:modelValue": M[0] || (M[0] = (N) => u.value = N)
4483
+ }, null, 8, ["modelValue"])) : Ne("", !0)
4484
+ ]),
4485
+ _: 1
4486
+ })
4487
+ ]),
4488
+ _: 1
4489
+ }),
4490
+ y(Vn, {
4491
+ modelValue: $(r),
4492
+ "onUpdate:modelValue": M[1] || (M[1] = (N) => wt(r) ? r.value = N : null),
4493
+ "max-width": "350",
4494
+ persistent: ""
4495
+ }, {
4496
+ default: Ce(() => [
4497
+ y(ul, {
4498
+ class: "py-2",
4499
+ color: "primary",
4500
+ elevation: "12",
4501
+ rounded: "lg"
4502
+ }, {
4503
+ default: Ce(() => [
4504
+ y(ft, {
4505
+ "prepend-icon": $(d).header.icons.download,
4506
+ title: V.$t("$datatables.preparing_download_file")
4507
+ }, {
4508
+ prepend: Ce(() => [
4509
+ b("div", wo, [
4510
+ y(Se, {
4511
+ color: "primary",
4512
+ size: "x-large"
4513
+ })
4514
+ ])
4515
+ ]),
4516
+ append: Ce(() => [
4517
+ y(na, {
4518
+ color: "primary",
4519
+ indeterminate: "disable-shrink",
4520
+ size: "16",
4521
+ width: "2"
4522
+ })
4523
+ ]),
4524
+ _: 1
4525
+ }, 8, ["prepend-icon", "title"])
4526
+ ]),
4527
+ _: 1
4528
+ })
4529
+ ]),
4530
+ _: 1
4531
+ }, 8, ["modelValue"])
4532
+ ])) : Ne("", !0);
4533
+ };
4534
+ }
4535
+ }), _o = Il("datatablesHooks", () => {
4536
+ const e = q({});
4537
+ return {
4538
+ hooks: e,
4539
+ registerHook: (n, l) => {
4540
+ Object.assign(e.value, { [n]: l });
4541
+ },
4542
+ triggerHook: (n, l) => {
4543
+ e.value.hasOwnProperty(n) && e.value[n](l);
4544
+ }
4545
+ };
4546
+ }), Ao = /* @__PURE__ */ Dt({
4547
+ __name: "index",
4548
+ props: {
4549
+ id: {
4550
+ type: String,
4551
+ required: !0
4552
+ },
4553
+ api: {
4554
+ type: Object,
4555
+ default: () => {
4556
+ }
4557
+ },
4558
+ data: {
4559
+ type: Array,
4560
+ default: () => []
4561
+ },
4562
+ options: {
4563
+ type: Object,
4564
+ default: () => ({})
4565
+ },
4566
+ params: {
4567
+ type: Object,
4568
+ default: () => ({})
4569
+ },
4570
+ hardFilters: {
4571
+ type: Array,
4572
+ default: () => []
4573
+ },
4574
+ headers: {
4575
+ type: Array,
4576
+ default: () => []
4577
+ },
4578
+ loading: {
4579
+ type: Boolean,
4580
+ default: !1
4581
+ },
4582
+ locale: {
4583
+ type: String,
4584
+ default: "en"
4585
+ },
4586
+ title: {
4587
+ type: String,
4588
+ default: ""
4589
+ },
4590
+ virtual: {
4591
+ type: Boolean,
4592
+ default: !1
4593
+ }
4594
+ },
4595
+ emits: ["refreshTable", "refetchData"],
4596
+ setup(e, { expose: a, emit: t }) {
4597
+ const n = e, { triggerHook: l } = _o(), { storeOptions: i, setUserOptions: s } = wn(), o = Yl("advancedFilters"), u = xl("table"), c = q(0), d = async (g = {}) => {
4598
+ s(g), c.value < 99 && (f("refreshTable"), await ke(), c.value++);
4599
+ }, v = async (g = {}) => {
4600
+ await ke(), !(!u.value || !u.value?.tableRef) && (s(g), "reloadItems" in u.value.tableRef && (u.value.tableRef.reloadItems(i.state.value), f("refetchData")));
4601
+ }, r = (g, h, p = "=") => {
4602
+ o.emit("save", { key: g, value: h, comparison: p });
4603
+ }, f = t;
4604
+ return qe("table_props", n), qe("triggerHook", l), a({ refreshTable: d, refetchData: v, triggerHook: l, updateAdvancedFilter: r }), (g, h) => {
4605
+ const p = Po;
4606
+ return ae(), ye(p, {
4607
+ id: e.id,
4608
+ ref_key: "table",
4609
+ ref: u,
4610
+ key: `${e.id}-${$(c)}`,
4611
+ onRefreshTable: d,
4612
+ onRefetchData: v
4613
+ }, null, 8, ["id"]);
4614
+ };
4615
+ }
4616
+ }), Oo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4617
+ __proto__: null,
4618
+ default: Ao
4619
+ }, Symbol.toStringTag, { value: "Module" }));
4620
+ export {
4621
+ ba as A,
4622
+ Za as B,
4623
+ $t as C,
4624
+ Nt as D,
4625
+ rn as E,
4626
+ fo as F,
4627
+ Oo as G,
4628
+ Na as V,
4629
+ ho as _,
4630
+ pn as a,
4631
+ Ua as b,
4632
+ za as c,
4633
+ Sl as d,
4634
+ Wt as e,
4635
+ Eo as f,
4636
+ gt as g,
4637
+ sn as h,
4638
+ Ot as i,
4639
+ In as j,
4640
+ cl as k,
4641
+ Xe as l,
4642
+ bn as m,
4643
+ Vn as n,
4644
+ rl as o,
4645
+ xn as p,
4646
+ bo as q,
4647
+ _o as r,
4648
+ sl as s,
4649
+ ya as t,
4650
+ Vt as u,
4651
+ cn as v,
4652
+ Va as w,
4653
+ dn as x,
4654
+ pl as y,
4655
+ xo as z
4656
+ };