@eodash/eodash 5.7.0 → 5.8.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.
- package/core/client/components/EodashOverlay.vue +27 -4
- package/core/client/composables/DefineEodash.js +0 -1
- package/core/client/composables/DefineWidgets.js +3 -1
- package/core/client/eodashSTAC/EodashCollection.js +87 -24
- package/core/client/eodashSTAC/cql.js +64 -0
- package/core/client/eodashSTAC/createLayers.js +353 -187
- package/core/client/eodashSTAC/helpers.js +694 -110
- package/core/client/eodashSTAC/mosaic.js +422 -0
- package/core/client/plugins/axios.js +31 -1
- package/core/client/store/actions.js +1 -1
- package/core/client/store/stac.js +54 -4
- package/core/client/store/states.js +20 -2
- package/core/client/types.ts +152 -28
- package/core/client/utils/bands-editor/exampleSchema.json +50 -50
- package/core/client/utils/states.js +10 -0
- package/dist/client/{DashboardLayout-kRsmsNW5.js → DashboardLayout-DEs4f_Vy.js} +2 -2
- package/dist/client/{DynamicWebComponent-CnKhYo0K.js → DynamicWebComponent-PvnV88BA.js} +1 -1
- package/dist/client/EodashChart-D-3AGKZY.js +260 -0
- package/dist/client/{EodashDatePicker-CMPDT-ce.js → EodashDatePicker-Dm_goZzs.js} +3 -3
- package/dist/client/{EodashItemFilter-BpdA8QQa.js → EodashItemFilter-CJy3zYzD.js} +2 -1
- package/dist/client/{EodashLayerControl-BHpDA4_0.js → EodashLayerControl-rL8UnpkA.js} +55 -33
- package/dist/client/{EodashLayoutSwitcher-B1fRUt7G.js → EodashLayoutSwitcher-ZRlESI9O.js} +3 -3
- package/dist/client/{EodashMapBtns-Cpned0tc.js → EodashMapBtns-CG7u2Aq8.js} +227 -112
- package/dist/client/EodashStacInfo-CJhhxthD.js +169 -0
- package/dist/client/{EodashTools-1zHz26gv.js → EodashTools-CWyK8QJT.js} +4 -4
- package/dist/client/{ExportState-DbOm8hBI.js → ExportState-BXhy5TOU.js} +20 -174
- package/dist/client/{Footer-BKg-VVkj.js → Footer-DZPvnhcT.js} +1 -1
- package/dist/client/{Header-DCrwCvmY.js → Header-CiGsDE_a.js} +2 -2
- package/dist/client/{MobileLayout-vWSHpluo.js → MobileLayout-BJHW7x5V.js} +2 -2
- package/dist/client/{PopUp-9uimfK49.js → PopUp-7_XnhvCc.js} +4 -168
- package/dist/client/{ProcessList-CTTIZa06.js → ProcessList-LL_UCbvc.js} +5 -5
- package/dist/client/VDivider-DWYM0WUr.js +168 -0
- package/dist/client/{VImg-CrmB76ZY.js → VImg-B75dgw2K.js} +2 -2
- package/dist/client/{VMain-OKZNpcEG.js → VMain-DvMmOL4f.js} +1 -1
- package/dist/client/{VTooltip-CJw2FyWk.js → VTooltip-ClWHUmWL.js} +2 -2
- package/dist/client/{WidgetsContainer-BaWOnE5R.js → WidgetsContainer-BqaWs4ch.js} +1 -1
- package/dist/client/{asWebComponent-BHWpMuE3.js → asWebComponent-IZanwL-A.js} +677 -379
- package/dist/client/{async-DSKj6g1f.js → async-CiNIOBVz.js} +31 -29
- package/dist/client/{create-layers-config-CBoYedqB.js → create-layers-config-3S3y_kZg.js} +17 -17
- package/dist/client/dialog-transition-c4ZSnzac.js +170 -0
- package/dist/client/eo-dash.js +1 -1
- package/dist/client/{forwardRefs-DH51zPUr.js → forwardRefs-B-c1_6yo.js} +8 -87
- package/dist/client/{handling-BrcDDlgS.js → handling-NvY8Csry.js} +3 -4
- package/dist/client/{helpers-DjZVl_WF.js → helpers-BFuh19CP.js} +1094 -194
- package/dist/client/{index-1JKE68n3.js → index-1wMAyuNL.js} +219 -67
- package/dist/client/{index-CSG_JoOA.js → index-B8jGJSTA.js} +62 -56
- package/dist/client/{index-Cu3-13Xg.js → index-BKQQJkhy.js} +167 -61
- package/dist/client/index-D0jUyol8.js +3167 -0
- package/dist/client/{index-CUjl-ZsI.js → index-KGxz5Egv.js} +2 -2
- package/dist/client/mosaic-vHvSuih6.js +459 -0
- package/dist/client/templates.js +251 -121
- package/dist/client/{transition-OHcz5Qq1.js → transition-BkyUsZh_.js} +1 -1
- package/dist/node/cli.js +5 -5
- package/dist/node/types.d.ts +4 -0
- package/dist/types/core/client/composables/DefineEodash.d.ts +1 -1
- package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +57 -25
- package/dist/types/core/client/eodashSTAC/cql.d.ts +15 -0
- package/dist/types/core/client/eodashSTAC/createLayers.d.ts +42 -23
- package/dist/types/core/client/eodashSTAC/helpers.d.ts +118 -19
- package/dist/types/core/client/eodashSTAC/mosaic.d.ts +56 -0
- package/dist/types/core/client/store/stac.d.ts +38 -8
- package/dist/types/core/client/store/states.d.ts +24 -2
- package/dist/types/core/client/types.d.ts +128 -24
- package/dist/types/core/client/utils/states.d.ts +12 -0
- package/dist/types/templates/baseConfig.d.ts +1 -100
- package/dist/types/templates/compare.d.ts +32 -3
- package/dist/types/templates/expert.d.ts +18 -0
- package/dist/types/templates/explore.d.ts +10 -1
- package/dist/types/templates/lite.d.ts +11 -0
- package/dist/types/widgets/EodashChart.vue.d.ts +5 -3
- package/dist/types/widgets/EodashItemCatalog/index.vue.d.ts +129 -2
- package/dist/types/widgets/EodashItemCatalog/methods/filters.d.ts +28 -6
- package/dist/types/widgets/EodashItemCatalog/methods/handlers.d.ts +17 -4
- package/dist/types/widgets/EodashItemCatalog/methods/map.d.ts +16 -4
- package/dist/types/widgets/EodashLayerControl.vue.d.ts +35 -16
- package/dist/types/widgets/EodashMap/EodashMapBtns.vue.d.ts +14 -10
- package/dist/types/widgets/EodashMap/index.vue.d.ts +86 -37
- package/dist/types/widgets/EodashMap/methods/create-layers-config.d.ts +1 -1
- package/dist/types/widgets/EodashMap/methods/index.d.ts +5 -1
- package/dist/types/widgets/EodashMap/methods/use-map-loading.d.ts +1 -0
- package/dist/types/widgets/EodashProcess/index.vue.d.ts +5 -3
- package/dist/types/widgets/EodashProcess/methods/custom-endpoints/layers/eoxhub-workspaces-endpoint.d.ts +1 -1
- package/dist/types/widgets/EodashProcess/states.d.ts +1 -1
- package/dist/types/widgets/EodashStacInfo.vue.d.ts +20 -0
- package/dist/types/widgets/EodashTimeSlider/index.vue.d.ts +20 -0
- package/dist/types/widgets/EodashTimeSlider/methods/index.d.ts +3 -8
- package/dist/types/widgets/EodashTimeSlider/types.d.ts +6 -16
- package/dist/types/widgets/EodashTools.vue.d.ts +5 -5
- package/package.json +34 -34
- package/templates/baseConfig.js +37 -6
- package/templates/compare.js +61 -7
- package/templates/expert.js +24 -2
- package/templates/explore.js +12 -5
- package/templates/lite.js +13 -0
- package/widgets/EodashChart.vue +162 -21
- package/widgets/EodashItemCatalog/index.vue +363 -35
- package/widgets/EodashItemCatalog/methods/filters.js +134 -70
- package/widgets/EodashItemCatalog/methods/handlers.js +113 -19
- package/widgets/EodashItemCatalog/methods/map.js +141 -28
- package/widgets/EodashLayerControl.vue +51 -25
- package/widgets/EodashMap/EodashMapBtns.vue +109 -48
- package/widgets/EodashMap/index.vue +91 -105
- package/widgets/EodashMap/methods/btns.js +64 -31
- package/widgets/EodashMap/methods/create-layers-config.js +16 -16
- package/widgets/EodashMap/methods/index.js +71 -8
- package/widgets/EodashMap/methods/use-map-loading.js +58 -0
- package/widgets/EodashProcess/index.vue +136 -16
- package/widgets/EodashProcess/methods/composables.js +13 -0
- package/widgets/EodashProcess/methods/outputs.js +0 -1
- package/widgets/EodashProcess/methods/utils.js +29 -27
- package/widgets/EodashProcess/states.js +1 -1
- package/widgets/EodashStacInfo.vue +64 -2
- package/widgets/EodashTimeSlider/index.vue +58 -2
- package/widgets/EodashTimeSlider/methods/index.js +5 -48
- package/widgets/EodashTimeSlider/types.ts +7 -17
- package/widgets/ExportState.vue +13 -4
- package/dist/client/EodashChart-CLDqE93C.js +0 -144
- package/dist/client/EodashStacInfo-BQspAHKH.js +0 -107
- package/dist/client/index-5Jhsa8Xe.js +0 -570
package/dist/client/templates.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { mdiViewDashboardVariant, mdiViewDashboard } from '@mdi/js';
|
|
2
|
-
import {
|
|
2
|
+
import { a1 as includesProcess, a2 as shouldShowChartWidget } from './helpers-BFuh19CP.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Special values that tell deepmerge to perform a certain action.
|
|
6
6
|
*/
|
|
7
7
|
const actions = {
|
|
8
|
-
defaultMerge: Symbol("deepmerge-ts: default merge")
|
|
9
|
-
|
|
10
|
-
* Special values that tell deepmergeInto to perform a certain action.
|
|
11
|
-
*/
|
|
12
|
-
const actionsInto = {
|
|
13
|
-
defaultMerge: actions.defaultMerge,
|
|
8
|
+
defaultMerge: Symbol("deepmerge-ts: default merge"),
|
|
9
|
+
skip: Symbol("deepmerge-ts: skip"),
|
|
14
10
|
};
|
|
15
11
|
|
|
16
12
|
/**
|
|
@@ -156,12 +152,12 @@ function isRecord(value) {
|
|
|
156
152
|
}
|
|
157
153
|
|
|
158
154
|
/**
|
|
159
|
-
* The default strategy to merge records
|
|
155
|
+
* The default strategy to merge records.
|
|
160
156
|
*
|
|
161
|
-
* @param
|
|
162
|
-
* @param values - The records (including the target's value if there is one).
|
|
157
|
+
* @param values - The records.
|
|
163
158
|
*/
|
|
164
|
-
function
|
|
159
|
+
function mergeRecords$1(values, utils, meta) {
|
|
160
|
+
const result = {};
|
|
165
161
|
for (const key of getKeys(values)) {
|
|
166
162
|
const propValues = [];
|
|
167
163
|
for (const value of values) {
|
|
@@ -176,202 +172,209 @@ function mergeRecordsInto$1(mut_target, values, utils, meta) {
|
|
|
176
172
|
key,
|
|
177
173
|
parents: values,
|
|
178
174
|
});
|
|
179
|
-
const
|
|
180
|
-
|
|
175
|
+
const propertyResult = mergeUnknowns(propValues, utils, updatedMeta);
|
|
176
|
+
if (propertyResult === actions.skip) {
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
181
179
|
if (key === "__proto__") {
|
|
182
|
-
Object.defineProperty(
|
|
183
|
-
value:
|
|
180
|
+
Object.defineProperty(result, key, {
|
|
181
|
+
value: propertyResult,
|
|
184
182
|
configurable: true,
|
|
185
183
|
enumerable: true,
|
|
186
184
|
writable: true,
|
|
187
185
|
});
|
|
188
186
|
}
|
|
189
187
|
else {
|
|
190
|
-
|
|
188
|
+
result[key] = propertyResult;
|
|
191
189
|
}
|
|
192
190
|
}
|
|
191
|
+
return result;
|
|
193
192
|
}
|
|
194
193
|
/**
|
|
195
|
-
* The default strategy to merge arrays
|
|
194
|
+
* The default strategy to merge arrays.
|
|
196
195
|
*
|
|
197
|
-
* @param
|
|
198
|
-
* @param values - The arrays (including the target's value if there is one).
|
|
196
|
+
* @param values - The arrays.
|
|
199
197
|
*/
|
|
200
|
-
function
|
|
201
|
-
|
|
198
|
+
function mergeArrays$1(values) {
|
|
199
|
+
return values.flat();
|
|
202
200
|
}
|
|
203
201
|
/**
|
|
204
|
-
* The default strategy to merge sets
|
|
202
|
+
* The default strategy to merge sets.
|
|
205
203
|
*
|
|
206
|
-
* @param
|
|
207
|
-
* @param values - The sets (including the target's value if there is one).
|
|
204
|
+
* @param values - The sets.
|
|
208
205
|
*/
|
|
209
|
-
function
|
|
210
|
-
|
|
211
|
-
mut_target.value.add(value);
|
|
212
|
-
}
|
|
206
|
+
function mergeSets$1(values) {
|
|
207
|
+
return new Set(getIterableOfIterables(values));
|
|
213
208
|
}
|
|
214
209
|
/**
|
|
215
|
-
* The default strategy to merge maps
|
|
210
|
+
* The default strategy to merge maps.
|
|
216
211
|
*
|
|
217
|
-
* @param
|
|
218
|
-
* @param values - The maps (including the target's value if there is one).
|
|
212
|
+
* @param values - The maps.
|
|
219
213
|
*/
|
|
220
|
-
function
|
|
221
|
-
|
|
222
|
-
mut_target.value.set(key, value);
|
|
223
|
-
}
|
|
214
|
+
function mergeMaps$1(values) {
|
|
215
|
+
return new Map(getIterableOfIterables(values));
|
|
224
216
|
}
|
|
225
217
|
/**
|
|
226
|
-
*
|
|
218
|
+
* Get the last value in the given array.
|
|
227
219
|
*/
|
|
228
|
-
function
|
|
229
|
-
|
|
220
|
+
function mergeOthers$1(values) {
|
|
221
|
+
return values.at(-1);
|
|
230
222
|
}
|
|
231
223
|
/**
|
|
232
224
|
* The merge functions.
|
|
233
225
|
*/
|
|
234
|
-
const
|
|
235
|
-
mergeRecords:
|
|
236
|
-
mergeArrays:
|
|
237
|
-
mergeSets:
|
|
238
|
-
mergeMaps:
|
|
239
|
-
mergeOthers:
|
|
226
|
+
const mergeFunctions = {
|
|
227
|
+
mergeRecords: mergeRecords$1,
|
|
228
|
+
mergeArrays: mergeArrays$1,
|
|
229
|
+
mergeSets: mergeSets$1,
|
|
230
|
+
mergeMaps: mergeMaps$1,
|
|
231
|
+
mergeOthers: mergeOthers$1,
|
|
240
232
|
};
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
return void deepmergeIntoCustom({})(target, ...objects);
|
|
244
|
-
}
|
|
245
|
-
function deepmergeIntoCustom(options, rootMetaData) {
|
|
246
|
-
const utils = getIntoUtils(options, customizedDeepmergeInto);
|
|
233
|
+
function deepmergeCustom(options, rootMetaData) {
|
|
234
|
+
const utils = getUtils(options, customizedDeepmerge);
|
|
247
235
|
/**
|
|
248
236
|
* The customized deepmerge function.
|
|
249
237
|
*/
|
|
250
|
-
function
|
|
251
|
-
|
|
238
|
+
function customizedDeepmerge(...objects) {
|
|
239
|
+
return mergeUnknowns(objects, utils, rootMetaData);
|
|
252
240
|
}
|
|
253
|
-
return
|
|
241
|
+
return customizedDeepmerge;
|
|
254
242
|
}
|
|
255
243
|
/**
|
|
256
244
|
* The the utils that are available to the merge functions.
|
|
257
245
|
*
|
|
258
246
|
* @param options - The options the user specified
|
|
259
247
|
*/
|
|
260
|
-
function
|
|
248
|
+
function getUtils(options, customizedDeepmerge) {
|
|
261
249
|
return {
|
|
262
|
-
defaultMergeFunctions:
|
|
250
|
+
defaultMergeFunctions: mergeFunctions,
|
|
263
251
|
mergeFunctions: {
|
|
264
|
-
...
|
|
252
|
+
...mergeFunctions,
|
|
265
253
|
...Object.fromEntries(Object.entries(options)
|
|
266
|
-
.filter(([key, option]) => Object.hasOwn(
|
|
267
|
-
.map(([key, option]) => (option === false ? [key,
|
|
254
|
+
.filter(([key, option]) => Object.hasOwn(mergeFunctions, key))
|
|
255
|
+
.map(([key, option]) => (option === false ? [key, mergeFunctions.mergeOthers] : [key, option]))),
|
|
268
256
|
},
|
|
269
257
|
metaDataUpdater: (options.metaDataUpdater ?? defaultMetaDataUpdater),
|
|
270
|
-
|
|
258
|
+
deepmerge: customizedDeepmerge,
|
|
259
|
+
useImplicitDefaultMerging: options.enableImplicitDefaultMerging ?? false,
|
|
271
260
|
filterValues: options.filterValues === false ? undefined : (options.filterValues ?? defaultFilterValues),
|
|
272
|
-
actions
|
|
261
|
+
actions,
|
|
273
262
|
};
|
|
274
263
|
}
|
|
275
264
|
/**
|
|
276
|
-
* Merge unknown things
|
|
265
|
+
* Merge unknown things.
|
|
277
266
|
*
|
|
278
|
-
* @param mut_target - The target to merge into.
|
|
279
267
|
* @param values - The values.
|
|
280
268
|
*/
|
|
281
|
-
function
|
|
269
|
+
function mergeUnknowns(values, utils, meta) {
|
|
282
270
|
const filteredValues = utils.filterValues?.(values, meta) ?? values;
|
|
283
271
|
if (filteredValues.length === 0) {
|
|
284
|
-
return;
|
|
272
|
+
return undefined;
|
|
285
273
|
}
|
|
286
274
|
if (filteredValues.length === 1) {
|
|
287
|
-
return
|
|
275
|
+
return mergeOthers(filteredValues, utils, meta);
|
|
288
276
|
}
|
|
289
|
-
const type = getObjectType(
|
|
277
|
+
const type = getObjectType(filteredValues[0]);
|
|
290
278
|
if (type !== 0 /* ObjectType.NOT */ && type !== 5 /* ObjectType.OTHER */) {
|
|
291
279
|
for (let mut_index = 1; mut_index < filteredValues.length; mut_index++) {
|
|
292
280
|
if (getObjectType(filteredValues[mut_index]) === type) {
|
|
293
281
|
continue;
|
|
294
282
|
}
|
|
295
|
-
return
|
|
283
|
+
return mergeOthers(filteredValues, utils, meta);
|
|
296
284
|
}
|
|
297
285
|
}
|
|
298
286
|
switch (type) {
|
|
299
287
|
case 1 /* ObjectType.RECORD */: {
|
|
300
|
-
return
|
|
288
|
+
return mergeRecords(filteredValues, utils, meta);
|
|
301
289
|
}
|
|
302
290
|
case 2 /* ObjectType.ARRAY */: {
|
|
303
|
-
return
|
|
291
|
+
return mergeArrays(filteredValues, utils, meta);
|
|
304
292
|
}
|
|
305
293
|
case 3 /* ObjectType.SET */: {
|
|
306
|
-
return
|
|
294
|
+
return mergeSets(filteredValues, utils, meta);
|
|
307
295
|
}
|
|
308
296
|
case 4 /* ObjectType.MAP */: {
|
|
309
|
-
return
|
|
297
|
+
return mergeMaps(filteredValues, utils, meta);
|
|
310
298
|
}
|
|
311
299
|
default: {
|
|
312
|
-
return
|
|
300
|
+
return mergeOthers(filteredValues, utils, meta);
|
|
313
301
|
}
|
|
314
302
|
}
|
|
315
303
|
}
|
|
316
304
|
/**
|
|
317
|
-
* Merge records
|
|
305
|
+
* Merge records.
|
|
318
306
|
*
|
|
319
|
-
* @param mut_target - The target to merge into.
|
|
320
307
|
* @param values - The records.
|
|
321
308
|
*/
|
|
322
|
-
function
|
|
323
|
-
const
|
|
324
|
-
if (
|
|
325
|
-
utils.
|
|
309
|
+
function mergeRecords(values, utils, meta) {
|
|
310
|
+
const result = utils.mergeFunctions.mergeRecords(values, utils, meta);
|
|
311
|
+
if (result === actions.defaultMerge ||
|
|
312
|
+
(utils.useImplicitDefaultMerging &&
|
|
313
|
+
result === undefined &&
|
|
314
|
+
utils.mergeFunctions.mergeRecords !== utils.defaultMergeFunctions.mergeRecords)) {
|
|
315
|
+
return utils.defaultMergeFunctions.mergeRecords(values, utils, meta);
|
|
326
316
|
}
|
|
317
|
+
return result;
|
|
327
318
|
}
|
|
328
319
|
/**
|
|
329
|
-
* Merge arrays
|
|
320
|
+
* Merge arrays.
|
|
330
321
|
*
|
|
331
|
-
* @param mut_target - The target to merge into.
|
|
332
322
|
* @param values - The arrays.
|
|
333
323
|
*/
|
|
334
|
-
function
|
|
335
|
-
const
|
|
336
|
-
if (
|
|
337
|
-
utils.
|
|
324
|
+
function mergeArrays(values, utils, meta) {
|
|
325
|
+
const result = utils.mergeFunctions.mergeArrays(values, utils, meta);
|
|
326
|
+
if (result === actions.defaultMerge ||
|
|
327
|
+
(utils.useImplicitDefaultMerging &&
|
|
328
|
+
result === undefined &&
|
|
329
|
+
utils.mergeFunctions.mergeArrays !== utils.defaultMergeFunctions.mergeArrays)) {
|
|
330
|
+
return utils.defaultMergeFunctions.mergeArrays(values);
|
|
338
331
|
}
|
|
332
|
+
return result;
|
|
339
333
|
}
|
|
340
334
|
/**
|
|
341
|
-
* Merge sets
|
|
335
|
+
* Merge sets.
|
|
342
336
|
*
|
|
343
|
-
* @param mut_target - The target to merge into.
|
|
344
337
|
* @param values - The sets.
|
|
345
338
|
*/
|
|
346
|
-
function
|
|
347
|
-
const
|
|
348
|
-
if (
|
|
349
|
-
utils.
|
|
339
|
+
function mergeSets(values, utils, meta) {
|
|
340
|
+
const result = utils.mergeFunctions.mergeSets(values, utils, meta);
|
|
341
|
+
if (result === actions.defaultMerge ||
|
|
342
|
+
(utils.useImplicitDefaultMerging &&
|
|
343
|
+
result === undefined &&
|
|
344
|
+
utils.mergeFunctions.mergeSets !== utils.defaultMergeFunctions.mergeSets)) {
|
|
345
|
+
return utils.defaultMergeFunctions.mergeSets(values);
|
|
350
346
|
}
|
|
347
|
+
return result;
|
|
351
348
|
}
|
|
352
349
|
/**
|
|
353
|
-
* Merge maps
|
|
350
|
+
* Merge maps.
|
|
354
351
|
*
|
|
355
|
-
* @param mut_target - The target to merge into.
|
|
356
352
|
* @param values - The maps.
|
|
357
353
|
*/
|
|
358
|
-
function
|
|
359
|
-
const
|
|
360
|
-
if (
|
|
361
|
-
utils.
|
|
354
|
+
function mergeMaps(values, utils, meta) {
|
|
355
|
+
const result = utils.mergeFunctions.mergeMaps(values, utils, meta);
|
|
356
|
+
if (result === actions.defaultMerge ||
|
|
357
|
+
(utils.useImplicitDefaultMerging &&
|
|
358
|
+
result === undefined &&
|
|
359
|
+
utils.mergeFunctions.mergeMaps !== utils.defaultMergeFunctions.mergeMaps)) {
|
|
360
|
+
return utils.defaultMergeFunctions.mergeMaps(values);
|
|
362
361
|
}
|
|
362
|
+
return result;
|
|
363
363
|
}
|
|
364
364
|
/**
|
|
365
|
-
* Merge other things
|
|
365
|
+
* Merge other things.
|
|
366
366
|
*
|
|
367
|
-
* @param mut_target - The target to merge into.
|
|
368
367
|
* @param values - The other things.
|
|
369
368
|
*/
|
|
370
|
-
function
|
|
371
|
-
const
|
|
372
|
-
if (
|
|
373
|
-
utils.
|
|
369
|
+
function mergeOthers(values, utils, meta) {
|
|
370
|
+
const result = utils.mergeFunctions.mergeOthers(values, utils, meta);
|
|
371
|
+
if (result === actions.defaultMerge ||
|
|
372
|
+
(utils.useImplicitDefaultMerging &&
|
|
373
|
+
result === undefined &&
|
|
374
|
+
utils.mergeFunctions.mergeOthers !== utils.defaultMergeFunctions.mergeOthers)) {
|
|
375
|
+
return utils.defaultMergeFunctions.mergeOthers(values);
|
|
374
376
|
}
|
|
377
|
+
return result;
|
|
375
378
|
}
|
|
376
379
|
|
|
377
380
|
/** @type {import("@/types").Template} */
|
|
@@ -398,6 +401,19 @@ const lite = {
|
|
|
398
401
|
widget: {
|
|
399
402
|
name: "EodashMap",
|
|
400
403
|
properties: {
|
|
404
|
+
baseLayers: [
|
|
405
|
+
{
|
|
406
|
+
type: "Tile",
|
|
407
|
+
properties: {
|
|
408
|
+
id: "terrain-light;:;EPSG:3857",
|
|
409
|
+
title: "Terrain Light",
|
|
410
|
+
},
|
|
411
|
+
source: {
|
|
412
|
+
type: "XYZ",
|
|
413
|
+
url: "https://s2maps-tiles.eu/wmts/1.0.0/terrain-light_3857/default/g/{z}/{y}/{x}.jpeg",
|
|
414
|
+
},
|
|
415
|
+
},
|
|
416
|
+
],
|
|
401
417
|
enableCompare: true,
|
|
402
418
|
enableCursorCoordinates: false,
|
|
403
419
|
enableScaleLine: false,
|
|
@@ -535,6 +551,28 @@ const expert = {
|
|
|
535
551
|
widget: {
|
|
536
552
|
name: "EodashMap",
|
|
537
553
|
properties: {
|
|
554
|
+
baseLayers: [
|
|
555
|
+
{
|
|
556
|
+
type: "Group",
|
|
557
|
+
properties: {
|
|
558
|
+
id: "BaseLayersGroup",
|
|
559
|
+
title: "Base Layers",
|
|
560
|
+
},
|
|
561
|
+
layers: [
|
|
562
|
+
{
|
|
563
|
+
type: "Tile",
|
|
564
|
+
properties: {
|
|
565
|
+
id: "terrain-light;:;EPSG:3857",
|
|
566
|
+
title: "Terrain Light",
|
|
567
|
+
},
|
|
568
|
+
source: {
|
|
569
|
+
type: "XYZ",
|
|
570
|
+
url: "https://s2maps-tiles.eu/wmts/1.0.0/terrain-light_3857/default/g/{z}/{y}/{x}.jpeg",
|
|
571
|
+
},
|
|
572
|
+
},
|
|
573
|
+
],
|
|
574
|
+
},
|
|
575
|
+
],
|
|
538
576
|
enableCompare: true,
|
|
539
577
|
zoomToExtent: true,
|
|
540
578
|
btns: {
|
|
@@ -584,7 +622,7 @@ const expert = {
|
|
|
584
622
|
id: "Layercontrol",
|
|
585
623
|
type: "internal",
|
|
586
624
|
title: "Layers",
|
|
587
|
-
layout: { x: 0, y: 1, w: "3/3/2", h:
|
|
625
|
+
layout: { x: 0, y: 1, w: "3/3/2", h: 10 },
|
|
588
626
|
widget: {
|
|
589
627
|
name: "EodashLayerControl",
|
|
590
628
|
properties: {
|
|
@@ -635,7 +673,7 @@ const expert = {
|
|
|
635
673
|
id: "Processes",
|
|
636
674
|
type: "internal",
|
|
637
675
|
title: "Processes",
|
|
638
|
-
layout: { x: "9/9/10", y: 6, w: "3/3/2", h:
|
|
676
|
+
layout: { x: "9/9/10", y: 6, w: "3/3/2", h: 6 },
|
|
639
677
|
widget: {
|
|
640
678
|
name: "EodashProcess",
|
|
641
679
|
},
|
|
@@ -681,6 +719,28 @@ const compare = {
|
|
|
681
719
|
name: "EodashMap",
|
|
682
720
|
properties: {
|
|
683
721
|
enableCompare: true,
|
|
722
|
+
baseLayers: [
|
|
723
|
+
{
|
|
724
|
+
type: "Group",
|
|
725
|
+
properties: {
|
|
726
|
+
id: "BaseLayersGroup",
|
|
727
|
+
title: "Base Layers",
|
|
728
|
+
},
|
|
729
|
+
layers: [
|
|
730
|
+
{
|
|
731
|
+
type: "Tile",
|
|
732
|
+
properties: {
|
|
733
|
+
id: "terrain-light;:;EPSG:3857",
|
|
734
|
+
title: "Terrain Light",
|
|
735
|
+
},
|
|
736
|
+
source: {
|
|
737
|
+
type: "XYZ",
|
|
738
|
+
url: "https://s2maps-tiles.eu/wmts/1.0.0/terrain-light_3857/default/g/{z}/{y}/{x}.jpeg",
|
|
739
|
+
},
|
|
740
|
+
},
|
|
741
|
+
],
|
|
742
|
+
},
|
|
743
|
+
],
|
|
684
744
|
},
|
|
685
745
|
},
|
|
686
746
|
},
|
|
@@ -774,6 +834,26 @@ const compare = {
|
|
|
774
834
|
},
|
|
775
835
|
},
|
|
776
836
|
},
|
|
837
|
+
// {
|
|
838
|
+
// defineWidget: (selectedSTAC) => {
|
|
839
|
+
// return selectedSTAC
|
|
840
|
+
// ? {
|
|
841
|
+
// id: "expert-Datepicker",
|
|
842
|
+
// type: "internal",
|
|
843
|
+
// layout: { x: 4, y: 7, w: 4, h: 5 },
|
|
844
|
+
// title: "Date",
|
|
845
|
+
// widget: {
|
|
846
|
+
// name: "EodashDatePicker",
|
|
847
|
+
// properties: {
|
|
848
|
+
// hintText: `<b>Hint:</b> closest available date is displayed <br />
|
|
849
|
+
// on map (see Analysis Layers)`,
|
|
850
|
+
// toggleCalendar: true,
|
|
851
|
+
// },
|
|
852
|
+
// },
|
|
853
|
+
// }
|
|
854
|
+
// : null;
|
|
855
|
+
// },
|
|
856
|
+
// },
|
|
777
857
|
{
|
|
778
858
|
defineWidget: () =>
|
|
779
859
|
shouldShowChartWidget() && {
|
|
@@ -805,16 +885,28 @@ const compare = {
|
|
|
805
885
|
defineWidget: (selectedSTAC) => {
|
|
806
886
|
return selectedSTAC
|
|
807
887
|
? {
|
|
808
|
-
id: "expert-
|
|
888
|
+
id: "expert-datetime",
|
|
809
889
|
type: "internal",
|
|
810
|
-
layout: { x:
|
|
811
|
-
title: "
|
|
890
|
+
layout: { x: 1, y: 8, w: 8, h: 3 },
|
|
891
|
+
title: "Time Slider",
|
|
812
892
|
widget: {
|
|
813
|
-
name: "
|
|
893
|
+
name: "EodashTimeSlider",
|
|
814
894
|
properties: {
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
895
|
+
filters: [
|
|
896
|
+
{
|
|
897
|
+
key: "eo:cloud_cover",
|
|
898
|
+
title: "Cloud Coverage %",
|
|
899
|
+
type: "range",
|
|
900
|
+
expanded: true,
|
|
901
|
+
min: 0,
|
|
902
|
+
max: 100,
|
|
903
|
+
step: 5,
|
|
904
|
+
state: {
|
|
905
|
+
min: 0,
|
|
906
|
+
max: 100,
|
|
907
|
+
},
|
|
908
|
+
},
|
|
909
|
+
],
|
|
818
910
|
},
|
|
819
911
|
},
|
|
820
912
|
}
|
|
@@ -824,7 +916,6 @@ const compare = {
|
|
|
824
916
|
],
|
|
825
917
|
};
|
|
826
918
|
|
|
827
|
-
// import { includesProcess } from "@/store/actions";
|
|
828
919
|
/** @type {import("@/types").Template} */
|
|
829
920
|
const explore = {
|
|
830
921
|
gap: 16,
|
|
@@ -849,28 +940,32 @@ const explore = {
|
|
|
849
940
|
widget: {
|
|
850
941
|
name: "EodashMap",
|
|
851
942
|
properties: {
|
|
943
|
+
zoomToExtent: false,
|
|
852
944
|
enableCompare: true,
|
|
853
945
|
btns: {
|
|
854
946
|
enableZoom: true,
|
|
855
947
|
enableExportMap: true,
|
|
856
948
|
enableChangeProjection: true,
|
|
949
|
+
enableMosaic: false,
|
|
857
950
|
enableCompareIndicators: {
|
|
858
951
|
fallbackTemplate: "explore",
|
|
952
|
+
compareTemplate: "compare",
|
|
859
953
|
itemFilterConfig: {
|
|
860
954
|
imageProperty: "assets.thumbnail.href",
|
|
861
955
|
},
|
|
862
956
|
},
|
|
863
|
-
|
|
957
|
+
enableBackToPOIs: false,
|
|
958
|
+
enableSearch: false,
|
|
864
959
|
},
|
|
865
960
|
},
|
|
866
961
|
},
|
|
867
962
|
},
|
|
868
963
|
widgets: [
|
|
869
964
|
{
|
|
870
|
-
id: "
|
|
965
|
+
id: "explore-layercontrol",
|
|
871
966
|
type: "internal",
|
|
872
967
|
title: "Layers",
|
|
873
|
-
layout: { x: "9/9/10", y: 0, w: "3/3/2", h:
|
|
968
|
+
layout: { x: "9/9/10", y: 0, w: "3/3/2", h: 11 },
|
|
874
969
|
widget: {
|
|
875
970
|
name: "EodashLayerControl",
|
|
876
971
|
},
|
|
@@ -879,9 +974,13 @@ const explore = {
|
|
|
879
974
|
id: "ItemCatalog",
|
|
880
975
|
title: "Catalog",
|
|
881
976
|
type: "internal",
|
|
882
|
-
layout: { x: 0, y: 0, w: "3/3/2", h:
|
|
977
|
+
layout: { x: 0, y: 0, w: "3/3/2", h: 11 },
|
|
883
978
|
widget: {
|
|
884
979
|
name: "EodashItemCatalog",
|
|
980
|
+
properties: {
|
|
981
|
+
layoutTarget: undefined,
|
|
982
|
+
hoverProperties: ["datetime", "eo:cloud_cover"],
|
|
983
|
+
},
|
|
885
984
|
},
|
|
886
985
|
},
|
|
887
986
|
],
|
|
@@ -896,12 +995,15 @@ const baseConfig = {
|
|
|
896
995
|
stacEndpoint: {
|
|
897
996
|
endpoint:
|
|
898
997
|
"https://esa-eodashboards.github.io/eodashboard-catalog/trilateral/catalog.json",
|
|
998
|
+
// "https://GTIF-Austria.github.io/public-catalog/pr-preview/pr-119/GTIF-Austria/catalog.json",
|
|
899
999
|
// "https://api.explorer.eopf.copernicus.eu/stac",
|
|
900
1000
|
// api: true,
|
|
901
1001
|
supportedUpscalingEndpoints: [
|
|
902
|
-
"openveda.cloud",
|
|
903
|
-
"api.explorer.eopf.copernicus.eu",
|
|
1002
|
+
{ url: "openveda.cloud", titilerVersion: 1 },
|
|
1003
|
+
{ url: "api.explorer.eopf.copernicus.eu", titilerVersion: 2 },
|
|
904
1004
|
],
|
|
1005
|
+
colormapRegistry:
|
|
1006
|
+
"https://raw.githubusercontent.com/eurodatacube/eodash-assets/refs/heads/main/defaults/colormaps.json",
|
|
905
1007
|
},
|
|
906
1008
|
brand: {
|
|
907
1009
|
noLayout: true,
|
|
@@ -949,13 +1051,41 @@ const baseConfig = {
|
|
|
949
1051
|
},
|
|
950
1052
|
};
|
|
951
1053
|
|
|
1054
|
+
/**
|
|
1055
|
+
* Arrays are replacement semantics (user array wins, not concat).
|
|
1056
|
+
* mergeArrays:false ensures e.g. widgets/collectionsPalette/supportedUpscalingEndpoints
|
|
1057
|
+
* supplied by the caller fully replace the base arrays.
|
|
1058
|
+
*/
|
|
1059
|
+
const deepmerge = deepmergeCustom({ mergeArrays: false });
|
|
1060
|
+
|
|
952
1061
|
/**
|
|
953
1062
|
* @param {import("vega-lite").DeepPartial<import("@/types").Eodash>} config
|
|
1063
|
+
* @return {import("@/types").Eodash}
|
|
954
1064
|
*/
|
|
955
1065
|
const getBaseConfig = (config) => {
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
1066
|
+
return /** @type {import("@/types").Eodash} */ (
|
|
1067
|
+
deepmerge(cloneConfig(baseConfig), config || {})
|
|
1068
|
+
);
|
|
959
1069
|
};
|
|
960
1070
|
|
|
1071
|
+
/**
|
|
1072
|
+
* Shallow-safe deep clone that preserves functions and Symbols as references
|
|
1073
|
+
* (they are intentionally shared; template functions and Symbol IDs are
|
|
1074
|
+
* not mutable data). Only plain objects and arrays are cloned.
|
|
1075
|
+
*
|
|
1076
|
+
* @param {unknown} val
|
|
1077
|
+
* @returns {unknown}
|
|
1078
|
+
*/
|
|
1079
|
+
function cloneConfig(val) {
|
|
1080
|
+
if (val === null || typeof val !== "object") return val;
|
|
1081
|
+
if (Array.isArray(val)) return val.map(cloneConfig);
|
|
1082
|
+
if (typeof val === "function") return val;
|
|
1083
|
+
/** @type {Record<string, unknown>} */
|
|
1084
|
+
const out = {};
|
|
1085
|
+
for (const key of Object.keys(val)) {
|
|
1086
|
+
out[key] = cloneConfig(/** @type {Record<string, unknown>} */ (val)[key]);
|
|
1087
|
+
}
|
|
1088
|
+
return out;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
961
1091
|
export { compare, getBaseConfig as default, expert, explore, getBaseConfig, lite };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mergeProps, h, TransitionGroup, Transition } from 'vue';
|
|
2
|
-
import { p as propsFactory,
|
|
2
|
+
import { p as propsFactory, ag as isObject, aQ as onlyDefinedProps } from './asWebComponent-IZanwL-A.js';
|
|
3
3
|
|
|
4
4
|
// Utilities
|
|
5
5
|
const makeTransitionProps = propsFactory({
|