@mapcomponents/react-maplibre 0.1.57 → 0.1.58

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 (276) hide show
  1. package/.eslintignore +11 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/check-formatting.yml +46 -0
  4. package/.prettierignore +11 -0
  5. package/.prettierrc.json +6 -0
  6. package/CHANGELOG.md +13 -0
  7. package/coverage/clover.xml +229 -77
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +65 -20
  10. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +83 -83
  11. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +66 -66
  13. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +30 -30
  15. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +202 -0
  17. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +116 -0
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +99 -99
  19. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +66 -66
  21. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +221 -221
  23. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +308 -308
  25. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +497 -497
  26. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +85 -85
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +469 -0
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +116 -0
  31. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +140 -140
  32. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +37 -37
  34. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +179 -179
  36. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +113 -113
  38. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  39. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +181 -181
  40. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +58 -58
  41. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  43. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +108 -108
  44. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +39 -39
  46. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +183 -183
  48. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +163 -163
  50. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +50 -50
  52. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +30 -30
  53. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +83 -83
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  56. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +204 -204
  57. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  58. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +180 -180
  59. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  60. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +163 -163
  61. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  62. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +136 -136
  63. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  64. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +53 -53
  65. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +123 -123
  67. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +35 -35
  69. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +155 -155
  71. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  72. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +255 -255
  73. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  74. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +66 -66
  75. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  76. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +48 -48
  77. package/coverage/lcov-report/src/contexts/index.html +1 -1
  78. package/coverage/lcov-report/src/hooks/exportMap/index.html +131 -0
  79. package/coverage/lcov-report/src/hooks/exportMap/index.ts.html +175 -0
  80. package/coverage/lcov-report/src/hooks/exportMap/lib.ts.html +646 -0
  81. package/coverage/lcov-report/src/hooks/index.html +48 -18
  82. package/coverage/lcov-report/src/hooks/useLayer.ts.html +230 -188
  83. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +232 -0
  84. package/coverage/lcov-report/src/hooks/useMap.ts.html +72 -69
  85. package/coverage/lcov-report/src/hooks/useMapState.ts.html +145 -145
  86. package/coverage/lcov-report/src/hooks/useSource.ts.html +337 -0
  87. package/coverage/lcov-report/src/hooks/useWms.js.html +72 -72
  88. package/coverage/lcov-report/src/index.html +1 -1
  89. package/coverage/lcov-report/src/index.ts.html +11 -2
  90. package/coverage/lcov.info +448 -151
  91. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +24 -0
  92. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +13 -0
  93. package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +21 -0
  94. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +10 -0
  95. package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +13 -0
  96. package/dist/components/MlCreatePdfForm/lib/pdf.templates.d.ts +11 -0
  97. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  98. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +22 -0
  99. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +10 -0
  100. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +1 -1
  101. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +2 -2
  102. package/dist/decorators/MapContextDecoratorHooks.d.ts +2 -0
  103. package/dist/hooks/exportMap/index.d.ts +11 -0
  104. package/dist/hooks/exportMap/lib.d.ts +36 -0
  105. package/dist/hooks/useLayer.d.ts +6 -5
  106. package/dist/hooks/useLayerEvent.d.ts +2 -0
  107. package/dist/hooks/useMap.d.ts +1 -1
  108. package/dist/hooks/useMapState.stories.d.ts +2 -2
  109. package/dist/hooks/useSource.d.ts +17 -0
  110. package/dist/hooks/useSources.stories.d.ts +13 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.esm.js +250 -64
  113. package/dist/index.esm.js.map +1 -1
  114. package/eslintErrorTest.js +10 -0
  115. package/package.json +7 -1
  116. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  117. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  118. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  119. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  120. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  122. package/src/components/MlBasicComponent.js +25 -25
  123. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  124. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  125. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  127. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  128. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  130. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  131. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  132. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  136. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  139. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  140. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  143. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  144. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  145. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  146. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  147. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  148. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  149. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  150. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  151. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  152. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  153. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  154. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  155. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  156. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  157. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  158. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  159. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  160. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  161. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  162. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  163. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  164. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  165. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  166. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  167. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  168. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  169. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  172. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  173. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  174. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  175. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  176. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  177. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  178. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  179. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  180. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  181. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  184. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  185. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  186. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  190. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  193. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  194. package/src/components/MlLayer/MlLayer.test.js +86 -86
  195. package/src/components/MlLayer/MlLayer.tsx +36 -36
  196. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  199. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  202. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  204. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  205. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  206. package/src/components/MlMarker/MlMarker.tsx +119 -119
  207. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  208. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  209. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  212. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  213. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  214. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  215. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  216. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  217. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  218. package/src/components/MlScaleReference/MlScaleReference.stories.js +27 -27
  219. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  220. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  221. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  224. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  227. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  228. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  231. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  232. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  234. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  237. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  239. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  240. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  241. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  242. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  243. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  244. package/src/contexts/MapComponentsProvider.test.js +229 -229
  245. package/src/contexts/MapContext.tsx +65 -65
  246. package/src/contexts/SimpleDataProvider.js +47 -47
  247. package/src/contexts/SimpleDataProvider.test.js +29 -29
  248. package/src/custom.d.tsx +14 -14
  249. package/src/decorators/MapContextDecorator.js +22 -22
  250. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  251. package/src/decorators/MultiMapContextDecorator.js +63 -63
  252. package/src/decorators/NoNavToolsDecorator.js +17 -17
  253. package/src/decorators/ThemeWrapper.jsx +1 -1
  254. package/src/hooks/assets/pointWG.json +13 -0
  255. package/src/hooks/exportMap/index.ts +30 -0
  256. package/src/hooks/exportMap/lib.ts +187 -0
  257. package/src/hooks/useLayer.test.js +188 -188
  258. package/src/hooks/useLayer.ts +194 -180
  259. package/src/hooks/useLayerEvent.js +49 -0
  260. package/src/hooks/useMap.ts +67 -66
  261. package/src/hooks/useMapState.stories.js +78 -78
  262. package/src/hooks/useMapState.ts +161 -161
  263. package/src/hooks/useSource.ts +84 -0
  264. package/src/hooks/useSources.stories.js +232 -0
  265. package/src/hooks/useWms.js +71 -71
  266. package/src/index.ts +3 -0
  267. package/src/setupTests.js +86 -86
  268. package/src/ui_components/ImageLoader.js +62 -62
  269. package/src/ui_components/Legend.js +34 -34
  270. package/src/ui_components/LoadingOverlay.js +29 -29
  271. package/src/ui_components/LoadingOverlayContext.js +68 -68
  272. package/src/ui_components/Sidebar.js +80 -80
  273. package/src/ui_components/Tooltip.js +9 -9
  274. package/src/ui_components/TopToolbar.js +23 -23
  275. package/src/util/layerRemovalTest.js +111 -111
  276. package/src/util/sourceRemovalTest.js +103 -103
@@ -415,158 +415,158 @@ import { CircleLayerSpecification, FillLayerSpecification, LineLayerSpecificatio
415
415
  const msPerStep = 50;
416
416
   
417
417
  interface MlTransitionGeoJsonLayerProps {
418
- /**
419
- * Id of the target MapLibre instance in mapContext
420
- */
421
- mapId: string;
422
- /**
423
- * GeoJSON data that is supposed to be rendered by this component.
424
- */
425
- geojson: Feature | FeatureCollection | undefined;
426
- /**
427
- * Type of the layer that will be added to the MapLibre instance.
428
- * Possible values: "line", "circle", "fill"
429
- */
430
- type?: "fill" | "line" | "circle";
431
- /**
432
- * Paint property object, that is passed to the addLayer call.
433
- * Possible props depend on the layer type.
434
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#line
435
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
436
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
437
- */
438
- paint?: CircleLayerSpecification['paint'] | FillLayerSpecification['paint'] | LineLayerSpecification['paint'];
439
- /**
440
- * Layout property object, that is passed to the addLayer call.
441
- * Possible props depend on the layer type.
442
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#line
443
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
444
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
445
- */
446
- layout?: CircleLayerSpecification['layout'] | FillLayerSpecification['layout'] | LineLayerSpecification['layout'];
447
- /**
448
- * Javascript object that is spread into the addLayer commands first parameter.
449
- */
450
- options?: CircleLayerSpecification | FillLayerSpecification | LineLayerSpecification;
451
- /**
452
- * Javascript object with optional properties "fill", "line", "circle" to override implicit layer type default paint properties.
453
- */
454
- defaultPaintOverrides?: { circle?: CircleLayerSpecification['paint'], fill?: FillLayerSpecification['paint'], line?: LineLayerSpecification['paint'] };
455
- /**
456
- * Id of an existing layer in the mapLibre instance to help specify the layer order
457
- * This layer will be visually beneath the layer with the "insertBeforeLayer" id.
458
- */
459
- insertBeforeLayer: string;
460
- /**
461
- * Hover event handler that is executed whenever a geometry rendered by this component is hovered.
462
- */
463
- onHover?: MapLayerMouseEvent;
464
- /**
465
- * Click event handler that is executed whenever a geometry rendered by this component is clicked.
466
- */
467
- onClick?: MapLayerMouseEvent;
468
- /**
469
- * Leave event handler that is executed whenever a geometry rendered by this component is
470
- * left/unhovered.
471
- */
472
- onLeave?: MapLayerMouseEvent;
473
- /**
474
- * Creates transition animation whenever the geojson prop changes.
475
- * Only works with layer type "line" and LineString GeoJSON data.
476
- */
477
- transitionTime: number;
418
+ /**
419
+ * Id of the target MapLibre instance in mapContext
420
+ */
421
+ mapId: string;
422
+ /**
423
+ * GeoJSON data that is supposed to be rendered by this component.
424
+ */
425
+ geojson: Feature | FeatureCollection | undefined;
426
+ /**
427
+ * Type of the layer that will be added to the MapLibre instance.
428
+ * Possible values: "line", "circle", "fill"
429
+ */
430
+ type?: "fill" | "line" | "circle";
431
+ /**
432
+ * Paint property object, that is passed to the addLayer call.
433
+ * Possible props depend on the layer type.
434
+ * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#line
435
+ * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
436
+ * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
437
+ */
438
+ paint?: CircleLayerSpecification['paint'] | FillLayerSpecification['paint'] | LineLayerSpecification['paint'];
439
+ /**
440
+ * Layout property object, that is passed to the addLayer call.
441
+ * Possible props depend on the layer type.
442
+ * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#line
443
+ * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
444
+ * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
445
+ */
446
+ layout?: CircleLayerSpecification['layout'] | FillLayerSpecification['layout'] | LineLayerSpecification['layout'];
447
+ /**
448
+ * Javascript object that is spread into the addLayer commands first parameter.
449
+ */
450
+ options?: CircleLayerSpecification | FillLayerSpecification | LineLayerSpecification;
451
+ /**
452
+ * Javascript object with optional properties "fill", "line", "circle" to override implicit layer type default paint properties.
453
+ */
454
+ defaultPaintOverrides?: { circle?: CircleLayerSpecification['paint'], fill?: FillLayerSpecification['paint'], line?: LineLayerSpecification['paint'] };
455
+ /**
456
+ * Id of an existing layer in the mapLibre instance to help specify the layer order
457
+ * This layer will be visually beneath the layer with the "insertBeforeLayer" id.
458
+ */
459
+ insertBeforeLayer: string;
460
+ /**
461
+ * Hover event handler that is executed whenever a geometry rendered by this component is hovered.
462
+ */
463
+ onHover?: MapLayerMouseEvent;
464
+ /**
465
+ * Click event handler that is executed whenever a geometry rendered by this component is clicked.
466
+ */
467
+ onClick?: MapLayerMouseEvent;
468
+ /**
469
+ * Leave event handler that is executed whenever a geometry rendered by this component is
470
+ * left/unhovered.
471
+ */
472
+ onLeave?: MapLayerMouseEvent;
473
+ /**
474
+ * Creates transition animation whenever the geojson prop changes.
475
+ * Only works with layer type "line" and LineString GeoJSON data.
476
+ */
477
+ transitionTime: number;
478
478
  }
479
479
   
480
480
  /**
481
481
  * Adds source and layer of types "line", "fill" or "circle" to display GeoJSON data on the map.
482
482
  */
483
483
  const MlTransitionGeoJsonLayer = (props: MlTransitionGeoJsonLayerProps) => {
484
- const { geojson, ...restProps } = props;
484
+ const { geojson, ...restProps } = props;
485
485
   
486
- const mapHook = useMap({
487
- mapId: props.mapId,
488
- waitForLayer: props.insertBeforeLayer,
489
- });
490
- const initializedRef = useRef(false);
486
+ const mapHook = useMap({
487
+ mapId: props.mapId,
488
+ waitForLayer: props.insertBeforeLayer,
489
+ });
490
+ const initializedRef = useRef(false);
491
491
   
492
- // transition effect variables
493
- const oldGeojsonRef = useRef<Feature | FeatureCollection>();
494
- const transitionInProgressRef = useRef(false);
495
- const transitionTimeoutRef = useRef(undefined);
496
- const currentTransitionStepRef = useRef(false);
497
- const transitionGeojsonDataRef = useRef([]);
498
- const transitionGeojsonCommonDataRef = useRef([]);
499
- const [displayGeojson, setDisplayGeojson] = useState(
500
- turf.featureCollection([])
501
- );
492
+ // transition effect variables
493
+ const oldGeojsonRef = useRef<Feature | FeatureCollection>();
494
+ const transitionInProgressRef = useRef(false);
495
+ const transitionTimeoutRef = useRef(undefined);
496
+ const currentTransitionStepRef = useRef(false);
497
+ const transitionGeojsonDataRef = useRef([]);
498
+ const transitionGeojsonCommonDataRef = useRef([]);
499
+ const [displayGeojson, setDisplayGeojson] = useState(
500
+ turf.featureCollection([])
501
+ );
502
502
   
503
- useEffect(() => {
504
- return () => {
505
- // This is the cleanup function, it is called when this react component is removed from react-dom
506
- <span class="missing-if-branch" title="if path not taken" >I</span>if (transitionTimeoutRef.current) {
507
- <span class="cstat-no" title="statement not covered" > clearTimeout(transitionTimeoutRef.current);</span>
508
- }
509
- };
510
- }, []);
503
+ useEffect(() =&gt; {
504
+ return () =&gt; {
505
+ // This is the cleanup function, it is called when this react component is removed from react-dom
506
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (transitionTimeoutRef.current) {
507
+ <span class="cstat-no" title="statement not covered" > clearTimeout(transitionTimeoutRef.current);</span>
508
+ }
509
+ };
510
+ }, []);
511
511
  &nbsp;
512
- const transitionToGeojson = useCallback(<span class="fstat-no" title="function not covered" >()</span> =&gt; {
513
- <span class="cstat-no" title="statement not covered" > _transitionToGeojson(</span>
514
- props,
515
- transitionGeojsonCommonDataRef,
516
- transitionGeojsonDataRef,
517
- transitionInProgressRef,
518
- oldGeojsonRef,
519
- msPerStep,
520
- currentTransitionStepRef,
521
- mapHook.map,
522
- transitionTimeoutRef,
523
- setDisplayGeojson
524
- );
525
- }, [props, mapHook.map]);
512
+ const transitionToGeojson = useCallback(<span class="fstat-no" title="function not covered" >()</span> =&gt; {
513
+ <span class="cstat-no" title="statement not covered" > _transitionToGeojson(</span>
514
+ props,
515
+ transitionGeojsonCommonDataRef,
516
+ transitionGeojsonDataRef,
517
+ transitionInProgressRef,
518
+ oldGeojsonRef,
519
+ msPerStep,
520
+ currentTransitionStepRef,
521
+ mapHook.map,
522
+ transitionTimeoutRef,
523
+ setDisplayGeojson
524
+ );
525
+ }, [props, mapHook.map]);
526
526
  &nbsp;
527
- useEffect(() =&gt; {
528
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!mapHook.map || !initializedRef.current) return;
527
+ useEffect(() =&gt; {
528
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!mapHook.map || !initializedRef.current) return;
529
529
  &nbsp;
530
- <span class="cstat-no" title="statement not covered" > if (</span>
531
- typeof props.transitionTime !== "undefined" &amp;&amp;
532
- props.type === "line" &amp;&amp;
533
- oldGeojsonRef.current
534
- ) {
535
- <span class="cstat-no" title="statement not covered" > transitionInProgressRef.current = false;</span>
536
- <span class="cstat-no" title="statement not covered" > currentTransitionStepRef.current = false;</span>
537
- <span class="cstat-no" title="statement not covered" > transitionGeojsonDataRef.current = [];</span>
538
- <span class="cstat-no" title="statement not covered" > transitionGeojsonCommonDataRef.current = [];</span>
539
- <span class="cstat-no" title="statement not covered" > transitionToGeojson();</span>
540
- }
541
- <span class="cstat-no" title="statement not covered" > oldGeojsonRef.current = props.geojson;</span>
542
- }, [mapHook.map, transitionToGeojson, props]);
530
+ <span class="cstat-no" title="statement not covered" > if (</span>
531
+ typeof props.transitionTime !== "undefined" &amp;&amp;
532
+ props.type === "line" &amp;&amp;
533
+ oldGeojsonRef.current
534
+ ) {
535
+ <span class="cstat-no" title="statement not covered" > transitionInProgressRef.current = false;</span>
536
+ <span class="cstat-no" title="statement not covered" > currentTransitionStepRef.current = false;</span>
537
+ <span class="cstat-no" title="statement not covered" > transitionGeojsonDataRef.current = [];</span>
538
+ <span class="cstat-no" title="statement not covered" > transitionGeojsonCommonDataRef.current = [];</span>
539
+ <span class="cstat-no" title="statement not covered" > transitionToGeojson();</span>
540
+ }
541
+ <span class="cstat-no" title="statement not covered" > oldGeojsonRef.current = props.geojson;</span>
542
+ }, [mapHook.map, transitionToGeojson, props]);
543
543
  &nbsp;
544
- const startTransition = useCallback(() =&gt; {
545
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
546
- props.type === "line" &amp;&amp;
547
- typeof props.transitionTime !== "undefined" &amp;&amp;
548
- <span class="branch-2 cbranch-no" title="branch not covered" > props.transitionTime </span>&amp;&amp;
549
- <span class="branch-3 cbranch-no" title="branch not covered" > typeof props.geojson !== "undefined" </span>&amp;&amp;
550
- <span class="branch-4 cbranch-no" title="branch not covered" > JSON.stringify(oldGeojsonRef.current) !== JSON.stringify(props.geojson)</span>
551
- ) {
552
- <span class="cstat-no" title="statement not covered" > transitionToGeojson();</span>
553
- <span class="cstat-no" title="statement not covered" > oldGeojsonRef.current = props.geojson;</span>
554
- }
555
- }, [props, transitionToGeojson]);
544
+ const startTransition = useCallback(() =&gt; {
545
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (
546
+ props.type === "line" &amp;&amp;
547
+ typeof props.transitionTime !== "undefined" &amp;&amp;
548
+ <span class="branch-2 cbranch-no" title="branch not covered" > props.transitionTime </span>&amp;&amp;
549
+ <span class="branch-3 cbranch-no" title="branch not covered" > typeof props.geojson !== "undefined" </span>&amp;&amp;
550
+ <span class="branch-4 cbranch-no" title="branch not covered" > JSON.stringify(oldGeojsonRef.current) !== JSON.stringify(props.geojson)</span>
551
+ ) {
552
+ <span class="cstat-no" title="statement not covered" > transitionToGeojson();</span>
553
+ <span class="cstat-no" title="statement not covered" > oldGeojsonRef.current = props.geojson;</span>
554
+ }
555
+ }, [props, transitionToGeojson]);
556
556
  &nbsp;
557
- useEffect(() =&gt; {
558
- if (!mapHook.mapIsReady || !props.geojson) return;
557
+ useEffect(() =&gt; {
558
+ if (!mapHook.mapIsReady || !props.geojson) return;
559
559
  &nbsp;
560
- initializedRef.current = true;
560
+ initializedRef.current = true;
561
561
  &nbsp;
562
- startTransition();
563
- }, [mapHook.mapIsReady, startTransition, props]);
562
+ startTransition();
563
+ }, [mapHook.mapIsReady, startTransition, props]);
564
564
  &nbsp;
565
- return (
566
- &lt;&gt;
567
- &lt;MlGeoJsonLayer {...restProps} geojson={displayGeojson} /&gt;
568
- &lt;/&gt;
569
- );
565
+ return (
566
+ &lt;&gt;
567
+ &lt;MlGeoJsonLayer {...restProps} geojson={displayGeojson} /&gt;
568
+ &lt;/&gt;
569
+ );
570
570
  };
571
571
  &nbsp;
572
572
  export default MlTransitionGeoJsonLayer;
@@ -577,7 +577,7 @@ export default MlTransitionGeoJsonLayer;
577
577
  <div class='footer quiet pad2 space-top1 center small'>
578
578
  Code coverage generated by
579
579
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
580
- at Tue Aug 30 2022 13:27:18 GMT+0000 (Coordinated Universal Time)
580
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
581
581
  </div>
582
582
  <script src="../../../prettify.js"></script>
583
583
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Tue Aug 30 2022 13:27:18 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -227,65 +227,65 @@ import useMapState from "../../hooks/useMapState";
227
227
  * @component
228
228
  */
229
229
  const MlUseMapDebugger = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) =&gt; {</span>
230
- const map = <span class="cstat-no" title="statement not covered" >useMapState({</span>
231
- mapId: props.mapId,
232
- watch: {
233
- layers: true,
234
- sources: false, // not yet provided
235
- viewport: false,
236
- ...props.watch,
237
- },
238
- filter: {
239
- ...props.filter,
240
- },
241
- });
242
- const renderCounter = <span class="cstat-no" title="statement not covered" >useRef(0);</span>
243
- <span class="cstat-no" title="statement not covered" > renderCounter.current = renderCounter.current + 1;</span>
230
+ const map = <span class="cstat-no" title="statement not covered" >useMapState({</span>
231
+ mapId: props.mapId,
232
+ watch: {
233
+ layers: true,
234
+ sources: false, // not yet provided
235
+ viewport: false,
236
+ ...props.watch,
237
+ },
238
+ filter: {
239
+ ...props.filter,
240
+ },
241
+ });
242
+ const renderCounter = <span class="cstat-no" title="statement not covered" >useRef(0);</span>
243
+ <span class="cstat-no" title="statement not covered" > renderCounter.current = renderCounter.current + 1;</span>
244
244
  &nbsp;
245
- <span class="cstat-no" title="statement not covered" > return (</span>
246
- &lt;&gt;
247
- {/*
248
- &lt;IconButton
249
- sx={{ zIndex: 10000 }}
250
- aria-label="delete"
251
- size="small"
252
- onClick={() =&gt; setDebuggerOpen(!debuggerOpen)}
253
- &gt;
254
- &lt;CodeIcon fontSize="inherit" /&gt;
255
- &lt;/IconButton&gt;
256
- &lt;Drawer
257
- anchor="top"
258
- open={debuggerOpen}
259
- onClose={() =&gt; setDebuggerOpen(!debuggerOpen)}
260
- PaperProps={{
261
- sx: {
262
- opacity: 0.85,
263
- maxHeight: "100px",
264
- position: "relative",
265
- },
266
- }}
267
- hideBackdrop={true}
268
- variant="persistent"
269
- &gt;&lt;/Drawer&gt;
270
- */}
271
- &lt;div style={{ overflow: "hidden", width: "100px", height: "20px" }}&gt;
272
- Render: {renderCounter.current}
273
- &lt;br /&gt;
274
- &lt;pre&gt;{JSON.stringify(map, null, " ")}&lt;/pre&gt;
275
- &lt;/div&gt;
276
- &lt;/&gt;
277
- );
245
+ <span class="cstat-no" title="statement not covered" > return (</span>
246
+ &lt;&gt;
247
+ {/*
248
+ &lt;IconButton
249
+ sx={{ zIndex: 10000 }}
250
+ aria-label="delete"
251
+ size="small"
252
+ onClick={() =&gt; setDebuggerOpen(!debuggerOpen)}
253
+ &gt;
254
+ &lt;CodeIcon fontSize="inherit" /&gt;
255
+ &lt;/IconButton&gt;
256
+ &lt;Drawer
257
+ anchor="top"
258
+ open={debuggerOpen}
259
+ onClose={() =&gt; setDebuggerOpen(!debuggerOpen)}
260
+ PaperProps={{
261
+ sx: {
262
+ opacity: 0.85,
263
+ maxHeight: "100px",
264
+ position: "relative",
265
+ },
266
+ }}
267
+ hideBackdrop={true}
268
+ variant="persistent"
269
+ &gt;&lt;/Drawer&gt;
270
+ */}
271
+ &lt;div style={{ overflow: "hidden", width: "100px", height: "20px" }}&gt;
272
+ Render: {renderCounter.current}
273
+ &lt;br /&gt;
274
+ &lt;pre&gt;{JSON.stringify(map, null, " ")}&lt;/pre&gt;
275
+ &lt;/div&gt;
276
+ &lt;/&gt;
277
+ );
278
278
  };
279
279
  &nbsp;
280
280
  <span class="cstat-no" title="statement not covered" >MlUseMapDebugger.defaultProps = {</span>
281
- mapId: undefined,
281
+ mapId: undefined,
282
282
  };
283
283
  &nbsp;
284
284
  <span class="cstat-no" title="statement not covered" >MlUseMapDebugger.propTypes = {</span>
285
- /**
286
- * Id of the target MapLibre instance in mapContext
287
- */
288
- mapId: PropTypes.string,
285
+ /**
286
+ * Id of the target MapLibre instance in mapContext
287
+ */
288
+ mapId: PropTypes.string,
289
289
  };
290
290
  export default MlUseMapDebugger;
291
291
  &nbsp;</pre></td></tr></table></pre>
@@ -295,7 +295,7 @@ export default MlUseMapDebugger;
295
295
  <div class='footer quiet pad2 space-top1 center small'>
296
296
  Code coverage generated by
297
297
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
298
- at Tue Aug 30 2022 13:27:18 GMT+0000 (Coordinated Universal Time)
298
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
299
299
  </div>
300
300
  <script src="../../../prettify.js"></script>
301
301
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Tue Aug 30 2022 13:27:18 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>