@geops/rvf-mobility-web-component 0.1.97 → 0.1.99
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/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@geops/rvf-mobility-web-component",
|
|
3
3
|
"license": "UNLICENSED",
|
|
4
4
|
"description": "Web components for rvf in the domains of mobility and logistics.",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.99",
|
|
6
6
|
"homepage": "https://rvf-mobility-web-component-geops.vercel.app/",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "index.js",
|
|
@@ -14,9 +14,34 @@ const applyInitialLayerVisibility = (
|
|
|
14
14
|
const names = layersAttrValue?.split(",") || [];
|
|
15
15
|
const name = layer.get("name");
|
|
16
16
|
const shouldBeVisible = names.includes(name);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
if (layer.getVisible() !== shouldBeVisible) {
|
|
18
|
+
// If the layer is a group we apply the visibility to its sublayers,
|
|
19
|
+
// not the group itself. Group should not appear in permalink layers param
|
|
20
|
+
if ((layer as Group).getLayers) {
|
|
21
|
+
(layer as Group)
|
|
22
|
+
.getLayers()
|
|
23
|
+
.getArray()
|
|
24
|
+
.forEach((subLayer) => {
|
|
25
|
+
applyInitialLayerVisibility(layersAttrValue, subLayer);
|
|
26
|
+
});
|
|
27
|
+
} else {
|
|
28
|
+
layer.setVisible(shouldBeVisible);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// if the layer is a group we set it to false if all its sublayers are false
|
|
34
|
+
if ((layer as Group).getLayers) {
|
|
35
|
+
if (
|
|
36
|
+
layer.getVisible() &&
|
|
37
|
+
!(layer as Group)
|
|
38
|
+
.getLayers()
|
|
39
|
+
?.getArray()
|
|
40
|
+
.find((l) => {
|
|
41
|
+
return l.getVisible();
|
|
42
|
+
})
|
|
43
|
+
) {
|
|
44
|
+
layer.setVisible(false);
|
|
20
45
|
}
|
|
21
46
|
}
|
|
22
47
|
};
|
|
@@ -7,7 +7,7 @@ import applyInitialLayerVisibility from "../applyInitialLayerVisibility";
|
|
|
7
7
|
import useInitialPermalink from "./useInitialPermalink";
|
|
8
8
|
|
|
9
9
|
import type { Map } from "ol";
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
const useInitialLayersVisiblity = (
|
|
12
12
|
map: Map,
|
|
13
13
|
layers: string,
|
|
@@ -36,30 +36,14 @@ const useInitialLayersVisiblity = (
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
// We reverse the array to begin by the end of the tree (so the group layers are applied last)
|
|
39
|
-
const layersAsArray = getLayersAsFlatArray(
|
|
39
|
+
const layersAsArray = getLayersAsFlatArray(
|
|
40
|
+
map.getLayers().getArray(),
|
|
41
|
+
).reverse();
|
|
42
|
+
|
|
40
43
|
layersAsArray.forEach((layer) => {
|
|
41
44
|
applyInitialLayerVisibility(layersToUse, layer);
|
|
42
45
|
});
|
|
43
46
|
|
|
44
|
-
// Hide group if there is no children visible
|
|
45
|
-
// layersAsArray
|
|
46
|
-
// .filter((l) => {
|
|
47
|
-
// return (l as Group).getLayers;
|
|
48
|
-
// })
|
|
49
|
-
// .forEach((layer) => {
|
|
50
|
-
// if (
|
|
51
|
-
// layer.getVisible() &&
|
|
52
|
-
// !(layer as Group)
|
|
53
|
-
// .getLayers()
|
|
54
|
-
// ?.getArray()
|
|
55
|
-
// .some((l) => {
|
|
56
|
-
// return l.getVisible();
|
|
57
|
-
// })
|
|
58
|
-
// ) {
|
|
59
|
-
// layer.setVisible(false);
|
|
60
|
-
// }
|
|
61
|
-
// });
|
|
62
|
-
|
|
63
47
|
const key = map.getLayers().on("add", (event) => {
|
|
64
48
|
applyInitialLayerVisibility(layersToUse, event.element);
|
|
65
49
|
});
|