@eodash/eodash 5.3.2 → 5.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/core/client/eodashSTAC/EodashCollection.js +12 -9
  2. package/core/client/eodashSTAC/auth.js +19 -15
  3. package/core/client/eodashSTAC/createLayers.js +42 -30
  4. package/core/client/eodashSTAC/helpers.js +18 -9
  5. package/core/client/store/states.js +1 -1
  6. package/core/client/types.ts +12 -8
  7. package/core/client/utils/states.js +32 -0
  8. package/dist/client/{DashboardLayout-BHQnHqWW.js → DashboardLayout-Cp8Rv3Ef.js} +2 -2
  9. package/dist/client/{DynamicWebComponent-B4PdeZ9P.js → DynamicWebComponent-CBsxC82P.js} +1 -1
  10. package/dist/client/{EodashDatePicker-Ch_AXVas.js → EodashDatePicker-Dewym-cx.js} +3 -3
  11. package/dist/client/{EodashItemFilter-lTuzCl08.js → EodashItemFilter-CAsZpOoQ.js} +1 -1
  12. package/dist/client/{EodashLayerControl-CBSGRlIi.js → EodashLayerControl-fn-rt8Ac.js} +2 -2
  13. package/dist/client/{EodashLayoutSwitcher-DdwQYoI4.js → EodashLayoutSwitcher-B9XqQXCS.js} +3 -3
  14. package/dist/client/{EodashMapBtns-B910ylV6.js → EodashMapBtns-nFY6MIAX.js} +6 -6
  15. package/dist/client/{EodashStacInfo-CeHGMZ8x.js → EodashStacInfo-lxBKoav9.js} +1 -1
  16. package/dist/client/{EodashTimeSlider-BApJJK0u.js → EodashTimeSlider-DI97QkNT.js} +2 -2
  17. package/dist/client/{EodashTools-CJVm0k-Q.js → EodashTools-D5ShUT1g.js} +4 -4
  18. package/dist/client/{ExportState-NXzNGWYq.js → ExportState-ruNyRS2E.js} +4 -4
  19. package/dist/client/{Footer-DfXUC8IK.js → Footer-IQNyfd78.js} +1 -1
  20. package/dist/client/{Header-BHgaNMEH.js → Header-BBdi_-Lp.js} +2 -2
  21. package/dist/client/{MobileLayout-B77RzrNe.js → MobileLayout-BfBeF-JF.js} +2 -2
  22. package/dist/client/{PopUp-BJwqRDNq.js → PopUp-DRgOmD7-.js} +2 -2
  23. package/dist/client/{ProcessList-BFvV4RvS.js → ProcessList-DxyCFQdz.js} +20 -8
  24. package/dist/client/{VImg-RGGIQ_yA.js → VImg-hwmwzSwG.js} +2 -2
  25. package/dist/client/{VMain-CniQR94B.js → VMain-vk4-rkw-.js} +1 -1
  26. package/dist/client/{VTooltip-D5dnTfem.js → VTooltip-BYUZeia1.js} +2 -2
  27. package/dist/client/{WidgetsContainer-CvnR4J1T.js → WidgetsContainer-DXD_8rqh.js} +1 -1
  28. package/dist/client/{asWebComponent-Dptqds6-.js → asWebComponent-DdguWGDI.js} +97 -50
  29. package/dist/client/{async-C1hb39Tc.js → async-D1MvO_Z_.js} +2 -2
  30. package/dist/client/eo-dash.js +1 -1
  31. package/dist/client/{forwardRefs-CiSZZEn2.js → forwardRefs-DM-E2MfG.js} +2 -2
  32. package/dist/client/{handling-CZ537GCL.js → handling-CbgeKrqT.js} +3 -3
  33. package/dist/client/{helpers-DoQGyrvY.js → helpers-CtUlAW0N.js} +19 -10
  34. package/dist/client/{index-4sC2BIcK.js → index-BJvLt3Xf.js} +5 -5
  35. package/dist/client/{index-wcTqj0PZ.js → index-BkW06-Lg.js} +26 -14
  36. package/dist/client/{index--uKz-mt4.js → index-BxDh5v-H.js} +3 -3
  37. package/dist/client/{index-DTxo2ysK.js → index-DBo0F4Fv.js} +2 -2
  38. package/dist/client/templates.js +2 -2
  39. package/dist/client/{transition-CFfv5MCB.js → transition-BdzATvPB.js} +1 -1
  40. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +1 -0
  41. package/dist/types/core/client/eodashSTAC/auth.d.ts +5 -5
  42. package/dist/types/core/client/eodashSTAC/helpers.d.ts +9 -0
  43. package/dist/types/core/client/types.d.ts +1 -0
  44. package/dist/types/core/client/utils/states.d.ts +28 -0
  45. package/dist/types/templates/index.d.ts +1 -0
  46. package/package.json +2 -2
  47. package/templates/index.js +2 -0
  48. package/widgets/EodashMap/index.vue +13 -4
  49. package/widgets/EodashMap/methods/index.js +9 -7
  50. package/widgets/EodashProcess/ProcessList.vue +10 -2
@@ -1,6 +1,6 @@
1
1
  import { createVNode, Transition, mergeProps, ref, onBeforeUnmount, watch, nextTick, normalizeStyle, normalizeClass, mergeModels, useModel, createElementBlock, openBlock, withCtx, createBlock, createCommentVNode, resolveDynamicComponent, unref, renderSlot } from 'vue';
2
- import { g as genericComponent, p as propsFactory, aj as PREFERS_REDUCED_MOTION, al as acceleratedEasing, am as deceleratedEasing, an as standardEasing, x as useProxiedModel, ao as IN_BROWSER, c as useRender, ap as focusableChildren, V as VDefaultsProvider, k as provideTheme, f as useBackgroundColor, h as useBorder, b as useDimension, i as useElevation, a8 as useLocation, a9 as usePosition, j as useRounded, q as makeThemeProps, m as makeTagProps, r as makeRoundedProps, ac as makePositionProps, ad as makeLocationProps, s as makeElevationProps, d as makeDimensionProps, e as makeComponentProps, t as makeBorderProps, aq as useDefineWidgets } from './asWebComponent-Dptqds6-.js';
3
- import { a as animate, g as getTargetBox, n as nullifyTransforms, u as useScopeId, f as forwardRefs, m as makeVOverlayProps, V as VOverlay } from './forwardRefs-CiSZZEn2.js';
2
+ import { g as genericComponent, p as propsFactory, aj as PREFERS_REDUCED_MOTION, al as acceleratedEasing, am as deceleratedEasing, an as standardEasing, x as useProxiedModel, ao as IN_BROWSER, c as useRender, ap as focusableChildren, V as VDefaultsProvider, k as provideTheme, f as useBackgroundColor, h as useBorder, b as useDimension, i as useElevation, a8 as useLocation, a9 as usePosition, j as useRounded, q as makeThemeProps, m as makeTagProps, r as makeRoundedProps, ac as makePositionProps, ad as makeLocationProps, s as makeElevationProps, d as makeDimensionProps, e as makeComponentProps, t as makeBorderProps, aq as useDefineWidgets } from './asWebComponent-DdguWGDI.js';
3
+ import { a as animate, g as getTargetBox, n as nullifyTransforms, u as useScopeId, f as forwardRefs, m as makeVOverlayProps, V as VOverlay } from './forwardRefs-DM-E2MfG.js';
4
4
 
5
5
  // Utilities
6
6
  const makeVDialogTransitionProps = propsFactory({
@@ -1,9 +1,9 @@
1
- import { ref, createVNode, normalizeStyle, normalizeClass, createElementVNode, toRefs, onMounted, createElementBlock, openBlock, createBlock, createCommentVNode, unref, withCtx, Fragment, renderList, toDisplayString, withDirectives, toRef } from 'vue';
1
+ import { ref, createVNode, normalizeStyle, normalizeClass, createElementVNode, toRefs, onMounted, createElementBlock, openBlock, createBlock, createCommentVNode, unref, withCtx, Fragment, renderList, withDirectives, createTextVNode, toDisplayString, toRef } from 'vue';
2
2
  import { mdiUploadBox, mdiDownloadBox, mdiTrashCanOutline } from '@mdi/js';
3
- import { g as genericComponent, p as propsFactory, k as provideTheme, U as useDensity, c as useRender, q as makeThemeProps, m as makeTagProps, W as makeDensityProps, e as makeComponentProps, o as convertToUnit, _ as _export_sfc, E as useSTAcStore, K as useOnLayersUpdate, G as VBtn } from './asWebComponent-Dptqds6-.js';
4
- import { H as compareIndicator, F as indicator } from './helpers-DoQGyrvY.js';
5
- import { u as updateJobsStatus, j as getJobStatusUrl, l as loadProcess, k as downloadPreviousResults, m as deleteJob } from './async-C1hb39Tc.js';
6
- import { T as Tooltip } from './index-DTxo2ysK.js';
3
+ import { g as genericComponent, p as propsFactory, k as provideTheme, U as useDensity, c as useRender, q as makeThemeProps, m as makeTagProps, W as makeDensityProps, e as makeComponentProps, o as convertToUnit, _ as _export_sfc, E as useSTAcStore, K as useOnLayersUpdate, H as VIcon, G as VBtn } from './asWebComponent-DdguWGDI.js';
4
+ import { H as compareIndicator, F as indicator } from './helpers-CtUlAW0N.js';
5
+ import { u as updateJobsStatus, j as getJobStatusUrl, l as loadProcess, k as downloadPreviousResults, m as deleteJob } from './async-D1MvO_Z_.js';
6
+ import { T as Tooltip } from './index-DBo0F4Fv.js';
7
7
 
8
8
  /**
9
9
  * The list of job result from the server
@@ -90,6 +90,7 @@ const _sfc_main = {
90
90
  },
91
91
  setup(__props) {
92
92
 
93
+ /* eslint-disable @typescript-eslint/no-unused-vars */
93
94
 
94
95
  const { selectedStac, selectedCompareStac } = toRefs(useSTAcStore());
95
96
  const currentJobs = __props.enableCompare ? compareJobs : jobs;
@@ -103,6 +104,7 @@ onMounted(() => {
103
104
  useOnLayersUpdate(() => updateJobsStatus(currentJobs, currentIndicator.value));
104
105
 
105
106
  return (_ctx, _cache) => {
107
+
106
108
 
107
109
 
108
110
 
@@ -115,7 +117,7 @@ return (_ctx, _cache) => {
115
117
  style: {"background-color":"transparent"}
116
118
  }, {
117
119
  default: withCtx(() => [
118
- _cache[0] || (_cache[0] = createElementVNode("thead", null, [
120
+ _cache[1] || (_cache[1] = createElementVNode("thead", null, [
119
121
  createElementVNode("tr", null, [
120
122
  createElementVNode("th", { class: "text-left" }, "Executed on"),
121
123
  createElementVNode("th", { class: "text-left" }, "Status"),
@@ -130,11 +132,21 @@ return (_ctx, _cache) => {
130
132
  key: item.jobID
131
133
  }, [
132
134
  createElementVNode("td", null, [
133
- createElementVNode("a", {
135
+ withDirectives((openBlock(), createElementBlock("a", {
134
136
  class: "processUrl",
135
137
  target: "_blank",
136
138
  href: unref(getJobStatusUrl)(item.jobID, unref(currentIndicator))
137
- }, toDisplayString(new Date(item.job_start_datetime).toISOString().slice(0, 16)), 9 /* TEXT, PROPS */, _hoisted_1)
139
+ }, [
140
+ createTextVNode(toDisplayString(new Date(item.job_start_datetime).toISOString().slice(0, 16)) + " ", 1 /* TEXT */),
141
+ createVNode(VIcon, null, {
142
+ default: withCtx(() => [...(_cache[0] || (_cache[0] = [
143
+ createTextVNode("mdi-open-in-new", -1 /* CACHED */)
144
+ ]))]),
145
+ _: 1 /* STABLE */
146
+ })
147
+ ], 8 /* PROPS */, _hoisted_1)), [
148
+ [Tooltip, 'Process details']
149
+ ])
138
150
  ]),
139
151
  createElementVNode("td", null, toDisplayString(item.status), 1 /* TEXT */),
140
152
  createElementVNode("td", _hoisted_2, [
@@ -1,6 +1,6 @@
1
1
  import { h, TransitionGroup, Transition, camelize, createElementVNode, normalizeStyle, normalizeClass, computed, shallowRef, ref, watch, onBeforeMount, nextTick, onBeforeUnmount, toRef, withDirectives, createVNode, mergeProps, Fragment, vShow } from 'vue';
2
- import { ai as SUPPORTS_INTERSECTION, g as genericComponent, aj as PREFERS_REDUCED_MOTION, p as propsFactory, b as useDimension, c as useRender, d as makeDimensionProps, e as makeComponentProps, f as useBackgroundColor, j as useRounded, ak as getCurrentInstance, o as convertToUnit, r as makeRoundedProps } from './asWebComponent-Dptqds6-.js';
3
- import { m as makeTransitionProps$1, M as MaybeTransition } from './transition-CFfv5MCB.js';
2
+ import { ai as SUPPORTS_INTERSECTION, g as genericComponent, aj as PREFERS_REDUCED_MOTION, p as propsFactory, b as useDimension, c as useRender, d as makeDimensionProps, e as makeComponentProps, f as useBackgroundColor, j as useRounded, ak as getCurrentInstance, o as convertToUnit, r as makeRoundedProps } from './asWebComponent-DdguWGDI.js';
3
+ import { m as makeTransitionProps$1, M as MaybeTransition } from './transition-BdzATvPB.js';
4
4
 
5
5
  // Utilities
6
6
  function mounted(el, binding) {
@@ -1,5 +1,5 @@
1
1
  import { createVNode, normalizeStyle, normalizeClass, createElementVNode } from 'vue';
2
- import { g as genericComponent, p as propsFactory, b as useDimension, a as useLayout, c as useRender, m as makeTagProps, d as makeDimensionProps, e as makeComponentProps } from './asWebComponent-Dptqds6-.js';
2
+ import { g as genericComponent, p as propsFactory, b as useDimension, a as useLayout, c as useRender, m as makeTagProps, d as makeDimensionProps, e as makeComponentProps } from './asWebComponent-DdguWGDI.js';
3
3
  import { u as useSsrBoot } from './ssrBoot-Zgc_Ttvi.js';
4
4
 
5
5
  const makeVMainProps = propsFactory({
@@ -1,6 +1,6 @@
1
1
  import { useId, toRef, ref, computed, mergeProps, createVNode } from 'vue';
2
- import { u as useScopeId, f as forwardRefs, m as makeVOverlayProps, V as VOverlay } from './forwardRefs-CiSZZEn2.js';
3
- import { g as genericComponent, p as propsFactory, x as useProxiedModel, c as useRender, Z as omit } from './asWebComponent-Dptqds6-.js';
2
+ import { u as useScopeId, f as forwardRefs, m as makeVOverlayProps, V as VOverlay } from './forwardRefs-DM-E2MfG.js';
3
+ import { g as genericComponent, p as propsFactory, x as useProxiedModel, c as useRender, Z as omit } from './asWebComponent-DdguWGDI.js';
4
4
 
5
5
  const makeVTooltipProps = propsFactory({
6
6
  id: String,
@@ -1,5 +1,5 @@
1
1
  import { ref, onMounted, nextTick, createElementBlock, openBlock, Fragment, renderList, unref, createElementVNode, toDisplayString, normalizeStyle, createBlock, resolveDynamicComponent, mergeProps } from 'vue';
2
- import { aq as useDefineWidgets, a as useLayout } from './asWebComponent-Dptqds6-.js';
2
+ import { aq as useDefineWidgets, a as useLayout } from './asWebComponent-DdguWGDI.js';
3
3
  import 'animated-details';
4
4
 
5
5
  const _sfc_main = {
@@ -1,9 +1,9 @@
1
1
  import { watch, onScopeDispose, effectScope, capitalize, reactive, watchEffect, toRef, shallowRef, Fragment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, unref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, toRaw, toRefs, toValue, createVNode, mergeProps, createElementVNode, normalizeClass, getCurrentScope, onBeforeUnmount, readonly, onMounted, useId, onDeactivated, onActivated, nextTick, shallowReactive, onUnmounted, isRef, normalizeStyle, onUpdated, Text, Transition, resolveDynamicComponent, withDirectives, toDisplayString, useModel, createBlock, createCommentVNode, openBlock, withCtx, createTextVNode, defineAsyncComponent, onErrorCaptured, Suspense, createElementBlock, normalizeProps, withAsyncContext, defineCustomElement } from 'vue';
2
2
  import { storeToRefs, defineStore, createPinia } from 'pinia';
3
- import { r as registerProjection, c as createLayerID, e as extractRoles, g as getProjectionCode, f as fetchStyle, a as extractLayerConfig, b as addTooltipInteraction, d as createAssetID, m as mergeGeojsons, h as mapEl, i as isSTACItem, j as axios, k as extractLayerTimeValues, l as fetchApiItems, n as getDatetimeProperty, o as fetchAllStyles, p as getLayers, q as getCompareLayers, s as findLayer, t as findLayersByLayerPrefix, u as replaceLayersInStructure, v as generateFeatures, w as extractLayerLegend, x as extractCollectionUrls, y as generateLinksFromItems, z as revokeCollectionBlobUrls, A as currentUrl, B as datetime, C as poi, D as activeTemplate, E as mapPosition, F as indicator, G as currentCompareUrl, H as compareIndicator, I as comparePoi, J as states, K as actions } from './helpers-DoQGyrvY.js';
3
+ import { r as registerProjection, c as createLayerID, e as extractRoles, g as getProjectionCode, f as fetchStyle, a as extractLayerConfig, b as addTooltipInteraction, d as createAssetID, m as mergeGeojsons, h as mapEl, i as isSTACItem, j as axios, k as extractLayerTimeValues, l as fetchApiItems, n as getDatetimeProperty, o as fetchAllStyles, p as getLayers, q as getCompareLayers, s as findLayer, t as findLayersByLayerPrefix, u as replaceLayersInStructure, v as generateFeatures, w as extractLayerLegend, x as extractCollectionUrls, y as generateLinksFromItems, z as revokeCollectionBlobUrls, A as currentUrl, B as datetime, C as poi, D as activeTemplate, E as mapPosition, F as indicator, G as currentCompareUrl, H as compareIndicator, I as comparePoi, J as states, K as actions } from './helpers-CtUlAW0N.js';
4
4
  import log from 'loglevel';
5
5
  import { useEventBus, useMutationObserver, createSharedComposable } from '@vueuse/core';
6
- import { mdiSnowflake, mdiLightningBolt, mdiLeaf, mdiCurrencyEur, mdiWeatherWindy, mdiSetCenter, mdiHospitalBoxOutline, mdiImageFilterHdr, mdiWater, mdiBarley, mdiClose, mdiAlertCircle, mdiPlus, mdiMenuDown, mdiChevronLeft, mdiChevronRight } from '@mdi/js';
6
+ import { mdiWrench, mdiSnowflake, mdiVolleyball, mdiHiking, mdiLightningBolt, mdiLeaf, mdiAccountMultiple, mdiCurrencyEur, mdiWeatherWindy, mdiSetCenter, mdiHospitalBoxOutline, mdiImageFilterHdr, mdiWater, mdiBarley, mdiClose, mdiAlertCircle, mdiPlus, mdiMenuDown, mdiChevronLeft, mdiChevronRight } from '@mdi/js';
7
7
  import { Item, Collection } from 'stac-js';
8
8
  import { toAbsolute } from 'stac-js/src/http.js';
9
9
  import { parquetRead } from 'hyparquet';
@@ -3513,10 +3513,22 @@ const dataThemesBrands = {
3513
3513
  icon: mdiWeatherWindy,
3514
3514
  color: "#475faf",
3515
3515
  },
3516
+ climate: {
3517
+ icon: mdiWeatherWindy,
3518
+ color: "#475faf",
3519
+ },
3516
3520
  economy: {
3517
3521
  icon: mdiCurrencyEur,
3518
3522
  color: "#8E81AF",
3519
3523
  },
3524
+ commerce: {
3525
+ icon: mdiCurrencyEur,
3526
+ color: "#8E81AF",
3527
+ },
3528
+ society: {
3529
+ icon: mdiAccountMultiple,
3530
+ color: "#8ac501",
3531
+ },
3520
3532
  biomass: {
3521
3533
  icon: mdiLeaf,
3522
3534
  color: "#009E73",
@@ -3525,10 +3537,26 @@ const dataThemesBrands = {
3525
3537
  icon: mdiLightningBolt,
3526
3538
  color: "#a1280a",
3527
3539
  },
3540
+ energy: {
3541
+ icon: mdiLightningBolt,
3542
+ color: "#475faf",
3543
+ },
3544
+ tourism: {
3545
+ icon: mdiHiking,
3546
+ color: "#80510aff",
3547
+ },
3548
+ sport: {
3549
+ icon: mdiVolleyball,
3550
+ color: "#e98e65ff",
3551
+ },
3528
3552
  cryosphere: {
3529
3553
  icon: mdiSnowflake,
3530
3554
  color: "#42C7B8",
3531
3555
  },
3556
+ industry: {
3557
+ icon: mdiWrench,
3558
+ color: "#8d845cff",
3559
+ },
3532
3560
  };
3533
3561
 
3534
3562
  function handleAuthenticationOfLink(item, linkOrAsset) {
@@ -3547,7 +3575,9 @@ function handleAuthenticationOfLink(item, linkOrAsset) {
3547
3575
  // case "oauth2":
3548
3576
  // todo add more handlers when needed
3549
3577
  default:
3550
- console.error(`eodash does not support referenced authentication scheme ${authRef}`);
3578
+ console.error(
3579
+ `eodash does not support referenced authentication scheme ${authRef}`
3580
+ );
3551
3581
  }
3552
3582
  }
3553
3583
  }
@@ -3563,7 +3593,9 @@ function handleApiKeyBasedAuth(schemeDef, href) {
3563
3593
  if (envValue) {
3564
3594
  url = setQueryParam(href, apiKey, envValue);
3565
3595
  } else {
3566
- console.error(`env variable ${envVar} for authentication parameter ${apiKey} not set`);
3596
+ console.error(
3597
+ `env variable ${envVar} for authentication parameter ${apiKey} not set`
3598
+ );
3567
3599
  }
3568
3600
  break;
3569
3601
  }
@@ -3688,29 +3720,37 @@ async function createLayersFromAssets(
3688
3720
  const features = [];
3689
3721
  responseData.forEach((ftr, i) => {
3690
3722
  const { geometry, ...properties } = ftr;
3691
- if (geometry.type === 'MultiPoint' || geometry.type === 'MultiPolygon') {
3692
- geometry.coordinates.forEach((/** @type {Record<string,any>[]} */ coordPair, /** @type {number} */j) => {
3693
- const singleGeometry = {
3694
- type: geometry.type === 'MultiPoint' ? 'Point' : 'Polygon',
3695
- coordinates: coordPair,
3696
- };
3697
- features.push({
3698
- type: 'Feature',
3699
- id: `${i}_${j}`,
3700
- properties,
3701
- geometry: singleGeometry,
3702
- });
3703
- });
3723
+ if (
3724
+ geometry.type === "MultiPoint" ||
3725
+ geometry.type === "MultiPolygon"
3726
+ ) {
3727
+ geometry.coordinates.forEach(
3728
+ (
3729
+ /** @type {Record<string,any>[]} */ coordPair,
3730
+ /** @type {number} */ j,
3731
+ ) => {
3732
+ const singleGeometry = {
3733
+ type: geometry.type === "MultiPoint" ? "Point" : "Polygon",
3734
+ coordinates: coordPair,
3735
+ };
3736
+ features.push({
3737
+ type: "Feature",
3738
+ id: `${i}_${j}`,
3739
+ properties,
3740
+ geometry: singleGeometry,
3741
+ });
3742
+ },
3743
+ );
3704
3744
  } else {
3705
3745
  features.push({
3706
- type: 'Feature',
3746
+ type: "Feature",
3707
3747
  properties,
3708
3748
  id: `${i}`,
3709
3749
  geometry: geometry,
3710
3750
  });
3711
3751
  }
3712
3752
  });
3713
-
3753
+
3714
3754
  const geojson = {
3715
3755
  type: "FeatureCollection",
3716
3756
  features: features,
@@ -3732,7 +3772,7 @@ async function createLayersFromAssets(
3732
3772
  source: {
3733
3773
  type: "Vector",
3734
3774
  url: await mergeGeojsons(geoJsonSources),
3735
- format: {"type": "GeoJSON", "dataProjection": projection},
3775
+ format: { type: "GeoJSON", dataProjection: projection },
3736
3776
  attributions: geoJsonAttributions,
3737
3777
  },
3738
3778
  properties: {
@@ -3806,7 +3846,8 @@ const createLayersFromLinks = async (
3806
3846
  const wmsArray = item.links.filter((l) => l.rel === "wms");
3807
3847
  const wmtsArray = item.links.filter((l) => l.rel === "wmts");
3808
3848
  const xyzArray = item.links.filter((l) => l.rel === "xyz") ?? [];
3809
- const vectorTileArray = item.links.filter((l) => l.rel === "vector-tile") ?? [];
3849
+ const vectorTileArray =
3850
+ item.links.filter((l) => l.rel === "vector-tile") ?? [];
3810
3851
 
3811
3852
  // Taking projection code from main map view, as main view defines
3812
3853
  // projection for comparison map
@@ -4003,7 +4044,9 @@ const createLayersFromLinks = async (
4003
4044
  (vectorTileLink?.["proj:epsg"] || vectorTileLink?.["eodash:proj4_def"]);
4004
4045
 
4005
4046
  await registerProjection(vectorTileLinkProjection);
4006
- const projectionCode = getProjectionCode(vectorTileLinkProjection || "EPSG:3857");
4047
+ const projectionCode = getProjectionCode(
4048
+ vectorTileLinkProjection || "EPSG:3857",
4049
+ );
4007
4050
  const linkId = createLayerID(
4008
4051
  collectionId,
4009
4052
  item.id,
@@ -4011,18 +4054,19 @@ const createLayersFromLinks = async (
4011
4054
  viewProjectionCode,
4012
4055
  );
4013
4056
  log.debug("Vector Tile Layer added", linkId);
4014
- const key = /** @type {string | undefined} */ (vectorTileLink["key"]) || undefined;
4057
+ const key =
4058
+ /** @type {string | undefined} */ (vectorTileLink["key"]) || undefined;
4015
4059
  // fetch styles and separate them by their mapping between links and assets
4016
4060
  const styles = await fetchStyle(item, itemUrl, key);
4017
4061
  // get the correct style which is not attached to a link
4018
- let { layerConfig, style } = extractLayerConfig(
4019
- linkId ?? "",
4020
- styles,
4021
- );
4022
-
4062
+ let { layerConfig, style } = extractLayerConfig(linkId ?? "", styles);
4063
+
4023
4064
  let href = vectorTileLink.href;
4024
4065
  if ("auth:schemes" in item && "auth:refs" in vectorTileLink) {
4025
- href = handleAuthenticationOfLink(/** @type { import("@/types").StacAuthItem} */ (item), /** @type { import("@/types").StacAuthLink} */ (vectorTileLink));
4066
+ href = handleAuthenticationOfLink(
4067
+ /** @type { import("@/types").StacAuthItem} */ (item),
4068
+ /** @type { import("@/types").StacAuthLink} */ (vectorTileLink),
4069
+ );
4026
4070
  }
4027
4071
  const json = {
4028
4072
  type: "VectorTile",
@@ -4033,11 +4077,11 @@ const createLayersFromLinks = async (
4033
4077
  roles: vectorTileLink.roles,
4034
4078
  layerDatetime,
4035
4079
  ...(layerConfig && {
4036
- layerConfig: {
4037
- ...layerConfig,
4038
- style,
4039
- },
4040
- }),
4080
+ layerConfig: {
4081
+ ...layerConfig,
4082
+ style,
4083
+ },
4084
+ }),
4041
4085
  },
4042
4086
  source: {
4043
4087
  type: "VectorTile",
@@ -4374,8 +4418,9 @@ class EodashCollection {
4374
4418
  return data;
4375
4419
  }, /** @type {Record<string,import('stac-ts').StacAsset>} */ ({}));
4376
4420
  const isSupported =
4377
- item.links.some((link) => ["wms", "xyz", "wmts", "vector-tile"].includes(link.rel)) ||
4378
- Object.keys(dataAssets).length;
4421
+ item.links.some((link) =>
4422
+ ["wms", "xyz", "wmts", "vector-tile"].includes(link.rel),
4423
+ ) || Object.keys(dataAssets).length;
4379
4424
 
4380
4425
  if (isSupported) {
4381
4426
  // Checking for potential legend asset
@@ -4574,9 +4619,9 @@ class EodashCollection {
4574
4619
  const aggregatedTooltips = [
4575
4620
  ...new Map(
4576
4621
  styles
4577
- .flatMap(style => style.tooltip || [])
4578
- .map(entry => [entry.id, entry])
4579
- ).values()
4622
+ .flatMap((style) => style.tooltip || [])
4623
+ .map((entry) => [entry.id, entry]),
4624
+ ).values(),
4580
4625
  ];
4581
4626
  this.#tooltipProperties = aggregatedTooltips ?? [];
4582
4627
  return this.#tooltipProperties;
@@ -4629,16 +4674,18 @@ class EodashCollection {
4629
4674
  currentLayers = getCompareLayers();
4630
4675
  }
4631
4676
 
4632
-
4633
4677
  const oldLayer = findLayer(currentLayers, layer);
4634
4678
 
4635
-
4636
4679
  const toBeReplacedLayers = findLayersByLayerPrefix(currentLayers, oldLayer);
4637
4680
 
4638
4681
  if (!toBeReplacedLayers) {
4639
4682
  return;
4640
4683
  }
4641
- const updatedLayers = replaceLayersInStructure(currentLayers, toBeReplacedLayers, newLayers);
4684
+ const updatedLayers = replaceLayersInStructure(
4685
+ currentLayers,
4686
+ toBeReplacedLayers,
4687
+ newLayers,
4688
+ );
4642
4689
 
4643
4690
  return updatedLayers;
4644
4691
  }
@@ -4662,7 +4709,7 @@ class EodashCollection {
4662
4709
  );
4663
4710
 
4664
4711
  return [
4665
- //@ts-expect-error indicator instead of item
4712
+ //@ts-expect-error indicator instead of item
4666
4713
  ...(await createLayersFromLinks(
4667
4714
  indicator?.id ?? "",
4668
4715
  indicator?.title || indicator.id,
@@ -7998,7 +8045,7 @@ const ErrorAlert = /*#__PURE__*/_export_sfc(_sfc_main$4, [['styles',[_style_0$2]
7998
8045
  const internalWidgets = (() => {
7999
8046
  /** @type {Record<string, () => Promise<import("vue").Component>>} */
8000
8047
  const importMap = {
8001
- .../* #__PURE__ */ Object.assign({"/widgets/EodashDatePicker.vue": () => import('./EodashDatePicker-Ch_AXVas.js'),"/widgets/EodashItemCatalog/index.vue": () => import('./index--uKz-mt4.js'),"/widgets/EodashItemFilter.vue": () => import('./EodashItemFilter-lTuzCl08.js'),"/widgets/EodashLayerControl.vue": () => import('./EodashLayerControl-CBSGRlIi.js'),"/widgets/EodashLayoutSwitcher.vue": () => import('./EodashLayoutSwitcher-DdwQYoI4.js'),"/widgets/EodashMap/EodashMapBtns.vue": () => import('./EodashMapBtns-B910ylV6.js'),"/widgets/EodashMap/index.vue": () => import('./index-wcTqj0PZ.js'),"/widgets/EodashProcess/ProcessList.vue": () => import('./ProcessList-BFvV4RvS.js').then(n => n.a),"/widgets/EodashProcess/index.vue": () => import('./index-4sC2BIcK.js'),"/widgets/EodashStacInfo.vue": () => import('./EodashStacInfo-CeHGMZ8x.js'),"/widgets/EodashTimeSlider.vue": () => import('./EodashTimeSlider-BApJJK0u.js'),"/widgets/EodashTools.vue": () => import('./EodashTools-CJVm0k-Q.js'),"/widgets/ExportState.vue": () => import('./ExportState-NXzNGWYq.js'),"/widgets/PopUp.vue": () => import('./PopUp-BJwqRDNq.js'),"/widgets/WidgetsContainer.vue": () => import('./WidgetsContainer-CvnR4J1T.js')}),
8048
+ .../* #__PURE__ */ Object.assign({"/widgets/EodashDatePicker.vue": () => import('./EodashDatePicker-Dewym-cx.js'),"/widgets/EodashItemCatalog/index.vue": () => import('./index-BxDh5v-H.js'),"/widgets/EodashItemFilter.vue": () => import('./EodashItemFilter-CAsZpOoQ.js'),"/widgets/EodashLayerControl.vue": () => import('./EodashLayerControl-fn-rt8Ac.js'),"/widgets/EodashLayoutSwitcher.vue": () => import('./EodashLayoutSwitcher-B9XqQXCS.js'),"/widgets/EodashMap/EodashMapBtns.vue": () => import('./EodashMapBtns-nFY6MIAX.js'),"/widgets/EodashMap/index.vue": () => import('./index-BkW06-Lg.js'),"/widgets/EodashProcess/ProcessList.vue": () => import('./ProcessList-DxyCFQdz.js').then(n => n.a),"/widgets/EodashProcess/index.vue": () => import('./index-BJvLt3Xf.js'),"/widgets/EodashStacInfo.vue": () => import('./EodashStacInfo-lxBKoav9.js'),"/widgets/EodashTimeSlider.vue": () => import('./EodashTimeSlider-DI97QkNT.js'),"/widgets/EodashTools.vue": () => import('./EodashTools-D5ShUT1g.js'),"/widgets/ExportState.vue": () => import('./ExportState-ruNyRS2E.js'),"/widgets/PopUp.vue": () => import('./PopUp-DRgOmD7-.js'),"/widgets/WidgetsContainer.vue": () => import('./WidgetsContainer-DXD_8rqh.js')}),
8002
8049
  .../* #__PURE__ */ Object.assign({}),
8003
8050
  };
8004
8051
  for (const key in importMap) {
@@ -8124,7 +8171,7 @@ const getWidgetDefinition = (config) => {
8124
8171
 
8125
8172
  case "web-component":
8126
8173
  importedWidget.component = defineAsyncComponent({
8127
- loader: () => import('./DynamicWebComponent-B4PdeZ9P.js'),
8174
+ loader: () => import('./DynamicWebComponent-CBsxC82P.js'),
8128
8175
  suspensible: true,
8129
8176
  });
8130
8177
  importedWidget.props = reactive(config.widget);
@@ -8521,7 +8568,7 @@ return (_ctx, _cache) => {
8521
8568
 
8522
8569
  };
8523
8570
 
8524
- const version = "5.3.2";
8571
+ const version = "5.3.3";
8525
8572
  const pkgJson = {
8526
8573
  version};
8527
8574
 
@@ -8631,15 +8678,15 @@ const { smAndDown } = useDisplay();
8631
8678
 
8632
8679
  const TemplateComponent = computed(() =>
8633
8680
  smAndDown.value
8634
- ? defineAsyncComponent(() => import('./MobileLayout-B77RzrNe.js'))
8635
- : defineAsyncComponent(() => import('./DashboardLayout-BHQnHqWW.js')),
8681
+ ? defineAsyncComponent(() => import('./MobileLayout-BfBeF-JF.js'))
8682
+ : defineAsyncComponent(() => import('./DashboardLayout-Cp8Rv3Ef.js')),
8636
8683
  );
8637
8684
 
8638
8685
  const HeaderComponent = defineAsyncComponent(
8639
- () => import('./Header-BHgaNMEH.js'),
8686
+ () => import('./Header-BBdi_-Lp.js'),
8640
8687
  );
8641
8688
  const FooterComponent = defineAsyncComponent(
8642
- () => import('./Footer-DfXUC8IK.js'),
8689
+ () => import('./Footer-IQNyfd78.js'),
8643
8690
  );
8644
8691
 
8645
8692
  const error = ref("");
@@ -1,5 +1,5 @@
1
- import { q as getCompareLayers, p as getLayers, V as replaceLayer, a as extractLayerConfig, w as extractLayerLegend, m as mergeGeojsons, j as axios, W as axios$1, H as compareIndicator, F as indicator } from './helpers-DoQGyrvY.js';
2
- import { P as useEmitLayersUpdate } from './asWebComponent-Dptqds6-.js';
1
+ import { q as getCompareLayers, p as getLayers, V as replaceLayer, a as extractLayerConfig, w as extractLayerLegend, m as mergeGeojsons, j as axios, W as axios$1, H as compareIndicator, F as indicator } from './helpers-CtUlAW0N.js';
2
+ import { P as useEmitLayersUpdate } from './asWebComponent-DdguWGDI.js';
3
3
  import { isMulti } from '@eox/jsonform/src/custom-inputs/spatial/utils';
4
4
  import log from 'loglevel';
5
5
 
@@ -1,2 +1,2 @@
1
- export { aI as EodashConstructor, aH as register, aJ as store } from './asWebComponent-Dptqds6-.js';
1
+ export { aI as EodashConstructor, aH as register, aJ as store } from './asWebComponent-DdguWGDI.js';
2
2
  import 'vue';
@@ -1,6 +1,6 @@
1
1
  import { computed, watch, onScopeDispose, nextTick, ref, watchEffect, effectScope, inject, mergeProps, shallowRef, onMounted, toRef, reactive, provide, toValue, toRaw, readonly, warn, onBeforeUnmount, createElementVNode, Fragment, createVNode, Teleport, withDirectives, vShow, Transition } from 'vue';
2
- import { ar as isOn, as as eventName, p as propsFactory, at as destructComputed, au as parseAnchor, av as flipSide, aw as flipAlign, ax as flipCorner, ay as CircularBuffer, az as deepEqual, X as consoleError, aA as getAxis, o as convertToUnit, v as clamp, ao as IN_BROWSER, y as useToggleScope, aB as defer, ak as getCurrentInstance, aC as templateRef, aD as matchesSelector, D as useDisplay, q as makeThemeProps, d as makeDimensionProps, e as makeComponentProps, g as genericComponent, x as useProxiedModel, k as provideTheme, l as useRtl, f as useBackgroundColor, b as useDimension, aE as useRouter, aF as useBackButton, an as standardEasing, c as useRender } from './asWebComponent-Dptqds6-.js';
3
- import { m as makeTransitionProps, M as MaybeTransition } from './transition-CFfv5MCB.js';
2
+ import { ar as isOn, as as eventName, p as propsFactory, at as destructComputed, au as parseAnchor, av as flipSide, aw as flipAlign, ax as flipCorner, ay as CircularBuffer, az as deepEqual, X as consoleError, aA as getAxis, o as convertToUnit, v as clamp, ao as IN_BROWSER, y as useToggleScope, aB as defer, ak as getCurrentInstance, aC as templateRef, aD as matchesSelector, D as useDisplay, q as makeThemeProps, d as makeDimensionProps, e as makeComponentProps, g as genericComponent, x as useProxiedModel, k as provideTheme, l as useRtl, f as useBackgroundColor, b as useDimension, aE as useRouter, aF as useBackButton, an as standardEasing, c as useRender } from './asWebComponent-DdguWGDI.js';
3
+ import { m as makeTransitionProps, M as MaybeTransition } from './transition-BdzATvPB.js';
4
4
 
5
5
  class Box {
6
6
  constructor(args) {
@@ -1,8 +1,8 @@
1
1
  import log from 'loglevel';
2
- import { s as separateEndpointLinks, c as createTiffLayerDefinition, p as pollProcessStatus, e as extractAsyncResults, u as updateJobsStatus, a as creatAsyncProcessLayerDefinitions, g as getBboxProperty, b as generateTimePairs, f as updateJsonformSchemaTarget, h as extractGeometries, i as applyProcessLayersToMap } from './async-C1hb39Tc.js';
3
- import { j as axios, a as extractLayerConfig, H as compareIndicator, F as indicator, x as extractCollectionUrls, G as currentCompareUrl, A as currentUrl, y as generateLinksFromItems, n as getDatetimeProperty, B as datetime, I as comparePoi, C as poi } from './helpers-DoQGyrvY.js';
2
+ import { s as separateEndpointLinks, c as createTiffLayerDefinition, p as pollProcessStatus, e as extractAsyncResults, u as updateJobsStatus, a as creatAsyncProcessLayerDefinitions, g as getBboxProperty, b as generateTimePairs, f as updateJsonformSchemaTarget, h as extractGeometries, i as applyProcessLayersToMap } from './async-D1MvO_Z_.js';
3
+ import { j as axios, a as extractLayerConfig, H as compareIndicator, F as indicator, x as extractCollectionUrls, G as currentCompareUrl, A as currentUrl, y as generateLinksFromItems, n as getDatetimeProperty, B as datetime, I as comparePoi, C as poi } from './helpers-CtUlAW0N.js';
4
4
  import mustache from 'mustache';
5
- import { Q as isFirstLoad, E as useSTAcStore, S as readParquetItems, T as useGetSubCodeId } from './asWebComponent-Dptqds6-.js';
5
+ import { Q as isFirstLoad, E as useSTAcStore, S as readParquetItems, T as useGetSubCodeId } from './asWebComponent-DdguWGDI.js';
6
6
  import { toAbsolute } from 'stac-js/src/http.js';
7
7
 
8
8
  ////// --- CHARTS --- //////
@@ -3838,7 +3838,7 @@ const currentUrl = ref("");
3838
3838
  const currentCompareUrl = ref("");
3839
3839
 
3840
3840
  /** Currently selected datetime */
3841
- const datetime = ref(new Date().toISOString());
3841
+ const datetime = ref("");
3842
3842
 
3843
3843
  /** Currently selected indicator */
3844
3844
  const indicator = ref("");
@@ -4270,14 +4270,21 @@ const extractRoles = (properties, linkOrAsset) => {
4270
4270
  * @param {import("stac-ts").StacItem} item
4271
4271
  * @param {string} itemUrl
4272
4272
  * @param {string | undefined} key
4273
- * @returns
4273
+ * @returns
4274
4274
  **/
4275
- const fetchStyle = async (item, itemUrl, key=undefined) => {
4275
+ const fetchStyle = async (item, itemUrl, key = undefined) => {
4276
4276
  let styleLink = null;
4277
4277
  if (key) {
4278
- styleLink = item.links.find((link) => link.rel.includes("style") && link["links:keys"] && /** @type {Array<string>} */ (link["links:keys"]).includes(key) );
4278
+ styleLink = item.links.find(
4279
+ (link) =>
4280
+ link.rel.includes("style") &&
4281
+ link["links:keys"] &&
4282
+ /** @type {Array<string>} */ (link["links:keys"]).includes(key),
4283
+ );
4279
4284
  } else {
4280
- styleLink = item.links.find((link) => link.rel.includes("style") && !link["links:keys"]);
4285
+ styleLink = item.links.find(
4286
+ (link) => link.rel.includes("style") && !link["links:keys"],
4287
+ );
4281
4288
  }
4282
4289
  if (styleLink) {
4283
4290
  let url = "";
@@ -4424,12 +4431,11 @@ const extractLayerTimeValues = (items, currentStep) => {
4424
4431
  };
4425
4432
  };
4426
4433
 
4427
-
4428
4434
  /**
4429
4435
  * Recursively find all layers whose ID up to the first ; is same as given layer
4430
4436
  *
4431
4437
  * @param {import("@eox/map").EoxLayer[]} layers
4432
- * @param {import("@eox/map").EoxLayer | undefined} referenceLayer - layer
4438
+ * @param {import("@eox/map").EoxLayer | undefined} referenceLayer - layer
4433
4439
  * @returns {import("@eox/map").EoxLayer[]} Matching layer objects.
4434
4440
  */
4435
4441
  const findLayersByLayerPrefix = (layers, referenceLayer) => {
@@ -4493,7 +4499,11 @@ const replaceLayersInStructure = (layers, toRemove, toInsert) => {
4493
4499
  for (const layer of layers) {
4494
4500
  if (layer.type === "Group" && Array.isArray(layer.layers)) {
4495
4501
  // Recurse into group layers
4496
- const newGroupLayers = replaceLayersInStructure(layer.layers, toRemove, toInsert);
4502
+ const newGroupLayers = replaceLayersInStructure(
4503
+ layer.layers,
4504
+ toRemove,
4505
+ toInsert,
4506
+ );
4497
4507
  result.push({ ...layer, layers: newGroupLayers });
4498
4508
  continue;
4499
4509
  }
@@ -4521,7 +4531,6 @@ const replaceLayersInStructure = (layers, toRemove, toInsert) => {
4521
4531
  return result;
4522
4532
  };
4523
4533
 
4524
-
4525
4534
  /**
4526
4535
  * Removes the layer with the id provided and injects an array of layers in its position
4527
4536
  * @param {import("@eox/map").EoxLayer[]} currentLayers
@@ -4567,7 +4576,7 @@ const getColFromLayer = async (indicators, layer) => {
4567
4576
  for (const ind of indicators) {
4568
4577
  if (ind.collectionStac?.id !== collectionId) continue;
4569
4578
  const items = await ind.getItems();
4570
- const itemIds = items?.map(item => item.id || item.datetime) ?? [];
4579
+ const itemIds = items?.map((item) => item.id || item.datetime) ?? [];
4571
4580
  if (itemIds.includes(itemId)) {
4572
4581
  return ind;
4573
4582
  }
@@ -2,13 +2,13 @@ import { onMounted, watch, nextTick, ref, useTemplateRef, computed, createElemen
2
2
  import '@eox/chart';
3
3
  import '@eox/drawtools';
4
4
  import '@eox/jsonform';
5
- import { R as eoxLayersKey, K as useOnLayersUpdate, _ as _export_sfc, E as useSTAcStore, G as VBtn } from './asWebComponent-Dptqds6-.js';
5
+ import { R as eoxLayersKey, K as useOnLayersUpdate, _ as _export_sfc, E as useSTAcStore, G as VBtn } from './asWebComponent-DdguWGDI.js';
6
6
  import { storeToRefs } from 'pinia';
7
- import { P as ProcessList, c as compareJobs, j as jobs } from './ProcessList-BFvV4RvS.js';
8
- import { i as initProcess, o as onChartClick, h as handleProcesses } from './handling-CZ537GCL.js';
7
+ import { P as ProcessList, c as compareJobs, j as jobs } from './ProcessList-DxyCFQdz.js';
8
+ import { i as initProcess, o as onChartClick, h as handleProcesses } from './handling-CbgeKrqT.js';
9
9
  import { useEventBus } from '@vueuse/core';
10
- import { u as updateJobsStatus, d as download } from './async-C1hb39Tc.js';
11
- import { H as compareIndicator, F as indicator, N as mapCompareEl, h as mapEl, T as compareChartEl, U as chartEl } from './helpers-DoQGyrvY.js';
10
+ import { u as updateJobsStatus, d as download } from './async-D1MvO_Z_.js';
11
+ import { H as compareIndicator, F as indicator, N as mapCompareEl, h as mapEl, T as compareChartEl, U as chartEl } from './helpers-CtUlAW0N.js';
12
12
  import { mdiCogPlayOutline, mdiDownloadCircleOutline } from '@mdi/js';
13
13
 
14
14
  /**