@ianicdev/datatables2 0.11.5 → 0.11.7

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