@eodash/eodash 5.0.0-alpha.2 → 5.0.0-alpha.2.3

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 (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -1
  3. package/bin/serverConfig.js +1 -1
  4. package/bin/types.d.ts +1 -0
  5. package/bin/utils.js +1 -1
  6. package/core/App.vue +12 -4
  7. package/core/SuspensedDashboard.ce.vue +21 -7
  8. package/core/components/DashboardLayout.vue +12 -30
  9. package/core/components/ErrorAlert.vue +19 -0
  10. package/core/components/Loading.vue +12 -1
  11. package/core/components/MobileLayout.vue +19 -11
  12. package/core/composables/DefineWidgets.js +11 -5
  13. package/core/composables/index.js +16 -13
  14. package/core/eodash.js +0 -2
  15. package/core/plugins/vuetify.js +9 -3
  16. package/core/store/stac.js +6 -2
  17. package/core/types.d.ts +11 -24
  18. package/core/views/Dashboard.vue +14 -3
  19. package/dist/DashboardLayout-lzEvtalW.js +148 -0
  20. package/dist/{DynamicWebComponent-BDOQsEcj.js → DynamicWebComponent-CgDh2csQ.js} +12 -12
  21. package/dist/EodashDatePicker-bIyNUYaG.js +1653 -0
  22. package/dist/{EodashItemFilter-TSp7XRGy.js → EodashItemFilter-CpgyrJRX.js} +2 -2
  23. package/dist/{EodashMap-DInb9cfS.js → EodashMap-CyR-Ldpk.js} +4 -4
  24. package/dist/Footer-C2sIHSym.js +118 -0
  25. package/dist/{Header-C5PSB8Uc.js → Header-DFz2BUnp.js} +224 -228
  26. package/dist/{IframeWrapper-DYHQQRUh.js → IframeWrapper-Csep3rMg.js} +1 -1
  27. package/dist/MobileLayout-CXNJL_q6.js +984 -0
  28. package/dist/VMain-COrg6UtF.js +39 -0
  29. package/dist/{WidgetsContainer-D_PLP1qf.js → WidgetsContainer-XA6_dKOm.js} +18 -18
  30. package/dist/asWebComponent-fqvymeM-.js +13092 -0
  31. package/dist/{decoder-kAoyGIq9-HAkjSTCt.js → decoder-kAoyGIq9-DjQanfeo.js} +1 -1
  32. package/dist/eo-dash.js +2 -2
  33. package/dist/{index-8ch8xKfa.js → index-Cskxla5D.js} +76 -44
  34. package/dist/index-Zv5eTiB6.js +34 -0
  35. package/dist/{lerc-C9VL9kri-DyVxBvsf.js → lerc-C9VL9kri-O4muG-MO.js} +1 -1
  36. package/dist/{ssrBoot-Cm5pWM14.js → ssrBoot-DCCAW5xY.js} +3 -3
  37. package/dist/style.css +2 -2
  38. package/package.json +3 -3
  39. package/widgets/EodashDatePicker.vue +1 -0
  40. package/widgets/WidgetsContainer.vue +7 -5
  41. package/dist/DashboardLayout-YLfAa8wH.js +0 -168
  42. package/dist/EodashDatePicker-DlehqSgz.js +0 -1645
  43. package/dist/Footer-CIzHgJbK.js +0 -118
  44. package/dist/MobileLayout-DZmqrpub.js +0 -523
  45. package/dist/VBtn-CFPhsIX8.js +0 -1106
  46. package/dist/VMain-deI9jyIf.js +0 -35
  47. package/dist/asWebComponent-BKe6Spni.js +0 -11323
  48. package/dist/color-D72nEBIR.js +0 -115
  49. package/dist/dimensions-BZkmIizV.js +0 -53
  50. package/dist/index-DIt8GjSR.js +0 -65
@@ -1,1645 +0,0 @@
1
- import { g as B, a8 as at, a9 as nt, b as z, aa as lt, p as I, c as v, u as Y, a, ab as j, ac as G, n as R, ad as U, ae as it, r as O, s as Z, O as st, af as pe, a5 as we, m as N, v as ue, C as de, Z as ie, e as ot, a0 as ce, a1 as Ie, t as ve, o as se, ag as Me, w as J, F as X, M as fe, P as Ae, ah as Be, I as q, f as $e, ai as me, aj as rt, ak as ut, y as dt, J as ct, X as vt, _ as ft, a4 as ke, al as mt, $ as yt, am as ht, an as kt, D as re, K as ge, E as gt, ao as ne } from "./asWebComponent-BKe6Spni.js";
2
- import { V as bt, b as Fe, c as Vt } from "./index-8ch8xKfa.js";
3
- import { M as ye, m as Oe, i as Ct } from "./index-DIt8GjSR.js";
4
- import { V as W, e as xt, f as Pt, g as _t, h as St, b as Dt, i as pt, j as wt, L as It, c as Mt, d as At } from "./VBtn-CFPhsIX8.js";
5
- import { a as oe, c as Bt, d as $t, m as Ye, e as Ft, f as Ot, b as Ne, u as Te } from "./color-D72nEBIR.js";
6
- import { V as Q, m as Yt, u as Nt } from "./dimensions-BZkmIizV.js";
7
- import { n as Tt, a as Et, s as Rt, f as Lt } from "./forwardRefs-Bxeu9Obx.js";
8
- function Ee(e) {
9
- let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "div", s = arguments.length > 2 ? arguments[2] : void 0;
10
- return B()({
11
- name: s ?? at(nt(e.replace(/__/g, "-"))),
12
- props: {
13
- tag: {
14
- type: String,
15
- default: n
16
- },
17
- ...z()
18
- },
19
- setup(r, t) {
20
- let {
21
- slots: i
22
- } = t;
23
- return () => lt(r.tag, {
24
- class: [e, r.class],
25
- style: r.style
26
- }, i.default?.());
27
- }
28
- });
29
- }
30
- const Wt = Ee("v-spacer", "div", "VSpacer"), Re = I({
31
- active: {
32
- type: [String, Array],
33
- default: void 0
34
- },
35
- disabled: {
36
- type: [Boolean, String, Array],
37
- default: !1
38
- },
39
- nextIcon: {
40
- type: [String],
41
- default: "$next"
42
- },
43
- prevIcon: {
44
- type: [String],
45
- default: "$prev"
46
- },
47
- modeIcon: {
48
- type: [String],
49
- default: "$subgroup"
50
- },
51
- text: String,
52
- viewMode: {
53
- type: String,
54
- default: "month"
55
- }
56
- }, "VDatePickerControls"), be = B()({
57
- name: "VDatePickerControls",
58
- props: Re(),
59
- emits: {
60
- "click:year": () => !0,
61
- "click:month": () => !0,
62
- "click:prev": () => !0,
63
- "click:next": () => !0,
64
- "click:text": () => !0
65
- },
66
- setup(e, n) {
67
- let {
68
- emit: s
69
- } = n;
70
- const r = v(() => Array.isArray(e.disabled) ? e.disabled.includes("text") : !!e.disabled), t = v(() => Array.isArray(e.disabled) ? e.disabled.includes("mode") : !!e.disabled), i = v(() => Array.isArray(e.disabled) ? e.disabled.includes("prev") : !!e.disabled), l = v(() => Array.isArray(e.disabled) ? e.disabled.includes("next") : !!e.disabled);
71
- function d() {
72
- s("click:prev");
73
- }
74
- function c() {
75
- s("click:next");
76
- }
77
- function u() {
78
- s("click:year");
79
- }
80
- function f() {
81
- s("click:month");
82
- }
83
- return Y(() => a("div", {
84
- class: ["v-date-picker-controls"]
85
- }, [a(W, {
86
- class: "v-date-picker-controls__month-btn",
87
- disabled: r.value,
88
- text: e.text,
89
- variant: "text",
90
- rounded: !0,
91
- onClick: f
92
- }, null), a(W, {
93
- key: "mode-btn",
94
- class: "v-date-picker-controls__mode-btn",
95
- disabled: t.value,
96
- density: "comfortable",
97
- icon: e.modeIcon,
98
- variant: "text",
99
- onClick: u
100
- }, null), a(Wt, {
101
- key: "mode-spacer"
102
- }, null), a("div", {
103
- key: "month-buttons",
104
- class: "v-date-picker-controls__month"
105
- }, [a(W, {
106
- disabled: i.value,
107
- icon: e.prevIcon,
108
- variant: "text",
109
- onClick: d
110
- }, null), a(W, {
111
- disabled: l.value,
112
- icon: e.nextIcon,
113
- variant: "text",
114
- onClick: c
115
- }, null)])])), {};
116
- }
117
- }), jt = I({
118
- appendIcon: String,
119
- color: String,
120
- header: String,
121
- transition: String,
122
- onClick: j()
123
- }, "VDatePickerHeader"), Ve = B()({
124
- name: "VDatePickerHeader",
125
- props: jt(),
126
- emits: {
127
- click: () => !0,
128
- "click:append": () => !0
129
- },
130
- setup(e, n) {
131
- let {
132
- emit: s,
133
- slots: r
134
- } = n;
135
- const {
136
- backgroundColorClasses: t,
137
- backgroundColorStyles: i
138
- } = oe(e, "color");
139
- function l() {
140
- s("click");
141
- }
142
- function d() {
143
- s("click:append");
144
- }
145
- return Y(() => {
146
- const c = !!(r.default || e.header), u = !!(r.append || e.appendIcon);
147
- return a("div", {
148
- class: ["v-date-picker-header", {
149
- "v-date-picker-header--clickable": !!e.onClick
150
- }, t.value],
151
- style: i.value,
152
- onClick: l
153
- }, [r.prepend && a("div", {
154
- key: "prepend",
155
- class: "v-date-picker-header__prepend"
156
- }, [r.prepend()]), c && a(ye, {
157
- key: "content",
158
- name: e.transition
159
- }, {
160
- default: () => [a("div", {
161
- key: e.header,
162
- class: "v-date-picker-header__content"
163
- }, [r.default?.() ?? e.header])]
164
- }), u && a("div", {
165
- class: "v-date-picker-header__append"
166
- }, [r.append ? a(Q, {
167
- key: "append-defaults",
168
- disabled: !e.appendIcon,
169
- defaults: {
170
- VBtn: {
171
- icon: e.appendIcon,
172
- variant: "text"
173
- }
174
- }
175
- }, {
176
- default: () => [r.append?.()]
177
- }) : a(W, {
178
- key: "append-btn",
179
- icon: e.appendIcon,
180
- variant: "text",
181
- onClick: d
182
- }, null)])]);
183
- }), {};
184
- }
185
- }), Ut = I({
186
- allowedDates: [Array, Function],
187
- disabled: Boolean,
188
- displayValue: null,
189
- modelValue: Array,
190
- month: [Number, String],
191
- max: null,
192
- min: null,
193
- showAdjacentMonths: Boolean,
194
- year: [Number, String],
195
- weekdays: {
196
- type: Array,
197
- default: () => [0, 1, 2, 3, 4, 5, 6]
198
- }
199
- }, "calendar");
200
- function zt(e) {
201
- const n = G(), s = R(e, "modelValue", [], (m) => U(m)), r = v(() => e.displayValue ? n.date(e.displayValue) : s.value.length > 0 ? n.date(s.value[0]) : e.min ? n.date(e.min) : Array.isArray(e.allowedDates) ? n.date(e.allowedDates[0]) : n.date()), t = R(e, "year", void 0, (m) => {
202
- const k = m != null ? Number(m) : n.getYear(r.value);
203
- return n.startOfYear(n.setYear(n.date(), k));
204
- }, (m) => n.getYear(m)), i = R(e, "month", void 0, (m) => {
205
- const k = m != null ? Number(m) : n.getMonth(r.value), y = n.setYear(n.startOfMonth(n.date()), n.getYear(t.value));
206
- return n.setMonth(y, k);
207
- }, (m) => n.getMonth(m)), l = v(() => {
208
- const m = n.getWeekArray(i.value), k = m.flat(), y = 6 * 7;
209
- if (k.length < y) {
210
- const o = k[k.length - 1];
211
- let g = [];
212
- for (let b = 1; b <= y - k.length; b++)
213
- g.push(n.addDays(o, b)), b % 7 === 0 && (m.push(g), g = []);
214
- }
215
- return m;
216
- });
217
- function d(m, k) {
218
- return m.filter((y) => e.weekdays.includes(n.toJsDate(y).getDay())).map((y, o) => {
219
- const g = n.toISO(y), b = !n.isSameMonth(y, i.value), w = n.isSameDay(y, n.startOfMonth(i.value)), P = n.isSameDay(y, n.endOfMonth(i.value)), x = n.isSameDay(y, i.value);
220
- return {
221
- date: y,
222
- isoDate: g,
223
- formatted: n.format(y, "keyboardDate"),
224
- year: n.getYear(y),
225
- month: n.getMonth(y),
226
- isDisabled: V(y),
227
- isWeekStart: o % 7 === 0,
228
- isWeekEnd: o % 7 === 6,
229
- isToday: n.isSameDay(y, k),
230
- isAdjacent: b,
231
- isHidden: b && !e.showAdjacentMonths,
232
- isStart: w,
233
- isSelected: s.value.some((_) => n.isSameDay(y, _)),
234
- isEnd: P,
235
- isSame: x,
236
- localized: n.format(y, "dayOfMonth")
237
- };
238
- });
239
- }
240
- const c = v(() => {
241
- const m = n.startOfWeek(s.value), k = [];
242
- for (let g = 0; g <= 6; g++)
243
- k.push(n.addDays(m, g));
244
- const y = k, o = n.date();
245
- return d(y, o);
246
- }), u = v(() => {
247
- const m = l.value.flat(), k = n.date();
248
- return d(m, k);
249
- }), f = v(() => l.value.map((m) => m.length ? it(n, m[0]) : null));
250
- function V(m) {
251
- if (e.disabled)
252
- return !0;
253
- const k = n.date(m);
254
- return e.min && n.isAfter(n.date(e.min), k) || e.max && n.isAfter(k, n.date(e.max)) ? !0 : Array.isArray(e.allowedDates) && e.allowedDates.length > 0 ? !e.allowedDates.some((y) => n.isSameDay(n.date(y), k)) : typeof e.allowedDates == "function" ? !e.allowedDates(k) : !1;
255
- }
256
- return {
257
- displayValue: r,
258
- daysInMonth: u,
259
- daysInWeek: c,
260
- genDays: d,
261
- model: s,
262
- weeksInMonth: l,
263
- weekNumbers: f
264
- };
265
- }
266
- const Le = I({
267
- color: String,
268
- hideWeekdays: Boolean,
269
- multiple: [Boolean, Number, String],
270
- showWeek: Boolean,
271
- ...Ut()
272
- }, "VDatePickerMonth"), Ce = B()({
273
- name: "VDatePickerMonth",
274
- props: Le(),
275
- emits: {
276
- "update:modelValue": (e) => !0,
277
- "update:month": (e) => !0,
278
- "update:year": (e) => !0
279
- },
280
- setup(e, n) {
281
- let {
282
- emit: s,
283
- slots: r
284
- } = n;
285
- const t = O(), {
286
- daysInMonth: i,
287
- model: l,
288
- weekNumbers: d
289
- } = zt(e), c = G(), u = Z(), f = Z();
290
- e.multiple === "range" && l.value.length > 0 && (u.value = l.value[0], l.value.length > 1 && (f.value = l.value[l.value.length - 1]));
291
- const V = v(() => {
292
- const o = ["number", "string"].includes(typeof e.multiple) ? Number(e.multiple) : 1 / 0;
293
- return l.value.length >= o;
294
- });
295
- function m(o) {
296
- const g = c.startOfDay(o);
297
- if (!u.value)
298
- u.value = g, l.value = [u.value];
299
- else if (f.value)
300
- u.value = o, f.value = void 0, l.value = [u.value];
301
- else {
302
- if (c.isSameDay(g, u.value)) {
303
- u.value = void 0, l.value = [];
304
- return;
305
- } else
306
- c.isBefore(g, u.value) ? (f.value = c.endOfDay(u.value), u.value = g) : f.value = c.endOfDay(g);
307
- const b = c.getDiff(f.value, u.value, "days"), w = [u.value];
308
- for (let P = 1; P < b; P++) {
309
- const x = c.addDays(u.value, P);
310
- w.push(x);
311
- }
312
- w.push(f.value), l.value = w;
313
- }
314
- }
315
- function k(o) {
316
- const g = l.value.findIndex((b) => c.isSameDay(b, o));
317
- if (g === -1)
318
- l.value = [...l.value, o];
319
- else {
320
- const b = [...l.value];
321
- b.splice(g, 1), l.value = b;
322
- }
323
- }
324
- function y(o) {
325
- e.multiple === "range" ? m(o) : e.multiple ? k(o) : l.value = [o];
326
- }
327
- return () => a("div", {
328
- class: "v-date-picker-month"
329
- }, [e.showWeek && a("div", {
330
- key: "weeks",
331
- class: "v-date-picker-month__weeks"
332
- }, [!e.hideWeekdays && a("div", {
333
- key: "hide-week-days",
334
- class: "v-date-picker-month__day"
335
- }, [st(" ")]), d.value.map((o) => a("div", {
336
- class: ["v-date-picker-month__day", "v-date-picker-month__day--adjacent"]
337
- }, [o]))]), a("div", {
338
- ref: t,
339
- class: "v-date-picker-month__days"
340
- }, [!e.hideWeekdays && c.getWeekdays().map((o) => a("div", {
341
- class: ["v-date-picker-month__day", "v-date-picker-month__weekday"]
342
- }, [o])), i.value.map((o, g) => {
343
- const b = {
344
- props: {
345
- onClick: () => y(o.date)
346
- },
347
- item: o,
348
- i: g
349
- };
350
- return V.value && !o.isSelected && (o.isDisabled = !0), a("div", {
351
- class: ["v-date-picker-month__day", {
352
- "v-date-picker-month__day--adjacent": o.isAdjacent,
353
- "v-date-picker-month__day--hide-adjacent": o.isHidden,
354
- "v-date-picker-month__day--selected": o.isSelected,
355
- "v-date-picker-month__day--week-end": o.isWeekEnd,
356
- "v-date-picker-month__day--week-start": o.isWeekStart
357
- }],
358
- "data-v-date": o.isDisabled ? void 0 : o.isoDate
359
- }, [(e.showAdjacentMonths || !o.isAdjacent) && a(Q, {
360
- defaults: {
361
- VBtn: {
362
- class: "v-date-picker-month__day-btn",
363
- color: (o.isSelected || o.isToday) && !o.isDisabled ? e.color : void 0,
364
- disabled: o.isDisabled,
365
- icon: !0,
366
- ripple: !1,
367
- text: o.localized,
368
- variant: o.isDisabled ? o.isToday ? "outlined" : "text" : o.isToday && !o.isSelected ? "outlined" : "flat",
369
- onClick: () => y(o.date)
370
- }
371
- }
372
- }, {
373
- default: () => [r.day?.(b) ?? a(W, b.props, null)]
374
- })]);
375
- })])]);
376
- }
377
- }), We = I({
378
- color: String,
379
- height: [String, Number],
380
- modelValue: Number
381
- }, "VDatePickerMonths"), xe = B()({
382
- name: "VDatePickerMonths",
383
- props: We(),
384
- emits: {
385
- "update:modelValue": (e) => !0
386
- },
387
- setup(e, n) {
388
- let {
389
- emit: s,
390
- slots: r
391
- } = n;
392
- const t = G(), i = R(e, "modelValue"), l = v(() => {
393
- let d = t.startOfYear(t.date());
394
- return pe(12).map((c) => {
395
- const u = t.format(d, "monthShort");
396
- return d = t.getNextMonth(d), {
397
- text: u,
398
- value: c
399
- };
400
- });
401
- });
402
- return we(() => {
403
- i.value = i.value ?? t.getMonth(t.date());
404
- }), Y(() => a("div", {
405
- class: "v-date-picker-months",
406
- style: {
407
- height: ue(e.height)
408
- }
409
- }, [a("div", {
410
- class: "v-date-picker-months__content"
411
- }, [l.value.map((d, c) => {
412
- const u = {
413
- active: i.value === c,
414
- color: i.value === c ? e.color : void 0,
415
- rounded: !0,
416
- text: d.text,
417
- variant: i.value === d.value ? "flat" : "text",
418
- onClick: () => f(c)
419
- };
420
- function f(V) {
421
- if (i.value === V) {
422
- s("update:modelValue", i.value);
423
- return;
424
- }
425
- i.value = V;
426
- }
427
- return r.month?.({
428
- month: d,
429
- i: c,
430
- props: u
431
- }) ?? a(W, N({
432
- key: "month"
433
- }, u), null);
434
- })])])), {};
435
- }
436
- }), je = I({
437
- color: String,
438
- height: [String, Number],
439
- min: null,
440
- max: null,
441
- modelValue: Number
442
- }, "VDatePickerYears"), Pe = B()({
443
- name: "VDatePickerYears",
444
- props: je(),
445
- emits: {
446
- "update:modelValue": (e) => !0
447
- },
448
- setup(e, n) {
449
- let {
450
- emit: s,
451
- slots: r
452
- } = n;
453
- const t = G(), i = R(e, "modelValue"), l = v(() => {
454
- const c = t.getYear(t.date());
455
- let u = c - 100, f = c + 52;
456
- e.min && (u = t.getYear(t.date(e.min))), e.max && (f = t.getYear(t.date(e.max)));
457
- let V = t.startOfYear(t.date());
458
- return V = t.setYear(V, u), pe(f - u + 1, u).map((m) => {
459
- const k = t.format(V, "year");
460
- return V = t.setYear(V, t.getYear(V) + 1), {
461
- text: k,
462
- value: m
463
- };
464
- });
465
- });
466
- we(() => {
467
- i.value = i.value ?? t.getYear(t.date());
468
- });
469
- const d = O();
470
- return de(async () => {
471
- await ie(), d.value?.$el.scrollIntoView({
472
- block: "center"
473
- });
474
- }), Y(() => a("div", {
475
- class: "v-date-picker-years",
476
- style: {
477
- height: ue(e.height)
478
- }
479
- }, [a("div", {
480
- class: "v-date-picker-years__content"
481
- }, [l.value.map((c, u) => {
482
- const f = {
483
- ref: i.value === c.value ? d : void 0,
484
- active: i.value === c.value,
485
- color: i.value === c.value ? e.color : void 0,
486
- rounded: !0,
487
- text: c.text,
488
- variant: i.value === c.value ? "flat" : "text",
489
- onClick: () => {
490
- if (i.value === c.value) {
491
- s("update:modelValue", i.value);
492
- return;
493
- }
494
- i.value = c.value;
495
- }
496
- };
497
- return r.year?.({
498
- year: c,
499
- i: u,
500
- props: f
501
- }) ?? a(W, N({
502
- key: "month"
503
- }, f), null);
504
- })])])), {};
505
- }
506
- }), Ht = Ee("v-picker-title"), Ue = I({
507
- color: String,
508
- ...Bt(),
509
- ...z(),
510
- ...Yt(),
511
- ...$t(),
512
- ...xt(),
513
- ...Pt(),
514
- ...Ye(),
515
- ...ot(),
516
- ...ce()
517
- }, "VSheet"), _e = B()({
518
- name: "VSheet",
519
- props: Ue(),
520
- setup(e, n) {
521
- let {
522
- slots: s
523
- } = n;
524
- const {
525
- themeClasses: r
526
- } = Ie(e), {
527
- backgroundColorClasses: t,
528
- backgroundColorStyles: i
529
- } = oe(ve(e, "color")), {
530
- borderClasses: l
531
- } = Ft(e), {
532
- dimensionStyles: d
533
- } = Nt(e), {
534
- elevationClasses: c
535
- } = Ot(e), {
536
- locationStyles: u
537
- } = _t(e), {
538
- positionClasses: f
539
- } = St(e), {
540
- roundedClasses: V
541
- } = Ne(e);
542
- return Y(() => a(e.tag, {
543
- class: ["v-sheet", r.value, t.value, l.value, c.value, f.value, V.value, e.class],
544
- style: [i.value, d.value, u.value, e.style]
545
- }, s)), {};
546
- }
547
- }), ze = I({
548
- bgColor: String,
549
- landscape: Boolean,
550
- title: String,
551
- hideHeader: Boolean,
552
- ...Ue()
553
- }, "VPicker"), Se = B()({
554
- name: "VPicker",
555
- props: ze(),
556
- setup(e, n) {
557
- let {
558
- slots: s
559
- } = n;
560
- const {
561
- backgroundColorClasses: r,
562
- backgroundColorStyles: t
563
- } = oe(ve(e, "color"));
564
- return Y(() => {
565
- const i = _e.filterProps(e), l = !!(e.title || s.title);
566
- return a(_e, N(i, {
567
- color: e.bgColor,
568
- class: ["v-picker", {
569
- "v-picker--landscape": e.landscape,
570
- "v-picker--with-actions": !!s.actions
571
- }, e.class],
572
- style: e.style
573
- }), {
574
- default: () => [!e.hideHeader && a("div", {
575
- key: "header",
576
- class: [r.value],
577
- style: [t.value]
578
- }, [l && a(Ht, {
579
- key: "picker-title"
580
- }, {
581
- default: () => [s.title?.() ?? e.title]
582
- }), s.header && a("div", {
583
- class: "v-picker__header"
584
- }, [s.header()])]), a("div", {
585
- class: "v-picker__body"
586
- }, [s.default?.()]), s.actions && a(Q, {
587
- defaults: {
588
- VBtn: {
589
- slim: !0,
590
- variant: "text"
591
- }
592
- }
593
- }, {
594
- default: () => [a("div", {
595
- class: "v-picker__actions"
596
- }, [s.actions()])]
597
- })]
598
- });
599
- }), {};
600
- }
601
- }), Kt = I({
602
- // TODO: implement in v3.5
603
- // calendarIcon: {
604
- // type: String,
605
- // default: '$calendar',
606
- // },
607
- // keyboardIcon: {
608
- // type: String,
609
- // default: '$edit',
610
- // },
611
- // inputMode: {
612
- // type: String as PropType<'calendar' | 'keyboard'>,
613
- // default: 'calendar',
614
- // },
615
- // inputText: {
616
- // type: String,
617
- // default: '$vuetify.datePicker.input.placeholder',
618
- // },
619
- // inputPlaceholder: {
620
- // type: String,
621
- // default: 'dd/mm/yyyy',
622
- // },
623
- header: {
624
- type: String,
625
- default: "$vuetify.datePicker.header"
626
- },
627
- ...Re(),
628
- ...Le(),
629
- ...se(We(), ["modelValue"]),
630
- ...se(je(), ["modelValue"]),
631
- ...ze({
632
- title: "$vuetify.datePicker.title"
633
- }),
634
- modelValue: null
635
- }, "VDatePicker"), Jt = B()({
636
- name: "VDatePicker",
637
- props: Kt(),
638
- emits: {
639
- "update:modelValue": (e) => !0,
640
- "update:month": (e) => !0,
641
- "update:year": (e) => !0,
642
- // 'update:inputMode': (date: any) => true,
643
- "update:viewMode": (e) => !0
644
- },
645
- setup(e, n) {
646
- let {
647
- emit: s,
648
- slots: r
649
- } = n;
650
- const t = G(), {
651
- t: i
652
- } = Me(), l = R(e, "modelValue", void 0, (h) => U(h), (h) => e.multiple ? h : h[0]), d = R(e, "viewMode"), c = v(() => {
653
- const h = t.date(l.value?.[0]);
654
- return h && t.isValid(h) ? h : t.date();
655
- }), u = O(Number(e.month ?? t.getMonth(t.startOfMonth(c.value)))), f = O(Number(e.year ?? t.getYear(t.startOfYear(t.setMonth(c.value, u.value))))), V = Z(!1), m = v(() => e.multiple && l.value.length > 1 ? i("$vuetify.datePicker.itemsSelected", l.value.length) : l.value[0] && t.isValid(l.value[0]) ? t.format(t.date(l.value[0]), "normalDateWithWeekday") : i(e.header)), k = v(() => {
656
- let h = t.date();
657
- return h = t.setYear(h, f.value), h = t.setMonth(h, u.value), h = t.setDate(h, 1), t.format(h, "monthAndYear");
658
- }), y = v(() => `date-picker-header${V.value ? "-reverse" : ""}-transition`), o = v(() => {
659
- const h = t.date(e.min);
660
- return e.min && t.isValid(h) ? h : null;
661
- }), g = v(() => {
662
- const h = t.date(e.max);
663
- return e.max && t.isValid(h) ? h : null;
664
- }), b = v(() => {
665
- if (e.disabled)
666
- return !0;
667
- const h = [];
668
- if (d.value !== "month")
669
- h.push("prev", "next");
670
- else {
671
- let M = t.date();
672
- if (M = t.setYear(M, f.value), M = t.setMonth(M, u.value), o.value) {
673
- const A = t.addDays(t.startOfMonth(M), -1);
674
- t.isAfter(o.value, A) && h.push("prev");
675
- }
676
- if (g.value) {
677
- const A = t.addDays(t.endOfMonth(M), 1);
678
- t.isAfter(A, g.value) && h.push("next");
679
- }
680
- }
681
- return h;
682
- });
683
- function w() {
684
- u.value < 11 ? u.value++ : (f.value++, u.value = 0, p(f.value)), S(u.value);
685
- }
686
- function P() {
687
- u.value > 0 ? u.value-- : (f.value--, u.value = 11, p(f.value)), S(u.value);
688
- }
689
- function x() {
690
- d.value = "month";
691
- }
692
- function _() {
693
- d.value = d.value === "months" ? "month" : "months";
694
- }
695
- function C() {
696
- d.value = d.value === "year" ? "month" : "year";
697
- }
698
- function S(h) {
699
- d.value === "months" && _(), s("update:month", h);
700
- }
701
- function p(h) {
702
- d.value === "year" && C(), s("update:year", h);
703
- }
704
- return J(l, (h, M) => {
705
- const A = t.date(U(h)[0]), H = t.date(U(M)[0]);
706
- V.value = t.isBefore(A, H);
707
- }), Y(() => {
708
- const h = Se.filterProps(e), M = be.filterProps(e), A = Ve.filterProps(e), H = Ce.filterProps(e), E = se(xe.filterProps(e), ["modelValue"]), $ = se(Pe.filterProps(e), ["modelValue"]), F = {
709
- header: m.value,
710
- transition: y.value
711
- };
712
- return a(Se, N(h, {
713
- class: ["v-date-picker", `v-date-picker--${d.value}`, {
714
- "v-date-picker--show-week": e.showWeek
715
- }, e.class],
716
- style: e.style
717
- }), {
718
- title: () => r.title?.() ?? a("div", {
719
- class: "v-date-picker__title"
720
- }, [i(e.title)]),
721
- header: () => r.header ? a(Q, {
722
- defaults: {
723
- VDatePickerHeader: {
724
- ...F
725
- }
726
- }
727
- }, {
728
- default: () => [r.header?.(F)]
729
- }) : a(Ve, N({
730
- key: "header"
731
- }, A, F, {
732
- onClick: d.value !== "month" ? x : void 0
733
- }), {
734
- ...r,
735
- default: void 0
736
- }),
737
- default: () => a(X, null, [a(be, N(M, {
738
- disabled: b.value,
739
- text: k.value,
740
- "onClick:next": w,
741
- "onClick:prev": P,
742
- "onClick:month": _,
743
- "onClick:year": C
744
- }), null), a(bt, {
745
- hideOnLeave: !0
746
- }, {
747
- default: () => [d.value === "months" ? a(xe, N({
748
- key: "date-picker-months"
749
- }, E, {
750
- modelValue: u.value,
751
- "onUpdate:modelValue": [(D) => u.value = D, S],
752
- min: o.value,
753
- max: g.value
754
- }), null) : d.value === "year" ? a(Pe, N({
755
- key: "date-picker-years"
756
- }, $, {
757
- modelValue: f.value,
758
- "onUpdate:modelValue": [(D) => f.value = D, p],
759
- min: o.value,
760
- max: g.value
761
- }), null) : a(Ce, N({
762
- key: "date-picker-month"
763
- }, H, {
764
- modelValue: l.value,
765
- "onUpdate:modelValue": (D) => l.value = D,
766
- month: u.value,
767
- "onUpdate:month": [(D) => u.value = D, S],
768
- year: f.value,
769
- "onUpdate:year": [(D) => f.value = D, p],
770
- min: o.value,
771
- max: g.value
772
- }), null)]
773
- })]),
774
- actions: r.actions
775
- });
776
- }), {};
777
- }
778
- }), Xt = I({
779
- active: Boolean,
780
- max: [Number, String],
781
- value: {
782
- type: [Number, String],
783
- default: 0
784
- },
785
- ...z(),
786
- ...Oe({
787
- transition: {
788
- component: Fe
789
- }
790
- })
791
- }, "VCounter"), qt = B()({
792
- name: "VCounter",
793
- functional: !0,
794
- props: Xt(),
795
- setup(e, n) {
796
- let {
797
- slots: s
798
- } = n;
799
- const r = v(() => e.max ? `${e.value} / ${e.max}` : String(e.value));
800
- return Y(() => a(ye, {
801
- transition: e.transition
802
- }, {
803
- default: () => [fe(a("div", {
804
- class: ["v-counter", e.class],
805
- style: e.style
806
- }, [s.default ? s.default({
807
- counter: r.value,
808
- max: e.max,
809
- value: e.value
810
- }) : r.value]), [[Ae, e.active]])]
811
- })), {};
812
- }
813
- }), Zt = I({
814
- text: String,
815
- onClick: j(),
816
- ...z(),
817
- ...ce()
818
- }, "VLabel"), Gt = B()({
819
- name: "VLabel",
820
- props: Zt(),
821
- setup(e, n) {
822
- let {
823
- slots: s
824
- } = n;
825
- return Y(() => a("label", {
826
- class: ["v-label", {
827
- "v-label--clickable": !!e.onClick
828
- }, e.class],
829
- style: e.style,
830
- onClick: e.onClick
831
- }, [e.text, s.default?.()])), {};
832
- }
833
- }), Qt = I({
834
- floating: Boolean,
835
- ...z()
836
- }, "VFieldLabel"), le = B()({
837
- name: "VFieldLabel",
838
- props: Qt(),
839
- setup(e, n) {
840
- let {
841
- slots: s
842
- } = n;
843
- return Y(() => a(Gt, {
844
- class: ["v-field-label", {
845
- "v-field-label--floating": e.floating
846
- }, e.class],
847
- style: e.style,
848
- "aria-hidden": e.floating || void 0
849
- }, s)), {};
850
- }
851
- });
852
- function He(e) {
853
- const {
854
- t: n
855
- } = Me();
856
- function s(r) {
857
- let {
858
- name: t
859
- } = r;
860
- const i = {
861
- prepend: "prependAction",
862
- prependInner: "prependAction",
863
- append: "appendAction",
864
- appendInner: "appendAction",
865
- clear: "clear"
866
- }[t], l = e[`onClick:${t}`], d = l && i ? n(`$vuetify.input.${i}`, e.label ?? "") : void 0;
867
- return a(Dt, {
868
- icon: e[`${t}Icon`],
869
- "aria-label": d,
870
- onClick: l
871
- }, null);
872
- }
873
- return {
874
- InputIcon: s
875
- };
876
- }
877
- const Ke = I({
878
- focused: Boolean,
879
- "onUpdate:focused": j()
880
- }, "focus");
881
- function Je(e) {
882
- let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Be();
883
- const s = R(e, "focused"), r = v(() => ({
884
- [`${n}--focused`]: s.value
885
- }));
886
- function t() {
887
- s.value = !0;
888
- }
889
- function i() {
890
- s.value = !1;
891
- }
892
- return {
893
- focusClasses: r,
894
- isFocused: s,
895
- focus: t,
896
- blur: i
897
- };
898
- }
899
- const ea = ["underlined", "outlined", "filled", "solo", "solo-inverted", "solo-filled", "plain"], Xe = I({
900
- appendInnerIcon: q,
901
- bgColor: String,
902
- clearable: Boolean,
903
- clearIcon: {
904
- type: q,
905
- default: "$clear"
906
- },
907
- active: Boolean,
908
- centerAffix: {
909
- type: Boolean,
910
- default: void 0
911
- },
912
- color: String,
913
- baseColor: String,
914
- dirty: Boolean,
915
- disabled: {
916
- type: Boolean,
917
- default: null
918
- },
919
- error: Boolean,
920
- flat: Boolean,
921
- label: String,
922
- persistentClear: Boolean,
923
- prependInnerIcon: q,
924
- reverse: Boolean,
925
- singleLine: Boolean,
926
- variant: {
927
- type: String,
928
- default: "filled",
929
- validator: (e) => ea.includes(e)
930
- },
931
- "onClick:clear": j(),
932
- "onClick:appendInner": j(),
933
- "onClick:prependInner": j(),
934
- ...z(),
935
- ...pt(),
936
- ...Ye(),
937
- ...ce()
938
- }, "VField"), qe = B()({
939
- name: "VField",
940
- inheritAttrs: !1,
941
- props: {
942
- id: String,
943
- ...Ke(),
944
- ...Xe()
945
- },
946
- emits: {
947
- "update:focused": (e) => !0,
948
- "update:modelValue": (e) => !0
949
- },
950
- setup(e, n) {
951
- let {
952
- attrs: s,
953
- emit: r,
954
- slots: t
955
- } = n;
956
- const {
957
- themeClasses: i
958
- } = Ie(e), {
959
- loaderClasses: l
960
- } = wt(e), {
961
- focusClasses: d,
962
- isFocused: c,
963
- focus: u,
964
- blur: f
965
- } = Je(e), {
966
- InputIcon: V
967
- } = He(e), {
968
- roundedClasses: m
969
- } = Ne(e), {
970
- rtlClasses: k
971
- } = $e(), y = v(() => e.dirty || e.active), o = v(() => !e.singleLine && !!(e.label || t.label)), g = me(), b = v(() => e.id || `input-${g}`), w = v(() => `${b.value}-messages`), P = O(), x = O(), _ = O(), C = v(() => ["plain", "underlined"].includes(e.variant)), {
972
- backgroundColorClasses: S,
973
- backgroundColorStyles: p
974
- } = oe(ve(e, "bgColor")), {
975
- textColorClasses: h,
976
- textColorStyles: M
977
- } = Te(v(() => e.error || e.disabled ? void 0 : y.value && c.value ? e.color : e.baseColor));
978
- J(y, ($) => {
979
- if (o.value) {
980
- const F = P.value.$el, D = x.value.$el;
981
- requestAnimationFrame(() => {
982
- const L = Tt(F), T = D.getBoundingClientRect(), K = T.x - L.x, ee = T.y - L.y - (L.height / 2 - T.height / 2), te = T.width / 0.75, ae = Math.abs(te - L.width) > 1 ? {
983
- maxWidth: ue(te)
984
- } : void 0, Ge = getComputedStyle(F), he = getComputedStyle(D), Qe = parseFloat(Ge.transitionDuration) * 1e3 || 150, et = parseFloat(he.getPropertyValue("--v-field-label-scale")), tt = he.getPropertyValue("color");
985
- F.style.visibility = "visible", D.style.visibility = "hidden", Et(F, {
986
- transform: `translate(${K}px, ${ee}px) scale(${et})`,
987
- color: tt,
988
- ...ae
989
- }, {
990
- duration: Qe,
991
- easing: Rt,
992
- direction: $ ? "normal" : "reverse"
993
- }).finished.then(() => {
994
- F.style.removeProperty("visibility"), D.style.removeProperty("visibility");
995
- });
996
- });
997
- }
998
- }, {
999
- flush: "post"
1000
- });
1001
- const A = v(() => ({
1002
- isActive: y,
1003
- isFocused: c,
1004
- controlRef: _,
1005
- blur: f,
1006
- focus: u
1007
- }));
1008
- function H($) {
1009
- $.target !== document.activeElement && $.preventDefault();
1010
- }
1011
- function E($) {
1012
- $.key !== "Enter" && $.key !== " " || ($.preventDefault(), $.stopPropagation(), e["onClick:clear"]?.(new MouseEvent("click")));
1013
- }
1014
- return Y(() => {
1015
- const $ = e.variant === "outlined", F = !!(t["prepend-inner"] || e.prependInnerIcon), D = !!(e.clearable || t.clear), L = !!(t["append-inner"] || e.appendInnerIcon || D), T = () => t.label ? t.label({
1016
- ...A.value,
1017
- label: e.label,
1018
- props: {
1019
- for: b.value
1020
- }
1021
- }) : e.label;
1022
- return a("div", N({
1023
- class: ["v-field", {
1024
- "v-field--active": y.value,
1025
- "v-field--appended": L,
1026
- "v-field--center-affix": e.centerAffix ?? !C.value,
1027
- "v-field--disabled": e.disabled,
1028
- "v-field--dirty": e.dirty,
1029
- "v-field--error": e.error,
1030
- "v-field--flat": e.flat,
1031
- "v-field--has-background": !!e.bgColor,
1032
- "v-field--persistent-clear": e.persistentClear,
1033
- "v-field--prepended": F,
1034
- "v-field--reverse": e.reverse,
1035
- "v-field--single-line": e.singleLine,
1036
- "v-field--no-label": !T(),
1037
- [`v-field--variant-${e.variant}`]: !0
1038
- }, i.value, S.value, d.value, l.value, m.value, k.value, e.class],
1039
- style: [p.value, e.style],
1040
- onClick: H
1041
- }, s), [a("div", {
1042
- class: "v-field__overlay"
1043
- }, null), a(It, {
1044
- name: "v-field",
1045
- active: !!e.loading,
1046
- color: e.error ? "error" : typeof e.loading == "string" ? e.loading : e.color
1047
- }, {
1048
- default: t.loader
1049
- }), F && a("div", {
1050
- key: "prepend",
1051
- class: "v-field__prepend-inner"
1052
- }, [e.prependInnerIcon && a(V, {
1053
- key: "prepend-icon",
1054
- name: "prependInner"
1055
- }, null), t["prepend-inner"]?.(A.value)]), a("div", {
1056
- class: "v-field__field",
1057
- "data-no-activator": ""
1058
- }, [["filled", "solo", "solo-inverted", "solo-filled"].includes(e.variant) && o.value && a(le, {
1059
- key: "floating-label",
1060
- ref: x,
1061
- class: [h.value],
1062
- floating: !0,
1063
- for: b.value,
1064
- style: M.value
1065
- }, {
1066
- default: () => [T()]
1067
- }), a(le, {
1068
- ref: P,
1069
- for: b.value
1070
- }, {
1071
- default: () => [T()]
1072
- }), t.default?.({
1073
- ...A.value,
1074
- props: {
1075
- id: b.value,
1076
- class: "v-field__input",
1077
- "aria-describedby": w.value
1078
- },
1079
- focus: u,
1080
- blur: f
1081
- })]), D && a(Vt, {
1082
- key: "clear"
1083
- }, {
1084
- default: () => [fe(a("div", {
1085
- class: "v-field__clearable",
1086
- onMousedown: (K) => {
1087
- K.preventDefault(), K.stopPropagation();
1088
- }
1089
- }, [a(Q, {
1090
- defaults: {
1091
- VIcon: {
1092
- icon: e.clearIcon
1093
- }
1094
- }
1095
- }, {
1096
- default: () => [t.clear ? t.clear({
1097
- ...A.value,
1098
- props: {
1099
- onKeydown: E,
1100
- onFocus: u,
1101
- onBlur: f,
1102
- onClick: e["onClick:clear"]
1103
- }
1104
- }) : a(V, {
1105
- name: "clear",
1106
- onKeydown: E,
1107
- onFocus: u,
1108
- onBlur: f
1109
- }, null)]
1110
- })]), [[Ae, e.dirty]])]
1111
- }), L && a("div", {
1112
- key: "append",
1113
- class: "v-field__append-inner"
1114
- }, [t["append-inner"]?.(A.value), e.appendInnerIcon && a(V, {
1115
- key: "append-icon",
1116
- name: "appendInner"
1117
- }, null)]), a("div", {
1118
- class: ["v-field__outline", h.value],
1119
- style: M.value
1120
- }, [$ && a(X, null, [a("div", {
1121
- class: "v-field__outline__start"
1122
- }, null), o.value && a("div", {
1123
- class: "v-field__outline__notch"
1124
- }, [a(le, {
1125
- ref: x,
1126
- floating: !0,
1127
- for: b.value
1128
- }, {
1129
- default: () => [T()]
1130
- })]), a("div", {
1131
- class: "v-field__outline__end"
1132
- }, null)]), C.value && o.value && a(le, {
1133
- ref: x,
1134
- floating: !0,
1135
- for: b.value
1136
- }, {
1137
- default: () => [T()]
1138
- })])]);
1139
- }), {
1140
- controlRef: _
1141
- };
1142
- }
1143
- });
1144
- function ta(e) {
1145
- const n = Object.keys(qe.props).filter((s) => !rt(s) && s !== "class" && s !== "style");
1146
- return ut(e, n);
1147
- }
1148
- const aa = I({
1149
- active: Boolean,
1150
- color: String,
1151
- messages: {
1152
- type: [Array, String],
1153
- default: () => []
1154
- },
1155
- ...z(),
1156
- ...Oe({
1157
- transition: {
1158
- component: Fe,
1159
- leaveAbsolute: !0,
1160
- group: !0
1161
- }
1162
- })
1163
- }, "VMessages"), na = B()({
1164
- name: "VMessages",
1165
- props: aa(),
1166
- setup(e, n) {
1167
- let {
1168
- slots: s
1169
- } = n;
1170
- const r = v(() => U(e.messages)), {
1171
- textColorClasses: t,
1172
- textColorStyles: i
1173
- } = Te(v(() => e.color));
1174
- return Y(() => a(ye, {
1175
- transition: e.transition,
1176
- tag: "div",
1177
- class: ["v-messages", t.value, e.class],
1178
- style: [i.value, e.style],
1179
- role: "alert",
1180
- "aria-live": "polite"
1181
- }, {
1182
- default: () => [e.active && r.value.map((l, d) => a("div", {
1183
- class: "v-messages__message",
1184
- key: `${d}-${r.value}`
1185
- }, [s.message ? s.message({
1186
- message: l
1187
- }) : l]))]
1188
- })), {};
1189
- }
1190
- }), la = Symbol.for("vuetify:form");
1191
- function ia() {
1192
- return dt(la, null);
1193
- }
1194
- const sa = I({
1195
- disabled: {
1196
- type: Boolean,
1197
- default: null
1198
- },
1199
- error: Boolean,
1200
- errorMessages: {
1201
- type: [Array, String],
1202
- default: () => []
1203
- },
1204
- maxErrors: {
1205
- type: [Number, String],
1206
- default: 1
1207
- },
1208
- name: String,
1209
- label: String,
1210
- readonly: {
1211
- type: Boolean,
1212
- default: null
1213
- },
1214
- rules: {
1215
- type: Array,
1216
- default: () => []
1217
- },
1218
- modelValue: null,
1219
- validateOn: String,
1220
- validationValue: null,
1221
- ...Ke()
1222
- }, "validation");
1223
- function oa(e) {
1224
- let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Be(), s = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : me();
1225
- const r = R(e, "modelValue"), t = v(() => e.validationValue === void 0 ? r.value : e.validationValue), i = ia(), l = O([]), d = Z(!0), c = v(() => !!(U(r.value === "" ? null : r.value).length || U(t.value === "" ? null : t.value).length)), u = v(() => !!(e.disabled ?? i?.isDisabled.value)), f = v(() => !!(e.readonly ?? i?.isReadonly.value)), V = v(() => e.errorMessages?.length ? U(e.errorMessages).concat(l.value).slice(0, Math.max(0, +e.maxErrors)) : l.value), m = v(() => {
1226
- let x = (e.validateOn ?? i?.validateOn.value) || "input";
1227
- x === "lazy" && (x = "input lazy");
1228
- const _ = new Set(x?.split(" ") ?? []);
1229
- return {
1230
- blur: _.has("blur") || _.has("input"),
1231
- input: _.has("input"),
1232
- submit: _.has("submit"),
1233
- lazy: _.has("lazy")
1234
- };
1235
- }), k = v(() => e.error || e.errorMessages?.length ? !1 : e.rules.length ? d.value ? l.value.length || m.value.lazy ? null : !0 : !l.value.length : !0), y = Z(!1), o = v(() => ({
1236
- [`${n}--error`]: k.value === !1,
1237
- [`${n}--dirty`]: c.value,
1238
- [`${n}--disabled`]: u.value,
1239
- [`${n}--readonly`]: f.value
1240
- })), g = v(() => e.name ?? ct(s));
1241
- vt(() => {
1242
- i?.register({
1243
- id: g.value,
1244
- validate: P,
1245
- reset: b,
1246
- resetValidation: w
1247
- });
1248
- }), ft(() => {
1249
- i?.unregister(g.value);
1250
- }), de(async () => {
1251
- m.value.lazy || await P(!0), i?.update(g.value, k.value, V.value);
1252
- }), ke(() => m.value.input, () => {
1253
- J(t, () => {
1254
- if (t.value != null)
1255
- P();
1256
- else if (e.focused) {
1257
- const x = J(() => e.focused, (_) => {
1258
- _ || P(), x();
1259
- });
1260
- }
1261
- });
1262
- }), ke(() => m.value.blur, () => {
1263
- J(() => e.focused, (x) => {
1264
- x || P();
1265
- });
1266
- }), J([k, V], () => {
1267
- i?.update(g.value, k.value, V.value);
1268
- });
1269
- async function b() {
1270
- r.value = null, await ie(), await w();
1271
- }
1272
- async function w() {
1273
- d.value = !0, m.value.lazy ? l.value = [] : await P(!0);
1274
- }
1275
- async function P() {
1276
- let x = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1;
1277
- const _ = [];
1278
- y.value = !0;
1279
- for (const C of e.rules) {
1280
- if (_.length >= +(e.maxErrors ?? 1))
1281
- break;
1282
- const p = await (typeof C == "function" ? C : () => C)(t.value);
1283
- if (p !== !0) {
1284
- if (p !== !1 && typeof p != "string") {
1285
- console.warn(`${p} is not a valid value. Rule functions must return boolean true or a string.`);
1286
- continue;
1287
- }
1288
- _.push(p || "");
1289
- }
1290
- }
1291
- return l.value = _, y.value = !1, d.value = x, l.value;
1292
- }
1293
- return {
1294
- errorMessages: V,
1295
- isDirty: c,
1296
- isDisabled: u,
1297
- isReadonly: f,
1298
- isPristine: d,
1299
- isValid: k,
1300
- isValidating: y,
1301
- reset: b,
1302
- resetValidation: w,
1303
- validate: P,
1304
- validationClasses: o
1305
- };
1306
- }
1307
- const Ze = I({
1308
- id: String,
1309
- appendIcon: q,
1310
- centerAffix: {
1311
- type: Boolean,
1312
- default: !0
1313
- },
1314
- prependIcon: q,
1315
- hideDetails: [Boolean, String],
1316
- hideSpinButtons: Boolean,
1317
- hint: String,
1318
- persistentHint: Boolean,
1319
- messages: {
1320
- type: [Array, String],
1321
- default: () => []
1322
- },
1323
- direction: {
1324
- type: String,
1325
- default: "horizontal",
1326
- validator: (e) => ["horizontal", "vertical"].includes(e)
1327
- },
1328
- "onClick:prepend": j(),
1329
- "onClick:append": j(),
1330
- ...z(),
1331
- ...Mt(),
1332
- ...sa()
1333
- }, "VInput"), De = B()({
1334
- name: "VInput",
1335
- props: {
1336
- ...Ze()
1337
- },
1338
- emits: {
1339
- "update:modelValue": (e) => !0
1340
- },
1341
- setup(e, n) {
1342
- let {
1343
- attrs: s,
1344
- slots: r,
1345
- emit: t
1346
- } = n;
1347
- const {
1348
- densityClasses: i
1349
- } = At(e), {
1350
- rtlClasses: l
1351
- } = $e(), {
1352
- InputIcon: d
1353
- } = He(e), c = me(), u = v(() => e.id || `input-${c}`), f = v(() => `${u.value}-messages`), {
1354
- errorMessages: V,
1355
- isDirty: m,
1356
- isDisabled: k,
1357
- isReadonly: y,
1358
- isPristine: o,
1359
- isValid: g,
1360
- isValidating: b,
1361
- reset: w,
1362
- resetValidation: P,
1363
- validate: x,
1364
- validationClasses: _
1365
- } = oa(e, "v-input", u), C = v(() => ({
1366
- id: u,
1367
- messagesId: f,
1368
- isDirty: m,
1369
- isDisabled: k,
1370
- isReadonly: y,
1371
- isPristine: o,
1372
- isValid: g,
1373
- isValidating: b,
1374
- reset: w,
1375
- resetValidation: P,
1376
- validate: x
1377
- })), S = v(() => e.errorMessages?.length || !o.value && V.value.length ? V.value : e.hint && (e.persistentHint || e.focused) ? e.hint : e.messages);
1378
- return Y(() => {
1379
- const p = !!(r.prepend || e.prependIcon), h = !!(r.append || e.appendIcon), M = S.value.length > 0, A = !e.hideDetails || e.hideDetails === "auto" && (M || !!r.details);
1380
- return a("div", {
1381
- class: ["v-input", `v-input--${e.direction}`, {
1382
- "v-input--center-affix": e.centerAffix,
1383
- "v-input--hide-spin-buttons": e.hideSpinButtons
1384
- }, i.value, l.value, _.value, e.class],
1385
- style: e.style
1386
- }, [p && a("div", {
1387
- key: "prepend",
1388
- class: "v-input__prepend"
1389
- }, [r.prepend?.(C.value), e.prependIcon && a(d, {
1390
- key: "prepend-icon",
1391
- name: "prepend"
1392
- }, null)]), r.default && a("div", {
1393
- class: "v-input__control"
1394
- }, [r.default?.(C.value)]), h && a("div", {
1395
- key: "append",
1396
- class: "v-input__append"
1397
- }, [e.appendIcon && a(d, {
1398
- key: "append-icon",
1399
- name: "append"
1400
- }, null), r.append?.(C.value)]), A && a("div", {
1401
- class: "v-input__details"
1402
- }, [a(na, {
1403
- id: f.value,
1404
- active: M,
1405
- messages: S.value
1406
- }, {
1407
- message: r.message
1408
- }), r.details?.(C.value)])]);
1409
- }), {
1410
- reset: w,
1411
- resetValidation: P,
1412
- validate: x,
1413
- isValid: g,
1414
- errorMessages: V
1415
- };
1416
- }
1417
- }), ra = ["color", "file", "time", "date", "datetime-local", "week", "month"], ua = I({
1418
- autofocus: Boolean,
1419
- counter: [Boolean, Number, String],
1420
- counterValue: [Number, Function],
1421
- prefix: String,
1422
- placeholder: String,
1423
- persistentPlaceholder: Boolean,
1424
- persistentCounter: Boolean,
1425
- suffix: String,
1426
- role: String,
1427
- type: {
1428
- type: String,
1429
- default: "text"
1430
- },
1431
- modelModifiers: Object,
1432
- ...Ze(),
1433
- ...Xe()
1434
- }, "VTextField"), da = B()({
1435
- name: "VTextField",
1436
- directives: {
1437
- Intersect: Ct
1438
- },
1439
- inheritAttrs: !1,
1440
- props: ua(),
1441
- emits: {
1442
- "click:control": (e) => !0,
1443
- "mousedown:control": (e) => !0,
1444
- "update:focused": (e) => !0,
1445
- "update:modelValue": (e) => !0
1446
- },
1447
- setup(e, n) {
1448
- let {
1449
- attrs: s,
1450
- emit: r,
1451
- slots: t
1452
- } = n;
1453
- const i = R(e, "modelValue"), {
1454
- isFocused: l,
1455
- focus: d,
1456
- blur: c
1457
- } = Je(e), u = v(() => typeof e.counterValue == "function" ? e.counterValue(i.value) : typeof e.counterValue == "number" ? e.counterValue : (i.value ?? "").toString().length), f = v(() => {
1458
- if (s.maxlength)
1459
- return s.maxlength;
1460
- if (!(!e.counter || typeof e.counter != "number" && typeof e.counter != "string"))
1461
- return e.counter;
1462
- }), V = v(() => ["plain", "underlined"].includes(e.variant));
1463
- function m(C, S) {
1464
- !e.autofocus || !C || S[0].target?.focus?.();
1465
- }
1466
- const k = O(), y = O(), o = O(), g = v(() => ra.includes(e.type) || e.persistentPlaceholder || l.value || e.active);
1467
- function b() {
1468
- o.value !== document.activeElement && o.value?.focus(), l.value || d();
1469
- }
1470
- function w(C) {
1471
- r("mousedown:control", C), C.target !== o.value && (b(), C.preventDefault());
1472
- }
1473
- function P(C) {
1474
- b(), r("click:control", C);
1475
- }
1476
- function x(C) {
1477
- C.stopPropagation(), b(), ie(() => {
1478
- i.value = null, kt(e["onClick:clear"], C);
1479
- });
1480
- }
1481
- function _(C) {
1482
- const S = C.target;
1483
- if (i.value = S.value, e.modelModifiers?.trim && ["text", "search", "password", "tel", "url"].includes(e.type)) {
1484
- const p = [S.selectionStart, S.selectionEnd];
1485
- ie(() => {
1486
- S.selectionStart = p[0], S.selectionEnd = p[1];
1487
- });
1488
- }
1489
- }
1490
- return Y(() => {
1491
- const C = !!(t.counter || e.counter !== !1 && e.counter != null), S = !!(C || t.details), [p, h] = mt(s), {
1492
- modelValue: M,
1493
- ...A
1494
- } = De.filterProps(e), H = ta(e);
1495
- return a(De, N({
1496
- ref: k,
1497
- modelValue: i.value,
1498
- "onUpdate:modelValue": (E) => i.value = E,
1499
- class: ["v-text-field", {
1500
- "v-text-field--prefixed": e.prefix,
1501
- "v-text-field--suffixed": e.suffix,
1502
- "v-input--plain-underlined": V.value
1503
- }, e.class],
1504
- style: e.style
1505
- }, p, A, {
1506
- centerAffix: !V.value,
1507
- focused: l.value
1508
- }), {
1509
- ...t,
1510
- default: (E) => {
1511
- let {
1512
- id: $,
1513
- isDisabled: F,
1514
- isDirty: D,
1515
- isReadonly: L,
1516
- isValid: T
1517
- } = E;
1518
- return a(qe, N({
1519
- ref: y,
1520
- onMousedown: w,
1521
- onClick: P,
1522
- "onClick:clear": x,
1523
- "onClick:prependInner": e["onClick:prependInner"],
1524
- "onClick:appendInner": e["onClick:appendInner"],
1525
- role: e.role
1526
- }, H, {
1527
- id: $.value,
1528
- active: g.value || D.value,
1529
- dirty: D.value || e.dirty,
1530
- disabled: F.value,
1531
- focused: l.value,
1532
- error: T.value === !1
1533
- }), {
1534
- ...t,
1535
- default: (K) => {
1536
- let {
1537
- props: {
1538
- class: ee,
1539
- ...te
1540
- }
1541
- } = K;
1542
- const ae = fe(a("input", N({
1543
- ref: o,
1544
- value: i.value,
1545
- onInput: _,
1546
- autofocus: e.autofocus,
1547
- readonly: L.value,
1548
- disabled: F.value,
1549
- name: e.name,
1550
- placeholder: e.placeholder,
1551
- size: 1,
1552
- type: e.type,
1553
- onFocus: b,
1554
- onBlur: c
1555
- }, te, h), null), [[yt("intersect"), {
1556
- handler: m
1557
- }, null, {
1558
- once: !0
1559
- }]]);
1560
- return a(X, null, [e.prefix && a("span", {
1561
- class: "v-text-field__prefix"
1562
- }, [a("span", {
1563
- class: "v-text-field__prefix__text"
1564
- }, [e.prefix])]), t.default ? a("div", {
1565
- class: ee,
1566
- "data-no-activator": ""
1567
- }, [t.default(), ae]) : ht(ae, {
1568
- class: ee
1569
- }), e.suffix && a("span", {
1570
- class: "v-text-field__suffix"
1571
- }, [a("span", {
1572
- class: "v-text-field__suffix__text"
1573
- }, [e.suffix])])]);
1574
- }
1575
- });
1576
- },
1577
- details: S ? (E) => a(X, null, [t.details?.(E), C && a(X, null, [a("span", null, null), a(qt, {
1578
- active: e.persistentCounter || l.value,
1579
- value: u.value,
1580
- max: f.value
1581
- }, t.counter)])]) : void 0
1582
- });
1583
- }), Lt({}, k, y, o);
1584
- }
1585
- }), ca = { class: "fill-height fill-width align-center justify-center" }, va = {
1586
- key: 0,
1587
- class: "fill-height fill-width"
1588
- }, Va = {
1589
- __name: "EodashDatePicker",
1590
- props: {
1591
- inline: {
1592
- type: Boolean
1593
- }
1594
- },
1595
- setup(e) {
1596
- const n = e, s = v({
1597
- get() {
1598
- return n.inline ? ne.value.split("T")[0] : new Date(ne.value) ?? /* @__PURE__ */ new Date();
1599
- },
1600
- /** @param {Date | string} updatedDate */
1601
- set(l) {
1602
- n.inline && (l = new Date(l)), l instanceof Date && !isNaN(l) ? ne.value = new Date(l.getTime() - l.getTimezoneOffset() * 6e4).toISOString() : ne.value = (/* @__PURE__ */ new Date()).toISOString();
1603
- }
1604
- }), r = O(null), t = O(), i = O();
1605
- return de(() => {
1606
- const l = r.value?.$el.parentElement?.parentElement;
1607
- t.value = l?.clientWidth ? l.clientWidth + "px" : void 0, i.value = l?.clientHeight ? l.clientHeight + "px" : void 0;
1608
- }), (l, d) => (re(), ge("span", ca, [
1609
- e.inline ? (re(), ge("div", va, [
1610
- a(da, {
1611
- ref: "inlineDatePicker",
1612
- "base-color": "primary",
1613
- class: "fill-height fill-width pa-2 align-center",
1614
- type: "date",
1615
- "bg-color": "surface",
1616
- color: "primary",
1617
- density: "comfortable",
1618
- label: "Select Date",
1619
- modelValue: s.value,
1620
- "onUpdate:modelValue": d[0] || (d[0] = (c) => s.value = c),
1621
- variant: "plain",
1622
- "hide-details": ""
1623
- }, null, 8, ["modelValue"])
1624
- ])) : (re(), gt(Jt, {
1625
- key: 1,
1626
- ref_key: "datePicker",
1627
- ref: r,
1628
- width: t.value,
1629
- height: i.value,
1630
- "hide-header": "",
1631
- modelValue: s.value,
1632
- "onUpdate:modelValue": d[1] || (d[1] = (c) => s.value = c),
1633
- color: "primary",
1634
- "bg-color": "surface",
1635
- location: "center",
1636
- class: "overflow-auto fill-height fill-width",
1637
- position: "relative",
1638
- "show-adjacent-months": ""
1639
- }, null, 8, ["width", "height", "modelValue"]))
1640
- ]));
1641
- }
1642
- };
1643
- export {
1644
- Va as default
1645
- };