@eodash/eodash 5.0.0-rc.2.4 → 5.0.0-rc.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 (80) hide show
  1. package/core/client/composables/DefineWidgets.js +8 -1
  2. package/core/client/eodash.js +9 -9
  3. package/core/client/eodashSTAC/createLayers.js +4 -17
  4. package/core/client/eodashSTAC/helpers.js +23 -0
  5. package/core/client/store/stac.js +3 -1
  6. package/core/client/types.ts +127 -21
  7. package/core/client/utils/states.js +9 -0
  8. package/core/client/vite-env.d.ts +0 -13
  9. package/dist/client/{DashboardLayout-D1UcB3RV.js → DashboardLayout-t_PavJPO.js} +2 -2
  10. package/dist/client/{DynamicWebComponent-DtZ_mHL9.js → DynamicWebComponent-y07rVJch.js} +1 -1
  11. package/dist/client/{EodashDatePicker-CYU0MZX5.js → EodashDatePicker-CcOfyzGD.js} +3 -83
  12. package/dist/client/{EodashItemFilter-SE9oW3oZ.js → EodashItemFilter-B9HCvIMi.js} +1 -1
  13. package/dist/client/{EodashLayerControl-BuGe29Nt.js → EodashLayerControl-KStn7Nb_.js} +8 -2
  14. package/dist/client/{EodashLayoutSwitcher-6wLl-Gtd.js → EodashLayoutSwitcher-DqeFO3RN.js} +2 -2
  15. package/dist/client/{EodashMapBtns-BWWu6eHG.js → EodashMapBtns-5BF27qJB.js} +36 -12
  16. package/dist/client/{EodashStacInfo-DjRSGLHM.js → EodashStacInfo-C_hDy6Pd.js} +7 -1
  17. package/dist/client/{EodashTools-CJ4hBH_X.js → EodashTools-BXflvRf8.js} +5 -4
  18. package/dist/client/{ExportState-BqnlEpzR.js → ExportState-C0QRemK1.js} +27 -12
  19. package/dist/client/{Footer-C_3WrfI4.js → Footer-7VGyGUAs.js} +1 -1
  20. package/dist/client/{Header-D_hcGpNG.js → Header-BQJnXHYq.js} +3 -3
  21. package/dist/client/{MobileLayout-CDbupC9v.js → MobileLayout-b8nQ-Vyl.js} +5 -5
  22. package/dist/client/{PopUp-Ba6mY2jQ.js → PopUp-DgNrh9Df.js} +3 -3
  23. package/dist/client/ProcessList-C62SOVO6.js +484 -0
  24. package/dist/client/{VImg-Yc9F9pYq.js → VImg-D4eT3IQ1.js} +2 -2
  25. package/dist/client/{VMain-BiS7HPEk.js → VMain-C3hN2-H3.js} +1 -1
  26. package/dist/client/{VOverlay-B9mxXaCv.js → VOverlay-tAeNygaA.js} +15 -6
  27. package/dist/client/{VTooltip-XJLaLrZQ.js → VTooltip-B0Q3iHMZ.js} +3 -3
  28. package/dist/client/{WidgetsContainer-DRVb_73N.js → WidgetsContainer-CtDHfCYf.js} +1 -1
  29. package/dist/client/{asWebComponent-DZpMGxEY.js → asWebComponent-BJ2NWunV.js} +100 -95
  30. package/dist/client/eo-dash.css +2 -2
  31. package/dist/client/eo-dash.js +1 -1
  32. package/dist/client/{forwardRefs-BtkfywIE.js → forwardRefs-CIFAqXaZ.js} +9 -9
  33. package/dist/client/{EodashMap-DhVCoYMi.js → index-BQ16n4Sk.js} +103 -78
  34. package/dist/client/index-Cv7HBz49.js +85 -0
  35. package/dist/client/{EodashProcess-GSj_LMsK.js → index-Da5xXX6Q.js} +349 -443
  36. package/dist/client/{index-f55xuyof.js → index-DvcUndod.js} +1 -1
  37. package/dist/client/{transition-CtL4BoVi.js → transition-Cdb4K27U.js} +1 -1
  38. package/dist/types/core/client/components/MobileLayout.vue.d.ts +9 -9
  39. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +11 -6
  40. package/dist/types/core/client/eodashSTAC/createLayers.d.ts +6 -5
  41. package/dist/types/core/client/eodashSTAC/helpers.d.ts +383 -2
  42. package/dist/types/core/client/types.d.ts +85 -19
  43. package/dist/types/core/client/utils/states.d.ts +7 -0
  44. package/dist/types/widgets/EodashDatePicker.vue.d.ts +4 -4
  45. package/dist/types/widgets/EodashItemFilter.vue.d.ts +18 -18
  46. package/dist/types/widgets/EodashLayerControl.vue.d.ts +2 -2
  47. package/dist/types/widgets/EodashLayoutSwitcher.vue.d.ts +2 -2
  48. package/dist/types/widgets/EodashMap/methods/create-layers-config.d.ts +9 -0
  49. package/dist/types/widgets/EodashMap/methods/index.d.ts +5 -0
  50. package/dist/types/widgets/EodashMapBtns.vue.d.ts +8 -2
  51. package/dist/types/widgets/EodashProcess/ProcessList.vue.d.ts +2 -0
  52. package/dist/types/widgets/EodashProcess/methods/async.d.ts +45 -0
  53. package/dist/types/widgets/EodashProcess/methods/composables.d.ts +19 -0
  54. package/dist/types/widgets/EodashProcess/methods/handling.d.ts +78 -0
  55. package/dist/types/widgets/EodashProcess/methods/outputs.d.ts +54 -0
  56. package/dist/types/widgets/EodashProcess/methods/utils.d.ts +42 -0
  57. package/dist/types/widgets/EodashStacInfo.vue.d.ts +12 -12
  58. package/dist/types/widgets/EodashTools.vue.d.ts +44 -6
  59. package/dist/types/widgets/PopUp.vue.d.ts +4 -4
  60. package/package.json +30 -29
  61. package/widgets/EodashLayerControl.vue +8 -1
  62. package/widgets/{EodashMap.vue → EodashMap/index.vue} +53 -29
  63. package/widgets/EodashMap/methods/create-layers-config.js +151 -0
  64. package/{core/client/composables/EodashMap.js → widgets/EodashMap/methods/index.js} +4 -153
  65. package/widgets/EodashMapBtns.vue +33 -7
  66. package/widgets/EodashProcess/ProcessList.vue +82 -0
  67. package/widgets/EodashProcess/index.vue +186 -0
  68. package/widgets/EodashProcess/methods/async.js +209 -0
  69. package/widgets/EodashProcess/methods/composables.js +129 -0
  70. package/widgets/EodashProcess/methods/handling.js +254 -0
  71. package/widgets/EodashProcess/methods/outputs.js +216 -0
  72. package/widgets/EodashProcess/methods/utils.js +138 -0
  73. package/widgets/EodashStacInfo.vue +6 -0
  74. package/widgets/EodashTools.vue +1 -0
  75. package/core/client/composables/EodashProcess.js +0 -624
  76. package/dist/types/core/client/composables/EodashMap.d.ts +0 -6
  77. package/dist/types/core/client/composables/EodashProcess.d.ts +0 -162
  78. package/widgets/EodashProcess.vue +0 -208
  79. /package/dist/types/widgets/{EodashMap.vue.d.ts → EodashMap/index.vue.d.ts} +0 -0
  80. /package/dist/types/widgets/{EodashProcess.vue.d.ts → EodashProcess/index.vue.d.ts} +0 -0
@@ -1,8 +1,8 @@
1
- import { ref, reactive, watch, onScopeDispose, effectScope, capitalize, computed, watchEffect, toRefs, shallowRef, Fragment, warn, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, toRaw, createVNode, mergeProps, onBeforeUnmount, readonly, onMounted, onDeactivated, onActivated, nextTick, shallowReactive, onUnmounted, isRef, toRef, onUpdated, Text, Transition, resolveDynamicComponent, withDirectives, useModel, createBlock, createCommentVNode, openBlock, withCtx, createTextVNode, createElementVNode, toDisplayString, defineAsyncComponent, onErrorCaptured, Suspense, createElementBlock, normalizeProps, withAsyncContext, normalizeStyle, defineCustomElement } from 'vue';
1
+ import { ref, reactive, watch, onScopeDispose, effectScope, capitalize, computed, watchEffect, toRefs, shallowRef, Fragment, warn, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, toRaw, createVNode, mergeProps, onBeforeUnmount, readonly, onMounted, onDeactivated, onActivated, nextTick, shallowReactive, onUnmounted, isRef, toRef, onUpdated, Text, Transition, resolveDynamicComponent, withDirectives, toDisplayString, useModel, createBlock, createCommentVNode, openBlock, withCtx, createTextVNode, createElementVNode, defineAsyncComponent, onErrorCaptured, Suspense, createElementBlock, normalizeProps, withAsyncContext, normalizeStyle, defineCustomElement } from 'vue';
2
2
  import { defineStore, storeToRefs, createPinia } from 'pinia';
3
3
  import { setupCache } from 'axios-cache-interceptor';
4
4
  import log from 'loglevel';
5
- import { mdiViewDashboardVariant, mdiViewDashboard, mdiCurrencyEur, mdiWeatherWindy, mdiSetCenter, mdiHospitalBoxOutline, mdiImageFilterHdr, mdiWater, mdiBarley, mdiClose, mdiAlertCircle, mdiPlus, mdiMenuDown, mdiChevronLeft, mdiChevronRight } from '@mdi/js';
5
+ import { mdiViewDashboard, mdiViewDashboardVariant, mdiCurrencyEur, mdiWeatherWindy, mdiSetCenter, mdiHospitalBoxOutline, mdiImageFilterHdr, mdiWater, mdiBarley, mdiClose, mdiAlertCircle, mdiPlus, mdiMenuDown, mdiChevronLeft, mdiChevronRight } from '@mdi/js';
6
6
  import { useEventBus, createSharedComposable } from '@vueuse/core';
7
7
  import WebFontLoader from 'webfontloader';
8
8
  import { toAbsolute } from 'stac-js/src/http.js';
@@ -615,26 +615,6 @@ const toFiniteNumber = (value, defaultValue) => {
615
615
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
616
616
  };
617
617
 
618
- const ALPHA = 'abcdefghijklmnopqrstuvwxyz';
619
-
620
- const DIGIT = '0123456789';
621
-
622
- const ALPHABET = {
623
- DIGIT,
624
- ALPHA,
625
- ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
626
- };
627
-
628
- const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
629
- let str = '';
630
- const {length} = alphabet;
631
- while (size--) {
632
- str += alphabet[Math.random() * length|0];
633
- }
634
-
635
- return str;
636
- };
637
-
638
618
  /**
639
619
  * If the thing is a FormData object, return true, otherwise return false.
640
620
  *
@@ -762,8 +742,6 @@ const utils$1 = {
762
742
  findKey,
763
743
  global: _global,
764
744
  isContextDefined,
765
- ALPHABET,
766
- generateString,
767
745
  isSpecCompliantForm,
768
746
  toJSONObject,
769
747
  isAsyncFn,
@@ -2250,8 +2228,9 @@ function combineURLs(baseURL, relativeURL) {
2250
2228
  *
2251
2229
  * @returns {string} The combined full path
2252
2230
  */
2253
- function buildFullPath(baseURL, requestedURL) {
2254
- if (baseURL && !isAbsoluteURL(requestedURL)) {
2231
+ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
2232
+ let isRelativeUrl = !isAbsoluteURL(requestedURL);
2233
+ if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
2255
2234
  return combineURLs(baseURL, requestedURL);
2256
2235
  }
2257
2236
  return requestedURL;
@@ -2366,7 +2345,7 @@ const resolveConfig = (config) => {
2366
2345
 
2367
2346
  newConfig.headers = headers = AxiosHeaders$1.from(headers);
2368
2347
 
2369
- newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);
2348
+ newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
2370
2349
 
2371
2350
  // HTTP basic authentication
2372
2351
  if (auth) {
@@ -3089,7 +3068,7 @@ function dispatchRequest(config) {
3089
3068
  });
3090
3069
  }
3091
3070
 
3092
- const VERSION$1 = "1.7.9";
3071
+ const VERSION$1 = "1.8.4";
3093
3072
 
3094
3073
  const validators$1 = {};
3095
3074
 
@@ -3274,6 +3253,13 @@ let Axios$1 = class Axios {
3274
3253
  }
3275
3254
  }
3276
3255
 
3256
+ // Set config.allowAbsoluteUrls
3257
+ if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {
3258
+ config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
3259
+ } else {
3260
+ config.allowAbsoluteUrls = true;
3261
+ }
3262
+
3277
3263
  validator.assertOptions(config, {
3278
3264
  baseUrl: validators.spelling('baseURL'),
3279
3265
  withXsrfToken: validators.spelling('withXSRFToken')
@@ -3369,7 +3355,7 @@ let Axios$1 = class Axios {
3369
3355
 
3370
3356
  getUri(config) {
3371
3357
  config = mergeConfig$1(this.defaults, config);
3372
- const fullPath = buildFullPath(config.baseURL, config.url);
3358
+ const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
3373
3359
  return buildURL(fullPath, config.params, config.paramsSerializer);
3374
3360
  }
3375
3361
  };
@@ -3800,10 +3786,9 @@ const eodash = reactive({
3800
3786
  // "https://gtif-cerulean.github.io/catalog/cerulean/catalog.json",
3801
3787
  // "https://eodashcatalog.eox.at/samplecatalog/samples/catalog.json",
3802
3788
  // "https://eodashcatalog.eox.at/test-style/trilateral/catalog.json",
3803
- // "https://gtif-cerulean.github.io/catalog/cerulean/catalog.json",
3804
3789
  // "https://gtif-cerulean.github.io/deside-catalog/deside/catalog.json",
3805
- // "https://gtif-cerulean.github.io/cerulean-catalog/cerulean/catalog.json",
3806
- "https://gtif-austria.github.io/public-catalog/GTIF-Austria/catalog.json",
3790
+ "https://gtif-cerulean.github.io/cerulean-catalog/cerulean/catalog.json",
3791
+ // "https://gtif-austria.github.io/public-catalog/GTIF-Austria/catalog.json",
3807
3792
  brand: {
3808
3793
  noLayout: true,
3809
3794
  name: "Demo",
@@ -3949,7 +3934,7 @@ const eodash = reactive({
3949
3934
  defineWidget: (selectedSTAC) => {
3950
3935
  return selectedSTAC
3951
3936
  ? {
3952
- id: "Datepicker",
3937
+ id: "light-datepicker",
3953
3938
  type: "internal",
3954
3939
  layout: { x: 5, y: 8, w: 2, h: 4 },
3955
3940
  title: "Date",
@@ -4043,7 +4028,7 @@ const eodash = reactive({
4043
4028
  defineWidget: (selectedSTAC) => {
4044
4029
  return selectedSTAC
4045
4030
  ? {
4046
- id: "Datepicker",
4031
+ id: "expert-datepicker",
4047
4032
  type: "internal",
4048
4033
  layout: { x: 5, y: 11, w: 2, h: 1 },
4049
4034
  title: "Date",
@@ -4126,8 +4111,7 @@ const eodash = reactive({
4126
4111
  widget: {
4127
4112
  name: "EodashTools",
4128
4113
  properties: {
4129
- layoutTarget: "expert",
4130
- layoutIcon: mdiViewDashboardVariant,
4114
+ showLayoutSwitcher: false,
4131
4115
  itemFilterConfig: {
4132
4116
  cssVars: {
4133
4117
  "--form-flex-direction": "row",
@@ -4205,7 +4189,9 @@ const eodash = reactive({
4205
4189
  widget: {
4206
4190
  name: "EodashMapBtns",
4207
4191
  properties: {
4208
- compareIndicators: false,
4192
+ compareIndicators: {
4193
+ fallbackTemplate: "expert",
4194
+ },
4209
4195
  },
4210
4196
  },
4211
4197
  }
@@ -4216,7 +4202,7 @@ const eodash = reactive({
4216
4202
  defineWidget: (selectedSTAC) => {
4217
4203
  return selectedSTAC
4218
4204
  ? {
4219
- id: "Datepicker",
4205
+ id: "expert-Datepicker",
4220
4206
  type: "internal",
4221
4207
  layout: { x: 5, y: 8, w: 2, h: 4 },
4222
4208
  title: "Date",
@@ -4322,12 +4308,14 @@ function convertToUnit(str) {
4322
4308
  let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';
4323
4309
  if (str == null || str === '') {
4324
4310
  return undefined;
4325
- } else if (isNaN(+str)) {
4311
+ }
4312
+ const num = Number(str);
4313
+ if (isNaN(num)) {
4326
4314
  return String(str);
4327
- } else if (!isFinite(+str)) {
4315
+ } else if (!isFinite(num)) {
4328
4316
  return undefined;
4329
4317
  } else {
4330
- return `${Number(str)}${unit}`;
4318
+ return `${num}${unit}`;
4331
4319
  }
4332
4320
  }
4333
4321
  function isObject(obj) {
@@ -5419,7 +5407,7 @@ const en = {
5419
5407
  const LANG_PREFIX = '$vuetify.';
5420
5408
  const replace = (str, params) => {
5421
5409
  return str.replace(/\{(\d+)\}/g, (match, index) => {
5422
- return String(params[+index]);
5410
+ return String(params[Number(index)]);
5423
5411
  });
5424
5412
  };
5425
5413
  const createTranslateFunction = (current, fallback, messages) => {
@@ -5940,16 +5928,13 @@ function format(value, formatString, locale, formats) {
5940
5928
  case 'fullTime':
5941
5929
  options = {
5942
5930
  hour: 'numeric',
5943
- minute: 'numeric',
5944
- second: 'numeric',
5945
- hour12: true
5931
+ minute: 'numeric'
5946
5932
  };
5947
5933
  break;
5948
5934
  case 'fullTime12h':
5949
5935
  options = {
5950
5936
  hour: 'numeric',
5951
5937
  minute: 'numeric',
5952
- second: 'numeric',
5953
5938
  hour12: true
5954
5939
  };
5955
5940
  break;
@@ -5957,40 +5942,35 @@ function format(value, formatString, locale, formats) {
5957
5942
  options = {
5958
5943
  hour: 'numeric',
5959
5944
  minute: 'numeric',
5960
- second: 'numeric',
5961
5945
  hour12: false
5962
5946
  };
5963
5947
  break;
5964
5948
  case 'fullDateTime':
5965
5949
  options = {
5966
5950
  year: 'numeric',
5967
- month: 'long',
5951
+ month: 'short',
5968
5952
  day: 'numeric',
5969
5953
  hour: 'numeric',
5970
- minute: 'numeric',
5971
- second: 'numeric',
5972
- hour12: true
5954
+ minute: 'numeric'
5973
5955
  };
5974
5956
  break;
5975
5957
  case 'fullDateTime12h':
5976
5958
  options = {
5977
5959
  year: 'numeric',
5978
- month: 'long',
5960
+ month: 'short',
5979
5961
  day: 'numeric',
5980
5962
  hour: 'numeric',
5981
5963
  minute: 'numeric',
5982
- second: 'numeric',
5983
5964
  hour12: true
5984
5965
  };
5985
5966
  break;
5986
5967
  case 'fullDateTime24h':
5987
5968
  options = {
5988
5969
  year: 'numeric',
5989
- month: 'long',
5970
+ month: 'short',
5990
5971
  day: 'numeric',
5991
5972
  hour: 'numeric',
5992
5973
  minute: 'numeric',
5993
- second: 'numeric',
5994
5974
  hour12: false
5995
5975
  };
5996
5976
  break;
@@ -6007,11 +5987,9 @@ function format(value, formatString, locale, formats) {
6007
5987
  month: '2-digit',
6008
5988
  day: '2-digit',
6009
5989
  hour: 'numeric',
6010
- minute: 'numeric',
6011
- second: 'numeric',
6012
- hour12: false
5990
+ minute: 'numeric'
6013
5991
  };
6014
- break;
5992
+ return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');
6015
5993
  case 'keyboardDateTime12h':
6016
5994
  options = {
6017
5995
  year: 'numeric',
@@ -6019,10 +5997,9 @@ function format(value, formatString, locale, formats) {
6019
5997
  day: '2-digit',
6020
5998
  hour: 'numeric',
6021
5999
  minute: 'numeric',
6022
- second: 'numeric',
6023
6000
  hour12: true
6024
6001
  };
6025
- break;
6002
+ return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');
6026
6003
  case 'keyboardDateTime24h':
6027
6004
  options = {
6028
6005
  year: 'numeric',
@@ -6030,10 +6007,9 @@ function format(value, formatString, locale, formats) {
6030
6007
  day: '2-digit',
6031
6008
  hour: 'numeric',
6032
6009
  minute: 'numeric',
6033
- second: 'numeric',
6034
6010
  hour12: false
6035
6011
  };
6036
- break;
6012
+ return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');
6037
6013
  default:
6038
6014
  options = customFormat ?? {
6039
6015
  timeZone: 'UTC',
@@ -7066,7 +7042,7 @@ function createTheme(options) {
7066
7042
  function getHead() {
7067
7043
  return {
7068
7044
  style: [{
7069
- children: styles.value,
7045
+ textContent: styles.value,
7070
7046
  id: 'vuetify-theme-stylesheet',
7071
7047
  nonce: parsedOptions.cspNonce || false
7072
7048
  }]
@@ -7568,7 +7544,7 @@ function createVuetify() {
7568
7544
  goTo
7569
7545
  };
7570
7546
  }
7571
- const version$1 = "3.7.13";
7547
+ const version$1 = "3.7.18";
7572
7548
  createVuetify.version = version$1;
7573
7549
  function inject(key) {
7574
7550
  const vm = this.$;
@@ -7613,6 +7589,13 @@ const posIsSetFromUrl = ref(false);
7613
7589
  * @type {import("vue").Ref<Record<string, any> | undefined>}
7614
7590
  */
7615
7591
  const layerControlFormValue = ref({});
7592
+
7593
+ /**
7594
+ * Current value of the layer control JSON form for the latest layer the user interacted with.
7595
+ * @type {import("vue").Ref<Record<string, any> | undefined>}
7596
+ */
7597
+ const layerControlFormValueCompare = ref({});
7598
+
7616
7599
  /**
7617
7600
  * STAC indicators color palette, defaults to Bank-Wong palette
7618
7601
  * @type {string[]} */
@@ -7658,6 +7641,8 @@ const dataThemesBrands = {
7658
7641
  color: "#8E81AF",
7659
7642
  },
7660
7643
  };
7644
+ /** used for switching in and out of compare mode @see {@link widgets/EodashMapBtns.vue} */
7645
+ const switchToCompare = ref(true);
7661
7646
 
7662
7647
  /**
7663
7648
  * Loads font in the app using `webfontloader`
@@ -8589,6 +8574,29 @@ async function mergeGeojsons(geojsonUrls) {
8589
8574
  );
8590
8575
  }
8591
8576
 
8577
+ /**
8578
+ * adds tooltip to the layer if the style has tooltip property
8579
+ * @param {Record<string,any>} layer
8580
+ * @param {import("@/types").EodashStyleJson} [style]
8581
+ */
8582
+ const addTooltipInteraction = (layer, style) => {
8583
+ if (style?.tooltip) {
8584
+ layer.interactions = [
8585
+ {
8586
+ type: "select",
8587
+ options: {
8588
+ id: (Math.random() * 10000).toFixed() + "_selectInteraction",
8589
+ condition: "pointermove",
8590
+ style: {
8591
+ "stroke-color": "#335267",
8592
+ "stroke-width": 4,
8593
+ },
8594
+ },
8595
+ },
8596
+ ];
8597
+ }
8598
+ };
8599
+
8592
8600
  /**
8593
8601
  * @param {string} collectionId
8594
8602
  * @param {string} title
@@ -8661,22 +8669,7 @@ async function createLayersFromAssets(
8661
8669
  interactions: [],
8662
8670
  };
8663
8671
  // add tooltip interaction if style has tooltip
8664
- if (style?.tooltip) {
8665
- layer.interactions = [
8666
- // @ts-expect-error no type for eox-map layer
8667
- {
8668
- type: "select",
8669
- options: {
8670
- id: (Math.random() * 10000).toFixed() + "_selectInteraction",
8671
- condition: "pointermove",
8672
- style: {
8673
- "stroke-color": "#335267",
8674
- "stroke-width": 4,
8675
- },
8676
- },
8677
- },
8678
- ];
8679
- }
8672
+ addTooltipInteraction(layer, style);
8680
8673
 
8681
8674
  extractRoles(layer.properties, assets[ast]);
8682
8675
 
@@ -8717,10 +8710,11 @@ async function createLayersFromAssets(
8717
8710
  }),
8718
8711
  },
8719
8712
  ...(!style?.variables && { style }),
8713
+ interactions: [],
8720
8714
  };
8721
8715
 
8722
8716
  layer.properties = { ...layer.properties, ...(extraProperties ?? {}) };
8723
-
8717
+ addTooltipInteraction(layer, style);
8724
8718
  jsonArray.push(layer);
8725
8719
  }
8726
8720
  if (geoTIFFSources.length && typeof geoTIFFIdx === "number") {
@@ -9528,6 +9522,7 @@ const useSTAcStore = defineStore("stac", () => {
9528
9522
 
9529
9523
  selectedStac.value = resp.data;
9530
9524
  indicator.value = selectedStac.value?.id ?? "";
9525
+ switchToCompare.value = true;
9531
9526
  });
9532
9527
  })
9533
9528
  .catch((err) => {
@@ -9544,7 +9539,6 @@ const useSTAcStore = defineStore("stac", () => {
9544
9539
  */
9545
9540
  async function loadSelectedCompareSTAC(relativePath = "") {
9546
9541
  const absoluteUrl = useCompareAbsoluteUrl(relativePath);
9547
-
9548
9542
  await axios
9549
9543
  .get(absoluteUrl.value)
9550
9544
  .then(async (resp) => {
@@ -9567,6 +9561,7 @@ const useSTAcStore = defineStore("stac", () => {
9567
9561
  eodashCompareCollections.push(...collections);
9568
9562
 
9569
9563
  selectedCompareStac.value = resp.data;
9564
+ switchToCompare.value = false;
9570
9565
  });
9571
9566
  })
9572
9567
  .catch((err) => {
@@ -9695,7 +9690,7 @@ function useBorder(props) {
9695
9690
  // Utilities
9696
9691
  const allowedDensities = [null, 'default', 'comfortable', 'compact'];
9697
9692
 
9698
- // typeof allowedDensities[number] evalutes to any
9693
+ // typeof allowedDensities[number] evaluates to any
9699
9694
  // when generating api types for whatever reason.
9700
9695
 
9701
9696
  // Composables
@@ -11217,7 +11212,10 @@ const makeVBtnProps = propsFactory({
11217
11212
  type: [Boolean, Object],
11218
11213
  default: true
11219
11214
  },
11220
- text: String,
11215
+ text: {
11216
+ type: [String, Number, Boolean],
11217
+ default: undefined
11218
+ },
11221
11219
  ...makeBorderProps(),
11222
11220
  ...makeComponentProps(),
11223
11221
  ...makeDensityProps(),
@@ -11373,7 +11371,7 @@ const VBtn = genericComponent()({
11373
11371
  }
11374
11372
  }
11375
11373
  }, {
11376
- default: () => [slots.default?.() ?? props.text]
11374
+ default: () => [slots.default?.() ?? toDisplayString(props.text)]
11377
11375
  })]), !props.icon && hasAppend && createVNode("span", {
11378
11376
  "key": "append",
11379
11377
  "class": "v-btn__append"
@@ -11653,11 +11651,18 @@ const ErrorAlert = /*#__PURE__*/_export_sfc(_sfc_main$4, [['__scopeId',"data-v-a
11653
11651
  const internalWidgets = (() => {
11654
11652
  /** @type {Record<string, () => Promise<import("vue").Component>>} */
11655
11653
  const importMap = {
11656
- .../* #__PURE__ */ Object.assign({"/widgets/EodashDatePicker.vue": () => import('./EodashDatePicker-CYU0MZX5.js'),"/widgets/EodashItemFilter.vue": () => import('./EodashItemFilter-SE9oW3oZ.js'),"/widgets/EodashLayerControl.vue": () => import('./EodashLayerControl-BuGe29Nt.js'),"/widgets/EodashLayoutSwitcher.vue": () => import('./EodashLayoutSwitcher-6wLl-Gtd.js'),"/widgets/EodashMap.vue": () => import('./EodashMap-DhVCoYMi.js'),"/widgets/EodashMapBtns.vue": () => import('./EodashMapBtns-BWWu6eHG.js'),"/widgets/EodashProcess.vue": () => import('./EodashProcess-GSj_LMsK.js'),"/widgets/EodashStacInfo.vue": () => import('./EodashStacInfo-DjRSGLHM.js'),"/widgets/EodashTools.vue": () => import('./EodashTools-CJ4hBH_X.js'),"/widgets/ExportState.vue": () => import('./ExportState-BqnlEpzR.js'),"/widgets/PopUp.vue": () => import('./PopUp-Ba6mY2jQ.js'),"/widgets/WidgetsContainer.vue": () => import('./WidgetsContainer-DRVb_73N.js')}),
11654
+ .../* #__PURE__ */ Object.assign({"/widgets/EodashDatePicker.vue": () => import('./EodashDatePicker-CcOfyzGD.js'),"/widgets/EodashItemFilter.vue": () => import('./EodashItemFilter-B9HCvIMi.js'),"/widgets/EodashLayerControl.vue": () => import('./EodashLayerControl-KStn7Nb_.js'),"/widgets/EodashLayoutSwitcher.vue": () => import('./EodashLayoutSwitcher-DqeFO3RN.js'),"/widgets/EodashMap/index.vue": () => import('./index-BQ16n4Sk.js'),"/widgets/EodashMapBtns.vue": () => import('./EodashMapBtns-5BF27qJB.js'),"/widgets/EodashProcess/ProcessList.vue": () => import('./ProcessList-C62SOVO6.js').then(n => n.P),"/widgets/EodashProcess/index.vue": () => import('./index-Da5xXX6Q.js'),"/widgets/EodashStacInfo.vue": () => import('./EodashStacInfo-C_hDy6Pd.js'),"/widgets/EodashTools.vue": () => import('./EodashTools-BXflvRf8.js'),"/widgets/ExportState.vue": () => import('./ExportState-C0QRemK1.js'),"/widgets/PopUp.vue": () => import('./PopUp-DgNrh9Df.js'),"/widgets/WidgetsContainer.vue": () => import('./WidgetsContainer-CtDHfCYf.js')}),
11657
11655
  .../* #__PURE__ */ Object.assign({}),
11658
11656
  };
11659
11657
  for (const key in importMap) {
11660
- const newKey = /** @type {string} */ (key.split("/").at(-1)).slice(0, -4);
11658
+ // Remove the extention and "widgets" from the key path
11659
+ const path = key.split("/");
11660
+ path.splice(0, path.findIndex((el) => el === "widgets") + 1);
11661
+ const lastIdx = path.length - 1;
11662
+ path[lastIdx] = path[lastIdx].split(".")[0];
11663
+ const newKey =
11664
+ path[lastIdx] == "index" ? path[lastIdx - 1] : path.join("/");
11665
+
11661
11666
  Object.defineProperty(
11662
11667
  importMap,
11663
11668
  newKey,
@@ -11766,7 +11771,7 @@ const getWidgetDefinition = (config) => {
11766
11771
 
11767
11772
  case "web-component":
11768
11773
  importedWidget.component = defineAsyncComponent({
11769
- loader: () => import('./DynamicWebComponent-DtZ_mHL9.js'),
11774
+ loader: () => import('./DynamicWebComponent-y07rVJch.js'),
11770
11775
  suspensible: true,
11771
11776
  });
11772
11777
  importedWidget.props = reactive(config.widget);
@@ -12161,7 +12166,7 @@ return (_ctx, _cache) => {
12161
12166
 
12162
12167
  };
12163
12168
 
12164
- const version = "5.0.0-rc.2.4";
12169
+ const version = "5.0.0-rc.3";
12165
12170
  const pkgJson = {
12166
12171
  version};
12167
12172
 
@@ -12263,15 +12268,15 @@ const { loadSTAC } = useSTAcStore();
12263
12268
  const { smAndDown } = useDisplay();
12264
12269
  const TemplateComponent = computed(() =>
12265
12270
  smAndDown.value
12266
- ? defineAsyncComponent(() => import('./MobileLayout-CDbupC9v.js'))
12267
- : defineAsyncComponent(() => import('./DashboardLayout-D1UcB3RV.js')),
12271
+ ? defineAsyncComponent(() => import('./MobileLayout-b8nQ-Vyl.js'))
12272
+ : defineAsyncComponent(() => import('./DashboardLayout-t_PavJPO.js')),
12268
12273
  );
12269
12274
 
12270
12275
  const HeaderComponent = defineAsyncComponent(
12271
- () => import('./Header-D_hcGpNG.js'),
12276
+ () => import('./Header-BQJnXHYq.js'),
12272
12277
  );
12273
12278
  const FooterComponent = defineAsyncComponent(
12274
- () => import('./Footer-C_3WrfI4.js'),
12279
+ () => import('./Footer-7VGyGUAs.js'),
12275
12280
  );
12276
12281
 
12277
12282
  const templateHeight = props.isWebComponent ? "100%" : "100dvh";
@@ -12471,4 +12476,4 @@ function register() {
12471
12476
 
12472
12477
  register();
12473
12478
 
12474
- export { useSTAcStore as $, useDensity as A, useBackgroundColor as B, provideDefaults as C, makeDensityProps as D, isObject as E, useDefineTemplate as F, useLayout as G, useDimension as H, IN_BROWSER as I, makeDimensionProps as J, useBorder as K, useElevation as L, useRounded as M, VDefaultsProvider as N, makeRoundedProps as O, makeElevationProps as P, makeBorderProps as Q, clamp as R, consoleWarn as S, useToggleScope as T, useLayoutItem as U, VBtn as V, makeLayoutItemProps as W, eodashKey as X, consoleError as Y, datetime as Z, _export_sfc as _, useRender as a, eodashCollections as a0, collectionsPalette as a1, makePanelTransparent as a2, mapCompareEl as a3, mapEl as a4, eodashCompareCollections as a5, layerControlFormValue as a6, getColFromLayer as a7, eoxLayersKey as a8, setMapProjFromCol as a9, makeLocationProps as aA, makeLoaderProps as aB, LoaderSlot as aC, removeUnneededProperties as aD, VRow as aE, VCol as aF, copyToClipBoard as aG, SUPPORTS_INTERSECTION as aH, getCurrentInstance as aI, useDefineWidgets as aJ, isOn as aK, eventName as aL, destructComputed as aM, parseAnchor as aN, flipSide as aO, flipAlign as aP, flipCorner as aQ, getAxis as aR, defer as aS, templateRef as aT, matchesSelector as aU, useRouter as aV, useBackButton as aW, EodashConstructor as aX, register as aY, store as aZ, posIsSetFromUrl as aa, useOnLayersUpdate as ab, EodashCollection as ac, mapPosition as ad, availableMapProjection as ae, changeMapProjection as af, setActiveTemplate as ag, axios$1 as ah, getLayers as ai, extractLayerConfig as aj, currentUrl as ak, activeTemplate as al, getUid as am, createSimpleFunctional as an, useVariant as ao, useSize as ap, genOverlays as aq, makeVariantProps as ar, makeSizeProps as as, Ripple as at, useLoader as au, useLocation as av, usePosition as aw, useLink as ax, makeRouterProps as ay, makePositionProps as az, provideTheme as b, useRtl as c, useLocale as d, useGroup as e, makeThemeProps as f, genericComponent as g, makeTagProps as h, makeComponentProps as i, useProxiedModel as j, keys as k, useGroupItem as l, makeVBtnProps as m, makeGroupItemProps as n, omit as o, propsFactory as p, convertToUnit as q, useDisplay as r, useResizeObserver as s, useGoTo as t, useTextColor as u, VIcon as v, makeGroupProps as w, makeDisplayProps as x, IconValue as y, focusableChildren as z };
12479
+ export { eodashCollections as $, useDensity as A, useBackgroundColor as B, provideDefaults as C, makeDensityProps as D, isObject as E, useDefineTemplate as F, useLayout as G, useDimension as H, IN_BROWSER as I, makeDimensionProps as J, useBorder as K, useElevation as L, useRounded as M, VDefaultsProvider as N, makeRoundedProps as O, makeElevationProps as P, makeBorderProps as Q, clamp as R, consoleWarn as S, useToggleScope as T, useLayoutItem as U, VBtn as V, makeLayoutItemProps as W, eodashKey as X, datetime as Y, useSTAcStore as Z, _export_sfc as _, useRender as a, EodashConstructor as a$, collectionsPalette as a0, makePanelTransparent as a1, mapCompareEl as a2, mapEl as a3, eodashCompareCollections as a4, layerControlFormValueCompare as a5, layerControlFormValue as a6, getColFromLayer as a7, EodashCollection as a8, eoxLayersKey as a9, usePosition as aA, useLink as aB, makeRouterProps as aC, makePositionProps as aD, makeLocationProps as aE, makeLoaderProps as aF, LoaderSlot as aG, removeUnneededProperties as aH, VRow as aI, VCol as aJ, copyToClipBoard as aK, SUPPORTS_INTERSECTION as aL, getCurrentInstance as aM, useDefineWidgets as aN, isOn as aO, eventName as aP, destructComputed as aQ, parseAnchor as aR, flipSide as aS, flipAlign as aT, flipCorner as aU, getAxis as aV, defer as aW, templateRef as aX, matchesSelector as aY, useRouter as aZ, useBackButton as a_, setMapProjFromCol as aa, posIsSetFromUrl as ab, useOnLayersUpdate as ac, mapPosition as ad, switchToCompare as ae, availableMapProjection as af, changeMapProjection as ag, setActiveTemplate as ah, axios as ai, indicator as aj, extractLayerConfig as ak, getLayers as al, axios$1 as am, consoleError as an, currentUrl as ao, activeTemplate as ap, getUid as aq, createSimpleFunctional as ar, useVariant as as, useSize as at, genOverlays as au, makeVariantProps as av, makeSizeProps as aw, Ripple as ax, useLoader as ay, useLocation as az, provideTheme as b, register as b0, store as b1, useRtl as c, useLocale as d, useGroup as e, makeThemeProps as f, genericComponent as g, makeTagProps as h, makeComponentProps as i, useProxiedModel as j, keys as k, useGroupItem as l, makeVBtnProps as m, makeGroupItemProps as n, omit as o, propsFactory as p, convertToUnit as q, useDisplay as r, useResizeObserver as s, useGoTo as t, useTextColor as u, VIcon as v, makeGroupProps as w, makeDisplayProps as x, IconValue as y, focusableChildren as z };