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

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 (80) hide show
  1. package/README.md +31 -7
  2. package/core/client/App.vue +6 -7
  3. package/core/client/SuspensedDashboard.ce.vue +59 -45
  4. package/core/client/asWebComponent.d.ts +10 -5
  5. package/core/client/asWebComponent.js +6 -6
  6. package/core/client/components/DashboardLayout.vue +63 -21
  7. package/core/client/components/DynamicWebComponent.vue +44 -44
  8. package/core/client/components/ErrorAlert.vue +24 -7
  9. package/core/client/components/Footer.vue +34 -15
  10. package/core/client/components/Header.vue +10 -5
  11. package/core/client/components/IframeWrapper.vue +4 -4
  12. package/core/client/components/Loading.vue +17 -18
  13. package/core/client/components/MobileLayout.vue +82 -29
  14. package/core/client/composables/DefineEodash.js +38 -28
  15. package/core/client/composables/DefineWidgets.js +105 -79
  16. package/core/client/composables/index.js +43 -141
  17. package/core/client/eodash.js +46 -39
  18. package/core/client/main.js +2 -2
  19. package/core/client/plugins/index.js +11 -9
  20. package/core/client/plugins/vuetify.js +9 -10
  21. package/core/client/render.js +4 -5
  22. package/core/client/store/States.js +8 -13
  23. package/core/client/store/index.js +14 -11
  24. package/core/client/store/stac.js +51 -37
  25. package/core/client/types.d.ts +173 -248
  26. package/core/client/utils/eodashSTAC.js +151 -66
  27. package/core/client/utils/helpers.js +18 -20
  28. package/core/client/utils/index.js +25 -14
  29. package/core/client/utils/keys.js +2 -2
  30. package/core/client/views/Dashboard.vue +70 -42
  31. package/core/client/vite-env.d.ts +19 -17
  32. package/dist/client/DashboardLayout-BuDcv6LM.js +156 -0
  33. package/dist/client/{DynamicWebComponent-C4Hotc4H.js → DynamicWebComponent-BEP4rVce.js} +7 -7
  34. package/dist/client/EodashDatePicker-oFb1zt5E.js +1211 -0
  35. package/dist/client/EodashItemFilter-BElmgrST.js +63 -0
  36. package/dist/client/{EodashMap-CGrQjZ1P.js → EodashMap-DXyOgcEd.js} +11333 -14025
  37. package/dist/client/Footer-CoPx6UXQ.js +115 -0
  38. package/dist/client/Header-C-zX31Ys.js +635 -0
  39. package/dist/client/{IframeWrapper-Cg3GMmfW.js → IframeWrapper-2w2ye0zM.js} +4 -4
  40. package/dist/client/MobileLayout-C9OVcP12.js +945 -0
  41. package/dist/client/{VMain-BHYlmRic.js → VMain-Dm43jd43.js} +8 -8
  42. package/dist/client/{WidgetsContainer-dje9QSk0.js → WidgetsContainer-BS87sLqk.js} +12 -5
  43. package/dist/client/asWebComponent-CpQUVi2N.js +20135 -0
  44. package/dist/client/{basedecoder-Qm25PwVp-CHo5Pomv.js → basedecoder-DHcBySSe-BmCFNFnw.js} +5 -6
  45. package/dist/client/{decoder-HRvnjnEI-BQ2rajuJ.js → decoder-CP4lv0Kb-BHrv68IA.js} +1 -1
  46. package/dist/client/deflate-BXt-9JA_-CWfClgpK.js +10 -0
  47. package/dist/client/eo-dash.js +3 -3
  48. package/dist/client/eodashSTAC-Q7kbX1Gy.js +2788 -0
  49. package/dist/client/{eox-itemfilter-DcQkRD2l.js → eox-itemfilter-TaBxgqq_.js} +1002 -974
  50. package/dist/client/{eox-map-C3DL31fp.js → eox-map-L7abwKTR.js} +5677 -5695
  51. package/dist/client/forwardRefs-BVFQ82G4.js +183 -0
  52. package/dist/client/{index-CaDDfJYE.js → index-dOzyv_xR.js} +43 -74
  53. package/dist/client/{jpeg-DNfUpLwy-Fjan-04T.js → jpeg-BAgeD1d3-oeHbFPUL.js} +5 -6
  54. package/dist/client/{lerc-_E46UbWQ-Beu35ovS.js → lerc-DzVumYtB-rm1Xco54.js} +5 -7
  55. package/dist/client/{lzw-BOMhmEDy-Dboc93VO.js → lzw-LAGDNbSC-DkP96qO9.js} +1 -1
  56. package/dist/client/{packbits-DaUD6MLm-Bu1PoTGa.js → packbits-BlDR4Kj5-C66n1-zr.js} +1 -1
  57. package/dist/client/{pako.esm-C3kYPGGQ-BMki8cQY.js → pako.esm-CB1uQYY0-DB0PYm1P.js} +6 -12
  58. package/dist/client/{raw-CcGKjn8q-DFOt-i8n.js → raw-CMGvRjfu-BRi6E4i1.js} +1 -1
  59. package/dist/client/{ssrBoot-Dd7m-btU.js → ssrBoot-L9KejErM.js} +3 -3
  60. package/dist/client/style.css +2 -2
  61. package/dist/client/transition-DCePIwYR.js +34 -0
  62. package/dist/client/{webfontloader-CyOFAuFB.js → webfontloader-qotgY98I.js} +56 -92
  63. package/dist/client/{webimage-D2c098k3-DLj1LQxB.js → webimage-BM_pbLN3-L2cGWK5l.js} +1 -1
  64. package/dist/node/cli.js +3 -3
  65. package/dist/node/types.d.ts +32 -38
  66. package/package.json +13 -14
  67. package/widgets/EodashDatePicker.vue +145 -41
  68. package/widgets/EodashItemFilter.vue +41 -22
  69. package/widgets/EodashMap.vue +87 -20
  70. package/widgets/WidgetsContainer.vue +45 -27
  71. package/dist/client/DashboardLayout-ZaSRMD1M.js +0 -149
  72. package/dist/client/EodashDatePicker-C4kKjxKy.js +0 -1653
  73. package/dist/client/EodashItemFilter-cBHC0YEM.js +0 -51
  74. package/dist/client/Footer-pS636dEP.js +0 -118
  75. package/dist/client/Header-DQuaLdjl.js +0 -605
  76. package/dist/client/MobileLayout-BLXFBWI_.js +0 -987
  77. package/dist/client/asWebComponent-Bvb3xkxI.js +0 -13311
  78. package/dist/client/deflate-Be2Arps5-hDqMz3RA.js +0 -10
  79. package/dist/client/forwardRefs-Bxeu9Obx.js +0 -142
  80. package/dist/client/index-DlNICb3T.js +0 -34
@@ -0,0 +1,945 @@
1
+ import { k as Ie, p as R, o as Pe, m as Xe, g as $, u as Ye, r as I, c as y, a as M, V as G, b as v, F as O, d as z, e as ie, f as ue, h as Ge, i as De, j as pe, l as Ue, n as Be, s as E, w as Ee, q as je, t as q, v as Ne, x as re, y as ze, z as qe, A as Ke, B as le, C as ae, D as Qe, I as fe, E as Je, G as Ze, H as et, J as me, K as tt, L as he, M as ge, N as nt, O as ot, P as st, Q as lt, R as W, S as at, T as it, _ as ut, U as rt, W as ct, X as be, Y as dt, Z as vt, $ as C, a0 as A, a1 as F, a2 as ye, a3 as X, a4 as Se, a5 as se, a6 as Y, a7 as we, a8 as xe, a9 as ft, aa as mt } from "./asWebComponent-CpQUVi2N.js";
2
+ import { f as ht, a as gt, s as bt, m as yt, u as St, b as wt } from "./forwardRefs-BVFQ82G4.js";
3
+ import { u as xt } from "./ssrBoot-L9KejErM.js";
4
+ import { M as kt } from "./transition-DCePIwYR.js";
5
+ import { V as ke } from "./index-dOzyv_xR.js";
6
+ import { V as Tt } from "./VMain-Dm43jd43.js";
7
+ const Vt = (e) => {
8
+ const {
9
+ touchstartX: n,
10
+ touchendX: s,
11
+ touchstartY: t,
12
+ touchendY: l
13
+ } = e, u = 0.5, o = 16;
14
+ e.offsetX = s - n, e.offsetY = l - t, Math.abs(e.offsetY) < u * Math.abs(e.offsetX) && (e.left && s < n - o && e.left(e), e.right && s > n + o && e.right(e)), Math.abs(e.offsetX) < u * Math.abs(e.offsetY) && (e.up && l < t - o && e.up(e), e.down && l > t + o && e.down(e));
15
+ };
16
+ function Ct(e, n) {
17
+ const s = e.changedTouches[0];
18
+ n.touchstartX = s.clientX, n.touchstartY = s.clientY, n.start?.({
19
+ originalEvent: e,
20
+ ...n
21
+ });
22
+ }
23
+ function _t(e, n) {
24
+ const s = e.changedTouches[0];
25
+ n.touchendX = s.clientX, n.touchendY = s.clientY, n.end?.({
26
+ originalEvent: e,
27
+ ...n
28
+ }), Vt(n);
29
+ }
30
+ function It(e, n) {
31
+ const s = e.changedTouches[0];
32
+ n.touchmoveX = s.clientX, n.touchmoveY = s.clientY, n.move?.({
33
+ originalEvent: e,
34
+ ...n
35
+ });
36
+ }
37
+ function Pt() {
38
+ let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
39
+ const n = {
40
+ touchstartX: 0,
41
+ touchstartY: 0,
42
+ touchendX: 0,
43
+ touchendY: 0,
44
+ touchmoveX: 0,
45
+ touchmoveY: 0,
46
+ offsetX: 0,
47
+ offsetY: 0,
48
+ left: e.left,
49
+ right: e.right,
50
+ up: e.up,
51
+ down: e.down,
52
+ start: e.start,
53
+ move: e.move,
54
+ end: e.end
55
+ };
56
+ return {
57
+ touchstart: (s) => Ct(s, n),
58
+ touchend: (s) => _t(s, n),
59
+ touchmove: (s) => It(s, n)
60
+ };
61
+ }
62
+ function pt(e, n) {
63
+ const s = n.value, t = s?.parent ? e.parentElement : e, l = s?.options ?? {
64
+ passive: !0
65
+ }, u = n.instance?.$.uid;
66
+ if (!t || !u) return;
67
+ const o = Pt(n.value);
68
+ t._touchHandlers = t._touchHandlers ?? /* @__PURE__ */ Object.create(null), t._touchHandlers[u] = o, Ie(o).forEach((f) => {
69
+ t.addEventListener(f, o[f], l);
70
+ });
71
+ }
72
+ function Bt(e, n) {
73
+ const s = n.value?.parent ? e.parentElement : e, t = n.instance?.$.uid;
74
+ if (!s?._touchHandlers || !t) return;
75
+ const l = s._touchHandlers[t];
76
+ Ie(l).forEach((u) => {
77
+ s.removeEventListener(u, l[u]);
78
+ }), delete s._touchHandlers[t];
79
+ }
80
+ const We = {
81
+ mounted: pt,
82
+ unmounted: Bt
83
+ }, Et = We, ce = Symbol.for("vuetify:v-tabs"), zt = R({
84
+ fixed: Boolean,
85
+ sliderColor: String,
86
+ hideSlider: Boolean,
87
+ direction: {
88
+ type: String,
89
+ default: "horizontal"
90
+ },
91
+ ...Pe(Xe({
92
+ selectedClass: "v-tab--selected",
93
+ variant: "text"
94
+ }), ["active", "block", "flat", "location", "position", "symbol"])
95
+ }, "VTab"), Re = $()({
96
+ name: "VTab",
97
+ props: zt(),
98
+ setup(e, n) {
99
+ let {
100
+ slots: s,
101
+ attrs: t
102
+ } = n;
103
+ const {
104
+ textColorClasses: l,
105
+ textColorStyles: u
106
+ } = Ye(e, "sliderColor"), o = I(), f = I(), r = y(() => e.direction === "horizontal"), h = y(() => o.value?.group?.isSelected.value ?? !1);
107
+ function x(m) {
108
+ let {
109
+ value: a
110
+ } = m;
111
+ if (a) {
112
+ const g = o.value?.$el.parentElement?.querySelector(".v-tab--selected .v-tab__slider"), d = f.value;
113
+ if (!g || !d) return;
114
+ const _ = getComputedStyle(g).color, T = g.getBoundingClientRect(), V = d.getBoundingClientRect(), P = r.value ? "x" : "y", p = r.value ? "X" : "Y", b = r.value ? "right" : "bottom", S = r.value ? "width" : "height", k = T[P], H = V[P], B = k > H ? T[b] - V[b] : T[P] - V[P], K = Math.sign(B) > 0 ? r.value ? "right" : "bottom" : Math.sign(B) < 0 ? r.value ? "left" : "top" : "center", Q = (Math.abs(B) + (Math.sign(B) < 0 ? T[S] : V[S])) / Math.max(T[S], V[S]) || 0, j = T[S] / V[S] || 0, N = 1.5;
115
+ gt(d, {
116
+ backgroundColor: [_, "currentcolor"],
117
+ transform: [`translate${p}(${B}px) scale${p}(${j})`, `translate${p}(${B / N}px) scale${p}(${(Q - 1) / N + 1})`, "none"],
118
+ transformOrigin: Array(3).fill(K)
119
+ }, {
120
+ duration: 225,
121
+ easing: bt
122
+ });
123
+ }
124
+ }
125
+ return M(() => {
126
+ const m = G.filterProps(e);
127
+ return v(G, z({
128
+ symbol: ce,
129
+ ref: o,
130
+ class: ["v-tab", e.class],
131
+ style: e.style,
132
+ tabindex: h.value ? 0 : -1,
133
+ role: "tab",
134
+ "aria-selected": String(h.value),
135
+ active: !1
136
+ }, m, t, {
137
+ block: e.fixed,
138
+ maxWidth: e.fixed ? 300 : void 0,
139
+ "onGroup:selected": x
140
+ }), {
141
+ ...s,
142
+ default: () => v(O, null, [s.default?.() ?? e.text, !e.hideSlider && v("div", {
143
+ ref: f,
144
+ class: ["v-tab__slider", l.value],
145
+ style: u.value
146
+ }, null)])
147
+ });
148
+ }), ht({}, o);
149
+ }
150
+ }), $e = Symbol.for("vuetify:v-window"), Me = Symbol.for("vuetify:v-window-group"), He = R({
151
+ continuous: Boolean,
152
+ nextIcon: {
153
+ type: [Boolean, String, Function, Object],
154
+ default: "$next"
155
+ },
156
+ prevIcon: {
157
+ type: [Boolean, String, Function, Object],
158
+ default: "$prev"
159
+ },
160
+ reverse: Boolean,
161
+ showArrows: {
162
+ type: [Boolean, String],
163
+ validator: (e) => typeof e == "boolean" || e === "hover"
164
+ },
165
+ touch: {
166
+ type: [Object, Boolean],
167
+ default: void 0
168
+ },
169
+ direction: {
170
+ type: String,
171
+ default: "horizontal"
172
+ },
173
+ modelValue: null,
174
+ disabled: Boolean,
175
+ selectedClass: {
176
+ type: String,
177
+ default: "v-window-item--active"
178
+ },
179
+ // TODO: mandatory should probably not be exposed but do this for now
180
+ mandatory: {
181
+ type: [Boolean, String],
182
+ default: "force"
183
+ },
184
+ ...ie(),
185
+ ...ue(),
186
+ ...Ge()
187
+ }, "VWindow"), Te = $()({
188
+ name: "VWindow",
189
+ directives: {
190
+ Touch: We
191
+ },
192
+ props: He(),
193
+ emits: {
194
+ "update:modelValue": (e) => !0
195
+ },
196
+ setup(e, n) {
197
+ let {
198
+ slots: s
199
+ } = n;
200
+ const {
201
+ themeClasses: t
202
+ } = De(e), {
203
+ isRtl: l
204
+ } = pe(), {
205
+ t: u
206
+ } = Ue(), o = Be(e, Me), f = I(), r = y(() => l.value ? !e.reverse : e.reverse), h = E(!1), x = y(() => {
207
+ const b = e.direction === "vertical" ? "y" : "x", k = (r.value ? !h.value : h.value) ? "-reverse" : "";
208
+ return `v-window-${b}${k}-transition`;
209
+ }), m = E(0), a = I(void 0), g = y(() => o.items.value.findIndex((b) => o.selected.value.includes(b.id)));
210
+ Ee(g, (b, S) => {
211
+ const k = o.items.value.length, H = k - 1;
212
+ k <= 2 ? h.value = b < S : b === H && S === 0 ? h.value = !0 : b === 0 && S === H ? h.value = !1 : h.value = b < S;
213
+ }), je($e, {
214
+ transition: x,
215
+ isReversed: h,
216
+ transitionCount: m,
217
+ transitionHeight: a,
218
+ rootRef: f
219
+ });
220
+ const d = y(() => e.continuous || g.value !== 0), _ = y(() => e.continuous || g.value !== o.items.value.length - 1);
221
+ function T() {
222
+ d.value && o.prev();
223
+ }
224
+ function V() {
225
+ _.value && o.next();
226
+ }
227
+ const P = y(() => {
228
+ const b = [], S = {
229
+ icon: l.value ? e.nextIcon : e.prevIcon,
230
+ class: `v-window__${r.value ? "right" : "left"}`,
231
+ onClick: o.prev,
232
+ "aria-label": u("$vuetify.carousel.prev")
233
+ };
234
+ b.push(d.value ? s.prev ? s.prev({
235
+ props: S
236
+ }) : v(G, S, null) : v("div", null, null));
237
+ const k = {
238
+ icon: l.value ? e.prevIcon : e.nextIcon,
239
+ class: `v-window__${r.value ? "left" : "right"}`,
240
+ onClick: o.next,
241
+ "aria-label": u("$vuetify.carousel.next")
242
+ };
243
+ return b.push(_.value ? s.next ? s.next({
244
+ props: k
245
+ }) : v(G, k, null) : v("div", null, null)), b;
246
+ }), p = y(() => e.touch === !1 ? e.touch : {
247
+ ...{
248
+ left: () => {
249
+ r.value ? T() : V();
250
+ },
251
+ right: () => {
252
+ r.value ? V() : T();
253
+ },
254
+ start: (S) => {
255
+ let {
256
+ originalEvent: k
257
+ } = S;
258
+ k.stopPropagation();
259
+ }
260
+ },
261
+ ...e.touch === !0 ? {} : e.touch
262
+ });
263
+ return M(() => q(v(e.tag, {
264
+ ref: f,
265
+ class: ["v-window", {
266
+ "v-window--show-arrows-on-hover": e.showArrows === "hover"
267
+ }, t.value, e.class],
268
+ style: e.style
269
+ }, {
270
+ default: () => [v("div", {
271
+ class: "v-window__container",
272
+ style: {
273
+ height: a.value
274
+ }
275
+ }, [s.default?.({
276
+ group: o
277
+ }), e.showArrows !== !1 && v("div", {
278
+ class: "v-window__controls"
279
+ }, [P.value])]), s.additional?.({
280
+ group: o
281
+ })]
282
+ }), [[Ne("touch"), p.value]])), {
283
+ group: o
284
+ };
285
+ }
286
+ }), Wt = R({
287
+ ...Pe(He(), ["continuous", "nextIcon", "prevIcon", "showArrows", "touch", "mandatory"])
288
+ }, "VTabsWindow"), Rt = $()({
289
+ name: "VTabsWindow",
290
+ props: Wt(),
291
+ emits: {
292
+ "update:modelValue": (e) => !0
293
+ },
294
+ setup(e, n) {
295
+ let {
296
+ slots: s
297
+ } = n;
298
+ const t = re(ce, null), l = ze(e, "modelValue"), u = y({
299
+ get() {
300
+ return l.value != null || !t ? l.value : t.items.value.find((o) => t.selected.value.includes(o.id))?.value;
301
+ },
302
+ set(o) {
303
+ l.value = o;
304
+ }
305
+ });
306
+ return M(() => {
307
+ const o = Te.filterProps(e);
308
+ return v(Te, z({
309
+ _as: "VTabsWindow"
310
+ }, o, {
311
+ modelValue: u.value,
312
+ "onUpdate:modelValue": (f) => u.value = f,
313
+ class: ["v-tabs-window", e.class],
314
+ style: e.style,
315
+ mandatory: !1,
316
+ touch: !1
317
+ }), s);
318
+ }), {};
319
+ }
320
+ }), Ae = R({
321
+ reverseTransition: {
322
+ type: [Boolean, String],
323
+ default: void 0
324
+ },
325
+ transition: {
326
+ type: [Boolean, String],
327
+ default: void 0
328
+ },
329
+ ...ie(),
330
+ ...qe(),
331
+ ...yt()
332
+ }, "VWindowItem"), Ve = $()({
333
+ name: "VWindowItem",
334
+ directives: {
335
+ Touch: Et
336
+ },
337
+ props: Ae(),
338
+ emits: {
339
+ "group:selected": (e) => !0
340
+ },
341
+ setup(e, n) {
342
+ let {
343
+ slots: s
344
+ } = n;
345
+ const t = re($e), l = Ke(e, Me), {
346
+ isBooted: u
347
+ } = xt();
348
+ if (!t || !l) throw new Error("[Vuetify] VWindowItem must be used inside VWindow");
349
+ const o = E(!1), f = y(() => u.value && (t.isReversed.value ? e.reverseTransition !== !1 : e.transition !== !1));
350
+ function r() {
351
+ !o.value || !t || (o.value = !1, t.transitionCount.value > 0 && (t.transitionCount.value -= 1, t.transitionCount.value === 0 && (t.transitionHeight.value = void 0)));
352
+ }
353
+ function h() {
354
+ o.value || !t || (o.value = !0, t.transitionCount.value === 0 && (t.transitionHeight.value = ae(t.rootRef.value?.clientHeight)), t.transitionCount.value += 1);
355
+ }
356
+ function x() {
357
+ r();
358
+ }
359
+ function m(d) {
360
+ o.value && Qe(() => {
361
+ !f.value || !o.value || !t || (t.transitionHeight.value = ae(d.clientHeight));
362
+ });
363
+ }
364
+ const a = y(() => {
365
+ const d = t.isReversed.value ? e.reverseTransition : e.transition;
366
+ return f.value ? {
367
+ name: typeof d != "string" ? t.transition.value : d,
368
+ onBeforeEnter: h,
369
+ onAfterEnter: r,
370
+ onEnterCancelled: x,
371
+ onBeforeLeave: h,
372
+ onAfterLeave: r,
373
+ onLeaveCancelled: x,
374
+ onEnter: m
375
+ } : !1;
376
+ }), {
377
+ hasContent: g
378
+ } = St(e, l.isSelected);
379
+ return M(() => v(kt, {
380
+ transition: a.value,
381
+ disabled: !u.value
382
+ }, {
383
+ default: () => [q(v("div", {
384
+ class: ["v-window-item", l.selectedClass.value, e.class],
385
+ style: e.style
386
+ }, [g.value && s.default?.()]), [[le, l.isSelected.value]])]
387
+ })), {
388
+ groupItem: l
389
+ };
390
+ }
391
+ }), $t = R({
392
+ ...Ae()
393
+ }, "VTabsWindowItem"), Mt = $()({
394
+ name: "VTabsWindowItem",
395
+ props: $t(),
396
+ setup(e, n) {
397
+ let {
398
+ slots: s
399
+ } = n;
400
+ return M(() => {
401
+ const t = Ve.filterProps(e);
402
+ return v(Ve, z({
403
+ _as: "VTabsWindowItem"
404
+ }, t, {
405
+ class: ["v-tabs-window-item", e.class],
406
+ style: e.style
407
+ }), s);
408
+ }), {};
409
+ }
410
+ });
411
+ function Ht(e) {
412
+ let {
413
+ selectedElement: n,
414
+ containerElement: s,
415
+ isRtl: t,
416
+ isHorizontal: l
417
+ } = e;
418
+ const u = D(l, s), o = Fe(l, t, s), f = D(l, n), r = Oe(l, n), h = f * 0.4;
419
+ return o > r ? r - h : o + u < r + f ? r - u + f + h : o;
420
+ }
421
+ function At(e) {
422
+ let {
423
+ selectedElement: n,
424
+ containerElement: s,
425
+ isHorizontal: t
426
+ } = e;
427
+ const l = D(t, s), u = Oe(t, n), o = D(t, n);
428
+ return u - l / 2 + o / 2;
429
+ }
430
+ function Ce(e, n) {
431
+ return n?.[e ? "scrollWidth" : "scrollHeight"] || 0;
432
+ }
433
+ function Ft(e, n) {
434
+ return n?.[e ? "clientWidth" : "clientHeight"] || 0;
435
+ }
436
+ function Fe(e, n, s) {
437
+ if (!s)
438
+ return 0;
439
+ const {
440
+ scrollLeft: t,
441
+ offsetWidth: l,
442
+ scrollWidth: u
443
+ } = s;
444
+ return e ? n ? u - l + t : t : s.scrollTop;
445
+ }
446
+ function D(e, n) {
447
+ return n?.[e ? "offsetWidth" : "offsetHeight"] || 0;
448
+ }
449
+ function Oe(e, n) {
450
+ return n?.[e ? "offsetLeft" : "offsetTop"] || 0;
451
+ }
452
+ const Ot = Symbol.for("vuetify:v-slide-group"), Le = R({
453
+ centerActive: Boolean,
454
+ direction: {
455
+ type: String,
456
+ default: "horizontal"
457
+ },
458
+ symbol: {
459
+ type: null,
460
+ default: Ot
461
+ },
462
+ nextIcon: {
463
+ type: fe,
464
+ default: "$next"
465
+ },
466
+ prevIcon: {
467
+ type: fe,
468
+ default: "$prev"
469
+ },
470
+ showArrows: {
471
+ type: [Boolean, String],
472
+ validator: (e) => typeof e == "boolean" || ["always", "desktop", "mobile"].includes(e)
473
+ },
474
+ ...ie(),
475
+ ...Je({
476
+ mobile: null
477
+ }),
478
+ ...ue(),
479
+ ...Ze({
480
+ selectedClass: "v-slide-group-item--active"
481
+ })
482
+ }, "VSlideGroup"), _e = $()({
483
+ name: "VSlideGroup",
484
+ props: Le(),
485
+ emits: {
486
+ "update:modelValue": (e) => !0
487
+ },
488
+ setup(e, n) {
489
+ let {
490
+ slots: s
491
+ } = n;
492
+ const {
493
+ isRtl: t
494
+ } = pe(), {
495
+ displayClasses: l,
496
+ mobile: u
497
+ } = et(e), o = Be(e, e.symbol), f = E(!1), r = E(0), h = E(0), x = E(0), m = y(() => e.direction === "horizontal"), {
498
+ resizeRef: a,
499
+ contentRect: g
500
+ } = me(), {
501
+ resizeRef: d,
502
+ contentRect: _
503
+ } = me(), T = tt(), V = y(() => ({
504
+ container: a.el,
505
+ duration: 200,
506
+ easing: "easeOutQuart"
507
+ })), P = y(() => o.selected.value.length ? o.items.value.findIndex((i) => i.id === o.selected.value[0]) : -1), p = y(() => o.selected.value.length ? o.items.value.findIndex((i) => i.id === o.selected.value[o.selected.value.length - 1]) : -1);
508
+ if (he) {
509
+ let i = -1;
510
+ Ee(() => [o.selected.value, g.value, _.value, m.value], () => {
511
+ cancelAnimationFrame(i), i = requestAnimationFrame(() => {
512
+ if (g.value && _.value) {
513
+ const c = m.value ? "width" : "height";
514
+ h.value = g.value[c], x.value = _.value[c], f.value = h.value + 1 < x.value;
515
+ }
516
+ if (P.value >= 0 && d.el) {
517
+ const c = d.el.children[p.value];
518
+ S(c, e.centerActive);
519
+ }
520
+ });
521
+ });
522
+ }
523
+ const b = E(!1);
524
+ function S(i, c) {
525
+ let w = 0;
526
+ c ? w = At({
527
+ containerElement: a.el,
528
+ isHorizontal: m.value,
529
+ selectedElement: i
530
+ }) : w = Ht({
531
+ containerElement: a.el,
532
+ isHorizontal: m.value,
533
+ isRtl: t.value,
534
+ selectedElement: i
535
+ }), k(w);
536
+ }
537
+ function k(i) {
538
+ if (!he || !a.el) return;
539
+ const c = D(m.value, a.el), w = Fe(m.value, t.value, a.el);
540
+ if (!(Ce(m.value, a.el) <= c || // Prevent scrolling by only a couple of pixels, which doesn't look smooth
541
+ Math.abs(i - w) < 16)) {
542
+ if (m.value && t.value && a.el) {
543
+ const {
544
+ scrollWidth: ne,
545
+ offsetWidth: oe
546
+ } = a.el;
547
+ i = ne - oe - i;
548
+ }
549
+ m.value ? T.horizontal(i, V.value) : T(i, V.value);
550
+ }
551
+ }
552
+ function H(i) {
553
+ const {
554
+ scrollTop: c,
555
+ scrollLeft: w
556
+ } = i.target;
557
+ r.value = m.value ? w : c;
558
+ }
559
+ function B(i) {
560
+ if (b.value = !0, !(!f.value || !d.el)) {
561
+ for (const c of i.composedPath())
562
+ for (const w of d.el.children)
563
+ if (w === c) {
564
+ S(w);
565
+ return;
566
+ }
567
+ }
568
+ }
569
+ function K(i) {
570
+ b.value = !1;
571
+ }
572
+ let U = !1;
573
+ function Q(i) {
574
+ !U && !b.value && !(i.relatedTarget && d.el?.contains(i.relatedTarget)) && L(), U = !1;
575
+ }
576
+ function j() {
577
+ U = !0;
578
+ }
579
+ function N(i) {
580
+ if (!d.el) return;
581
+ function c(w) {
582
+ i.preventDefault(), L(w);
583
+ }
584
+ m.value ? i.key === "ArrowRight" ? c(t.value ? "prev" : "next") : i.key === "ArrowLeft" && c(t.value ? "next" : "prev") : i.key === "ArrowDown" ? c("next") : i.key === "ArrowUp" && c("prev"), i.key === "Home" ? c("first") : i.key === "End" && c("last");
585
+ }
586
+ function L(i) {
587
+ if (!d.el) return;
588
+ let c;
589
+ if (!i)
590
+ c = nt(d.el)[0];
591
+ else if (i === "next") {
592
+ if (c = d.el.querySelector(":focus")?.nextElementSibling, !c) return L("first");
593
+ } else if (i === "prev") {
594
+ if (c = d.el.querySelector(":focus")?.previousElementSibling, !c) return L("last");
595
+ } else i === "first" ? c = d.el.firstElementChild : i === "last" && (c = d.el.lastElementChild);
596
+ c && c.focus({
597
+ preventScroll: !0
598
+ });
599
+ }
600
+ function J(i) {
601
+ const c = m.value && t.value ? -1 : 1, w = (i === "prev" ? -c : c) * h.value;
602
+ let te = r.value + w;
603
+ if (m.value && t.value && a.el) {
604
+ const {
605
+ scrollWidth: ne,
606
+ offsetWidth: oe
607
+ } = a.el;
608
+ te += ne - oe;
609
+ }
610
+ k(te);
611
+ }
612
+ const Z = y(() => ({
613
+ next: o.next,
614
+ prev: o.prev,
615
+ select: o.select,
616
+ isSelected: o.isSelected
617
+ })), ee = y(() => {
618
+ switch (e.showArrows) {
619
+ case "always":
620
+ return !0;
621
+ case "desktop":
622
+ return !u.value;
623
+ case !0:
624
+ return f.value || Math.abs(r.value) > 0;
625
+ case "mobile":
626
+ return u.value || f.value || Math.abs(r.value) > 0;
627
+ default:
628
+ return !u.value && (f.value || Math.abs(r.value) > 0);
629
+ }
630
+ }), de = y(() => Math.abs(r.value) > 1), ve = y(() => {
631
+ if (!a.value) return !1;
632
+ const i = Ce(m.value, a.el), c = Ft(m.value, a.el);
633
+ return i - c - Math.abs(r.value) > 1;
634
+ });
635
+ return M(() => v(e.tag, {
636
+ class: ["v-slide-group", {
637
+ "v-slide-group--vertical": !m.value,
638
+ "v-slide-group--has-affixes": ee.value,
639
+ "v-slide-group--is-overflowing": f.value
640
+ }, l.value, e.class],
641
+ style: e.style,
642
+ tabindex: b.value || o.selected.value.length ? -1 : 0,
643
+ onFocus: Q
644
+ }, {
645
+ default: () => [ee.value && v("div", {
646
+ key: "prev",
647
+ class: ["v-slide-group__prev", {
648
+ "v-slide-group__prev--disabled": !de.value
649
+ }],
650
+ onMousedown: j,
651
+ onClick: () => de.value && J("prev")
652
+ }, [s.prev?.(Z.value) ?? v(ke, null, {
653
+ default: () => [v(ge, {
654
+ icon: t.value ? e.nextIcon : e.prevIcon
655
+ }, null)]
656
+ })]), v("div", {
657
+ key: "container",
658
+ ref: a,
659
+ class: "v-slide-group__container",
660
+ onScroll: H
661
+ }, [v("div", {
662
+ ref: d,
663
+ class: "v-slide-group__content",
664
+ onFocusin: B,
665
+ onFocusout: K,
666
+ onKeydown: N
667
+ }, [s.default?.(Z.value)])]), ee.value && v("div", {
668
+ key: "next",
669
+ class: ["v-slide-group__next", {
670
+ "v-slide-group__next--disabled": !ve.value
671
+ }],
672
+ onMousedown: j,
673
+ onClick: () => ve.value && J("next")
674
+ }, [s.next?.(Z.value) ?? v(ke, null, {
675
+ default: () => [v(ge, {
676
+ icon: t.value ? e.prevIcon : e.nextIcon
677
+ }, null)]
678
+ })])]
679
+ })), {
680
+ selected: o.selected,
681
+ scrollTo: J,
682
+ scrollOffset: r,
683
+ focus: L
684
+ };
685
+ }
686
+ });
687
+ function Lt(e) {
688
+ return e ? e.map((n) => it(n) ? n : {
689
+ text: n,
690
+ value: n
691
+ }) : [];
692
+ }
693
+ const Xt = R({
694
+ alignTabs: {
695
+ type: String,
696
+ default: "start"
697
+ },
698
+ color: String,
699
+ fixedTabs: Boolean,
700
+ items: {
701
+ type: Array,
702
+ default: () => []
703
+ },
704
+ stacked: Boolean,
705
+ bgColor: String,
706
+ grow: Boolean,
707
+ height: {
708
+ type: [Number, String],
709
+ default: void 0
710
+ },
711
+ hideSlider: Boolean,
712
+ sliderColor: String,
713
+ ...Le({
714
+ mandatory: "force",
715
+ selectedClass: "v-tab-item--selected"
716
+ }),
717
+ ...ot(),
718
+ ...ue()
719
+ }, "VTabs"), Yt = $()({
720
+ name: "VTabs",
721
+ props: Xt(),
722
+ emits: {
723
+ "update:modelValue": (e) => !0
724
+ },
725
+ setup(e, n) {
726
+ let {
727
+ attrs: s,
728
+ slots: t
729
+ } = n;
730
+ const l = ze(e, "modelValue"), u = y(() => Lt(e.items)), {
731
+ densityClasses: o
732
+ } = st(e), {
733
+ backgroundColorClasses: f,
734
+ backgroundColorStyles: r
735
+ } = lt(W(e, "bgColor")), {
736
+ scopeId: h
737
+ } = wt();
738
+ return at({
739
+ VTab: {
740
+ color: W(e, "color"),
741
+ direction: W(e, "direction"),
742
+ stacked: W(e, "stacked"),
743
+ fixed: W(e, "fixedTabs"),
744
+ sliderColor: W(e, "sliderColor"),
745
+ hideSlider: W(e, "hideSlider")
746
+ }
747
+ }), M(() => {
748
+ const x = _e.filterProps(e), m = !!(t.window || e.items.length > 0);
749
+ return v(O, null, [v(_e, z(x, {
750
+ modelValue: l.value,
751
+ "onUpdate:modelValue": (a) => l.value = a,
752
+ class: ["v-tabs", `v-tabs--${e.direction}`, `v-tabs--align-tabs-${e.alignTabs}`, {
753
+ "v-tabs--fixed-tabs": e.fixedTabs,
754
+ "v-tabs--grow": e.grow,
755
+ "v-tabs--stacked": e.stacked
756
+ }, o.value, f.value, e.class],
757
+ style: [{
758
+ "--v-tabs-height": ae(e.height)
759
+ }, r.value, e.style],
760
+ role: "tablist",
761
+ symbol: ce
762
+ }, h, s), {
763
+ default: () => [t.default?.() ?? u.value.map((a) => t.tab?.({
764
+ item: a
765
+ }) ?? v(Re, z(a, {
766
+ key: a.text,
767
+ value: a.value
768
+ }), {
769
+ default: t[`tab.${a.value}`] ? () => t[`tab.${a.value}`]?.({
770
+ item: a
771
+ }) : void 0
772
+ }))]
773
+ }), m && v(Rt, z({
774
+ modelValue: l.value,
775
+ "onUpdate:modelValue": (a) => l.value = a,
776
+ key: "tabs-window"
777
+ }, h), {
778
+ default: () => [u.value.map((a) => t.item?.({
779
+ item: a
780
+ }) ?? v(Mt, {
781
+ value: a.value
782
+ }, {
783
+ default: () => t[`item.${a.value}`]?.({
784
+ item: a
785
+ })
786
+ })), t.window?.()]
787
+ })]);
788
+ }), {};
789
+ }
790
+ }), Gt = {
791
+ key: 0,
792
+ id: "overlay",
793
+ class: "pa-2 panel"
794
+ }, Dt = { class: "component-container" }, Ut = {
795
+ __name: "MobileLayout",
796
+ setup(e) {
797
+ rt((m) => ({
798
+ a5e6ca1c: h.value,
799
+ "369f1584": r.value,
800
+ a7dda310: x.value
801
+ }));
802
+ const n = (
803
+ /** @type {import("@/types").Eodash} */
804
+ re(ct)
805
+ ), s = n.template.widgets, t = be(s), [l] = be([n.template?.background]), { mainRect: u } = dt(), o = I(-1), f = I(null), r = I(""), h = I(""), x = I("");
806
+ return vt(() => {
807
+ h.value = u.value.top + "px", x.value = (u.value.bottom || 48) + "px", r.value = u.value.bottom + (f.value?.$el?.clientHeight ?? 0) + "px";
808
+ }), (m, a) => (C(), A(Tt, { class: "overflow-hidden main" }, {
809
+ default: F(() => [
810
+ (C(), A(ye, { suspensible: "" }, {
811
+ default: F(() => [
812
+ X(l).component ? (C(), A(
813
+ Se(X(l).component),
814
+ z({
815
+ key: 0,
816
+ id: "bg-widget"
817
+ }, X(l).props),
818
+ null,
819
+ 16
820
+ /* FULL_PROPS */
821
+ )) : se("v-if", !0)
822
+ ]),
823
+ _: 1
824
+ /* STABLE */
825
+ })),
826
+ (C(!0), Y(
827
+ O,
828
+ null,
829
+ we(X(t), (g, d) => (C(), Y(
830
+ O,
831
+ { key: d },
832
+ [
833
+ g.value.component ? q((C(), Y(
834
+ "div",
835
+ Gt,
836
+ [
837
+ v(G, {
838
+ icon: "",
839
+ variant: "text",
840
+ class: "close-btn",
841
+ onClick: a[0] || (a[0] = (_) => o.value = -1)
842
+ }, {
843
+ default: F(() => [
844
+ xe("✕")
845
+ ]),
846
+ _: 1
847
+ /* STABLE */
848
+ }),
849
+ (C(), A(
850
+ ye,
851
+ { suspensible: "" },
852
+ {
853
+ default: F(() => [
854
+ q(ft(
855
+ "div",
856
+ Dt,
857
+ [
858
+ (C(), A(
859
+ Se(g.value.component),
860
+ z({
861
+ key: g.value.id,
862
+ ref_for: !0
863
+ }, g.value.props),
864
+ null,
865
+ 16
866
+ /* FULL_PROPS */
867
+ ))
868
+ ],
869
+ 512
870
+ /* NEED_PATCH */
871
+ ), [
872
+ [le, o.value === d]
873
+ ])
874
+ ]),
875
+ _: 2
876
+ /* DYNAMIC */
877
+ },
878
+ 1024
879
+ /* DYNAMIC_SLOTS */
880
+ ))
881
+ ],
882
+ 512
883
+ /* NEED_PATCH */
884
+ )), [
885
+ [le, o.value === d]
886
+ ]) : se("v-if", !0)
887
+ ],
888
+ 64
889
+ /* STABLE_FRAGMENT */
890
+ ))),
891
+ 128
892
+ /* KEYED_FRAGMENT */
893
+ )),
894
+ v(Yt, {
895
+ ref_key: "tabs",
896
+ ref: f,
897
+ "align-tabs": "center",
898
+ "bg-color": "surface",
899
+ class: "tabs",
900
+ "show-arrows": "",
901
+ modelValue: o.value,
902
+ "onUpdate:modelValue": a[1] || (a[1] = (g) => o.value = g)
903
+ }, {
904
+ default: F(() => [
905
+ (C(!0), Y(
906
+ O,
907
+ null,
908
+ we(X(t), (g, d) => (C(), Y(
909
+ O,
910
+ { key: d },
911
+ [
912
+ g.value.component ? (C(), A(Re, {
913
+ key: 0,
914
+ value: d
915
+ }, {
916
+ default: F(() => [
917
+ xe(
918
+ mt(g.value.title),
919
+ 1
920
+ /* TEXT */
921
+ )
922
+ ]),
923
+ _: 2
924
+ /* DYNAMIC */
925
+ }, 1032, ["value"])) : se("v-if", !0)
926
+ ],
927
+ 64
928
+ /* STABLE_FRAGMENT */
929
+ ))),
930
+ 128
931
+ /* KEYED_FRAGMENT */
932
+ ))
933
+ ]),
934
+ _: 1
935
+ /* STABLE */
936
+ }, 8, ["modelValue"])
937
+ ]),
938
+ _: 1
939
+ /* STABLE */
940
+ }));
941
+ }
942
+ }, Zt = /* @__PURE__ */ ut(Ut, [["__scopeId", "data-v-a197a171"]]);
943
+ export {
944
+ Zt as default
945
+ };