@eodash/eodash 5.4.0 → 5.5.1

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 (114) hide show
  1. package/core/client/App.vue +1 -1
  2. package/core/client/asWebComponent.js +1 -1
  3. package/core/client/composables/DefineWidgets.js +12 -2
  4. package/core/client/eodashSTAC/EodashCollection.js +12 -13
  5. package/core/client/eodashSTAC/createLayers.js +45 -18
  6. package/core/client/eodashSTAC/helpers.js +13 -5
  7. package/core/client/eodashSTAC/parquet.js +2 -1
  8. package/core/client/eodashSTAC/triggers.js +1 -2
  9. package/core/client/store/actions.js +17 -17
  10. package/core/client/store/states.js +26 -4
  11. package/core/client/types.ts +9 -0
  12. package/core/client/utils/index.js +18 -1
  13. package/dist/client/{DashboardLayout-CQOGHPW_.js → DashboardLayout-D_590Zle.js} +2 -2
  14. package/dist/client/{DynamicWebComponent-CoLO8FEf.js → DynamicWebComponent-67cfzL4o.js} +1 -1
  15. package/dist/client/EodashChart-BsW18Em1.js +144 -0
  16. package/dist/client/{EodashDatePicker-BZeQ6bcu.js → EodashDatePicker-BwyFIBlK.js} +10 -7
  17. package/dist/client/{EodashItemFilter-CmZkk7GK.js → EodashItemFilter-CgdrG-pX.js} +2 -2
  18. package/dist/client/{EodashLayerControl-D54fY-bX.js → EodashLayerControl-V98fahVJ.js} +2 -2
  19. package/dist/client/{EodashLayoutSwitcher-BCP3FvDb.js → EodashLayoutSwitcher-B4oI5PAx.js} +3 -3
  20. package/dist/client/EodashMapBtns-Ce2tFjJK.js +433 -0
  21. package/dist/client/{EodashStacInfo-BZbmT8vT.js → EodashStacInfo-Cb28jVEr.js} +11 -15
  22. package/dist/client/{EodashTimeSlider-DIcAJr6D.js → EodashTimeSlider-B5boxpCK.js} +2 -2
  23. package/dist/client/{EodashTools-Cz6X6hsF.js → EodashTools-RwiXxELa.js} +4 -4
  24. package/dist/client/{ExportState-DFVFAgKz.js → ExportState-Cp4ftu4f.js} +46 -21
  25. package/dist/client/{Footer-DLzQcjkI.js → Footer-xGfh2LUv.js} +1 -1
  26. package/dist/client/{Header-_D9Z-zFJ.js → Header-BggV8BVC.js} +127 -17
  27. package/dist/client/MobileLayout-BwXCBKFL.js +118 -0
  28. package/dist/client/{PopUp-DwI8V2gW.js → PopUp-C6x6Rpv0.js} +8 -59
  29. package/dist/client/{ProcessList-C9eAg2Sb.js → ProcessList-DDwo71cD.js} +9 -13
  30. package/dist/client/{VImg-COXTnCWE.js → VImg-DN23k6uX.js} +2 -2
  31. package/dist/client/{VMain-C74l1bv-.js → VMain-BT2ZxPLy.js} +1 -1
  32. package/dist/client/{VTooltip-BLS-cQ9N.js → VTooltip-CAkym6KY.js} +3 -4
  33. package/dist/client/{WidgetsContainer-D-VfMRxE.js → WidgetsContainer-CLYZgRgc.js} +1 -1
  34. package/dist/client/asWebComponent-C5YMrXyg.js +9206 -0
  35. package/dist/client/{async-D4G-FOIc.js → async-DHmiD7O-.js} +6 -8
  36. package/dist/client/eo-dash.js +1 -1
  37. package/dist/client/{forwardRefs-CRMFoNYN.js → forwardRefs-YqjFe8WZ.js} +196 -37
  38. package/dist/client/{handling-DTAhQuPh.js → handling-DRaAJMSG.js} +93 -53
  39. package/dist/client/{helpers-CsjKHAcK.js → helpers-Bi-qmnbZ.js} +188 -87
  40. package/dist/client/{index-BoCcZ0l4.js → index-BtY2y1sL.js} +15 -16
  41. package/dist/client/{index-DEmHaCL3.js → index-D4GBjamF.js} +5 -3
  42. package/dist/client/{index-BIcmbjr0.js → index-DYLTaaU8.js} +27 -14
  43. package/dist/client/{index-BHilH1qx.js → index-bSHJLUNu.js} +30 -73
  44. package/dist/client/templates.js +64 -5
  45. package/dist/client/{transition-6MJLK-_H.js → transition-C4YbXuIb.js} +1 -1
  46. package/dist/node/cli.js +1 -1
  47. package/dist/types/core/client/App.vue.d.ts +16 -6
  48. package/dist/types/core/client/asWebComponent.d.ts +2 -2
  49. package/dist/types/core/client/components/DashboardLayout.vue.d.ts +2 -1
  50. package/dist/types/core/client/components/DynamicWebComponent.vue.d.ts +36 -16
  51. package/dist/types/core/client/components/EodashOverlay.vue.d.ts +2 -1
  52. package/dist/types/core/client/components/ErrorAlert.vue.d.ts +9 -1
  53. package/dist/types/core/client/components/Footer.vue.d.ts +2 -1
  54. package/dist/types/core/client/components/Header.vue.d.ts +2 -1
  55. package/dist/types/core/client/components/IframeWrapper.vue.d.ts +12 -6
  56. package/dist/types/core/client/components/Loading.vue.d.ts +2 -1
  57. package/dist/types/core/client/components/MobileLayout.vue.d.ts +2 -1
  58. package/dist/types/core/client/eodashSTAC/helpers.d.ts +2 -0
  59. package/dist/types/core/client/store/actions.d.ts +1 -2
  60. package/dist/types/core/client/store/states.d.ts +22 -4
  61. package/dist/types/core/client/types.d.ts +6 -1
  62. package/dist/types/core/client/utils/index.d.ts +1 -0
  63. package/dist/types/core/client/views/Dashboard.vue.d.ts +20 -8
  64. package/dist/types/templates/compare.d.ts +20 -0
  65. package/dist/types/templates/expert.d.ts +30 -1
  66. package/dist/types/widgets/EodashChart.vue.d.ts +28 -0
  67. package/dist/types/widgets/EodashDatePicker.vue.d.ts +38 -9
  68. package/dist/types/widgets/EodashItemCatalog/index.vue.d.ts +88 -13
  69. package/dist/types/widgets/EodashItemCatalog/methods/map.d.ts +1 -1
  70. package/dist/types/widgets/EodashItemFilter.vue.d.ts +169 -26
  71. package/dist/types/widgets/EodashLayerControl.vue.d.ts +38 -10
  72. package/dist/types/widgets/EodashLayoutSwitcher.vue.d.ts +22 -7
  73. package/dist/types/widgets/EodashMap/EodashMapBtns.vue.d.ts +94 -21
  74. package/dist/types/widgets/EodashMap/index.vue.d.ts +646 -93
  75. package/dist/types/widgets/EodashMap/methods/btns.d.ts +14 -0
  76. package/dist/types/widgets/EodashProcess/ProcessList.vue.d.ts +24 -7
  77. package/dist/types/widgets/EodashProcess/index.vue.d.ts +26 -7
  78. package/dist/types/widgets/EodashProcess/methods/composables.d.ts +1 -2
  79. package/dist/types/widgets/EodashProcess/methods/handling.d.ts +9 -14
  80. package/dist/types/widgets/EodashProcess/methods/outputs.d.ts +2 -2
  81. package/dist/types/widgets/EodashProcess/methods/utils.d.ts +2 -2
  82. package/dist/types/widgets/EodashStacInfo.vue.d.ts +67 -18
  83. package/dist/types/widgets/EodashTimeSlider.vue.d.ts +14 -6
  84. package/dist/types/widgets/EodashTools.vue.d.ts +437 -47
  85. package/dist/types/widgets/ExportState.vue.d.ts +26 -8
  86. package/dist/types/widgets/PopUp.vue.d.ts +61 -11
  87. package/dist/types/widgets/WidgetsContainer.vue.d.ts +22 -6
  88. package/package.json +33 -34
  89. package/templates/baseConfig.js +14 -0
  90. package/templates/compare.js +30 -3
  91. package/templates/expert.js +20 -2
  92. package/templates/lite.js +1 -1
  93. package/widgets/EodashChart.vue +139 -0
  94. package/widgets/EodashDatePicker.vue +5 -2
  95. package/widgets/EodashItemCatalog/index.vue +2 -2
  96. package/widgets/EodashItemCatalog/methods/map.js +9 -10
  97. package/widgets/EodashMap/EodashMapBtns.vue +58 -93
  98. package/widgets/EodashMap/index.vue +10 -2
  99. package/widgets/EodashMap/methods/btns.js +155 -0
  100. package/widgets/EodashMap/methods/create-layers-config.js +3 -3
  101. package/widgets/EodashMap/methods/index.js +2 -1
  102. package/widgets/EodashProcess/ProcessList.vue +2 -3
  103. package/widgets/EodashProcess/index.vue +24 -63
  104. package/widgets/EodashProcess/methods/async.js +1 -1
  105. package/widgets/EodashProcess/methods/composables.js +1 -6
  106. package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +10 -6
  107. package/widgets/EodashProcess/methods/handling.js +42 -40
  108. package/widgets/EodashProcess/methods/outputs.js +44 -4
  109. package/widgets/EodashProcess/methods/utils.js +3 -5
  110. package/widgets/EodashStacInfo.vue +10 -23
  111. package/widgets/ExportState.vue +9 -15
  112. package/dist/client/EodashMapBtns-D-HulIl1.js +0 -306
  113. package/dist/client/MobileLayout-3Ko9XSfO.js +0 -118
  114. package/dist/client/asWebComponent-Bw03Jutr.js +0 -9090
@@ -3,6 +3,13 @@ import { setupCache } from 'axios-cache-interceptor';
3
3
  import log from 'loglevel';
4
4
  import { ref, shallowRef } from 'vue';
5
5
 
6
+ /**
7
+ * Create a bound version of a function with a specified `this` context
8
+ *
9
+ * @param {Function} fn - The function to bind
10
+ * @param {*} thisArg - The value to be passed as the `this` parameter
11
+ * @returns {Function} A new function that will call the original function with the specified `this` context
12
+ */
6
13
  function bind(fn, thisArg) {
7
14
  return function wrap() {
8
15
  return fn.apply(thisArg, arguments);
@@ -1255,7 +1262,7 @@ class InterceptorManager {
1255
1262
  *
1256
1263
  * @param {Number} id The ID that was returned by `use`
1257
1264
  *
1258
- * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
1265
+ * @returns {void}
1259
1266
  */
1260
1267
  eject(id) {
1261
1268
  if (this.handlers[id]) {
@@ -2215,27 +2222,38 @@ const cookies = platform.hasStandardBrowserEnv ?
2215
2222
 
2216
2223
  // Standard browser envs support document.cookie
2217
2224
  {
2218
- write(name, value, expires, path, domain, secure) {
2219
- const cookie = [name + '=' + encodeURIComponent(value)];
2220
-
2221
- utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
2225
+ write(name, value, expires, path, domain, secure, sameSite) {
2226
+ if (typeof document === 'undefined') return;
2222
2227
 
2223
- utils$1.isString(path) && cookie.push('path=' + path);
2228
+ const cookie = [`${name}=${encodeURIComponent(value)}`];
2224
2229
 
2225
- utils$1.isString(domain) && cookie.push('domain=' + domain);
2226
-
2227
- secure === true && cookie.push('secure');
2230
+ if (utils$1.isNumber(expires)) {
2231
+ cookie.push(`expires=${new Date(expires).toUTCString()}`);
2232
+ }
2233
+ if (utils$1.isString(path)) {
2234
+ cookie.push(`path=${path}`);
2235
+ }
2236
+ if (utils$1.isString(domain)) {
2237
+ cookie.push(`domain=${domain}`);
2238
+ }
2239
+ if (secure === true) {
2240
+ cookie.push('secure');
2241
+ }
2242
+ if (utils$1.isString(sameSite)) {
2243
+ cookie.push(`SameSite=${sameSite}`);
2244
+ }
2228
2245
 
2229
2246
  document.cookie = cookie.join('; ');
2230
2247
  },
2231
2248
 
2232
2249
  read(name) {
2233
- const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
2234
- return (match ? decodeURIComponent(match[3]) : null);
2250
+ if (typeof document === 'undefined') return null;
2251
+ const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
2252
+ return match ? decodeURIComponent(match[1]) : null;
2235
2253
  },
2236
2254
 
2237
2255
  remove(name) {
2238
- this.write(name, '', Date.now() - 86400000);
2256
+ this.write(name, '', Date.now() - 86400000, '/');
2239
2257
  }
2240
2258
  }
2241
2259
 
@@ -2324,11 +2342,11 @@ function mergeConfig(config1, config2) {
2324
2342
  }
2325
2343
 
2326
2344
  // eslint-disable-next-line consistent-return
2327
- function mergeDeepProperties(a, b, prop , caseless) {
2345
+ function mergeDeepProperties(a, b, prop, caseless) {
2328
2346
  if (!utils$1.isUndefined(b)) {
2329
- return getMergedValue(a, b, prop , caseless);
2347
+ return getMergedValue(a, b, prop, caseless);
2330
2348
  } else if (!utils$1.isUndefined(a)) {
2331
- return getMergedValue(undefined, a, prop , caseless);
2349
+ return getMergedValue(undefined, a, prop, caseless);
2332
2350
  }
2333
2351
  }
2334
2352
 
@@ -2386,7 +2404,7 @@ function mergeConfig(config1, config2) {
2386
2404
  socketPath: defaultToConfig2,
2387
2405
  responseEncoding: defaultToConfig2,
2388
2406
  validateStatus: mergeDirectKeys,
2389
- headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)
2407
+ headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)
2390
2408
  };
2391
2409
 
2392
2410
  utils$1.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {
@@ -3024,7 +3042,7 @@ const factory = (env) => {
3024
3042
  const seedCache = new Map();
3025
3043
 
3026
3044
  const getFetch = (config) => {
3027
- let env = config ? config.env : {};
3045
+ let env = (config && config.env) || {};
3028
3046
  const {fetch, Request, Response} = env;
3029
3047
  const seeds = [
3030
3048
  Request, Response, fetch
@@ -3047,6 +3065,15 @@ const getFetch = (config) => {
3047
3065
 
3048
3066
  getFetch();
3049
3067
 
3068
+ /**
3069
+ * Known adapters mapping.
3070
+ * Provides environment-specific adapters for Axios:
3071
+ * - `http` for Node.js
3072
+ * - `xhr` for browsers
3073
+ * - `fetch` for fetch API-based requests
3074
+ *
3075
+ * @type {Object<string, Function|Object>}
3076
+ */
3050
3077
  const knownAdapters = {
3051
3078
  http: httpAdapter,
3052
3079
  xhr: xhrAdapter,
@@ -3055,71 +3082,107 @@ const knownAdapters = {
3055
3082
  }
3056
3083
  };
3057
3084
 
3085
+ // Assign adapter names for easier debugging and identification
3058
3086
  utils$1.forEach(knownAdapters, (fn, value) => {
3059
3087
  if (fn) {
3060
3088
  try {
3061
- Object.defineProperty(fn, 'name', {value});
3089
+ Object.defineProperty(fn, 'name', { value });
3062
3090
  } catch (e) {
3063
3091
  // eslint-disable-next-line no-empty
3064
3092
  }
3065
- Object.defineProperty(fn, 'adapterName', {value});
3093
+ Object.defineProperty(fn, 'adapterName', { value });
3066
3094
  }
3067
3095
  });
3068
3096
 
3097
+ /**
3098
+ * Render a rejection reason string for unknown or unsupported adapters
3099
+ *
3100
+ * @param {string} reason
3101
+ * @returns {string}
3102
+ */
3069
3103
  const renderReason = (reason) => `- ${reason}`;
3070
3104
 
3105
+ /**
3106
+ * Check if the adapter is resolved (function, null, or false)
3107
+ *
3108
+ * @param {Function|null|false} adapter
3109
+ * @returns {boolean}
3110
+ */
3071
3111
  const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
3072
3112
 
3073
- const adapters = {
3074
- getAdapter: (adapters, config) => {
3075
- adapters = utils$1.isArray(adapters) ? adapters : [adapters];
3076
-
3077
- const {length} = adapters;
3078
- let nameOrAdapter;
3079
- let adapter;
3113
+ /**
3114
+ * Get the first suitable adapter from the provided list.
3115
+ * Tries each adapter in order until a supported one is found.
3116
+ * Throws an AxiosError if no adapter is suitable.
3117
+ *
3118
+ * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.
3119
+ * @param {Object} config - Axios request configuration
3120
+ * @throws {AxiosError} If no suitable adapter is available
3121
+ * @returns {Function} The resolved adapter function
3122
+ */
3123
+ function getAdapter(adapters, config) {
3124
+ adapters = utils$1.isArray(adapters) ? adapters : [adapters];
3080
3125
 
3081
- const rejectedReasons = {};
3126
+ const { length } = adapters;
3127
+ let nameOrAdapter;
3128
+ let adapter;
3082
3129
 
3083
- for (let i = 0; i < length; i++) {
3084
- nameOrAdapter = adapters[i];
3085
- let id;
3130
+ const rejectedReasons = {};
3086
3131
 
3087
- adapter = nameOrAdapter;
3132
+ for (let i = 0; i < length; i++) {
3133
+ nameOrAdapter = adapters[i];
3134
+ let id;
3088
3135
 
3089
- if (!isResolvedHandle(nameOrAdapter)) {
3090
- adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
3136
+ adapter = nameOrAdapter;
3091
3137
 
3092
- if (adapter === undefined) {
3093
- throw new AxiosError(`Unknown adapter '${id}'`);
3094
- }
3095
- }
3138
+ if (!isResolvedHandle(nameOrAdapter)) {
3139
+ adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
3096
3140
 
3097
- if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {
3098
- break;
3141
+ if (adapter === undefined) {
3142
+ throw new AxiosError(`Unknown adapter '${id}'`);
3099
3143
  }
3144
+ }
3100
3145
 
3101
- rejectedReasons[id || '#' + i] = adapter;
3146
+ if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {
3147
+ break;
3102
3148
  }
3103
3149
 
3104
- if (!adapter) {
3150
+ rejectedReasons[id || '#' + i] = adapter;
3151
+ }
3105
3152
 
3106
- const reasons = Object.entries(rejectedReasons)
3107
- .map(([id, state]) => `adapter ${id} ` +
3108
- (state === false ? 'is not supported by the environment' : 'is not available in the build')
3109
- );
3153
+ if (!adapter) {
3154
+ const reasons = Object.entries(rejectedReasons)
3155
+ .map(([id, state]) => `adapter ${id} ` +
3156
+ (state === false ? 'is not supported by the environment' : 'is not available in the build')
3157
+ );
3110
3158
 
3111
- let s = length ?
3112
- (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
3113
- 'as no adapter specified';
3159
+ let s = length ?
3160
+ (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
3161
+ 'as no adapter specified';
3114
3162
 
3115
- throw new AxiosError(
3116
- `There is no suitable adapter to dispatch the request ` + s,
3117
- 'ERR_NOT_SUPPORT'
3118
- );
3119
- }
3163
+ throw new AxiosError(
3164
+ `There is no suitable adapter to dispatch the request ` + s,
3165
+ 'ERR_NOT_SUPPORT'
3166
+ );
3167
+ }
3120
3168
 
3121
- return adapter;
3122
- },
3169
+ return adapter;
3170
+ }
3171
+
3172
+ /**
3173
+ * Exports Axios adapters and utility to resolve an adapter
3174
+ */
3175
+ const adapters = {
3176
+ /**
3177
+ * Resolve an adapter from a list of adapter names or functions.
3178
+ * @type {Function}
3179
+ */
3180
+ getAdapter,
3181
+
3182
+ /**
3183
+ * Exposes all known adapters
3184
+ * @type {Object<string, Function|Object>}
3185
+ */
3123
3186
  adapters: knownAdapters
3124
3187
  };
3125
3188
 
@@ -3196,7 +3259,7 @@ function dispatchRequest(config) {
3196
3259
  });
3197
3260
  }
3198
3261
 
3199
- const VERSION = "1.12.2";
3262
+ const VERSION = "1.13.2";
3200
3263
 
3201
3264
  const validators$1 = {};
3202
3265
 
@@ -3751,6 +3814,12 @@ const HttpStatusCode = {
3751
3814
  LoopDetected: 508,
3752
3815
  NotExtended: 510,
3753
3816
  NetworkAuthenticationRequired: 511,
3817
+ WebServerIsDown: 521,
3818
+ ConnectionTimedOut: 522,
3819
+ OriginIsUnreachable: 523,
3820
+ TimeoutOccurred: 524,
3821
+ SslHandshakeFailed: 525,
3822
+ InvalidSslCertificate: 526,
3754
3823
  };
3755
3824
 
3756
3825
  Object.entries(HttpStatusCode).forEach(([key, value]) => {
@@ -3873,24 +3942,50 @@ const poi = ref("");
3873
3942
  */
3874
3943
  const comparePoi = ref("");
3875
3944
 
3876
- /** @type {import("vue").Ref<import("@eox/chart").EOxChart | null>} */
3877
- const chartEl = shallowRef(null);
3945
+ /** Whether the map is in globe mode */
3946
+ const isGlobe = ref(false);
3878
3947
 
3879
- /** @type {import("vue").Ref<import("@eox/chart").EOxChart | null>} */
3880
- const compareChartEl = shallowRef(null);
3948
+ /** Whether the charts are in fullscreen mode
3949
+ * @type {import("vue").Ref<boolean>}
3950
+ */
3951
+ const areChartsSeparateLayout = ref(false);
3952
+
3953
+ /** Holds main chart data
3954
+ * @type {import("vue").Ref<Record<string,any>|null>}
3955
+ */
3956
+ const chartData = ref(null);
3957
+
3958
+ /** Holds compare chart data
3959
+ * @type {import("vue").Ref<Record<string,any>|null>}
3960
+ */
3961
+ const compareChartData = ref(null);
3962
+
3963
+ /** Holds main chart spec
3964
+ * @type {import("vue").Ref<import("vega-embed").VisualizationSpec | null>}
3965
+ */
3966
+ const chartSpec = ref(null);
3967
+
3968
+ /** Holds compare chart spec
3969
+ * @type {import("vue").Ref<import("vega-embed").VisualizationSpec | null>}
3970
+ */
3971
+ const compareChartSpec = ref(null);
3881
3972
 
3882
3973
  const states = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
3883
3974
  __proto__: null,
3884
3975
  activeTemplate,
3976
+ areChartsSeparateLayout,
3885
3977
  availableMapProjection,
3886
- chartEl,
3887
- compareChartEl,
3978
+ chartData,
3979
+ chartSpec,
3980
+ compareChartData,
3981
+ compareChartSpec,
3888
3982
  compareIndicator,
3889
3983
  comparePoi,
3890
3984
  currentCompareUrl,
3891
3985
  currentUrl,
3892
3986
  datetime,
3893
3987
  indicator,
3988
+ isGlobe,
3894
3989
  mapCompareEl,
3895
3990
  mapEl,
3896
3991
  mapPosition,
@@ -3902,26 +3997,13 @@ const states = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
3902
3997
  * Returns the current layers of {@link mapEl}
3903
3998
  * @returns {import("@eox/map").EoxLayer[]}
3904
3999
  */
3905
- const getLayers = () => mapEl.value?.layers.toReversed() ?? [];
4000
+ const getLayers = () => mapEl.value?.layers ?? [];
3906
4001
 
3907
4002
  /**
3908
4003
  * Returns the current layers of {@link mapCompareEl}
3909
4004
  * * @returns {import("@eox/map").EoxLayer[]}
3910
4005
  */
3911
- const getCompareLayers = () =>
3912
- mapCompareEl.value?.layers.toReversed() ?? [];
3913
-
3914
- /**
3915
- * Returns the current chart spec from {@link chartEl}
3916
- * @returns {import("vega-embed").VisualizationSpec | null}
3917
- */
3918
- const getChartSpec = () => chartEl.value?.spec ?? null;
3919
-
3920
- /**
3921
- * Returns the current chart spec from {@link compareChartEl}
3922
- * @returns {import("vega-embed").VisualizationSpec | null}
3923
- */
3924
- const getCompareChartSpec = () => compareChartEl.value?.spec ?? null;
4006
+ const getCompareLayers = () => mapCompareEl.value?.layers ?? [];
3925
4007
 
3926
4008
  /**
3927
4009
  * Register EPSG projection in `eox-map`
@@ -3996,16 +4078,27 @@ const includesProcess = (collection, compare = false) => {
3996
4078
  );
3997
4079
  };
3998
4080
 
4081
+ /**
4082
+ * Check whether main or compare chart have data to show
4083
+ * @param {boolean} [compare=false] - Whether to check for compare collection
4084
+ * @returns
4085
+ */
4086
+ const shouldShowChartWidget = (compare = false) => {
4087
+ return (
4088
+ areChartsSeparateLayout.value &&
4089
+ (compare ? compareChartData.value : chartData.value)
4090
+ );
4091
+ };
4092
+
3999
4093
  const actions = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
4000
4094
  __proto__: null,
4001
4095
  changeMapProjection,
4002
- getChartSpec,
4003
- getCompareChartSpec,
4004
4096
  getCompareLayers,
4005
4097
  getLayers,
4006
4098
  includesProcess,
4007
4099
  registerProjection,
4008
- setActiveTemplate
4100
+ setActiveTemplate,
4101
+ shouldShowChartWidget
4009
4102
  }, Symbol.toStringTag, { value: 'Module' }));
4010
4103
 
4011
4104
  /*
@@ -4091,7 +4184,7 @@ function getStyleVariablesState(collectionId, variables) {
4091
4184
  ).getStyle?.()?.variables ??
4092
4185
  //@ts-expect-error (styleVariables_ is a private property)
4093
4186
  /** @type {import("ol/layer").WebGLTile} */ (olLayer).styleVariables_;
4094
-
4187
+
4095
4188
  if (!oldVariablesState) {
4096
4189
  return variables;
4097
4190
  }
@@ -4152,7 +4245,12 @@ function generateFeatures(links, extraProperties = {}, rel = "item") {
4152
4245
  * @param {Record<string,any>} [rasterJsonform]
4153
4246
  * @param {string} [layerConfigType]
4154
4247
  * */
4155
- function extractLayerConfig(collectionId, style, rasterJsonform, layerConfigType) {
4248
+ function extractLayerConfig(
4249
+ collectionId,
4250
+ style,
4251
+ rasterJsonform,
4252
+ layerConfigType,
4253
+ ) {
4156
4254
  if (!style && !rasterJsonform) {
4157
4255
  return { layerConfig: undefined, style: undefined };
4158
4256
  }
@@ -4295,8 +4393,11 @@ const fetchStyle = async (
4295
4393
  /** @type {Array<string>} */ (link["asset:keys"]).includes(assetKey),
4296
4394
  );
4297
4395
  } else {
4298
- log.debug("Neither link key, nor asset key input, can not match any style to layer.", stacObject.id);
4299
- return {};
4396
+ log.debug(
4397
+ "Neither link key, nor asset key input, can not match any style to layer.",
4398
+ stacObject.id,
4399
+ );
4400
+ return {};
4300
4401
  }
4301
4402
  if (styleLink) {
4302
4403
  /** @type {import("@/types").EodashStyleJson} */
@@ -4425,6 +4526,7 @@ const extractLayerTimeValues = (items, currentStep) => {
4425
4526
  navigation: true,
4426
4527
  play: false,
4427
4528
  displayFormat: "DD.MM.YYYY HH:mm",
4529
+ animateOnClickInterval: false,
4428
4530
  };
4429
4531
 
4430
4532
  return {
@@ -4527,7 +4629,7 @@ const replaceLayersInStructure = (layers, toRemove, toInsert) => {
4527
4629
  continue;
4528
4630
  }
4529
4631
 
4530
- result.push(layer);
4632
+ result.unshift(layer);
4531
4633
  }
4532
4634
 
4533
4635
  return result;
@@ -4924,7 +5026,6 @@ function extractLayerLegend(collection) {
4924
5026
  return extraProperties;
4925
5027
  }
4926
5028
 
4927
-
4928
5029
  /**
4929
5030
  * @param { import ("stac-ts").StacLink } link
4930
5031
  * @returns {object}
@@ -4939,4 +5040,4 @@ function extractEoxLegendLink(link) {
4939
5040
  return extraProperties;
4940
5041
  }
4941
5042
 
4942
- export { revokeCollectionBlobUrls as A, currentUrl as B, datetime as C, poi as D, activeTemplate as E, mapPosition as F, indicator as G, currentCompareUrl as H, compareIndicator as I, comparePoi as J, states as K, actions as L, includesProcess as M, sanitizeBbox as N, mapCompareEl as O, getColFromLayer as P, setMapProjFromCol as Q, availableMapProjection as R, changeMapProjection as S, setActiveTemplate as T, compareChartEl as U, chartEl as V, replaceLayer as W, axios$1 as X, removeUnneededProperties as Y, getChartSpec as Z, extractEoxLegendLink as a, extractLayerConfig as b, createLayerID as c, axios as d, extractRoles as e, fetchStyle as f, getProjectionCode as g, addTooltipInteraction as h, createAssetID as i, mapEl as j, isSTACItem as k, extractLayerTimeValues as l, mergeGeojsons as m, fetchApiItems as n, getDatetimeProperty as o, fetchAllStyles as p, getLayers as q, registerProjection as r, getCompareLayers as s, findLayer as t, findLayersByLayerPrefix as u, replaceLayersInStructure as v, generateFeatures as w, extractLayerLegend as x, extractCollectionUrls as y, generateLinksFromItems as z };
5043
+ export { replaceLayer as $, revokeCollectionBlobUrls as A, currentUrl as B, datetime as C, poi as D, activeTemplate as E, mapPosition as F, indicator as G, currentCompareUrl as H, compareIndicator as I, comparePoi as J, states as K, actions as L, areChartsSeparateLayout as M, chartSpec as N, compareChartSpec as O, includesProcess as P, shouldShowChartWidget as Q, sanitizeBbox as R, mapCompareEl as S, getColFromLayer as T, setMapProjFromCol as U, isGlobe as V, setActiveTemplate as W, availableMapProjection as X, changeMapProjection as Y, compareChartData as Z, chartData as _, extractEoxLegendLink as a, axios$1 as a0, removeUnneededProperties as a1, extractLayerConfig as b, createLayerID as c, axios as d, extractRoles as e, fetchStyle as f, getProjectionCode as g, addTooltipInteraction as h, createAssetID as i, mapEl as j, isSTACItem as k, extractLayerTimeValues as l, mergeGeojsons as m, fetchApiItems as n, getDatetimeProperty as o, fetchAllStyles as p, findLayer as q, registerProjection as r, findLayersByLayerPrefix as s, replaceLayersInStructure as t, generateFeatures as u, extractLayerLegend as v, getLayers as w, getCompareLayers as x, extractCollectionUrls as y, generateLinksFromItems as z };
@@ -1,9 +1,9 @@
1
1
  import { onMounted, onUnmounted, withAsyncContext, useTemplateRef, ref, createElementBlock, openBlock, createVNode, createElementVNode, withCtx, unref, toDisplayString } from 'vue';
2
- import { E as useSTAcStore, K as useOnLayersUpdate, _ as _export_sfc, L as VRow } from './asWebComponent-Bw03Jutr.js';
3
- import { G as indicator, j as mapEl, N as sanitizeBbox, d as axios } from './helpers-CsjKHAcK.js';
2
+ import { E as useSTAcStore, K as useOnLayersUpdate, _ as _export_sfc, L as VRow } from './asWebComponent-C5YMrXyg.js';
3
+ import { G as indicator, j as mapEl, R as sanitizeBbox, d as axios } from './helpers-Bi-qmnbZ.js';
4
4
  import { i as inAndOut } from './easing-CH0-9wR8.js';
5
5
  import { mdiViewDashboard } from '@mdi/js';
6
- import _sfc_main$1 from './EodashLayoutSwitcher-BCP3FvDb.js';
6
+ import _sfc_main$1 from './EodashLayoutSwitcher-B4oI5PAx.js';
7
7
 
8
8
  /**
9
9
  *
@@ -239,7 +239,7 @@ function renderItemsFeatures(features) {
239
239
  },
240
240
  layers: [],
241
241
  };
242
- mapEl.value.layers = [analysisLayers, ...mapEl.value.layers.reverse()];
242
+ mapEl.value.layers = [...mapEl.value.layers, analysisLayers];
243
243
  }
244
244
 
245
245
  const stacItemsLayer = {
@@ -284,8 +284,8 @@ function renderItemsFeatures(features) {
284
284
  return;
285
285
  } else {
286
286
  //@ts-expect-error todo
287
- analysisLayers.layers.unshift(stacItemsLayer);
288
- mapEl.value.layers = [...mapEl.value.layers].reverse();
287
+ analysisLayers.layers.push(stacItemsLayer);
288
+ mapEl.value.layers = [...mapEl.value.layers];
289
289
  }
290
290
  }
291
291
 
@@ -317,21 +317,20 @@ const useSearchOnMapMove = (itemFilter, bboxFilter) => {
317
317
  * @param {import("vue").Ref<import("@/types").GeoJsonFeature[]>} currentItems
318
318
  */
319
319
  const useRenderItemsFeatures = (currentItems) => {
320
- const renderOnUpdate = () =>
321
- useOnLayersUpdate(() => {
322
- // consider cases where this is not needed
323
- renderItemsFeatures(currentItems.value);
324
- });
325
320
  onMounted(() => {
326
321
  renderItemsFeatures(currentItems.value);
327
- renderOnUpdate();
322
+ });
323
+
324
+ useOnLayersUpdate(() => {
325
+ // consider cases where this is not needed
326
+ renderItemsFeatures(currentItems.value);
328
327
  });
329
328
  };
330
329
  /**
331
330
  *
332
331
  * @param {import("vue").Ref<any>} itemfilterEl
333
332
  */
334
- function useRenderOnFeatureHover(itemfilterEl) {
333
+ function useHighlightOnFeatureHover(itemfilterEl) {
335
334
  /**
336
335
  *
337
336
  * @param {CustomEvent} evt
@@ -406,7 +405,7 @@ const onMouseLeaveResult = () => {
406
405
  mapEl.value?.selectInteractions["stac-items"]?.highlightById([]);
407
406
  };
408
407
 
409
- const _style_0 = "eox-itemfilter[data-v-64c66d83]{flex-basis:20%;height:100%;overflow:hidden!important;padding:1rem;--eox-itemfilter-results-color: var(--v-theme-surface) !important}.title[data-v-64c66d83]{padding:1em;margin:.2em}";
408
+ const _style_0 = "eox-itemfilter[data-v-4d4f6477]{flex-basis:20%;height:100%;overflow:hidden!important;padding:1rem;--eox-itemfilter-results-color: var(--v-theme-surface) !important}.title[data-v-4d4f6477]{padding:1em;margin:.2em}";
410
409
 
411
410
  const _hoisted_1 = [".imageProperty", ".subTitleProperty", ".filterProperties", ".items", "externalFilter"];
412
411
  const _hoisted_2 = {
@@ -525,7 +524,7 @@ useRenderItemsFeatures(currentItems);
525
524
  // Search on map move logic
526
525
  useSearchOnMapMove(itemfilterEl, props.bboxFilter);
527
526
 
528
- useRenderOnFeatureHover(itemfilterEl);
527
+ useHighlightOnFeatureHover(itemfilterEl);
529
528
 
530
529
  onUnmounted(() => {
531
530
  store.selectedItem = null;
@@ -566,6 +565,6 @@ return (_ctx, _cache) => {
566
565
  }
567
566
 
568
567
  };
569
- const index = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0]],['__scopeId',"data-v-64c66d83"]]);
568
+ const index = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0]],['__scopeId',"data-v-4d4f6477"]]);
570
569
 
571
570
  export { index as default };
@@ -1,6 +1,6 @@
1
1
  import { resolveComponent, render, h, mergeProps } from 'vue';
2
- import { X as consoleError, Y as isObject } from './asWebComponent-Bw03Jutr.js';
3
- import { V as VTooltip } from './VTooltip-BLS-cQ9N.js';
2
+ import { Y as consoleError, Z as isObject } from './asWebComponent-C5YMrXyg.js';
3
+ import { V as VTooltip } from './VTooltip-CAkym6KY.js';
4
4
 
5
5
  // Utilities
6
6
  function useDirectiveComponent(component, props) {
@@ -75,8 +75,10 @@ function findComponentParent(vnode, root) {
75
75
 
76
76
  // Components
77
77
  const Tooltip = useDirectiveComponent(VTooltip, binding => {
78
+ const disabled = isObject(binding.value) ? !binding.value.text : ['', false, null].includes(binding.value); // undefined means true
79
+
78
80
  return {
79
- activator: 'parent',
81
+ activator: disabled ? null : 'parent',
80
82
  location: binding.arg?.replace('-', ' '),
81
83
  text: typeof binding.value === 'boolean' ? undefined : binding.value
82
84
  };