react-spatial 1.4.1 → 1.5.2-beta.12

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 (296) hide show
  1. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +231 -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/components/BasicMap/BasicMap.js +278 -0
  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 +93 -320
  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/components/Copyright/Copyright.js +55 -0
  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 +62 -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/components/FitExtent/FitExtent.js +32 -0
  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 +61 -144
  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/components/LayerTree/LayerTree.js +278 -0
  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/components/MousePosition/MousePosition.js +110 -0
  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/components/NorthArrow/NorthArrow.js +43 -0
  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/components/Overlay/Overlay.js +122 -0
  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/components/Permalink/Permalink.js +206 -0
  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 +55 -165
  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 -50
  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 +223 -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/components/ScaleLine/ScaleLine.js +32 -0
  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/components/StopsFinder/StopsFinder.js +210 -0
  66. package/components/StopsFinder/StopsFinder.js.map +7 -0
  67. package/components/StopsFinder/StopsFinderOption.js +51 -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/components/Zoom/Zoom.js +130 -0
  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 +4 -4
  76. package/{src/propTypes.js → propTypes.js} +12 -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 +412 -0
  83. package/utils/KML.js.map +7 -0
  84. package/utils/KMLFormat.js +69 -0
  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/utils/timeUtils.js +35 -0
  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 -54
  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/netlify.toml +0 -3
  112. package/pull_request_template.md +0 -16
  113. package/renovate.json +0 -4
  114. package/scripts/read-pkg-json.js +0 -17
  115. package/src/components/BaseLayerSwitcher/BaseLayerSwitcher.js +0 -322
  116. package/src/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -69
  117. package/src/components/BaseLayerSwitcher/README.md +0 -61
  118. package/src/components/BaseLayerSwitcher/__snapshots__/BaseLayerSwitcher.test.js.snap +0 -88
  119. package/src/components/BaseLayerSwitcher/index.js +0 -1
  120. package/src/components/BasicMap/BasicMap.js +0 -413
  121. package/src/components/BasicMap/BasicMap.test.js +0 -281
  122. package/src/components/BasicMap/README.md +0 -18
  123. package/src/components/BasicMap/index.js +0 -1
  124. package/src/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -148
  125. package/src/components/CanvasSaveButton/README.md +0 -76
  126. package/src/components/CanvasSaveButton/__snapshots__/CanvasSaveButton.test.js.snap +0 -76
  127. package/src/components/CanvasSaveButton/index.js +0 -1
  128. package/src/components/Copyright/Copyright.js +0 -89
  129. package/src/components/Copyright/Copyright.test.js +0 -134
  130. package/src/components/Copyright/README.md +0 -36
  131. package/src/components/Copyright/index.js +0 -1
  132. package/src/components/FeatureExportButton/FeatureExportButton.js +0 -118
  133. package/src/components/FeatureExportButton/FeatureExportButton.test.js +0 -417
  134. package/src/components/FeatureExportButton/README.md +0 -76
  135. package/src/components/FeatureExportButton/__snapshots__/FeatureExportButton.test.js.snap +0 -67
  136. package/src/components/FeatureExportButton/index.js +0 -1
  137. package/src/components/FitExtent/FitExtent.js +0 -62
  138. package/src/components/FitExtent/FitExtent.test.js +0 -48
  139. package/src/components/FitExtent/README.md +0 -34
  140. package/src/components/FitExtent/__snapshots__/FitExtent.test.js.snap +0 -13
  141. package/src/components/FitExtent/index.js +0 -1
  142. package/src/components/Geolocation/Geolocation.test.js +0 -267
  143. package/src/components/Geolocation/README.md +0 -25
  144. package/src/components/Geolocation/__snapshots__/Geolocation.test.js.snap +0 -92
  145. package/src/components/Geolocation/index.js +0 -1
  146. package/src/components/LayerTree/LayerTree.js +0 -487
  147. package/src/components/LayerTree/LayerTree.test.js +0 -337
  148. package/src/components/LayerTree/README.md +0 -92
  149. package/src/components/LayerTree/__snapshots__/LayerTree.test.js.snap +0 -1746
  150. package/src/components/LayerTree/index.js +0 -1
  151. package/src/components/MousePosition/MousePosition.js +0 -175
  152. package/src/components/MousePosition/MousePosition.test.js +0 -132
  153. package/src/components/MousePosition/README.md +0 -50
  154. package/src/components/MousePosition/__snapshots__/MousePosition.test.js.snap +0 -76
  155. package/src/components/MousePosition/index.js +0 -1
  156. package/src/components/NorthArrow/NorthArrow.js +0 -75
  157. package/src/components/NorthArrow/NorthArrow.test.js +0 -104
  158. package/src/components/NorthArrow/README.md +0 -59
  159. package/src/components/NorthArrow/__snapshots__/NorthArrow.test.js.snap +0 -117
  160. package/src/components/NorthArrow/index.js +0 -1
  161. package/src/components/Overlay/Overlay.js +0 -176
  162. package/src/components/Overlay/Overlay.test.js +0 -149
  163. package/src/components/Overlay/README.md +0 -59
  164. package/src/components/Overlay/__snapshots__/Overlay.test.js.snap +0 -9
  165. package/src/components/Overlay/index.js +0 -1
  166. package/src/components/Permalink/Permalink.js +0 -326
  167. package/src/components/Permalink/Permalink.test.js +0 -285
  168. package/src/components/Permalink/README.md +0 -105
  169. package/src/components/Permalink/index.js +0 -1
  170. package/src/components/Popup/Popup.test.js +0 -307
  171. package/src/components/Popup/README.md +0 -93
  172. package/src/components/Popup/__snapshots__/Popup.test.js.snap +0 -180
  173. package/src/components/Popup/index.js +0 -1
  174. package/src/components/README.md +0 -41
  175. package/src/components/ResizeHandler/ResizeHandler.test.js +0 -344
  176. package/src/components/ResizeHandler/index.js +0 -1
  177. package/src/components/RouteSchedule/README.md +0 -118
  178. package/src/components/RouteSchedule/RouteSchedule.js +0 -364
  179. package/src/components/RouteSchedule/RouteSchedule.test.js +0 -113
  180. package/src/components/RouteSchedule/__snapshots__/RouteSchedule.test.js.snap +0 -248
  181. package/src/components/RouteSchedule/index.js +0 -1
  182. package/src/components/ScaleLine/README.md +0 -29
  183. package/src/components/ScaleLine/ScaleLine.js +0 -50
  184. package/src/components/ScaleLine/ScaleLine.test.js +0 -30
  185. package/src/components/ScaleLine/__snapshots__/ScaleLine.test.js.snap +0 -7
  186. package/src/components/ScaleLine/index.js +0 -1
  187. package/src/components/StopsFinder/README.md +0 -50
  188. package/src/components/StopsFinder/StopsFinder.js +0 -284
  189. package/src/components/StopsFinder/StopsFinder.test.js +0 -17
  190. package/src/components/StopsFinder/StopsFinderOption.js +0 -61
  191. package/src/components/StopsFinder/__snapshots__/StopsFinder.test.js.snap +0 -133
  192. package/src/components/StopsFinder/index.js +0 -1
  193. package/src/components/Zoom/README.md +0 -25
  194. package/src/components/Zoom/Zoom.js +0 -180
  195. package/src/components/Zoom/Zoom.test.js +0 -141
  196. package/src/components/Zoom/__snapshots__/Zoom.test.js.snap +0 -201
  197. package/src/components/Zoom/index.js +0 -1
  198. package/src/styleguidist/ComponentsList.js +0 -52
  199. package/src/styleguidist/StyleGuide.js +0 -277
  200. package/src/styleguidist/styleguidist.css +0 -38
  201. package/src/utils/GlobalsForOle.js +0 -99
  202. package/src/utils/KML.js +0 -594
  203. package/src/utils/KML.test.js +0 -337
  204. package/src/utils/KMLFormat.js +0 -100
  205. package/src/utils/KMLFormat.test.js +0 -50
  206. 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
  207. package/src/utils/__snapshots__/getPolygonPattern.test.js.snap.getPolygonPattern()-render-pattern-2-(cross)-color-and-(light-blue)-opacity.canvas-image.png +0 -0
  208. 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
  209. 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
  210. package/src/utils/getPolygonPattern.test.js +0 -61
  211. package/src/utils/timeUtils.js +0 -48
  212. package/src/utils/timeUtils.test.js +0 -30
  213. package/styleguide.config.js +0 -251
  214. /package/{src/components → components}/BaseLayerSwitcher/BaseLayerSwitcher.md.scss +0 -0
  215. /package/{src/components → components}/BaseLayerSwitcher/BaseLayerSwitcher.scss +0 -0
  216. /package/{src/components → components}/BasicMap/BasicMap.md.scss +0 -0
  217. /package/{src/components → components}/CanvasSaveButton/CanvasSaveButton.md.scss +0 -0
  218. /package/{src/components → components}/Copyright/Copyright.md.scss +0 -0
  219. /package/{src/components → components}/FeatureExportButton/FeatureExportButton.md.scss +0 -0
  220. /package/{src/components → components}/FitExtent/FitExtent.md.scss +0 -0
  221. /package/{src/components → components}/Geolocation/Geolocation.md.scss +0 -0
  222. /package/{src/components → components}/Geolocation/Geolocation.scss +0 -0
  223. /package/{src/components → components}/LayerTree/LayerTree.md.scss +0 -0
  224. /package/{src/components → components}/LayerTree/LayerTree.scss +0 -0
  225. /package/{src/components → components}/MousePosition/MousePosition.md.scss +0 -0
  226. /package/{src/components → components}/NorthArrow/NorthArrow.scss +0 -0
  227. /package/{src/components → components}/Overlay/Overlay.md.scss +0 -0
  228. /package/{src/components → components}/Overlay/Overlay.scss +0 -0
  229. /package/{src/components → components}/Permalink/Permalink.md.scss +0 -0
  230. /package/{src/components → components}/Popup/Popup.md.scss +0 -0
  231. /package/{src/components → components}/Popup/Popup.scss +0 -0
  232. /package/{src/components → components}/RouteSchedule/RouteSchedule.md.scss +0 -0
  233. /package/{src/components → components}/RouteSchedule/RouteSchedule.scss +0 -0
  234. /package/{src/components → components}/ScaleLine/ScaleLine.scss +0 -0
  235. /package/{src/components → components}/Zoom/Zoom.md.scss +0 -0
  236. /package/{src/components → components}/Zoom/Zoom.scss +0 -0
  237. /package/{src/images → images}/RouteSchedule/firstStation.png +0 -0
  238. /package/{src/images → images}/RouteSchedule/lastStation.png +0 -0
  239. /package/{src/images → images}/RouteSchedule/line.png +0 -0
  240. /package/{src/images → images}/RouteSchedule/station.png +0 -0
  241. /package/{src/images → images}/baselayer/baselayer.basebright.png +0 -0
  242. /package/{src/images → images}/baselayer/baselayer.osm.png +0 -0
  243. /package/{src/images → images}/baselayer/baselayer.travic.png +0 -0
  244. /package/{src/images → images}/baselayer/open.topo.map.png +0 -0
  245. /package/{src/images → images}/baselayer/osm.baselayer.hot.png +0 -0
  246. /package/{src/images → images}/baselayer/osm.baselayer.png +0 -0
  247. /package/{src/images → images}/favicon.png +0 -0
  248. /package/{src/images → images}/geops_logo.png +0 -0
  249. /package/{src/images → images}/geops_logo.svg +0 -0
  250. /package/{src/images → images}/geops_qr.png +0 -0
  251. /package/{src/images → images}/mots/bus_poi-blue-01.svg +0 -0
  252. /package/{src/images → images}/mots/bus_poi-grey-01.svg +0 -0
  253. /package/{src/images → images}/mots/bus_round-blue-01.svg +0 -0
  254. /package/{src/images → images}/mots/bus_round-grey-01.svg +0 -0
  255. /package/{src/images → images}/mots/bus_square-blue-01.svg +0 -0
  256. /package/{src/images → images}/mots/bus_square-grey-01.svg +0 -0
  257. /package/{src/images → images}/mots/cable_car_poi-blue-01.svg +0 -0
  258. /package/{src/images → images}/mots/cable_car_poi-grey-01.svg +0 -0
  259. /package/{src/images → images}/mots/cable_car_round-blue-01.svg +0 -0
  260. /package/{src/images → images}/mots/cable_car_round-grey-01.svg +0 -0
  261. /package/{src/images → images}/mots/cable_car_square-blue-01.svg +0 -0
  262. /package/{src/images → images}/mots/cable_car_square-grey-01.svg +0 -0
  263. /package/{src/images → images}/mots/ferry_poi-blue-01.svg +0 -0
  264. /package/{src/images → images}/mots/ferry_poi-grey-01.svg +0 -0
  265. /package/{src/images → images}/mots/ferry_round-blue-01.svg +0 -0
  266. /package/{src/images → images}/mots/ferry_round-grey-01.svg +0 -0
  267. /package/{src/images → images}/mots/ferry_square-blue-01.svg +0 -0
  268. /package/{src/images → images}/mots/ferry_square-grey-01.svg +0 -0
  269. /package/{src/images → images}/mots/funicular_round-blue-01.svg +0 -0
  270. /package/{src/images → images}/mots/funicular_round-grey-01.svg +0 -0
  271. /package/{src/images → images}/mots/funicular_square-blue-01.svg +0 -0
  272. /package/{src/images → images}/mots/gondola_round-blue-01.svg +0 -0
  273. /package/{src/images → images}/mots/rail_poi-blue-01.svg +0 -0
  274. /package/{src/images → images}/mots/rail_poi-grey-01.svg +0 -0
  275. /package/{src/images → images}/mots/rail_round-blue-01.svg +0 -0
  276. /package/{src/images → images}/mots/rail_round-grey-01.svg +0 -0
  277. /package/{src/images → images}/mots/rail_square-blue-01.svg +0 -0
  278. /package/{src/images → images}/mots/rail_square-grey-01.svg +0 -0
  279. /package/{src/images → images}/mots/subway_round blue-01.svg +0 -0
  280. /package/{src/images → images}/mots/subway_round-blue-01.svg +0 -0
  281. /package/{src/images → images}/mots/tram_poi-blue-01.svg +0 -0
  282. /package/{src/images → images}/mots/tram_poi-grey-01.svg +0 -0
  283. /package/{src/images → images}/mots/tram_round-blue-01.svg +0 -0
  284. /package/{src/images → images}/mots/tram_round-grey-01.svg +0 -0
  285. /package/{src/images → images}/mots/tram_square-blue-01.svg +0 -0
  286. /package/{src/images → images}/mots/tram_square-grey-01.svg +0 -0
  287. /package/{src/images → images}/northArrow.svg +0 -0
  288. /package/{src/images → images}/northArrow.url.svg +0 -0
  289. /package/{src/images → images}/northArrowCircle.svg +0 -0
  290. /package/{src/images → images}/northArrowCircle.url.svg +0 -0
  291. /package/{src/themes → themes}/README.md +0 -0
  292. /package/{src/themes → themes}/default/components.scss +0 -0
  293. /package/{src/themes → themes}/default/examples.scss +0 -0
  294. /package/{src/themes → themes}/default/index.scss +0 -0
  295. /package/{src/themes → themes}/default/mixins.scss +0 -0
  296. /package/{src/themes → themes}/default/variables.scss +0 -0
@@ -1,337 +0,0 @@
1
- /* eslint-disable react/jsx-props-no-spreading */
2
- import React from 'react';
3
- import { configure, mount } from 'enzyme';
4
- import Adapter from '@cfaester/enzyme-adapter-react-18';
5
- import 'jest-canvas-mock';
6
- import renderer from 'react-test-renderer';
7
- import { Layer } from 'mobility-toolbox-js/ol';
8
- import LayerTree from './LayerTree';
9
-
10
- configure({ adapter: new Adapter() });
11
-
12
- const mountLayerTree = (layers) => {
13
- return mount(<LayerTree layers={layers} />);
14
- };
15
-
16
- const renderLayerTree = (layers, props) => {
17
- const component = renderer.create(
18
- <LayerTree layers={layers} {...(props || {})} />,
19
- );
20
- const tree = component.toJSON();
21
- expect(tree).toMatchSnapshot();
22
- };
23
-
24
- const classItem = '.rs-layer-tree-item';
25
- const toggleItem = '.rs-layer-tree-toggle';
26
-
27
- describe('LayerTree', () => {
28
- let layers;
29
-
30
- beforeEach(() => {
31
- layers = [
32
- new Layer({
33
- name: 'root',
34
- }),
35
- new Layer({
36
- name: '1',
37
- children: [
38
- new Layer({
39
- name: '1-1',
40
- group: 'radio',
41
- properties: {
42
- radioGroup: 'radio',
43
- },
44
- }),
45
- new Layer({
46
- name: '1-2',
47
- group: 'radio',
48
- properties: {
49
- radioGroup: 'radio',
50
- },
51
- visible: false,
52
- children: [
53
- new Layer({
54
- name: '1-2-1',
55
- visible: false,
56
- }),
57
- new Layer({
58
- name: '1-2-2',
59
- visible: false,
60
- }),
61
- new Layer({
62
- name: '2',
63
- visible: false,
64
- }),
65
- ],
66
- }),
67
- ],
68
- }),
69
- ];
70
- });
71
- describe('matches snapshots', () => {
72
- test('using default properties.', () => {
73
- renderLayerTree(layers);
74
- });
75
-
76
- test('when no layers.', () => {
77
- const component = renderer.create(<LayerTree layers={[]} />);
78
- const tree = component.toJSON();
79
- expect(tree).toMatchSnapshot();
80
- });
81
-
82
- test('when renderItem is used.', () => {
83
- renderLayerTree(layers, {
84
- renderItem: (item) => {
85
- const { name } = item;
86
- return <div key={name}>{name}</div>;
87
- },
88
- });
89
- });
90
-
91
- test('when classNames are used.', () => {
92
- renderLayerTree(layers, { className: 'foo' });
93
- });
94
-
95
- test('when an item is hidden.', () => {
96
- renderLayerTree(layers, {
97
- isItemHidden: (item) => {
98
- return !!item.children.length;
99
- },
100
- });
101
- });
102
-
103
- test('when an item is hidden (different layer tree levels)', () => {
104
- renderLayerTree(layers, {
105
- isItemHidden: (item) => {
106
- return item.isBaseLayer || item.get('hideInLegend');
107
- },
108
- });
109
- });
110
-
111
- test('when an item use renderBeforeItem.', () => {
112
- renderLayerTree(layers, {
113
- renderBeforeItem: (layer, level) => {
114
- const { name } = layer;
115
- return (
116
- <div>
117
- Render name before item: {name}, level: {level}
118
- </div>
119
- );
120
- },
121
- });
122
- });
123
-
124
- test('when an item use renderAfterItem.', () => {
125
- renderLayerTree(layers, {
126
- renderAfterItem: (layer, level) => {
127
- const { name } = layer;
128
- return (
129
- <div>
130
- Render name after item: {name}, level: {level}
131
- </div>
132
- );
133
- },
134
- });
135
- });
136
-
137
- test('when expandChildren is true.', () => {
138
- renderLayerTree(layers, {
139
- expandChildren: true,
140
- });
141
- });
142
-
143
- test('when expandChildren is a function.', () => {
144
- renderLayerTree(layers, {
145
- expandChildren: (lyrs) => {
146
- return lyrs.length === 3;
147
- },
148
- });
149
- });
150
-
151
- test('when items are always expanded', () => {
152
- const newLayers = [
153
- new Layer({
154
- name: 'Expanded layer 1 (because of level 1)',
155
- visible: true,
156
- children: [
157
- new Layer({
158
- name: 'Expanded layer 1.1 (because of isAlwaysExpanded=true)',
159
- visible: true,
160
- properties: {
161
- isAlwaysExpanded: true,
162
- },
163
- children: [
164
- new Layer({
165
- name: 'Expanded layer 1.1.1 (because of isAlwaysExpanded=true)',
166
- visible: true,
167
- properties: {
168
- isAlwaysExpanded: true,
169
- },
170
- children: [
171
- new Layer({
172
- name: 'Visible layer 1.1.1.1 (as parent is expanded)',
173
- visible: true,
174
- }),
175
- ],
176
- }),
177
- new Layer({
178
- name: 'Hidden layer 1.1.1 (because of hidden=true)',
179
- visible: true,
180
- properties: {
181
- hideInLegend: true,
182
- },
183
- children: [
184
- new Layer({
185
- name: 'Invisible layer 1.1.1.1 (as parent is hidden)',
186
- visible: true,
187
- }),
188
- ],
189
- }),
190
- ],
191
- }),
192
- new Layer({
193
- name: 'Expanded layer 1.2 (because of isAlwaysExpanded=true)',
194
- visible: true,
195
- properties: {
196
- isAlwaysExpanded: true,
197
- },
198
- children: [
199
- new Layer({
200
- name: 'Visible layer 1.2.1 (as parent is expanded)',
201
- visible: true,
202
- children: [
203
- new Layer({
204
- name: 'Invisible layer 1.2.1.1 (as parent isAlwaysExpanded=false)',
205
- visible: true,
206
- }),
207
- ],
208
- }),
209
- ],
210
- }),
211
- ],
212
- }),
213
- new Layer({
214
- name: 'Expanded layer 2 (because of level 1)',
215
- visible: true,
216
- children: [
217
- new Layer({
218
- name: 'Visible layer 2.1 (as parent is expanded)',
219
- visible: true,
220
- children: [
221
- new Layer({
222
- name: 'Invisible layer 2.1.1 (as parent isAlwaysExpanded=false)',
223
- visible: true,
224
- properties: {
225
- isAlwaysExpanded: true,
226
- },
227
- children: [
228
- new Layer({
229
- name: 'Invisible layer 2.1.1.1 (as parent is not visible)',
230
- visible: true,
231
- }),
232
- ],
233
- }),
234
- ],
235
- }),
236
- new Layer({
237
- name: 'Visible layer 2.2 (as parent is expanded)',
238
- visible: true,
239
- children: [
240
- new Layer({
241
- name: 'Invisible layer 2.2.1 (as parent isAlwaysExpanded=false)',
242
- visible: true,
243
- children: [
244
- new Layer({
245
- name: 'Invisible layer 2.2.1.1 (as parent is not visible)',
246
- visible: true,
247
- }),
248
- ],
249
- }),
250
- ],
251
- }),
252
- ],
253
- }),
254
- ];
255
-
256
- renderLayerTree(newLayers, {
257
- isItemHidden: (item) => {
258
- return item.get('hideInLegend');
259
- },
260
- });
261
- });
262
- });
263
-
264
- describe('triggers onInputClick', () => {
265
- let wrapper;
266
- let spy;
267
- let spy2;
268
- const newLayers = [
269
- new Layer({
270
- name: 'foo',
271
- }),
272
- ];
273
- const expectCalled = () => {
274
- expect(spy).toHaveBeenCalledTimes(1);
275
- expect(spy2).toHaveBeenCalledTimes(0);
276
- expect(spy.mock.calls[0][0].name).toBe('foo');
277
- };
278
-
279
- beforeEach(() => {
280
- spy = jest.spyOn(LayerTree.prototype, 'onInputClick');
281
- spy2 = jest.spyOn(LayerTree.prototype, 'onToggle');
282
- wrapper = mountLayerTree(newLayers);
283
- });
284
-
285
- afterEach(() => {
286
- spy.mockRestore();
287
- spy2.mockRestore();
288
- });
289
-
290
- test('when we press enter with keyboard on the label element.', () => {
291
- wrapper.find('label').at(0).simulate('keypress', { which: 13 });
292
- expectCalled();
293
- });
294
-
295
- test('when we click on input.', () => {
296
- wrapper.find('input').at(0).simulate('click');
297
- expectCalled();
298
- });
299
-
300
- test('when we click on toggle button (label+arrow) of an item without children.', () => {
301
- wrapper.find(classItem).first().childAt(1).simulate('click');
302
- expectCalled();
303
- });
304
- });
305
-
306
- describe('triggers onToggle', () => {
307
- let wrapper;
308
- let spy;
309
- const newLayers = [
310
- new Layer({
311
- name: '1',
312
- children: [
313
- new Layer({
314
- name: '1-1',
315
- }),
316
- new Layer({
317
- name: '1-1-1',
318
- }),
319
- ],
320
- }),
321
- ];
322
-
323
- const expectCalled = () => {
324
- expect(spy).toHaveBeenCalledTimes(1);
325
- };
326
-
327
- beforeEach(() => {
328
- spy = jest.spyOn(LayerTree.prototype, 'onToggle');
329
- wrapper = mountLayerTree(newLayers);
330
- });
331
-
332
- test('when we click on toggle button (label+arrow) of an item with children', () => {
333
- wrapper.find(toggleItem).first().simulate('click');
334
- expectCalled();
335
- });
336
- });
337
- });
@@ -1,92 +0,0 @@
1
- The following example demonstrates the use of LayerTree.
2
-
3
- ```jsx
4
- import React, { useEffect } from 'react';
5
- import { MapboxLayer, MapboxStyleLayer, Layer } from 'mobility-toolbox-js/ol';
6
- import { Style, Circle, Stroke, Fill } from 'ol/style';
7
- import VectorLayer from 'ol/layer/Vector';
8
- import VectorSource from 'ol/source/Vector';
9
- import GeoJSONFormat from 'ol/format/GeoJSON';
10
- import LayerTree from 'react-spatial/components/LayerTree';
11
- import BasicMap from 'react-spatial/components/BasicMap';
12
-
13
- const baseBright = new MapboxLayer({
14
- name: 'Base - Bright',
15
- group: 'baseLayer',
16
- url: `https://maps.geops.io/styles/base_bright_v2/style.json?key=${apiKey}`,
17
- });
18
-
19
- const railLines = new MapboxStyleLayer({
20
- name: 'Railways routes',
21
- mapboxLayer: baseBright,
22
- styleLayer: {
23
- id: 'rail',
24
- type: 'line',
25
- source: 'base',
26
- 'source-layer': 'osm_edges',
27
- filter: ['==', 'vehicle_type_prior', 'Zug'],
28
- paint: {
29
- 'line-color': 'rgba(255, 0, 0, 1)',
30
- 'line-width': 2,
31
- },
32
- },
33
- });
34
-
35
- const passengerFrequencies = new MapboxStyleLayer({
36
- name: 'Passenger frequencies',
37
- mapboxLayer: baseBright,
38
- styleLayer: {
39
- id: 'passagierfrequenzen',
40
- type: 'circle',
41
- source: 'base',
42
- 'source-layer': 'osm_points',
43
- filter: ['has', 'dwv'],
44
- paint: {
45
- 'circle-radius': ['*', ['sqrt', ['/', ['get', 'dwv'], Math.PI]], 0.2],
46
- 'circle-color': 'rgb(254, 160, 0)',
47
- 'circle-stroke-width': 2,
48
- 'circle-stroke-color': 'rgb(254, 160, 0)',
49
- 'circle-opacity': [
50
- 'case',
51
- ['boolean', ['feature-state', 'hover'], false],
52
- 1,
53
- 0.7,
54
- ],
55
- },
56
- },
57
- });
58
-
59
- baseBright.children = [passengerFrequencies, railLines];
60
-
61
- const baseDark = new MapboxLayer({
62
- name: 'Base - Dark',
63
- group: 'baseLayer',
64
- visible: false,
65
- url: `https://maps.geops.io/styles/base_dark_v2/style.json?key=${apiKey}`,
66
- });
67
-
68
- const baseTravic = new MapboxLayer({
69
- url: `https://maps.geops.io/styles/travic_v2/style.json?key=${apiKey}`,
70
- group: 'baseLayer',
71
- visible: false,
72
- properties: {
73
- hidden: true,
74
- },
75
- });
76
-
77
- const layers = [baseDark, baseTravic, baseBright];
78
-
79
- <div className="rs-layer-tree-example">
80
- <BasicMap
81
- layers={layers}
82
- center={[876887.69, 5928515.41]}
83
- zoom={8}
84
- tabIndex={0}
85
- />
86
- <LayerTree
87
- layers={layers}
88
- isItemHidden={(layer) => layer.get('hidden')}
89
- expandChildren
90
- />
91
- </div>;
92
- ```