react-spatial 1.2.0-beta.9 → 1.2.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +4 -0
  2. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +163 -221
  3. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
  4. package/components/BaseLayerSwitcher/index.js +1 -3
  5. package/components/BaseLayerSwitcher/index.js.map +7 -1
  6. package/components/BasicMap/BasicMap.js +147 -285
  7. package/components/BasicMap/BasicMap.js.map +7 -1
  8. package/components/BasicMap/index.js +1 -3
  9. package/components/BasicMap/index.js.map +7 -1
  10. package/components/CanvasSaveButton/CanvasSaveButton.js +165 -419
  11. package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
  12. package/components/CanvasSaveButton/index.js +1 -3
  13. package/components/CanvasSaveButton/index.js.map +7 -1
  14. package/components/Copyright/Copyright.js +29 -70
  15. package/components/Copyright/Copyright.js.map +7 -1
  16. package/components/Copyright/index.js +1 -3
  17. package/components/Copyright/index.js.map +7 -1
  18. package/components/FeatureExportButton/FeatureExportButton.js +40 -106
  19. package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
  20. package/components/FeatureExportButton/index.js +1 -3
  21. package/components/FeatureExportButton/index.js.map +7 -1
  22. package/components/FilterButton/FilterButton.js +41 -106
  23. package/components/FilterButton/FilterButton.js.map +7 -1
  24. package/components/FilterButton/index.js +1 -3
  25. package/components/FilterButton/index.js.map +7 -1
  26. package/components/FitExtent/FitExtent.js +17 -50
  27. package/components/FitExtent/FitExtent.js.map +7 -1
  28. package/components/FitExtent/index.js +1 -3
  29. package/components/FitExtent/index.js.map +7 -1
  30. package/components/FollowButton/FollowButton.js +41 -111
  31. package/components/FollowButton/FollowButton.js.map +7 -1
  32. package/components/FollowButton/index.js +1 -3
  33. package/components/FollowButton/index.js.map +7 -1
  34. package/components/Geolocation/Geolocation.js +104 -213
  35. package/components/Geolocation/Geolocation.js.map +7 -1
  36. package/components/Geolocation/index.js +1 -3
  37. package/components/Geolocation/index.js.map +7 -1
  38. package/components/LayerTree/LayerTree.js +204 -410
  39. package/components/LayerTree/LayerTree.js.map +7 -1
  40. package/components/LayerTree/index.js +1 -3
  41. package/components/LayerTree/index.js.map +7 -1
  42. package/components/MousePosition/MousePosition.js +61 -130
  43. package/components/MousePosition/MousePosition.js.map +7 -1
  44. package/components/MousePosition/index.js +1 -3
  45. package/components/MousePosition/index.js.map +7 -1
  46. package/components/NorthArrow/NorthArrow.js +22 -62
  47. package/components/NorthArrow/NorthArrow.js.map +7 -1
  48. package/components/NorthArrow/index.js +1 -3
  49. package/components/NorthArrow/index.js.map +7 -1
  50. package/components/Overlay/Overlay.js +83 -130
  51. package/components/Overlay/Overlay.js.map +7 -1
  52. package/components/Overlay/index.js +1 -3
  53. package/components/Overlay/index.js.map +7 -1
  54. package/components/Permalink/Permalink.js +149 -245
  55. package/components/Permalink/Permalink.js.map +7 -1
  56. package/components/Permalink/index.js +1 -3
  57. package/components/Permalink/index.js.map +7 -1
  58. package/components/Popup/Popup.js +106 -233
  59. package/components/Popup/Popup.js.map +7 -1
  60. package/components/Popup/index.js +1 -3
  61. package/components/Popup/index.js.map +7 -1
  62. package/components/ResizeHandler/ResizeHandler.js +58 -113
  63. package/components/ResizeHandler/ResizeHandler.js.map +7 -1
  64. package/components/ResizeHandler/index.js +1 -3
  65. package/components/ResizeHandler/index.js.map +7 -1
  66. package/components/RouteSchedule/RouteSchedule.js +150 -282
  67. package/components/RouteSchedule/RouteSchedule.js.map +7 -1
  68. package/components/RouteSchedule/index.js +1 -3
  69. package/components/RouteSchedule/index.js.map +7 -1
  70. package/components/ScaleLine/ScaleLine.js +21 -45
  71. package/components/ScaleLine/ScaleLine.js.map +7 -1
  72. package/components/ScaleLine/index.js +1 -3
  73. package/components/ScaleLine/index.js.map +7 -1
  74. package/components/Search/Search.js +122 -186
  75. package/components/Search/Search.js.map +7 -1
  76. package/components/Search/SearchService.js +45 -69
  77. package/components/Search/SearchService.js.map +7 -1
  78. package/components/Search/engines/Engine.js +18 -25
  79. package/components/Search/engines/Engine.js.map +7 -1
  80. package/components/Search/engines/StopFinder.js +21 -38
  81. package/components/Search/engines/StopFinder.js.map +7 -1
  82. package/components/Search/index.js +3 -6
  83. package/components/Search/index.js.map +7 -1
  84. package/components/StopsFinder/StopsFinder.js +123 -174
  85. package/components/StopsFinder/StopsFinder.js.map +7 -1
  86. package/components/StopsFinder/StopsFinderOption.js +37 -54
  87. package/components/StopsFinder/StopsFinderOption.js.map +7 -1
  88. package/components/StopsFinder/index.js +1 -3
  89. package/components/StopsFinder/index.js.map +7 -1
  90. package/components/TrackerControl/TrackerControl.js +73 -128
  91. package/components/TrackerControl/TrackerControl.js.map +7 -1
  92. package/components/TrackerControl/index.js +1 -3
  93. package/components/TrackerControl/index.js.map +7 -1
  94. package/components/Zoom/Zoom.js +69 -112
  95. package/components/Zoom/Zoom.js.map +7 -1
  96. package/components/Zoom/index.js +1 -3
  97. package/components/Zoom/index.js.map +7 -1
  98. package/package.json +27 -24
  99. package/themes/default/components.scss +0 -1
  100. package/themes/default/examples.scss +0 -1
  101. package/utils/GlobalsForOle.js +63 -64
  102. package/utils/GlobalsForOle.js.map +7 -1
  103. package/utils/KML.js +178 -364
  104. package/utils/KML.js.map +7 -1
  105. package/utils/KMLFormat.js +37 -73
  106. package/utils/KMLFormat.js.map +7 -1
  107. package/utils/Styles.js +24 -32
  108. package/utils/Styles.js.map +7 -1
  109. package/utils/getPolygonPattern.js +11 -44
  110. package/utils/getPolygonPattern.js.map +7 -1
  111. package/utils/timeUtils.js +16 -35
  112. package/utils/timeUtils.js.map +7 -1
  113. package/LayerService.js +0 -193
  114. package/LayerService.js.map +0 -1
  115. package/LayerService.test.js +0 -160
  116. package/LayerService.test.js.map +0 -1
  117. package/Projections.js +0 -16
  118. package/Projections.js.map +0 -1
  119. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
  120. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
  121. package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
  122. package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
  123. package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
  124. package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
  125. package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
  126. package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
  127. package/components/BaseLayerToggler/index.js +0 -3
  128. package/components/BaseLayerToggler/index.js.map +0 -1
  129. package/components/BasicMap/BasicMap.test.js +0 -288
  130. package/components/BasicMap/BasicMap.test.js.map +0 -1
  131. package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
  132. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
  133. package/components/Copyright/Copyright.test.js +0 -133
  134. package/components/Copyright/Copyright.test.js.map +0 -1
  135. package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
  136. package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
  137. package/components/FilterButton/FilterButton.test.js +0 -48
  138. package/components/FilterButton/FilterButton.test.js.map +0 -1
  139. package/components/FitExtent/FitExtent.test.js +0 -44
  140. package/components/FitExtent/FitExtent.test.js.map +0 -1
  141. package/components/FollowButton/FollowButton.test.js +0 -57
  142. package/components/FollowButton/FollowButton.test.js.map +0 -1
  143. package/components/Geolocation/Geolocation.test.js +0 -263
  144. package/components/Geolocation/Geolocation.test.js.map +0 -1
  145. package/components/LayerTree/LayerTree.test.js +0 -323
  146. package/components/LayerTree/LayerTree.test.js.map +0 -1
  147. package/components/MousePosition/MousePosition.test.js +0 -125
  148. package/components/MousePosition/MousePosition.test.js.map +0 -1
  149. package/components/NorthArrow/NorthArrow.test.js +0 -106
  150. package/components/NorthArrow/NorthArrow.test.js.map +0 -1
  151. package/components/Overlay/Overlay.test.js +0 -145
  152. package/components/Overlay/Overlay.test.js.map +0 -1
  153. package/components/Permalink/Permalink.test.js +0 -267
  154. package/components/Permalink/Permalink.test.js.map +0 -1
  155. package/components/Popup/Popup.test.js +0 -291
  156. package/components/Popup/Popup.test.js.map +0 -1
  157. package/components/ResizeHandler/ResizeHandler.test.js +0 -410
  158. package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
  159. package/components/RouteSchedule/RouteSchedule.test.js +0 -102
  160. package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
  161. package/components/ScaleLine/ScaleLine.test.js +0 -32
  162. package/components/ScaleLine/ScaleLine.test.js.map +0 -1
  163. package/components/Search/Search.test.js +0 -15
  164. package/components/Search/Search.test.js.map +0 -1
  165. package/components/StopsFinder/StopsFinder.test.js +0 -19
  166. package/components/StopsFinder/StopsFinder.test.js.map +0 -1
  167. package/components/TrackerControl/TrackerControl.test.js +0 -17
  168. package/components/TrackerControl/TrackerControl.test.js.map +0 -1
  169. package/components/Zoom/Zoom.test.js +0 -150
  170. package/components/Zoom/Zoom.test.js.map +0 -1
  171. package/propTypes.js +0 -55
  172. package/propTypes.js.map +0 -1
  173. package/setupTests.js +0 -5
  174. package/setupTests.js.map +0 -1
  175. package/styleguidist/ComponentsList.js +0 -52
  176. package/styleguidist/ComponentsList.js.map +0 -1
  177. package/styleguidist/StyleGuide.js +0 -253
  178. package/styleguidist/StyleGuide.js.map +0 -1
  179. package/utils/KML.test.js +0 -163
  180. package/utils/KML.test.js.map +0 -1
  181. package/utils/KMLFormat.test.js +0 -22
  182. package/utils/KMLFormat.test.js.map +0 -1
  183. package/utils/getPolygonPattern.test.js +0 -66
  184. package/utils/getPolygonPattern.test.js.map +0 -1
  185. package/utils/timeUtils.test.js +0 -32
  186. package/utils/timeUtils.test.js.map +0 -1
package/README.md CHANGED
@@ -37,3 +37,7 @@ import 'react-spatial/themes/default/index.scss';
37
37
  ## Bugs
38
38
 
39
39
  Please use the [GitHub issue tracker](https://github.com/geops/react-spatial/issues) for all bugs and feature requests. Before creating a new issue, do a quick search to see if the problem has been reported already.
40
+
41
+ ## Version 1.x.x
42
+
43
+ The master branch is now open for the version 2 development. The version 1 is now available in 1.x.x branch.
@@ -1,276 +1,218 @@
1
- /* eslint-disable jsx-a11y/interactive-supports-focus */
2
- import React, { useState, useEffect } from 'react';
3
- import PropTypes from 'prop-types';
4
- import { FaChevronLeft } from 'react-icons/fa';
5
- import { Layer } from 'mobility-toolbox-js/ol';
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
- var defaultProps = {
53
- className: 'rs-base-layer-switcher',
54
- altText: 'Source not found',
18
+ const defaultProps = {
19
+ className: "rs-base-layer-switcher",
20
+ altText: "Source not found",
55
21
  titles: {
56
- button: 'Base layers',
57
- openSwitcher: 'Open Baselayer-Switcher',
58
- closeSwitcher: 'Close Baselayer-Switcher',
22
+ button: "Base layers",
23
+ openSwitcher: "Open Baselayer-Switcher",
24
+ closeSwitcher: "Close Baselayer-Switcher"
59
25
  },
60
- closeButtonImage: React.createElement( FaChevronLeft, null ),
61
- layerImages: undefined,
62
- t: function (s) {
26
+ closeButtonImage: /* @__PURE__ */ React.createElement(FaChevronLeft, null),
27
+ layerImages: void 0,
28
+ t: (s) => {
63
29
  return s;
64
- },
30
+ }
65
31
  };
66
-
67
- var getVisibleLayer = function (layers) {
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
- var getNextImage = function (currentLayer, layers, layerImages) {
74
- var currentIndex = layers.indexOf(
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
- var nextIndex = currentIndex + 1 === layers.length ? 0 : currentIndex + 1;
43
+ const nextIndex = currentIndex + 1 === layers.length ? 0 : currentIndex + 1;
80
44
  return layerImages[nextIndex];
81
45
  };
82
-
83
- var getImageStyle = function (url) {
84
- return url
85
- ? {
86
- backgroundImage: ("url(" + url + ")"),
87
- backgroundSize: 'cover',
88
- backgroundRepeat: 'no-repeat',
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
- * The BaseLayerSwitcher component renders a button interface for switching the visible
96
- * [mobility-toolbox-js layer](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers)
97
- * when defined as base layer.
98
- */
99
-
100
- function BaseLayerSwitcher(ref) {
101
- var layers = ref.layers;
102
- var layerImages = ref.layerImages;
103
- var className = ref.className;
104
- var altText = ref.altText;
105
- var titles = ref.titles;
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
- var currentLayer = ref$3[0];
122
- var setCurrentLayer = ref$3[1];
123
-
124
- /* Images are loaded from props if provided, fallback from layer */
125
- var images = layerImages
126
- ? Object.keys(layerImages).map(function (layerImage) {
127
- return layerImages[layerImage];
128
- })
129
- : baseLayers.map(function (layer) {
130
- return layer.get('previewImage');
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(false);
80
+ if (currentLayer.setVisible) {
81
+ currentLayer.setVisible(false);
82
+ } else {
83
+ currentLayer.visible = false;
84
+ }
143
85
  setCurrentLayer(nextLayer);
144
- nextLayer.setVisible(true);
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(true);
158
- baseLayers
159
- .filter(function (l) {
160
- return l !== layer;
161
- })
162
- .forEach(function (l) {
163
- return l.setVisible(false);
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
- /* Get next image for closed button */
169
- var nextImage = getNextImage(currentLayer, baseLayers, images);
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, baseLayers]);
177
-
178
- useEffect(function () {
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(function () {
126
+ timeout = setTimeout(() => {
183
127
  setIsClosed(true);
184
128
  }, 200);
185
129
  } else {
186
- timeout = setTimeout(function () {
130
+ timeout = setTimeout(() => {
187
131
  setIsClosed(false);
188
132
  }, 800);
189
133
  }
190
- return function () {
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
- var toggleBtn = (
200
- React.createElement( 'div', { className: "rs-base-layer-switcher-btn-wrapper" },
201
- React.createElement( 'div', {
202
- className: "rs-base-layer-switcher-close-btn", role: "button", onClick: function () {
203
- return setSwitcherOpen(false);
204
- }, onKeyPress: function (e) {
205
- return e.which === 13 && setSwitcherOpen(false);
206
- }, tabIndex: switcherOpen ? '0' : '-1', 'aria-label': titles.closeSwitcher, title: titles.closeSwitcher },
207
- closeButtonImage
208
- )
209
- )
210
- );
211
-
212
- return (
213
- React.createElement( 'div', { className: ("" + className + openClass) },
214
- React.createElement( 'div', {
215
- className: ("rs-base-layer-switcher-button rs-opener" + openClass), role: "button", title: titles.openSwitcher, 'aria-label': titles.openSwitcher, onClick: handleSwitcherClick, onKeyPress: function (e) {
216
- if (e.which === 13) {
217
- handleSwitcherClick();
218
- }
219
- }, style: getImageStyle(nextImage), tabIndex: "0" },
220
- React.createElement( 'div', { className: "rs-base-layer-switcher-title" },
221
- baseLayers.length !== 2
222
- ? titles.button
223
- : baseLayers.find(function (layer) {
224
- return !layer.visible;
225
- }) &&
226
- t(
227
- baseLayers.find(function (layer) {
228
- return !layer.visible;
229
- }).name
230
- )
231
- ),
232
- nextImage ? null : React.createElement( 'span', { className: "rs-alt-text" }, t(altText))
233
- ),
234
- baseLayers.map(function (layer, idx) {
235
- var layerName = layer.name;
236
- var activeClass = layerName === currentLayer.name ? ' rs-active' : '';
237
- var imageStyle = getImageStyle(
238
- layerImages ? layerImages[("" + (layer.key))] : layer.get('previewImage')
239
- );
240
- return (
241
- React.createElement( 'div', {
242
- key: layer.key, className: "rs-base-layer-switcher-btn-wrapper", style: {
243
- /* stylelint-disable-next-line value-keyword-case */
244
- overflow: hiddenStyle,
245
- /* stylelint-disable-next-line value-keyword-case */
246
- zIndex: baseLayers.length - idx,
247
- } },
248
- React.createElement( 'div', {
249
- className: ("rs-base-layer-switcher-button" + openClass), role: "button", title: t(layerName), 'aria-label': t(layerName), onClick: function () {
250
- return onLayerSelect(layer);
251
- }, onKeyPress: function (e) {
252
- if (e.which === 13) {
253
- onLayerSelect(layer);
254
- }
255
- }, style: imageStyle, tabIndex: switcherOpen ? '0' : '-1' },
256
- React.createElement( 'div', { className: ("rs-base-layer-switcher-title" + activeClass) },
257
- t(layerName)
258
- ),
259
- imageStyle ? null : (
260
- React.createElement( 'span', { className: "rs-alt-text" }, t(altText))
261
- )
262
- )
263
- )
264
- );
265
- }),
266
- toggleBtn
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,3 +1 @@
1
- export { default } from './BaseLayerSwitcher';
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { default } from "./BaseLayerSwitcher";
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/BaseLayerSwitcher/index.js"],"sourcesContent":["export { default } from './BaseLayerSwitcher';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,qBAAqB,CAAC;"}
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
+ }