@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
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js</title>
6
+ <title>Code coverage report for src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
14
+ background-image: url(../../../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlSpatialElevationProfile</a> MlSpatialElevationProfile.js</h1>
22
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/components/MlGeoJsonLayer/story_utils</a> MlGeoJsonLayer.lineStyler.js</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">45.58% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>31/68</span>
28
+ <span class='fraction'>0/34</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">46.15% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/26</span>
35
+ <span class='fraction'>0/8</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/10</span>
42
+ <span class='fraction'>0/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">45.16% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>28/62</span>
49
+ <span class='fraction'>0/33</span>
50
50
  </div>
51
51
 
52
52
 
@@ -252,42 +252,7 @@
252
252
  <a name='L187'></a><a href='#L187'>187</a>
253
253
  <a name='L188'></a><a href='#L188'>188</a>
254
254
  <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
255
+ <a name='L190'></a><a href='#L190'>190</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
291
256
  <span class="cline-any cline-neutral">&nbsp;</span>
292
257
  <span class="cline-any cline-neutral">&nbsp;</span>
293
258
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -300,31 +265,17 @@
300
265
  <span class="cline-any cline-neutral">&nbsp;</span>
301
266
  <span class="cline-any cline-neutral">&nbsp;</span>
302
267
  <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-yes">10x</span>
304
- <span class="cline-any cline-yes">8x</span>
305
268
  <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-yes">8x</span>
307
269
  <span class="cline-any cline-neutral">&nbsp;</span>
308
270
  <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-yes">8x</span>
310
- <span class="cline-any cline-yes">8x</span>
271
+ <span class="cline-any cline-no">&nbsp;</span>
311
272
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">8x</span>
313
- <span class="cline-any cline-yes">8x</span>
314
- <span class="cline-any cline-yes">8x</span>
315
273
  <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-yes">8x</span>
317
274
  <span class="cline-any cline-neutral">&nbsp;</span>
318
275
  <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-no">&nbsp;</span>
320
276
  <span class="cline-any cline-neutral">&nbsp;</span>
321
277
  <span class="cline-any cline-neutral">&nbsp;</span>
322
278
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-no">&nbsp;</span>
324
- <span class="cline-any cline-no">&nbsp;</span>
325
- <span class="cline-any cline-no">&nbsp;</span>
326
- <span class="cline-any cline-no">&nbsp;</span>
327
- <span class="cline-any cline-no">&nbsp;</span>
328
279
  <span class="cline-any cline-neutral">&nbsp;</span>
329
280
  <span class="cline-any cline-no">&nbsp;</span>
330
281
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -343,25 +294,13 @@
343
294
  <span class="cline-any cline-neutral">&nbsp;</span>
344
295
  <span class="cline-any cline-neutral">&nbsp;</span>
345
296
  <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-yes">8x</span>
347
- <span class="cline-any cline-yes">4x</span>
348
- <span class="cline-any cline-yes">4x</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-yes">2x</span>
351
- <span class="cline-any cline-yes">2x</span>
352
297
  <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-yes">2x</span>
354
298
  <span class="cline-any cline-neutral">&nbsp;</span>
355
299
  <span class="cline-any cline-neutral">&nbsp;</span>
356
300
  <span class="cline-any cline-neutral">&nbsp;</span>
357
301
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">8x</span>
359
- <span class="cline-any cline-yes">8x</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-yes">4x</span>
362
- <span class="cline-any cline-yes">4x</span>
302
+ <span class="cline-any cline-no">&nbsp;</span>
363
303
  <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-yes">4x</span>
365
304
  <span class="cline-any cline-neutral">&nbsp;</span>
366
305
  <span class="cline-any cline-neutral">&nbsp;</span>
367
306
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -369,13 +308,15 @@
369
308
  <span class="cline-any cline-neutral">&nbsp;</span>
370
309
  <span class="cline-any cline-neutral">&nbsp;</span>
371
310
  <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-yes">4x</span>
373
311
  <span class="cline-any cline-neutral">&nbsp;</span>
374
312
  <span class="cline-any cline-neutral">&nbsp;</span>
375
313
  <span class="cline-any cline-neutral">&nbsp;</span>
376
314
  <span class="cline-any cline-neutral">&nbsp;</span>
377
315
  <span class="cline-any cline-neutral">&nbsp;</span>
378
316
  <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-no">&nbsp;</span>
318
+ <span class="cline-any cline-no">&nbsp;</span>
319
+ <span class="cline-any cline-no">&nbsp;</span>
379
320
  <span class="cline-any cline-neutral">&nbsp;</span>
380
321
  <span class="cline-any cline-neutral">&nbsp;</span>
381
322
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -384,31 +325,45 @@
384
325
  <span class="cline-any cline-neutral">&nbsp;</span>
385
326
  <span class="cline-any cline-neutral">&nbsp;</span>
386
327
  <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-no">&nbsp;</span>
329
+ <span class="cline-any cline-no">&nbsp;</span>
330
+ <span class="cline-any cline-no">&nbsp;</span>
331
+ <span class="cline-any cline-no">&nbsp;</span>
332
+ <span class="cline-any cline-no">&nbsp;</span>
387
333
  <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-no">&nbsp;</span>
336
+ <span class="cline-any cline-no">&nbsp;</span>
388
337
  <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-no">&nbsp;</span>
389
339
  <span class="cline-any cline-neutral">&nbsp;</span>
390
340
  <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
343
+ <span class="cline-any cline-no">&nbsp;</span>
391
344
  <span class="cline-any cline-neutral">&nbsp;</span>
392
345
  <span class="cline-any cline-neutral">&nbsp;</span>
393
346
  <span class="cline-any cline-neutral">&nbsp;</span>
394
347
  <span class="cline-any cline-neutral">&nbsp;</span>
395
348
  <span class="cline-any cline-neutral">&nbsp;</span>
396
349
  <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-no">&nbsp;</span>
397
351
  <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
398
353
  <span class="cline-any cline-neutral">&nbsp;</span>
399
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
400
357
  <span class="cline-any cline-neutral">&nbsp;</span>
401
358
  <span class="cline-any cline-neutral">&nbsp;</span>
402
359
  <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
403
361
  <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-yes">8x</span>
405
- <span class="cline-any cline-yes">8x</span>
406
- <span class="cline-any cline-yes">4x</span>
407
- <span class="cline-any cline-yes">4x</span>
408
362
  <span class="cline-any cline-neutral">&nbsp;</span>
409
363
  <span class="cline-any cline-no">&nbsp;</span>
410
364
  <span class="cline-any cline-no">&nbsp;</span>
411
365
  <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
367
  <span class="cline-any cline-no">&nbsp;</span>
413
368
  <span class="cline-any cline-no">&nbsp;</span>
414
369
  <span class="cline-any cline-no">&nbsp;</span>
@@ -416,11 +371,7 @@
416
371
  <span class="cline-any cline-neutral">&nbsp;</span>
417
372
  <span class="cline-any cline-no">&nbsp;</span>
418
373
  <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-no">&nbsp;</span>
420
374
  <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-no">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-no">&nbsp;</span>
424
375
  <span class="cline-any cline-neutral">&nbsp;</span>
425
376
  <span class="cline-any cline-neutral">&nbsp;</span>
426
377
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -429,68 +380,46 @@
429
380
  <span class="cline-any cline-neutral">&nbsp;</span>
430
381
  <span class="cline-any cline-neutral">&nbsp;</span>
431
382
  <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-no">&nbsp;</span>
433
- <span class="cline-any cline-no">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-no">&nbsp;</span>
436
383
  <span class="cline-any cline-neutral">&nbsp;</span>
437
384
  <span class="cline-any cline-neutral">&nbsp;</span>
438
385
  <span class="cline-any cline-no">&nbsp;</span>
439
- <span class="cline-any cline-no">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
386
  <span class="cline-any cline-neutral">&nbsp;</span>
442
387
  <span class="cline-any cline-neutral">&nbsp;</span>
443
388
  <span class="cline-any cline-neutral">&nbsp;</span>
444
389
  <span class="cline-any cline-no">&nbsp;</span>
445
- <span class="cline-any cline-no">&nbsp;</span>
446
- <span class="cline-any cline-no">&nbsp;</span>
447
- <span class="cline-any cline-no">&nbsp;</span>
448
390
  <span class="cline-any cline-neutral">&nbsp;</span>
449
391
  <span class="cline-any cline-neutral">&nbsp;</span>
450
392
  <span class="cline-any cline-neutral">&nbsp;</span>
451
393
  <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-no">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
394
  <span class="cline-any cline-neutral">&nbsp;</span>
456
395
  <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-no">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
396
  <span class="cline-any cline-neutral">&nbsp;</span>
460
397
  <span class="cline-any cline-neutral">&nbsp;</span>
461
398
  <span class="cline-any cline-neutral">&nbsp;</span>
462
399
  <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-no">&nbsp;</span>
464
400
  <span class="cline-any cline-neutral">&nbsp;</span>
465
401
  <span class="cline-any cline-neutral">&nbsp;</span>
466
402
  <span class="cline-any cline-neutral">&nbsp;</span>
467
403
  <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-no">&nbsp;</span>
469
404
  <span class="cline-any cline-neutral">&nbsp;</span>
470
405
  <span class="cline-any cline-neutral">&nbsp;</span>
471
406
  <span class="cline-any cline-neutral">&nbsp;</span>
472
407
  <span class="cline-any cline-neutral">&nbsp;</span>
473
408
  <span class="cline-any cline-neutral">&nbsp;</span>
474
409
  <span class="cline-any cline-no">&nbsp;</span>
475
- <span class="cline-any cline-no">&nbsp;</span>
476
410
  <span class="cline-any cline-neutral">&nbsp;</span>
477
411
  <span class="cline-any cline-neutral">&nbsp;</span>
478
412
  <span class="cline-any cline-neutral">&nbsp;</span>
479
413
  <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-no">&nbsp;</span>
481
- <span class="cline-any cline-no">&nbsp;</span>
482
414
  <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-no">&nbsp;</span>
484
415
  <span class="cline-any cline-neutral">&nbsp;</span>
485
416
  <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-yes">8x</span>
487
417
  <span class="cline-any cline-neutral">&nbsp;</span>
488
418
  <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-yes">10x</span>
490
419
  <span class="cline-any cline-neutral">&nbsp;</span>
491
420
  <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-no">&nbsp;</span>
492
422
  <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-yes">10x</span>
494
423
  <span class="cline-any cline-neutral">&nbsp;</span>
495
424
  <span class="cline-any cline-neutral">&nbsp;</span>
496
425
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -511,230 +440,196 @@
511
440
  <span class="cline-any cline-neutral">&nbsp;</span>
512
441
  <span class="cline-any cline-neutral">&nbsp;</span>
513
442
  <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useCallback, useRef, useContext, useEffect } from "react";
515
- import MapContext from "../../contexts/MapContext";
516
- import GeoJsonContext from "../MlGPXViewer/util/GeoJsonContext";
517
- import { polygon, lineString } from "@turf/helpers";
518
- import { distance, lineOffset } from "@turf/turf";
519
- import { v4 as uuidv4 } from "uuid";
520
- import PropTypes from "prop-types";
521
- &nbsp;
522
- /**
523
- * MlSpatialElevationProfile returns a Button that will add a standard OSM tile layer to the maplibre-gl instance.
524
- *
525
- * @component
526
- */
527
- const MlSpatialElevationProfile = (props) =&gt; {
528
- const mapContext = useContext(MapContext);
529
- &nbsp;
530
- const componentId = useRef(
531
- (props.idPrefix ? <span class="branch-0 cbranch-no" title="branch not covered" >props.idPrefix </span>: "MlSpatialElevationProfile-") + uuidv4()
532
- );
533
- const mapRef = useRef(null);
534
- const initializedRef = useRef(false);
535
- &nbsp;
536
- const dataSource = useContext(GeoJsonContext);
537
- const sourceName = useRef("elevationprofile-" + uuidv4());
538
- const layerName = useRef("elevationprofile-layer-" + uuidv4());
539
- &nbsp;
540
- const createStep = useCallback(
541
- <span class="fstat-no" title="function not covered" > (x</span>, y, z, x2, y2) =&gt; {
542
- //const summand = 0.0002;
543
- const line = <span class="cstat-no" title="statement not covered" >lineString([</span>
544
- [x, y],
545
- [x2, y2],
546
- ]);
547
- const offsetLine = <span class="cstat-no" title="statement not covered" >lineOffset(line, 5, { units: "meters" });</span>
548
- const x3 = <span class="cstat-no" title="statement not covered" >offsetLine.geometry.coordinates[0][0];</span>
549
- const y3 = <span class="cstat-no" title="statement not covered" >offsetLine.geometry.coordinates[0][1];</span>
550
- const x4 = <span class="cstat-no" title="statement not covered" >offsetLine.geometry.coordinates[1][0];</span>
551
- const y4 = <span class="cstat-no" title="statement not covered" >offsetLine.geometry.coordinates[1][1];</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useEffect, useState, useMemo } from 'react';
445
+ import Sidebar from '../../../ui_components/Sidebar';
446
+ import {
447
+ Select,
448
+ Typography,
449
+ Slider,
450
+ Stack,
451
+ FormControl,
452
+ MenuItem,
453
+ Checkbox,
454
+ ListItemText,
455
+ } from '@mui/material';
456
+ import { ColorPicker } from 'mui-color';
457
+ import MlGeoJsonLayer from '../MlGeoJsonLayer';
458
+ import useMap from '../../../hooks/useMap';
552
459
  &nbsp;
553
- <span class="cstat-no" title="statement not covered" > return polygon(</span>
554
- [
555
- [
556
- [x, y],
557
- [x2, y2],
460
+ const streetNames = <span class="cstat-no" title="statement not covered" >[</span>
461
+ 'Show all',
462
+ 'In der Sürst',
463
+ 'Münsterplatz',
464
+ 'Poststraße',
465
+ 'Mauspfad',
466
+ 'Remiglustraße',
467
+ 'Windeckstraße',
468
+ ];
469
+ const marks = <span class="cstat-no" title="statement not covered" >[</span>
470
+ {
471
+ value: 0,
472
+ label: '0%',
473
+ },
474
+ {
475
+ value: 0.25,
476
+ label: '25%',
477
+ },
478
+ {
479
+ value: 0.5,
480
+ label: '50%',
481
+ },
482
+ {
483
+ value: 0.75,
484
+ label: '75%',
485
+ },
486
+ {
487
+ value: 1,
488
+ label: '100%',
489
+ },
490
+ ];
491
+ const widthMarks = <span class="cstat-no" title="statement not covered" >[</span>
492
+ {
493
+ value: 0,
494
+ label: '0',
495
+ },
496
+ {
497
+ value: 5,
498
+ label: '5',
499
+ },
500
+ {
501
+ value: 10,
502
+ label: '10',
503
+ },
504
+ ];
558
505
  &nbsp;
559
- [x4, y4],
560
- [x3, y3],
561
- [x, y],
562
- ],
563
- ],
564
- { height: z * props.elevationFactor }
565
- );
506
+ const ITEM_HEIGHT = <span class="cstat-no" title="statement not covered" >48;</span>
507
+ const ITEM_PADDING_TOP = <span class="cstat-no" title="statement not covered" >8;</span>
508
+ const MenuProps = <span class="cstat-no" title="statement not covered" >{</span>
509
+ PaperProps: {
510
+ style: {
511
+ maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,
512
+ width: 250,
566
513
  },
567
- [props.elevationFactor]
568
- );
514
+ },
515
+ };
569
516
  &nbsp;
570
- useEffect(() =&gt; {
571
- let _componentId = componentId.current;
572
- return () =&gt; {
573
- // This is the cleanup function, it is called when this react component is removed from react-dom
574
- <span class="missing-if-branch" title="else path not taken" >E</span>if (mapRef.current) {
575
- mapRef.current.cleanup(_componentId);
517
+ const LineStyler = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) =&gt; {</span>
518
+ const [color, setColor] = <span class="cstat-no" title="statement not covered" >useState('#2485C1');</span>
519
+ const [opacity, setOpacity] = <span class="cstat-no" title="statement not covered" >useState(0.8);</span>
520
+ const [featuresToShow, setFeaturesToShow] = <span class="cstat-no" title="statement not covered" >useState(['Show all']);</span>
521
+ const [lineWidth, setLineWidth] = <span class="cstat-no" title="statement not covered" >useState(5);</span>
576
522
  &nbsp;
577
- mapRef.current = null;
578
- }
523
+ const storyGeoJson = <span class="cstat-no" title="statement not covered" >useMemo(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
524
+ <span class="cstat-no" title="statement not covered" > if (featuresToShow[0] === 'Show all') {</span>
525
+ <span class="cstat-no" title="statement not covered" > return props.geojson;</span>
526
+ }
527
+ <span class="cstat-no" title="statement not covered" > return {</span>
528
+ type: 'FeatureCollection',
529
+ features: props.geojson.features.filter(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; {
530
+ <span class="cstat-no" title="statement not covered" > for (var i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; featuresToShow.length; i++) {</span>
531
+ <span class="cstat-no" title="statement not covered" > if (item.properties.name === featuresToShow[i]) {</span>
532
+ <span class="cstat-no" title="statement not covered" > return item;</span>
533
+ }
534
+ }
535
+ }),
579
536
  };
580
- }, []);
581
- &nbsp;
582
- useEffect(() =&gt; {
583
- if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
537
+ }, [featuresToShow, props.geojson]);
584
538
  &nbsp;
585
- initializedRef.current = true;
586
- mapRef.current = mapContext.getMap(props.mapId);
539
+ const mapHook = <span class="cstat-no" title="statement not covered" >useMap({ mapId: "map_1", waitForLayer: "Linestring" });</span>
587
540
  &nbsp;
588
- mapRef.current.addSource(
589
- sourceName.current,
590
- {
591
- type: "geojson",
592
- data: dataSource.data,
593
- },
594
- componentId.current
595
- );
596
- mapRef.current.addLayer(
597
- {
598
- id: layerName.current,
599
- source: sourceName.current,
600
- type: "fill-extrusion",
601
- paint: {
602
- "fill-extrusion-height": ["get", "height"],
603
- "fill-extrusion-opacity": 0.9,
604
- "fill-extrusion-color": [
605
- "interpolate",
606
- ["linear"],
607
- ["get", "height"],
608
- 0,
609
- "rgba(0, 0, 255, 0)",
610
- 0.1,
611
- "royalblue",
612
- 0.3,
613
- "cyan",
614
- 0.5,
615
- "lime",
616
- 0.7,
617
- "yellow",
618
- 1,
619
- "yellow",
620
- ],
621
- },
622
- },
623
- props.insertBeforeLayer,
624
- componentId.current
541
+ const handleChange = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(e</span>vent) =&gt; {</span>
542
+ const {
543
+ target: { value },
544
+ } = <span class="cstat-no" title="statement not covered" >event;</span>
545
+ <span class="cstat-no" title="statement not covered" > setFeaturesToShow(</span>
546
+ // On autofill we get a stringified value.
547
+ typeof value === 'string' ? value.split(',') : value
625
548
  );
626
- }, [mapContext.mapIds, props.insertBeforeLayer, props.mapId, dataSource, mapContext]);
627
- &nbsp;
628
- useEffect(() =&gt; {
629
- if (!mapRef.current || !mapRef.current.getLayer(layerName.current)) return;
630
- const { data } = dataSource;
631
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!data || <span class="branch-1 cbranch-no" title="branch not covered" >!data.features)</span> return;
632
- &nbsp;
633
- const line = <span class="cstat-no" title="statement not covered" >data.features.find(<span class="fstat-no" title="function not covered" >(e</span>lement) =&gt; {</span>
634
- <span class="cstat-no" title="statement not covered" > return element.geometry.type === "LineString";</span>
635
- });
636
- <span class="cstat-no" title="statement not covered" > if (!line || !line.geometry) <span class="cstat-no" title="statement not covered" >return;</span></span>
637
- const heights = <span class="cstat-no" title="statement not covered" >line.geometry.coordinates.map(<span class="fstat-no" title="function not covered" >(c</span>oordinate, index) =&gt; {</span>
638
- <span class="cstat-no" title="statement not covered" > return coordinate[2];</span>
639
- });
549
+ <span class="cstat-no" title="statement not covered" > console.log(featuresToShow);</span>
550
+ };
640
551
  &nbsp;
641
- const min = <span class="cstat-no" title="statement not covered" >Math.min(...heights);</span>
552
+ const handleColorChange = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(e</span>) =&gt; {</span>
553
+ <span class="cstat-no" title="statement not covered" > setColor(`#${e.hex}`);</span>
554
+ };
642
555
  &nbsp;
643
- let max = <span class="cstat-no" title="statement not covered" >Math.max(...heights) - min;</span>
556
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
557
+ <span class="cstat-no" title="statement not covered" > mapHook.map?.map.setCenter([7.099301807798469, 50.734214410085684]);</span>
558
+ <span class="cstat-no" title="statement not covered" > mapHook.map?.map.setZoom(16.5);</span>
559
+ }, [mapHook.map]);
644
560
  &nbsp;
645
- <span class="cstat-no" title="statement not covered" > max = max === 0 ? 1 : max;</span>
561
+ <span class="cstat-no" title="statement not covered" > return (</span>
562
+ &lt;&gt;
563
+ &lt;Sidebar&gt;
564
+ &lt;Stack paddingTop={5} spacing={3} direction="column" sx={{ mb: 1 }} alignItems="left"&gt;
565
+ &lt;Typography&gt;Feature to show:&lt;/Typography&gt;
646
566
  &nbsp;
647
- <span class="cstat-no" title="statement not covered" > mapRef.current.setPaintProperty(layerName.current, "fill-extrusion-color", [</span>
648
- "interpolate",
649
- ["linear"],
650
- ["get", "height"],
651
- 0,
652
- "rgb(0,255,55)",
653
- max * props.elevationFactor,
654
- "rgb(255,0,0)",
655
- ]);
656
- const lerp = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(x</span>, y, a) =&gt; <span class="cstat-no" title="statement not covered" >x * (1 - a) + y * a;</span></span>
657
- const points = <span class="cstat-no" title="statement not covered" >[];</span>
567
+ &lt;FormControl&gt;
568
+ &lt;Select
569
+ id="demo-multiple-checkbox"
570
+ multiple
571
+ native={false}
572
+ value={featuresToShow}
573
+ onChange={handleChange}
574
+ renderValue={<span class="fstat-no" title="function not covered" >(s</span>elected) =&gt; <span class="cstat-no" title="statement not covered" >selected.join(', ')}</span>
575
+ MenuProps={MenuProps}
576
+ &gt;
577
+ {streetNames?.map(<span class="fstat-no" title="function not covered" >(n</span>ame) =&gt; (
578
+ <span class="cstat-no" title="statement not covered" > &lt;MenuItem key={name} value={name}&gt;</span>
579
+ &lt;Checkbox checked={featuresToShow.indexOf(name || 'Show All') &gt; -1} /&gt;
580
+ &lt;ListItemText primary={name} /&gt;
581
+ &lt;/MenuItem&gt;
582
+ ))}
583
+ &lt;/Select&gt;
584
+ &lt;/FormControl&gt;
658
585
  &nbsp;
659
- <span class="cstat-no" title="statement not covered" > line.geometry.coordinates.forEach(<span class="fstat-no" title="function not covered" >(c</span>oordinate, index) =&gt; {</span>
660
- //const point = createPoint(coordinate[0],coordinate[1],coordinate[2]-min);
661
- //points.push(point);
662
- <span class="cstat-no" title="statement not covered" > if (line.geometry.coordinates[index + 1]) {</span>
663
- const wayLength = <span class="cstat-no" title="statement not covered" >distance(</span>
664
- [coordinate[0], coordinate[1]],
665
- [line.geometry.coordinates[index + 1][0], line.geometry.coordinates[index + 1][1]],
666
- { units: "kilometers" }
667
- );
668
- let listLength = <span class="cstat-no" title="statement not covered" >~~((wayLength * 1000) / 10);</span>
669
- <span class="cstat-no" title="statement not covered" > listLength = listLength &lt; 1 ? 1 : listLength;</span>
670
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; listLength; i++) {</span>
671
- const x = <span class="cstat-no" title="statement not covered" >lerp(</span>
672
- line.geometry.coordinates[index][0],
673
- line.geometry.coordinates[index + 1][0],
674
- i / listLength
675
- );
676
- const y = <span class="cstat-no" title="statement not covered" >lerp(</span>
677
- line.geometry.coordinates[index][1],
678
- line.geometry.coordinates[index + 1][1],
679
- i / listLength
680
- );
681
- const z = <span class="cstat-no" title="statement not covered" >lerp(</span>
682
- line.geometry.coordinates[index][2] - min,
683
- line.geometry.coordinates[index + 1][2] - min,
684
- i / listLength
685
- );
586
+ &lt;Typography&gt;Display color:&lt;/Typography&gt;
587
+ &lt;ColorPicker value={color} onChange={handleColorChange} /&gt;
686
588
  &nbsp;
687
- const x2 = <span class="cstat-no" title="statement not covered" >lerp(</span>
688
- line.geometry.coordinates[index][0],
689
- line.geometry.coordinates[index + 1][0],
690
- (i + 1) / listLength
691
- );
692
- const y2 = <span class="cstat-no" title="statement not covered" >lerp(</span>
693
- line.geometry.coordinates[index][1],
694
- line.geometry.coordinates[index + 1][1],
695
- (i + 1) / listLength
696
- );
589
+ &lt;Typography&gt;Opacity:&lt;/Typography&gt;
590
+ &lt;Slider
591
+ value={opacity}
592
+ aria-label="Default"
593
+ max={1}
594
+ min={0}
595
+ step={0.1}
596
+ marks={marks}
597
+ onChange={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; {
598
+ <span class="cstat-no" title="statement not covered" > setOpacity(e.target.value);</span>
599
+ }}
600
+ /&gt;
601
+ &lt;Typography paddingTop={4}&gt;Stroke:&lt;/Typography&gt;
602
+ &lt;Slider
603
+ value={lineWidth}
604
+ aria-label="Default"
605
+ max={10}
606
+ min={0}
607
+ step={1}
608
+ marks={widthMarks}
609
+ onChange={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; {
610
+ <span class="cstat-no" title="statement not covered" > setLineWidth(e.target.value);</span>
611
+ }}
612
+ /&gt;
613
+ &lt;/Stack&gt;
614
+ &lt;/Sidebar&gt;
697
615
  &nbsp;
698
- const point = <span class="cstat-no" title="statement not covered" >createStep(x, y, z, x2, y2);</span>
699
- <span class="cstat-no" title="statement not covered" > points.push(point);</span>
700
- }
701
- }
702
- });
703
- &nbsp;
704
- const newData = <span class="cstat-no" title="statement not covered" >dataSource.getEmptyFeatureCollection();</span>
705
- <span class="cstat-no" title="statement not covered" > newData.features = points;</span>
706
- &nbsp;
707
- <span class="cstat-no" title="statement not covered" > mapRef.current.getSource(sourceName.current)?.setData(newData);</span>
708
- }, [dataSource.data, createStep, dataSource, props.elevationFactor, mapContext]);
709
- &nbsp;
710
- return &lt;&gt;&lt;/&gt;;
711
- };
712
- &nbsp;
713
- MlSpatialElevationProfile.defaultProps = {
714
- elevationFactor: 1,
715
- };
716
- &nbsp;
717
- MlSpatialElevationProfile.propTypes = {
718
- /**
719
- * Id of the target MapLibre instance in mapContext
720
- */
721
- mapId: PropTypes.string,
722
- /**
723
- * Prefix of the component id this component uses when adding elements to the MapLibreGl-instance
724
- */
725
- idPrefix: PropTypes.string,
726
- /**
727
- * Number describes the factor of the height of the elevation
728
- */
729
- elevationFactor: PropTypes.number,
730
- /**
731
- * The layerId of an existing layer this layer should be rendered visually beneath
732
- * https://maplibre.org/maplibre-gl-js-docs/api/map/#map#addlayer - see "beforeId" property
733
- */
734
- insertBeforeLayer: PropTypes.string,
616
+ &lt;MlGeoJsonLayer
617
+ geojson={storyGeoJson}
618
+ layerId={'Linestring'}
619
+ type="line"
620
+ defaultPaintOverrides={{
621
+ line: {
622
+ 'line-color': color,
623
+ 'line-opacity': opacity,
624
+ 'line-width': lineWidth,
625
+ },
626
+ }}
627
+ /&gt;
628
+ &lt;/&gt;
629
+ );
735
630
  };
736
631
  &nbsp;
737
- export default MlSpatialElevationProfile;
632
+ export default LineStyler;
738
633
  &nbsp;</pre></td></tr></table></pre>
739
634
 
740
635
  <div class='push'></div><!-- for sticky footer -->
@@ -742,16 +637,16 @@ export default MlSpatialElevationProfile;
742
637
  <div class='footer quiet pad2 space-top1 center small'>
743
638
  Code coverage generated by
744
639
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
745
- at Sat Nov 26 2022 10:32:12 GMT+0000 (Coordinated Universal Time)
640
+ at 2023-01-15T17:55:43.336Z
746
641
  </div>
747
- <script src="../../../prettify.js"></script>
642
+ <script src="../../../../prettify.js"></script>
748
643
  <script>
749
644
  window.onload = function () {
750
645
  prettyPrint();
751
646
  };
752
647
  </script>
753
- <script src="../../../sorter.js"></script>
754
- <script src="../../../block-navigation.js"></script>
648
+ <script src="../../../../sorter.js"></script>
649
+ <script src="../../../../block-navigation.js"></script>
755
650
  </body>
756
651
  </html>
757
652