react-spatial 1.2.2 → 1.2.3-beta.3
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/LayerService.js +128 -184
- package/LayerService.js.map +7 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +163 -221
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
- package/components/BaseLayerSwitcher/index.js +1 -3
- package/components/BaseLayerSwitcher/index.js.map +7 -1
- package/components/BasicMap/BasicMap.js +147 -285
- package/components/BasicMap/BasicMap.js.map +7 -1
- package/components/BasicMap/index.js +1 -3
- package/components/BasicMap/index.js.map +7 -1
- package/components/CanvasSaveButton/CanvasSaveButton.js +165 -419
- package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
- package/components/CanvasSaveButton/index.js +1 -3
- package/components/CanvasSaveButton/index.js.map +7 -1
- package/components/Copyright/Copyright.js +29 -70
- package/components/Copyright/Copyright.js.map +7 -1
- package/components/Copyright/index.js +1 -3
- package/components/Copyright/index.js.map +7 -1
- package/components/FeatureExportButton/FeatureExportButton.js +40 -106
- package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
- package/components/FeatureExportButton/index.js +1 -3
- package/components/FeatureExportButton/index.js.map +7 -1
- package/components/FilterButton/FilterButton.js +41 -106
- package/components/FilterButton/FilterButton.js.map +7 -1
- package/components/FilterButton/index.js +1 -3
- package/components/FilterButton/index.js.map +7 -1
- package/components/FitExtent/FitExtent.js +17 -50
- package/components/FitExtent/FitExtent.js.map +7 -1
- package/components/FitExtent/index.js +1 -3
- package/components/FitExtent/index.js.map +7 -1
- package/components/FollowButton/FollowButton.js +41 -111
- package/components/FollowButton/FollowButton.js.map +7 -1
- package/components/FollowButton/index.js +1 -3
- package/components/FollowButton/index.js.map +7 -1
- package/components/Geolocation/Geolocation.js +104 -213
- package/components/Geolocation/Geolocation.js.map +7 -1
- package/components/Geolocation/index.js +1 -3
- package/components/Geolocation/index.js.map +7 -1
- package/components/LayerTree/LayerTree.js +204 -410
- package/components/LayerTree/LayerTree.js.map +7 -1
- package/components/LayerTree/index.js +1 -3
- package/components/LayerTree/index.js.map +7 -1
- package/components/MousePosition/MousePosition.js +61 -130
- package/components/MousePosition/MousePosition.js.map +7 -1
- package/components/MousePosition/index.js +1 -3
- package/components/MousePosition/index.js.map +7 -1
- package/components/NorthArrow/NorthArrow.js +22 -62
- package/components/NorthArrow/NorthArrow.js.map +7 -1
- package/components/NorthArrow/index.js +1 -3
- package/components/NorthArrow/index.js.map +7 -1
- package/components/Overlay/Overlay.js +83 -130
- package/components/Overlay/Overlay.js.map +7 -1
- package/components/Overlay/index.js +1 -3
- package/components/Overlay/index.js.map +7 -1
- package/components/Permalink/Permalink.js +150 -244
- package/components/Permalink/Permalink.js.map +7 -1
- package/components/Permalink/index.js +1 -3
- package/components/Permalink/index.js.map +7 -1
- package/components/Popup/Popup.js +106 -233
- package/components/Popup/Popup.js.map +7 -1
- package/components/Popup/index.js +1 -3
- package/components/Popup/index.js.map +7 -1
- package/components/ResizeHandler/ResizeHandler.js +58 -113
- package/components/ResizeHandler/ResizeHandler.js.map +7 -1
- package/components/ResizeHandler/index.js +1 -3
- package/components/ResizeHandler/index.js.map +7 -1
- package/components/RouteSchedule/RouteSchedule.js +150 -283
- package/components/RouteSchedule/RouteSchedule.js.map +7 -1
- package/components/RouteSchedule/index.js +1 -3
- package/components/RouteSchedule/index.js.map +7 -1
- package/components/ScaleLine/ScaleLine.js +21 -45
- package/components/ScaleLine/ScaleLine.js.map +7 -1
- package/components/ScaleLine/index.js +1 -3
- package/components/ScaleLine/index.js.map +7 -1
- package/components/Search/Search.js +122 -186
- package/components/Search/Search.js.map +7 -1
- package/components/Search/SearchService.js +45 -69
- package/components/Search/SearchService.js.map +7 -1
- package/components/Search/engines/Engine.js +18 -25
- package/components/Search/engines/Engine.js.map +7 -1
- package/components/Search/engines/StopFinder.js +21 -38
- package/components/Search/engines/StopFinder.js.map +7 -1
- package/components/Search/index.js +3 -6
- package/components/Search/index.js.map +7 -1
- package/components/StopsFinder/StopsFinder.js +123 -174
- package/components/StopsFinder/StopsFinder.js.map +7 -1
- package/components/StopsFinder/StopsFinderOption.js +37 -54
- package/components/StopsFinder/StopsFinderOption.js.map +7 -1
- package/components/StopsFinder/index.js +1 -3
- package/components/StopsFinder/index.js.map +7 -1
- package/components/TrackerControl/TrackerControl.js +73 -128
- package/components/TrackerControl/TrackerControl.js.map +7 -1
- package/components/TrackerControl/index.js +1 -3
- package/components/TrackerControl/index.js.map +7 -1
- package/components/Zoom/Zoom.js +69 -112
- package/components/Zoom/Zoom.js.map +7 -1
- package/components/Zoom/index.js +1 -3
- package/components/Zoom/index.js.map +7 -1
- package/package.json +10 -5
- package/propTypes.js +17 -23
- package/propTypes.js.map +7 -1
- package/setupTests.js +2 -4
- package/setupTests.js.map +7 -1
- package/themes/README.md +26 -0
- package/themes/default/components.scss +0 -1
- package/themes/default/examples.scss +0 -1
- package/utils/GlobalsForOle.js +63 -64
- package/utils/GlobalsForOle.js.map +7 -1
- package/utils/KML.js +178 -364
- package/utils/KML.js.map +7 -1
- package/utils/KMLFormat.js +37 -73
- package/utils/KMLFormat.js.map +7 -1
- package/utils/Styles.js +24 -32
- package/utils/Styles.js.map +7 -1
- package/utils/getPolygonPattern.js +11 -44
- package/utils/getPolygonPattern.js.map +7 -1
- package/utils/timeUtils.js +16 -35
- package/utils/timeUtils.js.map +7 -1
- package/LayerService.test.js +0 -160
- package/LayerService.test.js.map +0 -1
- package/Projections.js +0 -16
- package/Projections.js.map +0 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
- package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
- package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
- package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
- package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
- package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
- package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
- package/components/BaseLayerToggler/index.js +0 -3
- package/components/BaseLayerToggler/index.js.map +0 -1
- package/components/BasicMap/BasicMap.test.js +0 -288
- package/components/BasicMap/BasicMap.test.js.map +0 -1
- package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
- package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
- package/components/Copyright/Copyright.test.js +0 -133
- package/components/Copyright/Copyright.test.js.map +0 -1
- package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
- package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
- package/components/FilterButton/FilterButton.test.js +0 -48
- package/components/FilterButton/FilterButton.test.js.map +0 -1
- package/components/FitExtent/FitExtent.test.js +0 -44
- package/components/FitExtent/FitExtent.test.js.map +0 -1
- package/components/FollowButton/FollowButton.test.js +0 -57
- package/components/FollowButton/FollowButton.test.js.map +0 -1
- package/components/Geolocation/Geolocation.test.js +0 -263
- package/components/Geolocation/Geolocation.test.js.map +0 -1
- package/components/LayerTree/LayerTree.test.js +0 -323
- package/components/LayerTree/LayerTree.test.js.map +0 -1
- package/components/MousePosition/MousePosition.test.js +0 -125
- package/components/MousePosition/MousePosition.test.js.map +0 -1
- package/components/NorthArrow/NorthArrow.test.js +0 -106
- package/components/NorthArrow/NorthArrow.test.js.map +0 -1
- package/components/Overlay/Overlay.test.js +0 -145
- package/components/Overlay/Overlay.test.js.map +0 -1
- package/components/Permalink/Permalink.test.js +0 -267
- package/components/Permalink/Permalink.test.js.map +0 -1
- package/components/Popup/Popup.test.js +0 -291
- package/components/Popup/Popup.test.js.map +0 -1
- package/components/ResizeHandler/ResizeHandler.test.js +0 -410
- package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
- package/components/RouteSchedule/RouteSchedule.test.js +0 -102
- package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
- package/components/ScaleLine/ScaleLine.test.js +0 -32
- package/components/ScaleLine/ScaleLine.test.js.map +0 -1
- package/components/Search/Search.test.js +0 -15
- package/components/Search/Search.test.js.map +0 -1
- package/components/StopsFinder/StopsFinder.test.js +0 -19
- package/components/StopsFinder/StopsFinder.test.js.map +0 -1
- package/components/TrackerControl/TrackerControl.test.js +0 -17
- package/components/TrackerControl/TrackerControl.test.js.map +0 -1
- package/components/Zoom/Zoom.test.js +0 -150
- package/components/Zoom/Zoom.test.js.map +0 -1
- package/styleguidist/ComponentsList.js +0 -52
- package/styleguidist/ComponentsList.js.map +0 -1
- package/styleguidist/StyleGuide.js +0 -253
- package/styleguidist/StyleGuide.js.map +0 -1
- package/utils/KML.test.js +0 -163
- package/utils/KML.test.js.map +0 -1
- package/utils/KMLFormat.test.js +0 -22
- package/utils/KMLFormat.test.js.map +0 -1
- package/utils/getPolygonPattern.test.js +0 -66
- package/utils/getPolygonPattern.test.js.map +0 -1
- package/utils/timeUtils.test.js +0 -32
- package/utils/timeUtils.test.js.map +0 -1
|
@@ -1,276 +1,218 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import './BaseLayerSwitcher.scss';
|
|
8
|
-
|
|
9
|
-
var propTypes = {
|
|
10
|
-
/**
|
|
11
|
-
* An array of [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers).
|
|
12
|
-
*/
|
|
1
|
+
import React, { useState, useEffect } from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { FaChevronLeft } from "react-icons/fa";
|
|
4
|
+
import { Layer } from "mobility-toolbox-js/ol";
|
|
5
|
+
const propTypes = {
|
|
13
6
|
layers: PropTypes.arrayOf(PropTypes.instanceOf(Layer)).isRequired,
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Object containing relative paths to the base layer images. Object
|
|
17
|
-
* keys need to correspond to layer keys
|
|
18
|
-
*/
|
|
19
7
|
layerImages: PropTypes.objectOf(PropTypes.string),
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* CSS class to apply on the container.
|
|
23
|
-
*/
|
|
24
8
|
className: PropTypes.string,
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Alternative text rendered if layer images can't be loaded
|
|
28
|
-
*/
|
|
29
9
|
altText: PropTypes.string,
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Button titles.
|
|
33
|
-
*/
|
|
34
10
|
titles: PropTypes.shape({
|
|
35
11
|
button: PropTypes.string,
|
|
36
12
|
openSwitcher: PropTypes.string,
|
|
37
|
-
closeSwitcher: PropTypes.string
|
|
13
|
+
closeSwitcher: PropTypes.string
|
|
38
14
|
}),
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Image (node) rendered in the switcher close button.
|
|
42
|
-
*/
|
|
43
15
|
closeButtonImage: PropTypes.node,
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Translation function.
|
|
47
|
-
* @param {function} Translation function returning the translated string.
|
|
48
|
-
*/
|
|
49
|
-
t: PropTypes.func,
|
|
16
|
+
t: PropTypes.func
|
|
50
17
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
altText: 'Source not found',
|
|
18
|
+
const defaultProps = {
|
|
19
|
+
className: "rs-base-layer-switcher",
|
|
20
|
+
altText: "Source not found",
|
|
55
21
|
titles: {
|
|
56
|
-
button:
|
|
57
|
-
openSwitcher:
|
|
58
|
-
closeSwitcher:
|
|
22
|
+
button: "Base layers",
|
|
23
|
+
openSwitcher: "Open Baselayer-Switcher",
|
|
24
|
+
closeSwitcher: "Close Baselayer-Switcher"
|
|
59
25
|
},
|
|
60
|
-
closeButtonImage: React.createElement(
|
|
61
|
-
layerImages:
|
|
62
|
-
t:
|
|
26
|
+
closeButtonImage: /* @__PURE__ */ React.createElement(FaChevronLeft, null),
|
|
27
|
+
layerImages: void 0,
|
|
28
|
+
t: (s) => {
|
|
63
29
|
return s;
|
|
64
|
-
}
|
|
30
|
+
}
|
|
65
31
|
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return layers.find(function (layer) {
|
|
32
|
+
const getVisibleLayer = (layers) => {
|
|
33
|
+
return layers.find((layer) => {
|
|
69
34
|
return layer.visible;
|
|
70
35
|
});
|
|
71
36
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
layers.find(function (layer) {
|
|
37
|
+
const getNextImage = (currentLayer, layers, layerImages) => {
|
|
38
|
+
const currentIndex = layers.indexOf(
|
|
39
|
+
layers.find((layer) => {
|
|
76
40
|
return layer === currentLayer;
|
|
77
41
|
})
|
|
78
42
|
);
|
|
79
|
-
|
|
43
|
+
const nextIndex = currentIndex + 1 === layers.length ? 0 : currentIndex + 1;
|
|
80
44
|
return layerImages[nextIndex];
|
|
81
45
|
};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
backgroundPosition: 'center',
|
|
90
|
-
}
|
|
91
|
-
: null;
|
|
46
|
+
const getImageStyle = (url) => {
|
|
47
|
+
return url ? {
|
|
48
|
+
backgroundImage: `url(${url})`,
|
|
49
|
+
backgroundSize: "cover",
|
|
50
|
+
backgroundRepeat: "no-repeat",
|
|
51
|
+
backgroundPosition: "center"
|
|
52
|
+
} : null;
|
|
92
53
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
var closeButtonImage = ref.closeButtonImage;
|
|
107
|
-
var t = ref.t;
|
|
108
|
-
|
|
109
|
-
var baseLayers = layers.filter(function (layer) {
|
|
110
|
-
return layer.isBaseLayer;
|
|
111
|
-
});
|
|
112
|
-
var ref$1 = useState(false);
|
|
113
|
-
var switcherOpen = ref$1[0];
|
|
114
|
-
var setSwitcherOpen = ref$1[1];
|
|
115
|
-
var ref$2 = useState(true);
|
|
116
|
-
var isClosed = ref$2[0];
|
|
117
|
-
var setIsClosed = ref$2[1];
|
|
118
|
-
var ref$3 = useState(
|
|
119
|
-
getVisibleLayer(baseLayers) || baseLayers[0]
|
|
54
|
+
function BaseLayerSwitcher({
|
|
55
|
+
layers,
|
|
56
|
+
layerImages,
|
|
57
|
+
className,
|
|
58
|
+
altText,
|
|
59
|
+
titles,
|
|
60
|
+
closeButtonImage,
|
|
61
|
+
t
|
|
62
|
+
}) {
|
|
63
|
+
const [switcherOpen, setSwitcherOpen] = useState(false);
|
|
64
|
+
const [isClosed, setIsClosed] = useState(true);
|
|
65
|
+
const [currentLayer, setCurrentLayer] = useState(
|
|
66
|
+
getVisibleLayer(layers) || layers[0]
|
|
120
67
|
);
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
var openClass = switcherOpen ? ' rs-open' : '';
|
|
134
|
-
var hiddenStyle = switcherOpen && !isClosed ? 'visible' : 'hidden';
|
|
135
|
-
|
|
136
|
-
var handleSwitcherClick = function () {
|
|
137
|
-
if (baseLayers.length === 2) {
|
|
138
|
-
/* On only two layer options the opener becomes a layer toggle button */
|
|
139
|
-
var nextLayer = baseLayers.find(function (layer) {
|
|
68
|
+
const images = layerImages ? Object.keys(layerImages).map((layerImage) => {
|
|
69
|
+
return layerImages[layerImage];
|
|
70
|
+
}) : layers.map((layer) => {
|
|
71
|
+
return layer.get("previewImage");
|
|
72
|
+
});
|
|
73
|
+
const openClass = switcherOpen ? " rs-open" : "";
|
|
74
|
+
const hiddenStyle = switcherOpen && !isClosed ? "visible" : "hidden";
|
|
75
|
+
const handleSwitcherClick = () => {
|
|
76
|
+
if (layers.length === 2) {
|
|
77
|
+
const nextLayer = layers.find((layer) => {
|
|
140
78
|
return !layer.visible;
|
|
141
79
|
});
|
|
142
|
-
currentLayer.setVisible
|
|
80
|
+
if (currentLayer.setVisible) {
|
|
81
|
+
currentLayer.setVisible(false);
|
|
82
|
+
} else {
|
|
83
|
+
currentLayer.visible = false;
|
|
84
|
+
}
|
|
143
85
|
setCurrentLayer(nextLayer);
|
|
144
|
-
nextLayer.setVisible
|
|
86
|
+
if (nextLayer.setVisible) {
|
|
87
|
+
nextLayer.setVisible(true);
|
|
88
|
+
} else {
|
|
89
|
+
nextLayer.visible = true;
|
|
90
|
+
}
|
|
145
91
|
return;
|
|
146
92
|
}
|
|
147
|
-
// eslint-disable-next-line consistent-return
|
|
148
93
|
return setSwitcherOpen(true) && setIsClosed(false);
|
|
149
94
|
};
|
|
150
|
-
|
|
151
|
-
var onLayerSelect = function (layer) {
|
|
95
|
+
const onLayerSelect = (layer) => {
|
|
152
96
|
if (!switcherOpen) {
|
|
153
97
|
setSwitcherOpen(true);
|
|
154
98
|
return;
|
|
155
99
|
}
|
|
156
100
|
setCurrentLayer(layer);
|
|
157
|
-
layer.setVisible
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
101
|
+
if (layer.setVisible) {
|
|
102
|
+
layer.setVisible(true);
|
|
103
|
+
} else {
|
|
104
|
+
layer.visible = true;
|
|
105
|
+
}
|
|
106
|
+
layers.filter((l) => {
|
|
107
|
+
return l !== layer;
|
|
108
|
+
}).forEach((l) => {
|
|
109
|
+
if (l.setVisible) {
|
|
110
|
+
l.setVisible(false);
|
|
111
|
+
} else {
|
|
112
|
+
l.visible = false;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
165
115
|
setSwitcherOpen(false);
|
|
166
116
|
};
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
useEffect(function () {
|
|
172
|
-
/* Ensure correct layer is active on app load */
|
|
173
|
-
if (currentLayer !== getVisibleLayer(baseLayers)) {
|
|
174
|
-
setCurrentLayer(getVisibleLayer(baseLayers) || baseLayers[0]);
|
|
117
|
+
const nextImage = getNextImage(currentLayer, layers, images);
|
|
118
|
+
useEffect(() => {
|
|
119
|
+
if (currentLayer !== getVisibleLayer(layers)) {
|
|
120
|
+
setCurrentLayer(getVisibleLayer(layers) || layers[0]);
|
|
175
121
|
}
|
|
176
|
-
}, [currentLayer,
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
/* Used for correct layer image render with animation */
|
|
180
|
-
var timeout;
|
|
122
|
+
}, [currentLayer, layers]);
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
let timeout;
|
|
181
125
|
if (!switcherOpen) {
|
|
182
|
-
timeout = setTimeout(
|
|
126
|
+
timeout = setTimeout(() => {
|
|
183
127
|
setIsClosed(true);
|
|
184
128
|
}, 200);
|
|
185
129
|
} else {
|
|
186
|
-
timeout = setTimeout(
|
|
130
|
+
timeout = setTimeout(() => {
|
|
187
131
|
setIsClosed(false);
|
|
188
132
|
}, 800);
|
|
189
133
|
}
|
|
190
|
-
return
|
|
134
|
+
return () => {
|
|
191
135
|
return clearTimeout(timeout);
|
|
192
136
|
};
|
|
193
137
|
}, [switcherOpen]);
|
|
194
|
-
|
|
195
|
-
if (!baseLayers || baseLayers.length < 2 || !currentLayer) {
|
|
138
|
+
if (!layers || layers.length < 2 || !currentLayer) {
|
|
196
139
|
return null;
|
|
197
140
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
141
|
+
const toggleBtn = /* @__PURE__ */ React.createElement("div", {
|
|
142
|
+
className: "rs-base-layer-switcher-btn-wrapper"
|
|
143
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
144
|
+
className: "rs-base-layer-switcher-close-btn",
|
|
145
|
+
role: "button",
|
|
146
|
+
onClick: () => {
|
|
147
|
+
return setSwitcherOpen(false);
|
|
148
|
+
},
|
|
149
|
+
onKeyPress: (e) => {
|
|
150
|
+
return e.which === 13 && setSwitcherOpen(false);
|
|
151
|
+
},
|
|
152
|
+
tabIndex: switcherOpen ? "0" : "-1",
|
|
153
|
+
"aria-label": titles.closeSwitcher,
|
|
154
|
+
title: titles.closeSwitcher
|
|
155
|
+
}, closeButtonImage));
|
|
156
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
157
|
+
className: `${className}${openClass}`
|
|
158
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
159
|
+
className: `rs-base-layer-switcher-button rs-opener${openClass}`,
|
|
160
|
+
role: "button",
|
|
161
|
+
title: titles.openSwitcher,
|
|
162
|
+
"aria-label": titles.openSwitcher,
|
|
163
|
+
onClick: handleSwitcherClick,
|
|
164
|
+
onKeyPress: (e) => {
|
|
165
|
+
if (e.which === 13) {
|
|
166
|
+
handleSwitcherClick();
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
style: getImageStyle(nextImage),
|
|
170
|
+
tabIndex: "0"
|
|
171
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
172
|
+
className: "rs-base-layer-switcher-title"
|
|
173
|
+
}, layers.length !== 2 ? titles.button : layers.find((layer) => {
|
|
174
|
+
return !layer.visible;
|
|
175
|
+
}) && t(
|
|
176
|
+
layers.find((layer) => {
|
|
177
|
+
return !layer.visible;
|
|
178
|
+
}).name
|
|
179
|
+
)), nextImage ? null : /* @__PURE__ */ React.createElement("span", {
|
|
180
|
+
className: "rs-alt-text"
|
|
181
|
+
}, t(altText))), layers.map((layer, idx) => {
|
|
182
|
+
const layerName = layer.name;
|
|
183
|
+
const activeClass = layerName === currentLayer.name ? " rs-active" : "";
|
|
184
|
+
const imageStyle = getImageStyle(
|
|
185
|
+
layerImages ? layerImages[`${layer.key}`] : layer.get("previewImage")
|
|
186
|
+
);
|
|
187
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
188
|
+
key: layer.key,
|
|
189
|
+
className: "rs-base-layer-switcher-btn-wrapper",
|
|
190
|
+
style: {
|
|
191
|
+
overflow: hiddenStyle,
|
|
192
|
+
zIndex: layers.length - idx
|
|
193
|
+
}
|
|
194
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
195
|
+
className: `rs-base-layer-switcher-button${openClass}`,
|
|
196
|
+
role: "button",
|
|
197
|
+
title: t(layerName),
|
|
198
|
+
"aria-label": t(layerName),
|
|
199
|
+
onClick: () => {
|
|
200
|
+
return onLayerSelect(layer);
|
|
201
|
+
},
|
|
202
|
+
onKeyPress: (e) => {
|
|
203
|
+
if (e.which === 13) {
|
|
204
|
+
onLayerSelect(layer);
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
style: imageStyle,
|
|
208
|
+
tabIndex: switcherOpen ? "0" : "-1"
|
|
209
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
210
|
+
className: `rs-base-layer-switcher-title${activeClass}`
|
|
211
|
+
}, t(layerName)), imageStyle ? null : /* @__PURE__ */ React.createElement("span", {
|
|
212
|
+
className: "rs-alt-text"
|
|
213
|
+
}, t(altText))));
|
|
214
|
+
}), toggleBtn);
|
|
269
215
|
}
|
|
270
|
-
|
|
271
216
|
BaseLayerSwitcher.propTypes = propTypes;
|
|
272
217
|
BaseLayerSwitcher.defaultProps = defaultProps;
|
|
273
|
-
|
|
274
218
|
export default BaseLayerSwitcher;
|
|
275
|
-
|
|
276
|
-
//# sourceMappingURL=BaseLayerSwitcher.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLayerSwitcher.js","sources":["../../../src/components/BaseLayerSwitcher/BaseLayerSwitcher.js"],"sourcesContent":["/* eslint-disable jsx-a11y/interactive-supports-focus */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronLeft } from 'react-icons/fa';\nimport { Layer } from 'mobility-toolbox-js/ol';\n\nimport './BaseLayerSwitcher.scss';\n\nconst propTypes = {\n /**\n * An array of [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers).\n */\n layers: PropTypes.arrayOf(PropTypes.instanceOf(Layer)).isRequired,\n\n /**\n * Object containing relative paths to the base layer images. Object\n * keys need to correspond to layer keys\n */\n layerImages: PropTypes.objectOf(PropTypes.string),\n\n /**\n * CSS class to apply on the container.\n */\n className: PropTypes.string,\n\n /**\n * Alternative text rendered if layer images can't be loaded\n */\n altText: PropTypes.string,\n\n /**\n * Button titles.\n */\n titles: PropTypes.shape({\n button: PropTypes.string,\n openSwitcher: PropTypes.string,\n closeSwitcher: PropTypes.string,\n }),\n\n /**\n * Image (node) rendered in the switcher close button.\n */\n closeButtonImage: PropTypes.node,\n\n /**\n * Translation function.\n * @param {function} Translation function returning the translated string.\n */\n t: PropTypes.func,\n};\n\nconst defaultProps = {\n className: 'rs-base-layer-switcher',\n altText: 'Source not found',\n titles: {\n button: 'Base layers',\n openSwitcher: 'Open Baselayer-Switcher',\n closeSwitcher: 'Close Baselayer-Switcher',\n },\n closeButtonImage: <FaChevronLeft />,\n layerImages: undefined,\n t: (s) => {\n return s;\n },\n};\n\nconst getVisibleLayer = (layers) => {\n return layers.find((layer) => {\n return layer.visible;\n });\n};\n\nconst getNextImage = (currentLayer, layers, layerImages) => {\n const currentIndex = layers.indexOf(\n layers.find((layer) => {\n return layer === currentLayer;\n }),\n );\n const nextIndex = currentIndex + 1 === layers.length ? 0 : currentIndex + 1;\n return layerImages[nextIndex];\n};\n\nconst getImageStyle = (url) => {\n return url\n ? {\n backgroundImage: `url(${url})`,\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n }\n : null;\n};\n\n/**\n * The BaseLayerSwitcher component renders a button interface for switching the visible\n * [mobility-toolbox-js layer](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers)\n * when defined as base layer.\n */\n\nfunction BaseLayerSwitcher({\n layers,\n layerImages,\n className,\n altText,\n titles,\n closeButtonImage,\n t,\n}) {\n const baseLayers = layers.filter((layer) => {\n return layer.isBaseLayer;\n });\n const [switcherOpen, setSwitcherOpen] = useState(false);\n const [isClosed, setIsClosed] = useState(true);\n const [currentLayer, setCurrentLayer] = useState(\n getVisibleLayer(baseLayers) || baseLayers[0],\n );\n\n /* Images are loaded from props if provided, fallback from layer */\n const images = layerImages\n ? Object.keys(layerImages).map((layerImage) => {\n return layerImages[layerImage];\n })\n : baseLayers.map((layer) => {\n return layer.get('previewImage');\n });\n\n const openClass = switcherOpen ? ' rs-open' : '';\n const hiddenStyle = switcherOpen && !isClosed ? 'visible' : 'hidden';\n\n const handleSwitcherClick = () => {\n if (baseLayers.length === 2) {\n /* On only two layer options the opener becomes a layer toggle button */\n const nextLayer = baseLayers.find((layer) => {\n return !layer.visible;\n });\n currentLayer.setVisible(false);\n setCurrentLayer(nextLayer);\n nextLayer.setVisible(true);\n return;\n }\n // eslint-disable-next-line consistent-return\n return setSwitcherOpen(true) && setIsClosed(false);\n };\n\n const onLayerSelect = (layer) => {\n if (!switcherOpen) {\n setSwitcherOpen(true);\n return;\n }\n setCurrentLayer(layer);\n layer.setVisible(true);\n baseLayers\n .filter((l) => {\n return l !== layer;\n })\n .forEach((l) => {\n return l.setVisible(false);\n });\n setSwitcherOpen(false);\n };\n\n /* Get next image for closed button */\n const nextImage = getNextImage(currentLayer, baseLayers, images);\n\n useEffect(() => {\n /* Ensure correct layer is active on app load */\n if (currentLayer !== getVisibleLayer(baseLayers)) {\n setCurrentLayer(getVisibleLayer(baseLayers) || baseLayers[0]);\n }\n }, [currentLayer, baseLayers]);\n\n useEffect(() => {\n /* Used for correct layer image render with animation */\n let timeout;\n if (!switcherOpen) {\n timeout = setTimeout(() => {\n setIsClosed(true);\n }, 200);\n } else {\n timeout = setTimeout(() => {\n setIsClosed(false);\n }, 800);\n }\n return () => {\n return clearTimeout(timeout);\n };\n }, [switcherOpen]);\n\n if (!baseLayers || baseLayers.length < 2 || !currentLayer) {\n return null;\n }\n\n const toggleBtn = (\n <div className=\"rs-base-layer-switcher-btn-wrapper\">\n <div\n className=\"rs-base-layer-switcher-close-btn\"\n role=\"button\"\n onClick={() => {\n return setSwitcherOpen(false);\n }}\n onKeyPress={(e) => {\n return e.which === 13 && setSwitcherOpen(false);\n }}\n tabIndex={switcherOpen ? '0' : '-1'}\n aria-label={titles.closeSwitcher}\n title={titles.closeSwitcher}\n >\n {closeButtonImage}\n </div>\n </div>\n );\n\n return (\n <div className={`${className}${openClass}`}>\n <div\n className={`rs-base-layer-switcher-button rs-opener${openClass}`}\n role=\"button\"\n title={titles.openSwitcher}\n aria-label={titles.openSwitcher}\n onClick={handleSwitcherClick}\n onKeyPress={(e) => {\n if (e.which === 13) {\n handleSwitcherClick();\n }\n }}\n style={getImageStyle(nextImage)}\n tabIndex=\"0\"\n >\n <div className=\"rs-base-layer-switcher-title\">\n {baseLayers.length !== 2\n ? titles.button\n : baseLayers.find((layer) => {\n return !layer.visible;\n }) &&\n t(\n baseLayers.find((layer) => {\n return !layer.visible;\n }).name,\n )}\n </div>\n {nextImage ? null : <span className=\"rs-alt-text\">{t(altText)}</span>}\n </div>\n {baseLayers.map((layer, idx) => {\n const layerName = layer.name;\n const activeClass = layerName === currentLayer.name ? ' rs-active' : '';\n const imageStyle = getImageStyle(\n layerImages ? layerImages[`${layer.key}`] : layer.get('previewImage'),\n );\n return (\n <div\n key={layer.key}\n className=\"rs-base-layer-switcher-btn-wrapper\"\n style={{\n /* stylelint-disable-next-line value-keyword-case */\n overflow: hiddenStyle,\n /* stylelint-disable-next-line value-keyword-case */\n zIndex: baseLayers.length - idx,\n }}\n >\n <div\n className={`rs-base-layer-switcher-button${openClass}`}\n role=\"button\"\n title={t(layerName)}\n aria-label={t(layerName)}\n onClick={() => {\n return onLayerSelect(layer);\n }}\n onKeyPress={(e) => {\n if (e.which === 13) {\n onLayerSelect(layer);\n }\n }}\n style={imageStyle}\n tabIndex={switcherOpen ? '0' : '-1'}\n >\n <div className={`rs-base-layer-switcher-title${activeClass}`}>\n {t(layerName)}\n </div>\n {imageStyle ? null : (\n <span className=\"rs-alt-text\">{t(altText)}</span>\n )}\n </div>\n </div>\n );\n })}\n {toggleBtn}\n </div>\n );\n}\n\nBaseLayerSwitcher.propTypes = propTypes;\nBaseLayerSwitcher.defaultProps = defaultProps;\n\nexport default BaseLayerSwitcher;\n"],"names":["const","let"],"mappings":"AAAA;AACA,OAAO,KAAK,IAAI,QAAQ,EAAE,SAAS,QAAQ,OAAO,CAAC;AACnD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,SAAS,aAAa,QAAQ,gBAAgB,CAAC;AAC/C,SAAS,KAAK,QAAQ,wBAAwB,CAAC;AAC/C;AACA,OAAO,0BAA0B,CAAC;AAClC;AACAA,GAAK,CAAC,SAAS,GAAG;AAClB;AACA;AACA;AACA,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;AACnE;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;AACnD;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM;AAC7B;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM;AAC3B;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;AAC1B,IAAI,MAAM,EAAE,SAAS,CAAC,MAAM;AAC5B,IAAI,YAAY,EAAE,SAAS,CAAC,MAAM;AAClC,IAAI,aAAa,EAAE,SAAS,CAAC,MAAM;AACnC,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA,EAAE,gBAAgB,EAAE,SAAS,CAAC,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI;AACnB,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG;AACrB,EAAE,SAAS,EAAE,wBAAwB;AACrC,EAAE,OAAO,EAAE,kBAAkB;AAC7B,EAAE,MAAM,EAAE;AACV,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,YAAY,EAAE,yBAAyB;AAC3C,IAAI,aAAa,EAAE,0BAA0B;AAC7C,GAAG;AACH,EAAE,gBAAgB,EAAE,qBAAC,mBAAa,EAAG;AACrC,EAAE,WAAW,EAAE,SAAS;AACxB,EAAE,CAAC,WAAE,CAAC,CAAC,EAAK;AACZ,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,eAAe,YAAG,CAAC,MAAM,EAAK;AACpC,EAAE,OAAO,MAAM,CAAC,IAAI,UAAC,CAAC,KAAK,EAAK;AAChC,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC;AACzB,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,YAAG,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAK;AAC5D,EAAEA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO;AACrC,IAAI,MAAM,CAAC,IAAI,UAAC,CAAC,KAAK,EAAK;AAC3B,MAAM,OAAO,KAAK,KAAK,YAAY,CAAC;AACpC,KAAK,CAAE;AACP,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,SAAS,GAAG,YAAY,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;AAC9E,EAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,aAAa,YAAG,CAAC,GAAG,EAAK;AAC/B,EAAE,OAAO,GAAG;AACZ,MAAM;AACN,QAAQ,eAAe,EAAE,UAAO,GAAG,OAAG;AACtC,QAAQ,cAAc,EAAE,OAAO;AAC/B,QAAQ,gBAAgB,EAAE,WAAW;AACrC,QAAQ,kBAAkB,EAAE,QAAQ;AACpC,OAAO;AACP,MAAM,IAAI,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,IAQzB,EAAE,CAPD;0BACA;oCACA;gCACA;4BACA;0BACA;8CACA;;AACE;AACJ,EAAEA,GAAK,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,UAAC,CAAC,KAAK,EAAK;AAC9C,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC;AAC7B,GAAG,CAAC,CAAC;AACL,WAAuC,GAAG,QAAQ,CAAC,KAAK;EAA/C;EAAc,+BAAmC;AAC1D,WAA+B,GAAG,QAAQ,CAAC,IAAI;EAAtC;EAAU,2BAA8B;AACjD,WAAuC,GAAG,QAAQ;AAClD,IAAI,eAAe,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAE;AACjD;EAFS;EAAc,+BAEnB;AACJ;AACA;AACA,EAAEA,GAAK,CAAC,MAAM,GAAG,WAAW;AAC5B,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,UAAC,CAAC,UAAU,EAAK;AACnD,QAAQ,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;AACvC,OAAO,CAAC;AACR,MAAM,UAAU,CAAC,GAAG,UAAC,CAAC,KAAK,EAAK;AAChC,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACzC,OAAO,CAAC,CAAC;AACT;AACA,EAAEA,GAAK,CAAC,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,EAAE,CAAC;AACnD,EAAEA,GAAK,CAAC,WAAW,GAAG,YAAY,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AACvE;AACA,EAAEA,GAAK,CAAC,mBAAmB,YAAG,GAAM;AACpC,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC;AACA,MAAMA,GAAK,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,UAAC,CAAC,KAAK,EAAK;AACnD,QAAQ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9B,OAAO,CAAC,CAAC;AACT,MAAM,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACrC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;AACjC,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AACvD,GAAG,CAAC;AACJ;AACA,EAAEA,GAAK,CAAC,aAAa,YAAG,CAAC,KAAK,EAAK;AACnC,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;AAC5B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC3B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,UAAU;AACd,OAAO,MAAM,UAAC,CAAC,CAAC,EAAK;AACrB,QAAQ,OAAO,CAAC,KAAK,KAAK,CAAC;AAC3B,OAAO,CAAC;AACR,OAAO,OAAO,UAAC,CAAC,CAAC,EAAK;AACtB,QAAQ,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACnC,OAAO,CAAC,CAAC;AACT,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC3B,GAAG,CAAC;AACJ;AACA;AACA,EAAEA,GAAK,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACnE;AACA,EAAE,SAAS,UAAC,GAAM;AAClB;AACA,IAAI,IAAI,YAAY,KAAK,eAAe,CAAC,UAAU,CAAC,EAAE;AACtD,MAAM,eAAe,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,KAAK;AACL,GAAG,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;AACjC;AACA,EAAE,SAAS,UAAC,GAAM;AAClB;AACA,IAAIC,GAAG,CAAC,OAAO,CAAC;AAChB,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,MAAM,OAAO,GAAG,UAAU,UAAC,GAAM;AACjC,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1B,OAAO,EAAE,GAAG,CAAC,CAAC;AACd,KAAK,MAAM;AACX,MAAM,OAAO,GAAG,UAAU,UAAC,GAAM;AACjC,QAAQ,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,OAAO,EAAE,GAAG,CAAC,CAAC;AACd,KAAK;AACL,IAAI,gBAAO,GAAM;AACjB,MAAM,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACrB;AACA,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE;AAC7D,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAED,GAAK,CAAC,SAAS,GAAG;AACpB,IAAI,sBAAC,OAAG,CAAC,WAAU,uCAAqC;AACxD,MAAM,sBAAC,OAAG;AACV,QAAQ,WAAU,kCAAkC,EAC5C,MAAK,QAAQ,EACb,kBAAS,GAAM;AACvB,UAAU,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AACxC,SAAU,EACF,qBAAY,CAAC,CAAC,EAAK;AAC3B,UAAU,OAAO,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC1D,SAAU,EACF,UAAU,YAAY,GAAG,GAAG,GAAG,IAAK,EACpC,cAAY,MAAM,CAAC,aAAc,EACjC,OAAO,MAAM,CAAC,gBACf;AACP,QAAS,gBAAiB;AAC1B,MAAM,CAAM;AACZ,IAAI,CAAM;AACV,GAAG,CAAC;AACJ;AACA,EAAE,OAAO;AACT,IAAI,sBAAC,OAAG,CAAC,WAAW,MAAG,YAAY,aAAa;AAChD,MAAM,sBAAC,OAAG;AACV,QAAQ,WAAW,6CAA0C,UAAY,EACjE,MAAK,QAAQ,EACb,OAAO,MAAM,CAAC,YAAa,EAC3B,cAAY,MAAM,CAAC,YAAa,EAChC,SAAS,mBAAoB,EAC7B,qBAAY,CAAC,CAAC,EAAK;AAC3B,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,EAAE;AAC9B,YAAY,mBAAmB,EAAE,CAAC;AAClC,WAAW;AACX,SAAU,EACF,OAAO,aAAa,CAAC,SAAS,CAAE,EAChC,UAAS,MACV;AACP,QAAQ,sBAAC,OAAG,CAAC,WAAU,iCAA+B;AACtD,UAAW,UAAU,CAAC,MAAM,KAAK,CAAC;AAClC,cAAc,MAAM,CAAC,MAAM;AAC3B,cAAc,UAAU,CAAC,IAAI,UAAC,CAAC,KAAK,EAAK;AACzC,gBAAgB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;AACtC,eAAe,CAAC;AAChB,cAAc,CAAC;AACf,gBAAgB,UAAU,CAAC,IAAI,UAAC,CAAC,KAAK,EAAK;AAC3C,kBAAkB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;AACxC,iBAAiB,CAAC,CAAC,IAAK;AACxB,eAAgB;AAChB,QAAQ,EAAM;AACd,QAAS,SAAS,GAAG,IAAI,GAAG,sBAAC,QAAI,CAAC,WAAU,iBAAe,CAAC,CAAC,OAAO,CAAE,CAAQ;AAC9E,MAAM,EAAM;AACZ,MAAO,UAAU,CAAC,GAAG,UAAC,CAAC,KAAK,EAAE,GAAG,EAAK;AACtC,QAAQA,GAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;AACrC,QAAQA,GAAK,CAAC,WAAW,GAAG,SAAS,KAAK,YAAY,CAAC,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;AAChF,QAAQA,GAAK,CAAC,UAAU,GAAG,aAAa;AACxC,UAAU,WAAW,GAAG,WAAW,CAAC,OAAG,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAE;AAChF,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,UAAU,sBAAC,OAAG;AACd,YAAY,KAAK,KAAK,CAAC,GAAI,EACf,WAAU,oCAAoC,EAC9C,OAAO;AACnB;AACA,cAAc,QAAQ,EAAE,WAAW;AACnC;AACA,cAAc,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,GAAG;AAC7C,gBACW;AACX,YAAY,sBAAC,OAAG;AAChB,cAAc,WAAW,mCAAgC,UAAY,EACvD,MAAK,QAAQ,EACb,OAAO,CAAC,CAAC,SAAS,CAAE,EACpB,cAAY,CAAC,CAAC,SAAS,CAAE,EACzB,kBAAS,GAAM;AAC7B,gBAAgB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,eAAgB,EACF,qBAAY,CAAC,CAAC,EAAK;AACjC,gBAAgB,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,EAAE;AACpC,kBAAkB,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,iBAAiB;AACjB,eAAgB,EACF,OAAO,UAAW,EAClB,UAAU,YAAY,GAAG,GAAG,GAAG,OAChC;AACb,cAAc,sBAAC,OAAG,CAAC,WAAW,kCAA+B,eAAe;AAC5E,gBAAiB,CAAC,CAAC,SAAS,CAAE;AAC9B,cAAc,EAAM;AACpB,cAAe,UAAU,GAAG,IAAI,GAAG;AACnC,gBAAgB,sBAAC,QAAI,CAAC,WAAU,iBAAe,CAAC,CAAC,OAAO,CAAE,CAAO;AACjE,eAAgB;AAChB,YAAY,CAAM;AAClB,UAAU,CAAM;AAChB,SAAS,CAAC;AACV,OAAO,EAAE;AACT,MAAO,SAAU;AACjB,IAAI,CAAM;AACV,GAAG,CAAC;AACJ,CAAC;AACD;AACA,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;AACxC,iBAAiB,CAAC,YAAY,GAAG,YAAY,CAAC;AAC9C;AACA,eAAe,iBAAiB,CAAC;"}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/BaseLayerSwitcher/BaseLayerSwitcher.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable jsx-a11y/interactive-supports-focus */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronLeft } from 'react-icons/fa';\nimport { Layer } from 'mobility-toolbox-js/ol';\n\nconst propTypes = {\n /**\n * An array of [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers).\n */\n layers: PropTypes.arrayOf(PropTypes.instanceOf(Layer)).isRequired,\n\n /**\n * Object containing relative paths to the base layer images. Object\n * keys need to correspond to layer keys\n */\n layerImages: PropTypes.objectOf(PropTypes.string),\n\n /**\n * CSS class to apply on the container.\n */\n className: PropTypes.string,\n\n /**\n * Alternative text rendered if layer images can't be loaded\n */\n altText: PropTypes.string,\n\n /**\n * Button titles.\n */\n titles: PropTypes.shape({\n button: PropTypes.string,\n openSwitcher: PropTypes.string,\n closeSwitcher: PropTypes.string,\n }),\n\n /**\n * Image (node) rendered in the switcher close button.\n */\n closeButtonImage: PropTypes.node,\n\n /**\n * Translation function.\n * @param {function} Translation function returning the translated string.\n */\n t: PropTypes.func,\n};\n\nconst defaultProps = {\n className: 'rs-base-layer-switcher',\n altText: 'Source not found',\n titles: {\n button: 'Base layers',\n openSwitcher: 'Open Baselayer-Switcher',\n closeSwitcher: 'Close Baselayer-Switcher',\n },\n closeButtonImage: <FaChevronLeft />,\n layerImages: undefined,\n t: (s) => {\n return s;\n },\n};\n\nconst getVisibleLayer = (layers) => {\n return layers.find((layer) => {\n return layer.visible;\n });\n};\n\nconst getNextImage = (currentLayer, layers, layerImages) => {\n const currentIndex = layers.indexOf(\n layers.find((layer) => {\n return layer === currentLayer;\n }),\n );\n const nextIndex = currentIndex + 1 === layers.length ? 0 : currentIndex + 1;\n return layerImages[nextIndex];\n};\n\nconst getImageStyle = (url) => {\n return url\n ? {\n backgroundImage: `url(${url})`,\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n }\n : null;\n};\n\n/**\n * The BaseLayerSwitcher component renders a button interface for switching the visible\n * [mobility-toolbox-js layer](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers)\n * when defined as base layer.\n */\n\nfunction BaseLayerSwitcher({\n layers,\n layerImages,\n className,\n altText,\n titles,\n closeButtonImage,\n t,\n}) {\n const [switcherOpen, setSwitcherOpen] = useState(false);\n const [isClosed, setIsClosed] = useState(true);\n const [currentLayer, setCurrentLayer] = useState(\n getVisibleLayer(layers) || layers[0],\n );\n\n /* Images are loaded from props if provided, fallback from layer */\n const images = layerImages\n ? Object.keys(layerImages).map((layerImage) => {\n return layerImages[layerImage];\n })\n : layers.map((layer) => {\n return layer.get('previewImage');\n });\n\n const openClass = switcherOpen ? ' rs-open' : '';\n const hiddenStyle = switcherOpen && !isClosed ? 'visible' : 'hidden';\n\n const handleSwitcherClick = () => {\n if (layers.length === 2) {\n /* On only two layer options the opener becomes a layer toggle button */\n const nextLayer = layers.find((layer) => {\n return !layer.visible;\n });\n if (currentLayer.setVisible) {\n currentLayer.setVisible(false);\n } else {\n currentLayer.visible = false;\n }\n setCurrentLayer(nextLayer);\n if (nextLayer.setVisible) {\n nextLayer.setVisible(true);\n } else {\n nextLayer.visible = true;\n }\n return;\n }\n // eslint-disable-next-line consistent-return\n return setSwitcherOpen(true) && setIsClosed(false);\n };\n\n const onLayerSelect = (layer) => {\n if (!switcherOpen) {\n setSwitcherOpen(true);\n return;\n }\n setCurrentLayer(layer);\n if (layer.setVisible) {\n layer.setVisible(true);\n } else {\n // eslint-disable-next-line no-param-reassign\n layer.visible = true;\n }\n layers\n .filter((l) => {\n return l !== layer;\n })\n .forEach((l) => {\n if (l.setVisible) {\n l.setVisible(false);\n } else {\n // eslint-disable-next-line no-param-reassign\n l.visible = false;\n }\n });\n setSwitcherOpen(false);\n };\n\n /* Get next image for closed button */\n const nextImage = getNextImage(currentLayer, layers, images);\n\n useEffect(() => {\n /* Ensure correct layer is active on app load */\n if (currentLayer !== getVisibleLayer(layers)) {\n setCurrentLayer(getVisibleLayer(layers) || layers[0]);\n }\n }, [currentLayer, layers]);\n\n useEffect(() => {\n /* Used for correct layer image render with animation */\n let timeout;\n if (!switcherOpen) {\n timeout = setTimeout(() => {\n setIsClosed(true);\n }, 200);\n } else {\n timeout = setTimeout(() => {\n setIsClosed(false);\n }, 800);\n }\n return () => {\n return clearTimeout(timeout);\n };\n }, [switcherOpen]);\n\n if (!layers || layers.length < 2 || !currentLayer) {\n return null;\n }\n\n const toggleBtn = (\n <div className=\"rs-base-layer-switcher-btn-wrapper\">\n <div\n className=\"rs-base-layer-switcher-close-btn\"\n role=\"button\"\n onClick={() => {\n return setSwitcherOpen(false);\n }}\n onKeyPress={(e) => {\n return e.which === 13 && setSwitcherOpen(false);\n }}\n tabIndex={switcherOpen ? '0' : '-1'}\n aria-label={titles.closeSwitcher}\n title={titles.closeSwitcher}\n >\n {closeButtonImage}\n </div>\n </div>\n );\n\n return (\n <div className={`${className}${openClass}`}>\n <div\n className={`rs-base-layer-switcher-button rs-opener${openClass}`}\n role=\"button\"\n title={titles.openSwitcher}\n aria-label={titles.openSwitcher}\n onClick={handleSwitcherClick}\n onKeyPress={(e) => {\n if (e.which === 13) {\n handleSwitcherClick();\n }\n }}\n style={getImageStyle(nextImage)}\n tabIndex=\"0\"\n >\n <div className=\"rs-base-layer-switcher-title\">\n {layers.length !== 2\n ? titles.button\n : layers.find((layer) => {\n return !layer.visible;\n }) &&\n t(\n layers.find((layer) => {\n return !layer.visible;\n }).name,\n )}\n </div>\n {nextImage ? null : <span className=\"rs-alt-text\">{t(altText)}</span>}\n </div>\n {layers.map((layer, idx) => {\n const layerName = layer.name;\n const activeClass = layerName === currentLayer.name ? ' rs-active' : '';\n const imageStyle = getImageStyle(\n layerImages ? layerImages[`${layer.key}`] : layer.get('previewImage'),\n );\n return (\n <div\n key={layer.key}\n className=\"rs-base-layer-switcher-btn-wrapper\"\n style={{\n /* stylelint-disable-next-line value-keyword-case */\n overflow: hiddenStyle,\n /* stylelint-disable-next-line value-keyword-case */\n zIndex: layers.length - idx,\n }}\n >\n <div\n className={`rs-base-layer-switcher-button${openClass}`}\n role=\"button\"\n title={t(layerName)}\n aria-label={t(layerName)}\n onClick={() => {\n return onLayerSelect(layer);\n }}\n onKeyPress={(e) => {\n if (e.which === 13) {\n onLayerSelect(layer);\n }\n }}\n style={imageStyle}\n tabIndex={switcherOpen ? '0' : '-1'}\n >\n <div className={`rs-base-layer-switcher-title${activeClass}`}>\n {t(layerName)}\n </div>\n {imageStyle ? null : (\n <span className=\"rs-alt-text\">{t(altText)}</span>\n )}\n </div>\n </div>\n );\n })}\n {toggleBtn}\n </div>\n );\n}\n\nBaseLayerSwitcher.propTypes = propTypes;\nBaseLayerSwitcher.defaultProps = defaultProps;\n\nexport default BaseLayerSwitcher;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/BaseLayerSwitcher/index.js"],
|
|
4
|
+
"sourcesContent": ["export { default } from './BaseLayerSwitcher';\n"],
|
|
5
|
+
"mappings": "AAAA,wBAAwB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|