@mapcomponents/react-maplibre 0.1.62 → 0.1.64

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 (340) hide show
  1. package/.babelrc +21 -2
  2. package/.editorconfig +1 -1
  3. package/.eslintrc.js +11 -1
  4. package/.github/workflows/check-catalogue-metadata-schema.yml +19 -0
  5. package/.storybook/main.js +0 -1
  6. package/.storybook/preview.js +0 -2
  7. package/CHANGELOG.md +43 -0
  8. package/coverage/clover.xml +864 -1037
  9. package/coverage/coverage-final.json +32 -21
  10. package/coverage/lcov-report/favicon.png +0 -0
  11. package/coverage/lcov-report/index.html +170 -95
  12. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  13. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +24 -24
  14. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  15. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +5 -5
  16. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +2 -2
  18. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  19. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +148 -0
  20. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +1 -1
  21. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +22 -7
  22. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +72 -42
  23. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +15 -15
  24. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  25. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +1 -1
  27. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +86 -35
  29. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  30. package/coverage/lcov-report/src/components/{MlSpatialElevationProfile/MlSpatialElevationProfile.js.html → MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html} +215 -320
  31. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +649 -0
  32. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +112 -0
  33. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +115 -0
  34. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +161 -0
  35. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +1 -1
  36. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +394 -0
  38. package/coverage/lcov-report/src/components/MlGpxViewer/index.html +116 -0
  39. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +63 -285
  40. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +21 -21
  41. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  43. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +58 -76
  44. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +58 -61
  46. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +11 -11
  47. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  48. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +30 -21
  49. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  50. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  52. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  53. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
  54. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  55. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  56. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +1 -1
  58. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  59. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  60. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
  61. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  62. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  63. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  64. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  65. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +214 -0
  67. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +121 -0
  68. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +412 -0
  69. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +463 -0
  70. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +161 -0
  71. package/coverage/lcov-report/src/components/{MlGPXViewer/MlGPXViewer.tsx.html → MlSketchTool/MlSketchTool.tsx.html} +271 -589
  72. package/coverage/lcov-report/src/components/{MlGPXViewer → MlSketchTool}/index.html +22 -37
  73. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.html +514 -0
  74. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +21 -21
  75. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  76. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  77. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +20 -206
  78. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  79. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  80. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  81. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +10 -7
  82. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +5 -5
  83. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  84. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  85. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +111 -57
  86. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +19 -19
  87. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +201 -144
  88. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +9 -9
  89. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +23 -23
  90. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  91. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  92. package/coverage/lcov-report/src/contexts/index.html +1 -1
  93. package/coverage/lcov-report/src/hooks/index.html +50 -50
  94. package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +1 -1
  95. package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +1 -1
  96. package/coverage/lcov-report/src/hooks/useExportMap/index.html +1 -1
  97. package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +1 -1
  98. package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +1 -1
  99. package/coverage/lcov-report/src/hooks/useGpx/index.html +116 -0
  100. package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +295 -0
  101. package/coverage/lcov-report/src/hooks/useLayer.ts.html +132 -66
  102. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +1 -1
  103. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +116 -0
  104. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +331 -0
  105. package/coverage/lcov-report/src/hooks/useMap.ts.html +47 -47
  106. package/coverage/lcov-report/src/hooks/useMapState.ts.html +54 -54
  107. package/coverage/lcov-report/src/hooks/useSource.ts.html +57 -57
  108. package/coverage/lcov-report/src/hooks/{useWms.js.html → useWms.ts.html} +54 -15
  109. package/coverage/lcov-report/src/index.html +1 -1
  110. package/coverage/lcov-report/src/index.ts.html +6 -6
  111. package/coverage/lcov.info +1724 -1974
  112. package/cypress/support/commands.ts +37 -0
  113. package/cypress/support/component-index.html +12 -0
  114. package/cypress/support/component.ts +46 -0
  115. package/cypress.config.ts +101 -0
  116. package/dist/components/MapLibreMap/MapLibreMap.d.ts +1 -1
  117. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +53 -27
  118. package/dist/components/MlCenterPosition/MlCenterPosition.d.ts +3 -2
  119. package/dist/components/MlCenterPosition/MlCenterPosition.stories.d.ts +35 -16
  120. package/dist/components/MlComponentTemplate/MlComponentTemplate.d.ts +1 -1
  121. package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +12 -9
  122. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.d.ts +1 -1
  123. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +12 -9
  124. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.cy.d.ts +1 -0
  125. package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +1 -1
  126. package/dist/components/MlFeatureEditor/MlFeatureEditor.d.ts +10 -4
  127. package/dist/components/MlFeatureEditor/lib/double_click_zoom.d.ts +0 -2
  128. package/dist/components/MlFeatureEditor/lib/theme.d.ts +1 -1
  129. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.d.ts +23 -12
  130. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +12 -11
  131. package/dist/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.d.ts +2 -0
  132. package/dist/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.d.ts +2 -0
  133. package/dist/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.d.ts +3 -0
  134. package/dist/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.d.ts +3 -0
  135. package/dist/components/MlGpxViewer/MlGpxViewer.d.ts +30 -0
  136. package/dist/components/MlGpxViewer/MlGpxViewer.stories.d.ts +17 -0
  137. package/dist/components/MlGpxViewer/MlGpxViewer.test.d.ts +1 -0
  138. package/dist/components/MlGpxViewer/util/GeoJsonContext.d.ts +10 -0
  139. package/dist/components/MlGpxViewer/util/GeoJsonProvider.d.ts +4 -0
  140. package/dist/components/MlGpxViewer/util/MetadataDrawer.d.ts +7 -0
  141. package/dist/components/MlGpxViewer/util/MlGpxDemoLoader.d.ts +10 -0
  142. package/dist/components/MlGpxViewer/util/MlGpxViewerInstructions.d.ts +3 -0
  143. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.d.ts +11 -2
  144. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +7 -9
  145. package/dist/components/MlLayerMagnify/MlLayerMagnify.d.ts +8 -2
  146. package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +13 -9
  147. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +13 -3
  148. package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +12 -10
  149. package/dist/components/MlSketchTool/LayerList/ColorPicker.d.ts +9 -0
  150. package/dist/components/MlSketchTool/LayerList/LayerList.d.ts +5 -0
  151. package/dist/components/MlSketchTool/LayerList/LayerListItem.d.ts +11 -0
  152. package/dist/components/MlSketchTool/LayerList/LayerPropertyForm.d.ts +9 -0
  153. package/dist/components/MlSketchTool/MlSketchTool.d.ts +29 -0
  154. package/dist/components/MlSketchTool/MlSketchTool.stories.d.ts +10 -0
  155. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.d.ts +33 -14
  156. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +18 -15
  157. package/dist/components/MlSpatialElevationProfile/util/getElevationData.d.ts +14 -0
  158. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.d.ts +3 -67
  159. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +7 -4
  160. package/dist/components/MlWmsLoader/MlWmsLoader.d.ts +17 -10
  161. package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +23 -12
  162. package/dist/components/MlWmsLoader/utils/MlWmsLoaderInstructions.d.ts +3 -0
  163. package/dist/components/MlWmsLoader/utils/WMSLinks.d.ts +6 -0
  164. package/dist/contexts/SimpleDataProvider.d.ts +1 -1
  165. package/dist/custom.d.d.ts +1 -1
  166. package/dist/decorators/ThemeWrapper.d.ts +3 -1
  167. package/dist/hooks/useGpx/lib/gpxConverter.d.ts +11 -0
  168. package/dist/hooks/useGpx/useGpx.d.ts +26 -0
  169. package/dist/hooks/useGpx/useGpx.stories.d.ts +10 -0
  170. package/dist/hooks/useLayer.d.ts +14 -8
  171. package/dist/hooks/useLayerHoverPopup/useLayerHoverPopup.d.ts +23 -0
  172. package/dist/hooks/useLayerHoverPopup/useLayerHoverPopup.stories.d.ts +10 -0
  173. package/dist/hooks/useMap.d.ts +2 -2
  174. package/dist/hooks/useMap.test.d.ts +1 -0
  175. package/dist/hooks/useMapState.d.ts +3 -3
  176. package/dist/hooks/useSource.d.ts +3 -3
  177. package/dist/hooks/useWms.d.ts +24 -16
  178. package/dist/index.d.ts +5 -5
  179. package/dist/index.esm.css +1 -1
  180. package/dist/index.esm.js +9327 -14844
  181. package/dist/index.esm.js.map +1 -1
  182. package/dist/setupTests.d.ts +6 -5
  183. package/dist/ui_components/Dropzone.d.ts +5 -0
  184. package/dist/ui_components/ImageLoader.d.ts +8 -1
  185. package/dist/ui_components/LoadingOverlayContext.d.ts +11 -11
  186. package/dist/ui_components/Sidebar.d.ts +10 -1
  187. package/dist/ui_components/Tooltip.d.ts +1 -1
  188. package/dist/ui_components/TopToolbar.d.ts +7 -1
  189. package/dist/ui_components/UploadButton.d.ts +6 -0
  190. package/dist/util/BubbleForInstructions.d.ts +2 -0
  191. package/dist/util/Instructions.d.ts +13 -0
  192. package/package.json +195 -185
  193. package/public/assets/sample1.gpx +3003 -0
  194. package/public/assets/sample2.gpx +1264 -0
  195. package/public/assets/sample3.gpx +912 -0
  196. package/{src/components/MlImageMarkerLayer → public}/assets/wg-marker.png +0 -0
  197. package/public/index.html +0 -4
  198. package/public/thumbnails/MlSketchTool.png +0 -0
  199. package/public/thumbnails/useCameraFollowPath.png +0 -0
  200. package/scripts/build-catalogue-meta.js +35 -11
  201. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +230 -188
  202. package/src/components/MlCenterPosition/MlCenterPosition.meta_.json +1 -2
  203. package/src/components/MlCenterPosition/MlCenterPosition.stories.tsx +20 -0
  204. package/src/components/MlCenterPosition/MlCenterPosition.tsx +4 -4
  205. package/src/components/MlComponentTemplate/MlComponentTemplate.meta_.json +1 -2
  206. package/src/components/MlComponentTemplate/{MlComponentTemplate.stories.js → MlComponentTemplate.stories.tsx} +2 -2
  207. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +1 -1
  208. package/src/components/MlCreatePdfButton/MlCreatePdfButton.meta_.json +1 -2
  209. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.stories.js → MlCreatePdfButton.stories.tsx} +1 -1
  210. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +1 -1
  211. package/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx +21 -0
  212. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +1 -2
  213. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +1 -3
  214. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +25 -2
  215. package/src/components/MlFeatureEditor/MlFeatureEditor.meta.json +2 -3
  216. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +39 -29
  217. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.meta.json +1 -2
  218. package/src/components/MlFollowGps/MlFollowGps.meta.json +1 -2
  219. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.meta.json +1 -2
  220. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.tsx +191 -0
  221. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +47 -30
  222. package/src/components/MlGeoJsonLayer/assets/earthquake.json +109937 -0
  223. package/src/components/MlGeoJsonLayer/assets/sample_1.json +138 -24
  224. package/src/components/MlGeoJsonLayer/assets/sample_2.json +140 -20
  225. package/src/components/MlGeoJsonLayer/assets/wg_locations.json +65 -0
  226. package/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js +189 -0
  227. package/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js +188 -0
  228. package/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx +9 -0
  229. package/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx +10 -0
  230. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +1 -2
  231. package/src/components/{MlGPXViewer/MlGPXViewer.doc.de.md → MlGpxViewer/MlGpxViewer.doc.de.md} +0 -0
  232. package/src/components/{MlGPXViewer/MlGPXViewer.doc.en.md → MlGpxViewer/MlGpxViewer.doc.en.md} +0 -0
  233. package/src/components/{MlGPXViewer/MlGPXViewer.meta.json → MlGpxViewer/MlGpxViewer.meta.json} +2 -3
  234. package/src/components/MlGpxViewer/MlGpxViewer.stories.tsx +109 -0
  235. package/src/components/MlGpxViewer/MlGpxViewer.test.js +53 -0
  236. package/src/components/MlGpxViewer/MlGpxViewer.tsx +103 -0
  237. package/src/components/{MlGPXViewer → MlGpxViewer}/util/GeoJsonContext.ts +0 -0
  238. package/src/components/{MlGPXViewer → MlGpxViewer}/util/GeoJsonProvider.tsx +0 -0
  239. package/src/components/MlGpxViewer/util/MetadataDrawer.tsx +38 -0
  240. package/src/components/MlGpxViewer/util/MlGpxDemoLoader.tsx +128 -0
  241. package/src/components/MlGpxViewer/util/MlGpxViewerInstructions.tsx +68 -0
  242. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.meta_.json +1 -2
  243. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.tsx +41 -0
  244. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +27 -8
  245. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +41 -115
  246. package/src/components/MlLayer/MlLayer.meta_.json +1 -2
  247. package/src/components/MlLayerMagnify/MlLayerMagnify.meta.json +1 -2
  248. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.tsx +44 -0
  249. package/src/components/MlLayerMagnify/{MlLayerMagnify.test.js → MlLayerMagnify.test.tsx} +15 -18
  250. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +55 -61
  251. package/src/components/MlLayerSwipe/MlLayerSwipe.meta.json +1 -2
  252. package/src/components/MlLayerSwipe/{MlLayerSwipe.stories.js → MlLayerSwipe.stories.tsx} +9 -11
  253. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +47 -48
  254. package/src/components/MlLayerSwitcher/MlLayerSwitcher.meta_.json +1 -2
  255. package/src/components/MlLayerSwitcher/components/LayerBox.js +22 -19
  256. package/src/components/MlMarker/MlMarker.meta_.json +1 -2
  257. package/src/components/MlMeasureTool/MlMeasureTool.meta.json +1 -2
  258. package/src/components/MlNavigationCompass/MlNavigationCompass.meta.json +1 -2
  259. package/src/components/MlNavigationTools/MlNavigationTools.meta.json +1 -2
  260. package/src/components/MlScaleReference/MlScaleReference.meta.json +1 -2
  261. package/src/components/MlShareMapState/MlShareMapState.meta_.json +1 -2
  262. package/src/components/MlSketchTool/LayerList/ColorPicker.tsx +43 -0
  263. package/src/components/MlSketchTool/LayerList/LayerList.tsx +12 -0
  264. package/src/components/MlSketchTool/LayerList/LayerListItem.tsx +109 -0
  265. package/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx +126 -0
  266. package/src/components/MlSketchTool/MlSketchTool.doc.de.md +3 -0
  267. package/src/components/MlSketchTool/MlSketchTool.meta.json +14 -0
  268. package/src/components/MlSketchTool/MlSketchTool.stories.js +26 -0
  269. package/src/components/MlSketchTool/MlSketchTool.tsx +271 -0
  270. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.meta.json +1 -2
  271. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.tsx +121 -0
  272. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +30 -1
  273. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx +143 -0
  274. package/src/components/MlSpatialElevationProfile/util/getElevationData.tsx +103 -0
  275. package/src/components/MlThreeJsLayer/MlThreeJsLayer.meta.json +1 -2
  276. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.meta.json +3 -4
  277. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +2 -3
  278. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +17 -79
  279. package/src/components/MlUseMapDebugger/MlUseMapDebugger.meta_.json +1 -2
  280. package/src/components/MlVectorTileLayer/MlVectorTileLayer.meta.json +1 -2
  281. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +3 -2
  282. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.meta_.json +1 -2
  283. package/src/components/MlWmsLayer/MlWmsLayer.tsx +59 -41
  284. package/src/components/MlWmsLoader/MlWmsLoader.meta.json +1 -2
  285. package/src/components/MlWmsLoader/MlWmsLoader.stories.tsx +89 -0
  286. package/src/components/MlWmsLoader/MlWmsLoader.tsx +141 -122
  287. package/src/components/MlWmsLoader/utils/MlWmsLoaderInstructions.tsx +50 -0
  288. package/src/components/MlWmsLoader/utils/WMSLinks.tsx +128 -0
  289. package/src/decorators/MapContextDecorator.js +1 -1
  290. package/src/decorators/MapContextDecoratorHooks.js +1 -1
  291. package/src/decorators/ThemeWrapper.tsx +9 -0
  292. package/src/hooks/useCameraFollowPath/useCameraFollowPath.meta.json +1 -2
  293. package/src/{components/MlGPXViewer → hooks/useGpx/lib}/gpxConverter.js +1 -0
  294. package/src/hooks/useGpx/useGpx.doc.de.md +3 -0
  295. package/src/hooks/useGpx/useGpx.meta_.json +15 -0
  296. package/src/{components/MlCenterPosition/MlCenterPosition.stories.js → hooks/useGpx/useGpx.stories.js} +4 -5
  297. package/src/hooks/useGpx/useGpx.tsx +70 -0
  298. package/src/hooks/useLayer.ts +32 -10
  299. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.doc.de.md +3 -0
  300. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.meta_.json +15 -0
  301. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.stories.js +20 -0
  302. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx +82 -0
  303. package/src/hooks/useMap.test.tsx +48 -0
  304. package/src/hooks/useMap.ts +8 -8
  305. package/src/hooks/useSource.ts +4 -4
  306. package/src/hooks/{useWms.js → useWms.ts} +24 -11
  307. package/src/index.ts +5 -5
  308. package/src/setupTests.js +18 -15
  309. package/src/ui_components/Dropzone.tsx +104 -0
  310. package/src/ui_components/{ImageLoader.js → ImageLoader.tsx} +30 -25
  311. package/src/ui_components/{LoadingOverlayContext.js → LoadingOverlayContext.tsx} +12 -15
  312. package/src/ui_components/Sidebar.tsx +82 -0
  313. package/src/ui_components/Tooltip.tsx +17 -0
  314. package/src/ui_components/TopToolbar.tsx +26 -0
  315. package/src/ui_components/UploadButton.tsx +57 -0
  316. package/src/util/BubbleForInstructions.js +46 -0
  317. package/src/util/Instructions.tsx +60 -0
  318. package/tsconfig.json +39 -58
  319. package/config/getHttpsConfig.js +0 -66
  320. package/config/modules.js +0 -134
  321. package/config/pnpTs.js +0 -35
  322. package/config/webpack.config.js +0 -757
  323. package/config/webpackDevServer.config.js +0 -130
  324. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +0 -1645
  325. package/scripts/start.js +0 -166
  326. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +0 -31
  327. package/src/components/MlGPXViewer/MlGPXViewer.test.js +0 -28
  328. package/src/components/MlGPXViewer/MlGPXViewer.tsx +0 -377
  329. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +0 -66
  330. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +0 -45
  331. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +0 -41
  332. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +0 -224
  333. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +0 -57
  334. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +0 -47
  335. package/src/decorators/ThemeWrapper.jsx +0 -9
  336. package/src/ui_components/Legend.js +0 -44
  337. package/src/ui_components/LoadingOverlay.js +0 -41
  338. package/src/ui_components/Sidebar.js +0 -100
  339. package/src/ui_components/Tooltip.js +0 -21
  340. package/src/ui_components/TopToolbar.js +0 -29
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">49.2% </span>
26
+ <span class="strong">52.17% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>31/63</span>
28
+ <span class='fraction'>12/23</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">35.59% </span>
33
+ <span class="strong">40.9% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>21/59</span>
35
+ <span class='fraction'>9/22</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">60% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/10</span>
42
+ <span class='fraction'>2/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">52.54% </span>
47
+ <span class="strong">55% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>31/59</span>
49
+ <span class='fraction'>11/20</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line medium'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -163,81 +163,7 @@
163
163
  <a name='L98'></a><a href='#L98'>98</a>
164
164
  <a name='L99'></a><a href='#L99'>99</a>
165
165
  <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
166
+ <a name='L101'></a><a href='#L101'>101</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
241
167
  <span class="cline-any cline-neutral">&nbsp;</span>
242
168
  <span class="cline-any cline-neutral">&nbsp;</span>
243
169
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -270,153 +196,83 @@
270
196
  <span class="cline-any cline-neutral">&nbsp;</span>
271
197
  <span class="cline-any cline-neutral">&nbsp;</span>
272
198
  <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-yes">10x</span>
274
- <span class="cline-any cline-yes">12x</span>
275
199
  <span class="cline-any cline-neutral">&nbsp;</span>
276
200
  <span class="cline-any cline-neutral">&nbsp;</span>
277
201
  <span class="cline-any cline-neutral">&nbsp;</span>
278
202
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">12x</span>
280
- <span class="cline-any cline-yes">12x</span>
281
- <span class="cline-any cline-yes">12x</span>
282
- <span class="cline-any cline-yes">12x</span>
283
203
  <span class="cline-any cline-neutral">&nbsp;</span>
284
204
  <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-yes">12x</span>
286
- <span class="cline-any cline-yes">4x</span>
287
205
  <span class="cline-any cline-neutral">&nbsp;</span>
288
206
  <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-yes">10x</span>
208
+ <span class="cline-any cline-yes">16x</span>
289
209
  <span class="cline-any cline-neutral">&nbsp;</span>
290
210
  <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-yes">4x</span>
292
211
  <span class="cline-any cline-neutral">&nbsp;</span>
293
212
  <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-yes">16x</span>
214
+ <span class="cline-any cline-yes">16x</span>
215
+ <span class="cline-any cline-yes">16x</span>
294
216
  <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-no">&nbsp;</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
297
- <span class="cline-any cline-no">&nbsp;</span>
217
+ <span class="cline-any cline-yes">16x</span>
298
218
  <span class="cline-any cline-neutral">&nbsp;</span>
299
219
  <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-no">&nbsp;</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
302
- <span class="cline-any cline-no">&nbsp;</span>
303
220
  <span class="cline-any cline-neutral">&nbsp;</span>
304
221
  <span class="cline-any cline-neutral">&nbsp;</span>
305
222
  <span class="cline-any cline-neutral">&nbsp;</span>
306
223
  <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-yes">12x</span>
308
- <span class="cline-any cline-no">&nbsp;</span>
309
- <span class="cline-any cline-no">&nbsp;</span>
310
224
  <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-no">&nbsp;</span>
312
225
  <span class="cline-any cline-neutral">&nbsp;</span>
313
226
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-no">&nbsp;</span>
315
- <span class="cline-any cline-no">&nbsp;</span>
316
- <span class="cline-any cline-no">&nbsp;</span>
317
227
  <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-no">&nbsp;</span>
319
228
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-no">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-no">&nbsp;</span>
323
- <span class="cline-any cline-no">&nbsp;</span>
324
229
  <span class="cline-any cline-neutral">&nbsp;</span>
325
230
  <span class="cline-any cline-neutral">&nbsp;</span>
326
231
  <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-yes">16x</span>
327
233
  <span class="cline-any cline-no">&nbsp;</span>
328
234
  <span class="cline-any cline-no">&nbsp;</span>
329
235
  <span class="cline-any cline-neutral">&nbsp;</span>
330
236
  <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-yes">12x</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-yes">4x</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-yes">4x</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-yes">4x</span>
346
- <span class="cline-any cline-yes">4x</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">4x</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-no">&nbsp;</span>
358
237
  <span class="cline-any cline-no">&nbsp;</span>
359
238
  <span class="cline-any cline-no">&nbsp;</span>
360
239
  <span class="cline-any cline-no">&nbsp;</span>
361
240
  <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">4x</span>
367
- <span class="cline-any cline-no">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">12x</span>
372
- <span class="cline-any cline-yes">12x</span>
373
- <span class="cline-any cline-yes">8x</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">4x</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-yes">4x</span>
378
241
  <span class="cline-any cline-no">&nbsp;</span>
379
242
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">4x</span>
382
- <span class="cline-any cline-no">&nbsp;</span>
383
243
  <span class="cline-any cline-no">&nbsp;</span>
384
244
  <span class="cline-any cline-neutral">&nbsp;</span>
385
245
  <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-yes">4x</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-yes">12x</span>
391
- <span class="cline-any cline-yes">12x</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-yes">12x</span>
394
246
  <span class="cline-any cline-neutral">&nbsp;</span>
395
247
  <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-yes">12x</span>
397
- <span class="cline-any cline-yes">4x</span>
398
248
  <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-no">&nbsp;</span>
399
250
  <span class="cline-any cline-neutral">&nbsp;</span>
400
251
  <span class="cline-any cline-neutral">&nbsp;</span>
401
252
  <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-yes">4x</span>
403
253
  <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-yes">16x</span>
255
+ <span class="cline-any cline-yes">16x</span>
404
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-yes">8x</span>
405
258
  <span class="cline-any cline-no">&nbsp;</span>
406
259
  <span class="cline-any cline-neutral">&nbsp;</span>
407
260
  <span class="cline-any cline-neutral">&nbsp;</span>
408
261
  <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-yes">12x</span>
262
+ <span class="cline-any cline-yes">16x</span>
411
263
  <span class="cline-any cline-neutral">&nbsp;</span>
412
264
  <span class="cline-any cline-neutral">&nbsp;</span>
413
265
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useCallback, useEffect } from "react";
266
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useState } from 'react';
415
267
  &nbsp;
416
- import { GeoJSONSource } from "maplibre-gl";
417
- import useMap, { useMapType } from "../../hooks/useMap";
268
+ import { v4 as uuidv4 } from 'uuid';
418
269
  &nbsp;
419
- interface MlImageMarkerLayerProps {
270
+ import useLayer from '../../hooks/useLayer';
271
+ import useMap from '../../hooks/useMap';
272
+ import { SymbolLayerSpecification } from 'maplibre-gl';
273
+ import { Feature, FeatureCollection } from '@turf/turf';
274
+ &nbsp;
275
+ export interface MlImageMarkerLayerProps {
420
276
  /**
421
277
  * Id of the target MapLibre instance in mapContext
422
278
  */
@@ -441,7 +297,11 @@ interface MlImageMarkerLayerProps {
441
297
  /**
442
298
  * Javascript object that is passed the addLayer command as first parameter.
443
299
  */
444
- options?: any;
300
+ options?: {
301
+ source?: { type?: string | undefined; data: Feature | FeatureCollection | undefined };
302
+ layout?: SymbolLayerSpecification['layout'];
303
+ paint?: SymbolLayerSpecification['paint'];
304
+ };
445
305
  }
446
306
  &nbsp;
447
307
  const MlImageMarkerLayer = (props: MlImageMarkerLayerProps) =&gt; {
@@ -450,38 +310,27 @@ const MlImageMarkerLayer = (props: MlImageMarkerLayerProps) =&gt; {
450
310
  waitForLayer: props.insertBeforeLayer,
451
311
  });
452
312
  &nbsp;
453
- const initializedRef = useRef(false);
454
- const recreationInProgress = useRef(false);
455
- const imageIdRef = useRef(props.imageId || "img_" + new Date().getTime());
456
- const layerId = useRef(props.layerId || "MlImageMarkerLayer-" + mapHook.componentId);
313
+ const [imageId, setImageId] = useState&lt;string&gt;();
314
+ const imageIdRef = useRef(props.imageId || 'img_' + uuidv4());
315
+ const layerId = useRef(props.layerId || 'MlImageMarkerLayer-' + mapHook.componentId);
457
316
  &nbsp;
458
- // effect to sync Layer paint &amp; layout properties
459
- useEffect(() =&gt; {
460
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
461
- !mapHook.map ||
462
- (<span class="branch-1 cbranch-no" title="branch not covered" >mapHook.map </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >!mapHook.map.map.getLayer(layerId.current))</span> ||
463
- <span class="branch-3 cbranch-no" title="branch not covered" > !props.options</span>
464
- )
465
- return;
466
- &nbsp;
467
- var key;
468
- &nbsp;
469
- <span class="cstat-no" title="statement not covered" > if (props.options.layout) {</span>
470
- <span class="cstat-no" title="statement not covered" > for (key in props.options.layout) {</span>
471
- <span class="cstat-no" title="statement not covered" > mapHook.map.map.setLayoutProperty(layerId.current, key, props.options.layout[key]);</span>
472
- }
473
- }
474
- <span class="cstat-no" title="statement not covered" > if (props.options.paint) {</span>
475
- <span class="cstat-no" title="statement not covered" > for (key in props.options.paint) {</span>
476
- <span class="cstat-no" title="statement not covered" > mapHook.map.map.setPaintProperty(layerId.current, key, props.options.paint[key]);</span>
477
- }
478
- }
479
- }, [props.options, layerId.current, props.mapId]);
317
+ useLayer({
318
+ geojson: props.options?.source?.data,
319
+ layerId: layerId.current,
320
+ options: {
321
+ type: 'symbol',
322
+ layout: {
323
+ ...props.options?.layout,
324
+ 'icon-image': imageId || imageIdRef.current,
325
+ },
326
+ paint: {
327
+ ...props.options?.paint,
328
+ },
329
+ },
330
+ });
480
331
  &nbsp;
481
- const createImage = <span class="fstat-no" title="function not covered" >(m</span>apHook: useMapType, props: MlImageMarkerLayerProps, callback: Function) =&gt; {
332
+ const createImage = <span class="fstat-no" title="function not covered" >(m</span>apHook: ReturnType&lt;typeof useMap&gt;, props: MlImageMarkerLayerProps) =&gt; {
482
333
  <span class="cstat-no" title="statement not covered" > if (!mapHook.map) {</span>
483
- <span class="cstat-no" title="statement not covered" > initializedRef.current = false;</span>
484
- &nbsp;
485
334
  <span class="cstat-no" title="statement not covered" > return;</span>
486
335
  }
487
336
  &nbsp;
@@ -491,95 +340,24 @@ const MlImageMarkerLayer = (props: MlImageMarkerLayerProps) =&gt; {
491
340
  &nbsp;
492
341
  <span class="cstat-no" title="statement not covered" > if (!mapHook.map || mapHook.map.map.hasImage(imageIdRef.current)) <span class="cstat-no" title="statement not covered" >return;</span></span>
493
342
  &nbsp;
494
- <span class="cstat-no" title="statement not covered" > mapHook.map.addImage(imageIdRef.current, image, mapHook.componentId);</span>
343
+ <span class="cstat-no" title="statement not covered" > mapHook.map.addImage(</span>
344
+ imageIdRef.current,
345
+ image as unknown as ImageData,
346
+ mapHook.componentId
347
+ );
495
348
  &nbsp;
496
- <span class="cstat-no" title="statement not covered" > if (typeof callback === "function") {</span>
497
- <span class="cstat-no" title="statement not covered" > callback();</span>
498
- }
349
+ <span class="cstat-no" title="statement not covered" > setImageId(imageIdRef.current);</span>
499
350
  });
500
- } else {
501
- <span class="cstat-no" title="statement not covered" > if (typeof callback === "function") {</span>
502
- <span class="cstat-no" title="statement not covered" > callback();</span>
503
- }
504
351
  }
505
352
  };
506
353
  &nbsp;
507
- const createLayer = (
508
- mapHook: useMapType,
509
- props: MlImageMarkerLayerProps,
510
- createMapLibreElements: Function
511
- ) =&gt; {
512
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!props.options || !mapHook.map || mapHook.map?.map.getLayer(layerId.current)) <span class="cstat-no" title="statement not covered" >return;</span>
513
- &nbsp;
514
- let tmpOptions = {
515
- id: layerId.current,
516
- layout: {},
517
- ...props.options,
518
- };
519
- tmpOptions.layout["icon-image"] = imageIdRef.current;
520
- mapHook.map.addLayer(tmpOptions, props.insertBeforeLayer, mapHook.componentId);
521
- &nbsp;
522
- // recreate layer if map style.json has changed
523
- mapHook.map.on(
524
- "styledata",
525
- <span class="fstat-no" title="function not covered" > ()</span> =&gt; {
526
- <span class="cstat-no" title="statement not covered" > if (</span>
527
- initializedRef.current &amp;&amp;
528
- !mapHook.map?.map.getLayer(layerId.current) &amp;&amp;
529
- !recreationInProgress.current
530
- ) {
531
- <span class="cstat-no" title="statement not covered" > initializedRef.current = false;</span>
532
- <span class="cstat-no" title="statement not covered" > recreationInProgress.current = true;</span>
533
- <span class="cstat-no" title="statement not covered" > console.log("Recreate Layer " + layerId.current);</span>
534
- <span class="cstat-no" title="statement not covered" > createMapLibreElements();</span>
535
- }
536
- },
537
- mapHook.componentId
538
- );
539
- &nbsp;
540
- <span class="missing-if-branch" title="if path not taken" >I</span>if (recreationInProgress.current) {
541
- <span class="cstat-no" title="statement not covered" > recreationInProgress.current = false;</span>
542
- }
543
- };
544
- &nbsp;
545
- const createMapLibreElements = useCallback(() =&gt; {
546
- if (!mapHook.map || initializedRef.current || mapHook.map?.map.getLayer(layerId.current))
547
- return;
548
- &nbsp;
549
- initializedRef.current = true;
550
- &nbsp;
551
- <span class="missing-if-branch" title="if path not taken" >I</span>if (recreationInProgress.current) {
552
- <span class="cstat-no" title="statement not covered" > mapHook.cleanup();</span>
553
- }
354
+ useEffect(() =&gt; {
355
+ if (!mapHook.map) return;
554
356
  &nbsp;
555
357
  <span class="missing-if-branch" title="if path not taken" >I</span>if (props.imgSrc) {
556
- <span class="cstat-no" title="statement not covered" > createImage(mapHook, props, <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
557
- <span class="cstat-no" title="statement not covered" > createLayer(mapHook, props, createMapLibreElements);</span>
558
- });
559
- } else {
560
- createLayer(mapHook, props, createMapLibreElements);
358
+ <span class="cstat-no" title="statement not covered" > createImage(mapHook, props);</span>
561
359
  }
562
360
  }, [props, mapHook]);
563
- &nbsp;
564
- useEffect(() =&gt; {
565
- <span class="missing-if-branch" title="if path not taken" >I</span>if (initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span>
566
- &nbsp;
567
- createMapLibreElements();
568
- }, [createMapLibreElements]);
569
- &nbsp;
570
- useEffect(() =&gt; {
571
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
572
- !mapHook.map ||
573
- (<span class="branch-1 cbranch-no" title="branch not covered" >mapHook.map </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >!mapHook.map.map.getLayer(layerId.current))</span> ||
574
- <span class="branch-3 cbranch-no" title="branch not covered" > !props.options</span>
575
- ) {
576
- return;
577
- }
578
- &nbsp;
579
- <span class="cstat-no" title="statement not covered" > (mapHook.map.map.getSource(layerId.current) as GeoJSONSource).setData(</span>
580
- props.options.source.data
581
- );
582
- }, [props.options.source.data, props]);
583
361
  &nbsp;
584
362
  return &lt;&gt;&lt;/&gt;;
585
363
  };
@@ -592,7 +370,7 @@ export default MlImageMarkerLayer;
592
370
  <div class='footer quiet pad2 space-top1 center small'>
593
371
  Code coverage generated by
594
372
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
595
- at Sat Nov 26 2022 10:32:12 GMT+0000 (Coordinated Universal Time)
373
+ at 2023-01-15T17:55:43.336Z
596
374
  </div>
597
375
  <script src="../../../prettify.js"></script>
598
376
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">49.2% </span>
26
+ <span class="strong">52.17% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>31/63</span>
28
+ <span class='fraction'>12/23</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">35.59% </span>
33
+ <span class="strong">40.9% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>21/59</span>
35
+ <span class='fraction'>9/22</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">60% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/10</span>
42
+ <span class='fraction'>2/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">52.54% </span>
47
+ <span class="strong">55% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>31/59</span>
49
+ <span class='fraction'>11/20</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line medium'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -79,18 +79,18 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file low" data-value="MlImageMarkerLayer.tsx"><a href="MlImageMarkerLayer.tsx.html">MlImageMarkerLayer.tsx</a></td>
83
- <td data-value="49.2" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 49%"></div><div class="cover-empty" style="width: 51%"></div></div>
82
+ <td class="file medium" data-value="MlImageMarkerLayer.tsx"><a href="MlImageMarkerLayer.tsx.html">MlImageMarkerLayer.tsx</a></td>
83
+ <td data-value="52.17" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 52%"></div><div class="cover-empty" style="width: 48%"></div></div>
85
85
  </td>
86
- <td data-value="49.2" class="pct low">49.2%</td>
87
- <td data-value="63" class="abs low">31/63</td>
88
- <td data-value="35.59" class="pct low">35.59%</td>
89
- <td data-value="59" class="abs low">21/59</td>
90
- <td data-value="60" class="pct medium">60%</td>
91
- <td data-value="10" class="abs medium">6/10</td>
92
- <td data-value="52.54" class="pct medium">52.54%</td>
93
- <td data-value="59" class="abs medium">31/59</td>
86
+ <td data-value="52.17" class="pct medium">52.17%</td>
87
+ <td data-value="23" class="abs medium">12/23</td>
88
+ <td data-value="40.9" class="pct low">40.9%</td>
89
+ <td data-value="22" class="abs low">9/22</td>
90
+ <td data-value="50" class="pct medium">50%</td>
91
+ <td data-value="4" class="abs medium">2/4</td>
92
+ <td data-value="55" class="pct medium">55%</td>
93
+ <td data-value="20" class="abs medium">11/20</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -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 Sat Nov 26 2022 10:32:12 GMT+0000 (Coordinated Universal Time)
104
+ at 2023-01-15T17:55:43.336Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -232,7 +232,7 @@ export default MlLayer;
232
232
  <div class='footer quiet pad2 space-top1 center small'>
233
233
  Code coverage generated by
234
234
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
235
- at Sat Nov 26 2022 10:32:12 GMT+0000 (Coordinated Universal Time)
235
+ at 2023-01-15T17:55:43.336Z
236
236
  </div>
237
237
  <script src="../../../prettify.js"></script>
238
238
  <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 Sat Nov 26 2022 10:32:12 GMT+0000 (Coordinated Universal Time)
104
+ at 2023-01-15T17:55:43.336Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>