@eodash/eodash 5.6.1 → 5.7.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/DashboardLayout.vue +1 -1
- package/core/client/composables/index.js +6 -2
- package/core/client/eodashSTAC/EodashCollection.js +5 -25
- package/core/client/eodashSTAC/createLayers.js +23 -9
- package/core/client/eodashSTAC/helpers.js +33 -0
- package/core/client/types.ts +8 -1
- package/core/client/utils/index.js +4 -0
- package/dist/client/{DashboardLayout-CqMb7OXc.js → DashboardLayout-kRsmsNW5.js} +5 -5
- package/dist/client/{DynamicWebComponent-DqKqTf7l.js → DynamicWebComponent-CnKhYo0K.js} +1 -1
- package/dist/client/{EodashChart-PkUQfH0k.js → EodashChart-CLDqE93C.js} +4 -4
- package/dist/client/{EodashDatePicker-DLJGdTtX.js → EodashDatePicker-CMPDT-ce.js} +3 -3
- package/dist/client/{EodashItemFilter-Dk8KjFcX.js → EodashItemFilter-BpdA8QQa.js} +1 -1
- package/dist/client/{EodashLayerControl-CC1Cogrn.js → EodashLayerControl-BHpDA4_0.js} +25 -7
- package/dist/client/{EodashLayoutSwitcher-5WZYd6rr.js → EodashLayoutSwitcher-B1fRUt7G.js} +3 -3
- package/dist/client/EodashMapBtns-Cpned0tc.js +478 -0
- package/dist/client/{EodashStacInfo-B90wobPc.js → EodashStacInfo-BQspAHKH.js} +1 -1
- package/dist/client/{EodashTools-CGZtTh45.js → EodashTools-1zHz26gv.js} +4 -4
- package/dist/client/{ExportState-Ce0ZnrX_.js → ExportState-DbOm8hBI.js} +4 -4
- package/dist/client/{Footer-CnZqEiop.js → Footer-BKg-VVkj.js} +1 -1
- package/dist/client/{Header-Dr5PBIm8.js → Header-DCrwCvmY.js} +2 -2
- package/dist/client/MobileLayout-vWSHpluo.js +118 -0
- package/dist/client/{PopUp-DjvE_71e.js → PopUp-9uimfK49.js} +2 -2
- package/dist/client/{ProcessList-kf3olI7W.js → ProcessList-CTTIZa06.js} +4 -4
- package/dist/client/{VImg-Bj6uWt6j.js → VImg-CrmB76ZY.js} +2 -2
- package/dist/client/{VMain-Cm0UmKGi.js → VMain-OKZNpcEG.js} +1 -1
- package/dist/client/{VTooltip-DbBu-ky3.js → VTooltip-CJw2FyWk.js} +2 -2
- package/dist/client/{WidgetsContainer-CfLnd44U.js → WidgetsContainer-BaWOnE5R.js} +1 -1
- package/dist/client/{asWebComponent-DfULAbpq.js → asWebComponent-BHWpMuE3.js} +47 -39
- package/dist/client/{async-CIbKXEEe.js → async-DSKj6g1f.js} +21 -10
- package/dist/client/create-layers-config-CBoYedqB.js +182 -0
- package/dist/client/eo-dash.js +1 -1
- package/dist/client/{forwardRefs-yj3VWOK5.js → forwardRefs-DH51zPUr.js} +2 -2
- package/dist/client/{handling-s8xt2JwF.js → handling-BrcDDlgS.js} +123 -85
- package/dist/client/{helpers-DAVGYl_f.js → helpers-DjZVl_WF.js} +2273 -1500
- package/dist/client/{index-4TrjfJ32.js → index-1JKE68n3.js} +49 -194
- package/dist/client/{index-CugS__t5.js → index-5Jhsa8Xe.js} +3 -3
- package/dist/client/index-CSG_JoOA.js +436 -0
- package/dist/client/{index-CYz6dT7K.js → index-CUjl-ZsI.js} +2 -2
- package/dist/client/{index-Bu8BMA9q.js → index-Cu3-13Xg.js} +69 -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/templates.js +1 -1
- package/dist/client/{transition-DaOsiD4u.js → transition-OHcz5Qq1.js} +1 -1
- package/dist/node/cli.js +1 -1
- package/dist/types/core/client/composables/index.d.ts +1 -3
- package/dist/types/core/client/eodashSTAC/EodashCollection.d.ts +6 -7
- package/dist/types/core/client/eodashSTAC/createLayers.d.ts +3 -3
- package/dist/types/core/client/eodashSTAC/helpers.d.ts +1 -0
- package/dist/types/core/client/types.d.ts +8 -1
- package/dist/types/templates/baseConfig.d.ts +12 -0
- package/dist/types/widgets/EodashLayerControl.vue.d.ts +1 -1
- package/dist/types/widgets/EodashMap/EodashMapBtns.vue.d.ts +9 -0
- package/dist/types/widgets/EodashMap/index.vue.d.ts +7 -0
- package/dist/types/widgets/EodashMap/methods/create-layers-config.d.ts +1 -8
- 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/EodashTimeSlider/index.vue.d.ts +34 -0
- package/dist/types/widgets/EodashTimeSlider/methods/index.d.ts +39 -0
- package/dist/types/widgets/EodashTimeSlider/types.d.ts +62 -0
- package/package.json +32 -32
- package/widgets/EodashLayerControl.vue +22 -3
- package/widgets/EodashMap/EodashMapBtns.vue +46 -1
- package/widgets/EodashMap/index.vue +17 -5
- package/widgets/EodashMap/methods/create-layers-config.js +2 -0
- package/widgets/EodashMap/methods/index.js +23 -5
- package/widgets/EodashProcess/index.vue +1 -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/EodashTimeSlider/index.vue +152 -0
- package/widgets/EodashTimeSlider/methods/index.js +279 -0
- package/widgets/EodashTimeSlider/types.ts +64 -0
- package/dist/client/EodashMapBtns-BHrSDNoC.js +0 -435
- package/dist/client/EodashTimeSlider-5vm7F3ju.js +0 -53
- package/dist/client/MobileLayout-DyMjaeif.js +0 -118
- package/dist/types/widgets/EodashTimeSlider.vue.d.ts +0 -15
- package/widgets/EodashTimeSlider.vue +0 -40
|
@@ -1,189 +1,14 @@
|
|
|
1
|
-
import { onMounted, onUnmounted, watch, computed, withAsyncContext, useTemplateRef, ref, toRaw, openBlock, createElementBlock, createElementVNode, unref, normalizeStyle, createCommentVNode, createVNode } from 'vue';
|
|
1
|
+
import { onMounted, onUnmounted, watch, computed, withAsyncContext, useTemplateRef, ref, toRaw, nextTick, openBlock, createElementBlock, createElementVNode, unref, normalizeStyle, createCommentVNode, createVNode } from 'vue';
|
|
2
2
|
import { transformExtent } from '@eox/map';
|
|
3
3
|
import '@eox/map/src/plugins/advancedLayersAndSources';
|
|
4
|
-
import {
|
|
4
|
+
import { T as setMapProjFromCol, D as mapPosition, Q as sanitizeBbox, i as mapEl, R as mapCompareEl, E as indicator, H as compareIndicator, B as poi, U as isGlobe, A as datetime } from './helpers-DjZVl_WF.js';
|
|
5
5
|
import { storeToRefs } from 'pinia';
|
|
6
|
-
import {
|
|
6
|
+
import { H as useSTAcStore, R as useEmitLayersUpdate, S as isFirstLoad, N as useOnLayersUpdate, _ as _export_sfc, G as useDisplay, a as useLayout, Q as layerControlFormValue, P as layerControlFormValueCompare, M as eodashCompareCollections, L as eodashCollections } from './asWebComponent-BHWpMuE3.js';
|
|
7
|
+
import { c as createLayersConfig } from './create-layers-config-CBoYedqB.js';
|
|
7
8
|
import log from 'loglevel';
|
|
8
9
|
import { i as inAndOut } from './easing-CH0-9wR8.js';
|
|
9
10
|
import mustache from 'mustache';
|
|
10
|
-
import EodashMapBtns from './EodashMapBtns-
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Creates full layer configuration from indicator and time information
|
|
14
|
-
* @param {import("stac-ts").StacCatalog
|
|
15
|
-
* | import("stac-ts").StacCollection
|
|
16
|
-
* | import("stac-ts").StacItem
|
|
17
|
-
* | null
|
|
18
|
-
* } selectedIndicator
|
|
19
|
-
* @param {EodashCollection[]} eodashCols
|
|
20
|
-
* @param {string | import("stac-ts").StacItem | null} [timeOrItem] - time as a string, or a stac item
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
const createLayersConfig = async (
|
|
24
|
-
selectedIndicator,
|
|
25
|
-
eodashCols,
|
|
26
|
-
timeOrItem,
|
|
27
|
-
) => {
|
|
28
|
-
log.debug(
|
|
29
|
-
"Creating layers config",
|
|
30
|
-
selectedIndicator,
|
|
31
|
-
eodashCols,
|
|
32
|
-
timeOrItem,
|
|
33
|
-
);
|
|
34
|
-
const layersCollection = [];
|
|
35
|
-
const dataLayers = {
|
|
36
|
-
type: "Group",
|
|
37
|
-
properties: {
|
|
38
|
-
id: "AnalysisGroup",
|
|
39
|
-
title: "Data Layers",
|
|
40
|
-
layerControlExpand: true,
|
|
41
|
-
},
|
|
42
|
-
layers: /** @type {Record<string,any>[]}*/ ([]),
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
for (const ec of eodashCols) {
|
|
46
|
-
/** @type {Record<string,any>[]} */
|
|
47
|
-
let layers;
|
|
48
|
-
if (timeOrItem) {
|
|
49
|
-
const dateOrItem =
|
|
50
|
-
typeof timeOrItem === "string" ? new Date(timeOrItem) : timeOrItem;
|
|
51
|
-
layers = await ec.createLayersJson(dateOrItem);
|
|
52
|
-
} else {
|
|
53
|
-
layers = await ec.createLayersJson(undefined);
|
|
54
|
-
}
|
|
55
|
-
// Add expand to all analysis layers
|
|
56
|
-
layers.forEach((dl) => {
|
|
57
|
-
dl.properties.layerControlExpand = true;
|
|
58
|
-
dl.properties.layerControlToolsExpand = true;
|
|
59
|
-
});
|
|
60
|
-
dataLayers.layers.push(...layers);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/* check for roles in indicator links to assign visibility property for the data layers */
|
|
64
|
-
if (selectedIndicator?.links) {
|
|
65
|
-
const visibilityLinks = selectedIndicator.links.filter(
|
|
66
|
-
(link) =>
|
|
67
|
-
Array.isArray(link.roles) &&
|
|
68
|
-
(link.roles.includes("disable") || link.roles.includes("hidden")),
|
|
69
|
-
);
|
|
70
|
-
if (visibilityLinks.length > 0) {
|
|
71
|
-
visibilityLinks.forEach((vl) => {
|
|
72
|
-
const targetLayerId = vl.id;
|
|
73
|
-
const targetLayer = dataLayers.layers.find(
|
|
74
|
-
(dl) => dl.properties.id.split(";:;")[0] === targetLayerId,
|
|
75
|
-
);
|
|
76
|
-
if (targetLayer) {
|
|
77
|
-
if (Array.isArray(vl.roles) && vl.roles.includes("disable")) {
|
|
78
|
-
targetLayer.properties.visible = false;
|
|
79
|
-
} else if (Array.isArray(vl.roles) && vl.roles.includes("hidden")) {
|
|
80
|
-
targetLayer.properties.layerControlHide = true;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
layersCollection.push(dataLayers);
|
|
87
|
-
const indicatorLayers =
|
|
88
|
-
//@ts-expect-error indicator is collection
|
|
89
|
-
await EodashCollection.getIndicatorLayers(selectedIndicator);
|
|
90
|
-
const observationPointsLayer =
|
|
91
|
-
EodashCollection.getObservationPointsLayer(eodashCols);
|
|
92
|
-
if (observationPointsLayer) {
|
|
93
|
-
dataLayers.layers.push(observationPointsLayer);
|
|
94
|
-
}
|
|
95
|
-
const baseLayers = {
|
|
96
|
-
type: "Group",
|
|
97
|
-
properties: {
|
|
98
|
-
id: "BaseLayersGroup",
|
|
99
|
-
title: "Base Layers",
|
|
100
|
-
},
|
|
101
|
-
layers: /** @type {Record<string,any>[]}*/ ([]),
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
const indicatorBaseLayers = indicatorLayers.filter(
|
|
105
|
-
(l) => l.properties.group === "baselayer",
|
|
106
|
-
);
|
|
107
|
-
|
|
108
|
-
if (indicatorBaseLayers.length) {
|
|
109
|
-
// Only one baselayer can be set to visible, let's first set all to
|
|
110
|
-
// false that have not a dedicated property visible, then check
|
|
111
|
-
// if there are more then one visible and only allow one
|
|
112
|
-
let counter = 0;
|
|
113
|
-
let lastPos = 0;
|
|
114
|
-
for (let indx = 0; indx < indicatorBaseLayers.length; indx++) {
|
|
115
|
-
const bl = indicatorBaseLayers[indx];
|
|
116
|
-
if (!("visible" in bl.properties)) {
|
|
117
|
-
bl.properties.visible = false;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (bl.properties.visible) {
|
|
121
|
-
counter++;
|
|
122
|
-
lastPos = indx;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// if none visible set the last one as visible
|
|
127
|
-
if (counter === 0) {
|
|
128
|
-
indicatorBaseLayers[0].properties.visible = true;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// disable all apart from last
|
|
132
|
-
if (counter > 0) {
|
|
133
|
-
indicatorBaseLayers.forEach((bl, indx) => {
|
|
134
|
-
if (indx !== lastPos) {
|
|
135
|
-
bl.properties.visible = false;
|
|
136
|
-
} else {
|
|
137
|
-
bl.properties.visible = true;
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
baseLayers.layers.push(...indicatorBaseLayers);
|
|
143
|
-
|
|
144
|
-
// Add exclusive to baselayers and make sure only one is selected
|
|
145
|
-
baseLayers.layers.forEach((bl) => {
|
|
146
|
-
bl.properties.layerControlExclusive = true;
|
|
147
|
-
});
|
|
148
|
-
} else {
|
|
149
|
-
// Default to some baselayer
|
|
150
|
-
baseLayers.layers.push({
|
|
151
|
-
type: "Tile",
|
|
152
|
-
properties: {
|
|
153
|
-
id: "osm",
|
|
154
|
-
title: "Background",
|
|
155
|
-
layerControlExclusive: true,
|
|
156
|
-
},
|
|
157
|
-
source: {
|
|
158
|
-
type: "OSM",
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
if (baseLayers.layers.length) {
|
|
164
|
-
layersCollection.unshift(baseLayers);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
const overlayLayers = {
|
|
168
|
-
type: "Group",
|
|
169
|
-
properties: {
|
|
170
|
-
id: "OverlayGroup",
|
|
171
|
-
title: "Overlay Layers",
|
|
172
|
-
},
|
|
173
|
-
layers: /** @type {Record<string,any>[]}*/ ([]),
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
const indicatorOverlays = indicatorLayers.filter(
|
|
177
|
-
(l) => l.properties.group === "overlay",
|
|
178
|
-
);
|
|
179
|
-
|
|
180
|
-
if (indicatorOverlays.length) {
|
|
181
|
-
overlayLayers.layers.push(...indicatorOverlays);
|
|
182
|
-
layersCollection.push(overlayLayers);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
return layersCollection;
|
|
186
|
-
};
|
|
11
|
+
import EodashMapBtns from './EodashMapBtns-Cpned0tc.js';
|
|
187
12
|
|
|
188
13
|
/**
|
|
189
14
|
* Holder for previous compare map view as it is overwritten by sync
|
|
@@ -259,6 +84,10 @@ const useInitMap = (
|
|
|
259
84
|
const watching = selectedItem
|
|
260
85
|
? [selectedIndicator, datetime, selectedItem]
|
|
261
86
|
: [selectedIndicator, datetime];
|
|
87
|
+
// Tags datetime values we set ourselves so the watcher skips its own echo.
|
|
88
|
+
/** @type {string | null} */
|
|
89
|
+
let internalDatetime = null;
|
|
90
|
+
|
|
262
91
|
const stopIndicatorWatcher = watch(
|
|
263
92
|
watching,
|
|
264
93
|
async (updated, previous) => {
|
|
@@ -272,6 +101,16 @@ const useInitMap = (
|
|
|
272
101
|
);
|
|
273
102
|
|
|
274
103
|
if (updatedStac) {
|
|
104
|
+
if (
|
|
105
|
+
internalDatetime !== null &&
|
|
106
|
+
updatedTime === internalDatetime &&
|
|
107
|
+
updatedStac?.id === previousStac?.id &&
|
|
108
|
+
updatedItem?.id === previousItem?.id
|
|
109
|
+
) {
|
|
110
|
+
internalDatetime = null;
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
275
114
|
log.debug(
|
|
276
115
|
"Selected Indicator watch triggered",
|
|
277
116
|
updatedStac,
|
|
@@ -321,7 +160,6 @@ const useInitMap = (
|
|
|
321
160
|
JSON.parse(JSON.stringify(layersCollection)),
|
|
322
161
|
);
|
|
323
162
|
mapLayers.value = layersCollection;
|
|
324
|
-
|
|
325
163
|
useEmitLayersUpdate(
|
|
326
164
|
mapElement.value?.id === "compare"
|
|
327
165
|
? "compareTime:updated"
|
|
@@ -343,22 +181,27 @@ const useInitMap = (
|
|
|
343
181
|
endInterval,
|
|
344
182
|
);
|
|
345
183
|
}
|
|
184
|
+
let resolvedTime = updatedItem ?? updatedTime;
|
|
346
185
|
if (
|
|
347
186
|
!updatedItem &&
|
|
348
187
|
endInterval !== null &&
|
|
349
188
|
endInterval.toISOString() !== datetime.value &&
|
|
350
189
|
!isFirstLoad.value
|
|
351
190
|
) {
|
|
352
|
-
|
|
191
|
+
resolvedTime = endInterval.toISOString();
|
|
192
|
+
internalDatetime = resolvedTime;
|
|
193
|
+
datetime.value = resolvedTime;
|
|
353
194
|
} else if (isFirstLoad.value && !datetime.value && endInterval) {
|
|
354
|
-
|
|
195
|
+
resolvedTime = endInterval.toISOString();
|
|
196
|
+
internalDatetime = resolvedTime;
|
|
197
|
+
datetime.value = resolvedTime;
|
|
355
198
|
}
|
|
356
199
|
|
|
357
200
|
/** @type {Record<string,any>[]} */
|
|
358
201
|
layersCollection = await createLayersConfig(
|
|
359
202
|
updatedStac,
|
|
360
203
|
eodashCols,
|
|
361
|
-
|
|
204
|
+
resolvedTime,
|
|
362
205
|
);
|
|
363
206
|
|
|
364
207
|
if (zoomToExtent) {
|
|
@@ -427,7 +270,7 @@ const useUpdateTooltipProperties = (
|
|
|
427
270
|
* @param {string} evt */
|
|
428
271
|
const listenTo = (evt) =>
|
|
429
272
|
enableCompare ? evt.includes("compare") : !evt.includes("compare");
|
|
430
|
-
useOnLayersUpdate(async (evt
|
|
273
|
+
useOnLayersUpdate(async (evt) => {
|
|
431
274
|
if (!listenTo(evt)) {
|
|
432
275
|
return;
|
|
433
276
|
}
|
|
@@ -441,10 +284,10 @@ const useUpdateTooltipProperties = (
|
|
|
441
284
|
});
|
|
442
285
|
};
|
|
443
286
|
|
|
444
|
-
const _style_0 = "#cursor-coordinates[data-v-
|
|
287
|
+
const _style_0 = "#cursor-coordinates[data-v-5de71391]{position:fixed;left:24px;bottom:54px;color:#000000e6;font-size:10px;font-family:var(--eox-body-font-family);background:#fffe;border-radius:4px;border:none;padding:0 3px;max-height:24px}@media(max-width:959px){#cursor-coordinates[data-v-5de71391]{display:none}}#scale-line[data-v-5de71391]{position:fixed;left:24px;bottom:28px;color:#fff}@media(max-width:959px){#scale-line[data-v-5de71391]{bottom:102px}}[data-v-5de71391] .ol-scale-line{background:#fffe!important;border-radius:4px!important;border:none!important;padding:0 3px 3px!important;font-size:10px!important;font-family:var(--eox-body-font-family);max-height:20px}[data-v-5de71391] .ol-scale-line-inner{display:flex;justify-content:center;border:1px solid rgba(0,0,0,.5)!important;border-top:none!important;color:#333!important;font-weight:500!important;transform:translateY(1px)}.map-buttons-container[data-v-5de71391]{position:fixed;left:0;width:100%;height:100%;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(12,1fr);pointer-events:none;z-index:1}.map-buttons-container[data-v-5de71391]>*{pointer-events:auto}";
|
|
445
288
|
|
|
446
289
|
const _hoisted_1 = [".enabled"];
|
|
447
|
-
const _hoisted_2 = [".center", ".zoom", ".layers", ".controls"];
|
|
290
|
+
const _hoisted_2 = [".animationOptions", ".center", ".zoom", ".layers", ".controls"];
|
|
448
291
|
const _hoisted_3 = [".propertyTransform"];
|
|
449
292
|
const _hoisted_4 = [".layers"];
|
|
450
293
|
const _hoisted_5 = [".propertyTransform"];
|
|
@@ -506,6 +349,7 @@ const _sfc_main = {
|
|
|
506
349
|
* searchParams?: object;
|
|
507
350
|
* enableZoom?: boolean;
|
|
508
351
|
* enableGlobe?: boolean;
|
|
352
|
+
* enableFeedback?: boolean;
|
|
509
353
|
* enableCompareIndicators?: boolean | {
|
|
510
354
|
* compareTemplate?:string;
|
|
511
355
|
* fallbackTemplate?:string;
|
|
@@ -521,6 +365,7 @@ const _sfc_main = {
|
|
|
521
365
|
enableSearch: true,
|
|
522
366
|
enableZoom: true,
|
|
523
367
|
enableGlobe: true,
|
|
368
|
+
enableFeedback: true,
|
|
524
369
|
searchParams: {},
|
|
525
370
|
}),
|
|
526
371
|
},
|
|
@@ -569,6 +414,7 @@ const btnsProps = computed(() => ({
|
|
|
569
414
|
enableSearch: props.btns.enableSearch ?? true,
|
|
570
415
|
enableZoom: props.btns.enableZoom ?? true,
|
|
571
416
|
enableGlobe: props.btns.enableGlobe ?? true,
|
|
417
|
+
enableFeedback: props.btns.enableFeedback ?? true,
|
|
572
418
|
searchParams: props.btns.searchParams,
|
|
573
419
|
}));
|
|
574
420
|
|
|
@@ -614,7 +460,11 @@ const controls = computed(() => {
|
|
|
614
460
|
controlsObj.MousePosition = {
|
|
615
461
|
projection: "EPSG:4326",
|
|
616
462
|
coordinateFormat: (/** @type {[number, number]} */ c) => {
|
|
617
|
-
|
|
463
|
+
const lat = c[1];
|
|
464
|
+
const lng = c[0];
|
|
465
|
+
const latStr = `${Math.abs(lat).toFixed(3)}°${lat >= 0 ? "N" : "S"}`;
|
|
466
|
+
const lngStr = `${Math.abs(lng).toFixed(3)}°${lng >= 0 ? "E" : "W"}`;
|
|
467
|
+
return `${latStr}, ${lngStr}`;
|
|
618
468
|
},
|
|
619
469
|
target: cursorCoordsRef.value,
|
|
620
470
|
};
|
|
@@ -649,10 +499,10 @@ const eoxMapCompareLayers = ref([
|
|
|
649
499
|
},
|
|
650
500
|
]);
|
|
651
501
|
|
|
652
|
-
const animationOptions = {
|
|
653
|
-
duration:
|
|
502
|
+
const animationOptions = ref({
|
|
503
|
+
duration: 0, // Initially set to 0 for an instant "jump"
|
|
654
504
|
easing: inAndOut,
|
|
655
|
-
};
|
|
505
|
+
});
|
|
656
506
|
|
|
657
507
|
/** @type {import("vue").Ref<import("@eox/map").EOxMap | null>} */
|
|
658
508
|
const eoxMap = ref(null);
|
|
@@ -703,6 +553,10 @@ onMounted(() => {
|
|
|
703
553
|
props.zoomToExtent,
|
|
704
554
|
selectedItem,
|
|
705
555
|
);
|
|
556
|
+
// After the initial mount and "jump", set the animation duration for subsequent flyTo calls
|
|
557
|
+
nextTick(() => {
|
|
558
|
+
animationOptions.value.duration = 1200;
|
|
559
|
+
});
|
|
706
560
|
});
|
|
707
561
|
|
|
708
562
|
useUpdateTooltipProperties(eodashCollections, tooltipProperties);
|
|
@@ -776,7 +630,7 @@ return (_ctx, _cache) => {
|
|
|
776
630
|
ref_key: "eoxMap",
|
|
777
631
|
ref: eoxMap,
|
|
778
632
|
id: "main",
|
|
779
|
-
".animationOptions": animationOptions,
|
|
633
|
+
".animationOptions": animationOptions.value,
|
|
780
634
|
".center": unref(initialCenter),
|
|
781
635
|
".zoom": unref(initialZoom),
|
|
782
636
|
".layers": eoxMapLayers.value,
|
|
@@ -829,14 +683,15 @@ return (_ctx, _cache) => {
|
|
|
829
683
|
enableZoom: (unref(indicator) || unref(compareIndicator) || unref(poi)) ? btnsProps.value.enableZoom : false
|
|
830
684
|
,
|
|
831
685
|
enableGlobe: (unref(indicator) || unref(compareIndicator) || unref(poi)) ? btnsProps.value.enableGlobe : false,
|
|
686
|
+
enableFeedback: (unref(indicator) || unref(compareIndicator) || unref(poi)) ? btnsProps.value.enableFeedback : false,
|
|
832
687
|
searchParams: btnsProps.value.searchParams
|
|
833
|
-
}, null, 8 /* PROPS */, ["style", "exportMap", "changeProjection", "compareIndicators", "backToPOIs", "enableSearch", "enableZoom", "enableGlobe", "searchParams"])
|
|
688
|
+
}, null, 8 /* PROPS */, ["style", "exportMap", "changeProjection", "compareIndicators", "backToPOIs", "enableSearch", "enableZoom", "enableGlobe", "enableFeedback", "searchParams"])
|
|
834
689
|
], 4 /* STYLE */)
|
|
835
690
|
]))
|
|
836
691
|
}
|
|
837
692
|
}
|
|
838
693
|
|
|
839
694
|
};
|
|
840
|
-
const index = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0]],['__scopeId',"data-v-
|
|
695
|
+
const index = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0]],['__scopeId',"data-v-5de71391"]]);
|
|
841
696
|
|
|
842
697
|
export { index as default };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { onMounted, onUnmounted, withAsyncContext, useTemplateRef, ref, openBlock, createElementBlock, createVNode, withCtx, createElementVNode, unref, toDisplayString } from 'vue';
|
|
2
|
-
import { H as useSTAcStore, N as useOnLayersUpdate, _ as _export_sfc, O as VRow } from './asWebComponent-
|
|
3
|
-
import {
|
|
2
|
+
import { H as useSTAcStore, N as useOnLayersUpdate, _ as _export_sfc, O as VRow } from './asWebComponent-BHWpMuE3.js';
|
|
3
|
+
import { E as indicator, i as mapEl, Q as sanitizeBbox, d as axios } from './helpers-DjZVl_WF.js';
|
|
4
4
|
import { i as inAndOut } from './easing-CH0-9wR8.js';
|
|
5
5
|
import { mdiViewDashboard } from '@mdi/js';
|
|
6
|
-
import _sfc_main$1 from './EodashLayoutSwitcher-
|
|
6
|
+
import _sfc_main$1 from './EodashLayoutSwitcher-B1fRUt7G.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
*
|