@mapcomponents/react-maplibre 0.1.56 → 0.1.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/.eslintignore +11 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/check-formatting.yml +46 -0
  4. package/.prettierignore +11 -0
  5. package/.prettierrc.json +6 -0
  6. package/CHANGELOG.md +20 -0
  7. package/coverage/clover.xml +232 -80
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +71 -26
  10. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +83 -83
  11. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +66 -66
  13. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +30 -30
  15. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +202 -0
  17. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +116 -0
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +99 -99
  19. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +66 -66
  21. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +221 -221
  23. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +308 -308
  25. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +497 -497
  26. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +85 -85
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +469 -0
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +116 -0
  31. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +140 -140
  32. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +37 -37
  34. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +179 -179
  36. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +113 -113
  38. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  39. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +181 -181
  40. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +58 -58
  41. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  43. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +108 -108
  44. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +39 -39
  46. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +183 -183
  48. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +163 -163
  50. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +50 -50
  52. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +30 -30
  53. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +89 -89
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +11 -11
  56. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +204 -204
  57. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  58. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +180 -180
  59. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  60. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +163 -163
  61. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  62. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +136 -136
  63. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  64. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +53 -53
  65. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +123 -123
  67. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +35 -35
  69. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +155 -155
  71. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  72. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +255 -255
  73. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  74. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +66 -66
  75. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  76. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +48 -48
  77. package/coverage/lcov-report/src/contexts/index.html +1 -1
  78. package/coverage/lcov-report/src/hooks/exportMap/index.html +131 -0
  79. package/coverage/lcov-report/src/hooks/exportMap/index.ts.html +175 -0
  80. package/coverage/lcov-report/src/hooks/exportMap/lib.ts.html +646 -0
  81. package/coverage/lcov-report/src/hooks/index.html +48 -18
  82. package/coverage/lcov-report/src/hooks/useLayer.ts.html +230 -188
  83. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +232 -0
  84. package/coverage/lcov-report/src/hooks/useMap.ts.html +72 -69
  85. package/coverage/lcov-report/src/hooks/useMapState.ts.html +145 -145
  86. package/coverage/lcov-report/src/hooks/useSource.ts.html +337 -0
  87. package/coverage/lcov-report/src/hooks/useWms.js.html +72 -72
  88. package/coverage/lcov-report/src/index.html +1 -1
  89. package/coverage/lcov-report/src/index.ts.html +14 -2
  90. package/coverage/lcov.info +450 -153
  91. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +24 -0
  92. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +13 -0
  93. package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +21 -0
  94. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +10 -0
  95. package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +13 -0
  96. package/dist/components/MlCreatePdfForm/lib/pdf.templates.d.ts +11 -0
  97. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  98. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +22 -0
  99. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +10 -0
  100. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +1 -1
  101. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +2 -2
  102. package/dist/decorators/MapContextDecoratorHooks.d.ts +2 -0
  103. package/dist/decorators/ThemeWrapper.d.ts +1 -0
  104. package/dist/hooks/exportMap/index.d.ts +11 -0
  105. package/dist/hooks/exportMap/lib.d.ts +36 -0
  106. package/dist/hooks/useLayer.d.ts +6 -5
  107. package/dist/hooks/useLayerEvent.d.ts +2 -0
  108. package/dist/hooks/useMap.d.ts +1 -1
  109. package/dist/hooks/useMapState.stories.d.ts +2 -2
  110. package/dist/hooks/useSource.d.ts +17 -0
  111. package/dist/hooks/useSources.stories.d.ts +13 -0
  112. package/dist/index.d.ts +4 -0
  113. package/dist/index.esm.js +479 -190
  114. package/dist/index.esm.js.map +1 -1
  115. package/eslintErrorTest.js +10 -0
  116. package/package.json +7 -1
  117. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  118. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  119. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  120. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  122. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  123. package/src/components/MlBasicComponent.js +25 -25
  124. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  125. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  127. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  128. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  130. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  131. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  132. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  136. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  139. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  140. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  143. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  144. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  145. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  146. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  147. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  148. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  149. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  150. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  151. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  152. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  153. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  154. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  155. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  156. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  157. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  158. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  159. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  160. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  161. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  162. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  163. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  164. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  165. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  166. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  167. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  168. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  169. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  172. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  173. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  174. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  175. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  176. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  177. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  178. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  179. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  180. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  181. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  184. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  185. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  186. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  190. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  193. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  194. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  195. package/src/components/MlLayer/MlLayer.test.js +86 -86
  196. package/src/components/MlLayer/MlLayer.tsx +36 -36
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  199. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  202. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  204. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  205. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  206. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  207. package/src/components/MlMarker/MlMarker.tsx +119 -119
  208. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  209. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  212. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  213. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  214. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  215. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  216. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  217. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  218. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  219. package/src/components/MlScaleReference/MlScaleReference.stories.js +33 -35
  220. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  221. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  224. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  227. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  228. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  231. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  232. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  234. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  237. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  239. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  240. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  241. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  242. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  243. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  244. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  245. package/src/contexts/MapComponentsProvider.test.js +229 -229
  246. package/src/contexts/MapContext.tsx +65 -65
  247. package/src/contexts/SimpleDataProvider.js +47 -47
  248. package/src/contexts/SimpleDataProvider.test.js +29 -29
  249. package/src/custom.d.tsx +14 -14
  250. package/src/decorators/MapContextDecorator.js +23 -25
  251. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  252. package/src/decorators/MultiMapContextDecorator.js +63 -63
  253. package/src/decorators/NoNavToolsDecorator.js +17 -17
  254. package/src/decorators/ThemeWrapper.jsx +9 -0
  255. package/src/hooks/assets/pointWG.json +13 -0
  256. package/src/hooks/exportMap/index.ts +30 -0
  257. package/src/hooks/exportMap/lib.ts +187 -0
  258. package/src/hooks/useLayer.test.js +188 -188
  259. package/src/hooks/useLayer.ts +194 -180
  260. package/src/hooks/useLayerEvent.js +49 -0
  261. package/src/hooks/useMap.ts +67 -66
  262. package/src/hooks/useMapState.stories.js +78 -78
  263. package/src/hooks/useMapState.ts +161 -161
  264. package/src/hooks/useSource.ts +84 -0
  265. package/src/hooks/useSources.stories.js +232 -0
  266. package/src/hooks/useWms.js +71 -71
  267. package/src/index.ts +4 -0
  268. package/src/setupTests.js +86 -86
  269. package/src/ui_components/ImageLoader.js +62 -62
  270. package/src/ui_components/Legend.js +34 -34
  271. package/src/ui_components/LoadingOverlay.js +29 -29
  272. package/src/ui_components/LoadingOverlayContext.js +68 -68
  273. package/src/ui_components/Sidebar.js +80 -80
  274. package/src/ui_components/Tooltip.js +9 -9
  275. package/src/ui_components/TopToolbar.js +23 -23
  276. package/src/util/layerRemovalTest.js +111 -111
  277. package/src/util/sourceRemovalTest.js +103 -103
@@ -514,203 +514,203 @@ import useMapState from "../../hooks/useMapState";
514
514
  *
515
515
  */
516
516
  const MlLayerSwitcher = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) =&gt; {</span>
517
- const mapContext = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
518
- const showBaseSources = <span class="cstat-no" title="statement not covered" >!!props.baseSourceConfig?.layers?.length;</span>
519
- const showDetailLayer = <span class="cstat-no" title="statement not covered" >!!props.detailLayerConfig?.layers?.length;</span>
520
- const { layers } = <span class="cstat-no" title="statement not covered" >useMapState({</span>
521
- mapId: props.mapId,
522
- watch: {
523
- viewport: false,
524
- layers: true,
525
- sources: false,
526
- },
527
- filter: {},
528
- });
529
- const [activeLayers, setActiveLayers] = <span class="cstat-no" title="statement not covered" >useState([]);</span>
530
- const [activeDetailLayers, setActiveDetailLayers] = <span class="cstat-no" title="statement not covered" >useState([]);</span>
531
- const { t } = <span class="cstat-no" title="statement not covered" >useTranslation();</span>
517
+ const mapContext = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
518
+ const showBaseSources = <span class="cstat-no" title="statement not covered" >!!props.baseSourceConfig?.layers?.length;</span>
519
+ const showDetailLayer = <span class="cstat-no" title="statement not covered" >!!props.detailLayerConfig?.layers?.length;</span>
520
+ const { layers } = <span class="cstat-no" title="statement not covered" >useMapState({</span>
521
+ mapId: props.mapId,
522
+ watch: {
523
+ viewport: false,
524
+ layers: true,
525
+ sources: false,
526
+ },
527
+ filter: {},
528
+ });
529
+ const [activeLayers, setActiveLayers] = <span class="cstat-no" title="statement not covered" >useState([]);</span>
530
+ const [activeDetailLayers, setActiveDetailLayers] = <span class="cstat-no" title="statement not covered" >useState([]);</span>
531
+ const { t } = <span class="cstat-no" title="statement not covered" >useTranslation();</span>
532
532
  &nbsp;
533
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
534
- //Set base state to activate only the first layer
535
- <span class="cstat-no" title="statement not covered" > if (mapContext.map) {</span>
536
- const disableAllButFirst = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(c</span>onfig, i) =&gt; {</span>
537
- const layers = <span class="cstat-no" title="statement not covered" >getLayerListFromId(config.layerId);</span>
538
- const visible = <span class="cstat-no" title="statement not covered" >i === 0 ? "visible" : "none";</span>
533
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
534
+ //Set base state to activate only the first layer
535
+ <span class="cstat-no" title="statement not covered" > if (mapContext.map) {</span>
536
+ const disableAllButFirst = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(c</span>onfig, i) =&gt; {</span>
537
+ const layers = <span class="cstat-no" title="statement not covered" >getLayerListFromId(config.layerId);</span>
538
+ const visible = <span class="cstat-no" title="statement not covered" >i === 0 ? "visible" : "none";</span>
539
539
  &nbsp;
540
- <span class="cstat-no" title="statement not covered" > layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
541
- <span class="cstat-no" title="statement not covered" > if (layer) {</span>
542
- <span class="cstat-no" title="statement not covered" > changeLayerState(layer, visible);</span>
543
- }
544
- });
545
- };
540
+ <span class="cstat-no" title="statement not covered" > layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
541
+ <span class="cstat-no" title="statement not covered" > if (layer) {</span>
542
+ <span class="cstat-no" title="statement not covered" > changeLayerState(layer, visible);</span>
543
+ }
544
+ });
545
+ };
546
546
  &nbsp;
547
- <span class="cstat-no" title="statement not covered" > props.baseSourceConfig.layers.forEach(<span class="fstat-no" title="function not covered" >(c</span>onfig, i) =&gt; <span class="cstat-no" title="statement not covered" >disableAllButFirst(config, i))</span>;</span>
548
- <span class="cstat-no" title="statement not covered" > props.detailLayerConfig.layers.forEach(<span class="fstat-no" title="function not covered" >(c</span>onfig, i) =&gt; <span class="cstat-no" title="statement not covered" >disableAllButFirst(config, i))</span>;</span>
549
- }
550
- <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
551
- // This is the cleanup function, it is called when this react component is removed from react-dom
552
- // try to remove anything this component has added to the MapLibre-gl instance
553
- // e.g.: remove the layer
554
- // mapContext.getMap(props.mapId).removeLayer(layerRef.current);
555
- // check for the existence of map.style before calling getLayer or getSource
556
- };
557
- }, [mapContext.map]);
547
+ <span class="cstat-no" title="statement not covered" > props.baseSourceConfig.layers.forEach(<span class="fstat-no" title="function not covered" >(c</span>onfig, i) =&gt; <span class="cstat-no" title="statement not covered" >disableAllButFirst(config, i))</span>;</span>
548
+ <span class="cstat-no" title="statement not covered" > props.detailLayerConfig.layers.forEach(<span class="fstat-no" title="function not covered" >(c</span>onfig, i) =&gt; <span class="cstat-no" title="statement not covered" >disableAllButFirst(config, i))</span>;</span>
549
+ }
550
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
551
+ // This is the cleanup function, it is called when this react component is removed from react-dom
552
+ // try to remove anything this component has added to the MapLibre-gl instance
553
+ // e.g.: remove the layer
554
+ // mapContext.getMap(props.mapId).removeLayer(layerRef.current);
555
+ // check for the existence of map.style before calling getLayer or getSource
556
+ };
557
+ }, [mapContext.map]);
558
558
  &nbsp;
559
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
560
- <span class="cstat-no" title="statement not covered" > if (mapContext.map?.style?._layers) {</span>
561
- let newactiveLayers = <span class="cstat-no" title="statement not covered" >[];</span>
562
- let newactiveDetailLayers = <span class="cstat-no" title="statement not covered" >[];</span>
563
- <span class="cstat-no" title="statement not covered" > props.baseSourceConfig.layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayerConfig) =&gt; {</span>
564
- const layers = <span class="cstat-no" title="statement not covered" >getLayerListFromId(layerConfig.layerId);</span>
559
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
560
+ <span class="cstat-no" title="statement not covered" > if (mapContext.map?.style?._layers) {</span>
561
+ let newactiveLayers = <span class="cstat-no" title="statement not covered" >[];</span>
562
+ let newactiveDetailLayers = <span class="cstat-no" title="statement not covered" >[];</span>
563
+ <span class="cstat-no" title="statement not covered" > props.baseSourceConfig.layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayerConfig) =&gt; {</span>
564
+ const layers = <span class="cstat-no" title="statement not covered" >getLayerListFromId(layerConfig.layerId);</span>
565
565
  &nbsp;
566
- <span class="cstat-no" title="statement not covered" > layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
567
- const visibilty = <span class="cstat-no" title="statement not covered" >mapContext.map?.getLayoutProperty(layer, "visibility");</span>
568
- <span class="cstat-no" title="statement not covered" > if (mapContext.map.baseLayers.indexOf(layer) !== -1) {</span>
569
- <span class="cstat-no" title="statement not covered" > layer = "styleBase";</span>
570
- }
566
+ <span class="cstat-no" title="statement not covered" > layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
567
+ const visibilty = <span class="cstat-no" title="statement not covered" >mapContext.map?.getLayoutProperty(layer, "visibility");</span>
568
+ <span class="cstat-no" title="statement not covered" > if (mapContext.map.baseLayers.indexOf(layer) !== -1) {</span>
569
+ <span class="cstat-no" title="statement not covered" > layer = "styleBase";</span>
570
+ }
571
571
  &nbsp;
572
- <span class="cstat-no" title="statement not covered" > if (newactiveLayers.indexOf(layer) === -1 &amp;&amp; visibilty === "visible") {</span>
573
- <span class="cstat-no" title="statement not covered" > newactiveLayers.push(layer);</span>
574
- }
575
- });
576
- });
577
- <span class="cstat-no" title="statement not covered" > props.detailLayerConfig.layers.forEach(<span class="fstat-no" title="function not covered" >({</span> layerId }) =&gt; {</span>
578
- const visibilty = <span class="cstat-no" title="statement not covered" >mapContext.map?.getLayoutProperty(layerId, "visibility");</span>
579
- <span class="cstat-no" title="statement not covered" > if (newactiveDetailLayers.indexOf(layerId) === -1 &amp;&amp; visibilty === "visible") {</span>
580
- <span class="cstat-no" title="statement not covered" > newactiveDetailLayers.push(layerId);</span>
581
- }
582
- });
583
- <span class="cstat-no" title="statement not covered" > setActiveLayers(newactiveLayers);</span>
572
+ <span class="cstat-no" title="statement not covered" > if (newactiveLayers.indexOf(layer) === -1 &amp;&amp; visibilty === "visible") {</span>
573
+ <span class="cstat-no" title="statement not covered" > newactiveLayers.push(layer);</span>
574
+ }
575
+ });
576
+ });
577
+ <span class="cstat-no" title="statement not covered" > props.detailLayerConfig.layers.forEach(<span class="fstat-no" title="function not covered" >({</span> layerId }) =&gt; {</span>
578
+ const visibilty = <span class="cstat-no" title="statement not covered" >mapContext.map?.getLayoutProperty(layerId, "visibility");</span>
579
+ <span class="cstat-no" title="statement not covered" > if (newactiveDetailLayers.indexOf(layerId) === -1 &amp;&amp; visibilty === "visible") {</span>
580
+ <span class="cstat-no" title="statement not covered" > newactiveDetailLayers.push(layerId);</span>
581
+ }
582
+ });
583
+ <span class="cstat-no" title="statement not covered" > setActiveLayers(newactiveLayers);</span>
584
584
  &nbsp;
585
- <span class="cstat-no" title="statement not covered" > setActiveDetailLayers(newactiveDetailLayers);</span>
586
- }
587
- }, [layers]);
585
+ <span class="cstat-no" title="statement not covered" > setActiveDetailLayers(newactiveDetailLayers);</span>
586
+ }
587
+ }, [layers]);
588
588
  &nbsp;
589
- const getLayerListFromId = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>d) =&gt; {</span>
590
- <span class="cstat-no" title="statement not covered" > return id === "styleBase" ? mapContext?.map.baseLayers : [id];</span>
591
- };
589
+ const getLayerListFromId = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>d) =&gt; {</span>
590
+ <span class="cstat-no" title="statement not covered" > return id === "styleBase" ? mapContext?.map.baseLayers : [id];</span>
591
+ };
592
592
  &nbsp;
593
- const handleDetailLayerBoxClick = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(l</span>ayerId) =&gt; {</span>
594
- const cfg = <span class="cstat-no" title="statement not covered" >props.detailLayerConfig.layers.find(<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >e.layerId === layerId)</span>;</span>
595
- <span class="cstat-no" title="statement not covered" > if (cfg.linkedTo) {</span>
596
- <span class="cstat-no" title="statement not covered" > handleLayerBoxClick(cfg.linkedTo);</span>
597
- }
598
- const nextVisiblityClickedLayer =
599
- <span class="cstat-no" title="statement not covered" > mapContext?.map.getLayer(layerId)?.getLayoutProperty("visibility") === "visible"</span>
600
- ? "none"
601
- : "visible";
602
- <span class="cstat-no" title="statement not covered" > changeLayerState(layerId, nextVisiblityClickedLayer);</span>
603
- };
593
+ const handleDetailLayerBoxClick = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(l</span>ayerId) =&gt; {</span>
594
+ const cfg = <span class="cstat-no" title="statement not covered" >props.detailLayerConfig.layers.find(<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >e.layerId === layerId)</span>;</span>
595
+ <span class="cstat-no" title="statement not covered" > if (cfg.linkedTo) {</span>
596
+ <span class="cstat-no" title="statement not covered" > handleLayerBoxClick(cfg.linkedTo);</span>
597
+ }
598
+ const nextVisiblityClickedLayer =
599
+ <span class="cstat-no" title="statement not covered" > mapContext?.map.getLayer(layerId)?.getLayoutProperty("visibility") === "visible"</span>
600
+ ? "none"
601
+ : "visible";
602
+ <span class="cstat-no" title="statement not covered" > changeLayerState(layerId, nextVisiblityClickedLayer);</span>
603
+ };
604
604
  &nbsp;
605
- const handleLayerBoxClick = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>d) =&gt; {</span>
606
- let layers = <span class="cstat-no" title="statement not covered" >getLayerListFromId(id);</span>
607
- const nextVisiblityClickedLayer =
608
- <span class="cstat-no" title="statement not covered" > mapContext?.map.getLayer(layers[0])?.getLayoutProperty("visibility") === "visible"</span>
609
- ? "none"
610
- : "visible";
605
+ const handleLayerBoxClick = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>d) =&gt; {</span>
606
+ let layers = <span class="cstat-no" title="statement not covered" >getLayerListFromId(id);</span>
607
+ const nextVisiblityClickedLayer =
608
+ <span class="cstat-no" title="statement not covered" > mapContext?.map.getLayer(layers[0])?.getLayoutProperty("visibility") === "visible"</span>
609
+ ? "none"
610
+ : "visible";
611
611
  &nbsp;
612
- <span class="cstat-no" title="statement not covered" > props.baseSourceConfig.layers.forEach(<span class="fstat-no" title="function not covered" >(c</span>onfig, i) =&gt; {</span>
613
- let layers = <span class="cstat-no" title="statement not covered" >getLayerListFromId(config.layerId);</span>
614
- let visible = <span class="cstat-no" title="statement not covered" >"none";</span>
615
- <span class="cstat-no" title="statement not covered" > if (config.layerId === id) {</span>
616
- <span class="cstat-no" title="statement not covered" > visible = nextVisiblityClickedLayer;</span>
617
- }
612
+ <span class="cstat-no" title="statement not covered" > props.baseSourceConfig.layers.forEach(<span class="fstat-no" title="function not covered" >(c</span>onfig, i) =&gt; {</span>
613
+ let layers = <span class="cstat-no" title="statement not covered" >getLayerListFromId(config.layerId);</span>
614
+ let visible = <span class="cstat-no" title="statement not covered" >"none";</span>
615
+ <span class="cstat-no" title="statement not covered" > if (config.layerId === id) {</span>
616
+ <span class="cstat-no" title="statement not covered" > visible = nextVisiblityClickedLayer;</span>
617
+ }
618
618
  &nbsp;
619
- //To avoid disabling all base layers we activate the first one
620
- <span class="cstat-no" title="statement not covered" > if (nextVisiblityClickedLayer === "none" &amp;&amp; i === 0) {</span>
621
- <span class="cstat-no" title="statement not covered" > visible = "visible";</span>
622
- }
623
- <span class="cstat-no" title="statement not covered" > layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
624
- <span class="cstat-no" title="statement not covered" > if (layer) {</span>
625
- <span class="cstat-no" title="statement not covered" > changeLayerState(layer, visible);</span>
626
- }
627
- });
628
- });
629
- };
619
+ //To avoid disabling all base layers we activate the first one
620
+ <span class="cstat-no" title="statement not covered" > if (nextVisiblityClickedLayer === "none" &amp;&amp; i === 0) {</span>
621
+ <span class="cstat-no" title="statement not covered" > visible = "visible";</span>
622
+ }
623
+ <span class="cstat-no" title="statement not covered" > layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
624
+ <span class="cstat-no" title="statement not covered" > if (layer) {</span>
625
+ <span class="cstat-no" title="statement not covered" > changeLayerState(layer, visible);</span>
626
+ }
627
+ });
628
+ });
629
+ };
630
630
  &nbsp;
631
- const changeLayerState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(l</span>ayer, visible = <span class="branch-0 cbranch-no" title="branch not covered" >"none")</span> =&gt; {</span>
632
- <span class="cstat-no" title="statement not covered" > mapContext.map?.setLayoutProperty(layer, "visibility", visible);</span>
633
- };
631
+ const changeLayerState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(l</span>ayer, visible = <span class="branch-0 cbranch-no" title="branch not covered" >"none")</span> =&gt; {</span>
632
+ <span class="cstat-no" title="statement not covered" > mapContext.map?.setLayoutProperty(layer, "visibility", visible);</span>
633
+ };
634
634
  &nbsp;
635
- <span class="cstat-no" title="statement not covered" > return (</span>
636
- &lt;&gt;
637
- &lt;Card sx={{ zIndex: 101, position: "absolute", minWidth: "200px" }}&gt;
638
- &lt;CardContent&gt;
639
- {showBaseSources &amp;&amp; (
640
- &lt;Box sx={{ minHeight: "150px" }}&gt;
641
- &lt;Typography variant="h6"&gt;{t(props.baseSourceConfig.label || "Map type")}&lt;/Typography&gt;
642
- &lt;Divider /&gt;
643
- &lt;Box sx={{ display: "flex", paddingTop: "1rem" }}&gt;
644
- {props.baseSourceConfig.layers.map(<span class="fstat-no" title="function not covered" >({</span> src, label, layerId }) =&gt; {
645
- <span class="cstat-no" title="statement not covered" > return (</span>
646
- &lt;LayerBox
647
- mapId={props.mapId}
648
- key={layerId}
649
- activeLayers={activeLayers}
650
- label={t(label)}
651
- layerId={layerId}
652
- thumbnail={src}
653
- handleLayerBoxClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
654
- <span class="cstat-no" title="statement not covered" > handleLayerBoxClick(layerId);</span>
655
- }}
656
- /&gt;
657
- );
658
- })}
659
- &lt;/Box&gt;
660
- &lt;/Box&gt;
661
- )}
662
- {showDetailLayer &amp;&amp; (
663
- &lt;Box sx={{ minHeight: "150px" }}&gt;
664
- &lt;Typography variant="h6"&gt;{t("Map details")}&lt;/Typography&gt;
665
- &lt;Divider /&gt;
666
- &lt;Box sx={{ display: "flex", paddingTop: "1rem" }}&gt;
667
- {props.detailLayerConfig.layers.map(<span class="fstat-no" title="function not covered" >({</span> src, label, layerId }) =&gt; {
668
- <span class="cstat-no" title="statement not covered" > return (</span>
669
- &lt;LayerBox
670
- mapId={props.mapId}
671
- activeLayers={activeDetailLayers}
672
- label={t(label)}
673
- layerId={layerId}
674
- key={layerId}
675
- thumbnail={src}
676
- handleLayerBoxClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
677
- <span class="cstat-no" title="statement not covered" > handleDetailLayerBoxClick(layerId);</span>
678
- }}
679
- /&gt;
680
- );
681
- })}
682
- &lt;/Box&gt;
683
- &lt;/Box&gt;
684
- )}
685
- &lt;/CardContent&gt;{" "}
686
- &lt;/Card&gt;
687
- &lt;/&gt;
688
- );
635
+ <span class="cstat-no" title="statement not covered" > return (</span>
636
+ &lt;&gt;
637
+ &lt;Card sx={{ zIndex: 101, position: "absolute", minWidth: "200px" }}&gt;
638
+ &lt;CardContent&gt;
639
+ {showBaseSources &amp;&amp; (
640
+ &lt;Box sx={{ minHeight: "150px" }}&gt;
641
+ &lt;Typography variant="h6"&gt;{t(props.baseSourceConfig.label || "Map type")}&lt;/Typography&gt;
642
+ &lt;Divider /&gt;
643
+ &lt;Box sx={{ display: "flex", paddingTop: "1rem" }}&gt;
644
+ {props.baseSourceConfig.layers.map(<span class="fstat-no" title="function not covered" >({</span> src, label, layerId }) =&gt; {
645
+ <span class="cstat-no" title="statement not covered" > return (</span>
646
+ &lt;LayerBox
647
+ mapId={props.mapId}
648
+ key={layerId}
649
+ activeLayers={activeLayers}
650
+ label={t(label)}
651
+ layerId={layerId}
652
+ thumbnail={src}
653
+ handleLayerBoxClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
654
+ <span class="cstat-no" title="statement not covered" > handleLayerBoxClick(layerId);</span>
655
+ }}
656
+ /&gt;
657
+ );
658
+ })}
659
+ &lt;/Box&gt;
660
+ &lt;/Box&gt;
661
+ )}
662
+ {showDetailLayer &amp;&amp; (
663
+ &lt;Box sx={{ minHeight: "150px" }}&gt;
664
+ &lt;Typography variant="h6"&gt;{t("Map details")}&lt;/Typography&gt;
665
+ &lt;Divider /&gt;
666
+ &lt;Box sx={{ display: "flex", paddingTop: "1rem" }}&gt;
667
+ {props.detailLayerConfig.layers.map(<span class="fstat-no" title="function not covered" >({</span> src, label, layerId }) =&gt; {
668
+ <span class="cstat-no" title="statement not covered" > return (</span>
669
+ &lt;LayerBox
670
+ mapId={props.mapId}
671
+ activeLayers={activeDetailLayers}
672
+ label={t(label)}
673
+ layerId={layerId}
674
+ key={layerId}
675
+ thumbnail={src}
676
+ handleLayerBoxClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
677
+ <span class="cstat-no" title="statement not covered" > handleDetailLayerBoxClick(layerId);</span>
678
+ }}
679
+ /&gt;
680
+ );
681
+ })}
682
+ &lt;/Box&gt;
683
+ &lt;/Box&gt;
684
+ )}
685
+ &lt;/CardContent&gt;{" "}
686
+ &lt;/Card&gt;
687
+ &lt;/&gt;
688
+ );
689
689
  };
690
690
  &nbsp;
691
691
  <span class="cstat-no" title="statement not covered" >MlLayerSwitcher.propTypes = {</span>
692
- baseSourceConfig: PropTypes.shape({
693
- label: PropTypes.string,
694
- layers: PropTypes.arrayOf(
695
- PropTypes.shape({
696
- layerId: PropTypes.string.isRequired,
697
- src: PropTypes.string,
698
- label: PropTypes.string.isRequired,
699
- })
700
- ),
701
- }),
702
- detailLayerConfig: PropTypes.shape({
703
- label: PropTypes.string,
704
- layers: PropTypes.arrayOf(
705
- PropTypes.shape({
706
- layerId: PropTypes.string.isRequired,
707
- src: PropTypes.string,
708
- label: PropTypes.string.isRequired,
709
- linkedTo: PropTypes.string,
710
- })
711
- ),
712
- }),
713
- mapId: PropTypes.string,
692
+ baseSourceConfig: PropTypes.shape({
693
+ label: PropTypes.string,
694
+ layers: PropTypes.arrayOf(
695
+ PropTypes.shape({
696
+ layerId: PropTypes.string.isRequired,
697
+ src: PropTypes.string,
698
+ label: PropTypes.string.isRequired,
699
+ })
700
+ ),
701
+ }),
702
+ detailLayerConfig: PropTypes.shape({
703
+ label: PropTypes.string,
704
+ layers: PropTypes.arrayOf(
705
+ PropTypes.shape({
706
+ layerId: PropTypes.string.isRequired,
707
+ src: PropTypes.string,
708
+ label: PropTypes.string.isRequired,
709
+ linkedTo: PropTypes.string,
710
+ })
711
+ ),
712
+ }),
713
+ mapId: PropTypes.string,
714
714
  };
715
715
  &nbsp;
716
716
  export default MlLayerSwitcher;
@@ -721,7 +721,7 @@ export default MlLayerSwitcher;
721
721
  <div class='footer quiet pad2 space-top1 center small'>
722
722
  Code coverage generated by
723
723
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
724
- at Thu Aug 11 2022 13:20:32 GMT+0000 (Coordinated Universal Time)
724
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
725
725
  </div>
726
726
  <script src="../../../prettify.js"></script>
727
727
  <script>
@@ -222,66 +222,66 @@ import useMapState from "../../../hooks/useMapState";
222
222
  *
223
223
  */
224
224
  const LayerBox = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) =&gt; {</span>
225
- const { layers } = <span class="cstat-no" title="statement not covered" >useMapState({</span>
226
- mapId: props.mapId,
227
- watch: {
228
- viewport: false,
229
- layers: true,
230
- sources: false,
231
- },
232
- filter: {
233
- matchLayerIds: props.layerId,
234
- },
235
- });
236
- const width = <span class="cstat-no" title="statement not covered" >"40px";</span>
225
+ const { layers } = <span class="cstat-no" title="statement not covered" >useMapState({</span>
226
+ mapId: props.mapId,
227
+ watch: {
228
+ viewport: false,
229
+ layers: true,
230
+ sources: false,
231
+ },
232
+ filter: {
233
+ matchLayerIds: props.layerId,
234
+ },
235
+ });
236
+ const width = <span class="cstat-no" title="statement not covered" >"40px";</span>
237
237
  &nbsp;
238
- const defaultClass = <span class="cstat-no" title="statement not covered" >css`</span>
239
- &amp; img:hover {
240
- }
241
- `;
238
+ const defaultClass = <span class="cstat-no" title="statement not covered" >css`</span>
239
+ &amp; img:hover {
240
+ }
241
+ `;
242
242
  &nbsp;
243
- <span class="cstat-no" title="statement not covered" > return (</span>
244
- &lt;&gt;
245
- &lt;Box
246
- key={props.layerId}
247
- className={defaultClass}
248
- sx={{
249
- width,
250
- height: "53px",
251
- justifyContent: "center",
252
- py: 0.25,
253
- px: "1rem",
254
- cursor: "pointer",
255
- }}
256
- onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
257
- <span class="cstat-no" title="statement not covered" > props?.handleLayerBoxClick?.(props.layerId);</span>
258
- }}
259
- &gt;
260
- &lt;ImageLoader
261
- style={{
262
- border: "2px solid " + (layers?.[0]?.visible ? "#64c864" : "#fd720f"),
263
- borderRadius: "8px",
264
- height: "40px",
265
- width: "40px",
266
- }}
267
- src={props.thumbnail}
268
- /&gt;
243
+ <span class="cstat-no" title="statement not covered" > return (</span>
244
+ &lt;&gt;
245
+ &lt;Box
246
+ key={props.layerId}
247
+ className={defaultClass}
248
+ sx={{
249
+ width,
250
+ height: "53px",
251
+ justifyContent: "center",
252
+ py: 0.25,
253
+ px: "1rem",
254
+ cursor: "pointer",
255
+ }}
256
+ onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
257
+ <span class="cstat-no" title="statement not covered" > props?.handleLayerBoxClick?.(props.layerId);</span>
258
+ }}
259
+ &gt;
260
+ &lt;ImageLoader
261
+ style={{
262
+ border: "2px solid " + (layers?.[0]?.visible ? "#64c864" : "#fd720f"),
263
+ borderRadius: "8px",
264
+ height: "40px",
265
+ width: "40px",
266
+ }}
267
+ src={props.thumbnail}
268
+ /&gt;
269
269
  &nbsp;
270
- &lt;div
271
- className="mllayerswitcher-layer-text"
272
- style={{
273
- textAlign: "center",
274
- color: "rgb(112, 117, 122)",
275
- fontFamily: "Roboto, Arial",
276
- width,
277
- fontSize: "0.60rem",
278
- }}
279
- &gt;
280
- {props.label}
281
- &lt;/div&gt;
282
- &lt;/Box&gt;
283
- &lt;/&gt;
284
- );
270
+ &lt;div
271
+ className="mllayerswitcher-layer-text"
272
+ style={{
273
+ textAlign: "center",
274
+ color: "rgb(112, 117, 122)",
275
+ fontFamily: "Roboto, Arial",
276
+ width,
277
+ fontSize: "0.60rem",
278
+ }}
279
+ &gt;
280
+ {props.label}
281
+ &lt;/div&gt;
282
+ &lt;/Box&gt;
283
+ &lt;/&gt;
284
+ );
285
285
  };
286
286
  &nbsp;
287
287
  export default LayerBox;
@@ -292,7 +292,7 @@ export default LayerBox;
292
292
  <div class='footer quiet pad2 space-top1 center small'>
293
293
  Code coverage generated by
294
294
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
295
- at Thu Aug 11 2022 13:20:32 GMT+0000 (Coordinated Universal Time)
295
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
296
296
  </div>
297
297
  <script src="../../../../prettify.js"></script>
298
298
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Thu Aug 11 2022 13:20:32 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../../prettify.js"></script>
107
107
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Thu Aug 11 2022 13:20:32 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>