react-spatial 1.5.3 → 1.5.5

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 (282) hide show
  1. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +262 -0
  2. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -0
  3. package/components/BaseLayerSwitcher/index.js +1 -0
  4. package/components/BaseLayerSwitcher/index.js.map +7 -0
  5. package/{src/components → components}/BasicMap/BasicMap.js +80 -170
  6. package/components/BasicMap/BasicMap.js.map +7 -0
  7. package/components/BasicMap/index.js +1 -0
  8. package/components/BasicMap/index.js.map +7 -0
  9. package/{src/components → components}/CanvasSaveButton/CanvasSaveButton.js +133 -278
  10. package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -0
  11. package/components/CanvasSaveButton/index.js +1 -0
  12. package/components/CanvasSaveButton/index.js.map +7 -0
  13. package/{src/components → components}/Copyright/Copyright.js +21 -41
  14. package/components/Copyright/Copyright.js.map +7 -0
  15. package/components/Copyright/index.js +1 -0
  16. package/components/Copyright/index.js.map +7 -0
  17. package/components/FeatureExportButton/FeatureExportButton.js +80 -0
  18. package/components/FeatureExportButton/FeatureExportButton.js.map +7 -0
  19. package/components/FeatureExportButton/index.js +1 -0
  20. package/components/FeatureExportButton/index.js.map +7 -0
  21. package/{src/components → components}/FitExtent/FitExtent.js +16 -30
  22. package/components/FitExtent/FitExtent.js.map +7 -0
  23. package/components/FitExtent/index.js +1 -0
  24. package/components/FitExtent/index.js.map +7 -0
  25. package/{src/components → components}/Geolocation/Geolocation.js +60 -110
  26. package/components/Geolocation/Geolocation.js.map +7 -0
  27. package/components/Geolocation/index.js +1 -0
  28. package/components/Geolocation/index.js.map +7 -0
  29. package/{src/components → components}/LayerTree/LayerTree.js +113 -213
  30. package/components/LayerTree/LayerTree.js.map +7 -0
  31. package/components/LayerTree/index.js +1 -0
  32. package/components/LayerTree/index.js.map +7 -0
  33. package/{src/components → components}/MousePosition/MousePosition.js +37 -70
  34. package/components/MousePosition/MousePosition.js.map +7 -0
  35. package/components/MousePosition/index.js +1 -0
  36. package/components/MousePosition/index.js.map +7 -0
  37. package/{src/components → components}/NorthArrow/NorthArrow.js +18 -34
  38. package/components/NorthArrow/NorthArrow.js.map +7 -0
  39. package/components/NorthArrow/index.js +1 -0
  40. package/components/NorthArrow/index.js.map +7 -0
  41. package/{src/components → components}/Overlay/Overlay.js +59 -85
  42. package/components/Overlay/Overlay.js.map +7 -0
  43. package/components/Overlay/index.js +1 -0
  44. package/components/Overlay/index.js.map +7 -0
  45. package/{src/components → components}/Permalink/Permalink.js +64 -147
  46. package/components/Permalink/Permalink.js.map +7 -0
  47. package/components/Permalink/index.js +1 -0
  48. package/components/Permalink/index.js.map +7 -0
  49. package/{src/components → components}/Popup/Popup.js +57 -116
  50. package/components/Popup/Popup.js.map +7 -0
  51. package/components/Popup/index.js +1 -0
  52. package/components/Popup/index.js.map +7 -0
  53. package/{src/components → components}/ResizeHandler/ResizeHandler.js +15 -49
  54. package/components/ResizeHandler/ResizeHandler.js.map +7 -0
  55. package/components/ResizeHandler/index.js +1 -0
  56. package/components/ResizeHandler/index.js.map +7 -0
  57. package/components/RouteSchedule/RouteSchedule.js +268 -0
  58. package/components/RouteSchedule/RouteSchedule.js.map +7 -0
  59. package/components/RouteSchedule/index.js +1 -0
  60. package/components/RouteSchedule/index.js.map +7 -0
  61. package/{src/components → components}/ScaleLine/ScaleLine.js +8 -23
  62. package/components/ScaleLine/ScaleLine.js.map +7 -0
  63. package/components/ScaleLine/index.js +1 -0
  64. package/components/ScaleLine/index.js.map +7 -0
  65. package/{src/components → components}/StopsFinder/StopsFinder.js +74 -103
  66. package/components/StopsFinder/StopsFinder.js.map +7 -0
  67. package/components/StopsFinder/StopsFinderOption.js +44 -0
  68. package/components/StopsFinder/StopsFinderOption.js.map +7 -0
  69. package/components/StopsFinder/index.js +1 -0
  70. package/components/StopsFinder/index.js.map +7 -0
  71. package/{src/components → components}/Zoom/Zoom.js +46 -77
  72. package/components/Zoom/Zoom.js.map +7 -0
  73. package/components/Zoom/index.js +1 -0
  74. package/components/Zoom/index.js.map +7 -0
  75. package/package.json +32 -31
  76. package/{src/propTypes.js → propTypes.js} +30 -16
  77. package/propTypes.js.map +7 -0
  78. package/{src/setupTests.js → setupTests.js} +1 -1
  79. package/setupTests.js.map +7 -0
  80. package/utils/GlobalsForOle.js +94 -0
  81. package/utils/GlobalsForOle.js.map +7 -0
  82. package/utils/KML.js +420 -0
  83. package/utils/KML.js.map +7 -0
  84. package/{src/utils → utils}/KMLFormat.js +29 -32
  85. package/utils/KMLFormat.js.map +7 -0
  86. package/{src/utils → utils}/Styles.js +14 -20
  87. package/utils/Styles.js.map +7 -0
  88. package/{src/utils → utils}/getPolygonPattern.js +6 -34
  89. package/utils/getPolygonPattern.js.map +7 -0
  90. package/{src/utils → utils}/timeUtils.js +5 -22
  91. package/utils/timeUtils.js.map +7 -0
  92. package/.github/workflows/conventional-pr-title.yml +0 -21
  93. package/.github/workflows/main.yml +0 -28
  94. package/.husky/commit-msg +0 -4
  95. package/.husky/post-checkout +0 -4
  96. package/.husky/post-merge +0 -4
  97. package/.husky/post-rebase +0 -4
  98. package/.husky/pre-commit +0 -4
  99. package/.nvmrc +0 -1
  100. package/.whitesource +0 -8
  101. package/CHANGELOG.md +0 -65
  102. package/DEVELOP.md +0 -113
  103. package/__mocks__/mapbox-gl.js +0 -11
  104. package/__mocks__/resize-observer-polyfill.js +0 -9
  105. package/babel.config.js +0 -3
  106. package/commitlint.config.js +0 -1
  107. package/data/topic1.js +0 -119
  108. package/data/topic2.js +0 -28
  109. package/doc/README.md +0 -21
  110. package/doc/doc-config.json +0 -4
  111. package/pull_request_template.md +0 -16
  112. package/renovate.json +0 -4
  113. package/scripts/read-pkg-json.js +0 -17
  114. package/src/components/BaseLayerSwitcher/BaseLayerSwitcher.js +0 -322
  115. package/src/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -69
  116. package/src/components/BaseLayerSwitcher/README.md +0 -61
  117. package/src/components/BaseLayerSwitcher/__snapshots__/BaseLayerSwitcher.test.js.snap +0 -88
  118. package/src/components/BaseLayerSwitcher/index.js +0 -1
  119. package/src/components/BasicMap/BasicMap.test.js +0 -281
  120. package/src/components/BasicMap/README.md +0 -18
  121. package/src/components/BasicMap/index.js +0 -1
  122. package/src/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -148
  123. package/src/components/CanvasSaveButton/README.md +0 -76
  124. package/src/components/CanvasSaveButton/__snapshots__/CanvasSaveButton.test.js.snap +0 -76
  125. package/src/components/CanvasSaveButton/index.js +0 -1
  126. package/src/components/Copyright/Copyright.test.js +0 -134
  127. package/src/components/Copyright/README.md +0 -36
  128. package/src/components/Copyright/index.js +0 -1
  129. package/src/components/FeatureExportButton/FeatureExportButton.js +0 -118
  130. package/src/components/FeatureExportButton/FeatureExportButton.test.js +0 -417
  131. package/src/components/FeatureExportButton/README.md +0 -76
  132. package/src/components/FeatureExportButton/__snapshots__/FeatureExportButton.test.js.snap +0 -67
  133. package/src/components/FeatureExportButton/index.js +0 -1
  134. package/src/components/FitExtent/FitExtent.test.js +0 -48
  135. package/src/components/FitExtent/README.md +0 -34
  136. package/src/components/FitExtent/__snapshots__/FitExtent.test.js.snap +0 -13
  137. package/src/components/FitExtent/index.js +0 -1
  138. package/src/components/Geolocation/Geolocation.test.js +0 -267
  139. package/src/components/Geolocation/README.md +0 -25
  140. package/src/components/Geolocation/__snapshots__/Geolocation.test.js.snap +0 -92
  141. package/src/components/Geolocation/index.js +0 -1
  142. package/src/components/LayerTree/LayerTree.test.js +0 -337
  143. package/src/components/LayerTree/README.md +0 -92
  144. package/src/components/LayerTree/__snapshots__/LayerTree.test.js.snap +0 -1746
  145. package/src/components/LayerTree/index.js +0 -1
  146. package/src/components/MousePosition/MousePosition.test.js +0 -132
  147. package/src/components/MousePosition/README.md +0 -50
  148. package/src/components/MousePosition/__snapshots__/MousePosition.test.js.snap +0 -76
  149. package/src/components/MousePosition/index.js +0 -1
  150. package/src/components/NorthArrow/NorthArrow.test.js +0 -104
  151. package/src/components/NorthArrow/README.md +0 -59
  152. package/src/components/NorthArrow/__snapshots__/NorthArrow.test.js.snap +0 -117
  153. package/src/components/NorthArrow/index.js +0 -1
  154. package/src/components/Overlay/Overlay.test.js +0 -149
  155. package/src/components/Overlay/README.md +0 -59
  156. package/src/components/Overlay/__snapshots__/Overlay.test.js.snap +0 -9
  157. package/src/components/Overlay/index.js +0 -1
  158. package/src/components/Permalink/Permalink.test.js +0 -285
  159. package/src/components/Permalink/README.md +0 -105
  160. package/src/components/Permalink/index.js +0 -1
  161. package/src/components/Popup/Popup.test.js +0 -307
  162. package/src/components/Popup/README.md +0 -93
  163. package/src/components/Popup/__snapshots__/Popup.test.js.snap +0 -180
  164. package/src/components/Popup/index.js +0 -1
  165. package/src/components/README.md +0 -41
  166. package/src/components/ResizeHandler/ResizeHandler.test.js +0 -344
  167. package/src/components/ResizeHandler/index.js +0 -1
  168. package/src/components/RouteSchedule/README.md +0 -118
  169. package/src/components/RouteSchedule/RouteSchedule.js +0 -370
  170. package/src/components/RouteSchedule/RouteSchedule.test.js +0 -113
  171. package/src/components/RouteSchedule/__snapshots__/RouteSchedule.test.js.snap +0 -248
  172. package/src/components/RouteSchedule/index.js +0 -1
  173. package/src/components/ScaleLine/README.md +0 -29
  174. package/src/components/ScaleLine/ScaleLine.test.js +0 -30
  175. package/src/components/ScaleLine/__snapshots__/ScaleLine.test.js.snap +0 -7
  176. package/src/components/ScaleLine/index.js +0 -1
  177. package/src/components/StopsFinder/README.md +0 -50
  178. package/src/components/StopsFinder/StopsFinder.test.js +0 -17
  179. package/src/components/StopsFinder/StopsFinderOption.js +0 -61
  180. package/src/components/StopsFinder/__snapshots__/StopsFinder.test.js.snap +0 -133
  181. package/src/components/StopsFinder/index.js +0 -1
  182. package/src/components/Zoom/README.md +0 -25
  183. package/src/components/Zoom/Zoom.test.js +0 -141
  184. package/src/components/Zoom/__snapshots__/Zoom.test.js.snap +0 -201
  185. package/src/components/Zoom/index.js +0 -1
  186. package/src/styleguidist/ComponentsList.js +0 -52
  187. package/src/styleguidist/StyleGuide.js +0 -277
  188. package/src/styleguidist/styleguidist.css +0 -38
  189. package/src/utils/GlobalsForOle.js +0 -99
  190. package/src/utils/KML.js +0 -594
  191. package/src/utils/KML.test.js +0 -337
  192. package/src/utils/KMLFormat.test.js +0 -50
  193. package/src/utils/__snapshots__/KML.test.js.snap.KML-readFeatures()-and-writeFeatures()-should-read-and-write-lineDash-and-fillPattern-style-for-polygon.canvas-image.png +0 -0
  194. package/src/utils/__snapshots__/getPolygonPattern.test.js.snap.getPolygonPattern()-render-pattern-2-(cross)-color-and-(light-blue)-opacity.canvas-image.png +0 -0
  195. package/src/utils/__snapshots__/getPolygonPattern.test.js.snap.getPolygonPattern()-render-pattern-3-(diagonal-line-from-bottom-left-tot-top-right)-with-color-(light-blue)-and-opacity.canvas-image.png +0 -0
  196. package/src/utils/__snapshots__/getPolygonPattern.test.js.snap.getPolygonPattern()-render-pattern-4-(diagonal-line-from-top-left-to-bottom-right)-with-color-(light-blue)-and-opacity.canvas-image.png +0 -0
  197. package/src/utils/getPolygonPattern.test.js +0 -61
  198. package/src/utils/timeUtils.test.js +0 -30
  199. package/styleguide.config.js +0 -251
  200. /package/{src/components → components}/BaseLayerSwitcher/BaseLayerSwitcher.md.scss +0 -0
  201. /package/{src/components → components}/BaseLayerSwitcher/BaseLayerSwitcher.scss +0 -0
  202. /package/{src/components → components}/BasicMap/BasicMap.md.scss +0 -0
  203. /package/{src/components → components}/CanvasSaveButton/CanvasSaveButton.md.scss +0 -0
  204. /package/{src/components → components}/Copyright/Copyright.md.scss +0 -0
  205. /package/{src/components → components}/FeatureExportButton/FeatureExportButton.md.scss +0 -0
  206. /package/{src/components → components}/FitExtent/FitExtent.md.scss +0 -0
  207. /package/{src/components → components}/Geolocation/Geolocation.md.scss +0 -0
  208. /package/{src/components → components}/Geolocation/Geolocation.scss +0 -0
  209. /package/{src/components → components}/LayerTree/LayerTree.md.scss +0 -0
  210. /package/{src/components → components}/LayerTree/LayerTree.scss +0 -0
  211. /package/{src/components → components}/MousePosition/MousePosition.md.scss +0 -0
  212. /package/{src/components → components}/NorthArrow/NorthArrow.scss +0 -0
  213. /package/{src/components → components}/Overlay/Overlay.md.scss +0 -0
  214. /package/{src/components → components}/Overlay/Overlay.scss +0 -0
  215. /package/{src/components → components}/Permalink/Permalink.md.scss +0 -0
  216. /package/{src/components → components}/Popup/Popup.md.scss +0 -0
  217. /package/{src/components → components}/Popup/Popup.scss +0 -0
  218. /package/{src/components → components}/RouteSchedule/RouteSchedule.md.scss +0 -0
  219. /package/{src/components → components}/RouteSchedule/RouteSchedule.scss +0 -0
  220. /package/{src/components → components}/ScaleLine/ScaleLine.scss +0 -0
  221. /package/{src/components → components}/Zoom/Zoom.md.scss +0 -0
  222. /package/{src/components → components}/Zoom/Zoom.scss +0 -0
  223. /package/{src/images → images}/RouteSchedule/firstStation.png +0 -0
  224. /package/{src/images → images}/RouteSchedule/lastStation.png +0 -0
  225. /package/{src/images → images}/RouteSchedule/line.png +0 -0
  226. /package/{src/images → images}/RouteSchedule/station.png +0 -0
  227. /package/{src/images → images}/baselayer/baselayer.basebright.png +0 -0
  228. /package/{src/images → images}/baselayer/baselayer.osm.png +0 -0
  229. /package/{src/images → images}/baselayer/baselayer.travic.png +0 -0
  230. /package/{src/images → images}/baselayer/open.topo.map.png +0 -0
  231. /package/{src/images → images}/baselayer/osm.baselayer.hot.png +0 -0
  232. /package/{src/images → images}/baselayer/osm.baselayer.png +0 -0
  233. /package/{src/images → images}/favicon.png +0 -0
  234. /package/{src/images → images}/geops_logo.png +0 -0
  235. /package/{src/images → images}/geops_logo.svg +0 -0
  236. /package/{src/images → images}/geops_qr.png +0 -0
  237. /package/{src/images → images}/mots/bus_poi-blue-01.svg +0 -0
  238. /package/{src/images → images}/mots/bus_poi-grey-01.svg +0 -0
  239. /package/{src/images → images}/mots/bus_round-blue-01.svg +0 -0
  240. /package/{src/images → images}/mots/bus_round-grey-01.svg +0 -0
  241. /package/{src/images → images}/mots/bus_square-blue-01.svg +0 -0
  242. /package/{src/images → images}/mots/bus_square-grey-01.svg +0 -0
  243. /package/{src/images → images}/mots/cable_car_poi-blue-01.svg +0 -0
  244. /package/{src/images → images}/mots/cable_car_poi-grey-01.svg +0 -0
  245. /package/{src/images → images}/mots/cable_car_round-blue-01.svg +0 -0
  246. /package/{src/images → images}/mots/cable_car_round-grey-01.svg +0 -0
  247. /package/{src/images → images}/mots/cable_car_square-blue-01.svg +0 -0
  248. /package/{src/images → images}/mots/cable_car_square-grey-01.svg +0 -0
  249. /package/{src/images → images}/mots/ferry_poi-blue-01.svg +0 -0
  250. /package/{src/images → images}/mots/ferry_poi-grey-01.svg +0 -0
  251. /package/{src/images → images}/mots/ferry_round-blue-01.svg +0 -0
  252. /package/{src/images → images}/mots/ferry_round-grey-01.svg +0 -0
  253. /package/{src/images → images}/mots/ferry_square-blue-01.svg +0 -0
  254. /package/{src/images → images}/mots/ferry_square-grey-01.svg +0 -0
  255. /package/{src/images → images}/mots/funicular_round-blue-01.svg +0 -0
  256. /package/{src/images → images}/mots/funicular_round-grey-01.svg +0 -0
  257. /package/{src/images → images}/mots/funicular_square-blue-01.svg +0 -0
  258. /package/{src/images → images}/mots/gondola_round-blue-01.svg +0 -0
  259. /package/{src/images → images}/mots/rail_poi-blue-01.svg +0 -0
  260. /package/{src/images → images}/mots/rail_poi-grey-01.svg +0 -0
  261. /package/{src/images → images}/mots/rail_round-blue-01.svg +0 -0
  262. /package/{src/images → images}/mots/rail_round-grey-01.svg +0 -0
  263. /package/{src/images → images}/mots/rail_square-blue-01.svg +0 -0
  264. /package/{src/images → images}/mots/rail_square-grey-01.svg +0 -0
  265. /package/{src/images → images}/mots/subway_round blue-01.svg +0 -0
  266. /package/{src/images → images}/mots/subway_round-blue-01.svg +0 -0
  267. /package/{src/images → images}/mots/tram_poi-blue-01.svg +0 -0
  268. /package/{src/images → images}/mots/tram_poi-grey-01.svg +0 -0
  269. /package/{src/images → images}/mots/tram_round-blue-01.svg +0 -0
  270. /package/{src/images → images}/mots/tram_round-grey-01.svg +0 -0
  271. /package/{src/images → images}/mots/tram_square-blue-01.svg +0 -0
  272. /package/{src/images → images}/mots/tram_square-grey-01.svg +0 -0
  273. /package/{src/images → images}/northArrow.svg +0 -0
  274. /package/{src/images → images}/northArrow.url.svg +0 -0
  275. /package/{src/images → images}/northArrowCircle.svg +0 -0
  276. /package/{src/images → images}/northArrowCircle.url.svg +0 -0
  277. /package/{src/themes → themes}/README.md +0 -0
  278. /package/{src/themes → themes}/default/components.scss +0 -0
  279. /package/{src/themes → themes}/default/examples.scss +0 -0
  280. /package/{src/themes → themes}/default/index.scss +0 -0
  281. /package/{src/themes → themes}/default/mixins.scss +0 -0
  282. /package/{src/themes → themes}/default/variables.scss +0 -0
@@ -1,59 +0,0 @@
1
-
2
- The following example demonstrates the use of Overlay.
3
-
4
- ```jsx
5
- import React, { useState, useEffect, useRef } from 'react';
6
- import Overlay from 'react-spatial/components/Overlay';
7
-
8
- function OverlayExample() {
9
- const [open, setOpen] = useState(true);
10
- const [ref, setRef] = useState(null);
11
- const refDiv = useRef(null);
12
-
13
- useEffect(() => {
14
- setRef(refDiv);
15
- }, [refDiv]);
16
-
17
- return (
18
- <div
19
- className="tm-overlay-example"
20
- ref={refDiv}
21
- >
22
- <div
23
- role="button"
24
- className="tm-clickable-feature"
25
- onClick={() => {
26
- setOpen(!open);
27
- }}
28
- >
29
- Toggle Overlay
30
- </div>
31
- {open && ref ? (
32
- <Overlay
33
- observe={ref.current}
34
- className="tm-overlay-container"
35
- mobileSize={{
36
- minimalHeight: '25%',
37
- maximalHeight: '80%',
38
- defaultSize: {
39
- height: '40%',
40
- width: '100%',
41
- },
42
- }}
43
- >
44
- <div
45
- role="button"
46
- onClick={() => {
47
- setOpen(false);
48
- }}
49
- >
50
- Close Overlay
51
- </div>
52
- </Overlay>
53
- ) : null}
54
- </div>
55
- );
56
- }
57
-
58
- <OverlayExample />;
59
- ```
@@ -1,9 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`Overlay should match snapshot. 1`] = `
4
- <div
5
- className="tm-overlay"
6
- >
7
- Test content
8
- </div>
9
- `;
@@ -1 +0,0 @@
1
- export { default } from './Overlay';
@@ -1,285 +0,0 @@
1
- import 'jest-canvas-mock';
2
- import React from 'react';
3
- import MapEvent from 'ol/MapEvent';
4
- import OLMap from 'ol/Map';
5
- import View from 'ol/View';
6
- import { Layer, MapboxLayer } from 'mobility-toolbox-js/ol';
7
- import { act, render } from '@testing-library/react';
8
- import Permalink from './Permalink';
9
-
10
- const defaultIsLayerHidden = (l) => {
11
- let isParentHidden = false;
12
- let { parent } = l;
13
- while (!isParentHidden && parent) {
14
- isParentHidden = parent.get('hideInLegend');
15
- parent = parent.parent;
16
- }
17
-
18
- return l.get('hideInLegend') || isParentHidden;
19
- };
20
-
21
- describe('Permalink', () => {
22
- let layers;
23
- beforeEach(() => {
24
- // Ensure default empty url.
25
- window.history.pushState({}, undefined, '/');
26
- layers = [
27
- new Layer({
28
- name: 'Ultimate layer',
29
- key: 'ultimate.layer',
30
- visible: true,
31
- properties: {
32
- hideInLegend: true,
33
- },
34
- }),
35
- new Layer({
36
- name: 'Swiss boundaries',
37
- key: 'swiss.boundaries',
38
- visible: false,
39
- properties: {
40
- hideInLegend: true,
41
- },
42
- }),
43
- new MapboxLayer({
44
- name: 'Base - Bright',
45
- key: 'basebright.baselayer',
46
- group: 'baseLayer',
47
- properties: {
48
- isBaseLayer: true,
49
- },
50
- }),
51
- new MapboxLayer({
52
- name: 'Base - Dark',
53
- key: 'basedark.baselayer',
54
- visible: false,
55
- group: 'baseLayer',
56
- properties: {
57
- isBaseLayer: true,
58
- },
59
- }),
60
- new Layer({
61
- name: 'Layer with children that are hidden',
62
- key: 'children.hidden.layer',
63
- visible: true,
64
- children: [
65
- new Layer({
66
- name: 'Child 1 hidden',
67
- key: 'child.hidden.1',
68
- visible: true,
69
- properties: {
70
- hideInLegend: true,
71
- },
72
- }),
73
- new Layer({
74
- name: 'Childr 2 hidden',
75
- key: 'child.hidden.2',
76
- visible: false,
77
- properties: {
78
- hideInLegend: true,
79
- },
80
- }),
81
- ],
82
- }),
83
- ];
84
- });
85
-
86
- test('should initialize x, y & z with history.', () => {
87
- const history = {
88
- replace: jest.fn((v) => {
89
- return v;
90
- }),
91
- };
92
-
93
- const params = {
94
- x: 1000,
95
- y: 1000,
96
- z: 7,
97
- };
98
-
99
- const { rerender } = render(
100
- <Permalink params={params} history={history} />,
101
- );
102
-
103
- act(() => {
104
- rerender(
105
- <Permalink
106
- params={{
107
- x: 1001,
108
- y: 1002,
109
- z: 7,
110
- }}
111
- history={history}
112
- />,
113
- );
114
- });
115
- const search = '?x=1001&y=1002&z=7';
116
-
117
- expect(history.replace.mock.results[1].value.search).toEqual(search);
118
- });
119
-
120
- test('should initialize x, y & z Permalink without history.', () => {
121
- const params = {
122
- x: 1000,
123
- y: 1000,
124
- z: 7,
125
- };
126
-
127
- const { rerender } = render(<Permalink params={params} />);
128
- act(() => {
129
- rerender(
130
- <Permalink
131
- params={{
132
- x: 1001,
133
- y: 1002,
134
- z: 7,
135
- }}
136
- />,
137
- );
138
- });
139
- const search = '?x=1001&y=1002&z=7';
140
-
141
- expect(window.location.search).toEqual(search);
142
- });
143
-
144
- test('should initialize Permalink with layers.', () => {
145
- expect(window.location.search).toEqual('');
146
- render(<Permalink layers={layers} />);
147
- const search =
148
- '?baselayers=basebright.baselayer,basedark.baselayer&layers=ultimate.layer,child.hidden.1';
149
- expect(window.location.search).toEqual(search);
150
- });
151
-
152
- test('should initialize Permalink with isLayerHidden.', () => {
153
- expect(window.location.search).toEqual('');
154
- render(<Permalink layers={layers} isLayerHidden={defaultIsLayerHidden} />);
155
- const search =
156
- '?baselayers=basebright.baselayer,basedark.baselayer&layers=children.hidden.layer';
157
- expect(window.location.search).toEqual(search);
158
- });
159
-
160
- test('should initialize Permalink with map.', () => {
161
- expect(window.location.search).toEqual('');
162
- const olMap = new OLMap({
163
- controls: [],
164
- view: new View({
165
- center: [1001, 1002],
166
- zoom: 5,
167
- }),
168
- });
169
- render(<Permalink map={olMap} />);
170
- act(() => {
171
- olMap.dispatchEvent(new MapEvent('moveend', olMap));
172
- });
173
- const search = '?x=1001&y=1002&z=5';
174
-
175
- expect(window.location.search).toEqual(search);
176
- });
177
-
178
- test('should limit 2 decimals by default for x, y.', () => {
179
- expect(window.location.search).toEqual('');
180
- const olMap = new OLMap({
181
- controls: [],
182
- view: new View({
183
- center: [10010.555555, 10010.5555555],
184
- zoom: 5,
185
- }),
186
- });
187
- render(<Permalink map={olMap} />);
188
-
189
- act(() => {
190
- olMap.dispatchEvent(new MapEvent('moveend', olMap));
191
- });
192
-
193
- const search = '?x=10010.56&y=10010.56&z=5';
194
-
195
- expect(window.location.search).toEqual(search);
196
- });
197
-
198
- test('should round values x & y ".00" for readability.', () => {
199
- expect(window.location.search).toEqual('');
200
- const olMap = new OLMap({
201
- controls: [],
202
- view: new View({
203
- center: [10010.99999, 1001.000001],
204
- zoom: 5,
205
- }),
206
- });
207
- render(<Permalink map={olMap} />);
208
- act(() => {
209
- olMap.dispatchEvent(new MapEvent('moveend', olMap));
210
- });
211
- expect(window.location.search).toEqual('?x=10011&y=1001&z=5');
212
- });
213
-
214
- test('should limit 4 decimals with props "coordinateDecimals".', () => {
215
- expect(window.location.search).toEqual('');
216
- const olMap = new OLMap({
217
- controls: [],
218
- view: new View({
219
- center: [10010.555555, 10010.5555555],
220
- zoom: 5,
221
- }),
222
- });
223
- render(<Permalink map={olMap} coordinateDecimals={4} />);
224
- act(() => {
225
- olMap.dispatchEvent(new MapEvent('moveend', olMap));
226
- });
227
-
228
- expect(window.location.search).toEqual('?x=10010.5556&y=10010.5556&z=5');
229
- });
230
-
231
- test('should react on layers change.', () => {
232
- expect(window.location.search).toEqual('');
233
- const { rerender } = render(<Permalink layers={layers} />);
234
- let layersParam = new URLSearchParams(window.location.search).get('layers');
235
- expect(layersParam).toBe('ultimate.layer,child.hidden.1');
236
- rerender(
237
- <Permalink
238
- layers={[
239
- new Layer({
240
- name: 'foo',
241
- key: 'foo.layer',
242
- }),
243
- ]}
244
- />,
245
- );
246
-
247
- layersParam = new URLSearchParams(window.location.search).get('layers');
248
- expect(layersParam).toBe('foo.layer');
249
- });
250
-
251
- test('should react on layer visiblity change.', () => {
252
- expect(window.location.search).toEqual('');
253
- render(<Permalink layers={layers} />);
254
- let layersParam = new URLSearchParams(window.location.search).get('layers');
255
- expect(layersParam).toBe('ultimate.layer,child.hidden.1');
256
-
257
- act(() => {
258
- layers.find((l) => {
259
- return l.name === 'Swiss boundaries';
260
- }).visible = true;
261
- });
262
-
263
- layersParam = new URLSearchParams(window.location.search).get('layers');
264
- expect(layersParam).toBe('ultimate.layer,swiss.boundaries,child.hidden.1');
265
- });
266
-
267
- test('should react on base layer visiblity change.', () => {
268
- expect(window.location.search).toEqual('');
269
- render(<Permalink layers={layers} />);
270
-
271
- let baseLayers = new URLSearchParams(window.location.search).get(
272
- 'baselayers',
273
- );
274
- expect(baseLayers).toBe('basebright.baselayer,basedark.baselayer');
275
-
276
- act(() => {
277
- layers.find((l) => {
278
- return l.name === 'Base - Dark';
279
- }).visible = true;
280
- });
281
-
282
- baseLayers = new URLSearchParams(window.location.search).get('baselayers');
283
- expect(baseLayers).toBe('basedark.baselayer,basebright.baselayer');
284
- });
285
- });
@@ -1,105 +0,0 @@
1
-
2
- The following example demonstrates the use of Permalink.
3
-
4
- ```jsx
5
- import React from 'react';
6
- import VectorSource from 'ol/source/Vector';
7
- import VectorLayer from 'ol/layer/Vector';
8
- import { Style, Circle, Stroke, Fill } from 'ol/style';
9
- import GeoJSONFormat from 'ol/format/GeoJSON';
10
- import { Layer, MapboxLayer } from 'mobility-toolbox-js/ol';
11
- import Button from '@material-ui/core/Button';
12
- import Permalink from 'react-spatial/components/Permalink';
13
- import BasicMap from 'react-spatial/components/BasicMap';
14
- import Map from 'ol/Map';
15
-
16
- const map = new Map({ controls: [] });
17
-
18
- const swissBoundries = new Layer({
19
- name: 'Swiss boundaries',
20
- key: 'swiss.boundaries',
21
- visible: true,
22
- olLayer: new VectorLayer({
23
- source: new VectorSource({
24
- url: 'https://raw.githubusercontent.com/openlayers/openlayers/' +
25
- '3c64018b3754cf605ea19cbbe4c8813304da2539/examples/data/geojson/' +
26
- 'switzerland.geojson',
27
- format: new GeoJSONFormat(),
28
- }),
29
- style: new Style({
30
- image: new Circle({
31
- radius: 5,
32
- fill: new Fill({
33
- color: '#ff0000',
34
- }),
35
- }),
36
- stroke: new Stroke({
37
- color: '#ffcc33',
38
- width: 2,
39
- }),
40
- }),
41
- })
42
- });
43
-
44
- const baseLayers = [
45
- new MapboxLayer({
46
- url: `https://maps.geops.io/styles/base_bright_v2/style.json?key=${apiKey}`,
47
- name: 'Base - Bright',
48
- key: 'basebright.baselayer',
49
- }),
50
- new MapboxLayer({
51
- url: `https://maps.geops.io/styles/base_dark_v2/style.json?key=${apiKey}`,
52
- name: 'Base - Dark',
53
- key: 'basedark.baselayer',
54
- visible: false,
55
- }),
56
- ];
57
-
58
- const layers = [...baseLayers, swissBoundries];
59
-
60
- <div className="rs-permalink-example">
61
- <BasicMap center={[876887.69, 5928515.41]} map={map} layers={layers} tabIndex={0} zoom={5} />
62
- <Permalink
63
- map={map}
64
- layers={layers}
65
- params={{
66
- mode: 'custom',
67
- }}
68
- isBaseLayer={l=>{
69
- return baseLayers.includes(l);
70
- }}
71
- isLayerHidden={l => {
72
- let hasParentHidden = false;
73
- let { parent } = l;
74
- while (!hasParentHidden && parent) {
75
- hasParentHidden = parent.get('hideInLegend');
76
- parent = parent.parent;
77
- }
78
- return l.get('hideInLegend') || hasParentHidden;
79
- }}
80
- />
81
- <div className="rs-permalink-example-btns">
82
- <Button
83
- onClick={() => {
84
- swissBoundries.visible = !swissBoundries.visible;
85
- }}
86
- >
87
- Toggle Switzerland layer
88
- </Button>
89
- <Button
90
- onClick={() => {
91
- if (baseLayers[1].visible) {
92
- baseLayers[0].visible = true;
93
- baseLayers[1].visible = false;
94
- } else {
95
- baseLayers[0].visible = false;
96
- baseLayers[1].visible = true;
97
- }
98
- map.updateSize();
99
- }}
100
- >
101
- Change base layer
102
- </Button>
103
- </div>
104
- </div>;
105
- ```
@@ -1 +0,0 @@
1
- export { default } from './Permalink';