@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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { C as replaceLayer, e as extractLayerConfig, G as extractLayerLegend, m as mergeGeojsons, g as axios, ag as getCompareLayers, F as getLayers, aj as axios$1, U as compareIndicator, Q as indicator } from './helpers-BFuh19CP.js';
|
|
2
|
+
import { aa as useEmitLayersUpdate } from './asWebComponent-IZanwL-A.js';
|
|
3
3
|
import { isMulti } from '@eox/jsonform/src/custom-inputs/spatial/utils';
|
|
4
4
|
import log from 'loglevel';
|
|
5
5
|
|
|
@@ -83,10 +83,10 @@ async function createTiffLayerDefinition(
|
|
|
83
83
|
}
|
|
84
84
|
// We want to make sure the urls are alphabetically sorted
|
|
85
85
|
urls = urls.sort();
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
const layerdef =
|
|
88
88
|
urls.length > 0
|
|
89
|
-
? {
|
|
89
|
+
? /** @type {import("@eox/map/src/layers").EOxLayerType<"WebGLTile","GeoTIFF">} */ ({
|
|
90
90
|
type: "WebGLTile",
|
|
91
91
|
source: {
|
|
92
92
|
type: "GeoTIFF",
|
|
@@ -100,7 +100,7 @@ async function createTiffLayerDefinition(
|
|
|
100
100
|
layerControlToolsExpand: true,
|
|
101
101
|
},
|
|
102
102
|
...(style && { style: style }),
|
|
103
|
-
}
|
|
103
|
+
})
|
|
104
104
|
: undefined;
|
|
105
105
|
|
|
106
106
|
// We want to see if the currently selected indicator uses a
|
|
@@ -303,31 +303,33 @@ async function creatAsyncProcessLayerDefinitions(
|
|
|
303
303
|
|
|
304
304
|
switch (resultItem.type) {
|
|
305
305
|
case "image/tiff": {
|
|
306
|
-
layers.push(
|
|
307
|
-
type
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
...(selectedStac["eodash:mapProjection"]?.["name"] && {
|
|
306
|
+
layers.push(
|
|
307
|
+
/** @type {import("@eox/map/src/layers").EOxLayerType<"WebGLTile","GeoTIFF">} */ ({
|
|
308
|
+
type: "WebGLTile",
|
|
309
|
+
properties: {
|
|
310
|
+
id: endpointLink.id + "_process" + resultItem.id + postfixId,
|
|
311
|
+
title:
|
|
312
|
+
"Results " +
|
|
313
|
+
(selectedStac?.id ?? "") +
|
|
314
|
+
" " +
|
|
315
|
+
(resultItem.id ?? ""),
|
|
316
|
+
layerControlToolsExpand: true,
|
|
317
|
+
...(layerConfig && { layerConfig }),
|
|
318
|
+
...extraProperties,
|
|
319
|
+
},
|
|
320
|
+
source: {
|
|
321
|
+
type: "GeoTIFF",
|
|
322
|
+
normalize: !style,
|
|
323
|
+
sources: resultItem.urls.map((url) => ({ url })),
|
|
325
324
|
//@ts-expect-error TODO
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
325
|
+
...(selectedStac["eodash:mapProjection"]?.["name"] && {
|
|
326
|
+
//@ts-expect-error TODO
|
|
327
|
+
projection: selectedStac["eodash:mapProjection"]["name"],
|
|
328
|
+
}),
|
|
329
|
+
},
|
|
330
|
+
...(style && { style }),
|
|
331
|
+
}),
|
|
332
|
+
);
|
|
331
333
|
break;
|
|
332
334
|
}
|
|
333
335
|
case "application/geo+json": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ah as EodashCollection } from './asWebComponent-IZanwL-A.js';
|
|
2
2
|
import log from 'loglevel';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -10,6 +10,7 @@ import log from 'loglevel';
|
|
|
10
10
|
* } selectedIndicator
|
|
11
11
|
* @param {EodashCollection[]} eodashCols
|
|
12
12
|
* @param {string | import("stac-ts").StacItem | null} [timeOrItem] - time as a string, or a stac item
|
|
13
|
+
* @param {Record<string, any>[]} [defaultBaseLayers] - Optional default baselayers to use if the indicator does not provide any
|
|
13
14
|
* @returns {Promise<Record<string, any>[]>}
|
|
14
15
|
*/
|
|
15
16
|
|
|
@@ -17,6 +18,7 @@ const createLayersConfig = async (
|
|
|
17
18
|
selectedIndicator,
|
|
18
19
|
eodashCols,
|
|
19
20
|
timeOrItem,
|
|
21
|
+
defaultBaseLayers = [],
|
|
20
22
|
) => {
|
|
21
23
|
log.debug(
|
|
22
24
|
"Creating layers config",
|
|
@@ -38,17 +40,25 @@ const createLayersConfig = async (
|
|
|
38
40
|
for (const ec of eodashCols) {
|
|
39
41
|
/** @type {Record<string,any>[]} */
|
|
40
42
|
let layers;
|
|
43
|
+
let dateOrItem;
|
|
41
44
|
if (timeOrItem) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
if (typeof timeOrItem === "string" && timeOrItem.includes("/")) {
|
|
46
|
+
dateOrItem = timeOrItem;
|
|
47
|
+
} else {
|
|
48
|
+
dateOrItem =
|
|
49
|
+
typeof timeOrItem === "string" ? new Date(timeOrItem) : timeOrItem;
|
|
50
|
+
}
|
|
51
|
+
layers = await ec.createLayersJson(/** @type {any} */ (dateOrItem));
|
|
45
52
|
} else {
|
|
46
53
|
layers = await ec.createLayersJson(undefined);
|
|
47
54
|
}
|
|
55
|
+
|
|
48
56
|
// Add expand to all analysis layers
|
|
49
57
|
layers.forEach((dl) => {
|
|
50
|
-
dl.properties
|
|
51
|
-
|
|
58
|
+
if (!dl.properties?.layerControlExclusive) {
|
|
59
|
+
dl.properties.layerControlExpand = true;
|
|
60
|
+
dl.properties.layerControlToolsExpand = true;
|
|
61
|
+
}
|
|
52
62
|
});
|
|
53
63
|
dataLayers.layers.push(...layers);
|
|
54
64
|
}
|
|
@@ -141,17 +151,7 @@ const createLayersConfig = async (
|
|
|
141
151
|
});
|
|
142
152
|
} else {
|
|
143
153
|
// Default to some baselayer
|
|
144
|
-
baseLayers.layers.push(
|
|
145
|
-
type: "Tile",
|
|
146
|
-
properties: {
|
|
147
|
-
id: "osm",
|
|
148
|
-
title: "Background",
|
|
149
|
-
layerControlExclusive: true,
|
|
150
|
-
},
|
|
151
|
-
source: {
|
|
152
|
-
type: "OSM",
|
|
153
|
-
},
|
|
154
|
-
});
|
|
154
|
+
baseLayers.layers.push(...defaultBaseLayers);
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
if (baseLayers.layers.length) {
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { createVNode, Transition, mergeProps } from 'vue';
|
|
2
|
+
import { g as genericComponent, ar as PREFERS_REDUCED_MOTION, p as propsFactory, at as getTargetBox, au as acceleratedEasing, av as deceleratedEasing, aw as standardEasing } from './asWebComponent-IZanwL-A.js';
|
|
3
|
+
import { b as animate, n as nullifyTransforms } from './forwardRefs-B-c1_6yo.js';
|
|
4
|
+
|
|
5
|
+
// Utilities
|
|
6
|
+
const makeVDialogTransitionProps = propsFactory({
|
|
7
|
+
target: [Object, Array]
|
|
8
|
+
}, 'v-dialog-transition');
|
|
9
|
+
const saved = new WeakMap();
|
|
10
|
+
const VDialogTransition = genericComponent()({
|
|
11
|
+
name: 'VDialogTransition',
|
|
12
|
+
props: makeVDialogTransitionProps(),
|
|
13
|
+
setup(props, _ref) {
|
|
14
|
+
let {
|
|
15
|
+
slots
|
|
16
|
+
} = _ref;
|
|
17
|
+
const functions = {
|
|
18
|
+
onBeforeEnter(el) {
|
|
19
|
+
el.style.pointerEvents = 'none';
|
|
20
|
+
el.style.visibility = 'hidden';
|
|
21
|
+
},
|
|
22
|
+
async onEnter(el, done) {
|
|
23
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
24
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
25
|
+
el.style.visibility = '';
|
|
26
|
+
const dimensions = getDimensions(props.target, el);
|
|
27
|
+
const {
|
|
28
|
+
x,
|
|
29
|
+
y,
|
|
30
|
+
sx,
|
|
31
|
+
sy,
|
|
32
|
+
speed
|
|
33
|
+
} = dimensions;
|
|
34
|
+
saved.set(el, dimensions);
|
|
35
|
+
if (PREFERS_REDUCED_MOTION()) {
|
|
36
|
+
animate(el, [{
|
|
37
|
+
opacity: 0
|
|
38
|
+
}, {}], {
|
|
39
|
+
duration: 125 * speed,
|
|
40
|
+
easing: deceleratedEasing
|
|
41
|
+
}).finished.then(() => done());
|
|
42
|
+
} else {
|
|
43
|
+
const animation = animate(el, [{
|
|
44
|
+
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
|
|
45
|
+
opacity: 0
|
|
46
|
+
}, {}], {
|
|
47
|
+
duration: 225 * speed,
|
|
48
|
+
easing: deceleratedEasing
|
|
49
|
+
});
|
|
50
|
+
getChildren(el)?.forEach(el => {
|
|
51
|
+
animate(el, [{
|
|
52
|
+
opacity: 0
|
|
53
|
+
}, {
|
|
54
|
+
opacity: 0,
|
|
55
|
+
offset: 0.33
|
|
56
|
+
}, {}], {
|
|
57
|
+
duration: 225 * 2 * speed,
|
|
58
|
+
easing: standardEasing
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
animation.finished.then(() => done());
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
onAfterEnter(el) {
|
|
65
|
+
el.style.removeProperty('pointer-events');
|
|
66
|
+
},
|
|
67
|
+
onBeforeLeave(el) {
|
|
68
|
+
el.style.pointerEvents = 'none';
|
|
69
|
+
},
|
|
70
|
+
async onLeave(el, done) {
|
|
71
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
72
|
+
let dimensions;
|
|
73
|
+
if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) {
|
|
74
|
+
dimensions = getDimensions(props.target, el);
|
|
75
|
+
} else {
|
|
76
|
+
dimensions = saved.get(el);
|
|
77
|
+
}
|
|
78
|
+
const {
|
|
79
|
+
x,
|
|
80
|
+
y,
|
|
81
|
+
sx,
|
|
82
|
+
sy,
|
|
83
|
+
speed
|
|
84
|
+
} = dimensions;
|
|
85
|
+
if (PREFERS_REDUCED_MOTION()) {
|
|
86
|
+
animate(el, [{}, {
|
|
87
|
+
opacity: 0
|
|
88
|
+
}], {
|
|
89
|
+
duration: 85 * speed,
|
|
90
|
+
easing: acceleratedEasing
|
|
91
|
+
}).finished.then(() => done());
|
|
92
|
+
} else {
|
|
93
|
+
const animation = animate(el, [{}, {
|
|
94
|
+
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
|
|
95
|
+
opacity: 0
|
|
96
|
+
}], {
|
|
97
|
+
duration: 125 * speed,
|
|
98
|
+
easing: acceleratedEasing
|
|
99
|
+
});
|
|
100
|
+
animation.finished.then(() => done());
|
|
101
|
+
getChildren(el)?.forEach(el => {
|
|
102
|
+
animate(el, [{}, {
|
|
103
|
+
opacity: 0,
|
|
104
|
+
offset: 0.2
|
|
105
|
+
}, {
|
|
106
|
+
opacity: 0
|
|
107
|
+
}], {
|
|
108
|
+
duration: 125 * 2 * speed,
|
|
109
|
+
easing: standardEasing
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
onAfterLeave(el) {
|
|
115
|
+
el.style.removeProperty('pointer-events');
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
return () => {
|
|
119
|
+
return props.target ? createVNode(Transition, mergeProps({
|
|
120
|
+
"name": "dialog-transition"
|
|
121
|
+
}, functions, {
|
|
122
|
+
"css": false
|
|
123
|
+
}), slots) : createVNode(Transition, {
|
|
124
|
+
"name": "dialog-transition"
|
|
125
|
+
}, slots);
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
/** Animatable children (card, sheet, list) */
|
|
131
|
+
function getChildren(el) {
|
|
132
|
+
const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children;
|
|
133
|
+
return els && [...els];
|
|
134
|
+
}
|
|
135
|
+
function getDimensions(target, el) {
|
|
136
|
+
const targetBox = getTargetBox(target);
|
|
137
|
+
const elBox = nullifyTransforms(el);
|
|
138
|
+
const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));
|
|
139
|
+
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');
|
|
140
|
+
let offsetX = targetBox.left + targetBox.width / 2;
|
|
141
|
+
if (anchorSide === 'left' || anchorOffset === 'left') {
|
|
142
|
+
offsetX -= targetBox.width / 2;
|
|
143
|
+
} else if (anchorSide === 'right' || anchorOffset === 'right') {
|
|
144
|
+
offsetX += targetBox.width / 2;
|
|
145
|
+
}
|
|
146
|
+
let offsetY = targetBox.top + targetBox.height / 2;
|
|
147
|
+
if (anchorSide === 'top' || anchorOffset === 'top') {
|
|
148
|
+
offsetY -= targetBox.height / 2;
|
|
149
|
+
} else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {
|
|
150
|
+
offsetY += targetBox.height / 2;
|
|
151
|
+
}
|
|
152
|
+
const tsx = targetBox.width / elBox.width;
|
|
153
|
+
const tsy = targetBox.height / elBox.height;
|
|
154
|
+
const maxs = Math.max(1, tsx, tsy);
|
|
155
|
+
const sx = tsx / maxs || 0;
|
|
156
|
+
const sy = tsy / maxs || 0;
|
|
157
|
+
|
|
158
|
+
// Animate elements larger than 12% of the screen area up to 1.5x slower
|
|
159
|
+
const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);
|
|
160
|
+
const speed = asa > 0.12 ? Math.min(1.5, (asa - 0.12) * 10 + 1) : 1;
|
|
161
|
+
return {
|
|
162
|
+
x: offsetX - (originX + elBox.left),
|
|
163
|
+
y: offsetY - (originY + elBox.top),
|
|
164
|
+
sx,
|
|
165
|
+
sy,
|
|
166
|
+
speed
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export { VDialogTransition as V };
|
package/dist/client/eo-dash.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { aR as EodashConstructor, aS as register, aT as store } from './asWebComponent-IZanwL-A.js';
|
|
2
2
|
import 'vue';
|
|
@@ -1,84 +1,6 @@
|
|
|
1
1
|
import { computed, watch, onScopeDispose, nextTick, ref, watchEffect, effectScope, inject, mergeProps, toRef, toValue, shallowRef, onMounted, reactive, provide, toRaw, readonly, warn, onBeforeUnmount, createElementVNode, Fragment, createVNode, Teleport, withDirectives, vShow, Transition } from 'vue';
|
|
2
|
-
import {
|
|
3
|
-
import { m as makeTransitionProps, M as MaybeTransition } from './transition-
|
|
4
|
-
|
|
5
|
-
class Box {
|
|
6
|
-
constructor(args) {
|
|
7
|
-
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
8
|
-
const isElement = args instanceof Element;
|
|
9
|
-
const factor = isElement ? 1 + (1 - pageScale) / pageScale : 1;
|
|
10
|
-
const {
|
|
11
|
-
x,
|
|
12
|
-
y,
|
|
13
|
-
width,
|
|
14
|
-
height
|
|
15
|
-
} = isElement ? args.getBoundingClientRect() : args;
|
|
16
|
-
this.x = x * factor;
|
|
17
|
-
this.y = y * factor;
|
|
18
|
-
this.width = width * factor;
|
|
19
|
-
this.height = height * factor;
|
|
20
|
-
}
|
|
21
|
-
get top() {
|
|
22
|
-
return this.y;
|
|
23
|
-
}
|
|
24
|
-
get bottom() {
|
|
25
|
-
return this.y + this.height;
|
|
26
|
-
}
|
|
27
|
-
get left() {
|
|
28
|
-
return this.x;
|
|
29
|
-
}
|
|
30
|
-
get right() {
|
|
31
|
-
return this.x + this.width;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function getOverflow(a, b) {
|
|
35
|
-
return {
|
|
36
|
-
x: {
|
|
37
|
-
before: Math.max(0, b.left - a.left),
|
|
38
|
-
after: Math.max(0, a.right - b.right)
|
|
39
|
-
},
|
|
40
|
-
y: {
|
|
41
|
-
before: Math.max(0, b.top - a.top),
|
|
42
|
-
after: Math.max(0, a.bottom - b.bottom)
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function getTargetBox(target) {
|
|
47
|
-
if (Array.isArray(target)) {
|
|
48
|
-
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
49
|
-
const factor = 1 + (1 - pageScale) / pageScale;
|
|
50
|
-
return new Box({
|
|
51
|
-
x: target[0] * factor,
|
|
52
|
-
y: target[1] * factor,
|
|
53
|
-
width: 0 * factor,
|
|
54
|
-
height: 0 * factor
|
|
55
|
-
});
|
|
56
|
-
} else {
|
|
57
|
-
return new Box(target);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
function getElementBox(el) {
|
|
61
|
-
if (el === document.documentElement) {
|
|
62
|
-
if (!visualViewport) {
|
|
63
|
-
return new Box({
|
|
64
|
-
x: 0,
|
|
65
|
-
y: 0,
|
|
66
|
-
width: document.documentElement.clientWidth,
|
|
67
|
-
height: document.documentElement.clientHeight
|
|
68
|
-
});
|
|
69
|
-
} else {
|
|
70
|
-
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
71
|
-
return new Box({
|
|
72
|
-
x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
|
|
73
|
-
y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
|
|
74
|
-
width: visualViewport.width * visualViewport.scale / pageScale,
|
|
75
|
-
height: visualViewport.height * visualViewport.scale / pageScale
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
} else {
|
|
79
|
-
return new Box(el);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
2
|
+
import { ax as Box, ay as isOn, az as eventName, p as propsFactory, aA as destructComputed, aB as parseAnchor, aC as flipSide, aD as flipAlign, aE as flipCorner, aF as CircularBuffer, aG as deepEqual, at as getTargetBox, aH as getElementBox, O as consoleError, aI as getAxis, q as convertToUnit, aJ as getOverflow, x as clamp, aK as IN_BROWSER, A as useToggleScope, aL as defer, N as getCurrentInstance, aM as templateRef, aN as matchesSelector, a8 as focusableChildren, G as useDisplay, r as makeThemeProps, d as makeDimensionProps, e as makeComponentProps, g as genericComponent, z as useProxiedModel, l as provideTheme, n as useRtl, f as useBackgroundColor, b as useDimension, aO as useRouter, aP as useBackButton, aw as standardEasing, c as useRender, C as omit } from './asWebComponent-IZanwL-A.js';
|
|
3
|
+
import { m as makeTransitionProps, M as MaybeTransition } from './transition-BkyUsZh_.js';
|
|
82
4
|
|
|
83
5
|
// Utilities
|
|
84
6
|
/** @see https://stackoverflow.com/a/57876601/2074736 */
|
|
@@ -1161,7 +1083,7 @@ function useActivator(props, _ref) {
|
|
|
1161
1083
|
});
|
|
1162
1084
|
watch(isTop, val => {
|
|
1163
1085
|
if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered)) && !contentEl.value?.contains(document.activeElement)) {
|
|
1164
|
-
|
|
1086
|
+
runCloseDelay();
|
|
1165
1087
|
}
|
|
1166
1088
|
});
|
|
1167
1089
|
watch(isActive, val => {
|
|
@@ -1356,7 +1278,7 @@ function useFocusTrap(props, _ref2) {
|
|
|
1356
1278
|
const after = e.target;
|
|
1357
1279
|
document.removeEventListener('pointerdown', onPointerdown);
|
|
1358
1280
|
document.removeEventListener('keydown', captureOnKeydown);
|
|
1359
|
-
await
|
|
1281
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
1360
1282
|
if (isActive.value && !focusTrapSuppressed && before !== after && contentEl.value &&
|
|
1361
1283
|
// We're the menu without open submenus or overlays
|
|
1362
1284
|
toValue(localTop) &&
|
|
@@ -1737,13 +1659,12 @@ const VOverlay = genericComponent()({
|
|
|
1737
1659
|
}
|
|
1738
1660
|
const router = useRouter();
|
|
1739
1661
|
useToggleScope(() => props.closeOnBack, () => {
|
|
1740
|
-
useBackButton(router,
|
|
1662
|
+
useBackButton(router, () => {
|
|
1741
1663
|
if (globalTop.value && isActive.value) {
|
|
1742
|
-
next(false);
|
|
1743
1664
|
if (!props.persistent) isActive.value = false;else animateClick();
|
|
1744
|
-
|
|
1745
|
-
next();
|
|
1665
|
+
return false;
|
|
1746
1666
|
}
|
|
1667
|
+
return undefined;
|
|
1747
1668
|
});
|
|
1748
1669
|
});
|
|
1749
1670
|
const top = ref();
|
|
@@ -1935,4 +1856,4 @@ function forwardRefs(target) {
|
|
|
1935
1856
|
});
|
|
1936
1857
|
}
|
|
1937
1858
|
|
|
1938
|
-
export {
|
|
1859
|
+
export { VMenuSymbol as V, VOverlay as a, animate as b, forwardRefs as f, makeVOverlayProps as m, nullifyTransforms as n, useScopeId as u };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import log from 'loglevel';
|
|
2
|
-
import { s as separateEndpointLinks, c as createTiffLayerDefinition, p as pollProcessStatus, e as extractAsyncResults, u as updateJobsStatus, a as creatAsyncProcessLayerDefinitions, b as getBboxProperty, f as generateTimePairs, h as extractGeometries, i as applyProcessLayersToMap, g as getDrawToolsProperties } from './async-
|
|
3
|
-
import {
|
|
2
|
+
import { s as separateEndpointLinks, c as createTiffLayerDefinition, p as pollProcessStatus, e as extractAsyncResults, u as updateJobsStatus, a as creatAsyncProcessLayerDefinitions, b as getBboxProperty, f as generateTimePairs, h as extractGeometries, i as applyProcessLayersToMap, g as getDrawToolsProperties } from './async-CiNIOBVz.js';
|
|
3
|
+
import { g as axios, P as isFirstLoad, e as extractLayerConfig, U as compareIndicator, Q as indicator, H as extractCollectionUrls, S as currentCompareUrl, R as currentUrl, I as generateLinksFromItems, x as getDatetimeProperty, V as comparePoi, L as datetime, ah as compareChartData, ai as chartData, $ as compareChartSpec, _ as chartSpec, M as poi, ag as getCompareLayers, F as getLayers } from './helpers-BFuh19CP.js';
|
|
4
4
|
import mustache from 'mustache';
|
|
5
|
-
import {
|
|
5
|
+
import { H as useSTAcStore, ae as readParquetItems, af as useGetSubCodeId } from './asWebComponent-IZanwL-A.js';
|
|
6
6
|
import { toAbsolute } from 'stac-js/src/http.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -643,7 +643,6 @@ async function processVector(links, jsonformValue, layerId) {
|
|
|
643
643
|
type: "Vector",
|
|
644
644
|
source: {
|
|
645
645
|
type: "Vector",
|
|
646
|
-
//@ts-expect-error TODO
|
|
647
646
|
url: mustache.render(link.href, {
|
|
648
647
|
...(jsonformValue ?? {}),
|
|
649
648
|
}),
|