@eodash/eodash 5.0.0-rc.2.2 → 5.0.0-rc.2.4

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 (53) hide show
  1. package/core/client/components/EodashOverlay.vue +56 -0
  2. package/core/client/components/Footer.vue +1 -15
  3. package/core/client/composables/EodashProcess.js +4 -0
  4. package/core/client/eodash.js +4 -7
  5. package/core/client/eodashSTAC/EodashCollection.js +62 -31
  6. package/core/client/eodashSTAC/createLayers.js +15 -2
  7. package/core/client/eodashSTAC/helpers.js +1 -2
  8. package/core/client/types.ts +1 -1
  9. package/core/client/utils/states.js +43 -0
  10. package/core/client/views/Dashboard.vue +4 -1
  11. package/core/client/vite-env.d.ts +13 -0
  12. package/dist/client/{DashboardLayout-ByVMURpM.js → DashboardLayout-D1UcB3RV.js} +3 -3
  13. package/dist/client/{DynamicWebComponent-BRQQ5AXV.js → DynamicWebComponent-DtZ_mHL9.js} +2 -2
  14. package/dist/client/{EodashDatePicker-DyLo_JUC.js → EodashDatePicker-CYU0MZX5.js} +3 -3
  15. package/dist/client/{EodashItemFilter-BR572AaH.js → EodashItemFilter-SE9oW3oZ.js} +3 -3
  16. package/dist/client/{EodashLayerControl-C_mi-Hoo.js → EodashLayerControl-BuGe29Nt.js} +11 -4
  17. package/dist/client/{EodashLayoutSwitcher-D4ooLbys.js → EodashLayoutSwitcher-6wLl-Gtd.js} +3 -3
  18. package/dist/client/{EodashMap-CGFv4e85.js → EodashMap-DhVCoYMi.js} +11 -4
  19. package/dist/client/{EodashMapBtns-_M7SW7Is.js → EodashMapBtns-BWWu6eHG.js} +5 -5
  20. package/dist/client/{EodashProcess-ZQAMi9Pc.js → EodashProcess-GSj_LMsK.js} +23 -18
  21. package/dist/client/{EodashStacInfo-CwOCcsGl.js → EodashStacInfo-DjRSGLHM.js} +2 -2
  22. package/dist/client/{EodashTools-C_X0RPIp.js → EodashTools-CJ4hBH_X.js} +5 -5
  23. package/dist/client/{ExportState-DNUSRJSJ.js → ExportState-BqnlEpzR.js} +5 -5
  24. package/dist/client/Footer-C_3WrfI4.js +119 -0
  25. package/dist/client/{Header-BcHAtFqr.js → Header-D_hcGpNG.js} +4 -4
  26. package/dist/client/{IframeWrapper-BgM9aU8f.js → IframeWrapper-XzQDZy0T.js} +1 -1
  27. package/dist/client/{MobileLayout-CUHZFLDY.js → MobileLayout-CDbupC9v.js} +6 -6
  28. package/dist/client/{PopUp-CEmhdNIj.js → PopUp-Ba6mY2jQ.js} +5 -4
  29. package/dist/client/{VImg-Cdaw92OV.js → VImg-Yc9F9pYq.js} +4 -4
  30. package/dist/client/{VMain-B7G2T3Zv.js → VMain-BiS7HPEk.js} +1 -1
  31. package/dist/client/{VOverlay-Mf1pOmgW.js → VOverlay-B9mxXaCv.js} +4 -4
  32. package/dist/client/{VTooltip-9810qjB2.js → VTooltip-XJLaLrZQ.js} +3 -3
  33. package/dist/client/{WidgetsContainer-GUwXMh9d.js → WidgetsContainer-DRVb_73N.js} +2 -2
  34. package/dist/client/{asWebComponent--e4yqM3f.js → asWebComponent-DZpMGxEY.js} +329 -170
  35. package/dist/client/eo-dash.css +2 -2
  36. package/dist/client/eo-dash.js +1 -1
  37. package/dist/client/{forwardRefs-B9UH8QZK.js → forwardRefs-BtkfywIE.js} +1 -1
  38. package/dist/client/{index-D-lbt2my.js → index-f55xuyof.js} +3 -1
  39. package/dist/client/{transition-CTjQmgIS.js → transition-CtL4BoVi.js} +2 -2
  40. package/dist/node/cli.js +2 -2
  41. package/dist/types/core/client/components/EodashOverlay.vue.d.ts +2 -0
  42. package/dist/types/core/client/components/MobileLayout.vue.d.ts +254 -241
  43. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +40 -15
  44. package/dist/types/core/client/eodashSTAC/createLayers.d.ts +23 -3
  45. package/dist/types/core/client/eodashSTAC/helpers.d.ts +3 -78
  46. package/dist/types/core/client/utils/states.d.ts +43 -0
  47. package/dist/types/widgets/PopUp.vue.d.ts +2 -2
  48. package/package.json +20 -20
  49. package/widgets/EodashItemFilter.vue +1 -1
  50. package/widgets/EodashLayerControl.vue +7 -0
  51. package/widgets/EodashMap.vue +8 -1
  52. package/widgets/EodashProcess.vue +18 -13
  53. package/dist/client/Footer-FUp1Te0L.js +0 -141
@@ -1,8 +1,8 @@
1
- import { ref, reactive, watch, onScopeDispose, effectScope, Fragment, computed, watchEffect, toRefs, capitalize, shallowRef, warn, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, toRaw, createVNode, mergeProps, onBeforeUnmount, readonly, onMounted, onDeactivated, onActivated, nextTick, shallowReactive, onUnmounted, isRef, toRef, onUpdated, Text, Transition, resolveDynamicComponent, withDirectives, useModel, openBlock, createBlock, withCtx, createTextVNode, toDisplayString, createElementVNode, createCommentVNode, defineAsyncComponent, onErrorCaptured, Suspense, normalizeProps, createElementBlock, 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, useModel, createBlock, createCommentVNode, openBlock, withCtx, createTextVNode, createElementVNode, toDisplayString, 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, mdiAlertCircle, mdiClose, mdiChevronRight, mdiChevronLeft, mdiMenuDown, mdiPlus } from '@mdi/js';
5
+ import { mdiViewDashboardVariant, mdiViewDashboard, 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';
@@ -783,7 +783,7 @@ const utils$1 = {
783
783
  *
784
784
  * @returns {Error} The created error.
785
785
  */
786
- function AxiosError(message, code, config, request, response) {
786
+ function AxiosError$1(message, code, config, request, response) {
787
787
  Error.call(this);
788
788
 
789
789
  if (Error.captureStackTrace) {
@@ -803,7 +803,7 @@ function AxiosError(message, code, config, request, response) {
803
803
  }
804
804
  }
805
805
 
806
- utils$1.inherits(AxiosError, Error, {
806
+ utils$1.inherits(AxiosError$1, Error, {
807
807
  toJSON: function toJSON() {
808
808
  return {
809
809
  // Standard
@@ -825,7 +825,7 @@ utils$1.inherits(AxiosError, Error, {
825
825
  }
826
826
  });
827
827
 
828
- const prototype$1 = AxiosError.prototype;
828
+ const prototype$1 = AxiosError$1.prototype;
829
829
  const descriptors = {};
830
830
 
831
831
  [
@@ -846,11 +846,11 @@ const descriptors = {};
846
846
  descriptors[code] = {value: code};
847
847
  });
848
848
 
849
- Object.defineProperties(AxiosError, descriptors);
849
+ Object.defineProperties(AxiosError$1, descriptors);
850
850
  Object.defineProperty(prototype$1, 'isAxiosError', {value: true});
851
851
 
852
852
  // eslint-disable-next-line func-names
853
- AxiosError.from = (error, code, config, request, response, customProps) => {
853
+ AxiosError$1.from = (error, code, config, request, response, customProps) => {
854
854
  const axiosError = Object.create(prototype$1);
855
855
 
856
856
  utils$1.toFlatObject(error, axiosError, function filter(obj) {
@@ -859,7 +859,7 @@ AxiosError.from = (error, code, config, request, response, customProps) => {
859
859
  return prop !== 'isAxiosError';
860
860
  });
861
861
 
862
- AxiosError.call(axiosError, error.message, code, config, request, response);
862
+ AxiosError$1.call(axiosError, error.message, code, config, request, response);
863
863
 
864
864
  axiosError.cause = error;
865
865
 
@@ -951,7 +951,7 @@ const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop)
951
951
  *
952
952
  * @returns
953
953
  */
954
- function toFormData(obj, formData, options) {
954
+ function toFormData$1(obj, formData, options) {
955
955
  if (!utils$1.isObject(obj)) {
956
956
  throw new TypeError('target must be an object');
957
957
  }
@@ -989,7 +989,7 @@ function toFormData(obj, formData, options) {
989
989
  }
990
990
 
991
991
  if (!useBlob && utils$1.isBlob(value)) {
992
- throw new AxiosError('Blob is not supported. Use a Buffer instead.');
992
+ throw new AxiosError$1('Blob is not supported. Use a Buffer instead.');
993
993
  }
994
994
 
995
995
  if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
@@ -1118,7 +1118,7 @@ function encode$1(str) {
1118
1118
  function AxiosURLSearchParams(params, options) {
1119
1119
  this._pairs = [];
1120
1120
 
1121
- params && toFormData(params, this, options);
1121
+ params && toFormData$1(params, this, options);
1122
1122
  }
1123
1123
 
1124
1124
  const prototype = AxiosURLSearchParams.prototype;
@@ -1349,7 +1349,7 @@ const platform = {
1349
1349
  };
1350
1350
 
1351
1351
  function toURLEncodedForm(data, options) {
1352
- return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
1352
+ return toFormData$1(data, new platform.classes.URLSearchParams(), Object.assign({
1353
1353
  visitor: function(value, key, path, helpers) {
1354
1354
  if (platform.isNode && utils$1.isBuffer(value)) {
1355
1355
  this.append(key, value.toString('base64'));
@@ -1473,7 +1473,7 @@ function stringifySafely(rawValue, parser, encoder) {
1473
1473
  }
1474
1474
  }
1475
1475
 
1476
- return (0, JSON.stringify)(rawValue);
1476
+ return (encoder || JSON.stringify)(rawValue);
1477
1477
  }
1478
1478
 
1479
1479
  const defaults = {
@@ -1524,7 +1524,7 @@ const defaults = {
1524
1524
  if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
1525
1525
  const _FormData = this.env && this.env.FormData;
1526
1526
 
1527
- return toFormData(
1527
+ return toFormData$1(
1528
1528
  isFileList ? {'files[]': data} : data,
1529
1529
  _FormData && new _FormData(),
1530
1530
  this.formSerializer
@@ -1558,7 +1558,7 @@ const defaults = {
1558
1558
  } catch (e) {
1559
1559
  if (strictJSONParsing) {
1560
1560
  if (e.name === 'SyntaxError') {
1561
- throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
1561
+ throw AxiosError$1.from(e, AxiosError$1.ERR_BAD_RESPONSE, this, null, this.response);
1562
1562
  }
1563
1563
  throw e;
1564
1564
  }
@@ -1721,7 +1721,7 @@ function buildAccessors(obj, header) {
1721
1721
  });
1722
1722
  }
1723
1723
 
1724
- class AxiosHeaders {
1724
+ let AxiosHeaders$1 = class AxiosHeaders {
1725
1725
  constructor(headers) {
1726
1726
  headers && this.set(headers);
1727
1727
  }
@@ -1932,12 +1932,12 @@ class AxiosHeaders {
1932
1932
 
1933
1933
  return this;
1934
1934
  }
1935
- }
1935
+ };
1936
1936
 
1937
- AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);
1937
+ AxiosHeaders$1.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);
1938
1938
 
1939
1939
  // reserved names hotfix
1940
- utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
1940
+ utils$1.reduceDescriptors(AxiosHeaders$1.prototype, ({value}, key) => {
1941
1941
  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
1942
1942
  return {
1943
1943
  get: () => value,
@@ -1947,7 +1947,7 @@ utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
1947
1947
  }
1948
1948
  });
1949
1949
 
1950
- utils$1.freezeMethods(AxiosHeaders);
1950
+ utils$1.freezeMethods(AxiosHeaders$1);
1951
1951
 
1952
1952
  /**
1953
1953
  * Transform the data for a request or a response
@@ -1960,7 +1960,7 @@ utils$1.freezeMethods(AxiosHeaders);
1960
1960
  function transformData(fns, response) {
1961
1961
  const config = this || defaults;
1962
1962
  const context = response || config;
1963
- const headers = AxiosHeaders.from(context.headers);
1963
+ const headers = AxiosHeaders$1.from(context.headers);
1964
1964
  let data = context.data;
1965
1965
 
1966
1966
  utils$1.forEach(fns, function transform(fn) {
@@ -1972,7 +1972,7 @@ function transformData(fns, response) {
1972
1972
  return data;
1973
1973
  }
1974
1974
 
1975
- function isCancel(value) {
1975
+ function isCancel$1(value) {
1976
1976
  return !!(value && value.__CANCEL__);
1977
1977
  }
1978
1978
 
@@ -1985,13 +1985,13 @@ function isCancel(value) {
1985
1985
  *
1986
1986
  * @returns {CanceledError} The created error.
1987
1987
  */
1988
- function CanceledError(message, config, request) {
1988
+ function CanceledError$1(message, config, request) {
1989
1989
  // eslint-disable-next-line no-eq-null,eqeqeq
1990
- AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);
1990
+ AxiosError$1.call(this, message == null ? 'canceled' : message, AxiosError$1.ERR_CANCELED, config, request);
1991
1991
  this.name = 'CanceledError';
1992
1992
  }
1993
1993
 
1994
- utils$1.inherits(CanceledError, AxiosError, {
1994
+ utils$1.inherits(CanceledError$1, AxiosError$1, {
1995
1995
  __CANCEL__: true
1996
1996
  });
1997
1997
 
@@ -2009,9 +2009,9 @@ function settle(resolve, reject, response) {
2009
2009
  if (!response.status || !validateStatus || validateStatus(response.status)) {
2010
2010
  resolve(response);
2011
2011
  } else {
2012
- reject(new AxiosError(
2012
+ reject(new AxiosError$1(
2013
2013
  'Request failed with status code ' + response.status,
2014
- [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
2014
+ [AxiosError$1.ERR_BAD_REQUEST, AxiosError$1.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
2015
2015
  response.config,
2016
2016
  response.request,
2017
2017
  response
@@ -2257,7 +2257,7 @@ function buildFullPath(baseURL, requestedURL) {
2257
2257
  return requestedURL;
2258
2258
  }
2259
2259
 
2260
- const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;
2260
+ const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;
2261
2261
 
2262
2262
  /**
2263
2263
  * Config-specific merge-function which creates a new config-object
@@ -2268,7 +2268,7 @@ const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing }
2268
2268
  *
2269
2269
  * @returns {Object} New object resulting from merging config2 to config1
2270
2270
  */
2271
- function mergeConfig(config1, config2) {
2271
+ function mergeConfig$1(config1, config2) {
2272
2272
  // eslint-disable-next-line no-param-reassign
2273
2273
  config2 = config2 || {};
2274
2274
  const config = {};
@@ -2360,11 +2360,11 @@ function mergeConfig(config1, config2) {
2360
2360
  }
2361
2361
 
2362
2362
  const resolveConfig = (config) => {
2363
- const newConfig = mergeConfig({}, config);
2363
+ const newConfig = mergeConfig$1({}, config);
2364
2364
 
2365
2365
  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;
2366
2366
 
2367
- newConfig.headers = headers = AxiosHeaders.from(headers);
2367
+ newConfig.headers = headers = AxiosHeaders$1.from(headers);
2368
2368
 
2369
2369
  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);
2370
2370
 
@@ -2413,7 +2413,7 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
2413
2413
  return new Promise(function dispatchXhrRequest(resolve, reject) {
2414
2414
  const _config = resolveConfig(config);
2415
2415
  let requestData = _config.data;
2416
- const requestHeaders = AxiosHeaders.from(_config.headers).normalize();
2416
+ const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
2417
2417
  let {responseType, onUploadProgress, onDownloadProgress} = _config;
2418
2418
  let onCanceled;
2419
2419
  let uploadThrottled, downloadThrottled;
@@ -2440,7 +2440,7 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
2440
2440
  return;
2441
2441
  }
2442
2442
  // Prepare the response
2443
- const responseHeaders = AxiosHeaders.from(
2443
+ const responseHeaders = AxiosHeaders$1.from(
2444
2444
  'getAllResponseHeaders' in request && request.getAllResponseHeaders()
2445
2445
  );
2446
2446
  const responseData = !responseType || responseType === 'text' || responseType === 'json' ?
@@ -2495,7 +2495,7 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
2495
2495
  return;
2496
2496
  }
2497
2497
 
2498
- reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));
2498
+ reject(new AxiosError$1('Request aborted', AxiosError$1.ECONNABORTED, config, request));
2499
2499
 
2500
2500
  // Clean up request
2501
2501
  request = null;
@@ -2505,7 +2505,7 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
2505
2505
  request.onerror = function handleError() {
2506
2506
  // Real errors are hidden from us by the browser
2507
2507
  // onerror should only fire if it's a network error
2508
- reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));
2508
+ reject(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request));
2509
2509
 
2510
2510
  // Clean up request
2511
2511
  request = null;
@@ -2518,9 +2518,9 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
2518
2518
  if (_config.timeoutErrorMessage) {
2519
2519
  timeoutErrorMessage = _config.timeoutErrorMessage;
2520
2520
  }
2521
- reject(new AxiosError(
2521
+ reject(new AxiosError$1(
2522
2522
  timeoutErrorMessage,
2523
- transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,
2523
+ transitional.clarifyTimeoutError ? AxiosError$1.ETIMEDOUT : AxiosError$1.ECONNABORTED,
2524
2524
  config,
2525
2525
  request));
2526
2526
 
@@ -2570,7 +2570,7 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
2570
2570
  if (!request) {
2571
2571
  return;
2572
2572
  }
2573
- reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);
2573
+ reject(!cancel || cancel.type ? new CanceledError$1(null, config, request) : cancel);
2574
2574
  request.abort();
2575
2575
  request = null;
2576
2576
  };
@@ -2584,7 +2584,7 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
2584
2584
  const protocol = parseProtocol(_config.url);
2585
2585
 
2586
2586
  if (protocol && platform.protocols.indexOf(protocol) === -1) {
2587
- reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
2587
+ reject(new AxiosError$1('Unsupported protocol ' + protocol + ':', AxiosError$1.ERR_BAD_REQUEST, config));
2588
2588
  return;
2589
2589
  }
2590
2590
 
@@ -2607,13 +2607,13 @@ const composeSignals = (signals, timeout) => {
2607
2607
  aborted = true;
2608
2608
  unsubscribe();
2609
2609
  const err = reason instanceof Error ? reason : this.reason;
2610
- controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));
2610
+ controller.abort(err instanceof AxiosError$1 ? err : new CanceledError$1(err instanceof Error ? err.message : err));
2611
2611
  }
2612
2612
  };
2613
2613
 
2614
2614
  let timer = timeout && setTimeout(() => {
2615
2615
  timer = null;
2616
- onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));
2616
+ onabort(new AxiosError$1(`timeout ${timeout} of ms exceeded`, AxiosError$1.ETIMEDOUT));
2617
2617
  }, timeout);
2618
2618
 
2619
2619
  const unsubscribe = () => {
@@ -2770,7 +2770,7 @@ isFetchSupported && (((res) => {
2770
2770
  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
2771
2771
  !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
2772
2772
  (_, config) => {
2773
- throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);
2773
+ throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
2774
2774
  });
2775
2775
  });
2776
2776
  })(new Response));
@@ -2919,7 +2919,7 @@ const fetchAdapter = isFetchSupported && (async (config) => {
2919
2919
  return await new Promise((resolve, reject) => {
2920
2920
  settle(resolve, reject, {
2921
2921
  data: responseData,
2922
- headers: AxiosHeaders.from(response.headers),
2922
+ headers: AxiosHeaders$1.from(response.headers),
2923
2923
  status: response.status,
2924
2924
  statusText: response.statusText,
2925
2925
  config,
@@ -2931,14 +2931,14 @@ const fetchAdapter = isFetchSupported && (async (config) => {
2931
2931
 
2932
2932
  if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {
2933
2933
  throw Object.assign(
2934
- new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),
2934
+ new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request),
2935
2935
  {
2936
2936
  cause: err.cause || err
2937
2937
  }
2938
2938
  )
2939
2939
  }
2940
2940
 
2941
- throw AxiosError.from(err, err && err.code, config, request);
2941
+ throw AxiosError$1.from(err, err && err.code, config, request);
2942
2942
  }
2943
2943
  });
2944
2944
 
@@ -2983,7 +2983,7 @@ const adapters = {
2983
2983
  adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
2984
2984
 
2985
2985
  if (adapter === undefined) {
2986
- throw new AxiosError(`Unknown adapter '${id}'`);
2986
+ throw new AxiosError$1(`Unknown adapter '${id}'`);
2987
2987
  }
2988
2988
  }
2989
2989
 
@@ -3005,7 +3005,7 @@ const adapters = {
3005
3005
  (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
3006
3006
  'as no adapter specified';
3007
3007
 
3008
- throw new AxiosError(
3008
+ throw new AxiosError$1(
3009
3009
  `There is no suitable adapter to dispatch the request ` + s,
3010
3010
  'ERR_NOT_SUPPORT'
3011
3011
  );
@@ -3029,7 +3029,7 @@ function throwIfCancellationRequested(config) {
3029
3029
  }
3030
3030
 
3031
3031
  if (config.signal && config.signal.aborted) {
3032
- throw new CanceledError(null, config);
3032
+ throw new CanceledError$1(null, config);
3033
3033
  }
3034
3034
  }
3035
3035
 
@@ -3043,7 +3043,7 @@ function throwIfCancellationRequested(config) {
3043
3043
  function dispatchRequest(config) {
3044
3044
  throwIfCancellationRequested(config);
3045
3045
 
3046
- config.headers = AxiosHeaders.from(config.headers);
3046
+ config.headers = AxiosHeaders$1.from(config.headers);
3047
3047
 
3048
3048
  // Transform request data
3049
3049
  config.data = transformData.call(
@@ -3067,11 +3067,11 @@ function dispatchRequest(config) {
3067
3067
  response
3068
3068
  );
3069
3069
 
3070
- response.headers = AxiosHeaders.from(response.headers);
3070
+ response.headers = AxiosHeaders$1.from(response.headers);
3071
3071
 
3072
3072
  return response;
3073
3073
  }, function onAdapterRejection(reason) {
3074
- if (!isCancel(reason)) {
3074
+ if (!isCancel$1(reason)) {
3075
3075
  throwIfCancellationRequested(config);
3076
3076
 
3077
3077
  // Transform response data
@@ -3081,7 +3081,7 @@ function dispatchRequest(config) {
3081
3081
  config.transformResponse,
3082
3082
  reason.response
3083
3083
  );
3084
- reason.response.headers = AxiosHeaders.from(reason.response.headers);
3084
+ reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
3085
3085
  }
3086
3086
  }
3087
3087
 
@@ -3089,7 +3089,7 @@ function dispatchRequest(config) {
3089
3089
  });
3090
3090
  }
3091
3091
 
3092
- const VERSION = "1.7.9";
3092
+ const VERSION$1 = "1.7.9";
3093
3093
 
3094
3094
  const validators$1 = {};
3095
3095
 
@@ -3113,15 +3113,15 @@ const deprecatedWarnings = {};
3113
3113
  */
3114
3114
  validators$1.transitional = function transitional(validator, version, message) {
3115
3115
  function formatMessage(opt, desc) {
3116
- return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
3116
+ return '[Axios v' + VERSION$1 + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
3117
3117
  }
3118
3118
 
3119
3119
  // eslint-disable-next-line func-names
3120
3120
  return (value, opt, opts) => {
3121
3121
  if (validator === false) {
3122
- throw new AxiosError(
3122
+ throw new AxiosError$1(
3123
3123
  formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),
3124
- AxiosError.ERR_DEPRECATED
3124
+ AxiosError$1.ERR_DEPRECATED
3125
3125
  );
3126
3126
  }
3127
3127
 
@@ -3160,7 +3160,7 @@ validators$1.spelling = function spelling(correctSpelling) {
3160
3160
 
3161
3161
  function assertOptions(options, schema, allowUnknown) {
3162
3162
  if (typeof options !== 'object') {
3163
- throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);
3163
+ throw new AxiosError$1('options must be an object', AxiosError$1.ERR_BAD_OPTION_VALUE);
3164
3164
  }
3165
3165
  const keys = Object.keys(options);
3166
3166
  let i = keys.length;
@@ -3171,12 +3171,12 @@ function assertOptions(options, schema, allowUnknown) {
3171
3171
  const value = options[opt];
3172
3172
  const result = value === undefined || validator(value, opt, options);
3173
3173
  if (result !== true) {
3174
- throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);
3174
+ throw new AxiosError$1('option ' + opt + ' must be ' + result, AxiosError$1.ERR_BAD_OPTION_VALUE);
3175
3175
  }
3176
3176
  continue;
3177
3177
  }
3178
3178
  if (allowUnknown !== true) {
3179
- throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);
3179
+ throw new AxiosError$1('Unknown option ' + opt, AxiosError$1.ERR_BAD_OPTION);
3180
3180
  }
3181
3181
  }
3182
3182
  }
@@ -3195,7 +3195,7 @@ const validators = validator.validators;
3195
3195
  *
3196
3196
  * @return {Axios} A new instance of Axios
3197
3197
  */
3198
- class Axios {
3198
+ let Axios$1 = class Axios {
3199
3199
  constructor(instanceConfig) {
3200
3200
  this.defaults = instanceConfig;
3201
3201
  this.interceptors = {
@@ -3249,7 +3249,7 @@ class Axios {
3249
3249
  config = configOrUrl || {};
3250
3250
  }
3251
3251
 
3252
- config = mergeConfig(this.defaults, config);
3252
+ config = mergeConfig$1(this.defaults, config);
3253
3253
 
3254
3254
  const {transitional, paramsSerializer, headers} = config;
3255
3255
 
@@ -3295,7 +3295,7 @@ class Axios {
3295
3295
  }
3296
3296
  );
3297
3297
 
3298
- config.headers = AxiosHeaders.concat(contextHeaders, headers);
3298
+ config.headers = AxiosHeaders$1.concat(contextHeaders, headers);
3299
3299
 
3300
3300
  // filter out skipped interceptors
3301
3301
  const requestInterceptorChain = [];
@@ -3368,17 +3368,17 @@ class Axios {
3368
3368
  }
3369
3369
 
3370
3370
  getUri(config) {
3371
- config = mergeConfig(this.defaults, config);
3371
+ config = mergeConfig$1(this.defaults, config);
3372
3372
  const fullPath = buildFullPath(config.baseURL, config.url);
3373
3373
  return buildURL(fullPath, config.params, config.paramsSerializer);
3374
3374
  }
3375
- }
3375
+ };
3376
3376
 
3377
3377
  // Provide aliases for supported request methods
3378
3378
  utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
3379
3379
  /*eslint func-names:0*/
3380
- Axios.prototype[method] = function(url, config) {
3381
- return this.request(mergeConfig(config || {}, {
3380
+ Axios$1.prototype[method] = function(url, config) {
3381
+ return this.request(mergeConfig$1(config || {}, {
3382
3382
  method,
3383
3383
  url,
3384
3384
  data: (config || {}).data
@@ -3391,7 +3391,7 @@ utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method)
3391
3391
 
3392
3392
  function generateHTTPMethod(isForm) {
3393
3393
  return function httpMethod(url, data, config) {
3394
- return this.request(mergeConfig(config || {}, {
3394
+ return this.request(mergeConfig$1(config || {}, {
3395
3395
  method,
3396
3396
  headers: isForm ? {
3397
3397
  'Content-Type': 'multipart/form-data'
@@ -3402,9 +3402,9 @@ utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method)
3402
3402
  };
3403
3403
  }
3404
3404
 
3405
- Axios.prototype[method] = generateHTTPMethod();
3405
+ Axios$1.prototype[method] = generateHTTPMethod();
3406
3406
 
3407
- Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
3407
+ Axios$1.prototype[method + 'Form'] = generateHTTPMethod(true);
3408
3408
  });
3409
3409
 
3410
3410
  /**
@@ -3414,7 +3414,7 @@ utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method)
3414
3414
  *
3415
3415
  * @returns {CancelToken}
3416
3416
  */
3417
- class CancelToken {
3417
+ let CancelToken$1 = class CancelToken {
3418
3418
  constructor(executor) {
3419
3419
  if (typeof executor !== 'function') {
3420
3420
  throw new TypeError('executor must be a function.');
@@ -3462,7 +3462,7 @@ class CancelToken {
3462
3462
  return;
3463
3463
  }
3464
3464
 
3465
- token.reason = new CanceledError(message, config, request);
3465
+ token.reason = new CanceledError$1(message, config, request);
3466
3466
  resolvePromise(token.reason);
3467
3467
  });
3468
3468
  }
@@ -3535,7 +3535,7 @@ class CancelToken {
3535
3535
  cancel
3536
3536
  };
3537
3537
  }
3538
- }
3538
+ };
3539
3539
 
3540
3540
  /**
3541
3541
  * Syntactic sugar for invoking a function and expanding an array for arguments.
@@ -3558,7 +3558,7 @@ class CancelToken {
3558
3558
  *
3559
3559
  * @returns {Function}
3560
3560
  */
3561
- function spread(callback) {
3561
+ function spread$1(callback) {
3562
3562
  return function wrap(arr) {
3563
3563
  return callback.apply(null, arr);
3564
3564
  };
@@ -3571,11 +3571,11 @@ function spread(callback) {
3571
3571
  *
3572
3572
  * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
3573
3573
  */
3574
- function isAxiosError(payload) {
3574
+ function isAxiosError$1(payload) {
3575
3575
  return utils$1.isObject(payload) && (payload.isAxiosError === true);
3576
3576
  }
3577
3577
 
3578
- const HttpStatusCode = {
3578
+ const HttpStatusCode$1 = {
3579
3579
  Continue: 100,
3580
3580
  SwitchingProtocols: 101,
3581
3581
  Processing: 102,
@@ -3641,8 +3641,8 @@ const HttpStatusCode = {
3641
3641
  NetworkAuthenticationRequired: 511,
3642
3642
  };
3643
3643
 
3644
- Object.entries(HttpStatusCode).forEach(([key, value]) => {
3645
- HttpStatusCode[value] = key;
3644
+ Object.entries(HttpStatusCode$1).forEach(([key, value]) => {
3645
+ HttpStatusCode$1[value] = key;
3646
3646
  });
3647
3647
 
3648
3648
  /**
@@ -3653,18 +3653,18 @@ Object.entries(HttpStatusCode).forEach(([key, value]) => {
3653
3653
  * @returns {Axios} A new instance of Axios
3654
3654
  */
3655
3655
  function createInstance$1(defaultConfig) {
3656
- const context = new Axios(defaultConfig);
3657
- const instance = bind(Axios.prototype.request, context);
3656
+ const context = new Axios$1(defaultConfig);
3657
+ const instance = bind(Axios$1.prototype.request, context);
3658
3658
 
3659
3659
  // Copy axios.prototype to instance
3660
- utils$1.extend(instance, Axios.prototype, context, {allOwnKeys: true});
3660
+ utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});
3661
3661
 
3662
3662
  // Copy context to instance
3663
3663
  utils$1.extend(instance, context, null, {allOwnKeys: true});
3664
3664
 
3665
3665
  // Factory for creating new instances
3666
3666
  instance.create = function create(instanceConfig) {
3667
- return createInstance$1(mergeConfig(defaultConfig, instanceConfig));
3667
+ return createInstance$1(mergeConfig$1(defaultConfig, instanceConfig));
3668
3668
  };
3669
3669
 
3670
3670
  return instance;
@@ -3674,17 +3674,17 @@ function createInstance$1(defaultConfig) {
3674
3674
  const axios$1 = createInstance$1(defaults);
3675
3675
 
3676
3676
  // Expose Axios class to allow class inheritance
3677
- axios$1.Axios = Axios;
3677
+ axios$1.Axios = Axios$1;
3678
3678
 
3679
3679
  // Expose Cancel & CancelToken
3680
- axios$1.CanceledError = CanceledError;
3681
- axios$1.CancelToken = CancelToken;
3682
- axios$1.isCancel = isCancel;
3683
- axios$1.VERSION = VERSION;
3684
- axios$1.toFormData = toFormData;
3680
+ axios$1.CanceledError = CanceledError$1;
3681
+ axios$1.CancelToken = CancelToken$1;
3682
+ axios$1.isCancel = isCancel$1;
3683
+ axios$1.VERSION = VERSION$1;
3684
+ axios$1.toFormData = toFormData$1;
3685
3685
 
3686
3686
  // Expose AxiosError class
3687
- axios$1.AxiosError = AxiosError;
3687
+ axios$1.AxiosError = AxiosError$1;
3688
3688
 
3689
3689
  // alias for CanceledError for backward compatibility
3690
3690
  axios$1.Cancel = axios$1.CanceledError;
@@ -3694,24 +3694,46 @@ axios$1.all = function all(promises) {
3694
3694
  return Promise.all(promises);
3695
3695
  };
3696
3696
 
3697
- axios$1.spread = spread;
3697
+ axios$1.spread = spread$1;
3698
3698
 
3699
3699
  // Expose isAxiosError
3700
- axios$1.isAxiosError = isAxiosError;
3700
+ axios$1.isAxiosError = isAxiosError$1;
3701
3701
 
3702
3702
  // Expose mergeConfig
3703
- axios$1.mergeConfig = mergeConfig;
3703
+ axios$1.mergeConfig = mergeConfig$1;
3704
3704
 
3705
- axios$1.AxiosHeaders = AxiosHeaders;
3705
+ axios$1.AxiosHeaders = AxiosHeaders$1;
3706
3706
 
3707
3707
  axios$1.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);
3708
3708
 
3709
3709
  axios$1.getAdapter = adapters.getAdapter;
3710
3710
 
3711
- axios$1.HttpStatusCode = HttpStatusCode;
3711
+ axios$1.HttpStatusCode = HttpStatusCode$1;
3712
3712
 
3713
3713
  axios$1.default = axios$1;
3714
3714
 
3715
+ // This module is intended to unwrap Axios default export as named.
3716
+ // Keep top-level export same with static properties
3717
+ // so that it can keep same with es module or cjs
3718
+ const {
3719
+ Axios,
3720
+ AxiosError,
3721
+ CanceledError,
3722
+ isCancel,
3723
+ CancelToken,
3724
+ VERSION,
3725
+ all,
3726
+ Cancel,
3727
+ isAxiosError,
3728
+ spread,
3729
+ toFormData,
3730
+ AxiosHeaders,
3731
+ HttpStatusCode,
3732
+ formToJSON,
3733
+ getAdapter,
3734
+ mergeConfig
3735
+ } = axios$1;
3736
+
3715
3737
  const instance = axios$1.create();
3716
3738
 
3717
3739
  const axios = setupCache(instance, { cacheTakeover: false });
@@ -3774,13 +3796,14 @@ const states = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
3774
3796
  const eodash = reactive({
3775
3797
  id: "demo",
3776
3798
  stacEndpoint:
3777
- // "https://eurodatacube.github.io/eodash-catalog/RACE/catalog.json",
3799
+ // "https://esa-eodash.github.io/RACE-catalog/RACE/catalog.json",
3778
3800
  // "https://gtif-cerulean.github.io/catalog/cerulean/catalog.json",
3779
3801
  // "https://eodashcatalog.eox.at/samplecatalog/samples/catalog.json",
3780
3802
  // "https://eodashcatalog.eox.at/test-style/trilateral/catalog.json",
3781
3803
  // "https://gtif-cerulean.github.io/catalog/cerulean/catalog.json",
3782
3804
  // "https://gtif-cerulean.github.io/deside-catalog/deside/catalog.json",
3783
- "https://gtif-cerulean.github.io/cerulean-catalog/cerulean/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",
3784
3807
  brand: {
3785
3808
  noLayout: true,
3786
3809
  name: "Demo",
@@ -4011,10 +4034,6 @@ const eodash = reactive({
4011
4034
  type: "internal",
4012
4035
  widget: {
4013
4036
  name: "EodashStacInfo",
4014
- properties: {
4015
- showIndicatorsBtn: false,
4016
- showLayoutSwitcher: false,
4017
- },
4018
4037
  },
4019
4038
  }
4020
4039
  : null;
@@ -4062,7 +4081,7 @@ const eodash = reactive({
4062
4081
  id: "Processes",
4063
4082
  type: "internal",
4064
4083
  title: "Processes",
4065
- layout: { x: 9, y: 7, w: 3, h: 5 },
4084
+ layout: { x: 9, y: 6, w: 3, h: 5 },
4066
4085
  widget: {
4067
4086
  name: "EodashProcess",
4068
4087
  },
@@ -4359,10 +4378,9 @@ function has(obj, key) {
4359
4378
  // Array of keys
4360
4379
  function pick(obj, paths) {
4361
4380
  const found = {};
4362
- const keys = new Set(Object.keys(obj));
4363
- for (const path of paths) {
4364
- if (keys.has(path)) {
4365
- found[path] = obj[path];
4381
+ for (const key of paths) {
4382
+ if (Object.hasOwn(obj, key)) {
4383
+ found[key] = obj[key];
4366
4384
  }
4367
4385
  }
4368
4386
  return found;
@@ -6501,15 +6519,24 @@ const makeDisplayProps = propsFactory({
6501
6519
  mobileBreakpoint: [Number, String]
6502
6520
  }, 'display');
6503
6521
  function useDisplay() {
6504
- let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6522
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
6523
+ mobile: null
6524
+ };
6505
6525
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
6506
6526
  const display = inject$1(DisplaySymbol);
6507
6527
  if (!display) throw new Error('Could not find Vuetify display injection');
6508
6528
  const mobile = computed(() => {
6509
- if (props.mobile != null) return props.mobile;
6510
- if (!props.mobileBreakpoint) return display.mobile.value;
6511
- const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];
6512
- return display.width.value < breakpointValue;
6529
+ if (props.mobile) {
6530
+ return true;
6531
+ } else if (typeof props.mobileBreakpoint === 'number') {
6532
+ return display.width.value < props.mobileBreakpoint;
6533
+ } else if (props.mobileBreakpoint) {
6534
+ return display.width.value < display.thresholds.value[props.mobileBreakpoint];
6535
+ } else if (props.mobile === null) {
6536
+ return display.mobile.value;
6537
+ } else {
6538
+ return false;
6539
+ }
6513
6540
  });
6514
6541
  const displayClasses = computed(() => {
6515
6542
  if (!name) return {};
@@ -7454,7 +7481,7 @@ function createLayout(props) {
7454
7481
  }
7455
7482
 
7456
7483
  function createVuetify() {
7457
- let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7484
+ let vuetify = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
7458
7485
  const {
7459
7486
  blueprint,
7460
7487
  ...rest
@@ -7541,8 +7568,8 @@ function createVuetify() {
7541
7568
  goTo
7542
7569
  };
7543
7570
  }
7544
- const version = "3.7.7";
7545
- createVuetify.version = version;
7571
+ const version$1 = "3.7.13";
7572
+ createVuetify.version = version$1;
7546
7573
  function inject(key) {
7547
7574
  const vm = this.$;
7548
7575
  const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides;
@@ -7598,6 +7625,40 @@ const collectionsPalette = reactive([
7598
7625
  "#D55E00",
7599
7626
  ]);
7600
7627
 
7628
+ /**
7629
+ * Object containing data themes and their associated brand properties (icon and color).
7630
+ */
7631
+ const dataThemesBrands = {
7632
+ agriculture: {
7633
+ icon: mdiBarley,
7634
+ color: "#F2AF25",
7635
+ },
7636
+ water: {
7637
+ icon: mdiWater,
7638
+ color: "#73A6C7",
7639
+ },
7640
+ land: {
7641
+ icon: mdiImageFilterHdr,
7642
+ color: "#019E73",
7643
+ },
7644
+ health: {
7645
+ icon: mdiHospitalBoxOutline,
7646
+ color: "#497FA9",
7647
+ },
7648
+ combined: {
7649
+ icon: mdiSetCenter,
7650
+ color: "#56B4E9",
7651
+ },
7652
+ air: {
7653
+ icon: mdiWeatherWindy,
7654
+ color: "#475faf",
7655
+ },
7656
+ economy: {
7657
+ icon: mdiCurrencyEur,
7658
+ color: "#8E81AF",
7659
+ },
7660
+ };
7661
+
7601
7662
  /**
7602
7663
  * Loads font in the app using `webfontloader`
7603
7664
  *
@@ -8255,9 +8316,8 @@ const extractRoles = (properties, linkOrAsset) => {
8255
8316
  if (role === "overlay" || role === "baselayer") {
8256
8317
  properties.group = role;
8257
8318
  }
8258
-
8259
- return properties;
8260
8319
  });
8320
+ return properties;
8261
8321
  };
8262
8322
 
8263
8323
  /**
@@ -8556,6 +8616,7 @@ async function createLayersFromAssets(
8556
8616
  let geoTIFFIdx = null;
8557
8617
  // let geoJsonLayers = [];
8558
8618
  let geoJsonIdx = 0;
8619
+ let geoJsonAttributions = [];
8559
8620
 
8560
8621
  const geoJsonSources = [];
8561
8622
  let geoJsonRoles = {};
@@ -8570,6 +8631,8 @@ async function createLayersFromAssets(
8570
8631
  if (assets[ast]?.type === "application/geo+json") {
8571
8632
  geoJsonSources.push(assets[ast].href);
8572
8633
  geoJsonIdx = idx;
8634
+ if (assets[ast].attribution)
8635
+ geoJsonAttributions.push(assets[ast].attribution);
8573
8636
  extractRoles(geoJsonRoles, assets[ast]);
8574
8637
  } else if (assets[ast]?.type === "application/vnd.flatgeobuf") {
8575
8638
  const assetId = createAssetID(collectionId, item.id, idx);
@@ -8581,6 +8644,7 @@ async function createLayersFromAssets(
8581
8644
  type: "FlatGeoBuf",
8582
8645
  url: assets[ast].href,
8583
8646
  format: "GeoJSON",
8647
+ attributions: assets[ast].attribution,
8584
8648
  },
8585
8649
  properties: {
8586
8650
  id: assetId,
@@ -8594,11 +8658,12 @@ async function createLayersFromAssets(
8594
8658
  }),
8595
8659
  },
8596
8660
  ...(!style?.variables && { style }),
8661
+ interactions: [],
8597
8662
  };
8598
8663
  // add tooltip interaction if style has tooltip
8599
8664
  if (style?.tooltip) {
8600
- // @ts-expect-error no type for eox-map layer
8601
8665
  layer.interactions = [
8666
+ // @ts-expect-error no type for eox-map layer
8602
8667
  {
8603
8668
  type: "select",
8604
8669
  options: {
@@ -8620,7 +8685,10 @@ async function createLayersFromAssets(
8620
8685
  jsonArray.push(layer);
8621
8686
  } else if (assets[ast]?.type === "image/tiff") {
8622
8687
  geoTIFFIdx = idx;
8623
- geoTIFFSources.push({ url: assets[ast].href });
8688
+ geoTIFFSources.push({
8689
+ url: assets[ast].href,
8690
+ attributions: assets[ast].attribution,
8691
+ });
8624
8692
  }
8625
8693
  }
8626
8694
 
@@ -8634,6 +8702,7 @@ async function createLayersFromAssets(
8634
8702
  type: "Vector",
8635
8703
  url: await mergeGeojsons(geoJsonSources),
8636
8704
  format: "GeoJSON",
8705
+ attributions: geoJsonAttributions,
8637
8706
  },
8638
8707
  properties: {
8639
8708
  ...geoJsonRoles,
@@ -8747,6 +8816,7 @@ const createLayersFromLinks = async (
8747
8816
  tileGrid: {
8748
8817
  tileSize,
8749
8818
  },
8819
+ attributions: wmsLink.attribution,
8750
8820
  params: {
8751
8821
  LAYERS: wmsLink["wms:layers"],
8752
8822
  TILED: true,
@@ -8817,6 +8887,7 @@ const createLayersFromLinks = async (
8817
8887
  tileGrid: {
8818
8888
  tileSize: [128, 128],
8819
8889
  },
8890
+ attributions: wmtsLink.attribution,
8820
8891
  dimensions: dimensionsWithoutStyle,
8821
8892
  },
8822
8893
  };
@@ -8842,6 +8913,7 @@ const createLayersFromLinks = async (
8842
8913
  tileGrid: {
8843
8914
  tileSize: [512, 512],
8844
8915
  },
8916
+ attributions: wmtsLink.attribution,
8845
8917
  dimensions: dimensionsWithoutStyle,
8846
8918
  },
8847
8919
  };
@@ -8879,6 +8951,7 @@ const createLayersFromLinks = async (
8879
8951
  type: "XYZ",
8880
8952
  url: xyzLink.href,
8881
8953
  projection: projectionCode,
8954
+ attributions: xyzLink.attribution,
8882
8955
  },
8883
8956
  };
8884
8957
 
@@ -9292,39 +9365,69 @@ class EodashCollection {
9292
9365
  allFeatures.push(collectionFeatures);
9293
9366
  }
9294
9367
  }
9295
- if (allFeatures.length) {
9296
- const featureCollection = {
9297
- type: "FeatureCollection",
9298
- crs: {
9299
- type: "name",
9300
- properties: {
9301
- name: "EPSG:4326",
9302
- },
9303
- },
9304
- features: allFeatures.flat(),
9305
- };
9306
- return {
9307
- type: "Vector",
9368
+ if (!allFeatures.length) {
9369
+ return null;
9370
+ }
9371
+
9372
+ const featureCollection = {
9373
+ type: "FeatureCollection",
9374
+ crs: {
9375
+ type: "name",
9308
9376
  properties: {
9309
- id: "geodb-collection",
9310
- title: "Observation Points",
9311
- },
9312
- source: {
9313
- type: "Vector",
9314
- url: "data:," + encodeURIComponent(JSON.stringify(featureCollection)),
9315
- format: "GeoJSON",
9316
- },
9317
- style: {
9318
- "circle-radius": 5,
9319
- "circle-fill-color": "#00417077",
9320
- "circle-stroke-color": "#004170",
9321
- "fill-color": "#00417077",
9322
- "stroke-color": "#004170",
9377
+ name: "EPSG:4326",
9323
9378
  },
9324
- interactions: [],
9325
- };
9326
- }
9327
- return null;
9379
+ },
9380
+ features: allFeatures.flat(),
9381
+ };
9382
+ return {
9383
+ type: "Vector",
9384
+ properties: {
9385
+ id: "geodb-collection",
9386
+ title: "Observation Points",
9387
+ },
9388
+ source: {
9389
+ type: "Vector",
9390
+ url: "data:," + encodeURIComponent(JSON.stringify(featureCollection)),
9391
+ format: "GeoJSON",
9392
+ },
9393
+ style: (() => {
9394
+ // generate flat style rules for each theme
9395
+ /** @param {*} theme */
9396
+ const generateIconSrc = (theme) => {
9397
+ const svgString = `
9398
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 70 70">
9399
+ <circle cx="35" cy="35" r="30" stroke="white" fill="${theme.color}" stroke-width="4"/>
9400
+ <path d="${theme.icon}" fill="#fff" transform="translate(19.5, 20) scale(1.3) "/>
9401
+ </svg>
9402
+ `;
9403
+ return `data:image/svg+xml,${encodeURIComponent(svgString)}`;
9404
+ };
9405
+
9406
+ return [
9407
+ ...Object.keys(dataThemesBrands).map((theme, idx) => {
9408
+ return {
9409
+ ...(idx !== 0 && { else: true }),
9410
+ filter: ["==", ["get", "themes", 0], theme],
9411
+ style: {
9412
+ //@ts-expect-error string index
9413
+ "icon-src": generateIconSrc(dataThemesBrands[theme]),
9414
+ },
9415
+ };
9416
+ }),
9417
+ {
9418
+ else: true,
9419
+ style: {
9420
+ "circle-radius": 10,
9421
+ "circle-fill-color": "#00417077",
9422
+ "circle-stroke-color": "#004170",
9423
+ "fill-color": "#0417077",
9424
+ "stroke-color": "#004170",
9425
+ },
9426
+ },
9427
+ ];
9428
+ })(),
9429
+ interactions: [],
9430
+ };
9328
9431
  }
9329
9432
  }
9330
9433
 
@@ -10762,10 +10865,10 @@ function useBackButton(router, cb) {
10762
10865
  let popped = false;
10763
10866
  let removeBefore;
10764
10867
  let removeAfter;
10765
- if (IN_BROWSER) {
10868
+ if (IN_BROWSER && router?.beforeEach) {
10766
10869
  nextTick(() => {
10767
10870
  window.addEventListener('popstate', onPopstate);
10768
- removeBefore = router?.beforeEach((to, from, next) => {
10871
+ removeBefore = router.beforeEach((to, from, next) => {
10769
10872
  if (!inTransition) {
10770
10873
  setTimeout(() => popped ? cb(next) : next());
10771
10874
  } else {
@@ -10887,11 +10990,13 @@ const ripples = {
10887
10990
  animation.classList.add('v-ripple__animation--visible');
10888
10991
  transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
10889
10992
  animation.dataset.activated = String(performance.now());
10890
- setTimeout(() => {
10891
- animation.classList.remove('v-ripple__animation--enter');
10892
- animation.classList.add('v-ripple__animation--in');
10893
- transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
10894
- }, 0);
10993
+ requestAnimationFrame(() => {
10994
+ requestAnimationFrame(() => {
10995
+ animation.classList.remove('v-ripple__animation--enter');
10996
+ animation.classList.add('v-ripple__animation--in');
10997
+ transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
10998
+ });
10999
+ });
10895
11000
  },
10896
11001
  hide(el) {
10897
11002
  if (!el?._ripple?.enabled) return;
@@ -11481,10 +11586,10 @@ const VAlert = genericComponent()({
11481
11586
  }
11482
11587
  });
11483
11588
 
11484
- const _hoisted_1$2 = { is: "animated-details" };
11589
+ const _hoisted_1$3 = { is: "animated-details" };
11485
11590
 
11486
11591
 
11487
- const _sfc_main$3 = {
11592
+ const _sfc_main$4 = {
11488
11593
  __name: 'ErrorAlert',
11489
11594
  props: {
11490
11595
  "modelValue": { type: String, required: true },
@@ -11517,7 +11622,7 @@ return (_ctx, _cache) => {
11517
11622
  }, {
11518
11623
  default: withCtx(() => [
11519
11624
  createTextVNode(toDisplayString(unref(errorMessage)) + " ", 1 /* TEXT */),
11520
- createElementVNode("details", _hoisted_1$2, [
11625
+ createElementVNode("details", _hoisted_1$3, [
11521
11626
  _cache[1] || (_cache[1] = createElementVNode("summary", null, "Error", -1 /* HOISTED */)),
11522
11627
  createTextVNode(" " + toDisplayString(error.value), 1 /* TEXT */)
11523
11628
  ])
@@ -11529,7 +11634,7 @@ return (_ctx, _cache) => {
11529
11634
  }
11530
11635
 
11531
11636
  };
11532
- const ErrorAlert = /*#__PURE__*/_export_sfc(_sfc_main$3, [['__scopeId',"data-v-ac10aa7f"]]);
11637
+ const ErrorAlert = /*#__PURE__*/_export_sfc(_sfc_main$4, [['__scopeId',"data-v-ac10aa7f"]]);
11533
11638
 
11534
11639
  /**
11535
11640
  * @typedef {{
@@ -11548,7 +11653,7 @@ const ErrorAlert = /*#__PURE__*/_export_sfc(_sfc_main$3, [['__scopeId',"data-v-a
11548
11653
  const internalWidgets = (() => {
11549
11654
  /** @type {Record<string, () => Promise<import("vue").Component>>} */
11550
11655
  const importMap = {
11551
- .../* #__PURE__ */ Object.assign({"/widgets/EodashDatePicker.vue": () => import('./EodashDatePicker-DyLo_JUC.js'),"/widgets/EodashItemFilter.vue": () => import('./EodashItemFilter-BR572AaH.js'),"/widgets/EodashLayerControl.vue": () => import('./EodashLayerControl-C_mi-Hoo.js'),"/widgets/EodashLayoutSwitcher.vue": () => import('./EodashLayoutSwitcher-D4ooLbys.js'),"/widgets/EodashMap.vue": () => import('./EodashMap-CGFv4e85.js'),"/widgets/EodashMapBtns.vue": () => import('./EodashMapBtns-_M7SW7Is.js'),"/widgets/EodashProcess.vue": () => import('./EodashProcess-ZQAMi9Pc.js'),"/widgets/EodashStacInfo.vue": () => import('./EodashStacInfo-CwOCcsGl.js'),"/widgets/EodashTools.vue": () => import('./EodashTools-C_X0RPIp.js'),"/widgets/ExportState.vue": () => import('./ExportState-DNUSRJSJ.js'),"/widgets/PopUp.vue": () => import('./PopUp-CEmhdNIj.js'),"/widgets/WidgetsContainer.vue": () => import('./WidgetsContainer-GUwXMh9d.js')}),
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')}),
11552
11657
  .../* #__PURE__ */ Object.assign({}),
11553
11658
  };
11554
11659
  for (const key in importMap) {
@@ -11661,7 +11766,7 @@ const getWidgetDefinition = (config) => {
11661
11766
 
11662
11767
  case "web-component":
11663
11768
  importedWidget.component = defineAsyncComponent({
11664
- loader: () => import('./DynamicWebComponent-BRQQ5AXV.js'),
11769
+ loader: () => import('./DynamicWebComponent-DtZ_mHL9.js'),
11665
11770
  suspensible: true,
11666
11771
  });
11667
11772
  importedWidget.props = reactive(config.widget);
@@ -11669,7 +11774,7 @@ const getWidgetDefinition = (config) => {
11669
11774
  break;
11670
11775
  case "iframe":
11671
11776
  importedWidget.component = defineAsyncComponent({
11672
- loader: () => import('./IframeWrapper-BgM9aU8f.js'),
11777
+ loader: () => import('./IframeWrapper-XzQDZy0T.js'),
11673
11778
  suspensible: true,
11674
11779
  });
11675
11780
  importedWidget.props = reactive(config.widget);
@@ -12001,13 +12106,13 @@ const VRow = genericComponent()({
12001
12106
  }
12002
12107
  });
12003
12108
 
12004
- const _hoisted_1$1 = {
12109
+ const _hoisted_1$2 = {
12005
12110
  key: 1,
12006
12111
  class: "text-center"
12007
12112
  };
12008
12113
 
12009
12114
 
12010
- const _sfc_main$2 = {
12115
+ const _sfc_main$3 = {
12011
12116
  __name: 'Loading',
12012
12117
  setup(__props) {
12013
12118
 
@@ -12041,7 +12146,7 @@ return (_ctx, _cache) => {
12041
12146
  default: withCtx(() => [
12042
12147
  (unref(loading)?.component)
12043
12148
  ? (openBlock(), createBlock(resolveDynamicComponent(unref(loading)?.component), normalizeProps(mergeProps({ key: 0 }, unref(loading)?.props)), null, 16 /* FULL_PROPS */))
12044
- : (openBlock(), createElementBlock("div", _hoisted_1$1, "Loading..."))
12149
+ : (openBlock(), createElementBlock("div", _hoisted_1$2, "Loading..."))
12045
12150
  ]),
12046
12151
  _: 1 /* STABLE */
12047
12152
  }))
@@ -12056,6 +12161,59 @@ return (_ctx, _cache) => {
12056
12161
 
12057
12162
  };
12058
12163
 
12164
+ const version = "5.0.0-rc.2.4";
12165
+ const pkgJson = {
12166
+ version};
12167
+
12168
+ const _hoisted_1$1 = {
12169
+ key: 0,
12170
+ class: "eodash-overlay"
12171
+ };
12172
+ const _hoisted_2 = {
12173
+ href: "https://github.com/eodash/eodash",
12174
+ target: "_blank"
12175
+ };
12176
+ const _hoisted_3 = {
12177
+ href: "https://eox.at",
12178
+ target: "_blank"
12179
+ };
12180
+ const _hoisted_4 = ["src"];
12181
+
12182
+ const _sfc_main$2 = {
12183
+ __name: 'EodashOverlay',
12184
+ setup(__props) {
12185
+
12186
+ const { computedThemes } = useTheme();
12187
+
12188
+ const version = pkgJson.version;
12189
+
12190
+ const eoxLogo = `<svg width="100%" height="100%" viewBox="0 0 355 85" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><g id="ink_ext_XXXXXX"><path id="path5076" d="M152.986,40.52l-0.75,-0.019l-0.737,-0.056l-0.725,-0.093l-0.713,-0.127l-0.7,-0.162l-0.7,-0.196l-0.675,-0.228l-0.65,-0.261l-0.65,-0.292l-0.625,-0.319l-0.612,-0.352l-0.588,-0.377l-0.562,-0.407l-0.55,-0.431l-0.538,-0.457l-0.5,-0.481l-0.487,-0.505l-0.45,-0.528l-0.438,-0.55l-0.4,-0.57l-0.375,-0.59l-0.35,-0.609l-0.325,-0.627l-0.287,-0.645l-0.263,-0.66l-0.225,-0.676l-0.2,-0.69l-0.162,-0.704l-0.125,-0.717l-0.1,-0.728l-0.05,-0.739l-0.025,-0.748c0,-8.023 6.512,-14.532 14.537,-14.532c8.038,0 14.538,6.509 14.538,14.532c0,8.036 -6.5,14.544 -14.538,14.544Z" style="fill:none;"/><path id="path5078" d="M165.748,-0.002c-42.009,0 -76.06,18.985 -76.06,42.402c0,13.268 10.921,25.102 28.021,32.875c-8.081,-5.487 -13.403,-12.973 -14.584,-21.859c-2.685,-20.186 16.83,-40.82 45.148,-49.615c-14.687,6.665 -24.923,21.427 -24.923,38.599c0,23.218 18.648,42.046 41.773,42.383c-0.037,0.005 -0.087,0.015 -0.137,0.02c0.263,0 0.512,0.009 0.762,0.009c42.013,0 76.076,-18.984 76.076,-42.412c0,-13.261 -10.937,-25.097 -28.037,-32.871l0.75,0.522l0.736,0.531l0.713,0.543l0.7,0.555l0.687,0.566l0.664,0.578l0.649,0.588l0.625,0.6l0.613,0.609l0.588,0.621l0.574,0.631l0.562,0.643l0.538,0.652l0.513,0.662l0.5,0.672l0.475,0.684l0.449,0.693l0.438,0.703l0.425,0.713l0.387,0.723l0.375,0.73l0.352,0.74l0.336,0.75l0.3,0.76l0.287,0.77l0.264,0.777l0.25,0.787l0.211,0.795l0.188,0.805l0.175,0.812l0.151,0.82l0.125,0.831c2.675,20.19 -16.838,40.825 -45.151,49.619c14.688,-6.665 24.926,-21.426 24.926,-38.614c0,-23.202 -18.65,-42.026 -41.775,-42.367c0.05,-0.005 0.1,-0.015 0.15,-0.025c-0.262,0 -0.526,-0.01 -0.789,-0.01Zm-13.248,11.314c7.817,0 14.25,6.433 14.25,14.25c0,0.001 0,0.001 0,0.001c0,7.817 -6.433,14.249 -14.25,14.249c-7.817,0 -14.25,-6.432 -14.25,-14.249c0,-0.001 0,-0.001 0,-0.001c0,-7.817 6.433,-14.25 14.25,-14.25Z"
12191
+ style="fill:${computedThemes.value["dashboardTheme"].colors["on-secondary"]};fill-rule:nonzero;"/><path id="path5080" d="M213.786,9.529l0.75,0.521l0.738,0.532l0.712,0.544l0.7,0.555l0.688,0.566l0.662,0.577l0.65,0.588l0.625,0.6l0.613,0.61l0.587,0.62l0.575,0.631l0.563,0.643l0.537,0.652l0.513,0.663l0.5,0.672l0.475,0.684l0.45,0.692l0.437,0.703l0.425,0.712l0.388,0.723l0.375,0.731l0.35,0.741l0.337,0.75l0.3,0.76l0.288,0.769l0.262,0.777l0.25,0.786l0.213,0.797l0.187,0.804l0.175,0.812l0.15,0.821l0.125,0.83c2.675,20.19 -16.837,40.825 -45.15,49.619c14.688,-6.665 24.925,-21.426 24.925,-38.614c0,-23.202 -18.65,-42.025 -41.775,-42.367c0.05,-0.005 0.1,-0.015 0.15,-0.025c-0.262,0 -0.525,-0.01 -0.787,-0.01c-42.01,0 -76.062,18.985 -76.062,42.402c0,13.268 10.922,25.103 28.022,32.876c-8.081,-5.487 -13.403,-12.973 -14.584,-21.859c-2.685,-20.187 16.831,-40.82 45.149,-49.615c-14.688,6.665 -24.925,21.426 -24.925,38.598c0,23.218 18.65,42.046 41.775,42.383c-0.038,0.005 -0.088,0.015 -0.138,0.02c0.263,0 0.513,0.01 0.763,0.01c42.012,-0.001 76.075,-18.985 76.075,-42.413c0,-13.261 -10.938,-25.097 -28.038,-32.871Z" style="fill:none;"/><path id="path5082" d="M354.323,82.586l-41.999,-42.002l38.524,-38.515l-29.913,0l-23.562,23.559l-23.563,-23.559l-29.924,0l38.525,38.515l-42,42.002l29.913,0l27.049,-27.046l27.05,27.046l29.9,0"
12192
+ style="fill:${computedThemes.value["dashboardTheme"].colors["on-secondary"]};fill-rule:nonzero;"/><path id="path5084" d="M354.323,82.586l-41.999,-42.002l38.524,-38.515l-29.913,0l-23.562,23.559l-23.563,-23.559l-29.924,0l38.525,38.515l-42,42.002l29.913,0l27.049,-27.046l27.05,27.046l29.9,0Z" style="fill:none;"/><path id="path5086" d="M0,2.069l75.033,0l0,16.489l-51.629,0l0,14.931l40.258,0l0,16.495l-40.258,0l0,16.05l53.124,0l0,16.488l-76.528,0l0,-80.453"
12193
+ style="fill:${computedThemes.value["dashboardTheme"].colors["on-secondary"]};fill-rule:nonzero;"/><path id="path5088" d="M0,2.069l75.033,0l0,16.489l-51.629,0l0,14.931l40.258,0l0,16.495l-40.258,0l0,16.05l53.124,0l0,16.488l-76.528,0l0,-80.453Z" style="fill:none;"/></g></svg>`;
12194
+ const base64Logo = btoa(eoxLogo);
12195
+
12196
+ return (_ctx, _cache) => {
12197
+ return (_ctx.$vuetify.display.mdAndUp)
12198
+ ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
12199
+ createElementVNode("p", null, [
12200
+ createElementVNode("a", _hoisted_2, "eodash v" + toDisplayString(unref(version)), 1 /* TEXT */),
12201
+ _cache[0] || (_cache[0] = createTextVNode(" by ")),
12202
+ createElementVNode("a", _hoisted_3, [
12203
+ createElementVNode("img", {
12204
+ src: `data:image/svg+xml;base64,${unref(base64Logo)}`,
12205
+ height: "9px"
12206
+ }, null, 8 /* PROPS */, _hoisted_4)
12207
+ ])
12208
+ ])
12209
+ ]))
12210
+ : createCommentVNode("v-if", true)
12211
+ }
12212
+ }
12213
+
12214
+ };
12215
+ const EodashOverlay = /*#__PURE__*/_export_sfc(_sfc_main$2, [['__scopeId',"data-v-22662c4a"]]);
12216
+
12059
12217
  const _hoisted_1 = { class: "loading-container" };
12060
12218
 
12061
12219
 
@@ -12105,15 +12263,15 @@ const { loadSTAC } = useSTAcStore();
12105
12263
  const { smAndDown } = useDisplay();
12106
12264
  const TemplateComponent = computed(() =>
12107
12265
  smAndDown.value
12108
- ? defineAsyncComponent(() => import('./MobileLayout-CUHZFLDY.js'))
12109
- : defineAsyncComponent(() => import('./DashboardLayout-ByVMURpM.js')),
12266
+ ? defineAsyncComponent(() => import('./MobileLayout-CDbupC9v.js'))
12267
+ : defineAsyncComponent(() => import('./DashboardLayout-D1UcB3RV.js')),
12110
12268
  );
12111
12269
 
12112
12270
  const HeaderComponent = defineAsyncComponent(
12113
- () => import('./Header-BcHAtFqr.js'),
12271
+ () => import('./Header-D_hcGpNG.js'),
12114
12272
  );
12115
12273
  const FooterComponent = defineAsyncComponent(
12116
- () => import('./Footer-FUp1Te0L.js'),
12274
+ () => import('./Footer-C_3WrfI4.js'),
12117
12275
  );
12118
12276
 
12119
12277
  const templateHeight = props.isWebComponent ? "100%" : "100dvh";
@@ -12136,10 +12294,11 @@ return (_ctx, _cache) => {
12136
12294
  modelValue: error.value,
12137
12295
  "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => ((error).value = $event))
12138
12296
  }, null, 8 /* PROPS */, ["modelValue"]),
12297
+ createVNode(EodashOverlay),
12139
12298
  (openBlock(), createBlock(Suspense, null, {
12140
12299
  fallback: withCtx(() => [
12141
12300
  createElementVNode("div", _hoisted_1, [
12142
- createVNode(_sfc_main$2)
12301
+ createVNode(_sfc_main$3)
12143
12302
  ])
12144
12303
  ]),
12145
12304
  default: withCtx(() => [
@@ -12312,4 +12471,4 @@ function register() {
12312
12471
 
12313
12472
  register();
12314
12473
 
12315
- export { useSTAcStore as $, makeDensityProps as A, useDensity as B, useBackgroundColor as C, provideDefaults as D, isObject as E, useDefineTemplate as F, useLayout as G, makeDimensionProps as H, IconValue as I, useDimension as J, makeBorderProps as K, makeElevationProps as L, makeRoundedProps as M, useBorder as N, useElevation as O, useRounded as P, VDefaultsProvider as Q, clamp as R, consoleWarn as S, makeLayoutItemProps as T, useToggleScope as U, VBtn as V, useLayoutItem 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, usePosition as aA, useLink 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, makeSizeProps as ao, makeVariantProps as ap, useVariant as aq, useSize as ar, genOverlays as as, makeLoaderProps as at, makeLocationProps as au, makePositionProps as av, makeRouterProps as aw, Ripple as ax, useLoader as ay, useLocation as az, makeComponentProps as b, makeTagProps as c, makeThemeProps as d, provideTheme as e, useRtl as f, genericComponent as g, useLocale as h, useGroup as i, useProxiedModel as j, keys as k, makeGroupItemProps as l, makeVBtnProps as m, useGroupItem as n, omit as o, propsFactory as p, convertToUnit as q, makeDisplayProps as r, makeGroupProps as s, useDisplay as t, useTextColor as u, useResizeObserver as v, useGoTo as w, IN_BROWSER as x, VIcon as y, focusableChildren as z };
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 };