@eodash/eodash 5.0.0-alpha.2.4 → 5.0.0-alpha.2.5

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