@mapcomponents/react-maplibre 0.1.56 → 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 (277) 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 +20 -0
  7. package/coverage/clover.xml +232 -80
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +71 -26
  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 +89 -89
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +11 -11
  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 +14 -2
  90. package/coverage/lcov.info +450 -153
  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/decorators/ThemeWrapper.d.ts +1 -0
  104. package/dist/hooks/exportMap/index.d.ts +11 -0
  105. package/dist/hooks/exportMap/lib.d.ts +36 -0
  106. package/dist/hooks/useLayer.d.ts +6 -5
  107. package/dist/hooks/useLayerEvent.d.ts +2 -0
  108. package/dist/hooks/useMap.d.ts +1 -1
  109. package/dist/hooks/useMapState.stories.d.ts +2 -2
  110. package/dist/hooks/useSource.d.ts +17 -0
  111. package/dist/hooks/useSources.stories.d.ts +13 -0
  112. package/dist/index.d.ts +4 -0
  113. package/dist/index.esm.js +479 -190
  114. package/dist/index.esm.js.map +1 -1
  115. package/eslintErrorTest.js +10 -0
  116. package/package.json +7 -1
  117. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  118. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  119. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  120. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  122. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  123. package/src/components/MlBasicComponent.js +25 -25
  124. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  125. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  127. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  128. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  130. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  131. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  132. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  136. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  139. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  140. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  143. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  144. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  145. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  146. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  147. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  148. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  149. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  150. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  151. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  152. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  153. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  154. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  155. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  156. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  157. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  158. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  159. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  160. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  161. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  162. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  163. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  164. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  165. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  166. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  167. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  168. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  169. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  172. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  173. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  174. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  175. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  176. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  177. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  178. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  179. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  180. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  181. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  184. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  185. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  186. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  190. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  193. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  194. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  195. package/src/components/MlLayer/MlLayer.test.js +86 -86
  196. package/src/components/MlLayer/MlLayer.tsx +36 -36
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  199. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  202. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  204. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  205. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  206. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  207. package/src/components/MlMarker/MlMarker.tsx +119 -119
  208. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  209. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  212. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  213. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  214. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  215. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  216. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  217. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  218. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  219. package/src/components/MlScaleReference/MlScaleReference.stories.js +33 -35
  220. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  221. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  224. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  227. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  228. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  231. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  232. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  234. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  237. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  239. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  240. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  241. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  242. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  243. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  244. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  245. package/src/contexts/MapComponentsProvider.test.js +229 -229
  246. package/src/contexts/MapContext.tsx +65 -65
  247. package/src/contexts/SimpleDataProvider.js +47 -47
  248. package/src/contexts/SimpleDataProvider.test.js +29 -29
  249. package/src/custom.d.tsx +14 -14
  250. package/src/decorators/MapContextDecorator.js +23 -25
  251. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  252. package/src/decorators/MultiMapContextDecorator.js +63 -63
  253. package/src/decorators/NoNavToolsDecorator.js +17 -17
  254. package/src/decorators/ThemeWrapper.jsx +9 -0
  255. package/src/hooks/assets/pointWG.json +13 -0
  256. package/src/hooks/exportMap/index.ts +30 -0
  257. package/src/hooks/exportMap/lib.ts +187 -0
  258. package/src/hooks/useLayer.test.js +188 -188
  259. package/src/hooks/useLayer.ts +194 -180
  260. package/src/hooks/useLayerEvent.js +49 -0
  261. package/src/hooks/useMap.ts +67 -66
  262. package/src/hooks/useMapState.stories.js +78 -78
  263. package/src/hooks/useMapState.ts +161 -161
  264. package/src/hooks/useSource.ts +84 -0
  265. package/src/hooks/useSources.stories.js +232 -0
  266. package/src/hooks/useWms.js +71 -71
  267. package/src/index.ts +4 -0
  268. package/src/setupTests.js +86 -86
  269. package/src/ui_components/ImageLoader.js +62 -62
  270. package/src/ui_components/Legend.js +34 -34
  271. package/src/ui_components/LoadingOverlay.js +29 -29
  272. package/src/ui_components/LoadingOverlayContext.js +68 -68
  273. package/src/ui_components/Sidebar.js +80 -80
  274. package/src/ui_components/Tooltip.js +9 -9
  275. package/src/ui_components/TopToolbar.js +23 -23
  276. package/src/util/layerRemovalTest.js +111 -111
  277. 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 Thu Aug 11 2022 13:20:32 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 Thu Aug 11 2022 13:20:32 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 Thu Aug 11 2022 13:20:32 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 Thu Aug 11 2022 13:20:32 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>