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.
Files changed (186) hide show
  1. package/LayerService.js +128 -184
  2. package/LayerService.js.map +7 -1
  3. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +163 -221
  4. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
  5. package/components/BaseLayerSwitcher/index.js +1 -3
  6. package/components/BaseLayerSwitcher/index.js.map +7 -1
  7. package/components/BasicMap/BasicMap.js +147 -285
  8. package/components/BasicMap/BasicMap.js.map +7 -1
  9. package/components/BasicMap/index.js +1 -3
  10. package/components/BasicMap/index.js.map +7 -1
  11. package/components/CanvasSaveButton/CanvasSaveButton.js +165 -419
  12. package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
  13. package/components/CanvasSaveButton/index.js +1 -3
  14. package/components/CanvasSaveButton/index.js.map +7 -1
  15. package/components/Copyright/Copyright.js +29 -70
  16. package/components/Copyright/Copyright.js.map +7 -1
  17. package/components/Copyright/index.js +1 -3
  18. package/components/Copyright/index.js.map +7 -1
  19. package/components/FeatureExportButton/FeatureExportButton.js +40 -106
  20. package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
  21. package/components/FeatureExportButton/index.js +1 -3
  22. package/components/FeatureExportButton/index.js.map +7 -1
  23. package/components/FilterButton/FilterButton.js +41 -106
  24. package/components/FilterButton/FilterButton.js.map +7 -1
  25. package/components/FilterButton/index.js +1 -3
  26. package/components/FilterButton/index.js.map +7 -1
  27. package/components/FitExtent/FitExtent.js +17 -50
  28. package/components/FitExtent/FitExtent.js.map +7 -1
  29. package/components/FitExtent/index.js +1 -3
  30. package/components/FitExtent/index.js.map +7 -1
  31. package/components/FollowButton/FollowButton.js +41 -111
  32. package/components/FollowButton/FollowButton.js.map +7 -1
  33. package/components/FollowButton/index.js +1 -3
  34. package/components/FollowButton/index.js.map +7 -1
  35. package/components/Geolocation/Geolocation.js +104 -213
  36. package/components/Geolocation/Geolocation.js.map +7 -1
  37. package/components/Geolocation/index.js +1 -3
  38. package/components/Geolocation/index.js.map +7 -1
  39. package/components/LayerTree/LayerTree.js +204 -410
  40. package/components/LayerTree/LayerTree.js.map +7 -1
  41. package/components/LayerTree/index.js +1 -3
  42. package/components/LayerTree/index.js.map +7 -1
  43. package/components/MousePosition/MousePosition.js +61 -130
  44. package/components/MousePosition/MousePosition.js.map +7 -1
  45. package/components/MousePosition/index.js +1 -3
  46. package/components/MousePosition/index.js.map +7 -1
  47. package/components/NorthArrow/NorthArrow.js +22 -62
  48. package/components/NorthArrow/NorthArrow.js.map +7 -1
  49. package/components/NorthArrow/index.js +1 -3
  50. package/components/NorthArrow/index.js.map +7 -1
  51. package/components/Overlay/Overlay.js +83 -130
  52. package/components/Overlay/Overlay.js.map +7 -1
  53. package/components/Overlay/index.js +1 -3
  54. package/components/Overlay/index.js.map +7 -1
  55. package/components/Permalink/Permalink.js +150 -244
  56. package/components/Permalink/Permalink.js.map +7 -1
  57. package/components/Permalink/index.js +1 -3
  58. package/components/Permalink/index.js.map +7 -1
  59. package/components/Popup/Popup.js +106 -233
  60. package/components/Popup/Popup.js.map +7 -1
  61. package/components/Popup/index.js +1 -3
  62. package/components/Popup/index.js.map +7 -1
  63. package/components/ResizeHandler/ResizeHandler.js +58 -113
  64. package/components/ResizeHandler/ResizeHandler.js.map +7 -1
  65. package/components/ResizeHandler/index.js +1 -3
  66. package/components/ResizeHandler/index.js.map +7 -1
  67. package/components/RouteSchedule/RouteSchedule.js +150 -283
  68. package/components/RouteSchedule/RouteSchedule.js.map +7 -1
  69. package/components/RouteSchedule/index.js +1 -3
  70. package/components/RouteSchedule/index.js.map +7 -1
  71. package/components/ScaleLine/ScaleLine.js +21 -45
  72. package/components/ScaleLine/ScaleLine.js.map +7 -1
  73. package/components/ScaleLine/index.js +1 -3
  74. package/components/ScaleLine/index.js.map +7 -1
  75. package/components/Search/Search.js +122 -186
  76. package/components/Search/Search.js.map +7 -1
  77. package/components/Search/SearchService.js +45 -69
  78. package/components/Search/SearchService.js.map +7 -1
  79. package/components/Search/engines/Engine.js +18 -25
  80. package/components/Search/engines/Engine.js.map +7 -1
  81. package/components/Search/engines/StopFinder.js +21 -38
  82. package/components/Search/engines/StopFinder.js.map +7 -1
  83. package/components/Search/index.js +3 -6
  84. package/components/Search/index.js.map +7 -1
  85. package/components/StopsFinder/StopsFinder.js +123 -174
  86. package/components/StopsFinder/StopsFinder.js.map +7 -1
  87. package/components/StopsFinder/StopsFinderOption.js +37 -54
  88. package/components/StopsFinder/StopsFinderOption.js.map +7 -1
  89. package/components/StopsFinder/index.js +1 -3
  90. package/components/StopsFinder/index.js.map +7 -1
  91. package/components/TrackerControl/TrackerControl.js +73 -128
  92. package/components/TrackerControl/TrackerControl.js.map +7 -1
  93. package/components/TrackerControl/index.js +1 -3
  94. package/components/TrackerControl/index.js.map +7 -1
  95. package/components/Zoom/Zoom.js +69 -112
  96. package/components/Zoom/Zoom.js.map +7 -1
  97. package/components/Zoom/index.js +1 -3
  98. package/components/Zoom/index.js.map +7 -1
  99. package/package.json +10 -5
  100. package/propTypes.js +17 -23
  101. package/propTypes.js.map +7 -1
  102. package/setupTests.js +2 -4
  103. package/setupTests.js.map +7 -1
  104. package/themes/README.md +26 -0
  105. package/themes/default/components.scss +0 -1
  106. package/themes/default/examples.scss +0 -1
  107. package/utils/GlobalsForOle.js +63 -64
  108. package/utils/GlobalsForOle.js.map +7 -1
  109. package/utils/KML.js +178 -364
  110. package/utils/KML.js.map +7 -1
  111. package/utils/KMLFormat.js +37 -73
  112. package/utils/KMLFormat.js.map +7 -1
  113. package/utils/Styles.js +24 -32
  114. package/utils/Styles.js.map +7 -1
  115. package/utils/getPolygonPattern.js +11 -44
  116. package/utils/getPolygonPattern.js.map +7 -1
  117. package/utils/timeUtils.js +16 -35
  118. package/utils/timeUtils.js.map +7 -1
  119. package/LayerService.test.js +0 -160
  120. package/LayerService.test.js.map +0 -1
  121. package/Projections.js +0 -16
  122. package/Projections.js.map +0 -1
  123. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
  124. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
  125. package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
  126. package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
  127. package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
  128. package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
  129. package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
  130. package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
  131. package/components/BaseLayerToggler/index.js +0 -3
  132. package/components/BaseLayerToggler/index.js.map +0 -1
  133. package/components/BasicMap/BasicMap.test.js +0 -288
  134. package/components/BasicMap/BasicMap.test.js.map +0 -1
  135. package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
  136. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
  137. package/components/Copyright/Copyright.test.js +0 -133
  138. package/components/Copyright/Copyright.test.js.map +0 -1
  139. package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
  140. package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
  141. package/components/FilterButton/FilterButton.test.js +0 -48
  142. package/components/FilterButton/FilterButton.test.js.map +0 -1
  143. package/components/FitExtent/FitExtent.test.js +0 -44
  144. package/components/FitExtent/FitExtent.test.js.map +0 -1
  145. package/components/FollowButton/FollowButton.test.js +0 -57
  146. package/components/FollowButton/FollowButton.test.js.map +0 -1
  147. package/components/Geolocation/Geolocation.test.js +0 -263
  148. package/components/Geolocation/Geolocation.test.js.map +0 -1
  149. package/components/LayerTree/LayerTree.test.js +0 -323
  150. package/components/LayerTree/LayerTree.test.js.map +0 -1
  151. package/components/MousePosition/MousePosition.test.js +0 -125
  152. package/components/MousePosition/MousePosition.test.js.map +0 -1
  153. package/components/NorthArrow/NorthArrow.test.js +0 -106
  154. package/components/NorthArrow/NorthArrow.test.js.map +0 -1
  155. package/components/Overlay/Overlay.test.js +0 -145
  156. package/components/Overlay/Overlay.test.js.map +0 -1
  157. package/components/Permalink/Permalink.test.js +0 -267
  158. package/components/Permalink/Permalink.test.js.map +0 -1
  159. package/components/Popup/Popup.test.js +0 -291
  160. package/components/Popup/Popup.test.js.map +0 -1
  161. package/components/ResizeHandler/ResizeHandler.test.js +0 -410
  162. package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
  163. package/components/RouteSchedule/RouteSchedule.test.js +0 -102
  164. package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
  165. package/components/ScaleLine/ScaleLine.test.js +0 -32
  166. package/components/ScaleLine/ScaleLine.test.js.map +0 -1
  167. package/components/Search/Search.test.js +0 -15
  168. package/components/Search/Search.test.js.map +0 -1
  169. package/components/StopsFinder/StopsFinder.test.js +0 -19
  170. package/components/StopsFinder/StopsFinder.test.js.map +0 -1
  171. package/components/TrackerControl/TrackerControl.test.js +0 -17
  172. package/components/TrackerControl/TrackerControl.test.js.map +0 -1
  173. package/components/Zoom/Zoom.test.js +0 -150
  174. package/components/Zoom/Zoom.test.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
@@ -1,490 +0,0 @@
1
- import React, { Component } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { FaArrowCircleLeft, FaArrowCircleRight } from 'react-icons/fa';
4
- import OLMap from 'ol/Map';
5
- import { unByKey } from 'ol/Observable';
6
- import TileLayer from 'ol/layer/Tile';
7
- import { containsExtent } from 'ol/extent';
8
- import LayerService from '../../LayerService';
9
- import BasicMap from '../BasicMap';
10
-
11
- var propTypes = {
12
- /**
13
- * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)
14
- */
15
- map: PropTypes.instanceOf(OLMap).isRequired,
16
-
17
- /**
18
- * LayerService.
19
- */
20
- layerService: PropTypes.instanceOf(LayerService),
21
-
22
- /**
23
- * CSS class to apply on the container.
24
- */
25
- className: PropTypes.string,
26
-
27
- /**
28
- * Children of the previous baselayer button.
29
- */
30
- prevButtonContent: PropTypes.node,
31
-
32
- /**
33
- * Children of the next baselayer button.
34
- */
35
- nextButtonContent: PropTypes.node,
36
-
37
- /**
38
- * Path to the directory which includes the fallback images
39
- */
40
- fallbackImgDir: PropTypes.string,
41
-
42
- /**
43
- * Outside of this valid extent the fallback image is loaded
44
- */
45
- validExtent: PropTypes.arrayOf(PropTypes.number),
46
-
47
- /**
48
- * Button titles.
49
- */
50
- titles: PropTypes.shape({
51
- button: PropTypes.string,
52
- prevButton: PropTypes.stirng,
53
- nextButton: PropTypes.string,
54
- }),
55
- };
56
-
57
- var defaultProps = {
58
- layerService: undefined,
59
- className: 'rs-base-layer-toggler',
60
- prevButtonContent: React.createElement( FaArrowCircleLeft, { focusable: false }),
61
- nextButtonContent: React.createElement( FaArrowCircleRight, { focusable: false }),
62
- fallbackImgDir: '../../images/baselayer/',
63
- validExtent: [-Infinity, -Infinity, Infinity, Infinity],
64
- titles: {
65
- button: 'Toggle base layer',
66
- nextButton: 'Next base layer',
67
- prevButton: 'Previous base layer',
68
- },
69
- };
70
-
71
- /**
72
- * The BaseLayerToggler component renders a button interface for switching the visible
73
- * [mobility-toolbox-js layer](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers)
74
- * when defined as base layer.
75
- */
76
- var BaseLayerToggler = /*@__PURE__*/(function (Component) {
77
- function BaseLayerToggler(props) {
78
- Component.call(this, props);
79
- this.state = {
80
- layers: null,
81
- layerVisible: null,
82
- idx: 0,
83
- fallbackImg: null,
84
- fallbackImgOpacity: 0,
85
- };
86
- this.map = null;
87
- this.ref = React.createRef();
88
-
89
- this.updateState = this.updateState.bind(this);
90
- this.resetState = this.resetState.bind(this);
91
- }
92
-
93
- if ( Component ) BaseLayerToggler.__proto__ = Component;
94
- BaseLayerToggler.prototype = Object.create( Component && Component.prototype );
95
- BaseLayerToggler.prototype.constructor = BaseLayerToggler;
96
-
97
- BaseLayerToggler.isDifferentLayers = function isDifferentLayers (prevLayers, layers) {
98
- if (prevLayers && layers) {
99
- return (
100
- JSON.stringify(
101
- prevLayers.map(function (l) {
102
- return l.key;
103
- })
104
- ) !==
105
- JSON.stringify(
106
- layers.map(function (l) {
107
- return l.key;
108
- })
109
- )
110
- );
111
- }
112
- return false;
113
- };
114
-
115
- BaseLayerToggler.prototype.componentDidMount = function componentDidMount () {
116
- var ref = this.props;
117
- var layerService = ref.layerService;
118
- var map = ref.map;
119
-
120
- if (layerService) {
121
- this.updateLayerService();
122
- }
123
-
124
- if (map) {
125
- this.updateMap();
126
- }
127
- };
128
-
129
- BaseLayerToggler.prototype.componentDidUpdate = function componentDidUpdate (prevProps, prevState) {
130
- var this$1 = this;
131
-
132
- var ref = this.props;
133
- var layerService = ref.layerService;
134
- var map = ref.map;
135
- var ref$1 = this.state;
136
- var layerVisible = ref$1.layerVisible;
137
- var idx = ref$1.idx;
138
- var layers = ref$1.layers;
139
-
140
- if (layerService !== prevProps.layerService) {
141
- this.updateLayerService();
142
- }
143
-
144
- if (map !== prevProps.map) {
145
- this.updateMap();
146
- }
147
-
148
- if (layerVisible && !prevState.layerVisible) {
149
- this.next();
150
- } else if (
151
- layerVisible !== prevState.layerVisible &&
152
- layers.includes(prevState.layerVisible)
153
- ) {
154
- // In case the visibility of the background Layer is change from another component.
155
- this.toggle(prevState.layerVisible);
156
- }
157
-
158
- if (
159
- this.map &&
160
- (idx !== prevState.idx ||
161
- BaseLayerToggler.isDifferentLayers(prevState.layers, layers))
162
- ) {
163
- this.map.getLayers().clear();
164
-
165
- if (!layers.length) {
166
- return;
167
- }
168
- var children = [];
169
- var childLayers = [];
170
- if (idx !== null && idx < layers.length) {
171
- children = layers[idx].children;
172
- childLayers = children.length ? children : [layers[idx]];
173
- }
174
-
175
- childLayers.forEach(function (layer) {
176
- var cloned;
177
- if (layer.mapboxLayer) {
178
- // MapboxStyleLayer
179
- cloned = layer.clone({ mapboxLayer: layer.mapboxLayer.clone() });
180
- } else if (layer.olLayer instanceof TileLayer) {
181
- // The clone method of mobility-toolbox-js will reuse the same
182
- // TileLayer passed in parameter but it's not possible in ol
183
- // to use the same layer in 2 maps so we have to recreate it.
184
- cloned = layer.clone({
185
- olLayer: new TileLayer({
186
- source: layer.olLayer.getSource(),
187
- }),
188
- });
189
- } else {
190
- cloned = layer.clone();
191
- }
192
-
193
- cloned.init(this$1.map); // Including addLayer
194
- cloned.setVisible(true);
195
- if (
196
- cloned.olLayer ||
197
- (cloned.mapboxLayer && cloned.mapboxLayer.olLayer)
198
- ) {
199
- this$1.map.addLayer(cloned.olLayer || cloned.mapboxLayer.olLayer);
200
- }
201
- this$1.checkExtent();
202
- });
203
- }
204
- };
205
-
206
- BaseLayerToggler.prototype.componentWillUnmount = function componentWillUnmount () {
207
- var ref = this.props;
208
- var layerService = ref.layerService;
209
- unByKey([this.postRenderKey, this.moveEndKey]);
210
- layerService.un('change:visible', this.updateState);
211
- layerService.un('change:layers', this.resetState);
212
- };
213
-
214
- BaseLayerToggler.prototype.setNextVisible = function setNextVisible (nextLayer) {
215
- var ref = this.state;
216
- var layers = ref.layers;
217
- // Unset visibility to all layers before showing the next layer.
218
- layers.forEach(function (l) {
219
- return l.visible && l.setVisible(false, true, true, true);
220
- });
221
- nextLayer.setVisible(true);
222
- };
223
-
224
- BaseLayerToggler.prototype.updateLayerService = function updateLayerService () {
225
- var ref = this.props;
226
- var layerService = ref.layerService;
227
-
228
- if (!layerService) {
229
- return;
230
- }
231
- layerService.un('change:visible', this.updateState);
232
- layerService.un('change:layers', this.resetState);
233
- this.updateState();
234
- layerService.on('change:visible', this.updateState);
235
- layerService.on('change:layers', this.resetState);
236
- };
237
-
238
- BaseLayerToggler.prototype.updateState = function updateState (evtLayer) {
239
- if (evtLayer && !evtLayer.isBaseLayer) {
240
- return;
241
- }
242
-
243
- var ref = this.props;
244
- var layerService = ref.layerService;
245
- var ref$1 = this.state;
246
- var idx = ref$1.idx;
247
-
248
- var layers = layerService.getBaseLayers() || [];
249
- var newIdx = idx;
250
- if (newIdx === -1 && layers.length > 1) {
251
- newIdx = 0;
252
- layers[idx].setVisible(true);
253
- }
254
-
255
- this.setState({
256
- layers: layers,
257
- idx: newIdx,
258
- layerVisible: layers.length > 1 ? layers[newIdx] : null,
259
- });
260
- };
261
-
262
- BaseLayerToggler.prototype.resetState = function resetState () {
263
- var ref = this.props;
264
- var layerService = ref.layerService;
265
- var ref$1 = this.state;
266
- var layerVisible = ref$1.layerVisible;
267
-
268
- var layers = layerService.getBaseLayers() || [];
269
- var idx = layerVisible ? layers.indexOf(layerVisible) : -1;
270
- var newIdx;
271
-
272
- if (idx === -1) {
273
- newIdx = 1;
274
- } else if (idx === layers.length - 1) {
275
- newIdx = 0;
276
- } else {
277
- newIdx = idx + 1;
278
- }
279
-
280
- var newLayerVisible = layers[idx === -1 ? 0 : idx];
281
- this.setState({
282
- layers: layers,
283
- idx: layers.length > 1 ? newIdx : null,
284
- layerVisible:
285
- layers.indexOf(newLayerVisible) >= 0 ? newLayerVisible : undefined,
286
- });
287
- };
288
-
289
- BaseLayerToggler.prototype.updateMap = function updateMap () {
290
- var this$1 = this;
291
-
292
- var ref = this.props;
293
- var map = ref.map;
294
- if (!this.map) {
295
- this.map = new OLMap({ controls: [], interactions: [] });
296
- }
297
- unByKey([this.postRenderKey, this.moveEndKey]);
298
- this.postRenderKey = map.on('postrender', function (e) {
299
- this$1.map.getView().setZoom(e.target.getView().getZoom());
300
- if (this$1.ref && this$1.ref.current) {
301
- var elt = this$1.ref.current;
302
- var coord = map.getCoordinateFromPixel([
303
- elt.offsetLeft + elt.offsetWidth / 2,
304
- elt.offsetTop + elt.offsetHeight / 2 ]);
305
-
306
- // In some case the map is not able to get the coord.
307
- // For example if the map has a width or height of 0.
308
- if (!coord) {
309
- return;
310
- }
311
-
312
- this$1.map.getView().setCenter(coord);
313
- }
314
- });
315
-
316
- this.moveEndKey = map.on('moveend', function () {
317
- this$1.checkExtent();
318
- });
319
- };
320
-
321
- BaseLayerToggler.prototype.toggle = function toggle (layer) {
322
- var ref = this.state;
323
- var layers = ref.layers;
324
-
325
- var index = 0;
326
- while (layer !== layers[index]) {
327
- index += 1;
328
- }
329
-
330
- this.setState({
331
- idx: index,
332
- });
333
- };
334
-
335
- BaseLayerToggler.prototype.previous = function previous () {
336
- var ref = this.state;
337
- var layers = ref.layers;
338
- var layerVisible = ref.layerVisible;
339
- var idx = ref.idx;
340
- var previousIdx = idx - 1;
341
-
342
- while (!layers[previousIdx] || layerVisible === layers[previousIdx]) {
343
- previousIdx -= 1;
344
- if (previousIdx < 0) {
345
- previousIdx = layers.length - 1;
346
- }
347
- }
348
-
349
- this.setState({
350
- idx: previousIdx,
351
- });
352
- };
353
-
354
- BaseLayerToggler.prototype.next = function next () {
355
- var ref = this.state;
356
- var layers = ref.layers;
357
- var layerVisible = ref.layerVisible;
358
- var idx = ref.idx;
359
- var nextIdx = idx + 1;
360
-
361
- while (!layers[nextIdx] || layerVisible === layers[nextIdx]) {
362
- nextIdx += 1;
363
- if (nextIdx >= layers.length) {
364
- nextIdx = 0;
365
- }
366
- }
367
-
368
- this.setState({
369
- idx: nextIdx,
370
- });
371
- };
372
-
373
- /**
374
- * Check if the next layer is inside the global extent.
375
- * If not, try setting a global image.
376
- */
377
- BaseLayerToggler.prototype.checkExtent = function checkExtent () {
378
- var ref = this.props;
379
- var validExtent = ref.validExtent;
380
- var map = ref.map;
381
- var fallbackImgDir = ref.fallbackImgDir;
382
- var ref$1 = this.state;
383
- var idx = ref$1.idx;
384
- var layers = ref$1.layers;
385
- var fallbackImg = ref$1.fallbackImg;
386
- var nextLayer = layers[idx];
387
- var opacity = 0;
388
- var img = fallbackImg;
389
-
390
- if (validExtent && this.ref && this.ref.current && nextLayer) {
391
- var elt = this.ref.current;
392
- var blCoord = map.getCoordinateFromPixel([
393
- elt.offsetLeft,
394
- elt.offsetTop + elt.offsetHeight ]);
395
- var trCoord = map.getCoordinateFromPixel([
396
- elt.offsetLeft + elt.offsetWidth,
397
- elt.offsetTop ]);
398
-
399
- if (!blCoord || !trCoord) {
400
- return;
401
- }
402
-
403
- if (!containsExtent(validExtent, blCoord.concat( trCoord))) {
404
- opacity = 1;
405
- img = "" + fallbackImgDir + (nextLayer.key) + ".png";
406
- }
407
- }
408
-
409
- this.setState({
410
- fallbackImg: img,
411
- fallbackImgOpacity: opacity,
412
- });
413
- };
414
-
415
- BaseLayerToggler.prototype.render = function render () {
416
- var this$1 = this;
417
-
418
- var ref =
419
- this.props;
420
- var className = ref.className;
421
- var titles = ref.titles;
422
- var prevButtonContent = ref.prevButtonContent;
423
- var nextButtonContent = ref.nextButtonContent;
424
- var ref$1 = this.state;
425
- var layers = ref$1.layers;
426
- var idx = ref$1.idx;
427
- var fallbackImg = ref$1.fallbackImg;
428
- var fallbackImgOpacity = ref$1.fallbackImgOpacity;
429
-
430
- var footer = null;
431
-
432
- if (!layers || layers.length < 2) {
433
- return null;
434
- }
435
-
436
- if (layers.length > 2) {
437
- footer = (
438
- React.createElement( 'div', { className: "rs-base-layer-footer" },
439
- React.createElement( 'div', {
440
- className: "rs-base-layer-previous", role: "button", onClick: function () {
441
- return this$1.previous();
442
- }, onKeyPress: function (e) {
443
- return e.which === 13 && this$1.previous();
444
- }, tabIndex: "0", 'aria-label': titles.prevButton, title: titles.prevButton },
445
- prevButtonContent
446
- ),
447
- React.createElement( 'div', {
448
- className: "rs-base-layer-next", role: "button", onClick: function () {
449
- return this$1.next();
450
- }, onKeyPress: function (e) {
451
- return e.which === 13 && this$1.next();
452
- }, tabIndex: "0", 'aria-label': titles.nextButton, title: titles.nextButton },
453
- nextButtonContent
454
- )
455
- )
456
- );
457
- }
458
-
459
- var nextLayer = layers[idx];
460
-
461
- return (
462
- React.createElement( 'div', { className: className, ref: this.ref },
463
- React.createElement( 'div', {
464
- className: "rs-base-layer-toggle-button", role: "button", title: titles.button, 'aria-label': titles.button, onClick: function () {
465
- return this$1.setNextVisible(nextLayer);
466
- }, onKeyPress: function (e) {
467
- return e.which === 13 && this$1.setNextVisible(nextLayer);
468
- }, tabIndex: "0" },
469
- React.createElement( 'img', {
470
- src: fallbackImg, alt: fallbackImg, style: {
471
- /* stylelint-disable-next-line value-keyword-case */
472
- opacity: fallbackImgOpacity,
473
- }, className: "rs-base-layer-image" }),
474
- React.createElement( BasicMap, {
475
- map: this.map, className: "rs-base-layer-map", tabIndex: -1 })
476
- ),
477
- footer
478
- )
479
- );
480
- };
481
-
482
- return BaseLayerToggler;
483
- }(Component));
484
-
485
- BaseLayerToggler.propTypes = propTypes;
486
- BaseLayerToggler.defaultProps = defaultProps;
487
-
488
- export default BaseLayerToggler;
489
-
490
- //# sourceMappingURL=BaseLayerToggler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseLayerToggler.js","sources":["../../../src/components/BaseLayerToggler/BaseLayerToggler.js"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaArrowCircleLeft, FaArrowCircleRight } from 'react-icons/fa';\nimport OLMap from 'ol/Map';\nimport { unByKey } from 'ol/Observable';\nimport TileLayer from 'ol/layer/Tile';\nimport { containsExtent } from 'ol/extent';\nimport LayerService from '../../LayerService';\nimport BasicMap from '../BasicMap';\n\nconst propTypes = {\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)\n */\n map: PropTypes.instanceOf(OLMap).isRequired,\n\n /**\n * LayerService.\n */\n layerService: PropTypes.instanceOf(LayerService),\n\n /**\n * CSS class to apply on the container.\n */\n className: PropTypes.string,\n\n /**\n * Children of the previous baselayer button.\n */\n prevButtonContent: PropTypes.node,\n\n /**\n * Children of the next baselayer button.\n */\n nextButtonContent: PropTypes.node,\n\n /**\n * Path to the directory which includes the fallback images\n */\n fallbackImgDir: PropTypes.string,\n\n /**\n * Outside of this valid extent the fallback image is loaded\n */\n validExtent: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * Button titles.\n */\n titles: PropTypes.shape({\n button: PropTypes.string,\n prevButton: PropTypes.stirng,\n nextButton: PropTypes.string,\n }),\n};\n\nconst defaultProps = {\n layerService: undefined,\n className: 'rs-base-layer-toggler',\n prevButtonContent: <FaArrowCircleLeft focusable={false} />,\n nextButtonContent: <FaArrowCircleRight focusable={false} />,\n fallbackImgDir: '../../images/baselayer/',\n validExtent: [-Infinity, -Infinity, Infinity, Infinity],\n titles: {\n button: 'Toggle base layer',\n nextButton: 'Next base layer',\n prevButton: 'Previous base layer',\n },\n};\n\n/**\n * The BaseLayerToggler 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 */\nclass BaseLayerToggler extends Component {\n static isDifferentLayers(prevLayers, layers) {\n if (prevLayers && layers) {\n return (\n JSON.stringify(\n prevLayers.map((l) => {\n return l.key;\n }),\n ) !==\n JSON.stringify(\n layers.map((l) => {\n return l.key;\n }),\n )\n );\n }\n return false;\n }\n\n constructor(props) {\n super(props);\n this.state = {\n layers: null,\n layerVisible: null,\n idx: 0,\n fallbackImg: null,\n fallbackImgOpacity: 0,\n };\n this.map = null;\n this.ref = React.createRef();\n\n this.updateState = this.updateState.bind(this);\n this.resetState = this.resetState.bind(this);\n }\n\n componentDidMount() {\n const { layerService, map } = this.props;\n\n if (layerService) {\n this.updateLayerService();\n }\n\n if (map) {\n this.updateMap();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { layerService, map } = this.props;\n const { layerVisible, idx, layers } = this.state;\n\n if (layerService !== prevProps.layerService) {\n this.updateLayerService();\n }\n\n if (map !== prevProps.map) {\n this.updateMap();\n }\n\n if (layerVisible && !prevState.layerVisible) {\n this.next();\n } else if (\n layerVisible !== prevState.layerVisible &&\n layers.includes(prevState.layerVisible)\n ) {\n // In case the visibility of the background Layer is change from another component.\n this.toggle(prevState.layerVisible);\n }\n\n if (\n this.map &&\n (idx !== prevState.idx ||\n BaseLayerToggler.isDifferentLayers(prevState.layers, layers))\n ) {\n this.map.getLayers().clear();\n\n if (!layers.length) {\n return;\n }\n let children = [];\n let childLayers = [];\n if (idx !== null && idx < layers.length) {\n children = layers[idx].children;\n childLayers = children.length ? children : [layers[idx]];\n }\n\n childLayers.forEach((layer) => {\n let cloned;\n if (layer.mapboxLayer) {\n // MapboxStyleLayer\n cloned = layer.clone({ mapboxLayer: layer.mapboxLayer.clone() });\n } else if (layer.olLayer instanceof TileLayer) {\n // The clone method of mobility-toolbox-js will reuse the same\n // TileLayer passed in parameter but it's not possible in ol\n // to use the same layer in 2 maps so we have to recreate it.\n cloned = layer.clone({\n olLayer: new TileLayer({\n source: layer.olLayer.getSource(),\n }),\n });\n } else {\n cloned = layer.clone();\n }\n\n cloned.init(this.map); // Including addLayer\n cloned.setVisible(true);\n if (\n cloned.olLayer ||\n (cloned.mapboxLayer && cloned.mapboxLayer.olLayer)\n ) {\n this.map.addLayer(cloned.olLayer || cloned.mapboxLayer.olLayer);\n }\n this.checkExtent();\n });\n }\n }\n\n componentWillUnmount() {\n const { layerService } = this.props;\n unByKey([this.postRenderKey, this.moveEndKey]);\n layerService.un('change:visible', this.updateState);\n layerService.un('change:layers', this.resetState);\n }\n\n setNextVisible(nextLayer) {\n const { layers } = this.state;\n // Unset visibility to all layers before showing the next layer.\n layers.forEach((l) => {\n return l.visible && l.setVisible(false, true, true, true);\n });\n nextLayer.setVisible(true);\n }\n\n updateLayerService() {\n const { layerService } = this.props;\n\n if (!layerService) {\n return;\n }\n layerService.un('change:visible', this.updateState);\n layerService.un('change:layers', this.resetState);\n this.updateState();\n layerService.on('change:visible', this.updateState);\n layerService.on('change:layers', this.resetState);\n }\n\n updateState(evtLayer) {\n if (evtLayer && !evtLayer.isBaseLayer) {\n return;\n }\n\n const { layerService } = this.props;\n const { idx } = this.state;\n\n const layers = layerService.getBaseLayers() || [];\n let newIdx = idx;\n if (newIdx === -1 && layers.length > 1) {\n newIdx = 0;\n layers[idx].setVisible(true);\n }\n\n this.setState({\n layers,\n idx: newIdx,\n layerVisible: layers.length > 1 ? layers[newIdx] : null,\n });\n }\n\n resetState() {\n const { layerService } = this.props;\n const { layerVisible } = this.state;\n\n const layers = layerService.getBaseLayers() || [];\n const idx = layerVisible ? layers.indexOf(layerVisible) : -1;\n let newIdx;\n\n if (idx === -1) {\n newIdx = 1;\n } else if (idx === layers.length - 1) {\n newIdx = 0;\n } else {\n newIdx = idx + 1;\n }\n\n const newLayerVisible = layers[idx === -1 ? 0 : idx];\n this.setState({\n layers,\n idx: layers.length > 1 ? newIdx : null,\n layerVisible:\n layers.indexOf(newLayerVisible) >= 0 ? newLayerVisible : undefined,\n });\n }\n\n updateMap() {\n const { map } = this.props;\n if (!this.map) {\n this.map = new OLMap({ controls: [], interactions: [] });\n }\n unByKey([this.postRenderKey, this.moveEndKey]);\n this.postRenderKey = map.on('postrender', (e) => {\n this.map.getView().setZoom(e.target.getView().getZoom());\n if (this.ref && this.ref.current) {\n const elt = this.ref.current;\n const coord = map.getCoordinateFromPixel([\n elt.offsetLeft + elt.offsetWidth / 2,\n elt.offsetTop + elt.offsetHeight / 2,\n ]);\n\n // In some case the map is not able to get the coord.\n // For example if the map has a width or height of 0.\n if (!coord) {\n return;\n }\n\n this.map.getView().setCenter(coord);\n }\n });\n\n this.moveEndKey = map.on('moveend', () => {\n this.checkExtent();\n });\n }\n\n toggle(layer) {\n const { layers } = this.state;\n\n let index = 0;\n while (layer !== layers[index]) {\n index += 1;\n }\n\n this.setState({\n idx: index,\n });\n }\n\n previous() {\n const { layers, layerVisible, idx } = this.state;\n let previousIdx = idx - 1;\n\n while (!layers[previousIdx] || layerVisible === layers[previousIdx]) {\n previousIdx -= 1;\n if (previousIdx < 0) {\n previousIdx = layers.length - 1;\n }\n }\n\n this.setState({\n idx: previousIdx,\n });\n }\n\n next() {\n const { layers, layerVisible, idx } = this.state;\n let nextIdx = idx + 1;\n\n while (!layers[nextIdx] || layerVisible === layers[nextIdx]) {\n nextIdx += 1;\n if (nextIdx >= layers.length) {\n nextIdx = 0;\n }\n }\n\n this.setState({\n idx: nextIdx,\n });\n }\n\n /**\n * Check if the next layer is inside the global extent.\n * If not, try setting a global image.\n */\n checkExtent() {\n const { validExtent, map, fallbackImgDir } = this.props;\n const { idx, layers, fallbackImg } = this.state;\n const nextLayer = layers[idx];\n let opacity = 0;\n let img = fallbackImg;\n\n if (validExtent && this.ref && this.ref.current && nextLayer) {\n const elt = this.ref.current;\n const blCoord = map.getCoordinateFromPixel([\n elt.offsetLeft,\n elt.offsetTop + elt.offsetHeight,\n ]);\n const trCoord = map.getCoordinateFromPixel([\n elt.offsetLeft + elt.offsetWidth,\n elt.offsetTop,\n ]);\n\n if (!blCoord || !trCoord) {\n return;\n }\n\n if (!containsExtent(validExtent, [...blCoord, ...trCoord])) {\n opacity = 1;\n img = `${fallbackImgDir}${nextLayer.key}.png`;\n }\n }\n\n this.setState({\n fallbackImg: img,\n fallbackImgOpacity: opacity,\n });\n }\n\n render() {\n const { className, titles, prevButtonContent, nextButtonContent } =\n this.props;\n const { layers, idx, fallbackImg, fallbackImgOpacity } = this.state;\n\n let footer = null;\n\n if (!layers || layers.length < 2) {\n return null;\n }\n\n if (layers.length > 2) {\n footer = (\n <div className=\"rs-base-layer-footer\">\n <div\n className=\"rs-base-layer-previous\"\n role=\"button\"\n onClick={() => {\n return this.previous();\n }}\n onKeyPress={(e) => {\n return e.which === 13 && this.previous();\n }}\n tabIndex=\"0\"\n aria-label={titles.prevButton}\n title={titles.prevButton}\n >\n {prevButtonContent}\n </div>\n <div\n className=\"rs-base-layer-next\"\n role=\"button\"\n onClick={() => {\n return this.next();\n }}\n onKeyPress={(e) => {\n return e.which === 13 && this.next();\n }}\n tabIndex=\"0\"\n aria-label={titles.nextButton}\n title={titles.nextButton}\n >\n {nextButtonContent}\n </div>\n </div>\n );\n }\n\n const nextLayer = layers[idx];\n\n return (\n <div className={className} ref={this.ref}>\n <div\n className=\"rs-base-layer-toggle-button\"\n role=\"button\"\n title={titles.button}\n aria-label={titles.button}\n onClick={() => {\n return this.setNextVisible(nextLayer);\n }}\n onKeyPress={(e) => {\n return e.which === 13 && this.setNextVisible(nextLayer);\n }}\n tabIndex=\"0\"\n >\n <img\n src={fallbackImg}\n alt={fallbackImg}\n style={{\n /* stylelint-disable-next-line value-keyword-case */\n opacity: fallbackImgOpacity,\n }}\n className=\"rs-base-layer-image\"\n />\n <BasicMap\n map={this.map}\n className=\"rs-base-layer-map\"\n tabIndex={-1}\n />\n </div>\n {footer}\n </div>\n );\n }\n}\n\nBaseLayerToggler.propTypes = propTypes;\nBaseLayerToggler.defaultProps = defaultProps;\n\nexport default BaseLayerToggler;\n"],"names":["const","super","let","this"],"mappings":"AAAA,OAAO,KAAK,IAAI,SAAS,QAAQ,OAAO,CAAC;AACzC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,SAAS,iBAAiB,EAAE,kBAAkB,QAAQ,gBAAgB,CAAC;AACvE,OAAO,KAAK,MAAM,QAAQ,CAAC;AAC3B,SAAS,OAAO,QAAQ,eAAe,CAAC;AACxC,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,SAAS,cAAc,QAAQ,WAAW,CAAC;AAC3C,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC;AACAA,GAAK,CAAC,SAAS,GAAG;AAClB;AACA;AACA;AACA,EAAE,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU;AAC7C;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;AAClD;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM;AAC7B;AACA;AACA;AACA;AACA,EAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI;AACnC;AACA;AACA;AACA;AACA,EAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI;AACnC;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,SAAS,CAAC,MAAM;AAClC;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;AAClD;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;AAC1B,IAAI,MAAM,EAAE,SAAS,CAAC,MAAM;AAC5B,IAAI,UAAU,EAAE,SAAS,CAAC,MAAM;AAChC,IAAI,UAAU,EAAE,SAAS,CAAC,MAAM;AAChC,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG;AACrB,EAAE,YAAY,EAAE,SAAS;AACzB,EAAE,SAAS,EAAE,uBAAuB;AACpC,EAAE,iBAAiB,EAAE,qBAAC,oBAAiB,CAAC,WAAW,OAAM,CAAG;AAC5D,EAAE,iBAAiB,EAAE,qBAAC,qBAAkB,CAAC,WAAW,OAAM,CAAG;AAC7D,EAAE,cAAc,EAAE,yBAAyB;AAC3C,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACzD,EAAE,MAAM,EAAE;AACV,IAAI,MAAM,EAAE,mBAAmB;AAC/B,IAAI,UAAU,EAAE,iBAAiB;AACjC,IAAI,UAAU,EAAE,qBAAqB;AACrC,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAM,gBAAgB,GAAkB;EAmBtC,yBAAW,CAAC,KAAK,EAAE;AACrB,IAAIC,cAAK,OAAC,KAAK,CAAC,CAAC;AACjB,IAAI,IAAI,CAAC,KAAK,GAAG;AACjB,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,GAAG,EAAE,CAAC;AACZ,MAAM,WAAW,EAAE,IAAI;AACvB,MAAM,kBAAkB,EAAE,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AACjC;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD;;;;4DAAG;AACH;AACA,EAlCE,iBAAO,+CAAiB,CAAC,UAAU,EAAE,MAAM,EAAE;AAC/C,IAAI,IAAI,UAAU,IAAI,MAAM,EAAE;AAC9B,MAAM,OAAO;AACb,QAAQ,IAAI,CAAC,SAAS;AACtB,UAAU,UAAU,CAAC,GAAG,UAAC,CAAC,CAAC,EAAK;AAChC,YAAY,OAAO,CAAC,CAAC,GAAG,CAAC;AACzB,WAAW,CAAE;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,SAAS;AACtB,UAAU,MAAM,CAAC,GAAG,UAAC,CAAC,CAAC,EAAK;AAC5B,YAAY,OAAO,CAAC,CAAC,GAAG,CAAC;AACzB,WAAW,CAAE;AACb,SAAS;AACT,OAAO,CAAC;AACR,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB;;6BAkBE,+CAAiB,GAAG;AACtB,WAA+B,GAAG,IAAI,CAAC;IAA3B;IAAc,kBAAmB;AAC7C;AACA,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAChC,KAAK;AACL;AACA,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,KAAK;AACL,IAAG;AACH;AACA,6BAAE,iDAAkB,CAAC,SAAS,EAAE,SAAS,EAAE;;AAAC;AAC5C,WAA+B,GAAG,IAAI,CAAC;IAA3B;IAAc,kBAAmB;AAC7C,aAAuC,GAAG,IAAI,CAAC;IAAnC;IAAc;IAAK,0BAAsB;AACrD;AACA,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC,YAAY,EAAE;AACjD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAChC,KAAK;AACL;AACA,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,GAAG,EAAE;AAC/B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,KAAK;AACL;AACA,IAAI,IAAI,YAAY,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AACjD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK,MAAM;AACX,MAAM,YAAY,KAAK,SAAS,CAAC,YAAY;AAC7C,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC;AAC7C,MAAM;AACN;AACA,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC1C,KAAK;AACL;AACA,IAAI;AACJ,MAAM,IAAI,CAAC,GAAG;AACd,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG;AAC5B,QAAQ,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrE,MAAM;AACN,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;AACnC;AACA,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC1B,QAAQ,OAAO;AACf,OAAO;AACP,MAAMC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;AACxB,MAAMA,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AAC/C,QAAQ,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AACxC,QAAQ,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,OAAO;AACP;AACA,MAAM,WAAW,CAAC,OAAO,UAAC,CAAC,KAAK,EAAK;AACrC,QAAQA,GAAG,CAAC,MAAM,CAAC;AACnB,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE;AAC/B;AACA,UAAU,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3E,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,YAAY,SAAS,EAAE;AACvD;AACA;AACA;AACA,UAAU,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AAC/B,YAAY,OAAO,EAAE,IAAI,SAAS,CAAC;AACnC,cAAc,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;AAC/C,aAAa,CAAC;AACd,WAAW,CAAC,CAAC;AACb,SAAS,MAAM;AACf,UAAU,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,IAAI,CAACC,MAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAChC,QAAQ;AACR,UAAU,MAAM,CAAC,OAAO;AACxB,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;AAC5D,UAAU;AACV,UAAUA,MAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC1E,SAAS;AACT,QAAQA,MAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAG;AACH;AACA,6BAAE,qDAAoB,GAAG;AACzB,WAA0B,GAAG,IAAI,CAAC;IAAtB,oCAA4B;AACxC,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACnD,IAAI,YAAY,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACxD,IAAI,YAAY,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD,IAAG;AACH;AACA,6BAAE,yCAAc,CAAC,SAAS,EAAE;AAC5B,WAAoB,GAAG,IAAI,CAAC;IAAhB,wBAAsB;AAClC;AACA,IAAI,MAAM,CAAC,OAAO,UAAC,CAAC,CAAC,EAAK;AAC1B,MAAM,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,KAAK,CAAC,CAAC;AACP,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAG;AACH;AACA,6BAAE,iDAAkB,GAAG;AACvB,WAA0B,GAAG,IAAI,CAAC;IAAtB,oCAA4B;AACxC;AACA,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,YAAY,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACxD,IAAI,YAAY,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,IAAI,YAAY,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACxD,IAAI,YAAY,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD,IAAG;AACH;AACA,6BAAE,mCAAW,CAAC,QAAQ,EAAE;AACxB,IAAI,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC3C,MAAM,OAAO;AACb,KAAK;AACL;AACA,WAA0B,GAAG,IAAI,CAAC;IAAtB,oCAA4B;AACxC,aAAiB,GAAG,IAAI,CAAC;IAAb,oBAAmB;AAC/B;AACA,IAAIH,GAAK,CAAC,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;AACtD,IAAIE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;AACrB,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACnC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClB,cAAM,MAAM;AACZ,MAAM,GAAG,EAAE,MAAM;AACjB,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;AAC7D,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,iCAAU,GAAG;AACf,WAA0B,GAAG,IAAI,CAAC;IAAtB,oCAA4B;AACxC,aAA0B,GAAG,IAAI,CAAC;IAAtB,sCAA4B;AACxC;AACA,IAAIF,GAAK,CAAC,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;AACtD,IAAIA,GAAK,CAAC,GAAG,GAAG,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,IAAIE,GAAG,CAAC,MAAM,CAAC;AACf;AACA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACpB,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;AACvB,KAAK;AACL;AACA,IAAIF,GAAK,CAAC,eAAe,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACzD,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClB,cAAM,MAAM;AACZ,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI;AAC5C,MAAM,YAAY;AAClB,QAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,eAAe,GAAG,SAAS;AAC1E,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,+BAAS,GAAG;;AAAC;AACf,WAAiB,GAAG,IAAI,CAAC;IAAb,kBAAmB;AAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACnB,MAAM,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,YAAY,WAAE,CAAC,CAAC,EAAK;AACrD,MAAMG,MAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/D,MAAM,IAAIA,MAAI,CAAC,GAAG,IAAIA,MAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AACxC,QAAQH,GAAK,CAAC,GAAG,GAAGG,MAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACrC,QAAQH,GAAK,CAAC,KAAK,GAAG,GAAG,CAAC,sBAAsB,CAAC;AACjD,UAAU,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC;AAC9C,UAAU,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CACtC,CAAC,CAAC,CAAC;AACX;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,UAAU,OAAO;AACjB,SAAS;AACT;AACA,QAAQG,MAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5C,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,SAAS,WAAE,GAAM;AAC9C,MAAMA,MAAI,CAAC,WAAW,EAAE,CAAC;AACzB,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,yBAAM,CAAC,KAAK,EAAE;AAChB,WAAoB,GAAG,IAAI,CAAC;IAAhB,wBAAsB;AAClC;AACA,IAAID,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,OAAO,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;AACpC,MAAM,KAAK,IAAI,CAAC,CAAC;AACjB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClB,MAAM,GAAG,EAAE,KAAK;AAChB,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,6BAAQ,GAAG;AACb,WAAuC,GAAG,IAAI,CAAC;IAAnC;IAAQ;IAAc,kBAAmB;AACrD,IAAIA,GAAG,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC;AAC9B;AACA,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,YAAY,KAAK,MAAM,CAAC,WAAW,CAAC,EAAE;AACzE,MAAM,WAAW,IAAI,CAAC,CAAC;AACvB,MAAM,IAAI,WAAW,GAAG,CAAC,EAAE;AAC3B,QAAQ,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClB,MAAM,GAAG,EAAE,WAAW;AACtB,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,qBAAI,GAAG;AACT,WAAuC,GAAG,IAAI,CAAC;IAAnC;IAAQ;IAAc,kBAAmB;AACrD,IAAIA,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;AAC1B;AACA,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,YAAY,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE;AACjE,MAAM,OAAO,IAAI,CAAC,CAAC;AACnB,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE;AACpC,QAAQ,OAAO,GAAG,CAAC,CAAC;AACpB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClB,MAAM,GAAG,EAAE,OAAO;AAClB,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,6BAAE,mCAAW,GAAG;AAChB,WAA8C,GAAG,IAAI,CAAC;IAA1C;IAAa;IAAK,wCAA8B;AAC5D,aAAsC,GAAG,IAAI,CAAC;IAAlC;IAAK;IAAQ,oCAA2B;AACpD,IAAIF,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAClC,IAAIE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;AACpB,IAAIA,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC;AAC1B;AACA,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,EAAE;AAClE,MAAMF,GAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACnC,MAAMA,GAAK,CAAC,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC;AACjD,QAAQ,GAAG,CAAC,UAAU;AACtB,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,CAClC,CAAC,CAAC,CAAC;AACT,MAAMA,GAAK,CAAC,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC;AACjD,QAAQ,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW;AACxC,QAAQ,GAAG,CAAC,SAAS,CACf,CAAC,CAAC,CAAC;AACT;AACA,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE;AAChC,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAM,OAAO,SAAK,OAAO,CAAC,CAAC,EAAE;AAClE,QAAQ,OAAO,GAAG,CAAC,CAAC;AACpB,QAAQ,GAAG,GAAG,KAAG,kBAAiB,SAAS,CAAC,IAAG,SAAM,CAAC;AACtD,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClB,MAAM,WAAW,EAAE,GAAG;AACtB,MAAM,kBAAkB,EAAE,OAAO;AACjC,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,yBAAM,GAAG;;AAAC;AACZ,WAAqE;AACrE,MAAM,IAAI,CAAC;IADC;IAAW;IAAQ;IAAmB,8CACjC;AACjB,aAA0D,GAAG,IAAI,CAAC;IAAtD;IAAQ;IAAK;IAAa,kDAAkC;AACxE;AACA,IAAIE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACtB;AACA,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,MAAM,MAAM,GAAG;AACf,QAAQ,sBAAC,OAAG,CAAC,WAAU,yBAAuB;AAC9C,UAAU,sBAAC,OAAG;AACd,YAAY,WAAU,wBAAwB,EAClC,MAAK,QAAQ,EACb,kBAAS,GAAM;AAC3B,cAAc,OAAOC,MAAI,CAAC,QAAQ,EAAE,CAAC;AACrC,aAAc,EACF,qBAAY,CAAC,CAAC,EAAK;AAC/B,cAAc,OAAO,CAAC,CAAC,KAAK,KAAK,EAAE,IAAIA,MAAI,CAAC,QAAQ,EAAE,CAAC;AACvD,aAAc,EACF,UAAS,GAAG,EACZ,cAAY,MAAM,CAAC,UAAW,EAC9B,OAAO,MAAM,CAAC,aACf;AACX,YAAa,iBAAkB;AAC/B,UAAU,EAAM;AAChB,UAAU,sBAAC,OAAG;AACd,YAAY,WAAU,oBAAoB,EAC9B,MAAK,QAAQ,EACb,kBAAS,GAAM;AAC3B,cAAc,OAAOA,MAAI,CAAC,IAAI,EAAE,CAAC;AACjC,aAAc,EACF,qBAAY,CAAC,CAAC,EAAK;AAC/B,cAAc,OAAO,CAAC,CAAC,KAAK,KAAK,EAAE,IAAIA,MAAI,CAAC,IAAI,EAAE,CAAC;AACnD,aAAc,EACF,UAAS,GAAG,EACZ,cAAY,MAAM,CAAC,UAAW,EAC9B,OAAO,MAAM,CAAC,aACf;AACX,YAAa,iBAAkB;AAC/B,UAAU,CAAM;AAChB,QAAQ,CAAM;AACd,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAIH,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAClC;AACA,IAAI,OAAO;AACX,MAAM,sBAAC,OAAG,CAAC,WAAW,SAAU,EAAC,KAAK,IAAI,CAAC,MAAK;AAChD,QAAQ,sBAAC,OAAG;AACZ,UAAU,WAAU,6BAA6B,EACvC,MAAK,QAAQ,EACb,OAAO,MAAM,CAAC,MAAO,EACrB,cAAY,MAAM,CAAC,MAAO,EAC1B,kBAAS,GAAM;AACzB,YAAY,OAAOG,MAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAClD,WAAY,EACF,qBAAY,CAAC,CAAC,EAAK;AAC7B,YAAY,OAAO,CAAC,CAAC,KAAK,KAAK,EAAE,IAAIA,MAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACpE,WAAY,EACF,UAAS,MACV;AACT,UAAU,sBAAC,OAAG;AACd,YAAY,KAAK,WAAY,EACjB,KAAK,WAAY,EACjB,OAAO;AACnB;AACA,cAAc,OAAO,EAAE,kBAAkB;AACzC,aAAc,EACF,WAAU,uBAAqB,EAC/B;AACZ,UAAU,qBAAC,WAAQ;AACnB,YAAY,KAAK,IAAI,CAAC,GAAI,EACd,WAAU,mBAAmB,EAC7B,UAAU,CAAC,GAAE,CACb;AACZ,QAAQ,EAAM;AACd,QAAS,MAAO;AAChB,MAAM,CAAM;AACZ,KAAK,CAAC;AACN;;;EArY+B,YAsY9B;AACD;AACA,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAC;AACvC,gBAAgB,CAAC,YAAY,GAAG,YAAY,CAAC;AAC7C;AACA,eAAe,gBAAgB,CAAC;"}
@@ -1,9 +0,0 @@
1
- .rs-base-layer-example {
2
- position: relative;
3
-
4
- .rs-base-layer-toggler {
5
- position: absolute;
6
- bottom: 10px;
7
- left: 10px;
8
- }
9
- }
@@ -1,49 +0,0 @@
1
- .rs-base-layer-toggler {
2
- width: 120px;
3
- height: 120px;
4
- border: 2px solid lightgray;
5
- background-color: white;
6
- position: relative;
7
-
8
- .rs-base-layer-map,
9
- .rs-base-layer-image {
10
- position: absolute;
11
- height: 100%;
12
- width: 100%;
13
- }
14
-
15
- .rs-base-layer-toggle-button {
16
- width: 100%;
17
- height: 100%;
18
- }
19
-
20
- .rs-base-layer-footer {
21
- background-color: #fffa;
22
- position: absolute;
23
- bottom: 0;
24
- left: 0;
25
- right: 0;
26
- padding: 2px;
27
- height: 21px;
28
- z-index: 1;
29
-
30
- .rs-base-layer-next,
31
- .rs-base-layer-previous {
32
- width: 18px;
33
- height: 18px;
34
-
35
- svg {
36
- width: 100%;
37
- height: 100%;
38
- }
39
- }
40
-
41
- .rs-base-layer-next {
42
- float: right;
43
- }
44
-
45
- .rs-base-layer-previous {
46
- float: left;
47
- }
48
- }
49
- }