@eodash/eodash 5.0.0-processing → 5.0.0-rc.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 (112) hide show
  1. package/core/client/asWebComponent.js +2 -3
  2. package/core/client/components/DashboardLayout.vue +35 -17
  3. package/core/client/components/Loading.vue +6 -9
  4. package/core/client/components/MobileLayout.vue +16 -14
  5. package/core/client/composables/DefineEodash.js +13 -3
  6. package/core/client/composables/DefineTemplate.js +67 -0
  7. package/core/client/composables/DefineWidgets.js +3 -2
  8. package/core/client/composables/EodashMap.js +23 -12
  9. package/core/client/composables/EodashProcess.js +10 -11
  10. package/core/client/composables/index.js +35 -10
  11. package/core/client/eodash.js +381 -139
  12. package/core/client/{utils/eodashSTAC.js → eodashSTAC/EodashCollection.js} +75 -42
  13. package/core/client/{utils → eodashSTAC}/createLayers.js +10 -8
  14. package/core/client/{utils → eodashSTAC}/helpers.js +45 -68
  15. package/core/client/eodashSTAC/triggers.js +43 -0
  16. package/core/client/plugins/vuetify.js +2 -1
  17. package/core/client/store/{Actions.js → actions.js} +16 -2
  18. package/core/client/store/index.js +4 -18
  19. package/core/client/store/stac.js +4 -4
  20. package/core/client/store/{States.js → states.js} +2 -0
  21. package/{dist/types/core/client/types.d.ts → core/client/types.ts} +47 -8
  22. package/core/client/utils/states.js +8 -3
  23. package/core/client/views/Dashboard.vue +6 -4
  24. package/core/client/vite-env.d.ts +1 -1
  25. package/dist/client/{DashboardLayout-CVMJ4l8M.js → DashboardLayout-FS5inBIm.js} +12 -15
  26. package/dist/client/{DynamicWebComponent-Cv8n457T.js → DynamicWebComponent-CBSgT677.js} +1 -1
  27. package/dist/client/{EodashDatePicker-VVkiPmpc.js → EodashDatePicker-BGSS2ZYK.js} +75 -163
  28. package/dist/client/EodashItemFilter-CFNKjm_Z.js +151 -0
  29. package/dist/client/{EodashLayerControl-53WghA8G.js → EodashLayerControl-CzffoPUs.js} +17 -7
  30. package/dist/client/EodashLayoutSwitcher-DM0zDhvI.js +52 -0
  31. package/dist/client/{EodashMap-CQnOePpy.js → EodashMap-BdFZ657e.js} +101 -38
  32. package/dist/client/EodashMapBtns-rC_IPD-Z.js +107 -0
  33. package/dist/client/EodashProcess-SLsTISKV.js +714 -0
  34. package/dist/client/EodashStacInfo-DFD0gtWm.js +85 -0
  35. package/dist/client/EodashTools-ImohD2ys.js +103 -0
  36. package/dist/client/{ExportState-BT8MLAW7.js → ExportState-LNZAovzM.js} +13 -13
  37. package/dist/client/{Footer-C6GUG84G.js → Footer-c19dV1ZR.js} +1 -1
  38. package/dist/client/{Header-D2dtCWp8.js → Header-CcvXFqqt.js} +3 -3
  39. package/dist/client/{MobileLayout-BAo8Wr8T.js → MobileLayout-OM6Wc-vj.js} +28 -31
  40. package/dist/client/{PopUp-Bm01q7Ko.js → PopUp-B0_c0207.js} +29 -8
  41. package/dist/client/{VImg-B8AbetCE.js → VImg-BpDhCbL0.js} +2 -2
  42. package/dist/client/{VMain-DnGlQUyr.js → VMain-DC05bDwX.js} +1 -1
  43. package/dist/client/{VOverlay-B8Qj7LRG.js → VOverlay-C7EUyVe_.js} +3 -3
  44. package/dist/client/VTooltip-C78suika.js +86 -0
  45. package/dist/client/{WidgetsContainer-CwXRRLS1.js → WidgetsContainer-sD1vDnhF.js} +1 -1
  46. package/dist/client/{asWebComponent-DUUoR7MZ.js → asWebComponent-D8bMMCEr.js} +1374 -1052
  47. package/dist/client/{style.css → eo-dash.css} +1 -1
  48. package/dist/client/eo-dash.js +1 -1
  49. package/dist/client/{forwardRefs-CZJhEAKW.js → forwardRefs-yw6tFXER.js} +1 -1
  50. package/dist/client/{index-DlIO7sJ3.js → index-CpK_Yaom.js} +1 -1
  51. package/dist/client/{transition-BiR8wMn1.js → transition-B2YwqAYJ.js} +1 -1
  52. package/dist/node/cli.js +2 -2
  53. package/package.json +48 -37
  54. package/widgets/EodashDatePicker.vue +68 -54
  55. package/widgets/EodashItemFilter.vue +60 -105
  56. package/widgets/EodashLayerControl.vue +17 -4
  57. package/widgets/EodashLayoutSwitcher.vue +36 -0
  58. package/widgets/EodashMap.vue +26 -27
  59. package/widgets/EodashMapBtns.vue +41 -4
  60. package/widgets/EodashProcess.vue +4 -12
  61. package/widgets/EodashStacInfo.vue +82 -0
  62. package/widgets/EodashTools.vue +83 -0
  63. package/widgets/ExportState.vue +12 -12
  64. package/widgets/PopUp.vue +24 -2
  65. package/core/client/asWebComponent.d.ts +0 -23
  66. package/core/client/types.d.ts +0 -279
  67. package/dist/client/EodashItemFilter-CugWNQ86.js +0 -194
  68. package/dist/client/EodashMapBtns-uaRwFtfB.js +0 -66
  69. package/dist/client/EodashProcess-cF0unIy8.js +0 -1477
  70. package/dist/types/core/client/App.vue.d.ts +0 -7
  71. package/dist/types/core/client/asWebComponent.d.ts +0 -9
  72. package/dist/types/core/client/components/DashboardLayout.vue.d.ts +0 -2
  73. package/dist/types/core/client/components/DynamicWebComponent.vue.d.ts +0 -18
  74. package/dist/types/core/client/components/ErrorAlert.vue.d.ts +0 -2
  75. package/dist/types/core/client/components/Footer.vue.d.ts +0 -2
  76. package/dist/types/core/client/components/Header.vue.d.ts +0 -2
  77. package/dist/types/core/client/components/IframeWrapper.vue.d.ts +0 -7
  78. package/dist/types/core/client/components/Loading.vue.d.ts +0 -2
  79. package/dist/types/core/client/components/MobileLayout.vue.d.ts +0 -2
  80. package/dist/types/core/client/composables/DefineEodash.d.ts +0 -2
  81. package/dist/types/core/client/composables/DefineTemplate.d.ts +0 -15
  82. package/dist/types/core/client/composables/DefineWidgets.d.ts +0 -14
  83. package/dist/types/core/client/composables/EodashMap.d.ts +0 -5
  84. package/dist/types/core/client/composables/index.d.ts +0 -30
  85. package/dist/types/core/client/eodash.d.ts +0 -8
  86. package/dist/types/core/client/main.d.ts +0 -2
  87. package/dist/types/core/client/plugins/axios.d.ts +0 -2
  88. package/dist/types/core/client/plugins/index.d.ts +0 -3
  89. package/dist/types/core/client/plugins/vuetify.d.ts +0 -82
  90. package/dist/types/core/client/render.d.ts +0 -1
  91. package/dist/types/core/client/store/Actions.d.ts +0 -12
  92. package/dist/types/core/client/store/States.d.ts +0 -22
  93. package/dist/types/core/client/store/index.d.ts +0 -2
  94. package/dist/types/core/client/store/stac.d.ts +0 -25
  95. package/dist/types/core/client/utils/createLayers.d.ts +0 -45
  96. package/dist/types/core/client/utils/eodashSTAC.d.ts +0 -82
  97. package/dist/types/core/client/utils/helpers.d.ts +0 -84
  98. package/dist/types/core/client/utils/index.d.ts +0 -2
  99. package/dist/types/core/client/utils/keys.d.ts +0 -6
  100. package/dist/types/core/client/utils/states.d.ts +0 -14
  101. package/dist/types/core/client/views/Dashboard.vue.d.ts +0 -9
  102. package/dist/types/widgets/EodashDatePicker.vue.d.ts +0 -7
  103. package/dist/types/widgets/EodashItemFilter.vue.d.ts +0 -42
  104. package/dist/types/widgets/EodashLayerControl.vue.d.ts +0 -11
  105. package/dist/types/widgets/EodashLayoutSwitcher.vue.d.ts +0 -9
  106. package/dist/types/widgets/EodashMap.vue.d.ts +0 -7
  107. package/dist/types/widgets/EodashMapBtns.vue.d.ts +0 -11
  108. package/dist/types/widgets/EodashStacInfo.vue.d.ts +0 -21
  109. package/dist/types/widgets/EodashTools.vue.d.ts +0 -15
  110. package/dist/types/widgets/ExportState.vue.d.ts +0 -7
  111. package/dist/types/widgets/PopUp.vue.d.ts +0 -22
  112. package/dist/types/widgets/WidgetsContainer.vue.d.ts +0 -7
@@ -1,5 +1,5 @@
1
+ import { mdiViewDashboard, mdiViewDashboardVariant } from "@mdi/js";
1
2
  import { reactive } from "vue";
2
- import { currentUrl } from "./store/States";
3
3
 
4
4
  /**
5
5
  * Reactive Edoash Instance Object. provided globally in the app, and used as an
@@ -10,181 +10,423 @@ import { currentUrl } from "./store/States";
10
10
  export const eodash = reactive({
11
11
  id: "demo",
12
12
  stacEndpoint:
13
- // "https://eodashcatalog.eox.at/test-style/trilateral/catalog.json",
13
+ // "https://eurodatacube.github.io/eodash-catalog/RACE/catalog.json",
14
14
  // "https://gtif-cerulean.github.io/catalog/cerulean/catalog.json",
15
- "https://santilland.github.io/process_example/catalog.json",
15
+ "https://eodashcatalog.eox.at/samplecatalog/samples/catalog.json",
16
+ // "https://eodashcatalog.eox.at/test-style/trilateral/catalog.json",
17
+ // "https://gtif-cerulean.github.io/catalog/cerulean/catalog.json",
16
18
  brand: {
17
19
  noLayout: true,
18
20
  name: "Demo",
19
21
  theme: {
20
22
  colors: {
21
- primary: "#fff",
22
- secondary: "#fff",
23
- surface: "#fff",
23
+ primary: "#002742",
24
+ secondary: "#0071C2",
25
+ surface: "#ffff",
26
+ },
27
+ variables: {
28
+ "surface-opacity": 0.6,
29
+ "primary-opacity": 0.8,
24
30
  },
25
31
  },
26
32
  footerText: "Demo configuration of eodash client",
27
33
  },
28
- template: {
29
- loading: {
30
- id: Symbol(),
31
- type: "web-component",
32
- widget: {
33
- // https://uiball.com/ldrs/
34
- link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
35
- tagName: "l-mirage",
36
- properties: {
37
- class: "align-self-center justify-self-center",
38
- size: "120",
39
- speed: "2.5",
40
- color: "#004170",
34
+ templates: {
35
+ light: {
36
+ gap: 16,
37
+ loading: {
38
+ id: Symbol(),
39
+ type: "web-component",
40
+ widget: {
41
+ // https://uiball.com/ldrs/
42
+ link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
43
+ tagName: "l-mirage",
44
+ properties: {
45
+ class: "align-self-center justify-self-center",
46
+ size: "120",
47
+ speed: "2.5",
48
+ color: "#004170",
49
+ },
41
50
  },
42
51
  },
43
- },
44
- background: {
45
- id: Symbol(),
46
- type: "internal",
47
- widget: {
48
- name: "EodashMap",
49
- properties: {
50
- enableCompare: true,
52
+ background: {
53
+ id: Symbol(),
54
+ type: "internal",
55
+ widget: {
56
+ name: "EodashMap",
57
+ properties: {
58
+ enableCompare: true,
59
+ },
51
60
  },
52
61
  },
62
+ widgets: [
63
+ {
64
+ id: Symbol(),
65
+ type: "internal",
66
+ title: "Tools",
67
+ layout: { x: 0, y: 0, w: 3, h: 1 },
68
+ widget: {
69
+ name: "EodashTools",
70
+ properties: {
71
+ layoutTarget: "expert",
72
+ layoutIcon: mdiViewDashboardVariant,
73
+ itemFilterConfig: {
74
+ resultType: "cards",
75
+ filtersTitle: "",
76
+ style: "--padding: 72px",
77
+ filterProperties: [],
78
+ resultsTitle: "Explore more indicators",
79
+ subTitleProperty: "subtitle",
80
+ imageProperty: "thumbnail",
81
+ },
82
+ },
83
+ },
84
+ },
85
+ {
86
+ defineWidget: (selectedSTAC) => {
87
+ return selectedSTAC
88
+ ? {
89
+ id: "layercontrol-light",
90
+ type: "internal",
91
+ title: "Layers",
92
+ layout: { x: 0, y: 1, w: 3, h: 3 },
93
+ widget: {
94
+ name: "EodashLayerControl",
95
+ properties: {
96
+ slider: false,
97
+ tools: ["datetime", "info", "legend"],
98
+ cssVars: {
99
+ "--list-padding": "0",
100
+ "--tools-button-visibility": "none",
101
+ "--layer-input-visibility": "none",
102
+ "--layer-type-visibility": "none",
103
+ "--padding": "16px",
104
+ "--padding-vertical": "16px",
105
+ "--layer-tools-button-visibility": "none",
106
+ "--layer-summary-visibility": "none",
107
+ },
108
+ },
109
+ },
110
+ }
111
+ : null;
112
+ },
113
+ },
114
+ {
115
+ defineWidget: (selectedSTAC) => {
116
+ return selectedSTAC
117
+ ? {
118
+ id: "stacinfo-light",
119
+ type: "internal",
120
+ title: "Information",
121
+ layout: { x: 9, y: 0, w: 3, h: 6 },
122
+ widget: {
123
+ name: "EodashStacInfo",
124
+ properties: {
125
+ tags: [],
126
+ header: [],
127
+ footer: [],
128
+ body: ["description"],
129
+ styleOverride: "",
130
+ featured: [],
131
+ },
132
+ },
133
+ }
134
+ : null;
135
+ },
136
+ },
137
+ {
138
+ defineWidget: (selectedSTAC) => {
139
+ return selectedSTAC
140
+ ? {
141
+ id: "Datepicker",
142
+ type: "internal",
143
+ layout: { x: 5, y: 8, w: 2, h: 4 },
144
+ title: "Date",
145
+ widget: {
146
+ name: "EodashDatePicker",
147
+ properties: {
148
+ hideArrows: true,
149
+ hideInputField: true,
150
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
151
+ on map (see Analysis Layers)`,
152
+ },
153
+ },
154
+ }
155
+ : null;
156
+ },
157
+ },
158
+ ],
53
159
  },
54
- widgets: [
55
- {
160
+ expert: {
161
+ loading: {
56
162
  id: Symbol(),
57
- type: "internal",
58
- title: "Indicators",
59
- layout: { x: 0, y: 0, w: 3, h: 6 },
163
+ type: "web-component",
60
164
  widget: {
61
- name: "EodashItemFilter",
165
+ // https://uiball.com/ldrs/
166
+ link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
167
+ tagName: "l-mirage",
62
168
  properties: {
63
- enableCompare: true,
64
- aggregateResults: "collection_group",
169
+ class: "align-self-center justify-self-center",
170
+ size: "120",
171
+ speed: "2.5",
172
+ color: "#004170",
65
173
  },
66
174
  },
67
175
  },
68
- {
176
+ background: {
69
177
  id: Symbol(),
70
178
  type: "internal",
71
- title: "Layer Control",
72
- layout: { x: 0, y: 6, w: 3, h: 6 },
73
179
  widget: {
74
- name: "EodashLayerControl",
180
+ name: "EodashMap",
181
+ properties: {
182
+ enableCompare: true,
183
+ },
75
184
  },
76
185
  },
77
- /*
78
- {
79
- defineWidget: (selectedCompareStac) => {
80
- return selectedCompareStac
81
- ? {
82
- id: Symbol(),
83
- title: "Layer Control Comparison",
84
- layout: { x: 9, y: 6, w: 3, h: 6 },
85
- type: "internal",
86
- widget: {
87
- name: "EodashLayerControl",
88
- properties: {
89
- map: "second",
90
- },
186
+ widgets: [
187
+ {
188
+ id: Symbol(),
189
+ type: "internal",
190
+ title: "Tools",
191
+ layout: { x: 0, y: 0, w: 3, h: 1 },
192
+ widget: {
193
+ name: "EodashTools",
194
+ properties: {
195
+ layoutTarget: "light",
196
+ layoutIcon: mdiViewDashboard,
197
+ itemFilterConfig: {
198
+ resultType: "cards",
199
+ subTitleProperty: "subtitle",
200
+ imageProperty: "thumbnail",
201
+ aggregateResults: "collection_group",
202
+ style: {
203
+ "--form-flex-direction": "row",
91
204
  },
92
- }
93
- : null;
205
+ },
206
+ },
207
+ },
94
208
  },
95
- },
96
- */
97
- {
98
- defineWidget: (selectedSTAC) => {
99
- return selectedSTAC
100
- ? {
101
- id: "Information",
102
- title: "Information",
103
- layout: { x: 9, y: 0, w: 3, h: 6 },
104
- type: "web-component",
105
- widget: {
106
- link: async () => await import("@eox/stacinfo"),
107
- properties: {
108
- for: currentUrl,
109
- allowHtml: "true",
110
- styleOverride: `.single-property {columns: 1!important;}
111
- h1 {margin:0px!important;font-size:16px!important;}
112
- header h1:after {
113
- content:' ';
114
- display:block;
115
- border:1px solid #d0d0d0;
116
- }
117
- h2 {font-size:15px}
118
- h3 {font-size:14px}
119
- summary {cursor: pointer;}
120
- #properties li > .value { font-weight: normal !important;}
121
- main {padding-bottom: 10px;}
122
- .footer-container {line-height:1;}
123
- .footer-container button {margin-top: -10px;}
124
- .footer-container small {font-size:10px;line-height:1;}`,
125
- header: '["title"]',
126
- tags: '["themes"]',
127
- subheader: "[]",
128
- properties: '["satellite","sensor","agency","extent"]',
129
- featured: '["description","providers","assets","links"]',
130
- footer: '["sci:citation"]',
209
+ {
210
+ id: Symbol(),
211
+ type: "internal",
212
+ title: "Layers",
213
+ layout: { x: 0, y: 1, w: 3, h: 6 },
214
+ widget: {
215
+ name: "EodashLayerControl",
216
+ },
217
+ },
218
+ {
219
+ defineWidget: (selectedSTAC) => {
220
+ return selectedSTAC
221
+ ? {
222
+ id: "Information",
223
+ title: "Information",
224
+ layout: { x: 9, y: 0, w: 3, h: 6 },
225
+ type: "internal",
226
+ widget: {
227
+ name: "EodashStacInfo",
228
+ properties: {
229
+ showIndicatorsBtn: false,
230
+ showLayoutSwitcher: false,
231
+ },
131
232
  },
132
- tagName: "eox-stacinfo",
133
- },
134
- }
135
- : null;
233
+ }
234
+ : null;
235
+ },
136
236
  },
137
- },
138
- {
139
- defineWidget: (selectedSTAC) => {
140
- return selectedSTAC
141
- ? {
142
- id: "Datepicker",
143
- type: "internal",
144
- layout: { x: 5, y: 10, w: 1, h: 1 },
145
- title: "Datepicker",
146
- widget: {
147
- name: "EodashDatePicker",
148
- properties: {
149
- hintText: `<b>Hint:</b> closest available date is displayed <br />
150
- on map (see Analysis Layers)`,
237
+ {
238
+ defineWidget: (selectedSTAC) => {
239
+ return selectedSTAC
240
+ ? {
241
+ id: "Datepicker",
242
+ type: "internal",
243
+ layout: { x: 5, y: 8, w: 2, h: 4 },
244
+ title: "Date",
245
+ widget: {
246
+ name: "EodashDatePicker",
247
+ properties: {
248
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
249
+ on map (see Analysis Layers)`,
250
+ },
151
251
  },
152
- },
153
- }
154
- : null;
252
+ }
253
+ : null;
254
+ },
255
+ },
256
+ {
257
+ defineWidget: (selected) => {
258
+ return selected
259
+ ? {
260
+ id: "Buttons",
261
+ layout: { x: 8, y: 0, w: 1, h: 2 },
262
+ title: "Buttons",
263
+ type: "internal",
264
+ widget: {
265
+ name: "EodashMapBtns",
266
+ },
267
+ }
268
+ : null;
269
+ },
270
+ },
271
+ {
272
+ defineWidget: (selectedSTAC) =>
273
+ selectedSTAC?.links.some((l) => l.rel === "service")
274
+ ? {
275
+ id: Symbol(),
276
+ type: "internal",
277
+ title: "Processes",
278
+ layout: { x: 0, y: 7, w: 3, h: 5 },
279
+ widget: {
280
+ name: "EodashProcess",
281
+ },
282
+ }
283
+ : null,
284
+ },
285
+ ],
286
+ },
287
+ compare: {
288
+ gap: 16,
289
+ loading: {
290
+ id: Symbol(),
291
+ type: "web-component",
292
+ widget: {
293
+ // https://uiball.com/ldrs/
294
+ link: "https://cdn.jsdelivr.net/npm/ldrs/dist/auto/mirage.js",
295
+ tagName: "l-mirage",
296
+ properties: {
297
+ class: "align-self-center justify-self-center",
298
+ size: "120",
299
+ speed: "2.5",
300
+ color: "#004170",
301
+ },
155
302
  },
156
303
  },
157
- {
158
- defineWidget: (selected) => {
159
- return selected
160
- ? {
161
- id: "Buttons",
162
- layout: { x: 8, y: 0, w: 1, h: 1 },
163
- title: "Buttons",
164
- type: "internal",
165
- widget: {
166
- name: "EodashMapBtns",
167
- },
168
- }
169
- : null;
304
+ background: {
305
+ id: Symbol(),
306
+ type: "internal",
307
+ widget: {
308
+ name: "EodashMap",
309
+ properties: {
310
+ enableCompare: true,
311
+ },
170
312
  },
171
313
  },
172
- {
173
- defineWidget: (indicator) => {
174
- return indicator
175
- ? {
176
- id: "process",
177
- layout: { x: 9, y: 6, w: 3, h: 6 },
178
- title: "Process",
179
- type: "internal",
180
- widget: {
181
- name: "EodashProcess",
314
+ widgets: [
315
+ {
316
+ id: Symbol(),
317
+ type: "internal",
318
+ title: "Tools",
319
+ layout: { x: 0, y: 0, w: 3, h: 1 },
320
+ widget: {
321
+ name: "EodashTools",
322
+ properties: {
323
+ layoutTarget: "expert",
324
+ layoutIcon: mdiViewDashboardVariant,
325
+ itemFilterConfig: {
326
+ cssVars: {
327
+ "--form-flex-direction": "row",
182
328
  },
183
- }
184
- : null;
329
+ },
330
+ },
331
+ },
185
332
  },
186
- },
187
- ],
333
+ // compare indicators
334
+ {
335
+ id: Symbol(),
336
+ type: "internal",
337
+ title: "Tools",
338
+ layout: { x: 9, y: 0, w: 3, h: 1 },
339
+ widget: {
340
+ name: "EodashTools",
341
+ properties: {
342
+ showLayoutSwitcher: false,
343
+ indicatorBtnText: "Select an indicator to compare",
344
+ itemFilterConfig: {
345
+ enableCompare: true,
346
+ // resultsTitle:"Select an indicator to compare",
347
+ filtersTitle: "Select an indicator to compare",
348
+ // filterProperties: [],
349
+ cssVars: {
350
+ "--form-flex-direction": "row",
351
+ },
352
+ },
353
+ },
354
+ },
355
+ },
356
+ {
357
+ id: Symbol(),
358
+ type: "internal",
359
+ title: "Layers",
360
+ layout: { x: 0, y: 1, w: 3, h: 6 },
361
+ widget: {
362
+ name: "EodashLayerControl",
363
+ },
364
+ },
365
+ {
366
+ id: Symbol(),
367
+ title: "Comparison Layers",
368
+ layout: { x: 9, y: 1, w: 3, h: 6 },
369
+ type: "internal",
370
+ widget: {
371
+ name: "EodashLayerControl",
372
+ properties: {
373
+ map: "second",
374
+ },
375
+ },
376
+ },
377
+ {
378
+ defineWidget: (selectedSTAC) =>
379
+ selectedSTAC?.links.some((l) => l.rel === "service")
380
+ ? {
381
+ id: Symbol(),
382
+ type: "internal",
383
+ title: "Processes",
384
+ layout: { x: 0, y: 7, w: 3, h: 5 },
385
+ widget: {
386
+ name: "EodashProcess",
387
+ },
388
+ }
389
+ : null,
390
+ },
391
+ {
392
+ defineWidget: (selected) => {
393
+ return selected
394
+ ? {
395
+ id: "Buttons",
396
+ layout: { x: 8, y: 0, w: 1, h: 2 },
397
+ title: "Buttons",
398
+ type: "internal",
399
+ widget: {
400
+ name: "EodashMapBtns",
401
+ properties: {
402
+ compareIndicators: false,
403
+ },
404
+ },
405
+ }
406
+ : null;
407
+ },
408
+ },
409
+ {
410
+ defineWidget: (selectedSTAC) => {
411
+ return selectedSTAC
412
+ ? {
413
+ id: "Datepicker",
414
+ type: "internal",
415
+ layout: { x: 5, y: 8, w: 2, h: 4 },
416
+ title: "Date",
417
+ widget: {
418
+ name: "EodashDatePicker",
419
+ properties: {
420
+ hintText: `<b>Hint:</b> closest available date is displayed <br />
421
+ on map (see Analysis Layers)`,
422
+ },
423
+ },
424
+ }
425
+ : null;
426
+ },
427
+ },
428
+ ],
429
+ },
188
430
  },
189
431
  });
190
432