@mapcomponents/react-maplibre 0.1.57 → 0.1.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/.eslintignore +11 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/check-formatting.yml +46 -0
  4. package/.prettierignore +11 -0
  5. package/.prettierrc.json +6 -0
  6. package/CHANGELOG.md +13 -0
  7. package/coverage/clover.xml +229 -77
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +65 -20
  10. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +83 -83
  11. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +66 -66
  13. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +30 -30
  15. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +202 -0
  17. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +116 -0
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +99 -99
  19. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +66 -66
  21. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +221 -221
  23. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +308 -308
  25. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +497 -497
  26. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +85 -85
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +469 -0
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +116 -0
  31. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +140 -140
  32. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +37 -37
  34. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +179 -179
  36. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +113 -113
  38. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  39. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +181 -181
  40. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +58 -58
  41. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  43. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +108 -108
  44. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +39 -39
  46. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +183 -183
  48. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +163 -163
  50. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +50 -50
  52. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +30 -30
  53. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +83 -83
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  56. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +204 -204
  57. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  58. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +180 -180
  59. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  60. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +163 -163
  61. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  62. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +136 -136
  63. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  64. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +53 -53
  65. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +123 -123
  67. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +35 -35
  69. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +155 -155
  71. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  72. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +255 -255
  73. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  74. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +66 -66
  75. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  76. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +48 -48
  77. package/coverage/lcov-report/src/contexts/index.html +1 -1
  78. package/coverage/lcov-report/src/hooks/exportMap/index.html +131 -0
  79. package/coverage/lcov-report/src/hooks/exportMap/index.ts.html +175 -0
  80. package/coverage/lcov-report/src/hooks/exportMap/lib.ts.html +646 -0
  81. package/coverage/lcov-report/src/hooks/index.html +48 -18
  82. package/coverage/lcov-report/src/hooks/useLayer.ts.html +230 -188
  83. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +232 -0
  84. package/coverage/lcov-report/src/hooks/useMap.ts.html +72 -69
  85. package/coverage/lcov-report/src/hooks/useMapState.ts.html +145 -145
  86. package/coverage/lcov-report/src/hooks/useSource.ts.html +337 -0
  87. package/coverage/lcov-report/src/hooks/useWms.js.html +72 -72
  88. package/coverage/lcov-report/src/index.html +1 -1
  89. package/coverage/lcov-report/src/index.ts.html +11 -2
  90. package/coverage/lcov.info +448 -151
  91. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +24 -0
  92. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +13 -0
  93. package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +21 -0
  94. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +10 -0
  95. package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +13 -0
  96. package/dist/components/MlCreatePdfForm/lib/pdf.templates.d.ts +11 -0
  97. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  98. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +22 -0
  99. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +10 -0
  100. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +1 -1
  101. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +2 -2
  102. package/dist/decorators/MapContextDecoratorHooks.d.ts +2 -0
  103. package/dist/hooks/exportMap/index.d.ts +11 -0
  104. package/dist/hooks/exportMap/lib.d.ts +36 -0
  105. package/dist/hooks/useLayer.d.ts +6 -5
  106. package/dist/hooks/useLayerEvent.d.ts +2 -0
  107. package/dist/hooks/useMap.d.ts +1 -1
  108. package/dist/hooks/useMapState.stories.d.ts +2 -2
  109. package/dist/hooks/useSource.d.ts +17 -0
  110. package/dist/hooks/useSources.stories.d.ts +13 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.esm.js +250 -64
  113. package/dist/index.esm.js.map +1 -1
  114. package/eslintErrorTest.js +10 -0
  115. package/package.json +7 -1
  116. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  117. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  118. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  119. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  120. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  122. package/src/components/MlBasicComponent.js +25 -25
  123. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  124. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  125. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  127. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  128. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  130. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  131. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  132. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  136. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  139. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  140. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  143. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  144. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  145. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  146. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  147. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  148. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  149. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  150. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  151. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  152. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  153. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  154. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  155. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  156. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  157. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  158. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  159. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  160. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  161. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  162. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  163. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  164. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  165. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  166. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  167. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  168. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  169. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  172. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  173. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  174. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  175. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  176. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  177. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  178. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  179. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  180. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  181. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  184. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  185. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  186. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  190. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  193. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  194. package/src/components/MlLayer/MlLayer.test.js +86 -86
  195. package/src/components/MlLayer/MlLayer.tsx +36 -36
  196. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  199. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  202. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  204. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  205. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  206. package/src/components/MlMarker/MlMarker.tsx +119 -119
  207. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  208. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  209. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  212. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  213. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  214. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  215. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  216. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  217. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  218. package/src/components/MlScaleReference/MlScaleReference.stories.js +27 -27
  219. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  220. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  221. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  224. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  227. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  228. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  231. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  232. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  234. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  237. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  239. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  240. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  241. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  242. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  243. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  244. package/src/contexts/MapComponentsProvider.test.js +229 -229
  245. package/src/contexts/MapContext.tsx +65 -65
  246. package/src/contexts/SimpleDataProvider.js +47 -47
  247. package/src/contexts/SimpleDataProvider.test.js +29 -29
  248. package/src/custom.d.tsx +14 -14
  249. package/src/decorators/MapContextDecorator.js +22 -22
  250. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  251. package/src/decorators/MultiMapContextDecorator.js +63 -63
  252. package/src/decorators/NoNavToolsDecorator.js +17 -17
  253. package/src/decorators/ThemeWrapper.jsx +1 -1
  254. package/src/hooks/assets/pointWG.json +13 -0
  255. package/src/hooks/exportMap/index.ts +30 -0
  256. package/src/hooks/exportMap/lib.ts +187 -0
  257. package/src/hooks/useLayer.test.js +188 -188
  258. package/src/hooks/useLayer.ts +194 -180
  259. package/src/hooks/useLayerEvent.js +49 -0
  260. package/src/hooks/useMap.ts +67 -66
  261. package/src/hooks/useMapState.stories.js +78 -78
  262. package/src/hooks/useMapState.ts +161 -161
  263. package/src/hooks/useSource.ts +84 -0
  264. package/src/hooks/useSources.stories.js +232 -0
  265. package/src/hooks/useWms.js +71 -71
  266. package/src/index.ts +3 -0
  267. package/src/setupTests.js +86 -86
  268. package/src/ui_components/ImageLoader.js +62 -62
  269. package/src/ui_components/Legend.js +34 -34
  270. package/src/ui_components/LoadingOverlay.js +29 -29
  271. package/src/ui_components/LoadingOverlayContext.js +68 -68
  272. package/src/ui_components/Sidebar.js +80 -80
  273. package/src/ui_components/Tooltip.js +9 -9
  274. package/src/ui_components/TopToolbar.js +23 -23
  275. package/src/util/layerRemovalTest.js +111 -111
  276. package/src/util/sourceRemovalTest.js +103 -103
@@ -718,41 +718,41 @@ import MapLibreGlWrapper from "../MapLibreMap/lib/MapLibreGlWrapper";
718
718
   
719
719
  var originShift = <span class="cstat-no" title="statement not covered" >(2 * Math.PI * 6378137) / 2.0;</span>
720
720
  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>
725
- <span class="cstat-no" title="statement not covered" > y = (y * originShift) / 180.0;</span>
726
- <span class="cstat-no" title="statement not covered" > if (accuracy.enable) {</span>
727
- <span class="cstat-no" title="statement not covered" > x = Number(x.toFixed(accuracy.decimal));</span>
728
- <span class="cstat-no" title="statement not covered" > y = Number(y.toFixed(accuracy.decimal));</span>
729
- }
730
- <span class="cstat-no" title="statement not covered" > return [x, y];</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>
725
+ <span class="cstat-no" title="statement not covered" > y = (y * originShift) / 180.0;</span>
726
+ <span class="cstat-no" title="statement not covered" > if (accuracy.enable) {</span>
727
+ <span class="cstat-no" title="statement not covered" > x = Number(x.toFixed(accuracy.decimal));</span>
728
+ <span class="cstat-no" title="statement not covered" > y = Number(y.toFixed(accuracy.decimal));</span>
729
+ }
730
+ <span class="cstat-no" title="statement not covered" > return [x, y];</span>
731
731
  };
732
732
  &nbsp;
733
733
  interface MlWmsLoaderProps {
734
- /**
735
- * WMS URL
736
- */
737
- url: string;
738
- /**
739
- * Id of the target MapLibre instance in mapContext
740
- */
741
- mapId: string;
742
- /**
743
- * URL parameters that will be used in the getCapabilities request
744
- */
745
- urlParameters: object;
746
- /**
747
- * URL parameters that will be added when requesting WMS capabilities
748
- */
749
- wmsUrlParameters: object;
750
- /**
751
- * URL parameters that will be added when requesting tiles
752
- */
753
- layerUrlParameters: object;
754
- lngLat: LngLat;
755
- idPrefix: string;
734
+ /**
735
+ * WMS URL
736
+ */
737
+ url: string;
738
+ /**
739
+ * Id of the target MapLibre instance in mapContext
740
+ */
741
+ mapId: string;
742
+ /**
743
+ * URL parameters that will be used in the getCapabilities request
744
+ */
745
+ urlParameters: object;
746
+ /**
747
+ * URL parameters that will be added when requesting WMS capabilities
748
+ */
749
+ wmsUrlParameters: object;
750
+ /**
751
+ * URL parameters that will be added when requesting tiles
752
+ */
753
+ layerUrlParameters: object;
754
+ lngLat: LngLat;
755
+ idPrefix: string;
756
756
  }
757
757
  &nbsp;
758
758
  /**
@@ -764,253 +764,253 @@ interface MlWmsLoaderProps {
764
764
  * @component
765
765
  */
766
766
  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
- // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
768
- 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,
771
- urlParameters: props.urlParameters,
772
- });
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
- };
767
+ // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
768
+ 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,
771
+ urlParameters: props.urlParameters,
772
+ });
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
782
  &nbsp;
783
- const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
784
- 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>
783
+ const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
784
+ 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>
787
787
  &nbsp;
788
- const [featureInfoLngLat, setFeatureInfoLngLat] = <span class="cstat-no" title="statement not covered" >useState&lt;{lng:number,lat:number} | undefined&gt;();</span>
789
- const [featureInfoContent, setFeatureInfoContent] = <span class="cstat-no" title="statement not covered" >useState&lt;string | undefined&gt;(undefined);</span>
788
+ const [featureInfoLngLat, setFeatureInfoLngLat] = <span class="cstat-no" title="statement not covered" >useState&lt;{lng:number,lat:number} | undefined&gt;();</span>
789
+ const [featureInfoContent, setFeatureInfoContent] = <span class="cstat-no" title="statement not covered" >useState&lt;string | undefined&gt;(undefined);</span>
790
790
  &nbsp;
791
- <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>
791
+ <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>
793
793
  &nbsp;
794
- <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
795
- // This is the cleanup function, it is called when this react component is removed from react-dom
796
- // try to remove anything this component has added to the MapLibre-gl instance
797
- // e.g.: remove the layer
798
- // mapContext.getMap(props.mapId).removeLayer(layerRef.current);
799
- // check for the existence of map.style before calling getLayer or getSource
794
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
795
+ // This is the cleanup function, it is called when this react component is removed from react-dom
796
+ // try to remove anything this component has added to the MapLibre-gl instance
797
+ // e.g.: remove the layer
798
+ // mapContext.getMap(props.mapId).removeLayer(layerRef.current);
799
+ // check for the existence of map.style before calling getLayer or getSource
800
800
  &nbsp;
801
- <span class="cstat-no" title="statement not covered" > if (mapRef.current) {</span>
802
- <span class="cstat-no" title="statement not covered" > mapRef.current.cleanup(_componentId);</span>
803
- <span class="cstat-no" title="statement not covered" > mapRef.current = undefined;</span>
804
- }
805
- <span class="cstat-no" title="statement not covered" > initializedRef.current = false;</span>
806
- };
807
- }, []);
801
+ <span class="cstat-no" title="statement not covered" > if (mapRef.current) {</span>
802
+ <span class="cstat-no" title="statement not covered" > mapRef.current.cleanup(_componentId);</span>
803
+ <span class="cstat-no" title="statement not covered" > mapRef.current = undefined;</span>
804
+ }
805
+ <span class="cstat-no" title="statement not covered" > initializedRef.current = false;</span>
806
+ };
807
+ }, []);
808
808
  &nbsp;
809
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
810
- <span class="cstat-no" title="statement not covered" > if (!initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
809
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
810
+ <span class="cstat-no" title="statement not covered" > if (!initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
811
811
  &nbsp;
812
- <span class="cstat-no" title="statement not covered" > setUrl(props.url);</span>
813
- }, [props.url]);
812
+ <span class="cstat-no" title="statement not covered" > setUrl(props.url);</span>
813
+ }, [props.url]);
814
814
  &nbsp;
815
- const getFeatureInfo = <span class="cstat-no" title="statement not covered" >useCallback(</span>
816
- <span class="fstat-no" title="function not covered" > (e</span>v) =&gt; {
817
- <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
818
- <span class="cstat-no" title="statement not covered" > setFeatureInfoLngLat(undefined);</span>
819
- <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",
815
+ const getFeatureInfo = <span class="cstat-no" title="statement not covered" >useCallback(</span>
816
+ <span class="fstat-no" title="function not covered" > (e</span>v) =&gt; {
817
+ <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
818
+ <span class="cstat-no" title="statement not covered" > setFeatureInfoLngLat(undefined);</span>
819
+ <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",
826
826
  &nbsp;
827
- BBOX: bbox.join(","),
828
- SERVICE: "WMS",
829
- INFO_FORMAT:
830
- capabilities?.Capability?.Request?.GetFeatureInfo.Format.indexOf("text/html") !== -1
831
- ? "text/html"
832
- : "text/plain",
833
- FEATURE_COUNT: "10",
834
- 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
- )
838
- .filter(<span class="fstat-no" title="function not covered" >(n</span>) =&gt; <span class="cstat-no" title="statement not covered" >n)</span>,
839
- 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
- )
843
- .filter(<span class="fstat-no" title="function not covered" >(n</span>) =&gt; <span class="cstat-no" title="statement not covered" >n)</span>,
844
- WIDTH: mapRef.current?.map._container.clientWidth,
845
- HEIGHT: mapRef.current?.map._container.clientHeight,
846
- srs: "EPSG:3857",
847
- CRS: "EPSG:3857",
848
- version: "1.3.0",
849
- X: ev.point.x,
850
- Y: ev.point.y,
851
- I: ev.point.x,
852
- J: ev.point.y,
853
- buffer: "50",
854
- };
827
+ BBOX: bbox.join(","),
828
+ SERVICE: "WMS",
829
+ INFO_FORMAT:
830
+ capabilities?.Capability?.Request?.GetFeatureInfo.Format.indexOf("text/html") !== -1
831
+ ? "text/html"
832
+ : "text/plain",
833
+ FEATURE_COUNT: "10",
834
+ 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
+ )
838
+ .filter(<span class="fstat-no" title="function not covered" >(n</span>) =&gt; <span class="cstat-no" title="statement not covered" >n)</span>,
839
+ 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
+ )
843
+ .filter(<span class="fstat-no" title="function not covered" >(n</span>) =&gt; <span class="cstat-no" title="statement not covered" >n)</span>,
844
+ WIDTH: mapRef.current?.map._container.clientWidth,
845
+ HEIGHT: mapRef.current?.map._container.clientHeight,
846
+ srs: "EPSG:3857",
847
+ CRS: "EPSG:3857",
848
+ version: "1.3.0",
849
+ X: ev.point.x,
850
+ Y: ev.point.y,
851
+ I: ev.point.x,
852
+ J: ev.point.y,
853
+ buffer: "50",
854
+ };
855
855
  &nbsp;
856
- let _gfiUrl: string | undefined = <span class="cstat-no" title="statement not covered" >getFeatureInfoUrl;</span>
857
- 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>
860
- <span class="cstat-no" title="statement not covered" > _gfiUrl = _gfiUrlParts[0];</span>
861
- }
862
- let _urlParamsFromUrl = <span class="cstat-no" title="statement not covered" >new URLSearchParams(_gfiUrlParts?.[1]);</span>
856
+ let _gfiUrl: string | undefined = <span class="cstat-no" title="statement not covered" >getFeatureInfoUrl;</span>
857
+ 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>
860
+ <span class="cstat-no" title="statement not covered" > _gfiUrl = _gfiUrlParts[0];</span>
861
+ }
862
+ let _urlParamsFromUrl = <span class="cstat-no" title="statement not covered" >new URLSearchParams(_gfiUrlParts?.[1]);</span>
863
863
  &nbsp;
864
- let urlParamsObj = <span class="cstat-no" title="statement not covered" >{</span>
865
- ...Object.fromEntries(_urlParamsFromUrl),
866
- ..._getFeatureInfoUrlParams,
867
- };
868
- // create URLSearchParams object to assemble the URL Parameters
869
- // "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>
864
+ let urlParamsObj = <span class="cstat-no" title="statement not covered" >{</span>
865
+ ...Object.fromEntries(_urlParamsFromUrl),
866
+ ..._getFeatureInfoUrlParams,
867
+ };
868
+ // create URLSearchParams object to assemble the URL Parameters
869
+ // "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>
871
871
  &nbsp;
872
- <span class="cstat-no" title="statement not covered" > fetch(props.url + "?" + urlParams.toString())</span>
873
- .then(<span class="fstat-no" title="function not covered" >(r</span>es) =&gt; {
874
- <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>
876
- }
877
- <span class="cstat-no" title="statement not covered" > return res.text();</span>
878
- })
879
- .then(<span class="fstat-no" title="function not covered" >(t</span>ext) =&gt; {
880
- <span class="cstat-no" title="statement not covered" > setFeatureInfoLngLat(ev.lngLat);</span>
881
- <span class="cstat-no" title="statement not covered" > setFeatureInfoContent(text);</span>
882
- })
883
- .catch(<span class="fstat-no" title="function not covered" >(e</span>rror) =&gt; <span class="cstat-no" title="statement not covered" >console.log(error))</span>;
884
- },
885
- [capabilities, getFeatureInfoUrl]
886
- );
872
+ <span class="cstat-no" title="statement not covered" > fetch(props.url + "?" + urlParams.toString())</span>
873
+ .then(<span class="fstat-no" title="function not covered" >(r</span>es) =&gt; {
874
+ <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>
876
+ }
877
+ <span class="cstat-no" title="statement not covered" > return res.text();</span>
878
+ })
879
+ .then(<span class="fstat-no" title="function not covered" >(t</span>ext) =&gt; {
880
+ <span class="cstat-no" title="statement not covered" > setFeatureInfoLngLat(ev.lngLat);</span>
881
+ <span class="cstat-no" title="statement not covered" > setFeatureInfoContent(text);</span>
882
+ })
883
+ .catch(<span class="fstat-no" title="function not covered" >(e</span>rror) =&gt; <span class="cstat-no" title="statement not covered" >console.log(error))</span>;
884
+ },
885
+ [capabilities, getFeatureInfoUrl]
886
+ );
887
887
  &nbsp;
888
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
889
- <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
888
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
889
+ <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
890
890
  &nbsp;
891
- const _getFeatureInfo = <span class="cstat-no" title="statement not covered" >getFeatureInfo;</span>
891
+ const _getFeatureInfo = <span class="cstat-no" title="statement not covered" >getFeatureInfo;</span>
892
892
  &nbsp;
893
- <span class="cstat-no" title="statement not covered" > mapRef.current.on("click", _getFeatureInfo, componentId.current);</span>
894
- <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>
896
- };
897
- }, [getFeatureInfo]);
893
+ <span class="cstat-no" title="statement not covered" > mapRef.current.on("click", _getFeatureInfo, componentId.current);</span>
894
+ <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>
896
+ };
897
+ }, [getFeatureInfo]);
898
898
  &nbsp;
899
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
900
- <span class="cstat-no" title="statement not covered" > if (!capabilities?.Service) <span class="cstat-no" title="statement not covered" >return;</span></span>
899
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
900
+ <span class="cstat-no" title="statement not covered" > if (!capabilities?.Service) <span class="cstat-no" title="statement not covered" >return;</span></span>
901
901
  &nbsp;
902
- <span class="cstat-no" title="statement not covered" > if (capabilities?.Capability?.Layer?.SRS?.indexOf?.("EPSG:3857") === -1) {</span>
903
- <span class="cstat-no" title="statement not covered" > console.log(</span>
904
- "MlWmsLoader (" + capabilities.Service.Title + "): No WGS 84/Pseudo-Mercator support"
905
- );
906
- } else {
907
- <span class="cstat-no" title="statement not covered" > console.log(</span>
908
- "MlWmsLoader (" + capabilities.Service.Title + "): WGS 84/Pseudo-Mercator supported"
909
- );
902
+ <span class="cstat-no" title="statement not covered" > if (capabilities?.Capability?.Layer?.SRS?.indexOf?.("EPSG:3857") === -1) {</span>
903
+ <span class="cstat-no" title="statement not covered" > console.log(</span>
904
+ "MlWmsLoader (" + capabilities.Service.Title + "): No WGS 84/Pseudo-Mercator support"
905
+ );
906
+ } else {
907
+ <span class="cstat-no" title="statement not covered" > console.log(</span>
908
+ "MlWmsLoader (" + capabilities.Service.Title + "): WGS 84/Pseudo-Mercator supported"
909
+ );
910
910
  &nbsp;
911
- 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>
917
- <span class="cstat-no" title="statement not covered" > _LatLonBoundingBox = layer.EX_GeographicBoundingBox;</span>
918
- }
919
- }
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
- );
911
+ 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>
917
+ <span class="cstat-no" title="statement not covered" > _LatLonBoundingBox = layer.EX_GeographicBoundingBox;</span>
918
+ }
919
+ }
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
+ );
924
924
  &nbsp;
925
- // zoom to extent of first layer
926
- <span class="cstat-no" title="statement not covered" > if (mapRef.current &amp;&amp; _LatLonBoundingBox.length &gt; 3) {</span>
927
- <span class="cstat-no" title="statement not covered" > mapRef.current.map.fitBounds([</span>
928
- [_LatLonBoundingBox[0], _LatLonBoundingBox[1]],
929
- [_LatLonBoundingBox[2], _LatLonBoundingBox[3]],
930
- ]);
931
- }
932
- }
933
- }, [capabilities]);
925
+ // zoom to extent of first layer
926
+ <span class="cstat-no" title="statement not covered" > if (mapRef.current &amp;&amp; _LatLonBoundingBox.length &gt; 3) {</span>
927
+ <span class="cstat-no" title="statement not covered" > mapRef.current.map.fitBounds([</span>
928
+ [_LatLonBoundingBox[0], _LatLonBoundingBox[1]],
929
+ [_LatLonBoundingBox[2], _LatLonBoundingBox[3]],
930
+ ]);
931
+ }
932
+ }
933
+ }, [capabilities]);
934
934
  &nbsp;
935
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
936
- <span class="cstat-no" title="statement not covered" > if (!mapContext?.mapExists?.(props.mapId) || initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
937
- // the MapLibre-gl instance (mapContext.map) is accessible here
938
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
939
- <span class="cstat-no" title="statement not covered" > initializedRef.current = true;</span>
940
- <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
- <span class="cstat-no" title="statement not covered" > setUrl(props.url);</span>
943
- }, [mapContext.mapIds, mapContext, props.mapId, props.url]);
935
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
936
+ <span class="cstat-no" title="statement not covered" > if (!mapContext?.mapExists?.(props.mapId) || initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
937
+ // the MapLibre-gl instance (mapContext.map) is accessible here
938
+ // initialize the layer and add it to the MapLibre-gl instance or do something else with it
939
+ <span class="cstat-no" title="statement not covered" > initializedRef.current = true;</span>
940
+ <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
+ <span class="cstat-no" title="statement not covered" > setUrl(props.url);</span>
943
+ }, [mapContext.mapIds, mapContext, props.mapId, props.url]);
944
944
  &nbsp;
945
- <span class="cstat-no" title="statement not covered" > return (</span>
946
- &lt;&gt;
947
- {error &amp;&amp; &lt;p&gt;{error}&lt;/p&gt;}
948
- &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
- &lt;List dense key="layers"&gt;
962
- {wmsUrl &amp;&amp;
963
- layers?.map?.(<span class="fstat-no" title="function not covered" >(l</span>ayer: typeof layerType, idx) =&gt; {
964
- <span class="cstat-no" title="statement not covered" > return layer?.Name ? (</span>
965
- &lt;ListItem
966
- key={layer.Name + idx}
967
- secondaryAction={
968
- &lt;IconButton
969
- edge="end"
970
- aria-label="toggle visibility"
971
- 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>
973
- <span class="cstat-no" title="statement not covered" > _layers[idx].visible = !_layers[idx].visible;</span>
974
- <span class="cstat-no" title="statement not covered" > setLayers([..._layers]);</span>
975
- }}
976
- &gt;
977
- {layers[idx].visible ? &lt;VisibilityIcon /&gt; : &lt;VisibilityOffIcon /&gt;}
978
- &lt;/IconButton&gt;
979
- }
980
- &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;
989
- &lt;/ListItem&gt;
990
- ) : (
991
- &lt;&gt;&lt;/&gt;
992
- );
993
- })}
994
- &lt;/List&gt;
995
- &lt;p key="description" style={{ fontSize: ".7em" }}&gt;
996
- {capabilities?.Capability?.Layer?.Abstract}
997
- &lt;/p&gt;
945
+ <span class="cstat-no" title="statement not covered" > return (</span>
946
+ &lt;&gt;
947
+ {error &amp;&amp; &lt;p&gt;{error}&lt;/p&gt;}
948
+ &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
+ &lt;List dense key="layers"&gt;
962
+ {wmsUrl &amp;&amp;
963
+ layers?.map?.(<span class="fstat-no" title="function not covered" >(l</span>ayer: typeof layerType, idx) =&gt; {
964
+ <span class="cstat-no" title="statement not covered" > return layer?.Name ? (</span>
965
+ &lt;ListItem
966
+ key={layer.Name + idx}
967
+ secondaryAction={
968
+ &lt;IconButton
969
+ edge="end"
970
+ aria-label="toggle visibility"
971
+ 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>
973
+ <span class="cstat-no" title="statement not covered" > _layers[idx].visible = !_layers[idx].visible;</span>
974
+ <span class="cstat-no" title="statement not covered" > setLayers([..._layers]);</span>
975
+ }}
976
+ &gt;
977
+ {layers[idx].visible ? &lt;VisibilityIcon /&gt; : &lt;VisibilityOffIcon /&gt;}
978
+ &lt;/IconButton&gt;
979
+ }
980
+ &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;
989
+ &lt;/ListItem&gt;
990
+ ) : (
991
+ &lt;&gt;&lt;/&gt;
992
+ );
993
+ })}
994
+ &lt;/List&gt;
995
+ &lt;p key="description" style={{ fontSize: ".7em" }}&gt;
996
+ {capabilities?.Capability?.Layer?.Abstract}
997
+ &lt;/p&gt;
998
998
  &nbsp;
999
- {featureInfoLngLat &amp;&amp; &lt;MlMarker {...featureInfoLngLat} content={featureInfoContent} /&gt;}
1000
- &lt;/&gt;
1001
- );
999
+ {featureInfoLngLat &amp;&amp; &lt;MlMarker {...featureInfoLngLat} content={featureInfoContent} /&gt;}
1000
+ &lt;/&gt;
1001
+ );
1002
1002
  };
1003
1003
  &nbsp;
1004
1004
  <span class="cstat-no" title="statement not covered" >MlWmsLoader.defaultProps = {</span>
1005
- url: "",
1006
- urlParameters: {
1007
- SERVICE: "WMS",
1008
- VERSION: "1.3.0",
1009
- REQUEST: "GetCapabilities",
1010
- },
1011
- wmsUrlParameters: {
1012
- TRANSPARENT: "TRUE",
1013
- },
1005
+ url: "",
1006
+ urlParameters: {
1007
+ SERVICE: "WMS",
1008
+ VERSION: "1.3.0",
1009
+ REQUEST: "GetCapabilities",
1010
+ },
1011
+ wmsUrlParameters: {
1012
+ TRANSPARENT: "TRUE",
1013
+ },
1014
1014
  };
1015
1015
  &nbsp;
1016
1016
  export default MlWmsLoader;
@@ -1021,7 +1021,7 @@ export default MlWmsLoader;
1021
1021
  <div class='footer quiet pad2 space-top1 center small'>
1022
1022
  Code coverage generated by
1023
1023
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1024
- at Tue Aug 30 2022 13:27:18 GMT+0000 (Coordinated Universal Time)
1024
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
1025
1025
  </div>
1026
1026
  <script src="../../../prettify.js"></script>
1027
1027
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Tue Aug 30 2022 13:27:18 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>