@eodash/eodash 5.3.2 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/core/client/composables/DefineEodash.js +3 -1
  2. package/core/client/eodashSTAC/EodashCollection.js +29 -43
  3. package/core/client/eodashSTAC/auth.js +19 -15
  4. package/core/client/eodashSTAC/createLayers.js +318 -163
  5. package/core/client/eodashSTAC/helpers.js +64 -42
  6. package/core/client/eodashSTAC/parquet.js +1 -0
  7. package/core/client/eodashSTAC/triggers.js +7 -6
  8. package/core/client/store/states.js +1 -1
  9. package/core/client/types.ts +15 -9
  10. package/core/client/utils/states.js +32 -0
  11. package/dist/client/{DashboardLayout-BHQnHqWW.js → DashboardLayout-CQOGHPW_.js} +2 -2
  12. package/dist/client/{DynamicWebComponent-B4PdeZ9P.js → DynamicWebComponent-CoLO8FEf.js} +1 -1
  13. package/dist/client/{EodashDatePicker-Ch_AXVas.js → EodashDatePicker-BZeQ6bcu.js} +3 -3
  14. package/dist/client/{EodashItemFilter-lTuzCl08.js → EodashItemFilter-CmZkk7GK.js} +1 -1
  15. package/dist/client/{EodashLayerControl-CBSGRlIi.js → EodashLayerControl-D54fY-bX.js} +2 -2
  16. package/dist/client/{EodashLayoutSwitcher-DdwQYoI4.js → EodashLayoutSwitcher-BCP3FvDb.js} +3 -3
  17. package/dist/client/{EodashMapBtns-B910ylV6.js → EodashMapBtns-D-HulIl1.js} +14 -9
  18. package/dist/client/{EodashStacInfo-CeHGMZ8x.js → EodashStacInfo-BZbmT8vT.js} +1 -1
  19. package/dist/client/{EodashTimeSlider-BApJJK0u.js → EodashTimeSlider-DIcAJr6D.js} +2 -2
  20. package/dist/client/{EodashTools-CJVm0k-Q.js → EodashTools-Cz6X6hsF.js} +4 -4
  21. package/dist/client/{ExportState-NXzNGWYq.js → ExportState-DFVFAgKz.js} +4 -4
  22. package/dist/client/{Footer-DfXUC8IK.js → Footer-DLzQcjkI.js} +1 -1
  23. package/dist/client/{Header-BHgaNMEH.js → Header-_D9Z-zFJ.js} +2 -2
  24. package/dist/client/{MobileLayout-B77RzrNe.js → MobileLayout-3Ko9XSfO.js} +2 -2
  25. package/dist/client/{PopUp-BJwqRDNq.js → PopUp-DwI8V2gW.js} +2 -2
  26. package/dist/client/{ProcessList-BFvV4RvS.js → ProcessList-C9eAg2Sb.js} +20 -8
  27. package/dist/client/{VImg-RGGIQ_yA.js → VImg-COXTnCWE.js} +2 -2
  28. package/dist/client/{VMain-CniQR94B.js → VMain-C74l1bv-.js} +1 -1
  29. package/dist/client/{VTooltip-D5dnTfem.js → VTooltip-BLS-cQ9N.js} +2 -2
  30. package/dist/client/{WidgetsContainer-CvnR4J1T.js → WidgetsContainer-D-VfMRxE.js} +1 -1
  31. package/dist/client/{asWebComponent-Dptqds6-.js → asWebComponent-Bw03Jutr.js} +390 -220
  32. package/dist/client/{async-C1hb39Tc.js → async-D4G-FOIc.js} +13 -3
  33. package/dist/client/eo-dash.js +1 -1
  34. package/dist/client/{forwardRefs-CiSZZEn2.js → forwardRefs-CRMFoNYN.js} +2 -2
  35. package/dist/client/{handling-CZ537GCL.js → handling-DTAhQuPh.js} +94 -10
  36. package/dist/client/{helpers-DoQGyrvY.js → helpers-CsjKHAcK.js} +72 -50
  37. package/dist/client/{index-4sC2BIcK.js → index-BHilH1qx.js} +17 -13
  38. package/dist/client/{index-wcTqj0PZ.js → index-BIcmbjr0.js} +55 -16
  39. package/dist/client/{index--uKz-mt4.js → index-BoCcZ0l4.js} +3 -3
  40. package/dist/client/{index-DTxo2ysK.js → index-DEmHaCL3.js} +2 -2
  41. package/dist/client/templates.js +6 -2
  42. package/dist/client/{transition-CFfv5MCB.js → transition-6MJLK-_H.js} +1 -1
  43. package/dist/types/core/client/composables/DefineEodash.d.ts +1 -1
  44. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +28 -11
  45. package/dist/types/core/client/eodashSTAC/auth.d.ts +5 -5
  46. package/dist/types/core/client/eodashSTAC/createLayers.d.ts +30 -23
  47. package/dist/types/core/client/eodashSTAC/helpers.d.ts +19 -4
  48. package/dist/types/core/client/types.d.ts +2 -1
  49. package/dist/types/core/client/utils/states.d.ts +28 -0
  50. package/dist/types/templates/index.d.ts +1 -0
  51. package/dist/types/widgets/EodashMap/EodashMapBtns.vue.d.ts +2 -0
  52. package/dist/types/widgets/EodashMap/index.vue.d.ts +2 -0
  53. package/dist/types/widgets/EodashProcess/methods/handling.d.ts +13 -0
  54. package/dist/types/widgets/EodashProcess/methods/utils.d.ts +1 -0
  55. package/package.json +2 -2
  56. package/templates/expert.js +4 -0
  57. package/templates/index.js +2 -0
  58. package/widgets/EodashMap/EodashMapBtns.vue +15 -0
  59. package/widgets/EodashMap/index.vue +17 -4
  60. package/widgets/EodashMap/methods/create-layers-config.js +23 -0
  61. package/widgets/EodashMap/methods/index.js +9 -7
  62. package/widgets/EodashProcess/ProcessList.vue +10 -2
  63. package/widgets/EodashProcess/index.vue +1 -9
  64. package/widgets/EodashProcess/methods/composables.js +13 -1
  65. package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +15 -6
  66. package/widgets/EodashProcess/methods/handling.js +77 -0
  67. package/widgets/EodashProcess/methods/utils.js +10 -0
@@ -42,13 +42,14 @@ export function generateFeatures(links, extraProperties = {}, rel = "item") {
42
42
  }
43
43
 
44
44
  /**
45
- * Sperates and extracts layerConfig (jsonform schema & legend) from a style json
45
+ * Spearates and extracts layerConfig (jsonform schema & legend) from a style json
46
46
  *
47
47
  * @param {string} collectionId
48
48
  * @param { import("@/types").EodashStyleJson} [style]
49
49
  * @param {Record<string,any>} [rasterJsonform]
50
+ * @param {string} [layerConfigType]
50
51
  * */
51
- export function extractLayerConfig(collectionId, style, rasterJsonform) {
52
+ export function extractLayerConfig(collectionId, style, rasterJsonform, layerConfigType) {
52
53
  if (!style && !rasterJsonform) {
53
54
  return { layerConfig: undefined, style: undefined };
54
55
  }
@@ -56,6 +57,10 @@ export function extractLayerConfig(collectionId, style, rasterJsonform) {
56
57
  style = { ...style };
57
58
  }
58
59
 
60
+ if (style?.variables && Object.keys(style.variables ?? {}).length) {
61
+ style.variables = getStyleVariablesState(collectionId, style.variables);
62
+ }
63
+
59
64
  if (rasterJsonform) {
60
65
  return {
61
66
  layerConfig: {
@@ -67,16 +72,12 @@ export function extractLayerConfig(collectionId, style, rasterJsonform) {
67
72
  };
68
73
  }
69
74
 
70
- if (style?.variables && Object.keys(style.variables ?? {}).length) {
71
- style.variables = getStyleVariablesState(collectionId, style.variables);
72
- }
73
-
74
75
  /** @type {Record<string,unknown> | undefined} */
75
76
  let layerConfig = undefined;
76
77
 
77
78
  if (style?.jsonform) {
78
79
  // this explicitly sets legend only if jsonform is configured
79
- layerConfig = { schema: style.jsonform, type: "style" };
80
+ layerConfig = { schema: style.jsonform, type: layerConfigType || "style" };
80
81
  delete style.jsonform;
81
82
  if (style?.legend) {
82
83
  layerConfig.legend = style.legend;
@@ -90,6 +91,7 @@ export function extractLayerConfig(collectionId, style, rasterJsonform) {
90
91
 
91
92
  return { layerConfig, style };
92
93
  }
94
+
93
95
  /**
94
96
  *
95
97
  * @param {number[]} bbox
@@ -164,28 +166,38 @@ export const extractRoles = (properties, linkOrAsset) => {
164
166
 
165
167
  /**
166
168
  * Extracts a single non-link style JSON from a STAC Item optionally for a selected key mapping
167
- * @param {import("stac-ts").StacItem} item
168
- * @param {string} itemUrl
169
- * @param {string | undefined} key
170
- * @returns
169
+ * @param { import("stac-ts").StacItem | import("stac-ts").StacCollection } stacObject
170
+ * @param {string | undefined} linkKey
171
+ * @param {string | undefined} assetKey
172
+ * @returns
171
173
  **/
172
- export const fetchStyle = async (item, itemUrl, key=undefined) => {
174
+ export const fetchStyle = async (
175
+ stacObject,
176
+ linkKey = undefined,
177
+ assetKey = undefined,
178
+ ) => {
173
179
  let styleLink = null;
174
- if (key) {
175
- styleLink = item.links.find((link) => link.rel.includes("style") && link["links:keys"] && /** @type {Array<string>} */ (link["links:keys"]).includes(key) );
180
+ if (linkKey) {
181
+ styleLink = stacObject.links.find(
182
+ (link) =>
183
+ link.rel.includes("style") &&
184
+ link["links:keys"] &&
185
+ /** @type {Array<string>} */ (link["links:keys"]).includes(linkKey),
186
+ );
187
+ } else if (assetKey) {
188
+ styleLink = stacObject.links.find(
189
+ (link) =>
190
+ link.rel.includes("style") &&
191
+ link["asset:keys"] &&
192
+ /** @type {Array<string>} */ (link["asset:keys"]).includes(assetKey),
193
+ );
176
194
  } else {
177
- styleLink = item.links.find((link) => link.rel.includes("style") && !link["links:keys"]);
195
+ log.debug("Neither link key, nor asset key input, can not match any style to layer.", stacObject.id);
196
+ return {};
178
197
  }
179
198
  if (styleLink) {
180
- let url = "";
181
- if (styleLink.href.startsWith("http")) {
182
- url = styleLink.href;
183
- } else {
184
- url = toAbsolute(styleLink.href, itemUrl);
185
- }
186
-
187
199
  /** @type {import("@/types").EodashStyleJson} */
188
- const styleJson = await axios.get(url).then((resp) => resp.data);
200
+ const styleJson = await axios.get(styleLink.href).then((resp) => resp.data);
189
201
 
190
202
  log.debug("fetched styles JSON", JSON.parse(JSON.stringify(styleJson)));
191
203
  return { ...styleJson };
@@ -194,18 +206,15 @@ export const fetchStyle = async (item, itemUrl, key=undefined) => {
194
206
 
195
207
  /**
196
208
  * Fetches all style JSONs from a STAC Item and returns an array with style objects
197
- * @param {import("stac-ts").StacItem} item
198
- * @param {string} itemUrl
209
+ * @param {import("stac-ts").StacItem | import("stac-ts").StacCollection} stacObject
199
210
  * @returns { Promise <Array<import("@/types").EodashStyleJson>>}
200
211
  **/
201
- export const fetchAllStyles = async (item, itemUrl) => {
202
- const styleLinks = item.links.filter((link) => link.rel.includes("style"));
212
+ export const fetchAllStyles = async (stacObject) => {
213
+ const styleLinks = stacObject.links.filter((link) =>
214
+ link.rel.includes("style"),
215
+ );
203
216
  const fetchPromises = styleLinks.map(async (link) => {
204
- let url = link.href.startsWith("http")
205
- ? link.href
206
- : toAbsolute(link.href, itemUrl);
207
-
208
- const styleJson = await axios.get(url).then((resp) => resp.data);
217
+ const styleJson = await axios.get(link.href).then((resp) => resp.data);
209
218
  log.debug("fetched styles JSON", JSON.parse(JSON.stringify(styleJson)));
210
219
  return styleJson;
211
220
  });
@@ -321,12 +330,11 @@ export const extractLayerTimeValues = (items, currentStep) => {
321
330
  };
322
331
  };
323
332
 
324
-
325
333
  /**
326
334
  * Recursively find all layers whose ID up to the first ; is same as given layer
327
335
  *
328
336
  * @param {import("@eox/map").EoxLayer[]} layers
329
- * @param {import("@eox/map").EoxLayer | undefined} referenceLayer - layer
337
+ * @param {import("@eox/map").EoxLayer | undefined} referenceLayer - layer
330
338
  * @returns {import("@eox/map").EoxLayer[]} Matching layer objects.
331
339
  */
332
340
  export const findLayersByLayerPrefix = (layers, referenceLayer) => {
@@ -390,7 +398,11 @@ export const replaceLayersInStructure = (layers, toRemove, toInsert) => {
390
398
  for (const layer of layers) {
391
399
  if (layer.type === "Group" && Array.isArray(layer.layers)) {
392
400
  // Recurse into group layers
393
- const newGroupLayers = replaceLayersInStructure(layer.layers, toRemove, toInsert);
401
+ const newGroupLayers = replaceLayersInStructure(
402
+ layer.layers,
403
+ toRemove,
404
+ toInsert,
405
+ );
394
406
  result.push({ ...layer, layers: newGroupLayers });
395
407
  continue;
396
408
  }
@@ -418,7 +430,6 @@ export const replaceLayersInStructure = (layers, toRemove, toInsert) => {
418
430
  return result;
419
431
  };
420
432
 
421
-
422
433
  /**
423
434
  * Removes the layer with the id provided and injects an array of layers in its position
424
435
  * @param {import("@eox/map").EoxLayer[]} currentLayers
@@ -459,15 +470,11 @@ export const replaceLayer = (currentLayers, oldLayer, newLayers) => {
459
470
  * @param {import('ol/layer').Layer} layer
460
471
  */
461
472
  export const getColFromLayer = async (indicators, layer) => {
462
- const [collectionId, itemId, ..._other] = layer.get("id").split(";:;");
473
+ const [collectionId, ..._other] = layer.get("id").split(";:;");
463
474
 
464
475
  for (const ind of indicators) {
465
476
  if (ind.collectionStac?.id !== collectionId) continue;
466
- const items = await ind.getItems();
467
- const itemIds = items?.map(item => item.id || item.datetime) ?? [];
468
- if (itemIds.includes(itemId)) {
469
- return ind;
470
- }
477
+ return ind;
471
478
  }
472
479
  };
473
480
 
@@ -841,3 +848,18 @@ export function extractLayerLegend(collection) {
841
848
  }
842
849
  return extraProperties;
843
850
  }
851
+
852
+
853
+ /**
854
+ * @param { import ("stac-ts").StacLink } link
855
+ * @returns {object}
856
+ */
857
+ export function extractEoxLegendLink(link) {
858
+ let extraProperties = {};
859
+ if (link["eox:colorlegend"]) {
860
+ extraProperties = {
861
+ layerLegend: link["eox:colorlegend"],
862
+ };
863
+ }
864
+ return extraProperties;
865
+ }
@@ -95,6 +95,7 @@ function moveItemProperties(item) {
95
95
  "id",
96
96
  "collection",
97
97
  "properties",
98
+ "auth:schemes"
98
99
  ];
99
100
  for (const key in item) {
100
101
  if (!stacProperties.includes(key)) {
@@ -67,25 +67,25 @@ export function getStyleVariablesState(collectionId, variables) {
67
67
  "",
68
68
  "",
69
69
  ];
70
- return (
71
- collection === collectionId &&
72
- ["Vector", "WebGLTile", "VectorTile"].includes(layer?.type ?? "")
73
- );
70
+ return collection === collectionId;
74
71
  });
75
72
 
76
73
  if (!matchingLayer) {
77
74
  return variables;
78
75
  }
76
+ // TODO instead tap into store for changed variables state per layer
77
+ // because XYZ and WMTS use tileurlfunction update, where we can not retrieve
78
+ // current values from OL layers anyhow
79
79
 
80
80
  const olLayer = mapElement.getLayerById(matchingLayer.properties?.id ?? "");
81
- const oldVariablesState =
81
+ let oldVariablesState =
82
82
  /** @type {import("ol/layer").Vector} */ (
83
83
  olLayer
84
84
  //@ts-expect-error variables doesn't exist in non-flat style
85
85
  ).getStyle?.()?.variables ??
86
86
  //@ts-expect-error (styleVariables_ is a private property)
87
87
  /** @type {import("ol/layer").WebGLTile} */ (olLayer).styleVariables_;
88
-
88
+
89
89
  if (!oldVariablesState) {
90
90
  return variables;
91
91
  }
@@ -99,3 +99,4 @@ export function getStyleVariablesState(collectionId, variables) {
99
99
  );
100
100
  return matchingKeys ? oldVariablesState : variables;
101
101
  }
102
+
@@ -11,7 +11,7 @@ export const currentUrl = ref("");
11
11
  export const currentCompareUrl = ref("");
12
12
 
13
13
  /** Currently selected datetime */
14
- export const datetime = ref(new Date().toISOString());
14
+ export const datetime = ref("");
15
15
 
16
16
  /** Currently selected indicator */
17
17
  export const indicator = ref("");
@@ -465,7 +465,12 @@ export type EodashStyleJson = import("ol/style/flat").FlatStyleLike & {
465
465
  variables?: Record<string, string | number | boolean | null | undefined>;
466
466
  legend?: import("@eox/layercontrol/src/components/layer-config.js").EOxLayerControlLayerConfig["layerConfig"]["legend"];
467
467
  jsonform?: import("json-schema").JSONSchema7;
468
- tooltip?: { id: string; title?: string; appendix?: string }[];
468
+ tooltip?: {
469
+ id: string;
470
+ title?: string;
471
+ appendix?: string;
472
+ decimals?: number;
473
+ }[];
469
474
  };
470
475
  export type EodashRasterJSONForm = {
471
476
  jsonform: Record<string, any>;
@@ -476,9 +481,11 @@ export type LayersEventBusKeys =
476
481
  | "layers:updated"
477
482
  | "time:updated"
478
483
  | "process:updated"
484
+ | "layertime:updated"
479
485
  | "compareLayers:updated"
480
486
  | "compareTime:updated"
481
- | "compareProcess:updated";
487
+ | "compareProcess:updated"
488
+ | "compareLayertime:updated";
482
489
 
483
490
  //// STAC API types
484
491
  /** @ignore */
@@ -620,7 +627,6 @@ export interface OAuth2Flow {
620
627
  scopes: Record<string, string>;
621
628
  }
622
629
 
623
-
624
630
  /** Signed URL flow configuration */
625
631
  export interface SignedUrlFlow {
626
632
  authorizationApi: string;
@@ -638,20 +644,20 @@ export interface SignedUrlFlow {
638
644
  }
639
645
 
640
646
  export interface ApiKeyAuthScheme extends AuthScheme {
641
- type: "apiKey",
642
- name: string;
643
- in: string;
647
+ type: "apiKey";
648
+ name: string;
649
+ in: string;
644
650
  }
645
651
 
646
652
  import { StacItem, StacLink, StacAsset } from "stac-ts";
647
653
  export interface StacAuthItem extends StacItem {
648
654
  "auth:schemes": {
649
655
  [key: string]: AuthScheme;
650
- },
656
+ };
651
657
  }
652
658
  export interface StacAuthLink extends StacLink {
653
- "auth:refs": [string],
659
+ "auth:refs": [string];
654
660
  }
655
661
  export interface StacAuthAsset extends StacAsset {
656
- "auth:refs": [string],
662
+ "auth:refs": [string];
657
663
  }
@@ -9,6 +9,10 @@ import {
9
9
  mdiSnowflake,
10
10
  mdiWater,
11
11
  mdiWeatherWindy,
12
+ mdiAccountMultiple,
13
+ mdiHiking,
14
+ mdiVolleyball,
15
+ mdiWrench,
12
16
  } from "@mdi/js";
13
17
  import { reactive, ref, shallowReactive } from "vue";
14
18
 
@@ -97,10 +101,22 @@ export const dataThemesBrands = {
97
101
  icon: mdiWeatherWindy,
98
102
  color: "#475faf",
99
103
  },
104
+ climate: {
105
+ icon: mdiWeatherWindy,
106
+ color: "#475faf",
107
+ },
100
108
  economy: {
101
109
  icon: mdiCurrencyEur,
102
110
  color: "#8E81AF",
103
111
  },
112
+ commerce: {
113
+ icon: mdiCurrencyEur,
114
+ color: "#8E81AF",
115
+ },
116
+ society: {
117
+ icon: mdiAccountMultiple,
118
+ color: "#8ac501",
119
+ },
104
120
  biomass: {
105
121
  icon: mdiLeaf,
106
122
  color: "#009E73",
@@ -109,8 +125,24 @@ export const dataThemesBrands = {
109
125
  icon: mdiLightningBolt,
110
126
  color: "#a1280a",
111
127
  },
128
+ energy: {
129
+ icon: mdiLightningBolt,
130
+ color: "#475faf",
131
+ },
132
+ tourism: {
133
+ icon: mdiHiking,
134
+ color: "#80510aff",
135
+ },
136
+ sport: {
137
+ icon: mdiVolleyball,
138
+ color: "#e98e65ff",
139
+ },
112
140
  cryosphere: {
113
141
  icon: mdiSnowflake,
114
142
  color: "#42C7B8",
115
143
  },
144
+ industry: {
145
+ icon: mdiWrench,
146
+ color: "#8d845cff",
147
+ },
116
148
  };
@@ -1,7 +1,7 @@
1
1
  import { createBlock, openBlock, withCtx, createElementVNode, unref, createElementBlock, createCommentVNode, normalizeStyle, Suspense, resolveDynamicComponent, mergeProps, Fragment, renderList, Transition } from 'vue';
2
2
  import '@eox/layout';
3
- import { _ as _export_sfc, u as useDefineTemplate } from './asWebComponent-Dptqds6-.js';
4
- import { V as VMain } from './VMain-CniQR94B.js';
3
+ import { _ as _export_sfc, u as useDefineTemplate } from './asWebComponent-Bw03Jutr.js';
4
+ import { V as VMain } from './VMain-C74l1bv-.js';
5
5
 
6
6
  const _style_0 = ".panel[data-v-9c8477cc]{position:relative;overflow:auto;z-index:1;pointer-events:none}.pointer[data-v-9c8477cc]{pointer-events:all}.bg-panel[data-v-9c8477cc]{z-index:0;border-radius:0!important}.fade-enter-active[data-v-9c8477cc],.fade-leave-active[data-v-9c8477cc]{transition:opacity .25s ease}.fade-enter-from[data-v-9c8477cc],.fade-leave-to[data-v-9c8477cc]{opacity:0}.bg-surface[data-v-9c8477cc],.bg-primary[data-v-9c8477cc]{backdrop-filter:blur(10px)!important;border-radius:8px;border:none;box-shadow:0 0 1px #18274b38,0 6px 12px -6px #18274b1f,0 8px 24px -4px #18274b14;max-height:100%;overflow:auto;scrollbar-color:rgba(var(--v-theme-on-surface),.2) transparent;scrollbar-width:thin}.bg-surface[data-v-9c8477cc]{background-color:rgba(var(--v-theme-surface),var(--v-surface-opacity, .8))!important}.bg-primary[data-v-9c8477cc]{background-color:rgba(var(--v-theme-primary),var(--v-primary-opacity, .8))!important}";
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { withAsyncContext, ref, onMounted, onUnmounted, createElementBlock, openBlock, createBlock, resolveDynamicComponent, mergeProps } from 'vue';
2
- import { E as useSTAcStore } from './asWebComponent-Dptqds6-.js';
2
+ import { E as useSTAcStore } from './asWebComponent-Bw03Jutr.js';
3
3
 
4
4
  const _hoisted_1 = { class: "d-flex flex-column fill-height overflow-auto" };
5
5
 
@@ -1,11 +1,11 @@
1
1
  import { useCssVars, ref, useTemplateRef, customRef, computed, reactive, watch, onMounted, createElementBlock, openBlock, createVNode, unref, createSlots, withCtx, createElementVNode, withDirectives, createCommentVNode, createBlock, mergeProps, toHandlers } from 'vue';
2
2
  import { DatePicker } from 'v-calendar';
3
- import { _ as _export_sfc, D as useDisplay, E as useSTAcStore, F as useTransparentPanel, G as VBtn, H as VIcon, I as eodashCollections, J as eodashCompareCollections } from './asWebComponent-Dptqds6-.js';
4
- import { B as datetime } from './helpers-DoQGyrvY.js';
3
+ import { _ as _export_sfc, D as useDisplay, E as useSTAcStore, F as useTransparentPanel, G as VBtn, H as VIcon, I as eodashCollections, J as eodashCompareCollections } from './asWebComponent-Bw03Jutr.js';
4
+ import { C as datetime } from './helpers-CsjKHAcK.js';
5
5
  import { mdiRayEndArrow, mdiRayStartArrow } from '@mdi/js';
6
6
  import log from 'loglevel';
7
7
  import { storeToRefs } from 'pinia';
8
- import { T as Tooltip } from './index-DTxo2ysK.js';
8
+ import { T as Tooltip } from './index-DEmHaCL3.js';
9
9
 
10
10
  const _style_0 = ".vc-popover-content{--vc-nav-hover-bg: rgba(var(--v-theme-on-surface), .1);--vc-nav-item-active-color: rgb(var(--v-theme-on-secondary));--vc-nav-item-active-bg: rgba(var(--v-theme-secondary), .8);--vc-focus-ring: 0 0 0 2px rgba(var(--v-theme-secondary), .5)}.vc-container{--vc-day-content-hover-bg: rgba(var(--v-theme-on-surface), .2);--vc-focus-ring: 0 0 0 2px rgba(var(--v-theme-secondary), .4);--vc-header-arrow-hover-bg: rgba(var(--v-theme-secondary), .1)}.vc-attr{--vc-accent-600: rgba(var(--v-theme-secondary), .8)}.datePicker{--vc-day-content-hover-bg: red}@media (min-width: 960px){.datePicker{position:absolute;bottom:0;left:0;right:0;margin-inline:auto;width:fit-content}}.vc-day-content{color:#5e5e5e;font-weight:400}.vc-highlight-content-solid{color:#fff!important}.vc-popover-content-wrapper{transform:var(--v5270a4d4)!important}.vc-date-picker-content,.datePicker{backdrop-filter:blur(10px)!important;border-radius:8px;border:none;box-shadow:0 0 1px #18274b38,0 6px 12px -6px #18274b1f,0 8px 24px -4px #18274b14;background-color:rgba(var(--v-theme-surface),var(--v-surface-opacity, .8))!important}.vc-popover-caret.direction-top.align-left{clip-path:polygon(0% 0%,100% 0%,0% 100%,0% 100%)}.vc-bordered{border:none}";
11
11
 
@@ -1,5 +1,5 @@
1
1
  import { withAsyncContext, computed, ref, createElementBlock, openBlock, mergeProps, unref, createElementVNode, toDisplayString } from 'vue';
2
- import { _ as _export_sfc, E as useSTAcStore, Q as isFirstLoad } from './asWebComponent-Dptqds6-.js';
2
+ import { _ as _export_sfc, E as useSTAcStore, Q as isFirstLoad } from './asWebComponent-Bw03Jutr.js';
3
3
 
4
4
  const _style_0 = "eox-itemfilter[data-v-88d0abc7]{--form-flex-direction: row}@media (max-width: 768px){eox-itemfilter[data-v-88d0abc7]{--form-flex-direction: column}}";
5
5
 
@@ -1,8 +1,8 @@
1
1
  import { withAsyncContext, computed, ref, createElementBlock, openBlock, createCommentVNode, mergeProps, unref, renderSlot, createElementVNode, toDisplayString } from 'vue';
2
2
  import 'color-legend-element';
3
3
  import '@eox/timecontrol';
4
- import { N as mapCompareEl, h as mapEl, O as getColFromLayer } from './helpers-DoQGyrvY.js';
5
- import { _ as _export_sfc, E as useSTAcStore, M as layerControlFormValueCompare, N as layerControlFormValue, J as eodashCompareCollections, I as eodashCollections } from './asWebComponent-Dptqds6-.js';
4
+ import { O as mapCompareEl, j as mapEl, P as getColFromLayer } from './helpers-CsjKHAcK.js';
5
+ import { _ as _export_sfc, E as useSTAcStore, M as layerControlFormValueCompare, N as layerControlFormValue, J as eodashCompareCollections, I as eodashCollections } from './asWebComponent-Bw03Jutr.js';
6
6
  import { storeToRefs } from 'pinia';
7
7
 
8
8
  /**
@@ -1,8 +1,8 @@
1
1
  import { ref, createElementBlock, openBlock, createBlock, unref, withCtx, createVNode, mergeProps } from 'vue';
2
- import { D as activeTemplate } from './helpers-DoQGyrvY.js';
2
+ import { E as activeTemplate } from './helpers-CsjKHAcK.js';
3
3
  import { mdiViewDashboard } from '@mdi/js';
4
- import { D as useDisplay, F as useTransparentPanel, H as VIcon } from './asWebComponent-Dptqds6-.js';
5
- import { V as VTooltip } from './VTooltip-D5dnTfem.js';
4
+ import { D as useDisplay, F as useTransparentPanel, H as VIcon } from './asWebComponent-Bw03Jutr.js';
5
+ import { V as VTooltip } from './VTooltip-BLS-cQ9N.js';
6
6
 
7
7
  const _sfc_main = {
8
8
  __name: 'EodashLayoutSwitcher',