@eodash/eodash 5.0.0 → 5.2.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 (162) hide show
  1. package/README.md +1 -0
  2. package/core/client/App.vue +8 -2
  3. package/core/client/asWebComponent.js +5 -5
  4. package/core/client/components/DashboardLayout.vue +43 -26
  5. package/core/client/components/EodashOverlay.vue +5 -6
  6. package/core/client/components/ErrorAlert.vue +2 -2
  7. package/core/client/components/Footer.vue +4 -4
  8. package/core/client/components/Header.vue +3 -3
  9. package/core/client/components/MobileLayout.vue +47 -27
  10. package/core/client/composables/DefineEodash.js +38 -43
  11. package/core/client/composables/DefineTemplate.js +4 -2
  12. package/core/client/composables/DefineWidgets.js +14 -8
  13. package/core/client/composables/index.js +273 -23
  14. package/core/client/eodashSTAC/EodashCollection.js +84 -62
  15. package/core/client/eodashSTAC/createLayers.js +30 -0
  16. package/core/client/eodashSTAC/helpers.js +159 -28
  17. package/core/client/eodashSTAC/parquet.js +145 -0
  18. package/core/client/eodashSTAC/triggers.js +6 -3
  19. package/core/client/plugins/index.js +4 -3
  20. package/core/client/plugins/vuetify.js +3 -0
  21. package/core/client/store/actions.js +21 -4
  22. package/core/client/store/stac.js +93 -56
  23. package/core/client/store/states.js +15 -5
  24. package/core/client/types.ts +59 -43
  25. package/core/client/utils/index.js +79 -0
  26. package/core/client/utils/keys.js +2 -2
  27. package/core/client/utils/states.js +30 -5
  28. package/core/client/views/Dashboard.vue +36 -32
  29. package/core/client/vite-env.d.ts +7 -0
  30. package/dist/client/{DashboardLayout-CkWvOMOW.js → DashboardLayout-Dq9Kfe6O.js} +24 -13
  31. package/dist/client/{DynamicWebComponent-DYBbpvUK.js → DynamicWebComponent-DCBMXskE.js} +1 -1
  32. package/dist/client/{EodashDatePicker-CALmW3SI.js → EodashDatePicker-DtngxU6s.js} +59 -32
  33. package/dist/client/{EodashItemFilter-DlQiE713.js → EodashItemFilter-ClQebJQt.js} +20 -10
  34. package/dist/client/{EodashLayerControl-DEzEbft7.js → EodashLayerControl-BLBds28C.js} +29 -16
  35. package/dist/client/EodashLayoutSwitcher-DQ8SfVDd.js +61 -0
  36. package/dist/client/EodashMapBtns-B89_YBDw.js +326 -0
  37. package/dist/client/{EodashStacInfo-DPPxDkF6.js → EodashStacInfo-Dt1nF06x.js} +3 -18
  38. package/dist/client/{EodashTools-CUaL9s4H.js → EodashTools-DV5ykmWc.js} +13 -13
  39. package/dist/client/{ExportState-DjyIZVhl.js → ExportState-B6zZQUmE.js} +57 -52
  40. package/dist/client/{Footer-DyL0JoWt.js → Footer-DNhXs8k6.js} +15 -13
  41. package/dist/client/{Header-B5Dgty9l.js → Header-BjhN5JY4.js} +32 -28
  42. package/dist/client/MobileLayout-JelB6w1G.js +118 -0
  43. package/dist/client/{PopUp-BfB8s_ki.js → PopUp-CgpvNr3o.js} +18 -10
  44. package/dist/client/ProcessList-vecpxThi.js +198 -0
  45. package/dist/client/{VImg-FD1WVphJ.js → VImg-CETuikH2.js} +221 -26
  46. package/dist/client/{VMain-DJKG4SvM.js → VMain-Ci9DyaGU.js} +7 -7
  47. package/dist/client/{VTooltip-CfeefrXI.js → VTooltip-J4ac48X7.js} +12 -10
  48. package/dist/client/{WidgetsContainer-C2TaTdb6.js → WidgetsContainer-CCML4TyV.js} +1 -1
  49. package/dist/client/asWebComponent-ZyEzWOOf.js +19092 -0
  50. package/dist/client/async-B7jIrM53.js +804 -0
  51. package/dist/client/eo-dash.js +1 -1
  52. package/dist/client/{VOverlay-BzOdRu9h.js → forwardRefs-BQclvjMq.js} +332 -28
  53. package/dist/client/handling-BS24aG1q.js +1227 -0
  54. package/dist/client/helpers-wXK7Ywio.js +4556 -0
  55. package/dist/client/index-4UCzZi8B.js +376 -0
  56. package/dist/client/{index-4CT7Tz83.js → index-9KR-G20t.js} +2 -2
  57. package/dist/client/{index-CIHH_3dW.js → index-B2XpdgR6.js} +227 -86
  58. package/dist/client/material-symbols-outlined.woff2 +0 -0
  59. package/dist/client/material-symbols-rounded.woff2 +0 -0
  60. package/dist/client/material-symbols-sharp.woff2 +0 -0
  61. package/dist/client/material-symbols-subset.woff2 +0 -0
  62. package/dist/client/{ssrBoot-BP7SYRyC.js → ssrBoot-Zgc_Ttvi.js} +2 -2
  63. package/dist/client/templates.js +840 -0
  64. package/dist/client/transition-yBii4fu6.js +40 -0
  65. package/dist/node/cli.js +16 -6
  66. package/dist/node/types.d.ts +1 -1
  67. package/dist/types/core/client/App.vue.d.ts +2 -2
  68. package/dist/types/core/client/asWebComponent.d.ts +1 -1
  69. package/dist/types/core/client/components/DynamicWebComponent.vue.d.ts +1 -3
  70. package/dist/types/core/client/components/Footer.vue.d.ts +1 -105
  71. package/dist/types/core/client/components/IframeWrapper.vue.d.ts +1 -1
  72. package/dist/types/core/client/components/MobileLayout.vue.d.ts +1 -324
  73. package/dist/types/core/client/composables/DefineEodash.d.ts +2 -2
  74. package/dist/types/core/client/composables/DefineTemplate.d.ts +1 -1
  75. package/dist/types/core/client/composables/DefineWidgets.d.ts +4 -4
  76. package/dist/types/core/client/composables/index.d.ts +24 -2
  77. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +9 -6
  78. package/dist/types/core/client/eodashSTAC/helpers.d.ts +25 -5
  79. package/dist/types/core/client/eodashSTAC/parquet.d.ts +2 -0
  80. package/dist/types/core/client/plugins/vuetify.d.ts +7 -4
  81. package/dist/types/core/client/store/actions.d.ts +3 -2
  82. package/dist/types/core/client/store/stac.d.ts +16 -13
  83. package/dist/types/core/client/store/states.d.ts +14 -4
  84. package/dist/types/core/client/types.d.ts +46 -31
  85. package/dist/types/core/client/utils/index.d.ts +2 -0
  86. package/dist/types/core/client/utils/keys.d.ts +4 -4
  87. package/dist/types/core/client/utils/states.d.ts +59 -47
  88. package/dist/types/core/client/views/Dashboard.vue.d.ts +2 -2
  89. package/dist/types/templates/baseConfig.d.ts +4 -0
  90. package/dist/types/templates/compare.d.ts +185 -0
  91. package/dist/types/templates/expert.d.ts +147 -0
  92. package/dist/types/templates/index.d.ts +6 -0
  93. package/dist/types/templates/light.d.ts +154 -0
  94. package/dist/types/widgets/EodashDatePicker.vue.d.ts +1 -458
  95. package/dist/types/widgets/EodashItemFilter.vue.d.ts +3 -3
  96. package/dist/types/widgets/EodashLayerControl.vue.d.ts +14 -7
  97. package/dist/types/widgets/EodashLayoutSwitcher.vue.d.ts +1 -3
  98. package/dist/types/widgets/{EodashMapBtns.vue.d.ts → EodashMap/EodashMapBtns.vue.d.ts} +12 -8
  99. package/dist/types/widgets/EodashMap/index.vue.d.ts +9 -4
  100. package/dist/types/widgets/EodashProcess/ProcessList.vue.d.ts +8 -1
  101. package/dist/types/widgets/EodashProcess/index.vue.d.ts +8 -4
  102. package/dist/types/widgets/EodashProcess/methods/async.d.ts +19 -18
  103. package/dist/types/widgets/EodashProcess/methods/composables.d.ts +3 -2
  104. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/index.d.ts +1 -0
  105. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/sentinelhub-endpoint.d.ts +6 -0
  106. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.d.ts +4 -0
  107. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.d.ts +5 -0
  108. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/index.d.ts +1 -0
  109. package/dist/types/widgets/EodashProcess/methods/handling.d.ts +12 -5
  110. package/dist/types/widgets/EodashProcess/methods/outputs.d.ts +72 -41
  111. package/dist/types/widgets/EodashProcess/methods/utils.d.ts +41 -21
  112. package/dist/types/widgets/EodashProcess/states.d.ts +11 -0
  113. package/dist/types/widgets/EodashProcess/types.d.ts +41 -0
  114. package/dist/types/widgets/EodashStacInfo.vue.d.ts +14 -14
  115. package/dist/types/widgets/EodashTools.vue.d.ts +3 -3
  116. package/dist/types/widgets/ExportState.vue.d.ts +1 -1
  117. package/dist/types/widgets/PopUp.vue.d.ts +11 -16
  118. package/dist/types/widgets/WidgetsContainer.vue.d.ts +3 -6
  119. package/package.json +55 -45
  120. package/templates/baseConfig.js +68 -0
  121. package/templates/compare.js +142 -0
  122. package/templates/expert.js +124 -0
  123. package/templates/index.js +8 -0
  124. package/templates/light.js +139 -0
  125. package/widgets/EodashDatePicker.vue +80 -31
  126. package/widgets/EodashItemFilter.vue +26 -11
  127. package/widgets/EodashLayerControl.vue +20 -11
  128. package/widgets/EodashLayoutSwitcher.vue +6 -3
  129. package/widgets/EodashMap/EodashMapBtns.vue +269 -0
  130. package/widgets/EodashMap/index.vue +255 -45
  131. package/widgets/EodashMap/methods/create-layers-config.js +4 -3
  132. package/widgets/EodashMap/methods/index.js +33 -23
  133. package/widgets/EodashProcess/ProcessList.vue +47 -11
  134. package/widgets/EodashProcess/index.vue +55 -20
  135. package/widgets/EodashProcess/methods/async.js +99 -60
  136. package/widgets/EodashProcess/methods/composables.js +21 -14
  137. package/widgets/EodashProcess/methods/custom-endpoints/chart/index.js +35 -0
  138. package/widgets/EodashProcess/methods/custom-endpoints/chart/sentinelhub-endpoint.js +275 -0
  139. package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +132 -0
  140. package/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.js +94 -0
  141. package/widgets/EodashProcess/methods/custom-endpoints/layers/index.js +33 -0
  142. package/widgets/EodashProcess/methods/handling.js +127 -80
  143. package/widgets/EodashProcess/methods/outputs.js +376 -125
  144. package/widgets/EodashProcess/methods/utils.js +442 -10
  145. package/widgets/EodashProcess/states.js +13 -0
  146. package/widgets/EodashProcess/types.ts +46 -0
  147. package/widgets/EodashStacInfo.vue +2 -17
  148. package/widgets/EodashTools.vue +13 -13
  149. package/widgets/WidgetsContainer.vue +1 -1
  150. package/core/client/eodash.js +0 -454
  151. package/dist/client/EodashLayoutSwitcher-CDeCV8F-.js +0 -52
  152. package/dist/client/EodashMapBtns-CktQCfa-.js +0 -131
  153. package/dist/client/MobileLayout-CRsg_5Q4.js +0 -1217
  154. package/dist/client/ProcessList-DTefwQZx.js +0 -484
  155. package/dist/client/asWebComponent-CLhcT715.js +0 -12479
  156. package/dist/client/eo-dash.css +0 -5
  157. package/dist/client/forwardRefs-Bon_Kku1.js +0 -245
  158. package/dist/client/index-Bm9cbtx5.js +0 -201
  159. package/dist/client/index-DiGDvTQU.js +0 -780
  160. package/dist/client/transition-C5I57hn6.js +0 -37
  161. package/dist/types/core/client/eodash.d.ts +0 -8
  162. package/widgets/EodashMapBtns.vue +0 -113
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@eodash/eodash",
3
- "version": "5.0.0",
3
+ "version": "5.2.0",
4
4
  "type": "module",
5
5
  "types": "./dist/types/core/client/types.d.ts",
6
6
  "files": [
7
7
  "core/client",
8
+ "templates",
8
9
  "widgets",
9
10
  "dist"
10
11
  ],
@@ -18,6 +19,9 @@
18
19
  ],
19
20
  "config": [
20
21
  "./dist/node/types.d.ts"
22
+ ],
23
+ "templates": [
24
+ "./dist/types/templates/index.d.ts"
21
25
  ]
22
26
  }
23
27
  },
@@ -28,20 +32,22 @@
28
32
  "./webcomponent": {
29
33
  "default": "./dist/client/eo-dash.js"
30
34
  },
31
- "./webcomponent.css": "./dist/client/eo-dash.css",
35
+ "./templates": {
36
+ "default": "./dist/client/templates.js"
37
+ },
32
38
  "./config": {
33
39
  "default": "./dist/node/main.js"
34
40
  }
35
41
  },
36
42
  "browser": "./core/client/main.js",
37
43
  "scripts": {
38
- "start": "npx eodash dev --entryPoint core/client/eodash.js",
44
+ "start": "npx eodash dev --entryPoint templates/baseConfig.js",
39
45
  "prepare": "rollup -c",
40
46
  "prepack": "npm run build:lib && npm run build:types",
41
- "dev": "npx eodash dev --entryPoint core/client/eodash.js",
42
- "dev:lib": "npx eodash dev --entryPoint core/client/eodash.js --lib",
43
- "build": "npx eodash build --entryPoint core/client/eodash.js",
44
- "build:lib": "npx eodash build --entryPoint core/client/eodash.js --lib --outDir dist/client",
47
+ "dev": "npx eodash dev --entryPoint templates/baseConfig.js",
48
+ "dev:lib": "npx eodash dev --entryPoint templates/baseConfig.js --lib",
49
+ "build": "npx eodash build --entryPoint templates/baseConfig.js",
50
+ "build:lib": "npx eodash build --entryPoint false --lib --outDir dist/client",
45
51
  "build:cli": "rollup -c",
46
52
  "build:types": "vue-tsc --declaration --emitDeclarationOnly && tsc-alias",
47
53
  "check": "vue-tsc --noEmit --skipLibCheck && eslint .",
@@ -59,66 +65,70 @@
59
65
  "docs:generate": "npm run build:cli && npm run build:types && typedoc --options typedoc.config.json"
60
66
  },
61
67
  "dependencies": {
62
- "@eox/chart": "^0.4.0",
63
- "@eox/drawtools": "^0.14.2",
64
- "@eox/itemfilter": "^1.8.0",
65
- "@eox/jsonform": "^0.16.1",
66
- "@eox/layercontrol": "^0.29.1",
67
- "@eox/layout": "^0.3.0",
68
- "@eox/map": "^1.20.0",
69
- "@eox/stacinfo": "^0.6.2",
70
- "@eox/timecontrol": "^0.12.3",
68
+ "@eox/chart": "^1.0.1",
69
+ "@eox/drawtools": "^1.1.2",
70
+ "@eox/geosearch": "^1.1.0",
71
+ "@eox/itemfilter": "^1.10.3",
72
+ "@eox/jsonform": "^1.3.2",
73
+ "@eox/layercontrol": "^1.1.2",
74
+ "@eox/layout": "^1.0.0",
75
+ "@eox/map": "^1.24.2",
76
+ "@eox/stacinfo": "^1.0.1",
77
+ "@eox/timecontrol": "^1.0.2",
78
+ "@eox/ui": "^0.4.0",
71
79
  "@mdi/js": "^7.4.47",
72
- "@vitejs/plugin-vue": "^5.2.3",
73
- "@vueuse/core": "^12.0.0",
80
+ "@vitejs/plugin-vue": "^5.2.4",
81
+ "@vueuse/core": "^13.6.0",
74
82
  "animated-details": "gist:2912bb049fa906671807415eb0e87188",
75
- "axios": "^1.8.4",
76
- "axios-cache-interceptor": "^1.7.0",
83
+ "axios": "^1.11.0",
84
+ "axios-cache-interceptor": "^1.8.0",
77
85
  "color-legend-element": "^1.3.0",
78
- "commander": "^12.1.0",
79
- "core-js": "^3.41.0",
86
+ "commander": "^14.0.0",
87
+ "core-js": "^3.44.0",
88
+ "dotenv": "^17.2.1",
89
+ "hyparquet": "^1.17.1",
80
90
  "loglevel": "^1.9.2",
81
91
  "mustache": "^4.2.0",
82
- "pinia": "^3.0.1",
83
- "sass": "^1.86.0",
84
- "stac-js": "^0.0.9",
92
+ "pinia": "^3.0.3",
93
+ "proj4": "^2.19.10",
94
+ "sass": "^1.89.2",
95
+ "stac-js": "^0.1.6",
85
96
  "stac-ts": "^1.0.4",
86
97
  "v-calendar": "3.0.0",
87
98
  "vega": "^5.33.0",
88
99
  "vega-embed": "^6.29.0",
89
100
  "vega-lite": "^5.23.0",
90
- "vite": "^6.2.3",
91
- "vite-plugin-vuetify": "^2.1.0",
92
- "vue": "^3.5.0",
93
- "vuetify": "^3.7.18",
101
+ "vite": "^6.3.5",
102
+ "vite-plugin-vuetify": "^2.1.1",
103
+ "vue": "^3.5.17",
104
+ "vuetify": "^3.9.2",
94
105
  "webfontloader": "^1.6.28"
95
106
  },
96
107
  "devDependencies": {
97
- "@babel/types": "^7.27.0",
108
+ "@babel/types": "^7.28.2",
98
109
  "@eox/eslint-config": "^2.0.0",
99
- "@pinia/testing": "^0.1.7",
110
+ "@pinia/testing": "^1.0.2",
100
111
  "@types/json-schema": "^7.0.15",
101
- "@types/mustache": "^4.2.5",
102
- "@types/node": "^22.13.13",
112
+ "@types/mustache": "^4.2.6",
113
+ "@types/node": "^24.1.0",
103
114
  "@types/openlayers": "^4.6.23",
104
115
  "@types/webfontloader": "^1.6.38",
105
- "cypress": "^13.17.0",
106
- "eslint": "^9.23.0",
116
+ "cypress": "^14.5.3",
117
+ "eslint": "^9.32.0",
107
118
  "eslint-plugin-vue": "^9.33.0",
108
- "pkg-pr-new": "^0.0.39",
109
- "prettier": "^3.5.3",
110
- "rollup": "^4.37.0",
119
+ "pkg-pr-new": "^0.0.54",
120
+ "prettier": "^3.6.2",
121
+ "rollup": "^4.46.1",
111
122
  "terminate": "^2.8.0",
112
- "tsc-alias": "^1.8.11",
113
- "typedoc": "^0.28.1",
114
- "typedoc-plugin-markdown": "^4.6.0",
123
+ "tsc-alias": "^1.8.16",
124
+ "typedoc": "^0.28.8",
125
+ "typedoc-plugin-markdown": "^4.7.1",
115
126
  "typedoc-plugin-vue": "^1.5.0",
116
127
  "typedoc-vitepress-theme": "^1.1.2",
117
- "typescript": "^5.8.2",
118
- "unplugin-fonts": "^1.3.1",
128
+ "typescript": "^5.8.3",
119
129
  "vitepress": "^1.6.3",
120
- "vitest": "^1.6.1",
121
- "vue-tsc": "2.2.0"
130
+ "vitest": "^3.2.4",
131
+ "vue-tsc": "3.0.1"
122
132
  },
123
133
  "engines": {
124
134
  "node": ">=20.15.1"
@@ -0,0 +1,68 @@
1
+ import { deepmergeInto } from "deepmerge-ts";
2
+ import light from "./light";
3
+ import expert from "./expert";
4
+ import compare from "./compare";
5
+
6
+ /** @type {import("@/types").Eodash} */
7
+ const baseConfig = {
8
+ id: "demo",
9
+ options: {
10
+ // useSubCode: true,
11
+ },
12
+ stacEndpoint:
13
+ "https://esa-eodashboards.github.io/eodashboard-catalog/trilateral/catalog.json",
14
+ brand: {
15
+ noLayout: true,
16
+ name: "Demo",
17
+ font: {
18
+ headers: {
19
+ family: "Open Sans",
20
+ link: "https://eox.at/fonts/opensans/opensans.css",
21
+ },
22
+ body: {
23
+ family: "Sintony",
24
+ link: "https://eox.at/fonts/sintony/sintony.css",
25
+ },
26
+ },
27
+ theme: {
28
+ colors: {
29
+ primary: "#002742",
30
+ secondary: "#0071C2",
31
+ surface: "#ffff",
32
+ },
33
+ variables: {
34
+ "surface-opacity": 0.8,
35
+ "primary-opacity": 0.8,
36
+ },
37
+ // Bank-Wong palette
38
+ collectionsPalette: [
39
+ "#009E73",
40
+ "#E69F00",
41
+ "#56B4E9",
42
+ "#009E73",
43
+ "#F0E442",
44
+ "#0072B2",
45
+ "#D55E00",
46
+ "#CC79A7",
47
+ "#994F00",
48
+ ],
49
+ },
50
+ footerText: "Demo configuration of eodash client",
51
+ },
52
+ templates: {
53
+ light,
54
+ expert,
55
+ compare,
56
+ },
57
+ };
58
+
59
+ /**
60
+ * @param {Partial<import("@/types").Eodash>} config
61
+ */
62
+ export const getBaseConfig = (config) => {
63
+ const merged = /** @type {import("@/types").Eodash} */ ({});
64
+ deepmergeInto(merged, baseConfig, config || {});
65
+ return merged;
66
+ };
67
+
68
+ export default baseConfig;
@@ -0,0 +1,142 @@
1
+ import { includesProcess } from "@/store/actions";
2
+
3
+ /** @type {import("@/types").Template} */
4
+ export default {
5
+ gap: 16,
6
+ loading: {
7
+ id: Symbol(),
8
+ type: "web-component",
9
+ widget: {
10
+ // https://uiball.com/ldrs/
11
+ link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
12
+ tagName: "l-mirage",
13
+ properties: {
14
+ class: "align-self-center justify-self-center",
15
+ size: "120",
16
+ speed: "2.5",
17
+ color: "#004170",
18
+ },
19
+ },
20
+ },
21
+ background: {
22
+ id: "background-map",
23
+ type: "internal",
24
+ widget: {
25
+ name: "EodashMap",
26
+ properties: {
27
+ enableCompare: true,
28
+ },
29
+ },
30
+ },
31
+ widgets: [
32
+ {
33
+ id: "Tools",
34
+ type: "internal",
35
+ title: "Tools",
36
+ layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
37
+ widget: {
38
+ name: "EodashTools",
39
+ properties: {
40
+ showLayoutSwitcher: false,
41
+ itemFilterConfig: {
42
+ resultType: "cards",
43
+ filtersTitle: "Select an indicator",
44
+ resultsTitle: "",
45
+ subTitleProperty: "subtitle",
46
+ imageProperty: "thumbnail",
47
+ },
48
+ },
49
+ },
50
+ },
51
+ // compare indicators
52
+ {
53
+ id: "CompareTools",
54
+ type: "internal",
55
+ title: "Tools",
56
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 1 },
57
+ widget: {
58
+ name: "EodashTools",
59
+ properties: {
60
+ showLayoutSwitcher: false,
61
+ indicatorBtnText: "Select second indicator",
62
+ itemFilterConfig: {
63
+ enableCompare: true,
64
+ resultType: "cards",
65
+ filtersTitle: "Select an indicator to compare",
66
+ resultsTitle: "",
67
+ subTitleProperty: "subtitle",
68
+ imageProperty: "thumbnail",
69
+ },
70
+ },
71
+ },
72
+ },
73
+ {
74
+ id: "layercontrol",
75
+ type: "internal",
76
+ title: "Layers",
77
+ layout: { x: 0, y: 1, w: "3/3/2", h: 5 },
78
+ widget: {
79
+ name: "EodashLayerControl",
80
+ },
81
+ },
82
+ {
83
+ id: "CompareLayerControl",
84
+ title: "Comparison Layers",
85
+ layout: { x: "9/9/10", y: 1, w: "3/3/2", h: 5 },
86
+ type: "internal",
87
+ widget: {
88
+ name: "EodashLayerControl",
89
+ properties: {
90
+ map: "second",
91
+ },
92
+ },
93
+ },
94
+ {
95
+ defineWidget: (selectedSTAC) =>
96
+ includesProcess(selectedSTAC) && {
97
+ id: "Process",
98
+ type: "internal",
99
+ title: "Processes",
100
+ layout: { x: 0, y: 6, w: "3/3/2", h: 5 },
101
+ widget: {
102
+ name: "EodashProcess",
103
+ },
104
+ },
105
+ },
106
+ {
107
+ defineWidget: (_, updatedCompareStac) =>
108
+ includesProcess(updatedCompareStac, true) && {
109
+ id: "CompareMapProcess",
110
+ type: "internal",
111
+ title: "Processes",
112
+ layout: { x: 9, y: 6, w: "3/3/2", h: 5 },
113
+ widget: {
114
+ name: "EodashProcess",
115
+ properties: {
116
+ enableCompare: true,
117
+ },
118
+ },
119
+ },
120
+ },
121
+ {
122
+ defineWidget: (selectedSTAC) => {
123
+ return selectedSTAC
124
+ ? {
125
+ id: "expert-Datepicker",
126
+ type: "internal",
127
+ layout: { x: 4, y: 7, w: 4, h: 5 },
128
+ title: "Date",
129
+ widget: {
130
+ name: "EodashDatePicker",
131
+ properties: {
132
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
133
+ on map (see Analysis Layers)`,
134
+ toggleCalendar: true,
135
+ },
136
+ },
137
+ }
138
+ : null;
139
+ },
140
+ },
141
+ ],
142
+ };
@@ -0,0 +1,124 @@
1
+ import { mdiViewDashboard } from "@mdi/js";
2
+ import { includesProcess } from "@/store/actions";
3
+
4
+ /** @type {import("@/types").Template} */
5
+ export default {
6
+ loading: {
7
+ id: Symbol(),
8
+ type: "web-component",
9
+ widget: {
10
+ // https://uiball.com/ldrs/
11
+ link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
12
+ tagName: "l-mirage",
13
+ properties: {
14
+ class: "align-self-center justify-self-center",
15
+ size: "120",
16
+ speed: "2.5",
17
+ color: "#004170",
18
+ },
19
+ },
20
+ },
21
+ background: {
22
+ id: "background-map",
23
+ type: "internal",
24
+ widget: {
25
+ name: "EodashMap",
26
+ properties: {
27
+ enableCompare: true,
28
+ zoomToExtent: true,
29
+ btns: {
30
+ enableZoom: true,
31
+ enableExportMap: true,
32
+ enableChangeProjection: true,
33
+ enableCompareIndicators: {
34
+ fallbackTemplate: "expert",
35
+ },
36
+ enableBackToPOIs: true,
37
+ enableSearch: true,
38
+ },
39
+ btnsPosition: {
40
+ x: "12/9/9",
41
+ y: 1,
42
+ gap: 16
43
+ }
44
+ },
45
+ },
46
+ },
47
+ widgets: [
48
+ {
49
+ id: "Tools",
50
+ type: "internal",
51
+ title: "Tools",
52
+ layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
53
+ widget: {
54
+ name: "EodashTools",
55
+ properties: {
56
+ layoutTarget: "light",
57
+ layoutIcon: mdiViewDashboard,
58
+ itemFilterConfig: {
59
+ resultType: "cards",
60
+ subTitleProperty: "subtitle",
61
+ imageProperty: "thumbnail",
62
+ aggregateResults: "collection_group",
63
+ },
64
+ },
65
+ },
66
+ },
67
+ {
68
+ id: "Layercontrol",
69
+ type: "internal",
70
+ title: "Layers",
71
+ layout: { x: 0, y: 1, w: "3/3/2", h: 11 },
72
+ widget: {
73
+ name: "EodashLayerControl",
74
+ },
75
+ },
76
+ {
77
+ defineWidget: (selectedSTAC) => {
78
+ return selectedSTAC
79
+ ? {
80
+ id: "Information",
81
+ title: "Information",
82
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 6 },
83
+ type: "internal",
84
+ widget: {
85
+ name: "EodashStacInfo",
86
+ },
87
+ }
88
+ : null;
89
+ },
90
+ },
91
+ {
92
+ defineWidget: (selectedSTAC) => {
93
+ return selectedSTAC
94
+ ? {
95
+ id: "expert-datepicker",
96
+ type: "internal",
97
+ layout: { x: 4, y: 7, w: 4, h: 5 },
98
+ title: "Date",
99
+ widget: {
100
+ name: "EodashDatePicker",
101
+ properties: {
102
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
103
+ on map (see Analysis Layers)`,
104
+ toggleCalendar: true,
105
+ },
106
+ },
107
+ }
108
+ : null;
109
+ },
110
+ },
111
+ {
112
+ defineWidget: (selectedSTAC) =>
113
+ includesProcess(selectedSTAC) && {
114
+ id: "Processes",
115
+ type: "internal",
116
+ title: "Processes",
117
+ layout: { x: "9/9/10", y: 6, w: "3/3/2", h: 5 },
118
+ widget: {
119
+ name: "EodashProcess",
120
+ },
121
+ },
122
+ },
123
+ ],
124
+ };
@@ -0,0 +1,8 @@
1
+ import { getBaseConfig } from "./baseConfig";
2
+
3
+ export { default as light } from "./light";
4
+ export { default as expert } from "./expert";
5
+ export { default as compare } from "./compare";
6
+ export { getBaseConfig };
7
+
8
+ export default getBaseConfig;
@@ -0,0 +1,139 @@
1
+ import { mdiViewDashboardVariant } from "@mdi/js";
2
+
3
+ /** @type {import("@/types").Template} */
4
+ export default {
5
+ gap: 16,
6
+ loading: {
7
+ id: Symbol(),
8
+ type: "web-component",
9
+ widget: {
10
+ // https://uiball.com/ldrs/
11
+ link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
12
+ tagName: "l-mirage",
13
+ properties: {
14
+ class: "align-self-center justify-self-center",
15
+ size: "120",
16
+ speed: "2.5",
17
+ color: "#004170",
18
+ },
19
+ },
20
+ },
21
+ background: {
22
+ id: "lite-map",
23
+ type: "internal",
24
+ widget: {
25
+ name: "EodashMap",
26
+ properties: {
27
+ enableCompare: true,
28
+ enableCursorCoordinates: false,
29
+ enableScaleLine: false,
30
+ btns: {
31
+ enableExportMap: false,
32
+ enableChangeProjection: false,
33
+ enableCompareIndicators: false,
34
+ enableBackToPOIs: false,
35
+ enableSearch: true,
36
+ },
37
+ },
38
+ },
39
+ },
40
+ widgets: [
41
+ {
42
+ id: "tools-light",
43
+ type: "internal",
44
+ title: "Tools",
45
+ layout: { x: 0, y: 0, w: "3/3/2", h: 1 },
46
+ widget: {
47
+ name: "EodashTools",
48
+ properties: {
49
+ layoutTarget: "expert",
50
+ layoutIcon: mdiViewDashboardVariant,
51
+ itemFilterConfig: {
52
+ resultType: "cards",
53
+ filtersTitle: "",
54
+ filterProperties: [],
55
+ resultsTitle: "Explore more indicators",
56
+ subTitleProperty: "subtitle",
57
+ imageProperty: "thumbnail",
58
+ cssVars: {
59
+ "--filter-display": "none",
60
+ },
61
+ },
62
+ },
63
+ },
64
+ },
65
+ {
66
+ defineWidget: (selectedSTAC) => {
67
+ return selectedSTAC
68
+ ? {
69
+ id: "layercontrol-light",
70
+ type: "internal",
71
+ title: "Layers",
72
+ layout: { x: 0, y: 1, w: "3/3/2", h: 10 },
73
+ widget: {
74
+ name: "EodashLayerControl",
75
+ properties: {
76
+ slider: false,
77
+ tools: ["datetime", "info", "legend"],
78
+ cssVars: {
79
+ "--list-padding": "-8px",
80
+ "--tools-button-visibility": "none",
81
+ "--layer-input-visibility": "none",
82
+ "--layer-type-visibility": "none",
83
+ "--padding": "8px",
84
+ "--padding-vertical": "16px",
85
+ "--layer-tools-button-visibility": "none",
86
+ "--layer-toggle-button-visibility": "flex",
87
+ "--layer-summary-visibility": "none",
88
+ "--layer-visibility": "none",
89
+ },
90
+ },
91
+ },
92
+ }
93
+ : null;
94
+ },
95
+ },
96
+ {
97
+ defineWidget: (selectedSTAC) => {
98
+ return selectedSTAC
99
+ ? {
100
+ id: "stacinfo-light",
101
+ type: "internal",
102
+ title: "Information",
103
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 12 },
104
+ widget: {
105
+ name: "EodashStacInfo",
106
+ properties: {
107
+ tags: [],
108
+ header: [],
109
+ footer: [],
110
+ body: ["description"],
111
+ styleOverride: "",
112
+ featured: [],
113
+ },
114
+ },
115
+ }
116
+ : null;
117
+ },
118
+ },
119
+ {
120
+ defineWidget: (selectedSTAC) => {
121
+ return selectedSTAC
122
+ ? {
123
+ id: "light-datepicker",
124
+ type: "internal",
125
+ layout: { x: 4, y: 7, w: 4, h: 5 },
126
+ title: "Date",
127
+ widget: {
128
+ name: "EodashDatePicker",
129
+ properties: {
130
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
131
+ on map (see Analysis Layers)`,
132
+ },
133
+ },
134
+ }
135
+ : null;
136
+ },
137
+ },
138
+ ],
139
+ };