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,88 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`BaseLayerSwitcher matches snapshots using default properties. 1`] = `
4
- <div class="rs-base-layer-switcher">
5
- <div class="rs-base-layer-switcher-button rs-opener"
6
- role="button"
7
- title="Open Baselayer-Switcher"
8
- aria-label="Open Baselayer-Switcher"
9
- style="background-image: url(bar); background-size: cover; background-repeat: no-repeat; background-position: center;"
10
- tabindex="0"
11
- >
12
- <div class="rs-base-layer-switcher-title">
13
- Base layers
14
- </div>
15
- </div>
16
- <div class="rs-base-layer-switcher-btn-wrapper"
17
- style="overflow: hidden; z-index: 3;"
18
- >
19
- <div class="rs-base-layer-switcher-button"
20
- role="button"
21
- title="bl1"
22
- aria-label="bl1"
23
- tabindex="-1"
24
- >
25
- <div class="rs-base-layer-switcher-title rs-active">
26
- bl1
27
- </div>
28
- <span class="rs-alt-text">
29
- Source not found
30
- </span>
31
- </div>
32
- </div>
33
- <div class="rs-base-layer-switcher-btn-wrapper"
34
- style="overflow: hidden; z-index: 2;"
35
- >
36
- <div class="rs-base-layer-switcher-button"
37
- role="button"
38
- title="bl2"
39
- aria-label="bl2"
40
- tabindex="-1"
41
- >
42
- <div class="rs-base-layer-switcher-title">
43
- bl2
44
- </div>
45
- <span class="rs-alt-text">
46
- Source not found
47
- </span>
48
- </div>
49
- </div>
50
- <div class="rs-base-layer-switcher-btn-wrapper"
51
- style="overflow: hidden; z-index: 1;"
52
- >
53
- <div class="rs-base-layer-switcher-button"
54
- role="button"
55
- title="bl3"
56
- aria-label="bl3"
57
- tabindex="-1"
58
- >
59
- <div class="rs-base-layer-switcher-title">
60
- bl3
61
- </div>
62
- <span class="rs-alt-text">
63
- Source not found
64
- </span>
65
- </div>
66
- </div>
67
- <div class="rs-base-layer-switcher-btn-wrapper">
68
- <div class="rs-base-layer-switcher-close-btn"
69
- role="button"
70
- tabindex="-1"
71
- aria-label="Close Baselayer-Switcher"
72
- title="Close Baselayer-Switcher"
73
- >
74
- <svg stroke="currentColor"
75
- fill="currentColor"
76
- stroke-width="0"
77
- viewbox="0 0 320 512"
78
- height="1em"
79
- width="1em"
80
- xmlns="http://www.w3.org/2000/svg"
81
- >
82
- <path d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z">
83
- </path>
84
- </svg>
85
- </div>
86
- </div>
87
- </div>
88
- `;
@@ -1 +0,0 @@
1
- export { default } from './BaseLayerSwitcher';
@@ -1,281 +0,0 @@
1
- import 'jest-canvas-mock';
2
- import proj4 from 'proj4';
3
- import { register } from 'ol/proj/proj4';
4
- import React from 'react';
5
- import ResizeObserver from 'resize-observer-polyfill';
6
- import { Layer } from 'mobility-toolbox-js/ol';
7
- import MapEvent from 'ol/MapEvent';
8
- import OLLayer from 'ol/layer/Vector';
9
- import OLMap from 'ol/Map';
10
- import OLView from 'ol/View';
11
- import { render } from '@testing-library/react';
12
- import BasicMap from './BasicMap';
13
-
14
- proj4.defs(
15
- 'EPSG:21781',
16
- '+proj=somerc +lat_0=46.95240555555556 ' +
17
- '+lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel ' +
18
- '+towgs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs',
19
- );
20
-
21
- register(proj4);
22
-
23
- const extent = [0, 0, 1000, 1000];
24
- const olLayers = [
25
- new Layer({
26
- name: 'foo',
27
- olLayer: new OLLayer({}),
28
- visible: true,
29
- }),
30
- ];
31
-
32
- describe('BasicMap', () => {
33
- let olMap;
34
- beforeEach(() => {
35
- const olView = new OLView();
36
- olMap = new OLMap({ view: olView });
37
- });
38
-
39
- test('should be rendered', () => {
40
- const setTarget = jest.spyOn(olMap, 'setTarget');
41
- render(<BasicMap map={olMap} />);
42
- expect(setTarget).toHaveBeenCalled();
43
- });
44
-
45
- test('should be rendered with touchAction to none', () => {
46
- render(<BasicMap map={olMap} />);
47
- expect(olMap.getViewport().style.touchAction).toBe('none');
48
- expect(olMap.getViewport().style.msTouchAction).toBe('none');
49
- expect(olMap.getViewport().getAttribute('touch-action')).toBe('none');
50
- });
51
-
52
- test('uses onMapMoved function', () => {
53
- const spy = jest.fn(() => {});
54
- const spy2 = jest.fn();
55
- const evt = new MapEvent('moveend', olMap);
56
-
57
- // Test componentDidMount
58
- const { rerender } = render(<BasicMap map={olMap} onMapMoved={spy} />);
59
- olMap.dispatchEvent(evt);
60
- expect(spy).toHaveBeenCalledTimes(1);
61
- expect(spy).toHaveBeenCalledWith(evt);
62
-
63
- // Test componentDidUpdate
64
- rerender(<BasicMap map={olMap} onMapMoved={spy2} />);
65
- olMap.dispatchEvent(evt);
66
- expect(spy).toHaveBeenCalledTimes(1);
67
- expect(spy2).toHaveBeenCalledTimes(1);
68
- expect(spy2).toHaveBeenCalledWith(evt);
69
-
70
- // Test componentDidUpdate
71
- rerender(<BasicMap map={olMap} onMapMoved={null} />);
72
- olMap.dispatchEvent(evt);
73
- expect(spy).toHaveBeenCalledTimes(1);
74
- expect(spy2).toHaveBeenCalledTimes(1);
75
- });
76
-
77
- test('uses onFeaturesClick function', () => {
78
- const spy = jest.fn();
79
- const spy2 = jest.fn();
80
- const evt = new MapEvent('singleclick', olMap);
81
-
82
- // Test componentDidMount
83
- const { rerender } = render(<BasicMap map={olMap} onFeaturesClick={spy} />);
84
- olMap.dispatchEvent(evt);
85
- expect(spy).toHaveBeenCalledTimes(1);
86
- expect(spy).toHaveBeenCalledWith([], evt);
87
-
88
- // Test componentDidUpdate
89
- rerender(<BasicMap map={olMap} onFeaturesClick={spy2} />);
90
- olMap.dispatchEvent(evt);
91
- expect(spy).toHaveBeenCalledTimes(1);
92
- expect(spy2).toHaveBeenCalledTimes(1);
93
- expect(spy2).toHaveBeenCalledWith([], evt);
94
-
95
- // Test componentDidUpdate
96
- rerender(<BasicMap map={olMap} onFeaturesClick={null} />);
97
- olMap.dispatchEvent(evt);
98
- expect(spy).toHaveBeenCalledTimes(1);
99
- expect(spy2).toHaveBeenCalledTimes(1);
100
- });
101
-
102
- test('uses onFeaturesHover function', () => {
103
- const spy = jest.fn();
104
- const spy2 = jest.fn();
105
- const evt = new MapEvent('pointermove', olMap);
106
-
107
- // Test componentDidMount
108
- const { rerender } = render(
109
- <BasicMap map={olMap} onFeaturesHover={spy} />,
110
- {
111
- lifecycleExperimental: true,
112
- },
113
- );
114
- olMap.dispatchEvent(evt);
115
- expect(spy).toHaveBeenCalledTimes(1);
116
- expect(spy).toHaveBeenCalledWith([], evt);
117
-
118
- // Test componentDidUpdate
119
- rerender(<BasicMap map={olMap} onFeaturesHover={spy2} />);
120
- olMap.dispatchEvent(evt);
121
- expect(spy).toHaveBeenCalledTimes(1);
122
- expect(spy2).toHaveBeenCalledTimes(1);
123
- expect(spy2).toHaveBeenCalledWith([], evt);
124
-
125
- // Test componentDidUpdate
126
- rerender(<BasicMap map={olMap} onFeaturesHover={null} />);
127
- olMap.dispatchEvent(evt);
128
- expect(spy).toHaveBeenCalledTimes(1);
129
- expect(spy2).toHaveBeenCalledTimes(1);
130
- });
131
-
132
- test('should be rendered with a default map', () => {
133
- const { container } = render(<BasicMap />);
134
- expect(!!container.querySelector('.ol-viewport')).toBe(true);
135
- });
136
-
137
- test('should be rendered with layers and an extent', () => {
138
- render(
139
- <BasicMap
140
- map={olMap}
141
- layers={olLayers}
142
- extent={extent}
143
- viewOptions={{
144
- minZoom: 16,
145
- maxZoom: 22,
146
- projection: 'EPSG:21781',
147
- }}
148
- />,
149
- );
150
- expect(olMap.getLayers().getLength()).toBe(1);
151
- expect(olMap.getView().calculateExtent()).toEqual([
152
- 380.70084231351245, 380.70084231351245, 619.2991576864875,
153
- 619.2991576864875,
154
- ]);
155
- });
156
-
157
- test('center shoud be set', () => {
158
- const { rerender } = render(<BasicMap map={olMap} />);
159
- const setCenter = jest.spyOn(olMap.getView(), 'setCenter');
160
- rerender(<BasicMap map={olMap} center={[0, 0]} />);
161
- expect(setCenter).toHaveBeenCalled();
162
- });
163
-
164
- test('zoom shoud be set', () => {
165
- const { rerender } = render(<BasicMap map={olMap} zoom={5} />);
166
- expect(olMap.getView().getZoom()).toBe(5);
167
- rerender(<BasicMap map={olMap} zoom={2} />);
168
- expect(olMap.getView().getZoom()).toBe(2);
169
- });
170
-
171
- test('resolution shoud be set', () => {
172
- const { rerender } = render(<BasicMap map={olMap} resolution={100} />);
173
- expect(olMap.getView().getResolution()).toBe(100);
174
- rerender(<BasicMap map={olMap} resolution={5} />);
175
- expect(olMap.getView().getResolution()).toBe(5);
176
- });
177
-
178
- test('animation shoud be set', () => {
179
- const obj = {
180
- zoom: 4,
181
- };
182
- const { rerender } = render(<BasicMap map={olMap} />);
183
- const spy = jest.spyOn(olMap.getView(), 'animate');
184
- rerender(<BasicMap map={olMap} animationOptions={obj} />);
185
- expect(spy).toHaveBeenCalledWith(obj);
186
- });
187
-
188
- test('layers shoud be updated', () => {
189
- const addLayer = jest.spyOn(olMap, 'addLayer');
190
- const { rerender } = render(<BasicMap map={olMap} />);
191
- const layer = new Layer({ name: 'test', olLayer: new OLLayer() });
192
- rerender(<BasicMap map={olMap} layers={[layer]} />);
193
- expect(addLayer).toHaveBeenCalled();
194
- });
195
-
196
- test('should be fitted if extent is updated', () => {
197
- const fitExtent = jest.spyOn(OLView.prototype, 'fit');
198
- const { rerender } = render(<BasicMap map={olMap} />);
199
- rerender(<BasicMap map={olMap} extent={[1, 2, 3, 4]} />);
200
- expect(fitExtent).toHaveBeenCalled();
201
- });
202
-
203
- test('should be zoomed if zoom is updated', () => {
204
- const setZoom = jest.spyOn(OLView.prototype, 'setZoom');
205
- const { rerender } = render(<BasicMap map={olMap} />);
206
- rerender(<BasicMap map={olMap} zoom={15} />);
207
- expect(setZoom).toHaveBeenCalledWith(15);
208
- });
209
-
210
- test('should be observed by ResizeHandler', () => {
211
- const spy = jest.spyOn(ResizeObserver.prototype, 'observe');
212
- render(<BasicMap map={olMap} />);
213
- expect(spy).toHaveBeenCalledWith(olMap.getTargetElement());
214
- expect(spy).toHaveBeenCalledTimes(1);
215
- });
216
-
217
- test('size is updated when div is resized', () => {
218
- const spy = jest.spyOn(olMap, 'updateSize');
219
- render(<BasicMap map={olMap} />);
220
- expect(spy).toHaveBeenCalledTimes(2);
221
- // The mock class set the onResize property, we just have to run it to
222
- // simulate a resize
223
- ResizeObserver.onResize([
224
- {
225
- target: olMap.getTargetElement(),
226
- contentRect: {
227
- width: 20,
228
- height: 20,
229
- },
230
- },
231
- ]);
232
- expect(spy).toHaveBeenCalledTimes(3);
233
- });
234
-
235
- describe('#setLayers()', () => {
236
- test('init all layers and terminate al previous layer.', () => {
237
- const layer0 = new Layer({ key: 'test1' });
238
- const spyInit0 = jest.spyOn(layer0, 'attachToMap');
239
- const spyTerminate0 = jest.spyOn(layer0, 'detachFromMap');
240
- const layer1 = new Layer({ key: 'test1' });
241
- const spyInit1 = jest.spyOn(layer1, 'attachToMap');
242
- const spyTerminate1 = jest.spyOn(layer1, 'detachFromMap');
243
- const layer2 = new Layer({ key: 'test2' });
244
- const spyInit2 = jest.spyOn(layer2, 'attachToMap');
245
- const spyTerminate2 = jest.spyOn(layer2, 'detachFromMap');
246
- const layer3 = new Layer({ key: 'test3' });
247
- const spyInit3 = jest.spyOn(layer3, 'attachToMap');
248
- const spyTerminate3 = jest.spyOn(layer3, 'detachFromMap');
249
- const layer4 = new Layer({ key: 'test4' });
250
- const spyInit4 = jest.spyOn(layer4, 'attachToMap');
251
- const spyTerminate4 = jest.spyOn(layer4, 'detachFromMap');
252
- const startLayers = [layer1, layer3];
253
- const { rerender } = render(
254
- <BasicMap map={olMap} layers={startLayers} />,
255
- );
256
- expect(spyInit0).toHaveBeenCalledTimes(0);
257
- expect(spyInit1).toHaveBeenCalledTimes(1);
258
- expect(spyInit2).toHaveBeenCalledTimes(0);
259
- expect(spyInit3).toHaveBeenCalledTimes(1);
260
- expect(spyInit4).toHaveBeenCalledTimes(0);
261
- expect(spyTerminate0).toHaveBeenCalledTimes(0);
262
- expect(spyTerminate1).toHaveBeenCalledTimes(1);
263
- expect(spyTerminate2).toHaveBeenCalledTimes(0);
264
- expect(spyTerminate3).toHaveBeenCalledTimes(1);
265
- expect(spyTerminate4).toHaveBeenCalledTimes(0);
266
-
267
- const layers = [layer0, layer2, layer3, layer4];
268
- rerender(<BasicMap map={olMap} layers={layers} />);
269
- expect(spyInit0).toHaveBeenCalledTimes(1);
270
- expect(spyInit1).toHaveBeenCalledTimes(1);
271
- expect(spyInit2).toHaveBeenCalledTimes(1);
272
- expect(spyInit3).toHaveBeenCalledTimes(2);
273
- expect(spyInit4).toHaveBeenCalledTimes(1);
274
- expect(spyTerminate0).toHaveBeenCalledTimes(1);
275
- expect(spyTerminate1).toHaveBeenCalledTimes(2);
276
- expect(spyTerminate2).toHaveBeenCalledTimes(1);
277
- expect(spyTerminate3).toHaveBeenCalledTimes(3);
278
- expect(spyTerminate4).toHaveBeenCalledTimes(1);
279
- });
280
- });
281
- });
@@ -1,18 +0,0 @@
1
-
2
- The following example demonstrates the use of BasicMap.
3
-
4
- ```jsx
5
- import React from 'react';
6
- import { MapboxLayer } from 'mobility-toolbox-js/ol';
7
- import Tile from 'ol/layer/Tile';
8
- import OSM from 'ol/source/OSM';
9
- import BasicMap from 'react-spatial/components/BasicMap';
10
-
11
- const layers = [
12
- new MapboxLayer({
13
- url: `https://maps.geops.io/styles/travic_v2/style.json?key=${apiKey}`,
14
- })
15
- ];
16
-
17
- <BasicMap layers={layers} tabIndex={0} />;
18
- ```
@@ -1 +0,0 @@
1
- export { default } from './BasicMap';
@@ -1,148 +0,0 @@
1
- import 'jest-canvas-mock';
2
- import React from 'react';
3
- import renderer from 'react-test-renderer';
4
- import { configure, shallow } from 'enzyme';
5
- import Adapter from '@cfaester/enzyme-adapter-react-18';
6
- import Map from 'ol/Map';
7
- import View from 'ol/View';
8
- import { TiImage } from 'react-icons/ti';
9
- import RenderEvent from 'ol/render/Event';
10
- import CanvasSaveButton from './CanvasSaveButton';
11
-
12
- configure({ adapter: new Adapter() });
13
-
14
- describe('CanvasSaveButton', () => {
15
- let olMap;
16
- const conf = {
17
- title: 'Karte als Bild speichern.',
18
- icon: <TiImage focusable={false} />,
19
- className: 'ta-example',
20
- saveFormat: 'image/jpeg',
21
- };
22
-
23
- beforeEach(() => {
24
- const target = document.createElement('div');
25
- document.body.appendChild(target);
26
- target.style.width = '100px';
27
- target.style.height = '100px';
28
- olMap = new Map({
29
- target,
30
- controls: [],
31
- view: new View({
32
- center: [0, 0],
33
- zoom: 0,
34
- }),
35
- });
36
- olMap.getView().setCenter([1000, 1000]);
37
- });
38
-
39
- afterEach(() => {
40
- if (olMap.getTargetElement()) {
41
- document.body.removeChild(olMap.getTargetElement());
42
- }
43
- olMap.setTarget(null);
44
- });
45
-
46
- test('should match snapshot.', () => {
47
- const component = renderer.create(
48
- <CanvasSaveButton format={conf.saveFormat} map={olMap}>
49
- {conf.icon}
50
- </CanvasSaveButton>,
51
- );
52
- const tree = component.toJSON();
53
- expect(tree).toMatchSnapshot();
54
- });
55
-
56
- test('should match snapshot with a different attributes', () => {
57
- const component = renderer.create(
58
- // eslint-disable-next-line jsx-a11y/tabindex-no-positive
59
- <CanvasSaveButton title={conf.title} className="foo" tabIndex="1">
60
- {conf.icon}
61
- </CanvasSaveButton>,
62
- );
63
- const tree = component.toJSON();
64
- expect(tree).toMatchSnapshot();
65
- });
66
-
67
- test('should call onSaveBefore then download then onSaveEnd function on click.', async () => {
68
- const saveStart = jest.fn((m) => {
69
- return Promise.resolve(m);
70
- });
71
- const saveEnd = jest.fn();
72
- const wrapper = shallow(
73
- <CanvasSaveButton
74
- className="ta-example"
75
- map={olMap}
76
- format={conf.saveFormat}
77
- onSaveStart={saveStart}
78
- onSaveEnd={saveEnd}
79
- extraData={{
80
- copyright: {
81
- text: () => {
82
- return (
83
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
84
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
85
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
86
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
87
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
88
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)' +
89
- 'contributors, SRTM | map style: © OpenTopoMap (CC-BY-SA)'
90
- );
91
- },
92
- },
93
- }}
94
- >
95
- {conf.icon}
96
- </CanvasSaveButton>,
97
- );
98
- const link = document.createElement('a');
99
- link.click = jest.fn();
100
- const div = document.createElement('div');
101
- const canvas = document.createElement('canvas');
102
- canvas.toBlob = jest.fn((callback) => {
103
- return callback();
104
- });
105
- global.URL.createObjectURL = jest.fn(() => {
106
- return 'fooblob';
107
- });
108
- // We use a spy here to be able to correctly restore the initial function
109
- const spy3 = jest
110
- .spyOn(global.document, 'createElement')
111
- .mockImplementation((elt) => {
112
- if (elt === 'canvas') {
113
- return canvas;
114
- }
115
- if (elt === 'div') {
116
- return div;
117
- }
118
- if (elt === 'a') {
119
- return link;
120
- }
121
- return {};
122
- });
123
- const spy = jest.spyOn(CanvasSaveButton.prototype, 'createCanvasImage');
124
- const spy2 = jest.spyOn(CanvasSaveButton.prototype, 'downloadCanvasImage');
125
- jest
126
- .spyOn(olMap.getTargetElement(), 'getElementsByTagName')
127
- .mockReturnValue([canvas]);
128
- await wrapper.find('.ta-example').simulate('click');
129
- await olMap.dispatchEvent(
130
- new RenderEvent('rendercomplete', undefined, undefined, {
131
- canvas,
132
- }),
133
- );
134
- await window.setTimeout(() => {
135
- expect(spy).toHaveBeenCalledTimes(1);
136
- expect(saveStart).toHaveBeenCalledTimes(1);
137
- expect(saveEnd).toHaveBeenCalledTimes(1);
138
- expect(spy2.mock.calls[0][0]).toBe(canvas);
139
- expect(spy2.mock.calls[0][0].toBlob).toHaveBeenCalledTimes(1);
140
- expect(link.href).toBe('http://localhost/fooblob');
141
- expect(link.download).toBe('.jpg');
142
- expect(link.click).toHaveBeenCalledTimes(1);
143
- spy.mockRestore();
144
- spy2.mockRestore();
145
- spy3.mockRestore();
146
- });
147
- });
148
- });
@@ -1,76 +0,0 @@
1
- The following example demonstrates the use of CanvasSaveButton.
2
-
3
- ```jsx
4
- import React from 'react';
5
- import { TiImage } from 'react-icons/ti';
6
- import { geopsTheme, Header, Footer } from '@geops/geops-ui';
7
- import { ThemeProvider } from '@material-ui/core/styles';
8
- import Button from '@material-ui/core/Button';
9
- import { Layer } from 'mobility-toolbox-js/ol';
10
- import Tile from 'ol/layer/Tile';
11
- import OSM from 'ol/source/OSM';
12
- import Map from 'ol/Map';
13
- import { toDegrees } from 'ol/math';
14
- import CanvasSaveButton from 'react-spatial/components/CanvasSaveButton';
15
- import BasicMap from 'react-spatial/components/BasicMap';
16
- import geopsLogo from 'react-spatial/images/geops_logo.png';
17
- import qrCode from 'react-spatial/images/geops_qr.png';
18
-
19
- const map = new Map({ controls: [] });
20
-
21
- const layers = [
22
- new Layer({
23
- olLayer: new Tile({
24
- source: new OSM(),
25
- }),
26
- copyrights: '© layer-copyright',
27
- }),
28
- ];
29
-
30
- function CanvasSaveButtonExample() {
31
- return (
32
- <ThemeProvider theme={geopsTheme}>
33
- <div className="rs-canvas-save-button-example">
34
- <BasicMap
35
- map={map}
36
- layers={layers}
37
- center={[874105.13, 6106172.77]}
38
- zoom={10}
39
- tabIndex={0}
40
- />
41
- <CanvasSaveButton
42
- map={map}
43
- extraData={{
44
- copyright: {
45
- text: () => {
46
- return layers[0].copyrights;
47
- },
48
- background: true,
49
- },
50
- northArrow: {
51
- rotation: () => {
52
- return toDegrees(map.getView().getRotation());
53
- },
54
- circled: true,
55
- },
56
- logo: {
57
- src: geopsLogo,
58
- height: 22,
59
- width: 84,
60
- },
61
- qrCode: {
62
- src: qrCode,
63
- height: 50,
64
- width: 50,
65
- },
66
- }}
67
- >
68
- <Button>Export Map</Button>
69
- </CanvasSaveButton>
70
- </div>
71
- </ThemeProvider>
72
- );
73
- }
74
-
75
- <CanvasSaveButtonExample />;
76
- ```
@@ -1,76 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`CanvasSaveButton should match snapshot with a different attributes 1`] = `
4
- <div
5
- className="foo"
6
- onClick={[Function]}
7
- onKeyPress={[Function]}
8
- role="button"
9
- tabIndex="1"
10
- title="Karte als Bild speichern."
11
- >
12
- <svg
13
- baseProfile="tiny"
14
- fill="currentColor"
15
- focusable={false}
16
- height="1em"
17
- stroke="currentColor"
18
- strokeWidth="0"
19
- style={
20
- {
21
- "color": undefined,
22
- }
23
- }
24
- version="1.2"
25
- viewBox="0 0 24 24"
26
- width="1em"
27
- xmlns="http://www.w3.org/2000/svg"
28
- >
29
- <circle
30
- cx="8.5"
31
- cy="8.5"
32
- r="2.5"
33
- />
34
- <path
35
- d="M16 10c-2 0-3 3-4.5 3s-1.499-1-3.5-1c-2 0-3.001 4-3.001 4h14.001s-1-6-3-6zM20 3h-16c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2v-12c0-1.103-.897-2-2-2zm0 14h-16v-12h16v12z"
36
- />
37
- </svg>
38
- </div>
39
- `;
40
-
41
- exports[`CanvasSaveButton should match snapshot. 1`] = `
42
- <div
43
- className="rs-canvas-save-button"
44
- onClick={[Function]}
45
- onKeyPress={[Function]}
46
- role="button"
47
- tabIndex={0}
48
- >
49
- <svg
50
- baseProfile="tiny"
51
- fill="currentColor"
52
- focusable={false}
53
- height="1em"
54
- stroke="currentColor"
55
- strokeWidth="0"
56
- style={
57
- {
58
- "color": undefined,
59
- }
60
- }
61
- version="1.2"
62
- viewBox="0 0 24 24"
63
- width="1em"
64
- xmlns="http://www.w3.org/2000/svg"
65
- >
66
- <circle
67
- cx="8.5"
68
- cy="8.5"
69
- r="2.5"
70
- />
71
- <path
72
- d="M16 10c-2 0-3 3-4.5 3s-1.499-1-3.5-1c-2 0-3.001 4-3.001 4h14.001s-1-6-3-6zM20 3h-16c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2v-12c0-1.103-.897-2-2-2zm0 14h-16v-12h16v12z"
73
- />
74
- </svg>
75
- </div>
76
- `;
@@ -1 +0,0 @@
1
- export { default } from './CanvasSaveButton';