@eodash/eodash 5.0.0 → 5.1.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 (155) 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 +42 -25
  5. package/core/client/components/EodashOverlay.vue +1 -1
  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 +9 -10
  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 +80 -47
  15. package/core/client/eodashSTAC/helpers.js +136 -27
  16. package/core/client/eodashSTAC/parquet.js +145 -0
  17. package/core/client/eodashSTAC/triggers.js +6 -3
  18. package/core/client/plugins/index.js +4 -3
  19. package/core/client/plugins/vuetify.js +3 -0
  20. package/core/client/store/actions.js +21 -4
  21. package/core/client/store/stac.js +93 -56
  22. package/core/client/store/states.js +15 -5
  23. package/core/client/types.ts +59 -43
  24. package/core/client/utils/index.js +79 -0
  25. package/core/client/utils/keys.js +2 -2
  26. package/core/client/utils/states.js +30 -5
  27. package/core/client/views/Dashboard.vue +36 -32
  28. package/core/client/vite-env.d.ts +7 -0
  29. package/dist/client/{DashboardLayout-CkWvOMOW.js → DashboardLayout-ByVs1DrY.js} +23 -12
  30. package/dist/client/{DynamicWebComponent-DYBbpvUK.js → DynamicWebComponent-C3W7HSQm.js} +1 -1
  31. package/dist/client/{EodashDatePicker-CALmW3SI.js → EodashDatePicker-BIAf1sMT.js} +59 -32
  32. package/dist/client/{EodashItemFilter-DlQiE713.js → EodashItemFilter-DPznh8UB.js} +20 -10
  33. package/dist/client/{EodashLayerControl-DEzEbft7.js → EodashLayerControl-Bhxjw4V2.js} +29 -16
  34. package/dist/client/EodashLayoutSwitcher-C5qTEffW.js +61 -0
  35. package/dist/client/EodashMapBtns-WoGq8MuV.js +173 -0
  36. package/dist/client/{EodashStacInfo-DPPxDkF6.js → EodashStacInfo-CSvvF2jI.js} +3 -18
  37. package/dist/client/{EodashTools-CUaL9s4H.js → EodashTools-Cv1SXQ5y.js} +13 -13
  38. package/dist/client/{ExportState-DjyIZVhl.js → ExportState-D-iuwaad.js} +58 -52
  39. package/dist/client/{Footer-DyL0JoWt.js → Footer-CyF0zRAk.js} +15 -13
  40. package/dist/client/{Header-B5Dgty9l.js → Header-CgD8jDKU.js} +33 -28
  41. package/dist/client/{MobileLayout-CRsg_5Q4.js → MobileLayout-EKQ_kpSh.js} +69 -60
  42. package/dist/client/{PopUp-BfB8s_ki.js → PopUp-BsYLvWch.js} +19 -10
  43. package/dist/client/ProcessList-C2xsLU2_.js +191 -0
  44. package/dist/client/{VImg-FD1WVphJ.js → VImg-OHe8YTs2.js} +24 -24
  45. package/dist/client/{VMain-DJKG4SvM.js → VMain-PryTLU4a.js} +7 -7
  46. package/dist/client/{VOverlay-BzOdRu9h.js → VOverlay-yUn7p-Uf.js} +64 -27
  47. package/dist/client/{VTooltip-CfeefrXI.js → VTooltip-DZ0fjpB3.js} +13 -10
  48. package/dist/client/{WidgetsContainer-C2TaTdb6.js → WidgetsContainer-B9LBadcC.js} +1 -1
  49. package/dist/client/asWebComponent-By_7_JjS.js +19193 -0
  50. package/dist/client/async-DkSu_u2K.js +740 -0
  51. package/dist/client/eo-dash.js +1 -1
  52. package/dist/client/{forwardRefs-Bon_Kku1.js → forwardRefs-BXxrv98s.js} +31 -4
  53. package/dist/client/handling-CgmFXkW6.js +1212 -0
  54. package/dist/client/helpers-Dy0Q13tP.js +4534 -0
  55. package/dist/client/{index-Bm9cbtx5.js → index-BuhOHXKv.js} +2 -4
  56. package/dist/client/{index-CIHH_3dW.js → index-Ch_HchK3.js} +39 -32
  57. package/dist/client/{index-4CT7Tz83.js → index-Dqj4tbx2.js} +2 -2
  58. package/dist/client/index-skjhlH8u.js +376 -0
  59. package/dist/client/{ssrBoot-BP7SYRyC.js → ssrBoot-Zgc_Ttvi.js} +2 -2
  60. package/dist/client/templates.js +850 -0
  61. package/dist/client/transition-C98Yn4Vo.js +40 -0
  62. package/dist/node/cli.js +16 -6
  63. package/dist/node/types.d.ts +1 -1
  64. package/dist/types/core/client/App.vue.d.ts +2 -2
  65. package/dist/types/core/client/asWebComponent.d.ts +1 -1
  66. package/dist/types/core/client/components/DynamicWebComponent.vue.d.ts +1 -3
  67. package/dist/types/core/client/components/Footer.vue.d.ts +1 -105
  68. package/dist/types/core/client/components/IframeWrapper.vue.d.ts +1 -1
  69. package/dist/types/core/client/components/MobileLayout.vue.d.ts +1 -324
  70. package/dist/types/core/client/composables/DefineEodash.d.ts +2 -2
  71. package/dist/types/core/client/composables/DefineTemplate.d.ts +1 -1
  72. package/dist/types/core/client/composables/DefineWidgets.d.ts +4 -4
  73. package/dist/types/core/client/composables/index.d.ts +24 -2
  74. package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +9 -6
  75. package/dist/types/core/client/eodashSTAC/helpers.d.ts +20 -5
  76. package/dist/types/core/client/eodashSTAC/parquet.d.ts +2 -0
  77. package/dist/types/core/client/plugins/vuetify.d.ts +7 -4
  78. package/dist/types/core/client/store/actions.d.ts +3 -2
  79. package/dist/types/core/client/store/stac.d.ts +16 -13
  80. package/dist/types/core/client/store/states.d.ts +14 -4
  81. package/dist/types/core/client/types.d.ts +45 -30
  82. package/dist/types/core/client/utils/index.d.ts +2 -0
  83. package/dist/types/core/client/utils/keys.d.ts +4 -4
  84. package/dist/types/core/client/utils/states.d.ts +59 -47
  85. package/dist/types/core/client/views/Dashboard.vue.d.ts +2 -2
  86. package/dist/types/templates/baseConfig.d.ts +4 -0
  87. package/dist/types/templates/compare.d.ts +210 -0
  88. package/dist/types/templates/expert.d.ts +151 -0
  89. package/dist/types/templates/index.d.ts +6 -0
  90. package/dist/types/templates/light.d.ts +145 -0
  91. package/dist/types/widgets/EodashDatePicker.vue.d.ts +1 -458
  92. package/dist/types/widgets/EodashItemFilter.vue.d.ts +3 -3
  93. package/dist/types/widgets/EodashLayerControl.vue.d.ts +14 -7
  94. package/dist/types/widgets/EodashLayoutSwitcher.vue.d.ts +1 -3
  95. package/dist/types/widgets/EodashMap/index.vue.d.ts +1 -4
  96. package/dist/types/widgets/EodashMapBtns.vue.d.ts +8 -8
  97. package/dist/types/widgets/EodashProcess/ProcessList.vue.d.ts +8 -1
  98. package/dist/types/widgets/EodashProcess/index.vue.d.ts +8 -4
  99. package/dist/types/widgets/EodashProcess/methods/async.d.ts +18 -18
  100. package/dist/types/widgets/EodashProcess/methods/composables.d.ts +3 -2
  101. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/index.d.ts +1 -0
  102. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/sentinelhub-endpoint.d.ts +6 -0
  103. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.d.ts +4 -0
  104. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.d.ts +5 -0
  105. package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/index.d.ts +1 -0
  106. package/dist/types/widgets/EodashProcess/methods/handling.d.ts +12 -5
  107. package/dist/types/widgets/EodashProcess/methods/outputs.d.ts +72 -41
  108. package/dist/types/widgets/EodashProcess/methods/utils.d.ts +41 -21
  109. package/dist/types/widgets/EodashProcess/states.d.ts +11 -0
  110. package/dist/types/widgets/EodashProcess/types.d.ts +41 -0
  111. package/dist/types/widgets/EodashStacInfo.vue.d.ts +14 -14
  112. package/dist/types/widgets/EodashTools.vue.d.ts +3 -3
  113. package/dist/types/widgets/ExportState.vue.d.ts +1 -1
  114. package/dist/types/widgets/PopUp.vue.d.ts +11 -16
  115. package/dist/types/widgets/WidgetsContainer.vue.d.ts +3 -6
  116. package/package.json +53 -45
  117. package/templates/baseConfig.js +68 -0
  118. package/templates/compare.js +162 -0
  119. package/templates/expert.js +123 -0
  120. package/templates/index.js +8 -0
  121. package/templates/light.js +130 -0
  122. package/widgets/EodashDatePicker.vue +80 -31
  123. package/widgets/EodashItemFilter.vue +26 -11
  124. package/widgets/EodashLayerControl.vue +20 -11
  125. package/widgets/EodashLayoutSwitcher.vue +6 -3
  126. package/widgets/EodashMap/index.vue +3 -8
  127. package/widgets/EodashMap/methods/create-layers-config.js +4 -3
  128. package/widgets/EodashMap/methods/index.js +33 -23
  129. package/widgets/EodashMapBtns.vue +83 -41
  130. package/widgets/EodashProcess/ProcessList.vue +34 -10
  131. package/widgets/EodashProcess/index.vue +55 -20
  132. package/widgets/EodashProcess/methods/async.js +77 -59
  133. package/widgets/EodashProcess/methods/composables.js +21 -14
  134. package/widgets/EodashProcess/methods/custom-endpoints/chart/index.js +35 -0
  135. package/widgets/EodashProcess/methods/custom-endpoints/chart/sentinelhub-endpoint.js +275 -0
  136. package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +116 -0
  137. package/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.js +94 -0
  138. package/widgets/EodashProcess/methods/custom-endpoints/layers/index.js +33 -0
  139. package/widgets/EodashProcess/methods/handling.js +127 -80
  140. package/widgets/EodashProcess/methods/outputs.js +376 -125
  141. package/widgets/EodashProcess/methods/utils.js +398 -10
  142. package/widgets/EodashProcess/states.js +13 -0
  143. package/widgets/EodashProcess/types.ts +46 -0
  144. package/widgets/EodashStacInfo.vue +2 -17
  145. package/widgets/EodashTools.vue +13 -13
  146. package/widgets/WidgetsContainer.vue +1 -1
  147. package/core/client/eodash.js +0 -454
  148. package/dist/client/EodashLayoutSwitcher-CDeCV8F-.js +0 -52
  149. package/dist/client/EodashMapBtns-CktQCfa-.js +0 -131
  150. package/dist/client/ProcessList-DTefwQZx.js +0 -484
  151. package/dist/client/asWebComponent-CLhcT715.js +0 -12479
  152. package/dist/client/eo-dash.css +0 -5
  153. package/dist/client/index-DiGDvTQU.js +0 -780
  154. package/dist/client/transition-C5I57hn6.js +0 -37
  155. package/dist/types/core/client/eodash.d.ts +0 -8
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@eodash/eodash",
3
- "version": "5.0.0",
3
+ "version": "5.1.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,68 @@
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/itemfilter": "^1.10.3",
71
+ "@eox/jsonform": "^1.3.2",
72
+ "@eox/layercontrol": "^1.1.2",
73
+ "@eox/layout": "^1.0.0",
74
+ "@eox/map": "^1.24.2",
75
+ "@eox/stacinfo": "^1.0.1",
76
+ "@eox/timecontrol": "^1.0.1",
77
+ "@eox/ui": "^0.4.0",
71
78
  "@mdi/js": "^7.4.47",
72
- "@vitejs/plugin-vue": "^5.2.3",
73
- "@vueuse/core": "^12.0.0",
79
+ "@vitejs/plugin-vue": "^5.2.4",
80
+ "@vueuse/core": "^13.6.0",
74
81
  "animated-details": "gist:2912bb049fa906671807415eb0e87188",
75
- "axios": "^1.8.4",
76
- "axios-cache-interceptor": "^1.7.0",
82
+ "axios": "^1.11.0",
83
+ "axios-cache-interceptor": "^1.8.0",
77
84
  "color-legend-element": "^1.3.0",
78
- "commander": "^12.1.0",
79
- "core-js": "^3.41.0",
85
+ "commander": "^14.0.0",
86
+ "core-js": "^3.44.0",
87
+ "dotenv": "^17.2.1",
88
+ "hyparquet": "^1.17.1",
80
89
  "loglevel": "^1.9.2",
81
90
  "mustache": "^4.2.0",
82
- "pinia": "^3.0.1",
83
- "sass": "^1.86.0",
84
- "stac-js": "^0.0.9",
91
+ "pinia": "^3.0.3",
92
+ "sass": "^1.89.2",
93
+ "stac-js": "^0.1.6",
85
94
  "stac-ts": "^1.0.4",
86
95
  "v-calendar": "3.0.0",
87
96
  "vega": "^5.33.0",
88
97
  "vega-embed": "^6.29.0",
89
98
  "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",
99
+ "vite": "^6.3.5",
100
+ "vite-plugin-vuetify": "^2.1.1",
101
+ "vue": "^3.5.17",
102
+ "vuetify": "^3.9.2",
94
103
  "webfontloader": "^1.6.28"
95
104
  },
96
105
  "devDependencies": {
97
- "@babel/types": "^7.27.0",
106
+ "@babel/types": "^7.28.2",
98
107
  "@eox/eslint-config": "^2.0.0",
99
- "@pinia/testing": "^0.1.7",
108
+ "@pinia/testing": "^1.0.2",
100
109
  "@types/json-schema": "^7.0.15",
101
- "@types/mustache": "^4.2.5",
102
- "@types/node": "^22.13.13",
110
+ "@types/mustache": "^4.2.6",
111
+ "@types/node": "^24.1.0",
103
112
  "@types/openlayers": "^4.6.23",
104
113
  "@types/webfontloader": "^1.6.38",
105
- "cypress": "^13.17.0",
106
- "eslint": "^9.23.0",
114
+ "cypress": "^14.5.3",
115
+ "eslint": "^9.32.0",
107
116
  "eslint-plugin-vue": "^9.33.0",
108
- "pkg-pr-new": "^0.0.39",
109
- "prettier": "^3.5.3",
110
- "rollup": "^4.37.0",
117
+ "pkg-pr-new": "^0.0.54",
118
+ "prettier": "^3.6.2",
119
+ "rollup": "^4.46.1",
111
120
  "terminate": "^2.8.0",
112
- "tsc-alias": "^1.8.11",
113
- "typedoc": "^0.28.1",
114
- "typedoc-plugin-markdown": "^4.6.0",
121
+ "tsc-alias": "^1.8.16",
122
+ "typedoc": "^0.28.8",
123
+ "typedoc-plugin-markdown": "^4.7.1",
115
124
  "typedoc-plugin-vue": "^1.5.0",
116
125
  "typedoc-vitepress-theme": "^1.1.2",
117
- "typescript": "^5.8.2",
118
- "unplugin-fonts": "^1.3.1",
126
+ "typescript": "^5.8.3",
119
127
  "vitepress": "^1.6.3",
120
- "vitest": "^1.6.1",
121
- "vue-tsc": "2.2.0"
128
+ "vitest": "^3.2.4",
129
+ "vue-tsc": "3.0.1"
122
130
  },
123
131
  "engines": {
124
132
  "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,162 @@
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: (selected) => {
123
+ return selected
124
+ ? {
125
+ id: "Buttons",
126
+ layout: { x: "8/8/9", y: 0, w: 1, h: 2 },
127
+ title: "Buttons",
128
+ type: "internal",
129
+ widget: {
130
+ name: "EodashMapBtns",
131
+ properties: {
132
+ compareIndicators: {
133
+ fallbackTemplate: "expert",
134
+ },
135
+ },
136
+ },
137
+ }
138
+ : null;
139
+ },
140
+ },
141
+ {
142
+ defineWidget: (selectedSTAC) => {
143
+ return selectedSTAC
144
+ ? {
145
+ id: "expert-Datepicker",
146
+ type: "internal",
147
+ layout: { x: 4, y: 7, w: 4, h: 5 },
148
+ title: "Date",
149
+ widget: {
150
+ name: "EodashDatePicker",
151
+ properties: {
152
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
153
+ on map (see Analysis Layers)`,
154
+ toggleCalendar: true,
155
+ },
156
+ },
157
+ }
158
+ : null;
159
+ },
160
+ },
161
+ ],
162
+ };
@@ -0,0 +1,123 @@
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
+ },
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
+ layoutTarget: "light",
41
+ layoutIcon: mdiViewDashboard,
42
+ itemFilterConfig: {
43
+ resultType: "cards",
44
+ subTitleProperty: "subtitle",
45
+ imageProperty: "thumbnail",
46
+ aggregateResults: "collection_group",
47
+ },
48
+ },
49
+ },
50
+ },
51
+ {
52
+ id: "Layercontrol",
53
+ type: "internal",
54
+ title: "Layers",
55
+ layout: { x: 0, y: 1, w: "3/3/2", h: 11 },
56
+ widget: {
57
+ name: "EodashLayerControl",
58
+ },
59
+ },
60
+ {
61
+ defineWidget: (selectedSTAC) => {
62
+ return selectedSTAC
63
+ ? {
64
+ id: "Information",
65
+ title: "Information",
66
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 6 },
67
+ type: "internal",
68
+ widget: {
69
+ name: "EodashStacInfo",
70
+ },
71
+ }
72
+ : null;
73
+ },
74
+ },
75
+ {
76
+ defineWidget: (selectedSTAC) => {
77
+ return selectedSTAC
78
+ ? {
79
+ id: "expert-datepicker",
80
+ type: "internal",
81
+ layout: { x: 4, y: 7, w: 4, h: 5 },
82
+ title: "Date",
83
+ widget: {
84
+ name: "EodashDatePicker",
85
+ properties: {
86
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
87
+ on map (see Analysis Layers)`,
88
+ toggleCalendar: true,
89
+ },
90
+ },
91
+ }
92
+ : null;
93
+ },
94
+ },
95
+ {
96
+ defineWidget: (selected) => {
97
+ return selected
98
+ ? {
99
+ id: "Buttons",
100
+ layout: { x: "8/8/9", y: 0, w: 1, h: 2 },
101
+ title: "Buttons",
102
+ type: "internal",
103
+ widget: {
104
+ name: "EodashMapBtns",
105
+ },
106
+ }
107
+ : null;
108
+ },
109
+ },
110
+ {
111
+ defineWidget: (selectedSTAC) =>
112
+ includesProcess(selectedSTAC) && {
113
+ id: "Processes",
114
+ type: "internal",
115
+ title: "Processes",
116
+ layout: { x: "9/9/10", y: 6, w: "3/3/2", h: 5 },
117
+ widget: {
118
+ name: "EodashProcess",
119
+ },
120
+ },
121
+ },
122
+ ],
123
+ };
@@ -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,130 @@
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: "background-map",
23
+ type: "internal",
24
+ widget: {
25
+ name: "EodashMap",
26
+ properties: {
27
+ enableCompare: true,
28
+ },
29
+ },
30
+ },
31
+ widgets: [
32
+ {
33
+ id: "tools-light",
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
+ layoutTarget: "expert",
41
+ layoutIcon: mdiViewDashboardVariant,
42
+ itemFilterConfig: {
43
+ resultType: "cards",
44
+ filtersTitle: "",
45
+ filterProperties: [],
46
+ resultsTitle: "Explore more indicators",
47
+ subTitleProperty: "subtitle",
48
+ imageProperty: "thumbnail",
49
+ cssVars: {
50
+ "--filter-display": "none",
51
+ },
52
+ },
53
+ },
54
+ },
55
+ },
56
+ {
57
+ defineWidget: (selectedSTAC) => {
58
+ return selectedSTAC
59
+ ? {
60
+ id: "layercontrol-light",
61
+ type: "internal",
62
+ title: "Layers",
63
+ layout: { x: 0, y: 1, w: "3/3/2", h: 10 },
64
+ widget: {
65
+ name: "EodashLayerControl",
66
+ properties: {
67
+ slider: false,
68
+ tools: ["datetime", "info", "legend"],
69
+ cssVars: {
70
+ "--list-padding": "-8px",
71
+ "--tools-button-visibility": "none",
72
+ "--layer-input-visibility": "none",
73
+ "--layer-type-visibility": "none",
74
+ "--padding": "8px",
75
+ "--padding-vertical": "16px",
76
+ "--layer-tools-button-visibility": "none",
77
+ "--layer-toggle-button-visibility": "flex",
78
+ "--layer-summary-visibility": "none",
79
+ "--layer-visibility": "none",
80
+ },
81
+ },
82
+ },
83
+ }
84
+ : null;
85
+ },
86
+ },
87
+ {
88
+ defineWidget: (selectedSTAC) => {
89
+ return selectedSTAC
90
+ ? {
91
+ id: "stacinfo-light",
92
+ type: "internal",
93
+ title: "Information",
94
+ layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 12 },
95
+ widget: {
96
+ name: "EodashStacInfo",
97
+ properties: {
98
+ tags: [],
99
+ header: [],
100
+ footer: [],
101
+ body: ["description"],
102
+ styleOverride: "",
103
+ featured: [],
104
+ },
105
+ },
106
+ }
107
+ : null;
108
+ },
109
+ },
110
+ {
111
+ defineWidget: (selectedSTAC) => {
112
+ return selectedSTAC
113
+ ? {
114
+ id: "light-datepicker",
115
+ type: "internal",
116
+ layout: { x: 4, y: 7, w: 4, h: 5 },
117
+ title: "Date",
118
+ widget: {
119
+ name: "EodashDatePicker",
120
+ properties: {
121
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
122
+ on map (see Analysis Layers)`,
123
+ },
124
+ },
125
+ }
126
+ : null;
127
+ },
128
+ },
129
+ ],
130
+ };