@mapcomponents/react-maplibre 0.1.63 → 0.1.65

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 (316) hide show
  1. package/.editorconfig +1 -1
  2. package/.eslintrc.js +9 -6
  3. package/.github/workflows/check-catalogue-metadata-schema.yml +19 -0
  4. package/CHANGELOG.md +37 -2
  5. package/coverage/clover.xml +688 -1032
  6. package/coverage/coverage-final.json +25 -21
  7. package/coverage/lcov-report/index.html +127 -82
  8. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +24 -24
  9. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  10. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +5 -5
  11. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +2 -2
  13. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +1 -1
  15. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +2 -5
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  19. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  21. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +1 -1
  22. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  23. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +40 -19
  24. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  25. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html +1 -1
  26. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +112 -0
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +115 -0
  29. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +34 -4
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +2 -2
  31. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +394 -0
  33. package/coverage/lcov-report/src/components/{MlGPXViewer → MlGpxViewer}/index.html +23 -38
  34. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +63 -285
  35. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +21 -21
  36. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +58 -76
  39. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  40. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +58 -61
  41. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +11 -11
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  43. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +30 -21
  44. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  47. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  48. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
  49. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  50. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  51. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  52. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +1 -1
  53. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  55. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
  56. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  58. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  59. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  60. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  61. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +1 -1
  62. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +1 -1
  63. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +1 -1
  64. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +1 -1
  65. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlSketchTool/MlSketchTool.tsx.html +2 -2
  67. package/coverage/lcov-report/src/components/MlSketchTool/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.html +514 -0
  69. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +21 -21
  70. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  71. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  72. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +20 -206
  73. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  74. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  75. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  76. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +10 -7
  77. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +5 -5
  78. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  79. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  80. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +111 -57
  81. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +19 -19
  82. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +201 -144
  83. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +9 -9
  84. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +23 -23
  85. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  86. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  87. package/coverage/lcov-report/src/contexts/index.html +1 -1
  88. package/coverage/lcov-report/src/hooks/index.html +50 -50
  89. package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +1 -1
  90. package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +1 -1
  91. package/coverage/lcov-report/src/hooks/useExportMap/index.html +1 -1
  92. package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +1 -1
  93. package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +1 -1
  94. package/coverage/lcov-report/src/hooks/useGpx/index.html +116 -0
  95. package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +295 -0
  96. package/coverage/lcov-report/src/hooks/useLayer.ts.html +132 -66
  97. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +1 -1
  98. package/coverage/lcov-report/src/hooks/useLayerFilter/index.html +116 -0
  99. package/coverage/lcov-report/src/hooks/useLayerFilter/useLayerFilter.ts.html +184 -0
  100. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +116 -0
  101. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +331 -0
  102. package/coverage/lcov-report/src/hooks/useMap.ts.html +47 -47
  103. package/coverage/lcov-report/src/hooks/useMapState.ts.html +54 -54
  104. package/coverage/lcov-report/src/hooks/useSource.ts.html +57 -57
  105. package/coverage/lcov-report/src/hooks/{useWms.js.html → useWms.ts.html} +54 -15
  106. package/coverage/lcov-report/src/index.html +1 -1
  107. package/coverage/lcov-report/src/index.ts.html +6 -6
  108. package/coverage/lcov.info +1320 -1960
  109. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +51 -25
  110. package/dist/components/MlCenterPosition/MlCenterPosition.d.ts +3 -2
  111. package/dist/components/MlCenterPosition/MlCenterPosition.stories.d.ts +35 -16
  112. package/dist/components/MlComponentTemplate/MlComponentTemplate.d.ts +1 -1
  113. package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +12 -9
  114. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.d.ts +1 -1
  115. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +12 -9
  116. package/dist/components/MlGPXViewer/util/GeoJsonContext.d.ts +1 -1
  117. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.d.ts +22 -11
  118. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +4 -95
  119. package/dist/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.d.ts +3 -0
  120. package/dist/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.d.ts +3 -0
  121. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +1 -1
  122. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +12 -9
  123. package/dist/components/MlGpxViewer/MlGpxViewer.d.ts +30 -0
  124. package/dist/components/MlGpxViewer/MlGpxViewer.stories.d.ts +17 -0
  125. package/dist/components/MlGpxViewer/MlGpxViewer.test.d.ts +1 -0
  126. package/dist/components/MlGpxViewer/util/GeoJsonContext.d.ts +10 -0
  127. package/dist/components/MlGpxViewer/util/GeoJsonProvider.d.ts +4 -0
  128. package/dist/components/MlGpxViewer/util/MetadataDrawer.d.ts +7 -0
  129. package/dist/components/MlGpxViewer/util/MlGpxDemoLoader.d.ts +10 -0
  130. package/dist/components/MlGpxViewer/util/MlGpxViewerInstructions.d.ts +3 -0
  131. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.d.ts +11 -2
  132. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +7 -9
  133. package/dist/components/MlLayerMagnify/MlLayerMagnify.d.ts +8 -2
  134. package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +13 -9
  135. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +13 -3
  136. package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +12 -10
  137. package/dist/components/MlSketchTool/MlSketchTool.d.ts +1 -1
  138. package/dist/components/MlSketchTool/MlSketchTool.stories.d.ts +13 -9
  139. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.d.ts +33 -14
  140. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +18 -15
  141. package/dist/components/MlSpatialElevationProfile/util/getElevationData.d.ts +14 -0
  142. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.stories.d.ts +20 -15
  143. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.d.ts +3 -67
  144. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.d.ts +20 -12
  145. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +7 -4
  146. package/dist/components/MlWmsLoader/MlWmsLoader.d.ts +17 -10
  147. package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +23 -12
  148. package/dist/components/MlWmsLoader/utils/MlWmsLoaderInstructions.d.ts +3 -0
  149. package/dist/components/MlWmsLoader/utils/WMSLinks.d.ts +6 -0
  150. package/dist/decorators/ThemeWrapper.d.ts +3 -1
  151. package/dist/hooks/useGpx/lib/gpxConverter.d.ts +11 -0
  152. package/dist/hooks/useGpx/useGpx.d.ts +26 -0
  153. package/dist/hooks/useGpx/useGpx.stories.d.ts +10 -0
  154. package/dist/hooks/useLayer.d.ts +13 -7
  155. package/dist/hooks/useLayerFilter/useLayerFilter.d.ts +8 -0
  156. package/dist/hooks/useLayerFilter/useLayerFilter.stories.d.ts +9 -0
  157. package/dist/hooks/useLayerHoverPopup/useLayerHoverPopup.d.ts +23 -0
  158. package/dist/hooks/useLayerHoverPopup/useLayerHoverPopup.stories.d.ts +10 -0
  159. package/dist/hooks/useMap.d.ts +1 -1
  160. package/dist/hooks/useMap.test.d.ts +1 -0
  161. package/dist/hooks/useSource.d.ts +2 -2
  162. package/dist/hooks/useWms.d.ts +24 -16
  163. package/dist/index.d.ts +5 -5
  164. package/dist/index.esm.js +9310 -14006
  165. package/dist/index.esm.js.map +1 -1
  166. package/dist/setupTests.d.ts +6 -5
  167. package/dist/ui_components/Dropzone.d.ts +5 -0
  168. package/dist/ui_components/ImageLoader.d.ts +8 -1
  169. package/dist/ui_components/LoadingOverlayContext.d.ts +11 -11
  170. package/dist/ui_components/Sidebar.d.ts +7 -6
  171. package/dist/ui_components/Tooltip.d.ts +1 -1
  172. package/dist/ui_components/TopToolbar.d.ts +4 -3
  173. package/dist/ui_components/UploadButton.d.ts +6 -0
  174. package/dist/util/BubbleForInstructions.d.ts +2 -0
  175. package/dist/util/Instructions.d.ts +13 -0
  176. package/package.json +195 -191
  177. package/{src/components/MlImageMarkerLayer → public}/assets/wg-marker.png +0 -0
  178. package/scripts/build-catalogue-meta.js +35 -11
  179. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +230 -188
  180. package/src/components/MlCenterPosition/MlCenterPosition.meta_.json +1 -2
  181. package/src/components/MlCenterPosition/MlCenterPosition.stories.tsx +20 -0
  182. package/src/components/MlCenterPosition/MlCenterPosition.tsx +4 -4
  183. package/src/components/MlComponentTemplate/MlComponentTemplate.meta_.json +1 -2
  184. package/src/components/MlComponentTemplate/{MlComponentTemplate.stories.js → MlComponentTemplate.stories.tsx} +2 -2
  185. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +1 -1
  186. package/src/components/MlCreatePdfButton/MlCreatePdfButton.meta_.json +1 -2
  187. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.stories.js → MlCreatePdfButton.stories.tsx} +1 -1
  188. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +1 -1
  189. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +1 -2
  190. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +25 -2
  191. package/src/components/MlFeatureEditor/MlFeatureEditor.meta.json +1 -2
  192. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +0 -1
  193. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.meta.json +1 -2
  194. package/src/components/MlFollowGps/MlFollowGps.meta.json +1 -2
  195. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.meta.json +1 -2
  196. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.tsx +89 -0
  197. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +24 -17
  198. package/src/components/MlGeoJsonLayer/assets/earthquake.json +109937 -0
  199. package/src/components/MlGeoJsonLayer/assets/wg_locations.json +65 -0
  200. package/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx +9 -0
  201. package/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx +10 -0
  202. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +1 -2
  203. package/src/components/MlGeojsonLayerWithSource/{MlGeojsonLayerWithSource.stories.js → MlGeojsonLayerWithSource.stories.tsx} +0 -0
  204. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +1 -1
  205. package/src/components/{MlGPXViewer/MlGPXViewer.doc.de.md → MlGpxViewer/MlGpxViewer.doc.de.md} +0 -0
  206. package/src/components/{MlGPXViewer/MlGPXViewer.doc.en.md → MlGpxViewer/MlGpxViewer.doc.en.md} +0 -0
  207. package/src/components/{MlGPXViewer/MlGPXViewer.meta.json → MlGpxViewer/MlGpxViewer.meta.json} +2 -3
  208. package/src/components/MlGpxViewer/MlGpxViewer.stories.tsx +109 -0
  209. package/src/components/MlGpxViewer/MlGpxViewer.test.js +53 -0
  210. package/src/components/MlGpxViewer/MlGpxViewer.tsx +103 -0
  211. package/src/components/{MlGPXViewer → MlGpxViewer}/util/GeoJsonContext.ts +0 -0
  212. package/src/components/{MlGPXViewer → MlGpxViewer}/util/GeoJsonProvider.tsx +0 -0
  213. package/src/components/MlGpxViewer/util/MetadataDrawer.tsx +38 -0
  214. package/src/components/MlGpxViewer/util/MlGpxDemoLoader.tsx +128 -0
  215. package/src/components/MlGpxViewer/util/MlGpxViewerInstructions.tsx +71 -0
  216. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.meta_.json +1 -2
  217. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.tsx +41 -0
  218. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +27 -8
  219. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +41 -115
  220. package/src/components/MlLayer/MlLayer.meta_.json +1 -2
  221. package/src/components/MlLayerMagnify/MlLayerMagnify.meta.json +1 -2
  222. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.tsx +44 -0
  223. package/src/components/MlLayerMagnify/{MlLayerMagnify.test.js → MlLayerMagnify.test.tsx} +15 -18
  224. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +55 -61
  225. package/src/components/MlLayerSwipe/MlLayerSwipe.meta.json +1 -2
  226. package/src/components/MlLayerSwipe/{MlLayerSwipe.stories.js → MlLayerSwipe.stories.tsx} +9 -11
  227. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +47 -48
  228. package/src/components/MlLayerSwitcher/MlLayerSwitcher.meta_.json +1 -2
  229. package/src/components/MlLayerSwitcher/components/LayerBox.js +22 -19
  230. package/src/components/MlMarker/MlMarker.meta_.json +1 -2
  231. package/src/components/MlMeasureTool/MlMeasureTool.meta.json +1 -2
  232. package/src/components/MlNavigationCompass/MlNavigationCompass.meta.json +1 -2
  233. package/src/components/MlNavigationTools/MlNavigationTools.meta.json +1 -2
  234. package/src/components/MlScaleReference/MlScaleReference.meta.json +1 -2
  235. package/src/components/MlShareMapState/MlShareMapState.meta_.json +1 -2
  236. package/src/components/MlSketchTool/MlSketchTool.meta.json +1 -2
  237. package/src/components/MlSketchTool/{MlSketchTool.stories.js → MlSketchTool.stories.tsx} +1 -1
  238. package/src/components/MlSketchTool/MlSketchTool.tsx +1 -1
  239. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.meta.json +1 -2
  240. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.tsx +121 -0
  241. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +30 -1
  242. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx +143 -0
  243. package/src/components/MlSpatialElevationProfile/util/getElevationData.tsx +103 -0
  244. package/src/components/MlThreeJsLayer/MlThreeJsLayer.meta.json +1 -2
  245. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.tsx +37 -0
  246. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.meta.json +1 -2
  247. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +2 -3
  248. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +17 -79
  249. package/src/components/MlUseMapDebugger/MlUseMapDebugger.meta_.json +1 -2
  250. package/src/components/MlVectorTileLayer/MlVectorTileLayer.meta.json +1 -2
  251. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +3 -2
  252. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.meta_.json +1 -2
  253. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.tsx +22 -0
  254. package/src/components/MlWmsLayer/MlWmsLayer.tsx +59 -41
  255. package/src/components/MlWmsLoader/MlWmsLoader.meta.json +1 -2
  256. package/src/components/MlWmsLoader/MlWmsLoader.stories.tsx +89 -0
  257. package/src/components/MlWmsLoader/MlWmsLoader.tsx +141 -122
  258. package/src/components/MlWmsLoader/utils/MlWmsLoaderInstructions.tsx +50 -0
  259. package/src/components/MlWmsLoader/utils/WMSLinks.tsx +128 -0
  260. package/src/decorators/MapContextDecorator.js +1 -1
  261. package/src/decorators/MapContextDecoratorHooks.js +1 -1
  262. package/src/decorators/ThemeWrapper.tsx +9 -0
  263. package/src/hooks/useCameraFollowPath/useCameraFollowPath.meta.json +1 -2
  264. package/src/{components/MlGPXViewer → hooks/useGpx/lib}/gpxConverter.js +1 -0
  265. package/src/hooks/useGpx/useGpx.doc.de.md +3 -0
  266. package/src/hooks/useGpx/useGpx.meta_.json +15 -0
  267. package/src/{components/MlLayer/MlLayer.stories.js → hooks/useGpx/useGpx.stories.js} +4 -4
  268. package/src/hooks/useGpx/useGpx.tsx +70 -0
  269. package/src/hooks/useLayer.ts +32 -10
  270. package/src/hooks/useLayerFilter/useLayerFilter.doc.de.md +3 -0
  271. package/src/hooks/useLayerFilter/useLayerFilter.meta_.json +14 -0
  272. package/src/hooks/useLayerFilter/useLayerFilter.stories.tsx +40 -0
  273. package/src/hooks/useLayerFilter/useLayerFilter.ts +33 -0
  274. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.doc.de.md +3 -0
  275. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.meta_.json +15 -0
  276. package/src/{components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js → hooks/useLayerHoverPopup/useLayerHoverPopup.stories.js} +4 -6
  277. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx +82 -0
  278. package/src/hooks/useMap.test.tsx +48 -0
  279. package/src/hooks/useMap.ts +8 -8
  280. package/src/hooks/useSource.ts +4 -4
  281. package/src/hooks/{useWms.js → useWms.ts} +24 -11
  282. package/src/index.ts +5 -5
  283. package/src/setupTests.js +18 -15
  284. package/src/ui_components/Dropzone.tsx +104 -0
  285. package/src/ui_components/{ImageLoader.js → ImageLoader.tsx} +30 -25
  286. package/src/ui_components/{LoadingOverlayContext.js → LoadingOverlayContext.tsx} +12 -15
  287. package/src/ui_components/Sidebar.tsx +12 -10
  288. package/src/ui_components/Tooltip.tsx +17 -0
  289. package/src/ui_components/TopToolbar.tsx +5 -3
  290. package/src/ui_components/UploadButton.tsx +57 -0
  291. package/src/util/BubbleForInstructions.js +46 -0
  292. package/src/util/Instructions.tsx +60 -0
  293. package/tsconfig.json +1 -1
  294. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +0 -1222
  295. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +0 -1645
  296. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +0 -757
  297. package/dist/components/MlGPXViewer/util/MlGPXViewerInstructions.d.ts +0 -1
  298. package/dist/components/MlGPXViewer/util/SampleLayer.d.ts +0 -0
  299. package/dist/components/MlGPXViewer/util/demoViewer.d.ts +0 -5
  300. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +0 -21
  301. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +0 -91
  302. package/src/components/MlGPXViewer/MlGPXViewer.test.js +0 -28
  303. package/src/components/MlGPXViewer/MlGPXViewer.tsx +0 -379
  304. package/src/components/MlGPXViewer/util/MlGPXViewerInstructions.js +0 -145
  305. package/src/components/MlGPXViewer/util/SampleLayer.js +0 -2
  306. package/src/components/MlGPXViewer/util/demoViewer.js +0 -254
  307. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +0 -45
  308. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +0 -41
  309. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +0 -224
  310. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +0 -57
  311. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +0 -39
  312. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +0 -47
  313. package/src/decorators/ThemeWrapper.jsx +0 -9
  314. package/src/ui_components/Legend.js +0 -44
  315. package/src/ui_components/LoadingOverlay.js +0 -41
  316. package/src/ui_components/Tooltip.js +0 -21
@@ -25,28 +25,28 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/96</span>
28
+ <span class='fraction'>0/108</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/57</span>
35
+ <span class='fraction'>0/62</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/21</span>
42
+ <span class='fraction'>0/30</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/91</span>
49
+ <span class='fraction'>0/102</span>
50
50
  </div>
51
51
 
52
52
 
@@ -380,7 +380,27 @@
380
380
  <a name='L315'></a><a href='#L315'>315</a>
381
381
  <a name='L316'></a><a href='#L316'>316</a>
382
382
  <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
404
  <span class="cline-any cline-neutral">&nbsp;</span>
385
405
  <span class="cline-any cline-neutral">&nbsp;</span>
386
406
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -446,6 +466,8 @@
446
466
  <span class="cline-any cline-neutral">&nbsp;</span>
447
467
  <span class="cline-any cline-neutral">&nbsp;</span>
448
468
  <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
471
  <span class="cline-any cline-no">&nbsp;</span>
450
472
  <span class="cline-any cline-neutral">&nbsp;</span>
451
473
  <span class="cline-any cline-no">&nbsp;</span>
@@ -453,22 +475,14 @@
453
475
  <span class="cline-any cline-neutral">&nbsp;</span>
454
476
  <span class="cline-any cline-neutral">&nbsp;</span>
455
477
  <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
478
  <span class="cline-any cline-no">&nbsp;</span>
467
479
  <span class="cline-any cline-no">&nbsp;</span>
468
480
  <span class="cline-any cline-no">&nbsp;</span>
469
481
  <span class="cline-any cline-no">&nbsp;</span>
470
482
  <span class="cline-any cline-neutral">&nbsp;</span>
471
483
  <span class="cline-any cline-no">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
486
  <span class="cline-any cline-no">&nbsp;</span>
473
487
  <span class="cline-any cline-neutral">&nbsp;</span>
474
488
  <span class="cline-any cline-no">&nbsp;</span>
@@ -496,6 +510,14 @@
496
510
  <span class="cline-any cline-neutral">&nbsp;</span>
497
511
  <span class="cline-any cline-neutral">&nbsp;</span>
498
512
  <span class="cline-any cline-no">&nbsp;</span>
513
+ <span class="cline-any cline-no">&nbsp;</span>
514
+ <span class="cline-any cline-no">&nbsp;</span>
515
+ <span class="cline-any cline-no">&nbsp;</span>
516
+ <span class="cline-any cline-no">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-no">&nbsp;</span>
499
521
  <span class="cline-any cline-neutral">&nbsp;</span>
500
522
  <span class="cline-any cline-no">&nbsp;</span>
501
523
  <span class="cline-any cline-no">&nbsp;</span>
@@ -505,7 +527,6 @@
505
527
  <span class="cline-any cline-no">&nbsp;</span>
506
528
  <span class="cline-any cline-no">&nbsp;</span>
507
529
  <span class="cline-any cline-no">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
530
  <span class="cline-any cline-neutral">&nbsp;</span>
510
531
  <span class="cline-any cline-neutral">&nbsp;</span>
511
532
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -517,12 +538,9 @@
517
538
  <span class="cline-any cline-neutral">&nbsp;</span>
518
539
  <span class="cline-any cline-neutral">&nbsp;</span>
519
540
  <span class="cline-any cline-no">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
541
  <span class="cline-any cline-no">&nbsp;</span>
522
542
  <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
543
  <span class="cline-any cline-no">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
544
  <span class="cline-any cline-no">&nbsp;</span>
527
545
  <span class="cline-any cline-neutral">&nbsp;</span>
528
546
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -592,52 +610,63 @@
592
610
  <span class="cline-any cline-neutral">&nbsp;</span>
593
611
  <span class="cline-any cline-neutral">&nbsp;</span>
594
612
  <span class="cline-any cline-no">&nbsp;</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
614
  <span class="cline-any cline-neutral">&nbsp;</span>
597
615
  <span class="cline-any cline-no">&nbsp;</span>
598
616
  <span class="cline-any cline-no">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
599
618
  <span class="cline-any cline-no">&nbsp;</span>
600
619
  <span class="cline-any cline-no">&nbsp;</span>
601
620
  <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-no">&nbsp;</span>
604
621
  <span class="cline-any cline-no">&nbsp;</span>
605
622
  <span class="cline-any cline-neutral">&nbsp;</span>
606
623
  <span class="cline-any cline-neutral">&nbsp;</span>
607
624
  <span class="cline-any cline-neutral">&nbsp;</span>
608
625
  <span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
629
  <span class="cline-any cline-no">&nbsp;</span>
610
630
  <span class="cline-any cline-no">&nbsp;</span>
611
631
  <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-no">&nbsp;</span>
633
+ <span class="cline-any cline-no">&nbsp;</span>
612
634
  <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-no">&nbsp;</span>
613
636
  <span class="cline-any cline-neutral">&nbsp;</span>
614
637
  <span class="cline-any cline-neutral">&nbsp;</span>
615
638
  <span class="cline-any cline-neutral">&nbsp;</span>
616
639
  <span class="cline-any cline-neutral">&nbsp;</span>
617
640
  <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-no">&nbsp;</span>
619
- <span class="cline-any cline-no">&nbsp;</span>
620
641
  <span class="cline-any cline-neutral">&nbsp;</span>
621
642
  <span class="cline-any cline-neutral">&nbsp;</span>
622
643
  <span class="cline-any cline-no">&nbsp;</span>
623
644
  <span class="cline-any cline-no">&nbsp;</span>
624
- <span class="cline-any cline-no">&nbsp;</span>
645
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
625
648
  <span class="cline-any cline-no">&nbsp;</span>
626
649
  <span class="cline-any cline-neutral">&nbsp;</span>
627
650
  <span class="cline-any cline-neutral">&nbsp;</span>
628
651
  <span class="cline-any cline-no">&nbsp;</span>
652
+ <span class="cline-any cline-no">&nbsp;</span>
629
653
  <span class="cline-any cline-neutral">&nbsp;</span>
630
654
  <span class="cline-any cline-neutral">&nbsp;</span>
631
655
  <span class="cline-any cline-neutral">&nbsp;</span>
632
656
  <span class="cline-any cline-neutral">&nbsp;</span>
633
657
  <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-no">&nbsp;</span>
635
658
  <span class="cline-any cline-neutral">&nbsp;</span>
636
659
  <span class="cline-any cline-neutral">&nbsp;</span>
660
+ <span class="cline-any cline-no">&nbsp;</span>
661
+ <span class="cline-any cline-no">&nbsp;</span>
637
662
  <span class="cline-any cline-neutral">&nbsp;</span>
638
663
  <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-no">&nbsp;</span>
665
+ <span class="cline-any cline-no">&nbsp;</span>
666
+ <span class="cline-any cline-no">&nbsp;</span>
639
667
  <span class="cline-any cline-neutral">&nbsp;</span>
640
668
  <span class="cline-any cline-neutral">&nbsp;</span>
669
+ <span class="cline-any cline-no">&nbsp;</span>
641
670
  <span class="cline-any cline-neutral">&nbsp;</span>
642
671
  <span class="cline-any cline-neutral">&nbsp;</span>
643
672
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -676,6 +705,15 @@
676
705
  <span class="cline-any cline-neutral">&nbsp;</span>
677
706
  <span class="cline-any cline-neutral">&nbsp;</span>
678
707
  <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-no">&nbsp;</span>
709
+ <span class="cline-any cline-no">&nbsp;</span>
710
+ <span class="cline-any cline-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-neutral">&nbsp;</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
716
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
717
  <span class="cline-any cline-neutral">&nbsp;</span>
680
718
  <span class="cline-any cline-neutral">&nbsp;</span>
681
719
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -697,31 +735,32 @@
697
735
  <span class="cline-any cline-neutral">&nbsp;</span>
698
736
  <span class="cline-any cline-neutral">&nbsp;</span>
699
737
  <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useContext, useCallback, useState } from "react";
738
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useContext, useCallback, useState, useMemo } from 'react';
701
739
  &nbsp;
702
- import MapContext from "../../contexts/MapContext";
703
- import { v4 as uuidv4 } from "uuid";
740
+ import MapContext from '../../contexts/MapContext';
741
+ import { v4 as uuidv4 } from 'uuid';
704
742
  &nbsp;
705
- import MlWmsLayer from "../MlWmsLayer/MlWmsLayer";
706
- import MlMarker from "../MlMarker/MlMarker";
707
- import MlLayer from "../MlLayer/MlLayer";
708
- import useWms from "../../hooks/useWms";
743
+ import MlWmsLayer from '../MlWmsLayer/MlWmsLayer';
744
+ import MlMarker from '../MlMarker/MlMarker';
745
+ import useWms, { useWmsProps } from '../../hooks/useWms';
709
746
  &nbsp;
710
- import VisibilityIcon from "@mui/icons-material/Visibility";
711
- import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
712
- import List from "@mui/material/List";
713
- import ListItem from "@mui/material/ListItem";
714
- import ListItemText from "@mui/material/ListItemText";
715
- import IconButton from "@mui/material/IconButton";
716
- import { LngLat } from "maplibre-gl";
717
- import MapLibreGlWrapper from "../MapLibreMap/lib/MapLibreGlWrapper";
747
+ import VisibilityIcon from '@mui/icons-material/Visibility';
748
+ import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
749
+ import List from '@mui/material/List';
750
+ import ListItem from '@mui/material/ListItem';
751
+ import ListItemText from '@mui/material/ListItemText';
752
+ import IconButton from '@mui/material/IconButton';
753
+ import { LngLat } from 'maplibre-gl';
754
+ import MapLibreGlWrapper from '../MapLibreMap/lib/MapLibreGlWrapper';
755
+ import { Layer2, Layer3 } from 'wms-capabilities';
756
+ import { useWmsReturnType } from '../../hooks/useWms';
718
757
  &nbsp;
719
- var originShift = <span class="cstat-no" title="statement not covered" >(2 * Math.PI * 6378137) / 2.0;</span>
758
+ const originShift = <span class="cstat-no" title="statement not covered" >(2 * Math.PI * 6378137) / 2.0;</span>
720
759
  const lngLatToMeters = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >fu</span>nction (lnglat: LngLat, accuracy = <span class="branch-0 cbranch-no" title="branch not covered" >{ enable: true, decimal: 1 })</span> {</span>
721
- var lng = <span class="cstat-no" title="statement not covered" >lnglat.lng;</span>
722
- var lat = <span class="cstat-no" title="statement not covered" >lnglat.lat;</span>
723
- var x = <span class="cstat-no" title="statement not covered" >(lng * originShift) / 180.0;</span>
724
- var y = <span class="cstat-no" title="statement not covered" >Math.log(Math.tan(((90 + lat) * Math.PI) / 360.0)) / (Math.PI / 180.0);</span>
760
+ const lng = <span class="cstat-no" title="statement not covered" >lnglat.lng;</span>
761
+ const lat = <span class="cstat-no" title="statement not covered" >lnglat.lat;</span>
762
+ let x = <span class="cstat-no" title="statement not covered" >(lng * originShift) / 180.0;</span>
763
+ let y = <span class="cstat-no" title="statement not covered" >Math.log(Math.tan(((90 + lat) * Math.PI) / 360.0)) / (Math.PI / 180.0);</span>
725
764
  <span class="cstat-no" title="statement not covered" > y = (y * originShift) / 180.0;</span>
726
765
  <span class="cstat-no" title="statement not covered" > if (accuracy.enable) {</span>
727
766
  <span class="cstat-no" title="statement not covered" > x = Number(x.toFixed(accuracy.decimal));</span>
@@ -730,7 +769,7 @@ const lngLatToMeters = <span class="cstat-no" title="statement not covered" ><sp
730
769
  <span class="cstat-no" title="statement not covered" > return [x, y];</span>
731
770
  };
732
771
  &nbsp;
733
- interface MlWmsLoaderProps {
772
+ export interface MlWmsLoaderProps {
734
773
  /**
735
774
  * WMS URL
736
775
  */
@@ -742,19 +781,21 @@ interface MlWmsLoaderProps {
742
781
  /**
743
782
  * URL parameters that will be used in the getCapabilities request
744
783
  */
745
- urlParameters: object;
784
+ urlParameters?: useWmsProps['urlParameters'];
746
785
  /**
747
786
  * URL parameters that will be added when requesting WMS capabilities
748
787
  */
749
- wmsUrlParameters: object;
750
- /**
751
- * URL parameters that will be added when requesting tiles
752
- */
753
- layerUrlParameters: object;
754
- lngLat: LngLat;
755
- idPrefix: string;
788
+ wmsUrlParameters?: { [key: string]: string };
789
+ lngLat?: LngLat;
790
+ idPrefix?: string;
756
791
  }
757
792
  &nbsp;
793
+ export type LayerType = {
794
+ visible: boolean;
795
+ Name: string;
796
+ Attribution?: { Title: string };
797
+ } &amp; Omit&lt;Layer2, 'Layer'&gt; &amp;
798
+ Partial&lt;Pick&lt;Layer2, 'Layer'&gt;&gt;;
758
799
  /**
759
800
  * Loads a WMS getCapabilities xml document and adds a MlWmsLayer component for each layer that is
760
801
  * offered by the WMS.
@@ -766,30 +807,22 @@ interface MlWmsLoaderProps {
766
807
  const MlWmsLoader = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops: MlWmsLoaderProps) =&gt; {</span>
767
808
  // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
768
809
  const mapContext: MapContextType = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
769
- const { capabilities, error, setUrl, getFeatureInfoUrl, wmsUrl }: any = <span class="cstat-no" title="statement not covered" >useWms({</span>
770
- url: undefined,
810
+ const { capabilities, error, setUrl, getFeatureInfoUrl, wmsUrl }: useWmsReturnType = <span class="cstat-no" title="statement not covered" >useWms({</span>
771
811
  urlParameters: props.urlParameters,
772
812
  });
773
- let layerType: {
774
- visible: boolean;
775
- queryable: boolean;
776
- Name: string;
777
- Title: string;
778
- LatLonBoundingBox: Array&lt;number&gt;;
779
- EX_GeographicBoundingBox: Array&lt;number&gt;;
780
- Abstract: any;
781
- };
782
813
  &nbsp;
783
814
  const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
784
815
  const mapRef = <span class="cstat-no" title="statement not covered" >useRef&lt;MapLibreGlWrapper&gt;();</span>
785
- const componentId = <span class="cstat-no" title="statement not covered" >useRef((props.idPrefix ? props.idPrefix : "MlWmsLoader-") + uuidv4());</span>
786
- const [layers, setLayers] = <span class="cstat-no" title="statement not covered" >useState&lt;Array&lt;typeof layerType&gt;&gt;([]);</span>
816
+ const componentId = <span class="cstat-no" title="statement not covered" >useRef((props.idPrefix ? props.idPrefix : 'MlWmsLoader-') + uuidv4());</span>
817
+ const [layers, setLayers] = <span class="cstat-no" title="statement not covered" >useState&lt;Array&lt;LayerType&gt;&gt;([]);</span>
787
818
  &nbsp;
788
- const [featureInfoLngLat, setFeatureInfoLngLat] = <span class="cstat-no" title="statement not covered" >useState&lt;{lng:number,lat:number} | undefined&gt;();</span>
819
+ const [featureInfoLngLat, setFeatureInfoLngLat] = <span class="cstat-no" title="statement not covered" >useState&lt;</span>
820
+ { lng: number; lat: number } | undefined
821
+ &gt;();
789
822
  const [featureInfoContent, setFeatureInfoContent] = <span class="cstat-no" title="statement not covered" >useState&lt;string | undefined&gt;(undefined);</span>
790
823
  &nbsp;
791
824
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
792
- let _componentId = <span class="cstat-no" title="statement not covered" >componentId.current;</span>
825
+ const _componentId = <span class="cstat-no" title="statement not covered" >componentId.current;</span>
793
826
  &nbsp;
794
827
  <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
795
828
  // This is the cleanup function, it is called when this react component is removed from react-dom
@@ -811,68 +844,72 @@ const MlWmsLoader = <span class="cstat-no" title="statement not covered" ><span
811
844
  &nbsp;
812
845
  <span class="cstat-no" title="statement not covered" > setUrl(props.url);</span>
813
846
  }, [props.url]);
847
+ &nbsp;
848
+ const attribution = <span class="cstat-no" title="statement not covered" >useMemo(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
849
+ <span class="cstat-no" title="statement not covered" > return layers</span>
850
+ .filter(<span class="fstat-no" title="function not covered" >(e</span>l) =&gt; <span class="cstat-no" title="statement not covered" >el.visible &amp;&amp; el?.Attribution?.Title)</span>
851
+ .map(<span class="fstat-no" title="function not covered" >(e</span>l) =&gt; <span class="cstat-no" title="statement not covered" >el?.Attribution?.Title)</span>
852
+ .filter(<span class="fstat-no" title="function not covered" >(v</span>alue, index, self) =&gt; <span class="cstat-no" title="statement not covered" >self.indexOf(value) === index)</span>
853
+ .join(' ');
854
+ }, [layers]);
814
855
  &nbsp;
815
856
  const getFeatureInfo = <span class="cstat-no" title="statement not covered" >useCallback(</span>
816
857
  <span class="fstat-no" title="function not covered" > (e</span>v) =&gt; {
817
858
  <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
818
859
  <span class="cstat-no" title="statement not covered" > setFeatureInfoLngLat(undefined);</span>
819
860
  <span class="cstat-no" title="statement not covered" > setFeatureInfoContent(undefined);</span>
820
- let _bounds = <span class="cstat-no" title="statement not covered" >mapRef.current.map.getBounds();</span>
821
- let _sw = <span class="cstat-no" title="statement not covered" >lngLatToMeters(_bounds._sw);</span>
822
- let _ne = <span class="cstat-no" title="statement not covered" >lngLatToMeters(_bounds._ne);</span>
823
- let bbox = <span class="cstat-no" title="statement not covered" >[_sw[0], _sw[1], _ne[0], _ne[1]];</span>
824
- let _getFeatureInfoUrlParams = <span class="cstat-no" title="statement not covered" >{</span>
825
- REQUEST: "GetFeatureInfo",
861
+ const _bounds = <span class="cstat-no" title="statement not covered" >mapRef.current.map.getBounds();</span>
862
+ const _sw = <span class="cstat-no" title="statement not covered" >lngLatToMeters(_bounds._sw);</span>
863
+ const _ne = <span class="cstat-no" title="statement not covered" >lngLatToMeters(_bounds._ne);</span>
864
+ const bbox = <span class="cstat-no" title="statement not covered" >[_sw[0], _sw[1], _ne[0], _ne[1]];</span>
865
+ const _getFeatureInfoUrlParams = <span class="cstat-no" title="statement not covered" >{</span>
866
+ REQUEST: 'GetFeatureInfo',
826
867
  &nbsp;
827
- BBOX: bbox.join(","),
828
- SERVICE: "WMS",
868
+ BBOX: bbox.join(','),
869
+ SERVICE: 'WMS',
829
870
  INFO_FORMAT:
830
- capabilities?.Capability?.Request?.GetFeatureInfo.Format.indexOf("text/html") !== -1
831
- ? "text/html"
832
- : "text/plain",
833
- FEATURE_COUNT: "10",
871
+ capabilities?.Capability?.Request?.GetFeatureInfo.Format.indexOf('text/html') !== -1
872
+ ? 'text/html'
873
+ : 'text/plain',
874
+ FEATURE_COUNT: '10',
834
875
  LAYERS: layers
835
- .map(<span class="fstat-no" title="function not covered" >(l</span>ayer: typeof layerType) =&gt;
836
- <span class="cstat-no" title="statement not covered" > layer.visible &amp;&amp; layer.queryable ? layer.Name : undefined</span>
837
- )
876
+ .map(<span class="fstat-no" title="function not covered" >(l</span>ayer: LayerType) =&gt; (<span class="cstat-no" title="statement not covered" >layer.visible &amp;&amp; layer.queryable ? layer.Title : undefined)</span>)
838
877
  .filter(<span class="fstat-no" title="function not covered" >(n</span>) =&gt; <span class="cstat-no" title="statement not covered" >n)</span>,
839
878
  QUERY_LAYERS: layers
840
- .map(<span class="fstat-no" title="function not covered" >(l</span>ayer: typeof layerType) =&gt;
841
- <span class="cstat-no" title="statement not covered" > layer.visible &amp;&amp; layer.queryable ? layer.Name : undefined</span>
842
- )
879
+ .map(<span class="fstat-no" title="function not covered" >(l</span>ayer: LayerType) =&gt; (<span class="cstat-no" title="statement not covered" >layer.visible &amp;&amp; layer.queryable ? layer.Title : undefined)</span>)
843
880
  .filter(<span class="fstat-no" title="function not covered" >(n</span>) =&gt; <span class="cstat-no" title="statement not covered" >n)</span>,
844
881
  WIDTH: mapRef.current?.map._container.clientWidth,
845
882
  HEIGHT: mapRef.current?.map._container.clientHeight,
846
- srs: "EPSG:3857",
847
- CRS: "EPSG:3857",
848
- version: "1.3.0",
883
+ srs: 'EPSG:3857',
884
+ CRS: 'EPSG:3857',
885
+ version: '1.3.0',
849
886
  X: ev.point.x,
850
887
  Y: ev.point.y,
851
888
  I: ev.point.x,
852
889
  J: ev.point.y,
853
- buffer: "50",
890
+ buffer: '50',
854
891
  };
855
892
  &nbsp;
856
893
  let _gfiUrl: string | undefined = <span class="cstat-no" title="statement not covered" >getFeatureInfoUrl;</span>
857
894
  let _gfiUrlParts;
858
- <span class="cstat-no" title="statement not covered" > if (_gfiUrl?.indexOf?.("?") !== -1) {</span>
859
- <span class="cstat-no" title="statement not covered" > _gfiUrlParts = props.url.split("?");</span>
895
+ <span class="cstat-no" title="statement not covered" > if (_gfiUrl?.indexOf?.('?') !== -1) {</span>
896
+ <span class="cstat-no" title="statement not covered" > _gfiUrlParts = props.url.split('?');</span>
860
897
  <span class="cstat-no" title="statement not covered" > _gfiUrl = _gfiUrlParts[0];</span>
861
898
  }
862
- let _urlParamsFromUrl = <span class="cstat-no" title="statement not covered" >new URLSearchParams(_gfiUrlParts?.[1]);</span>
899
+ const _urlParamsFromUrl = <span class="cstat-no" title="statement not covered" >new URLSearchParams(_gfiUrlParts?.[1]);</span>
863
900
  &nbsp;
864
- let urlParamsObj = <span class="cstat-no" title="statement not covered" >{</span>
901
+ const urlParamsObj = <span class="cstat-no" title="statement not covered" >{</span>
865
902
  ...Object.fromEntries(_urlParamsFromUrl),
866
903
  ..._getFeatureInfoUrlParams,
867
904
  };
868
905
  // create URLSearchParams object to assemble the URL Parameters
869
906
  // "as any" can be removed once the URLSearchParams ts spec is fixed
870
- let urlParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams(urlParamsObj as any);</span>
907
+ const urlParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams(urlParamsObj as unknown as Record&lt;string, string&gt;);</span>
871
908
  &nbsp;
872
- <span class="cstat-no" title="statement not covered" > fetch(props.url + "?" + urlParams.toString())</span>
909
+ <span class="cstat-no" title="statement not covered" > fetch(props.url + '?' + urlParams.toString())</span>
873
910
  .then(<span class="fstat-no" title="function not covered" >(r</span>es) =&gt; {
874
911
  <span class="cstat-no" title="statement not covered" > if (!res.ok) {</span>
875
- <span class="cstat-no" title="statement not covered" > throw new Error("FeatureInfo could not be fetched");</span>
912
+ <span class="cstat-no" title="statement not covered" > throw new Error('FeatureInfo could not be fetched');</span>
876
913
  }
877
914
  <span class="cstat-no" title="statement not covered" > return res.text();</span>
878
915
  })
@@ -890,37 +927,61 @@ const MlWmsLoader = <span class="cstat-no" title="statement not covered" ><span
890
927
  &nbsp;
891
928
  const _getFeatureInfo = <span class="cstat-no" title="statement not covered" >getFeatureInfo;</span>
892
929
  &nbsp;
893
- <span class="cstat-no" title="statement not covered" > mapRef.current.on("click", _getFeatureInfo, componentId.current);</span>
930
+ <span class="cstat-no" title="statement not covered" > mapRef.current.on('click', _getFeatureInfo, componentId.current);</span>
894
931
  <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
895
- <span class="cstat-no" title="statement not covered" > mapRef.current?.map.off?.("click", _getFeatureInfo);</span>
932
+ <span class="cstat-no" title="statement not covered" > mapRef.current?.map.off?.('click', _getFeatureInfo);</span>
896
933
  };
897
934
  }, [getFeatureInfo]);
898
935
  &nbsp;
899
936
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
900
937
  <span class="cstat-no" title="statement not covered" > if (!capabilities?.Service) <span class="cstat-no" title="statement not covered" >return;</span></span>
901
938
  &nbsp;
902
- <span class="cstat-no" title="statement not covered" > if (capabilities?.Capability?.Layer?.SRS?.indexOf?.("EPSG:3857") === -1) {</span>
939
+ <span class="cstat-no" title="statement not covered" > if (capabilities?.Capability?.Layer?.CRS?.indexOf?.('EPSG:3857') === -1) {</span>
903
940
  <span class="cstat-no" title="statement not covered" > console.log(</span>
904
- "MlWmsLoader (" + capabilities.Service.Title + "): No WGS 84/Pseudo-Mercator support"
941
+ 'MlWmsLoader (' + capabilities.Service.Title + '): No WGS 84/Pseudo-Mercator support'
905
942
  );
906
943
  } else {
907
944
  <span class="cstat-no" title="statement not covered" > console.log(</span>
908
- "MlWmsLoader (" + capabilities.Service.Title + "): WGS 84/Pseudo-Mercator supported"
945
+ 'MlWmsLoader (' + capabilities.Service.Title + '): WGS 84/Pseudo-Mercator supported'
909
946
  );
910
947
  &nbsp;
911
948
  let _LatLonBoundingBox: Array&lt;number&gt; = <span class="cstat-no" title="statement not covered" >[];</span>
912
- <span class="cstat-no" title="statement not covered" > setLayers(</span>
913
- capabilities?.Capability?.Layer?.Layer.map(<span class="fstat-no" title="function not covered" >(l</span>ayer: typeof layerType, idx: number) =&gt; {
914
- <span class="cstat-no" title="statement not covered" > if (idx === 0) {</span>
915
- <span class="cstat-no" title="statement not covered" > _LatLonBoundingBox = layer.LatLonBoundingBox;</span>
916
- <span class="cstat-no" title="statement not covered" > if (!_LatLonBoundingBox) {</span>
949
+ &nbsp;
950
+ // collect aueriable Layer2 layers
951
+ let _layers: LayerType[] = <span class="cstat-no" title="statement not covered" >capabilities?.Capability?.Layer?.Layer.filter(</span>
952
+ <span class="fstat-no" title="function not covered" > (e</span>l) =&gt; <span class="cstat-no" title="statement not covered" >!el.Layer?.length</span>
953
+ ).map(<span class="fstat-no" title="function not covered" >(l</span>ayer: Layer2 &amp; { Name: string }, idx: number) =&gt; {
954
+ <span class="cstat-no" title="statement not covered" > if (idx === 0) {</span>
955
+ <span class="cstat-no" title="statement not covered" > _LatLonBoundingBox = layer.EX_GeographicBoundingBox;</span>
956
+ }
957
+ <span class="cstat-no" title="statement not covered" > return {</span>
958
+ visible: capabilities?.Capability?.Layer?.Layer?.length &gt; 2 ? idx &gt; 1 : true,
959
+ Attribution: { Title: '' },
960
+ ...layer,
961
+ };
962
+ });
963
+ &nbsp;
964
+ // collect aueriable Layer3 layers
965
+ <span class="cstat-no" title="statement not covered" > capabilities?.Capability?.Layer?.Layer.forEach(<span class="fstat-no" title="function not covered" >(e</span>l) =&gt; {</span>
966
+ const tmpLayers = <span class="cstat-no" title="statement not covered" >el?.Layer?.filter(<span class="fstat-no" title="function not covered" >(e</span>l) =&gt; <span class="cstat-no" title="statement not covered" >el.CRS.length)</span>.map(</span>
967
+ <span class="fstat-no" title="function not covered" > (l</span>ayer: Layer3, idx: number) =&gt; {
968
+ <span class="cstat-no" title="statement not covered" > if (idx === 0) {</span>
917
969
  <span class="cstat-no" title="statement not covered" > _LatLonBoundingBox = layer.EX_GeographicBoundingBox;</span>
918
970
  }
971
+ <span class="cstat-no" title="statement not covered" > return {</span>
972
+ visible: false,
973
+ Attribution: { Title: '' },
974
+ ...layer,
975
+ };
919
976
  }
920
- <span class="cstat-no" title="statement not covered" > layer.visible = capabilities?.Capability?.Layer?.Layer?.length &gt; 2 ? idx &gt; 1 : true;</span>
921
- <span class="cstat-no" title="statement not covered" > return layer;</span>
922
- })
923
- );
977
+ );
978
+ &nbsp;
979
+ <span class="cstat-no" title="statement not covered" > if (tmpLayers) {</span>
980
+ <span class="cstat-no" title="statement not covered" > _layers = [..._layers, ...tmpLayers];</span>
981
+ }
982
+ });
983
+ &nbsp;
984
+ <span class="cstat-no" title="statement not covered" > setLayers(_layers);</span>
924
985
  &nbsp;
925
986
  // zoom to extent of first layer
926
987
  <span class="cstat-no" title="statement not covered" > if (mapRef.current &amp;&amp; _LatLonBoundingBox.length &gt; 3) {</span>
@@ -938,7 +999,6 @@ const MlWmsLoader = <span class="cstat-no" title="statement not covered" ><span
938
999
  // initialize the layer and add it to the MapLibre-gl instance or do something else with it
939
1000
  <span class="cstat-no" title="statement not covered" > initializedRef.current = true;</span>
940
1001
  <span class="cstat-no" title="statement not covered" > mapRef.current = mapContext.getMap(props.mapId);</span>
941
- <span class="cstat-no" title="statement not covered" > console.log("set url " + props.url);</span>
942
1002
  <span class="cstat-no" title="statement not covered" > setUrl(props.url);</span>
943
1003
  }, [mapContext.mapIds, mapContext, props.mapId, props.url]);
944
1004
  &nbsp;
@@ -946,21 +1006,9 @@ const MlWmsLoader = <span class="cstat-no" title="statement not covered" ><span
946
1006
  &lt;&gt;
947
1007
  {error &amp;&amp; &lt;p&gt;{error}&lt;/p&gt;}
948
1008
  &lt;h3 key="title"&gt;{capabilities?.Service?.Title}&lt;/h3&gt;
949
- {console.log(componentId.current)}
950
- {capabilities?.Capability?.Layer?.Layer.map(<span class="fstat-no" title="function not covered" >(l</span>ayer: any, idx: number) =&gt; (
951
- <span class="cstat-no" title="statement not covered" > &lt;MlLayer</span>
952
- layerId={"Order-" + componentId.current + "-" + idx}
953
- key={componentId.current + "-" + idx}
954
- {...(idx &gt; 0
955
- ? {
956
- insertBeforeLayer: "Order-" + componentId.current + "-" + (idx - 1),
957
- }
958
- : undefined)}
959
- /&gt;
960
- ))}
961
1009
  &lt;List dense key="layers"&gt;
962
1010
  {wmsUrl &amp;&amp;
963
- layers?.map?.(<span class="fstat-no" title="function not covered" >(l</span>ayer: typeof layerType, idx) =&gt; {
1011
+ layers?.map?.(<span class="fstat-no" title="function not covered" >(l</span>ayer, idx) =&gt; {
964
1012
  <span class="cstat-no" title="statement not covered" > return layer?.Name ? (</span>
965
1013
  &lt;ListItem
966
1014
  key={layer.Name + idx}
@@ -969,7 +1017,7 @@ const MlWmsLoader = <span class="cstat-no" title="statement not covered" ><span
969
1017
  edge="end"
970
1018
  aria-label="toggle visibility"
971
1019
  onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
972
- let _layers: Array&lt;typeof layerType&gt; = <span class="cstat-no" title="statement not covered" >[...layers];</span>
1020
+ const _layers: Array&lt;LayerType&gt; = <span class="cstat-no" title="statement not covered" >[...layers];</span>
973
1021
  <span class="cstat-no" title="statement not covered" > _layers[idx].visible = !_layers[idx].visible;</span>
974
1022
  <span class="cstat-no" title="statement not covered" > setLayers([..._layers]);</span>
975
1023
  }}
@@ -978,22 +1026,31 @@ const MlWmsLoader = <span class="cstat-no" title="statement not covered" ><span
978
1026
  &lt;/IconButton&gt;
979
1027
  }
980
1028
  &gt;
981
- &lt;ListItemText primary={layer?.Title} secondary={layer?.Abstract} /&gt;
982
- &lt;MlWmsLayer
983
- key={layer?.Name + idx}
984
- url={wmsUrl}
985
- urlParameters={{ ...props.wmsUrlParameters, layers: layer?.Name }}
986
- visible={layers[idx].visible}
987
- insertBeforeLayer={"Order-" + componentId.current + "-" + idx}
988
- /&gt;
1029
+ &lt;ListItemText primary={layer?.Title} /&gt;
989
1030
  &lt;/ListItem&gt;
990
1031
  ) : (
991
1032
  &lt;&gt;&lt;/&gt;
992
1033
  );
993
1034
  })}
994
1035
  &lt;/List&gt;
995
- &lt;p key="description" style={{ fontSize: ".7em" }}&gt;
996
- {capabilities?.Capability?.Layer?.Abstract}
1036
+ {wmsUrl &amp;&amp; layers?.length &amp;&amp; (
1037
+ &lt;MlWmsLayer
1038
+ key={componentId.current}
1039
+ url={wmsUrl}
1040
+ attribution={attribution}
1041
+ urlParameters={{
1042
+ ...props.wmsUrlParameters,
1043
+ layers: layers
1044
+ ?.filter?.(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; <span class="cstat-no" title="statement not covered" >layer.visible)</span>
1045
+ .map(<span class="fstat-no" title="function not covered" >(e</span>l) =&gt; <span class="cstat-no" title="statement not covered" >el.Name)</span>
1046
+ .reverse()
1047
+ .join(','),
1048
+ }}
1049
+ /&gt;
1050
+ )}
1051
+ &nbsp;
1052
+ &lt;p key="description" style={{ fontSize: '.7em' }}&gt;
1053
+ {capabilities?.Capability?.Layer?.['Abstract']}
997
1054
  &lt;/p&gt;
998
1055
  &nbsp;
999
1056
  {featureInfoLngLat &amp;&amp; &lt;MlMarker {...featureInfoLngLat} content={featureInfoContent} /&gt;}
@@ -1002,14 +1059,14 @@ const MlWmsLoader = <span class="cstat-no" title="statement not covered" ><span
1002
1059
  };
1003
1060
  &nbsp;
1004
1061
  <span class="cstat-no" title="statement not covered" >MlWmsLoader.defaultProps = {</span>
1005
- url: "",
1062
+ url: '',
1006
1063
  urlParameters: {
1007
- SERVICE: "WMS",
1008
- VERSION: "1.3.0",
1009
- REQUEST: "GetCapabilities",
1064
+ SERVICE: 'WMS',
1065
+ VERSION: '1.3.0',
1066
+ REQUEST: 'GetCapabilities',
1010
1067
  },
1011
1068
  wmsUrlParameters: {
1012
- TRANSPARENT: "TRUE",
1069
+ TRANSPARENT: 'TRUE',
1013
1070
  },
1014
1071
  };
1015
1072
  &nbsp;
@@ -1021,7 +1078,7 @@ export default MlWmsLoader;
1021
1078
  <div class='footer quiet pad2 space-top1 center small'>
1022
1079
  Code coverage generated by
1023
1080
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1024
- at 2022-12-16T12:30:49.297Z
1081
+ at 2023-01-23T12:27:40.277Z
1025
1082
  </div>
1026
1083
  <script src="../../../prettify.js"></script>
1027
1084
  <script>