@eodash/eodash 5.6.1 → 5.7.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.
- package/core/client/components/DashboardLayout.vue +1 -1
- 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/composables/index.js +6 -2
- package/core/client/eodashSTAC/EodashCollection.js +79 -45
- package/core/client/eodashSTAC/cql.js +64 -0
- package/core/client/eodashSTAC/createLayers.js +192 -125
- package/core/client/eodashSTAC/helpers.js +423 -97
- package/core/client/eodashSTAC/mosaic.js +416 -0
- package/core/client/plugins/axios.js +31 -1
- package/core/client/store/actions.js +1 -1
- package/core/client/store/stac.js +25 -4
- package/core/client/store/states.js +20 -2
- package/core/client/types.ts +155 -29
- package/core/client/utils/bands-editor/exampleSchema.json +50 -50
- package/core/client/utils/index.js +4 -0
- package/core/client/utils/states.js +10 -0
- package/dist/client/{DashboardLayout-CqMb7OXc.js → DashboardLayout-ePbdvUTE.js} +5 -5
- package/dist/client/{DynamicWebComponent-DqKqTf7l.js → DynamicWebComponent-g5SdRbjY.js} +1 -1
- package/dist/client/{EodashChart-PkUQfH0k.js → EodashChart-ChrkA5oS.js} +7 -6
- package/dist/client/{EodashDatePicker-DLJGdTtX.js → EodashDatePicker-CY1TrsDo.js} +3 -3
- package/dist/client/{EodashItemFilter-Dk8KjFcX.js → EodashItemFilter-DzshHDlS.js} +2 -1
- package/dist/client/{EodashLayerControl-CC1Cogrn.js → EodashLayerControl-DMCeMkSd.js} +70 -22
- package/dist/client/{EodashLayoutSwitcher-5WZYd6rr.js → EodashLayoutSwitcher-iJ8mX1rF.js} +3 -3
- package/dist/client/EodashMapBtns-C7Cr7q5Y.js +592 -0
- package/dist/client/EodashStacInfo-K7-iuXa7.js +169 -0
- package/dist/client/{EodashTools-CGZtTh45.js → EodashTools-BEK7e7JM.js} +4 -4
- package/dist/client/{ExportState-Ce0ZnrX_.js → ExportState-CqIzfMYQ.js} +6 -168
- package/dist/client/{Footer-CnZqEiop.js → Footer-1P0cmBOZ.js} +1 -1
- package/dist/client/{Header-Dr5PBIm8.js → Header-CkkBaBNh.js} +2 -2
- package/dist/client/MobileLayout-BPf49kDU.js +118 -0
- package/dist/client/{PopUp-DjvE_71e.js → PopUp-DPZq5SWI.js} +4 -168
- package/dist/client/{ProcessList-kf3olI7W.js → ProcessList-DuI6WpS1.js} +5 -5
- package/dist/client/VDivider-Bj9LG_JV.js +168 -0
- package/dist/client/{VImg-Bj6uWt6j.js → VImg-Ddv5OyMz.js} +2 -2
- package/dist/client/{VMain-Cm0UmKGi.js → VMain-7yqk_qC3.js} +1 -1
- package/dist/client/{VTooltip-DbBu-ky3.js → VTooltip-2hAJyEoa.js} +2 -2
- package/dist/client/{WidgetsContainer-CfLnd44U.js → WidgetsContainer-2DOrlwCB.js} +1 -1
- package/dist/client/{asWebComponent-DfULAbpq.js → asWebComponent-BlFN2lkB.js} +493 -335
- package/dist/client/{async-CIbKXEEe.js → async-B2H8ZwUK.js} +21 -10
- package/dist/client/create-layers-config-u_vn5hPk.js +182 -0
- package/dist/client/dialog-transition-BrMkMiNa.js +170 -0
- package/dist/client/eo-dash.js +1 -1
- package/dist/client/{forwardRefs-yj3VWOK5.js → forwardRefs-DAlror6d.js} +8 -87
- package/dist/client/{handling-s8xt2JwF.js → handling-B6I1V5eG.js} +123 -85
- package/dist/client/{helpers-DAVGYl_f.js → helpers-CBqIUSXJ.js} +3034 -1649
- package/dist/client/index-BWq1ZKaV.js +3168 -0
- package/dist/client/{index-CYz6dT7K.js → index-CJ9UI3ln.js} +2 -2
- package/dist/client/index-DXLz4sFR.js +442 -0
- package/dist/client/{index-4TrjfJ32.js → index-DhKU6KqM.js} +230 -231
- package/dist/client/{index-Bu8BMA9q.js → index-DjQlbWbJ.js} +70 -83
- package/dist/client/material-symbols-outlined.woff2 +0 -0
- package/dist/client/material-symbols-rounded.woff2 +0 -0
- package/dist/client/material-symbols-sharp.woff2 +0 -0
- package/dist/client/material-symbols-subset.woff2 +0 -0
- package/dist/client/mosaic-BFYLEwyx.js +455 -0
- package/dist/client/templates.js +250 -119
- package/dist/client/{transition-DaOsiD4u.js → transition-D_W6Wn9v.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/composables/index.d.ts +1 -3
- package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +62 -31
- package/dist/types/core/client/eodashSTAC/cql.d.ts +15 -0
- package/dist/types/core/client/eodashSTAC/createLayers.d.ts +44 -25
- package/dist/types/core/client/eodashSTAC/helpers.d.ts +78 -18
- package/dist/types/core/client/eodashSTAC/mosaic.d.ts +56 -0
- package/dist/types/core/client/store/stac.d.ts +31 -7
- package/dist/types/core/client/store/states.d.ts +24 -2
- package/dist/types/core/client/types.d.ts +131 -25
- package/dist/types/core/client/utils/states.d.ts +12 -0
- package/dist/types/templates/baseConfig.d.ts +1 -88
- 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 +9 -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 +36 -17
- package/dist/types/widgets/EodashMap/EodashMapBtns.vue.d.ts +23 -10
- package/dist/types/widgets/EodashMap/index.vue.d.ts +91 -35
- package/dist/types/widgets/EodashMap/methods/create-layers-config.d.ts +1 -8
- 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/composables.d.ts +1 -1
- package/dist/types/widgets/EodashProcess/methods/handling.d.ts +13 -8
- 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 +54 -0
- package/dist/types/widgets/EodashTimeSlider/methods/index.d.ts +34 -0
- package/dist/types/widgets/EodashTimeSlider/types.d.ts +52 -0
- package/dist/types/widgets/EodashTools.vue.d.ts +5 -5
- package/package.json +46 -46
- package/templates/baseConfig.js +36 -6
- package/templates/compare.js +62 -7
- package/templates/expert.js +23 -0
- package/templates/explore.js +11 -5
- package/templates/lite.js +14 -0
- package/widgets/EodashChart.vue +1 -0
- 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 +142 -28
- package/widgets/EodashLayerControl.vue +64 -14
- package/widgets/EodashMap/EodashMapBtns.vue +153 -47
- package/widgets/EodashMap/index.vue +101 -105
- package/widgets/EodashMap/methods/btns.js +37 -5
- package/widgets/EodashMap/methods/create-layers-config.js +18 -16
- package/widgets/EodashMap/methods/index.js +89 -8
- package/widgets/EodashMap/methods/use-map-loading.js +52 -0
- package/widgets/EodashProcess/index.vue +2 -1
- package/widgets/EodashProcess/methods/async.js +19 -8
- package/widgets/EodashProcess/methods/composables.js +63 -77
- package/widgets/EodashProcess/methods/custom-endpoints/chart/sentinelhub-endpoint.js +9 -5
- package/widgets/EodashProcess/methods/custom-endpoints/chart/veda-endpoint.js +7 -4
- package/widgets/EodashProcess/methods/handling.js +105 -72
- package/widgets/EodashProcess/states.js +1 -1
- package/widgets/EodashStacInfo.vue +64 -2
- package/widgets/EodashTimeSlider/index.vue +208 -0
- package/widgets/EodashTimeSlider/methods/index.js +236 -0
- package/widgets/EodashTimeSlider/types.ts +54 -0
- package/dist/client/EodashMapBtns-BHrSDNoC.js +0 -435
- package/dist/client/EodashStacInfo-B90wobPc.js +0 -107
- package/dist/client/EodashTimeSlider-5vm7F3ju.js +0 -53
- package/dist/client/MobileLayout-DyMjaeif.js +0 -118
- package/dist/client/index-CugS__t5.js +0 -570
- package/dist/types/widgets/EodashTimeSlider.vue.d.ts +0 -15
- package/widgets/EodashTimeSlider.vue +0 -40
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { withAsyncContext, computed, ref, openBlock, createElementBlock, mergeProps, unref,
|
|
1
|
+
import { withAsyncContext, computed, ref, watch, openBlock, createElementBlock, mergeProps, unref, createElementVNode, toDisplayString, createCommentVNode, createBlock } from 'vue';
|
|
2
2
|
import 'color-legend-element';
|
|
3
3
|
import '@eox/timecontrol';
|
|
4
|
-
import {
|
|
5
|
-
import { _ as _export_sfc, H as useSTAcStore, P as layerControlFormValueCompare, Q as layerControlFormValue, M as eodashCompareCollections, L as eodashCollections } from './asWebComponent-DfULAbpq.js';
|
|
4
|
+
import { a1 as mapCompareEl, n as mapEl, a2 as updateGeoZarrBands, a3 as layerControlFormValueCompare, a4 as layerControlFormValue, a5 as getColFromLayer, P as eodashCompareCollections, S as eodashCollections } from './helpers-CBqIUSXJ.js';
|
|
6
5
|
import { storeToRefs } from 'pinia';
|
|
6
|
+
import { _ as _export_sfc, H as useSTAcStore, aa as useEmitLayersUpdate } from './asWebComponent-BlFN2lkB.js';
|
|
7
|
+
import _sfc_main$1 from './EodashLayoutSwitcher-iJ8mX1rF.js';
|
|
8
|
+
import { mdiViewDashboard } from '@mdi/js';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Taken from jQuery 2.1.3
|
|
@@ -1367,35 +1369,53 @@ const bandsEditorInterface = [
|
|
|
1367
1369
|
},
|
|
1368
1370
|
];
|
|
1369
1371
|
|
|
1370
|
-
const _style_0 = "eox-layercontrol[data-v-
|
|
1372
|
+
const _style_0 = "eox-layercontrol[data-v-2e9372f7]{overflow:auto}";
|
|
1371
1373
|
|
|
1372
1374
|
const _hoisted_1 = { class: "d-flex flex-column" };
|
|
1373
1375
|
const _hoisted_2 = ["for", ".customEditorInterfaces"];
|
|
1374
1376
|
const _hoisted_3 = {
|
|
1375
|
-
|
|
1376
|
-
class: "
|
|
1377
|
+
slot: "layerstitle",
|
|
1378
|
+
class: "d-flex justify-space-between ma-2 pa-2 flex-shrink-0"
|
|
1377
1379
|
};
|
|
1380
|
+
const _hoisted_4 = { key: 0 };
|
|
1378
1381
|
|
|
1379
1382
|
|
|
1380
1383
|
const _sfc_main = {
|
|
1381
1384
|
__name: 'EodashLayerControl',
|
|
1382
1385
|
props: {
|
|
1386
|
+
/** Which map instance this control is bound to. Use `"second"` in a compare-mode layout. */
|
|
1383
1387
|
map: {
|
|
1384
1388
|
/** @type {import("vue").PropType<"first" | "second">} */
|
|
1385
1389
|
//@ts-expect-error todo
|
|
1386
1390
|
type: String,
|
|
1387
1391
|
default: "first",
|
|
1388
1392
|
},
|
|
1393
|
+
/** Tool tabs shown inside `eox-layercontrol`. Remove entries to hide individual tabs. */
|
|
1389
1394
|
tools: {
|
|
1390
|
-
type: Array,
|
|
1395
|
+
type: /** @type {import("vue").PropType<string[]>} */ (Array),
|
|
1391
1396
|
default: () => ["datetime", "info", "config", "legend", "opacity"],
|
|
1392
1397
|
},
|
|
1398
|
+
/** Heading rendered above the layer list. Set to `false` to hide it. */
|
|
1393
1399
|
title: {
|
|
1394
|
-
type:
|
|
1400
|
+
type: /** @type {import("vue").PropType<string | false>} */ ([
|
|
1401
|
+
String,
|
|
1402
|
+
Boolean,
|
|
1403
|
+
]),
|
|
1395
1404
|
default: "Layers",
|
|
1396
1405
|
},
|
|
1406
|
+
/** CSS custom-property overrides forwarded to the underlying `eox-layercontrol` element via its `style` attribute. */
|
|
1397
1407
|
cssVars: {
|
|
1398
|
-
type:
|
|
1408
|
+
type: /** @type {import("vue").PropType<Record<string, string>>} */ (
|
|
1409
|
+
Object
|
|
1410
|
+
),
|
|
1411
|
+
default: {},
|
|
1412
|
+
},
|
|
1413
|
+
layoutIcon: {
|
|
1414
|
+
type: String,
|
|
1415
|
+
default: mdiViewDashboard,
|
|
1416
|
+
},
|
|
1417
|
+
layoutTarget: {
|
|
1418
|
+
type: String,
|
|
1399
1419
|
},
|
|
1400
1420
|
},
|
|
1401
1421
|
async setup(__props) {
|
|
@@ -1424,7 +1444,12 @@ const config = {
|
|
|
1424
1444
|
style: props.cssVars,
|
|
1425
1445
|
};
|
|
1426
1446
|
|
|
1447
|
+
const enableLayoutSwitcher = computed(
|
|
1448
|
+
() => !!props.layoutTarget && !!props.layoutIcon,
|
|
1449
|
+
);
|
|
1450
|
+
|
|
1427
1451
|
const { selectedCompareStac, selectedStac } = storeToRefs(useSTAcStore());
|
|
1452
|
+
|
|
1428
1453
|
const showControls = computed(() => {
|
|
1429
1454
|
if (props.map === "second") {
|
|
1430
1455
|
return mapCompareEl.value !== null && selectedCompareStac.value !== null;
|
|
@@ -1436,12 +1461,23 @@ const eodashCols =
|
|
|
1436
1461
|
props.map === "second" ? eodashCompareCollections : eodashCollections;
|
|
1437
1462
|
const mapElement = props.map === "second" ? mapCompareEl : mapEl;
|
|
1438
1463
|
|
|
1439
|
-
/** @type { import("vue").Ref<
|
|
1464
|
+
/** @type { import("vue").Ref<import("@eox/layercontrol").EOxLayerControl | null>} */
|
|
1440
1465
|
const eoxLayercontrol = ref(null);
|
|
1441
1466
|
|
|
1467
|
+
// eox-timecontrol re-fires datetime:updated after layer reassignment;
|
|
1468
|
+
// dedupe by (collectionId, datetime)
|
|
1469
|
+
const processedDatetimes = new Map();
|
|
1470
|
+
watch([selectedStac, selectedCompareStac], () => processedDatetimes.clear());
|
|
1471
|
+
|
|
1442
1472
|
/** @param {CustomEvent<{layer:import('ol/layer').Layer; datetime:string;}>} evt */
|
|
1443
1473
|
const handleDatetimeUpdate = async (evt) => {
|
|
1444
1474
|
const { layer, datetime } = evt.detail;
|
|
1475
|
+
const collectionId = layer.get("id")?.split(";:;")[0] ?? layer.get("id");
|
|
1476
|
+
if (processedDatetimes.get(collectionId) === datetime) return;
|
|
1477
|
+
// First event per collection is eox-timecontrol's mount echo.
|
|
1478
|
+
const isFirstEvent = !processedDatetimes.has(collectionId);
|
|
1479
|
+
processedDatetimes.set(collectionId, datetime);
|
|
1480
|
+
if (isFirstEvent) return;
|
|
1445
1481
|
|
|
1446
1482
|
const ec = await getColFromLayer(eodashCols, layer);
|
|
1447
1483
|
|
|
@@ -1452,9 +1488,10 @@ const handleDatetimeUpdate = async (evt) => {
|
|
|
1452
1488
|
updatedLayers = await ec.updateLayerJson(
|
|
1453
1489
|
datetime,
|
|
1454
1490
|
layer.get("id"),
|
|
1455
|
-
|
|
1491
|
+
mapElement.value?.layers ?? [],
|
|
1456
1492
|
);
|
|
1457
1493
|
}
|
|
1494
|
+
if (!updatedLayers?.length) return;
|
|
1458
1495
|
/** @type {Record<String,any>[] | undefined} */
|
|
1459
1496
|
const dataLayers = updatedLayers?.find(
|
|
1460
1497
|
(l) => l?.properties?.id === "AnalysisGroup",
|
|
@@ -1466,9 +1503,14 @@ const handleDatetimeUpdate = async (evt) => {
|
|
|
1466
1503
|
dl.properties.layerControlExpand = true;
|
|
1467
1504
|
dl.properties.layerControlToolsExpand = true;
|
|
1468
1505
|
});
|
|
1469
|
-
// assign layers to the map
|
|
1470
1506
|
/** @type {HTMLElement & Record<string,any>} */
|
|
1471
1507
|
(mapElement.value).layers = updatedLayers;
|
|
1508
|
+
// Emit after layer assignment so listeners resolve against the new layer.
|
|
1509
|
+
await useEmitLayersUpdate(
|
|
1510
|
+
props.map === "second" ? "compareLayertime:updated" : "layertime:updated",
|
|
1511
|
+
mapElement.value,
|
|
1512
|
+
updatedLayers,
|
|
1513
|
+
);
|
|
1472
1514
|
}
|
|
1473
1515
|
};
|
|
1474
1516
|
|
|
@@ -1491,6 +1533,8 @@ const debouncedHandleDateTime = (evt) => {
|
|
|
1491
1533
|
* @param {Event & {detail:{layer:import("ol/layer").Layer;jsonformValue:Record<string,any>}}} evt
|
|
1492
1534
|
*/
|
|
1493
1535
|
const onLayerConfigChange = (evt) => {
|
|
1536
|
+
updateGeoZarrBands(evt.detail.layer, evt.detail.jsonformValue);
|
|
1537
|
+
|
|
1494
1538
|
if (props.map === "second") {
|
|
1495
1539
|
layerControlFormValueCompare.value = evt.detail.jsonformValue;
|
|
1496
1540
|
} else {
|
|
@@ -1503,6 +1547,7 @@ return (_ctx, _cache) => {
|
|
|
1503
1547
|
(showControls.value)
|
|
1504
1548
|
? (openBlock(), createElementBlock("eox-layercontrol", mergeProps({ key: unref(mapElement) }, config, {
|
|
1505
1549
|
for: unref(mapElement),
|
|
1550
|
+
".showLayerZoomState": true,
|
|
1506
1551
|
".customEditorInterfaces": unref(bandsEditorInterface),
|
|
1507
1552
|
"onDatetime:updated": debouncedHandleDateTime,
|
|
1508
1553
|
toolsAsList: "true",
|
|
@@ -1510,15 +1555,18 @@ return (_ctx, _cache) => {
|
|
|
1510
1555
|
ref: eoxLayercontrol,
|
|
1511
1556
|
"on:layerConfig:change": onLayerConfigChange
|
|
1512
1557
|
}), [
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
(__props.title)
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1558
|
+
createElementVNode("span", _hoisted_3, [
|
|
1559
|
+
(__props.title)
|
|
1560
|
+
? (openBlock(), createElementBlock("h4", _hoisted_4, toDisplayString(__props.title), 1 /* TEXT */))
|
|
1561
|
+
: createCommentVNode("v-if", true),
|
|
1562
|
+
(enableLayoutSwitcher.value)
|
|
1563
|
+
? (openBlock(), createBlock(_sfc_main$1, {
|
|
1564
|
+
key: 1,
|
|
1565
|
+
target: __props.layoutTarget,
|
|
1566
|
+
icon: __props.layoutIcon
|
|
1567
|
+
}, null, 8 /* PROPS */, ["target", "icon"]))
|
|
1568
|
+
: createCommentVNode("v-if", true)
|
|
1569
|
+
])
|
|
1522
1570
|
], 48 /* FULL_PROPS, NEED_HYDRATION */, _hoisted_2))
|
|
1523
1571
|
: createCommentVNode("v-if", true)
|
|
1524
1572
|
]))
|
|
@@ -1526,6 +1574,6 @@ return (_ctx, _cache) => {
|
|
|
1526
1574
|
}
|
|
1527
1575
|
|
|
1528
1576
|
};
|
|
1529
|
-
const EodashLayerControl = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0]],['__scopeId',"data-v-
|
|
1577
|
+
const EodashLayerControl = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0]],['__scopeId',"data-v-2e9372f7"]]);
|
|
1530
1578
|
|
|
1531
1579
|
export { EodashLayerControl as default };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ref, openBlock, createElementBlock, unref, createBlock, withCtx, createVNode, mergeProps } from 'vue';
|
|
2
|
-
import {
|
|
2
|
+
import { J as activeTemplate } from './helpers-CBqIUSXJ.js';
|
|
3
3
|
import { mdiViewDashboard } from '@mdi/js';
|
|
4
|
-
import { G as useDisplay, I as useTransparentPanel, K as VIcon } from './asWebComponent-
|
|
5
|
-
import { V as VTooltip } from './VTooltip-
|
|
4
|
+
import { G as useDisplay, I as useTransparentPanel, K as VIcon } from './asWebComponent-BlFN2lkB.js';
|
|
5
|
+
import { V as VTooltip } from './VTooltip-2hAJyEoa.js';
|
|
6
6
|
|
|
7
7
|
const _sfc_main = {
|
|
8
8
|
__name: 'EodashLayoutSwitcher',
|