@eodash/eodash 5.5.1 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/core/client/App.vue +1 -1
  2. package/core/client/eodashSTAC/EodashCollection.js +7 -4
  3. package/core/client/eodashSTAC/auth.js +19 -9
  4. package/core/client/eodashSTAC/createLayers.js +130 -24
  5. package/core/client/eodashSTAC/helpers.js +23 -56
  6. package/core/client/store/stac.js +9 -0
  7. package/core/client/types.ts +1 -0
  8. package/dist/client/{DashboardLayout-D_590Zle.js → DashboardLayout-DkKDhfgH.js} +3 -3
  9. package/dist/client/{DynamicWebComponent-67cfzL4o.js → DynamicWebComponent-BrpkA-e3.js} +2 -2
  10. package/dist/client/{EodashChart-BsW18Em1.js → EodashChart-p7_1FRlF.js} +5 -5
  11. package/dist/client/{EodashDatePicker-BwyFIBlK.js → EodashDatePicker-HK0Jl7wQ.js} +4 -4
  12. package/dist/client/{EodashItemFilter-CgdrG-pX.js → EodashItemFilter-BYQDA78B.js} +2 -2
  13. package/dist/client/{EodashLayerControl-V98fahVJ.js → EodashLayerControl-NcrNncGn.js} +18 -4
  14. package/dist/client/{EodashLayoutSwitcher-B4oI5PAx.js → EodashLayoutSwitcher-CC2Znd0I.js} +4 -4
  15. package/dist/client/EodashMapBtns-BJSh7qT-.js +435 -0
  16. package/dist/client/{EodashStacInfo-Cb28jVEr.js → EodashStacInfo-BA-0UjvT.js} +42 -7
  17. package/dist/client/{EodashTimeSlider-B5boxpCK.js → EodashTimeSlider-GDv1hbw7.js} +3 -3
  18. package/dist/client/{EodashTools-RwiXxELa.js → EodashTools-CWmoH0g_.js} +5 -5
  19. package/dist/client/{ExportState-Cp4ftu4f.js → ExportState-CfAfX4RN.js} +9 -7
  20. package/dist/client/{Footer-xGfh2LUv.js → Footer-DLGxQTZt.js} +2 -2
  21. package/dist/client/{Header-BggV8BVC.js → Header-eyEyyzD6.js} +10 -6
  22. package/dist/client/{IframeWrapper-XzQDZy0T.js → IframeWrapper-BgM9aU8f.js} +1 -1
  23. package/dist/client/MobileLayout-RzLOyXwL.js +118 -0
  24. package/dist/client/{PopUp-C6x6Rpv0.js → PopUp-WNs6Io2N.js} +3 -3
  25. package/dist/client/{ProcessList-DDwo71cD.js → ProcessList-RzVqbd5E.js} +5 -5
  26. package/dist/client/{VImg-DN23k6uX.js → VImg-GKUTFoV-.js} +51 -22
  27. package/dist/client/{VMain-BT2ZxPLy.js → VMain-D7_72mHr.js} +1 -1
  28. package/dist/client/{VTooltip-CAkym6KY.js → VTooltip-BbmvtvYw.js} +2 -2
  29. package/dist/client/{WidgetsContainer-CLYZgRgc.js → WidgetsContainer-Dw5d7SOW.js} +2 -2
  30. package/dist/client/asWebComponent-DDt7V3Bl.js +9383 -0
  31. package/dist/client/{async-DHmiD7O-.js → async-CT3KEV52.js} +24 -33
  32. package/dist/client/eo-dash.js +1 -1
  33. package/dist/client/{forwardRefs-YqjFe8WZ.js → forwardRefs-CVzxyoSq.js} +2 -2
  34. package/dist/client/{handling-DRaAJMSG.js → handling-C285F_Mq.js} +3 -3
  35. package/dist/client/{helpers-Bi-qmnbZ.js → helpers-CZFH0EVN.js} +349 -316
  36. package/dist/client/{index-DYLTaaU8.js → index-B-m7V3Kb.js} +24 -11
  37. package/dist/client/{index-bSHJLUNu.js → index-B_6H-N14.js} +7 -7
  38. package/dist/client/{index-BtY2y1sL.js → index-CF3ZMzTz.js} +4 -4
  39. package/dist/client/{index-D4GBjamF.js → index-DgOXD7wd.js} +2 -2
  40. package/dist/client/templates.js +7 -16
  41. package/dist/client/{transition-C4YbXuIb.js → transition-C2gnrWg0.js} +1 -1
  42. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +2 -5
  43. package/dist/types/core/client/eodashSTAC/auth.d.ts +6 -2
  44. package/dist/types/core/client/eodashSTAC/createLayers.d.ts +1 -4
  45. package/dist/types/core/client/eodashSTAC/helpers.d.ts +1 -2
  46. package/dist/types/core/client/store/stac.d.ts +4 -1
  47. package/dist/types/core/client/types.d.ts +1 -0
  48. package/dist/types/templates/baseConfig.d.ts +1 -0
  49. package/dist/types/widgets/EodashMap/methods/index.d.ts +1 -1
  50. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.d.ts +1 -1
  51. package/dist/types/widgets/EodashStacInfo.vue.d.ts +140 -25
  52. package/package.json +35 -31
  53. package/templates/baseConfig.js +5 -14
  54. package/templates/compare.js +1 -1
  55. package/widgets/EodashMap/EodashMapBtns.vue +15 -12
  56. package/widgets/EodashMap/index.vue +5 -1
  57. package/widgets/EodashMap/methods/index.js +13 -4
  58. package/widgets/EodashProcess/methods/utils.js +22 -31
  59. package/widgets/EodashStacInfo.vue +40 -5
  60. package/dist/client/EodashMapBtns-Ce2tFjJK.js +0 -433
  61. package/dist/client/MobileLayout-BwXCBKFL.js +0 -118
  62. package/dist/client/asWebComponent-C5YMrXyg.js +0 -9206
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eodash/eodash",
3
- "version": "5.5.1",
3
+ "version": "5.6.0",
4
4
  "type": "module",
5
5
  "types": "./dist/types/core/client/types.d.ts",
6
6
  "files": [
@@ -9,6 +9,10 @@
9
9
  "widgets",
10
10
  "dist"
11
11
  ],
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/eodash/eodash.git"
15
+ },
12
16
  "typesVersions": {
13
17
  "*": {
14
18
  ".": [
@@ -66,69 +70,69 @@
66
70
  },
67
71
  "dependencies": {
68
72
  "@eox/chart": "^1.1.0",
69
- "@eox/drawtools": "^1.1.5",
73
+ "@eox/drawtools": "1.1.5",
70
74
  "@eox/geosearch": "^1.1.0",
71
- "@eox/itemfilter": "^1.13.3",
72
- "@eox/jsonform": "^1.8.0",
75
+ "@eox/itemfilter": "^1.14.0",
76
+ "@eox/jsonform": "^1.9.0",
73
77
  "@eox/layercontrol": "^1.4.0",
74
78
  "@eox/layout": "^1.0.0",
75
- "@eox/map": "^2.0.2",
76
- "@eox/stacinfo": "^1.0.2",
77
- "@eox/timecontrol": "^2.1.0",
79
+ "@eox/map": "^2.2.0",
80
+ "@eox/stacinfo": "^1.1.0",
81
+ "@eox/timecontrol": "^2.1.2",
78
82
  "@eox/timeslider": "https://pkg.pr.new/EOX-A/EOxElements/@eox/timeslider@9873028",
79
- "@eox/ui": "^0.5.1",
83
+ "@eox/ui": "^0.6.0",
80
84
  "@mdi/js": "^7.4.47",
81
- "@vitejs/plugin-vue": "^6.0.3",
82
- "@vueuse/core": "^14.1.0",
85
+ "@vitejs/plugin-vue": "^6.0.4",
86
+ "@vueuse/core": "^14.2.1",
83
87
  "animated-details": "gist:2912bb049fa906671807415eb0e87188",
84
- "axios": "^1.13.2",
85
- "axios-cache-interceptor": "^1.10.0",
88
+ "axios": "^1.13.5",
89
+ "axios-cache-interceptor": "^1.11.4",
86
90
  "color-legend-element": "^1.3.0",
87
- "commander": "^14.0.2",
88
- "core-js": "^3.47.0",
89
- "dotenv": "^17.2.3",
90
- "hyparquet": "^1.23.3",
91
+ "commander": "^14.0.3",
92
+ "core-js": "^3.48.0",
93
+ "dotenv": "^17.3.1",
94
+ "hyparquet": "^1.25.0",
91
95
  "loglevel": "^1.9.2",
92
96
  "mustache": "^4.2.0",
93
97
  "pinia": "^3.0.4",
94
98
  "proj4": "^2.20.2",
95
- "sass": "^1.97.1",
96
- "stac-js": "^0.1.9",
99
+ "sass": "^1.97.3",
100
+ "stac-js": "^0.2.1",
97
101
  "stac-ts": "^1.0.4",
98
102
  "v-calendar": "3.0.0",
99
103
  "vega-embed": "^6.29.0",
100
104
  "vega-lite": "^5.23.0",
101
- "vite": "^7.3.0",
102
- "vite-plugin-vuetify": "^2.1.2",
103
- "vue": "^3.5.25",
105
+ "vite": "^7.3.1",
106
+ "vite-plugin-vuetify": "^2.1.3",
107
+ "vue": "^3.5.29",
104
108
  "vuetify": "^3.11.4",
105
109
  "webfontloader": "^1.6.28"
106
110
  },
107
111
  "devDependencies": {
108
- "@babel/types": "^7.28.5",
112
+ "@babel/types": "^7.29.0",
109
113
  "@eox/eslint-config": "^2.0.0",
110
114
  "@pinia/testing": "^1.0.3",
111
115
  "@types/json-schema": "^7.0.15",
112
116
  "@types/mustache": "^4.2.6",
113
- "@types/node": "^25.0.3",
117
+ "@types/node": "^25.3.1",
114
118
  "@types/openlayers": "^4.6.23",
115
119
  "@types/webfontloader": "^1.6.38",
116
- "cypress": "^15.8.1",
120
+ "cypress": "^15.11.0",
117
121
  "eslint": "^9.39.2",
118
122
  "eslint-plugin-vue": "^9.33.0",
119
- "pkg-pr-new": "^0.0.62",
120
- "prettier": "^3.7.4",
121
- "rollup": "^4.54.0",
123
+ "pkg-pr-new": "^0.0.63",
124
+ "prettier": "^3.8.1",
125
+ "rollup": "^4.59.0",
122
126
  "terminate": "^2.8.0",
123
127
  "tsc-alias": "^1.8.16",
124
- "typedoc": "^0.28.15",
125
- "typedoc-plugin-markdown": "^4.9.0",
128
+ "typedoc": "^0.28.17",
129
+ "typedoc-plugin-markdown": "^4.10.0",
126
130
  "typedoc-plugin-vue": "^1.5.1",
127
131
  "typedoc-vitepress-theme": "^1.1.2",
128
132
  "typescript": "^5.9.3",
129
133
  "vitepress": "^1.6.4",
130
- "vitest": "^4.0.16",
131
- "vue-tsc": "3.1.8"
134
+ "vitest": "^4.0.18",
135
+ "vue-tsc": "3.2.5"
132
136
  },
133
137
  "engines": {
134
138
  "node": ">=20.15.1"
@@ -13,21 +13,12 @@ const baseConfig = {
13
13
  stacEndpoint: {
14
14
  endpoint:
15
15
  "https://esa-eodashboards.github.io/eodashboard-catalog/trilateral/catalog.json",
16
- // "http://gtif-cerulean.github.io/cerulean-catalog/cerulean/catalog.json",
17
- // "https://gtif-ukif.github.io/gtif-ukif-catalog/gtif-ukif/catalog.json",
18
- // "https://esa-eodashboards.github.io/RACE-catalog/RACE/catalog.json",
19
- // "https://gtif-austria.github.io/public-catalog/GTIF-Austria/catalog.json",
20
- // "http://0.0.0.0:8000/baltic/catalog.json",
21
- // "http://0.0.0.0:8000/gtif-ukif/catalog.json",
22
- // "http://0.0.0.0:8002/RACE/catalog.json",
23
- // "http://0.0.0.0:8000/trilateral/catalog.json",
24
- // "http://0.0.0.0:8003/gtif-ukif/catalog.json",
25
- // "http://0.0.0.0:8002/cerulean/catalog.json",
26
- // "http://0.0.0.0:8001/trilateral/catalog.json",
27
- // "http://0.0.0.0:8001/GTIF-Austria/catalog.json",
16
+ // "https://api.explorer.eopf.copernicus.eu/stac",
28
17
  // api: true,
29
- // rasterEndpoint: "https://api.explorer.eopf.copernicus.eu/raster/",
30
- api: false,
18
+ supportedUpscalingEndpoints: [
19
+ "openveda.cloud",
20
+ "api.explorer.eopf.copernicus.eu",
21
+ ],
31
22
  },
32
23
  brand: {
33
24
  noLayout: true,
@@ -156,7 +156,7 @@ export default {
156
156
  widget: {
157
157
  name: "EodashDatePicker",
158
158
  properties: {
159
- hintText: `<b>Hint:</b> closest available date is displayed<br />
159
+ hintText: `<b>Hint:</b> closest available date is displayed<br/>
160
160
  on map (see Analysis Layers)`,
161
161
  toggleCalendar: true,
162
162
  },
@@ -210,18 +210,20 @@ const isInCompareMode = computed(
210
210
  const compareIcon = computed(() =>
211
211
  isInCompareMode.value ? mdiCompareRemove : mdiCompare,
212
212
  );
213
- const itemFilterConfig = {
214
- enableHighlighting: false,
215
- resultType: "cards",
216
- style: "--select-filter-max-items: 8",
217
- "filters-title": "Select an indicator to compare",
218
- subTitleProperty: "subtitle",
219
- imageProperty: "thumbnail",
220
- aggregateResults: "collection_group",
221
- "results-title": "",
222
- ...(typeof compareIndicators === "object" &&
223
- compareIndicators.itemFilterConfig),
224
- };
213
+ const itemFilterConfig = computed(() => {
214
+ return {
215
+ enableHighlighting: false,
216
+ resultType: "cards",
217
+ style: "--select-filter-max-items: 8",
218
+ "filters-title": "Select an indicator to compare",
219
+ subTitleProperty: "subtitle",
220
+ imageProperty: "thumbnail",
221
+ aggregateResults: "collection_group",
222
+ "results-title": "",
223
+ ...(typeof compareIndicators === "object" &&
224
+ compareIndicators.itemFilterConfig),
225
+ };
226
+ });
225
227
 
226
228
  /** @type {import("vue").Ref<HTMLDivElement|null>} */
227
229
  const rootRef = ref(null);
@@ -252,6 +254,7 @@ const opencageUrl = `https://api.opencagedata.com/geocode/v1/json?key=${opencage
252
254
  /* Container constraints removal */
253
255
  eox-geosearch {
254
256
  position: relative !important;
257
+ width: 40px;
255
258
  overflow: visible !important;
256
259
  z-index: 10;
257
260
  }
@@ -313,7 +313,11 @@ onMounted(() => {
313
313
  false,
314
314
  );
315
315
 
316
- useUpdateTooltipProperties(eodashCollections, compareTooltipProperties);
316
+ useUpdateTooltipProperties(
317
+ eodashCollections,
318
+ compareTooltipProperties,
319
+ true,
320
+ );
317
321
  }
318
322
 
319
323
  useInitMap(
@@ -238,15 +238,24 @@ export const useInitMap = (
238
238
  *
239
239
  * @param {import("@/eodashSTAC/EodashCollection").EodashCollection[]} eodashCols
240
240
  * @param {import("vue").Ref<Exclude<import("@/types").EodashStyleJson["tooltip"],undefined>>} tooltipProperties
241
+ * @param {boolean} enableCompare
241
242
  */
242
243
 
243
- export const useUpdateTooltipProperties = (eodashCols, tooltipProperties) => {
244
+ export const useUpdateTooltipProperties = (
245
+ eodashCols,
246
+ tooltipProperties,
247
+ enableCompare = false,
248
+ ) => {
249
+ /**
250
+ * Listen to events related to the main or compare map based on the enableCompare flag
251
+ * @param {string} evt */
252
+ const listenTo = (evt) =>
253
+ enableCompare ? evt.includes("compare") : !evt.includes("compare");
244
254
  useOnLayersUpdate(async (evt, _payload) => {
245
- if (evt.includes("compare")) {
246
- // TODO: support compare map tooltips
247
- // Do not update tooltip properties on compare map
255
+ if (!listenTo(evt)) {
248
256
  return;
249
257
  }
258
+
250
259
  const tooltips = [];
251
260
  for (const ec of eodashCols) {
252
261
  tooltips.push(...(await ec.getToolTipProperties()));
@@ -366,37 +366,28 @@ export async function creatAsyncProcessLayerDefinitions(
366
366
  break;
367
367
  }
368
368
  case "application/vnd.flatgeobuf": {
369
- // TODO after more flatgeobuf urls are possible in EOxMap https://github.com/EOX-A/EOxElements/issues/1789
370
- // we should change this handler to only create one layer instead of many
371
- resultItem.urls.forEach((url, i) => {
372
- layers.push({
373
- type: "Vector",
374
- source: {
375
- type: "FlatGeoBuf",
376
- url,
377
- },
378
- properties: {
379
- id:
380
- endpointLink.id +
381
- "_process_" +
382
- resultItem.id +
383
- postfixId +
384
- `_${i}`,
385
- title:
386
- "Results " +
387
- (selectedStac?.id ?? "") +
388
- " " +
389
- (resultItem.id ?? ""),
390
- layerControlToolsExpand: true,
391
- ...(layerConfig && {
392
- layerConfig: {
393
- ...layerConfig,
394
- style,
395
- },
396
- }),
397
- ...extraProperties,
398
- },
399
- });
369
+ layers.push({
370
+ type: "Vector",
371
+ source: {
372
+ type: "FlatGeoBuf",
373
+ url: resultItem.urls,
374
+ },
375
+ properties: {
376
+ id: endpointLink.id + "_process_" + resultItem.id + postfixId,
377
+ title:
378
+ "Results " +
379
+ (selectedStac?.id ?? "") +
380
+ " " +
381
+ (resultItem.id ?? ""),
382
+ layerControlToolsExpand: true,
383
+ ...(layerConfig && {
384
+ layerConfig: {
385
+ ...layerConfig,
386
+ style,
387
+ },
388
+ }),
389
+ ...extraProperties,
390
+ },
400
391
  });
401
392
  break;
402
393
  }
@@ -25,17 +25,38 @@ const { allowHtml, featured, footer, header, body, tags } = defineProps({
25
25
  },
26
26
 
27
27
  header: {
28
- /** @type {import("vue").PropType<string[]>} */
28
+ /**
29
+ * @type {import("vue").PropType<
30
+ * (string | {
31
+ * key: string,
32
+ * filter?: (item: any) => boolean
33
+ * })[]
34
+ * >}
35
+ */
29
36
  type: Array,
30
37
  default: () => ["title"],
31
38
  },
32
39
  tags: {
33
- /** @type {import("vue").PropType<string[]>} */
40
+ /**
41
+ * @type {import("vue").PropType<
42
+ * (string | {
43
+ * key: string,
44
+ * filter?: (item: any) => boolean
45
+ * })[]
46
+ * >}
47
+ */
34
48
  type: Array,
35
49
  default: () => ["themes"],
36
50
  },
37
51
  body: {
38
- /** @type {import("vue").PropType<string[]>} */
52
+ /**
53
+ * @type {import("vue").PropType<
54
+ * (string | {
55
+ * key: string,
56
+ * filter?: (item: any) => boolean
57
+ * })[]
58
+ * >}
59
+ */
39
60
  type: Array,
40
61
  default: () => [
41
62
  "satellite",
@@ -47,12 +68,26 @@ const { allowHtml, featured, footer, header, body, tags } = defineProps({
47
68
  ],
48
69
  },
49
70
  featured: {
50
- /** @type {import("vue").PropType<string[]>} */
71
+ /**
72
+ * @type {import("vue").PropType<
73
+ * (string | {
74
+ * key: string,
75
+ * filter?: (item: any) => boolean
76
+ * })[]
77
+ * >}
78
+ */
51
79
  type: Array,
52
80
  default: () => ["description", "providers", "assets", "links"],
53
81
  },
54
82
  footer: {
55
- /** @type {import("vue").PropType<string[]>} */
83
+ /**
84
+ * @type {import("vue").PropType<
85
+ * (string | {
86
+ * key: string,
87
+ * filter?: (item: any) => boolean
88
+ * })[]
89
+ * >}
90
+ */
56
91
  type: Array,
57
92
  default: () => ["sci:citation", "sci:doi", "sci:publication"],
58
93
  },