@ianicdev/datatables2 0.11.6 → 0.12.0

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