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