@mapcomponents/react-maplibre 0.1.66 → 0.1.67

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 (179) hide show
  1. package/.github/workflows/node_version_test.yml +1 -1
  2. package/.storybook/main.js +37 -31
  3. package/.storybook/preview.js +21 -0
  4. package/CHANGELOG.md +13 -0
  5. package/coverage/clover.xml +419 -344
  6. package/coverage/coverage-final.json +15 -14
  7. package/coverage/lcov-report/index.html +61 -61
  8. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +24 -18
  9. package/coverage/lcov-report/src/components/MapLibreMap/index.html +14 -14
  10. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +2 -2
  11. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
  13. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +1 -1
  15. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +1 -1
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  19. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  21. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +9 -9
  22. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  23. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  25. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html +1 -1
  26. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +1 -1
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +1 -1
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +1 -1
  31. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +1 -1
  33. package/coverage/lcov-report/src/components/MlGpxViewer/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +1 -1
  35. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  36. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +52 -40
  39. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +10 -10
  40. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +4 -4
  41. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  43. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  44. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  47. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  48. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
  49. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  50. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  51. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  52. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +1 -1
  53. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  55. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
  56. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlScaleReference/{MlScaleReference.js.html → MlScaleReference.tsx.html} +57 -36
  58. package/coverage/lcov-report/src/components/MlScaleReference/index.html +2 -2
  59. package/coverage/lcov-report/src/components/MlShareMapState/{MlShareMapState.js.html → MlShareMapState.tsx.html} +192 -84
  60. package/coverage/lcov-report/src/components/MlShareMapState/index.html +20 -20
  61. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +1 -1
  62. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +1 -1
  63. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +1 -1
  64. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +1 -1
  65. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlSketchTool/MlSketchTool.tsx.html +1 -1
  67. package/coverage/lcov-report/src/components/MlSketchTool/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.html +1 -1
  69. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  71. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreejsLayer.tsx.html +769 -0
  72. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +25 -10
  73. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
  74. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  75. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  76. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  77. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +1 -1
  78. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  79. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +11 -11
  80. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +11 -11
  81. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +1 -1
  82. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  83. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +27 -18
  84. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +11 -11
  85. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +50 -26
  86. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  87. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  88. package/coverage/lcov-report/src/contexts/index.html +1 -1
  89. package/coverage/lcov-report/src/hooks/index.html +21 -21
  90. package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +1 -1
  91. package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +1 -1
  92. package/coverage/lcov-report/src/hooks/useExportMap/index.html +1 -1
  93. package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +1 -1
  94. package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +1 -1
  95. package/coverage/lcov-report/src/hooks/useGpx/index.html +1 -1
  96. package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +1 -1
  97. package/coverage/lcov-report/src/hooks/useLayer.ts.html +1 -1
  98. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +9 -9
  99. package/coverage/lcov-report/src/hooks/useLayerFilter/index.html +1 -1
  100. package/coverage/lcov-report/src/hooks/useLayerFilter/useLayerFilter.ts.html +1 -1
  101. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +1 -1
  102. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +9 -6
  103. package/coverage/lcov-report/src/hooks/useMap.ts.html +2 -2
  104. package/coverage/lcov-report/src/hooks/useMapState.ts.html +8 -29
  105. package/coverage/lcov-report/src/hooks/useSource.ts.html +10 -10
  106. package/coverage/lcov-report/src/hooks/useWms.ts.html +1 -1
  107. package/coverage/lcov-report/src/index.html +1 -1
  108. package/coverage/lcov-report/src/index.ts.html +80 -11
  109. package/coverage/lcov.info +741 -604
  110. package/dist/components/MapLibreMap/MapLibreMap.stories.d.ts +3 -0
  111. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +17 -15
  112. package/dist/components/MlCenterPosition/MlCenterPosition.stories.d.ts +1 -1
  113. package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +1 -1
  114. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +1 -1
  115. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +1 -1
  116. package/dist/components/MlFeatureEditor/lib/create_supplementary_points.d.ts +1 -1
  117. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  118. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +1 -1
  119. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +1 -1
  120. package/dist/components/MlGpxViewer/MlGpxViewer.stories.d.ts +1 -1
  121. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +1 -1
  122. package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +1 -1
  123. package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +1 -1
  124. package/dist/components/MlScaleReference/MlScaleReference.d.ts +7 -1
  125. package/dist/components/MlShareMapState/MlShareMapState.d.ts +32 -13
  126. package/dist/components/MlShareMapState/MlShareMapState.stories.d.ts +15 -9
  127. package/dist/components/MlSketchTool/MlSketchTool.stories.d.ts +1 -1
  128. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +1 -1
  129. package/dist/components/MlSpatialElevationProfile/util/getElevationData.d.ts +1 -1
  130. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.stories.d.ts +1 -1
  131. package/dist/components/MlThreeJsLayer/MlThreejsLayer.d.ts +29 -0
  132. package/dist/components/MlThreeJsLayer/lib/GLTFLoader.d.ts +2 -1
  133. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.d.ts +1 -1
  134. package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +1 -1
  135. package/dist/contexts/MapContext.d.ts +13 -2
  136. package/dist/custom.d.d.ts +1 -1
  137. package/dist/decorators/MapContextDecorator.d.ts +1 -1
  138. package/dist/decorators/MapContextDecoratorHooks.d.ts +1 -1
  139. package/dist/decorators/MultiMapContextDecorator.d.ts +1 -1
  140. package/dist/decorators/NoNavToolsDecorator.d.ts +1 -1
  141. package/dist/decorators/ThemeWrapper.d.ts +1 -3
  142. package/dist/hooks/useCameraFollowPath/useCameraFollowPath.stories.d.ts +1 -1
  143. package/dist/hooks/useLayerFilter/useLayerFilter.stories.d.ts +1 -1
  144. package/dist/index.d.ts +18 -8
  145. package/dist/index.esm.js +5590 -3701
  146. package/dist/index.esm.js.map +1 -1
  147. package/dist/setupTests.d.ts +6 -6
  148. package/package.json +56 -49
  149. package/public/thumbnails/{MlGPXViewer.png → MlGpxViewer.png} +0 -0
  150. package/rollup.config.js +49 -48
  151. package/src/@types/assets/index.d.ts +20 -0
  152. package/src/components/MapLibreMap/MapLibreMap.stories.js +8 -1
  153. package/src/components/MapLibreMap/MapLibreMap.tsx +11 -9
  154. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +49 -39
  155. package/src/components/MlCenterPosition/MlCenterPosition.tsx +1 -1
  156. package/src/components/MlFollowGps/MlFollowGps.tsx +8 -8
  157. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +21 -17
  158. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +3 -3
  159. package/src/components/MlScaleReference/{MlScaleReference.js → MlScaleReference.tsx} +38 -31
  160. package/src/components/MlShareMapState/MlShareMapState.stories.tsx +100 -0
  161. package/src/components/MlShareMapState/{MlShareMapState.js → MlShareMapState.tsx} +94 -58
  162. package/src/components/MlThreeJsLayer/MlThreejsLayer.tsx +228 -0
  163. package/src/components/MlWmsLoader/MlWmsLoader.tsx +7 -4
  164. package/src/contexts/MapContext.tsx +26 -19
  165. package/src/custom.d.ts +5 -0
  166. package/src/decorators/MapContextDecorator.js +39 -28
  167. package/src/decorators/MapContextDecoratorHooks.js +18 -8
  168. package/src/decorators/MultiMapContextDecorator.js +79 -69
  169. package/src/decorators/NoNavToolsDecorator.js +34 -25
  170. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx +5 -4
  171. package/src/hooks/useMap.ts +1 -1
  172. package/src/hooks/useMapState.ts +6 -13
  173. package/src/hooks/useSource.ts +1 -1
  174. package/src/index.ts +31 -8
  175. package/src/ui_components/TopToolbar.tsx +1 -1
  176. package/tsconfig.json +1 -0
  177. package/src/components/MlShareMapState/MlShareMapState.stories.js +0 -100
  178. package/src/custom.d.tsx +0 -26
  179. package/src/decorators/ThemeWrapper.tsx +0 -9
@@ -3,7 +3,7 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for src/components/MlShareMapState/MlShareMapState.js</title>
6
+ <title>Code coverage report for src/components/MlShareMapState/MlShareMapState.tsx</title>
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../../../prettify.css" />
9
9
  <link rel="stylesheet" href="../../../base.css" />
@@ -19,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlShareMapState</a> MlShareMapState.js</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlShareMapState</a> MlShareMapState.tsx</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">7.47% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/108</span>
28
+ <span class='fraction'>8/107</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">1.56% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/54</span>
35
+ <span class='fraction'>1/64</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">5.88% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/19</span>
42
+ <span class='fraction'>1/17</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">8% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/100</span>
49
+ <span class='fraction'>8/100</span>
50
50
  </div>
51
51
 
52
52
 
@@ -296,21 +296,52 @@
296
296
  <a name='L231'></a><a href='#L231'>231</a>
297
297
  <a name='L232'></a><a href='#L232'>232</a>
298
298
  <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
300
336
  <span class="cline-any cline-neutral">&nbsp;</span>
301
337
  <span class="cline-any cline-neutral">&nbsp;</span>
302
338
  <span class="cline-any cline-neutral">&nbsp;</span>
303
339
  <span class="cline-any cline-neutral">&nbsp;</span>
304
340
  <span class="cline-any cline-neutral">&nbsp;</span>
305
341
  <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-no">&nbsp;</span>
307
- <span class="cline-any cline-no">&nbsp;</span>
308
- <span class="cline-any cline-no">&nbsp;</span>
309
342
  <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-no">&nbsp;</span>
311
343
  <span class="cline-any cline-neutral">&nbsp;</span>
312
344
  <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-no">&nbsp;</span>
314
345
  <span class="cline-any cline-neutral">&nbsp;</span>
315
346
  <span class="cline-any cline-neutral">&nbsp;</span>
316
347
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -320,7 +351,38 @@
320
351
  <span class="cline-any cline-neutral">&nbsp;</span>
321
352
  <span class="cline-any cline-neutral">&nbsp;</span>
322
353
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-no">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-yes">10x</span>
356
+ <span class="cline-any cline-yes">10x</span>
357
+ <span class="cline-any cline-yes">10x</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">10x</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-yes">10x</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-yes">10x</span>
324
386
  <span class="cline-any cline-neutral">&nbsp;</span>
325
387
  <span class="cline-any cline-no">&nbsp;</span>
326
388
  <span class="cline-any cline-no">&nbsp;</span>
@@ -374,13 +436,13 @@
374
436
  <span class="cline-any cline-neutral">&nbsp;</span>
375
437
  <span class="cline-any cline-neutral">&nbsp;</span>
376
438
  <span class="cline-any cline-no">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
440
  <span class="cline-any cline-no">&nbsp;</span>
378
441
  <span class="cline-any cline-neutral">&nbsp;</span>
379
442
  <span class="cline-any cline-neutral">&nbsp;</span>
380
443
  <span class="cline-any cline-no">&nbsp;</span>
381
444
  <span class="cline-any cline-no">&nbsp;</span>
382
445
  <span class="cline-any cline-no">&nbsp;</span>
383
- <span class="cline-any cline-no">&nbsp;</span>
384
446
  <span class="cline-any cline-neutral">&nbsp;</span>
385
447
  <span class="cline-any cline-neutral">&nbsp;</span>
386
448
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -445,6 +507,8 @@
445
507
  <span class="cline-any cline-no">&nbsp;</span>
446
508
  <span class="cline-any cline-no">&nbsp;</span>
447
509
  <span class="cline-any cline-no">&nbsp;</span>
510
+ <span class="cline-any cline-no">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
512
  <span class="cline-any cline-neutral">&nbsp;</span>
449
513
  <span class="cline-any cline-neutral">&nbsp;</span>
450
514
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -461,6 +525,9 @@
461
525
  <span class="cline-any cline-no">&nbsp;</span>
462
526
  <span class="cline-any cline-no">&nbsp;</span>
463
527
  <span class="cline-any cline-no">&nbsp;</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
531
  <span class="cline-any cline-no">&nbsp;</span>
465
532
  <span class="cline-any cline-no">&nbsp;</span>
466
533
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -479,6 +546,8 @@
479
546
  <span class="cline-any cline-neutral">&nbsp;</span>
480
547
  <span class="cline-any cline-neutral">&nbsp;</span>
481
548
  <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
551
  <span class="cline-any cline-no">&nbsp;</span>
483
552
  <span class="cline-any cline-no">&nbsp;</span>
484
553
  <span class="cline-any cline-no">&nbsp;</span>
@@ -490,19 +559,21 @@
490
559
  <span class="cline-any cline-no">&nbsp;</span>
491
560
  <span class="cline-any cline-no">&nbsp;</span>
492
561
  <span class="cline-any cline-no">&nbsp;</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
562
  <span class="cline-any cline-neutral">&nbsp;</span>
497
563
  <span class="cline-any cline-no">&nbsp;</span>
498
564
  <span class="cline-any cline-no">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-no">&nbsp;</span>
499
567
  <span class="cline-any cline-no">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
569
  <span class="cline-any cline-no">&nbsp;</span>
501
570
  <span class="cline-any cline-no">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
572
  <span class="cline-any cline-no">&nbsp;</span>
503
573
  <span class="cline-any cline-no">&nbsp;</span>
504
574
  <span class="cline-any cline-neutral">&nbsp;</span>
505
575
  <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
577
  <span class="cline-any cline-no">&nbsp;</span>
507
578
  <span class="cline-any cline-neutral">&nbsp;</span>
508
579
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -515,35 +586,49 @@
515
586
  <span class="cline-any cline-neutral">&nbsp;</span>
516
587
  <span class="cline-any cline-neutral">&nbsp;</span>
517
588
  <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
590
  <span class="cline-any cline-no">&nbsp;</span>
519
591
  <span class="cline-any cline-neutral">&nbsp;</span>
520
592
  <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-no">&nbsp;</span>
593
+ <span class="cline-any cline-yes">10x</span>
522
594
  <span class="cline-any cline-neutral">&nbsp;</span>
523
595
  <span class="cline-any cline-neutral">&nbsp;</span>
524
596
  <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-no">&nbsp;</span>
597
+ <span class="cline-any cline-yes">10x</span>
526
598
  <span class="cline-any cline-neutral">&nbsp;</span>
527
599
  <span class="cline-any cline-neutral">&nbsp;</span>
528
600
  <span class="cline-any cline-neutral">&nbsp;</span>
529
601
  <span class="cline-any cline-neutral">&nbsp;</span>
530
602
  <span class="cline-any cline-neutral">&nbsp;</span>
531
603
  <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useContext, useState, useCallback } from "react";
533
- import PropTypes from "prop-types";
604
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useContext, useState, useCallback } from 'react';
605
+ import PropTypes from 'prop-types';
606
+ &nbsp;
607
+ import MapContext from '../../contexts/MapContext';
608
+ import { v4 as uuidv4 } from 'uuid';
609
+ import useMapState from '../../hooks/useMapState';
610
+ import MapLibreGlWrapper from '../MapLibreMap/lib/MapLibreGlWrapper';
534
611
  &nbsp;
535
- import MapContext from "../../contexts/MapContext";
536
- import { v4 as uuidv4 } from "uuid";
537
- import useMapState from "../../hooks/useMapState";
612
+ export interface MapState {
613
+ lat?: number;
614
+ lng?: number;
615
+ zoom?: number;
616
+ bearing?: number;
617
+ pitch?: number;
618
+ layers?: {
619
+ visible: boolean;
620
+ id: string;
621
+ }[];
622
+ }
538
623
  &nbsp;
539
- const getCurrentUrlParameters = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
540
- let currentParams = <span class="cstat-no" title="statement not covered" >Object.fromEntries(new URLSearchParams(window.location.search));</span>
541
- <span class="cstat-no" title="statement not covered" > currentParams.layers = JSON.parse(currentParams?.layers ? currentParams.layers : "[]");</span>
624
+ const getCurrentUrlParameters = (): MapState =&gt; {
625
+ const currentParams = Object.fromEntries(new URLSearchParams(window.location.search));
626
+ currentParams.layers = JSON.parse(currentParams?.layers ? <span class="branch-0 cbranch-no" title="branch not covered" >currentParams.layers </span>: '[]');
542
627
  &nbsp;
543
- <span class="cstat-no" title="statement not covered" > return currentParams;</span>
628
+ return currentParams;
544
629
  };
545
630
  &nbsp;
546
- const initialUrlParams = <span class="cstat-no" title="statement not covered" >getCurrentUrlParameters();</span>
631
+ const initialUrlParams = getCurrentUrlParameters();
547
632
  &nbsp;
548
633
  /**
549
634
  * TODO: Add short &amp; useful description
@@ -553,14 +638,27 @@ const initialUrlParams = <span class="cstat-no" title="statement not covered" >g
553
638
  *
554
639
  * @component
555
640
  */
556
- const MlShareMapState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) =&gt; {</span>
641
+ &nbsp;
642
+ export interface MlShareMapStateProps {
643
+ //
644
+ mapId?: string;
645
+ idPrefix?: string;
646
+ active?: boolean;
647
+ }
648
+ &nbsp;
649
+ export interface LayerStatesInterface {
650
+ //
651
+ [key: string]: boolean;
652
+ }
653
+ &nbsp;
654
+ const MlShareMapState = <span class="fstat-no" title="function not covered" >(p</span>rops: MlShareMapStateProps) =&gt; {
557
655
  // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
558
656
  const mapContext = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
559
657
  const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
560
- const mapRef = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
561
- const [map, setMap] = <span class="cstat-no" title="statement not covered" >useState(undefined);</span>
658
+ const mapRef = <span class="cstat-no" title="statement not covered" >useRef&lt;MapLibreGlWrapper | undefined&gt;();</span>
659
+ const [map, setMap] = <span class="cstat-no" title="statement not covered" >useState&lt;MapLibreGlWrapper | undefined&gt;(undefined);</span>
562
660
  const layersFromUrlParamsRef = <span class="cstat-no" title="statement not covered" >useRef({});</span>
563
- const componentId = <span class="cstat-no" title="statement not covered" >useRef((props.idPrefix ? props.idPrefix : "MlShareMapState-") + uuidv4());</span>
661
+ const componentId = <span class="cstat-no" title="statement not covered" >useRef((props.idPrefix ? props.idPrefix : 'MlShareMapState-') + uuidv4());</span>
564
662
  const mapState = <span class="cstat-no" title="statement not covered" >useMapState({</span>
565
663
  watch: {
566
664
  viewport: false,
@@ -573,7 +671,7 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
573
671
  });
574
672
  &nbsp;
575
673
  const allStatesRestoredRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
576
- const layerStatesRestored = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
674
+ const layerStatesRestored = <span class="cstat-no" title="statement not covered" >useRef&lt;LayerStatesInterface&gt;();</span>
577
675
  const restoredStatesRef = <span class="cstat-no" title="statement not covered" >useRef({</span>
578
676
  viewport: {
579
677
  center: false,
@@ -587,42 +685,42 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
587
685
  });
588
686
  &nbsp;
589
687
  // initial URL-Params
590
- const mapStateRef = <span class="cstat-no" title="statement not covered" >useRef({});</span>
688
+ const mapStateRef = <span class="cstat-no" title="statement not covered" >useRef&lt;MapState&gt;({});</span>
591
689
  &nbsp;
592
690
  const refreshUrlParameters = <span class="cstat-no" title="statement not covered" >useCallback(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
593
691
  <span class="cstat-no" title="statement not covered" > if (!props.active) <span class="cstat-no" title="statement not covered" >return;</span></span>
594
692
  &nbsp;
595
- let mapLayers = <span class="cstat-no" title="statement not covered" >[];</span>
596
- <span class="cstat-no" title="statement not covered" > for (let x in mapState.layers) {</span>
693
+ const mapLayers = <span class="cstat-no" title="statement not covered" >[];</span>
694
+ <span class="cstat-no" title="statement not covered" > for (const x in mapState.layers) {</span>
597
695
  <span class="cstat-no" title="statement not covered" > mapLayers.push({</span>
598
- id: mapState.layers[x].id,
599
- type: mapState.layers[x].type,
600
- visible: mapState.layers[x].visible,
696
+ id: mapState.layers[x]?.id,
697
+ type: mapState.layers[x]?.type,
698
+ visible: mapState.layers[x]?.visible,
601
699
  });
602
700
  }
603
701
  <span class="cstat-no" title="statement not covered" > refreshMapState();</span>
604
- let urlParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams({</span>
605
- ...getCurrentUrlParameters(),
606
- ...mapStateRef.current,
702
+ const urlParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams({</span>
703
+ ...(getCurrentUrlParameters() as Record&lt;string, string&gt;),
704
+ ...(mapStateRef.current as Record&lt;string, string&gt;),
607
705
  layers: JSON.stringify(mapLayers),
608
706
  });
609
- <span class="cstat-no" title="statement not covered" > JSON.parse(Object.fromEntries(urlParams).layers).forEach(<span class="fstat-no" title="function not covered" >(e</span>l) =&gt; {</span>
707
+ <span class="cstat-no" title="statement not covered" > JSON.parse(Object.fromEntries(urlParams).layers).forEach(<span class="fstat-no" title="function not covered" >(e</span>l: { id: number }) =&gt; {</span>
708
+ // is iD a number?
610
709
  <span class="cstat-no" title="statement not covered" > layersFromUrlParamsRef.current[el.id] = false;</span>
611
710
  });
612
711
  &nbsp;
613
- let currentParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams(window.location.search);</span>
614
- <span class="cstat-no" title="statement not covered" > checkRestorationStates(mapState.layers);</span>
712
+ const currentParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams(window.location.search);</span>
615
713
  <span class="cstat-no" title="statement not covered" > if (urlParams.toString() !== currentParams.toString()) {</span>
616
714
  <span class="cstat-no" title="statement not covered" > window.history.pushState(</span>
617
715
  { ...mapStateRef.current },
618
716
  document.title,
619
- "?" + urlParams.toString()
717
+ '?' + urlParams.toString()
620
718
  );
621
719
  }
622
720
  }, [mapState.layers, props.active]);
623
721
  &nbsp;
624
722
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
625
- let _componentId = <span class="cstat-no" title="statement not covered" >componentId.current;</span>
723
+ const _componentId = <span class="cstat-no" title="statement not covered" >componentId.current;</span>
626
724
  &nbsp;
627
725
  <span class="cstat-no" title="statement not covered" > mapStateRef.current = getCurrentUrlParameters();</span>
628
726
  &nbsp;
@@ -650,12 +748,12 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
650
748
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
651
749
  <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
652
750
  &nbsp;
653
- let _refreshUrlParameters = <span class="cstat-no" title="statement not covered" >refreshUrlParameters;</span>
751
+ const _refreshUrlParameters = <span class="cstat-no" title="statement not covered" >refreshUrlParameters;</span>
654
752
  &nbsp;
655
- <span class="cstat-no" title="statement not covered" > mapRef.current.on("moveend", _refreshUrlParameters, componentId.current);</span>
753
+ <span class="cstat-no" title="statement not covered" > mapRef.current.on('moveend', _refreshUrlParameters, componentId.current);</span>
656
754
  &nbsp;
657
755
  <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
658
- <span class="cstat-no" title="statement not covered" > mapRef.current?.off("moveend", _refreshUrlParameters);</span>
756
+ <span class="cstat-no" title="statement not covered" > mapRef.current?.map.off('moveend', _refreshUrlParameters);</span>
659
757
  };
660
758
  }, [refreshUrlParameters, map]);
661
759
  &nbsp;
@@ -674,14 +772,16 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
674
772
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
675
773
  <span class="cstat-no" title="statement not covered" > if (!mapState?.layers?.length) <span class="cstat-no" title="statement not covered" >return;</span></span>
676
774
  &nbsp;
677
- <span class="cstat-no" title="statement not covered" > if (typeof layerStatesRestored.current === "undefined") {</span>
678
- <span class="cstat-no" title="statement not covered" > layerStatesRestored.current = {};</span>
679
- <span class="cstat-no" title="statement not covered" > initialUrlParams?.layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
680
- <span class="cstat-no" title="statement not covered" > layerStatesRestored.current[layer.id] = false;</span>
775
+ <span class="cstat-no" title="statement not covered" > if (typeof layerStatesRestored.current === 'undefined') {</span>
776
+ <span class="cstat-no" title="statement not covered" > layerStatesRestored.current = undefined;</span>
777
+ <span class="cstat-no" title="statement not covered" > initialUrlParams?.layers?.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer: { id: string }) =&gt; {</span>
778
+ <span class="cstat-no" title="statement not covered" > if (layerStatesRestored.current?.[layer.id]) {</span>
779
+ <span class="cstat-no" title="statement not covered" > layerStatesRestored.current[layer.id] = false;</span>
780
+ }
681
781
  });
682
782
  }
683
783
  &nbsp;
684
- <span class="cstat-no" title="statement not covered" > for (let key in layerStatesRestored.current) {</span>
784
+ <span class="cstat-no" title="statement not covered" > for (const key in layerStatesRestored.current) {</span>
685
785
  let _allDone = <span class="cstat-no" title="statement not covered" >true;</span>
686
786
  <span class="cstat-no" title="statement not covered" > if (layerStatesRestored.current[key] === false) {</span>
687
787
  <span class="cstat-no" title="statement not covered" > _allDone = false;</span>
@@ -693,11 +793,14 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
693
793
  &nbsp;
694
794
  <span class="cstat-no" title="statement not covered" > if (initialUrlParams.layers) {</span>
695
795
  <span class="cstat-no" title="statement not covered" > initialUrlParams.layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
696
- <span class="cstat-no" title="statement not covered" > if (mapRef.current?.getLayer(layer.id) &amp;&amp; layerStatesRestored.current[layer.id] === false) {</span>
796
+ <span class="cstat-no" title="statement not covered" > if (</span>
797
+ mapRef.current?.map.getLayer(layer.id) &amp;&amp; //number oder str?
798
+ layerStatesRestored.current?.[layer.id] === false
799
+ ) {
697
800
  <span class="cstat-no" title="statement not covered" > layerStatesRestored.current[layer.id] = true;</span>
698
- <span class="cstat-no" title="statement not covered" > mapRef.current</span>
801
+ <span class="cstat-no" title="statement not covered" > mapRef.current.map</span>
699
802
  ?.getLayer(layer.id)
700
- ?.setLayoutProperty("visibility", layer.visible ? "visible" : "none");
803
+ ?.setLayoutProperty('visibility', layer.visible ? 'visible' : 'none');
701
804
  }
702
805
  });
703
806
  }
@@ -712,28 +815,32 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
712
815
  }
713
816
  }, [props.active, map, mapState.layers]);
714
817
  &nbsp;
715
- const refreshMapState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
716
- <span class="cstat-no" title="statement not covered" > mapStateRef.current.lat = mapRef.current.getCenter().lat;</span>
717
- <span class="cstat-no" title="statement not covered" > mapStateRef.current.lng = mapRef.current.getCenter().lng;</span>
718
- <span class="cstat-no" title="statement not covered" > mapStateRef.current.zoom = mapRef.current.getZoom();</span>
719
- <span class="cstat-no" title="statement not covered" > mapStateRef.current.bearing = mapRef.current.getBearing();</span>
720
- <span class="cstat-no" title="statement not covered" > mapStateRef.current.pitch = mapRef.current.getPitch();</span>
721
- };
818
+ //ist .current?.map. richtig?
722
819
  &nbsp;
723
- const checkRestorationStates = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(s</span>tateArray) =&gt; {</span>
724
- let tempArray = <span class="cstat-no" title="statement not covered" >{};</span>
725
- <span class="cstat-no" title="statement not covered" > stateArray.forEach(<span class="fstat-no" title="function not covered" >(e</span>l, i, arr) =&gt; {</span>
726
- <span class="cstat-no" title="statement not covered" > if (!arr[el.key]) <span class="cstat-no" title="statement not covered" >tempArray[el.key] = true;</span></span>
727
- });
820
+ const refreshMapState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
821
+ <span class="cstat-no" title="statement not covered" > mapStateRef.current.lat = mapRef.current?.map.getCenter().lat;</span>
822
+ <span class="cstat-no" title="statement not covered" > mapStateRef.current.lng = mapRef.current?.map.getCenter().lng;</span>
823
+ <span class="cstat-no" title="statement not covered" > mapStateRef.current.zoom = mapRef.current?.map.getZoom();</span>
824
+ <span class="cstat-no" title="statement not covered" > mapStateRef.current.bearing = mapRef.current?.map.getBearing();</span>
825
+ <span class="cstat-no" title="statement not covered" > mapStateRef.current.pitch = mapRef.current?.map.getPitch();</span>
728
826
  };
729
827
  &nbsp;
730
828
  const restoreViewportState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
731
829
  <span class="cstat-no" title="statement not covered" > if (!restoredStatesRef.current.viewport.center) {</span>
732
830
  <span class="cstat-no" title="statement not covered" > restoredStatesRef.current.viewport.center = true;</span>
733
- <span class="cstat-no" title="statement not covered" > mapRef.current.setCenter([mapStateRef.current.lng, mapStateRef.current.lat]);</span>
734
- <span class="cstat-no" title="statement not covered" > mapRef.current.setZoom(mapStateRef.current.zoom);</span>
735
- <span class="cstat-no" title="statement not covered" > mapRef.current.setBearing(mapStateRef.current.bearing);</span>
736
- <span class="cstat-no" title="statement not covered" > mapRef.current.setPitch(mapStateRef.current.pitch);</span>
831
+ &nbsp;
832
+ <span class="cstat-no" title="statement not covered" > if (mapStateRef.current.lng &amp;&amp; mapStateRef.current.lat) {</span>
833
+ <span class="cstat-no" title="statement not covered" > mapRef.current?.map.setCenter([mapStateRef.current.lng, mapStateRef.current.lat]);</span>
834
+ }
835
+ <span class="cstat-no" title="statement not covered" > if (mapStateRef.current.zoom) {</span>
836
+ <span class="cstat-no" title="statement not covered" > mapRef.current?.map.setZoom(mapStateRef.current.zoom);</span>
837
+ }
838
+ <span class="cstat-no" title="statement not covered" > if (mapStateRef.current.bearing) {</span>
839
+ <span class="cstat-no" title="statement not covered" > mapRef.current?.map.setBearing(mapStateRef.current.bearing);</span>
840
+ }
841
+ <span class="cstat-no" title="statement not covered" > if (mapStateRef.current.pitch) {</span>
842
+ <span class="cstat-no" title="statement not covered" > mapRef.current?.map.setPitch(mapStateRef.current.pitch);</span>
843
+ }
737
844
  }
738
845
  &nbsp;
739
846
  <span class="cstat-no" title="statement not covered" > allStatesRestoredRef.current = true;</span>
@@ -741,7 +848,8 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
741
848
  &nbsp;
742
849
  <span class="cstat-no" title="statement not covered" > window.onpopstate = <span class="fstat-no" title="function not covered" >(e</span>vent) =&gt; {</span>
743
850
  <span class="cstat-no" title="statement not covered" > if (event.state &amp;&amp; event.state.lng &amp;&amp; event.state.lat &amp;&amp; event.state.zoom) {</span>
744
- <span class="cstat-no" title="statement not covered" > mapRef.current.easeTo({</span>
851
+ <span class="cstat-no" title="statement not covered" > mapRef.current?.map.easeTo({</span>
852
+ // so möglich?
745
853
  zoom: event.state.zoom,
746
854
  center: [event.state.lng, event.state.lat],
747
855
  });
@@ -749,13 +857,13 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
749
857
  };
750
858
  &nbsp;
751
859
  <span class="cstat-no" title="statement not covered" > return &lt;&gt;&lt;/&gt;;</span>
752
- };
860
+ };;
753
861
  &nbsp;
754
- <span class="cstat-no" title="statement not covered" >MlShareMapState.defaultProps = {</span>
862
+ MlShareMapState.defaultProps = {
755
863
  mapId: undefined,
756
864
  };
757
865
  &nbsp;
758
- <span class="cstat-no" title="statement not covered" >MlShareMapState.propTypes = {</span>
866
+ MlShareMapState.propTypes = {
759
867
  /**
760
868
  * Id of the target MapLibre instance in mapContext
761
869
  */
@@ -769,7 +877,7 @@ export default MlShareMapState;
769
877
  <div class='footer quiet pad2 space-top1 center small'>
770
878
  Code coverage generated by
771
879
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
772
- at 2023-01-23T12:34:46.087Z
880
+ at 2023-01-30T08:41:54.902Z
773
881
  </div>
774
882
  <script src="../../../prettify.js"></script>
775
883
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">7.47% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/108</span>
28
+ <span class='fraction'>8/107</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">1.56% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/54</span>
35
+ <span class='fraction'>1/64</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">5.88% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/19</span>
42
+ <span class='fraction'>1/17</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">8% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/100</span>
49
+ <span class='fraction'>8/100</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,18 +79,18 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file low" data-value="MlShareMapState.js"><a href="MlShareMapState.js.html">MlShareMapState.js</a></td>
83
- <td data-value="0" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
82
+ <td class="file low" data-value="MlShareMapState.tsx"><a href="MlShareMapState.tsx.html">MlShareMapState.tsx</a></td>
83
+ <td data-value="7.47" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 7%"></div><div class="cover-empty" style="width: 93%"></div></div>
85
85
  </td>
86
- <td data-value="0" class="pct low">0%</td>
87
- <td data-value="108" class="abs low">0/108</td>
88
- <td data-value="0" class="pct low">0%</td>
89
- <td data-value="54" class="abs low">0/54</td>
90
- <td data-value="0" class="pct low">0%</td>
91
- <td data-value="19" class="abs low">0/19</td>
92
- <td data-value="0" class="pct low">0%</td>
93
- <td data-value="100" class="abs low">0/100</td>
86
+ <td data-value="7.47" class="pct low">7.47%</td>
87
+ <td data-value="107" class="abs low">8/107</td>
88
+ <td data-value="1.56" class="pct low">1.56%</td>
89
+ <td data-value="64" class="abs low">1/64</td>
90
+ <td data-value="5.88" class="pct low">5.88%</td>
91
+ <td data-value="17" class="abs low">1/17</td>
92
+ <td data-value="8" class="pct low">8%</td>
93
+ <td data-value="100" class="abs low">8/100</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2023-01-23T12:34:46.087Z
104
+ at 2023-01-30T08:41:54.902Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -199,7 +199,7 @@ export default function <span class="fstat-no" title="function not covered" >Pai
199
199
  <div class='footer quiet pad2 space-top1 center small'>
200
200
  Code coverage generated by
201
201
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
202
- at 2023-01-23T12:34:46.087Z
202
+ at 2023-01-30T08:41:54.902Z
203
203
  </div>
204
204
  <script src="../../../../prettify.js"></script>
205
205
  <script>