@mapcomponents/react-maplibre 0.1.12 → 0.1.16

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 (133) hide show
  1. package/.github/workflows/storybook.yml +4 -2
  2. package/CHANGELOG.md +33 -0
  3. package/README.md +22 -6
  4. package/coverage/clover.xml +893 -760
  5. package/coverage/coverage-final.json +22 -17
  6. package/coverage/lcov-report/index.html +183 -123
  7. package/coverage/lcov-report/{components → src/components}/MapLibreMap/MapLibreMap.js.html +10 -10
  8. package/coverage/lcov-report/{components → src/components}/MapLibreMap/index.html +10 -10
  9. package/coverage/lcov-report/{components → src/components}/MlCreatePdfButton/MlCreatePdfButton.js.html +10 -10
  10. package/coverage/lcov-report/{components → src/components}/MlCreatePdfButton/index.html +10 -10
  11. package/coverage/lcov-report/{components → src/components}/MlFeatureEditor/MlFeatureEditor.js.html +10 -10
  12. package/coverage/lcov-report/{components → src/components}/MlFeatureEditor/index.html +10 -10
  13. package/coverage/lcov-report/{components → src/components}/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +10 -10
  14. package/coverage/lcov-report/{components → src/components}/MlFillExtrusionLayer/index.html +10 -10
  15. package/coverage/lcov-report/{components → src/components}/MlFollowGps/MlFollowGps.js.html +148 -136
  16. package/coverage/lcov-report/{components → src/components}/MlFollowGps/index.html +24 -24
  17. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/MlGPXViewer.js.html +66 -60
  18. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/gpxConverter.js.html +49 -70
  19. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/index.html +25 -25
  20. package/coverage/lcov-report/{components → src/components}/MlGeoJsonLayer/MlGeoJsonLayer.js.html +155 -47
  21. package/coverage/lcov-report/{components → src/components}/MlGeoJsonLayer/index.html +28 -28
  22. package/coverage/lcov-report/{components/MlLayer/MlLayer.js.html → src/components/MlImageMarkerLayer/MlImageMarkerLayer.js.html} +88 -121
  23. package/coverage/lcov-report/{components → src/components}/MlImageMarkerLayer/index.html +28 -28
  24. package/coverage/lcov-report/{components/MlImageMarkerLayer/MlImageMarkerLayer.js.html → src/components/MlLayer/MlLayer.js.html} +116 -125
  25. package/coverage/lcov-report/src/components/MlLayer/index.html +117 -0
  26. package/coverage/lcov-report/{components → src/components}/MlLayerMagnify/MlLayerMagnify.js.html +41 -41
  27. package/coverage/lcov-report/{components → src/components}/MlLayerMagnify/index.html +24 -24
  28. package/coverage/lcov-report/{components → src/components}/MlLayerSwipe/MlLayerSwipe.js.html +38 -41
  29. package/coverage/lcov-report/{components → src/components}/MlLayerSwipe/index.html +24 -24
  30. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +755 -0
  31. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +380 -0
  32. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +117 -0
  33. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +117 -0
  34. package/coverage/lcov-report/{components → src/components}/MlMarker/MlMarker.js.html +11 -11
  35. package/coverage/lcov-report/{components → src/components}/MlMarker/index.html +10 -10
  36. package/coverage/lcov-report/{components → src/components}/MlNavigationCompass/MlNavigationCompass.js.html +10 -10
  37. package/coverage/lcov-report/{components → src/components}/MlNavigationCompass/index.html +10 -10
  38. package/coverage/lcov-report/{components → src/components}/MlNavigationTools/MlNavigationTools.js.html +50 -41
  39. package/coverage/lcov-report/{components → src/components}/MlNavigationTools/index.html +18 -18
  40. package/coverage/lcov-report/{components → src/components}/MlOsmLayer/MlOsmLayer.js.html +10 -10
  41. package/coverage/lcov-report/{components → src/components}/MlOsmLayer/index.html +10 -10
  42. package/coverage/lcov-report/{components → src/components}/MlScaleReference/MlScaleReference.js.html +10 -10
  43. package/coverage/lcov-report/{components → src/components}/MlScaleReference/index.html +10 -10
  44. package/coverage/lcov-report/{components → src/components}/MlShareMapState/MlShareMapState.js.html +217 -25
  45. package/coverage/lcov-report/{components → src/components}/MlShareMapState/index.html +18 -18
  46. package/coverage/lcov-report/{components → src/components}/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +10 -10
  47. package/coverage/lcov-report/{components → src/components}/MlSpatialElevationProfile/index.html +10 -10
  48. package/coverage/lcov-report/{components → src/components}/MlThreeJsLayer/MlThreeJsLayer.js.html +30 -54
  49. package/coverage/lcov-report/{components → src/components}/MlThreeJsLayer/index.html +24 -24
  50. package/coverage/lcov-report/{components → src/components}/MlUseMapDebugger/MlUseMapDebugger.js.html +10 -10
  51. package/coverage/lcov-report/{components → src/components}/MlUseMapDebugger/index.html +10 -10
  52. package/coverage/lcov-report/{components → src/components}/MlVectorTileLayer/MlVectorTileLayer.js.html +10 -10
  53. package/coverage/lcov-report/{components → src/components}/MlVectorTileLayer/index.html +10 -10
  54. package/coverage/lcov-report/{components → src/components}/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +10 -10
  55. package/coverage/lcov-report/{components → src/components}/MlWmsFeatureInfoPopup/index.html +10 -10
  56. package/coverage/lcov-report/{components → src/components}/MlWmsLayer/MlWmsLayer.js.html +13 -13
  57. package/coverage/lcov-report/{components → src/components}/MlWmsLayer/index.html +14 -14
  58. package/coverage/lcov-report/{components → src/components}/MlWmsLoader/MlWmsLoader.js.html +31 -19
  59. package/coverage/lcov-report/{components → src/components}/MlWmsLoader/index.html +16 -16
  60. package/coverage/lcov-report/src/hooks/index.html +147 -0
  61. package/coverage/lcov-report/src/hooks/useMap.js.html +296 -0
  62. package/coverage/lcov-report/{hooks → src/hooks}/useMapState.js.html +91 -91
  63. package/coverage/lcov-report/{hooks → src/hooks}/useWms.js.html +18 -18
  64. package/coverage/lcov-report/src/i18n.js.html +167 -0
  65. package/coverage/lcov-report/src/index.html +117 -0
  66. package/coverage/lcov-report/src/translations/english.js.html +95 -0
  67. package/coverage/lcov-report/src/translations/german.js.html +95 -0
  68. package/coverage/lcov-report/src/translations/index.html +132 -0
  69. package/coverage/lcov.info +1610 -1314
  70. package/dist/b556faa3bc6829d2.png +0 -0
  71. package/dist/index.esm.js +934 -668
  72. package/dist/index.esm.js.map +1 -1
  73. package/package.json +3 -1
  74. package/public/assets/dop.png +0 -0
  75. package/public/assets/historic.png +0 -0
  76. package/public/assets/osm.png +0 -0
  77. package/public/thumbnails/MlFollowGps.png +0 -0
  78. package/public/thumbnails/MlThreeJsLayer.png +0 -0
  79. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +53 -67
  80. package/src/components/MlComponentTemplate/MlComponentTemplate.js +6 -31
  81. package/src/components/MlFeatureEditor/MlFeatureEditor.meta.json +2 -2
  82. package/src/components/MlFollowGps/MlFollowGps.js +92 -88
  83. package/src/components/MlFollowGps/MlFollowGps.meta.json +2 -2
  84. package/src/components/MlFollowGps/MlFollowGps.test.js +3 -5
  85. package/src/components/MlFollowGps/assets/marker.png +0 -0
  86. package/src/components/MlGPXViewer/MlGPXViewer.js +45 -43
  87. package/src/components/MlGPXViewer/gpxConverter.js +22 -29
  88. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +45 -9
  89. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js +21 -57
  90. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +6 -7
  91. package/src/components/MlLayer/MlLayer.js +28 -6
  92. package/src/components/MlLayer/MlLayer.test.js +12 -10
  93. package/src/components/MlLayerMagnify/MlLayerMagnify.js +3 -3
  94. package/src/components/MlLayerSwipe/MlLayerSwipe.js +4 -5
  95. package/src/components/MlLayerSwitcher/MlLayerSwitcher.css +17 -0
  96. package/src/components/MlLayerSwitcher/MlLayerSwitcher.doc.de.md +3 -0
  97. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +223 -0
  98. package/src/components/MlLayerSwitcher/MlLayerSwitcher.meta_.json +15 -0
  99. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +106 -0
  100. package/src/components/MlLayerSwitcher/assets/sample_1.json +26 -0
  101. package/src/components/MlLayerSwitcher/assets/sample_2.json +22 -0
  102. package/src/components/MlLayerSwitcher/components/LayerBox.js +98 -0
  103. package/src/components/MlMarker/MlMarker.js +1 -1
  104. package/src/components/MlNavigationTools/MlNavigationTools.js +29 -26
  105. package/src/components/MlScaleReference/MlScaleReference.meta.json +1 -1
  106. package/src/components/MlScaleReference/MlScaleReference.stories.js +25 -21
  107. package/src/components/MlShareMapState/MlShareMapState.js +73 -9
  108. package/src/components/MlShareMapState/MlShareMapState.stories.js +24 -1
  109. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +12 -6
  110. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +8 -15
  111. package/src/components/MlWmsLayer/MlWmsLayer.js +1 -1
  112. package/src/components/MlWmsLoader/MlWmsLoader.js +8 -4
  113. package/src/components/MlWmsLoader/MlWmsLoader.meta.json +1 -1
  114. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +5 -4
  115. package/src/decorators/EmptyMapContextDecorator.js +11 -6
  116. package/src/decorators/MapContext3DDecorator.js +25 -20
  117. package/src/decorators/MapContextDashboardDecorator.js +7 -2
  118. package/src/decorators/MapContextDecorator.js +7 -3
  119. package/src/decorators/MapContextKlokantechBasicDecorator.js +8 -4
  120. package/src/decorators/MultiMapContextDecorator.js +2 -1
  121. package/src/hooks/useMap.js +33 -62
  122. package/src/hooks/useMapState.js +3 -3
  123. package/src/hooks/useWms.js +7 -6
  124. package/src/i18n.js +28 -0
  125. package/src/index.js +3 -0
  126. package/src/translations/english.js +4 -0
  127. package/src/translations/german.js +4 -0
  128. package/src/ui_components/ImageLoader.js +73 -0
  129. package/src/ui_components/Sidebar.js +75 -20
  130. package/src/ui_components/TopToolbar.js +18 -18
  131. package/coverage/lcov-report/components/MlLayer/index.html +0 -117
  132. package/coverage/lcov-report/hooks/index.html +0 -147
  133. package/coverage/lcov-report/hooks/useMap.js.html +0 -383
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for hooks/useMapState.js</title>
6
+ <title>Code coverage report for src/hooks/useMapState.js</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../prettify.css" />
9
- <link rel="stylesheet" href="../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
14
+ background-image: url(../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">hooks</a> useMapState.js</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/hooks</a> useMapState.js</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">74.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/47</span>
28
+ <span class='fraction'>35/47</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">36.36% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/22</span>
35
+ <span class='fraction'>8/22</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">71.42% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/7</span>
42
+ <span class='fraction'>5/7</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">73.91% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/46</span>
49
+ <span class='fraction'>34/46</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line low'></div>
64
+ <div class='status-line medium'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -240,20 +240,20 @@
240
240
  <span class="cline-any cline-neutral">&nbsp;</span>
241
241
  <span class="cline-any cline-neutral">&nbsp;</span>
242
242
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-no">&nbsp;</span>
243
+ <span class="cline-any cline-yes">49x</span>
244
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-no">&nbsp;</span>
246
- <span class="cline-any cline-no">&nbsp;</span>
245
+ <span class="cline-any cline-yes">49x</span>
246
+ <span class="cline-any cline-yes">49x</span>
247
247
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-no">&nbsp;</span>
248
+ <span class="cline-any cline-yes">49x</span>
249
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-no">&nbsp;</span>
251
- <span class="cline-any cline-no">&nbsp;</span>
250
+ <span class="cline-any cline-yes">49x</span>
251
+ <span class="cline-any cline-yes">49x</span>
252
252
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-no">&nbsp;</span>
254
- <span class="cline-any cline-no">&nbsp;</span>
253
+ <span class="cline-any cline-yes">49x</span>
254
+ <span class="cline-any cline-yes">49x</span>
255
255
  <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-no">&nbsp;</span>
256
+ <span class="cline-any cline-yes">49x</span>
257
257
  <span class="cline-any cline-neutral">&nbsp;</span>
258
258
  <span class="cline-any cline-neutral">&nbsp;</span>
259
259
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -262,7 +262,7 @@
262
262
  <span class="cline-any cline-neutral">&nbsp;</span>
263
263
  <span class="cline-any cline-neutral">&nbsp;</span>
264
264
  <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-no">&nbsp;</span>
265
+ <span class="cline-any cline-yes">49x</span>
266
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
267
  <span class="cline-any cline-no">&nbsp;</span>
268
268
  <span class="cline-any cline-no">&nbsp;</span>
@@ -281,33 +281,33 @@
281
281
  <span class="cline-any cline-neutral">&nbsp;</span>
282
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-no">&nbsp;</span>
285
- <span class="cline-any cline-no">&nbsp;</span>
286
- <span class="cline-any cline-no">&nbsp;</span>
287
- <span class="cline-any cline-no">&nbsp;</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
289
- <span class="cline-any cline-no">&nbsp;</span>
284
+ <span class="cline-any cline-yes">49x</span>
285
+ <span class="cline-any cline-yes">14x</span>
286
+ <span class="cline-any cline-yes">14x</span>
287
+ <span class="cline-any cline-yes">14x</span>
288
+ <span class="cline-any cline-yes">14x</span>
289
+ <span class="cline-any cline-yes">14x</span>
290
290
  <span class="cline-any cline-neutral">&nbsp;</span>
291
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-no">&nbsp;</span>
294
- <span class="cline-any cline-no">&nbsp;</span>
293
+ <span class="cline-any cline-yes">49x</span>
294
+ <span class="cline-any cline-yes">14x</span>
295
295
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
297
- <span class="cline-any cline-no">&nbsp;</span>
298
- <span class="cline-any cline-no">&nbsp;</span>
299
- <span class="cline-any cline-no">&nbsp;</span>
296
+ <span class="cline-any cline-yes">14x</span>
297
+ <span class="cline-any cline-yes">6x</span>
298
+ <span class="cline-any cline-yes">6x</span>
299
+ <span class="cline-any cline-yes">6x</span>
300
300
  <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
301
+ <span class="cline-any cline-yes">6x</span>
302
302
  <span class="cline-any cline-neutral">&nbsp;</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
306
- <span class="cline-any cline-no">&nbsp;</span>
305
+ <span class="cline-any cline-yes">49x</span>
306
+ <span class="cline-any cline-yes">28x</span>
307
307
  <span class="cline-any cline-neutral">&nbsp;</span>
308
308
  <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-no">&nbsp;</span>
310
- <span class="cline-any cline-no">&nbsp;</span>
309
+ <span class="cline-any cline-yes">14x</span>
310
+ <span class="cline-any cline-yes">14x</span>
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
312
  <span class="cline-any cline-neutral">&nbsp;</span>
313
313
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -319,7 +319,7 @@
319
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
320
  <span class="cline-any cline-neutral">&nbsp;</span>
321
321
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-no">&nbsp;</span>
322
+ <span class="cline-any cline-yes">14x</span>
323
323
  <span class="cline-any cline-no">&nbsp;</span>
324
324
  <span class="cline-any cline-neutral">&nbsp;</span>
325
325
  <span class="cline-any cline-no">&nbsp;</span>
@@ -334,10 +334,10 @@
334
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
335
  <span class="cline-any cline-neutral">&nbsp;</span>
336
336
  <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-no">&nbsp;</span>
338
- <span class="cline-any cline-no">&nbsp;</span>
337
+ <span class="cline-any cline-yes">14x</span>
338
+ <span class="cline-any cline-yes">14x</span>
339
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-no">&nbsp;</span>
340
+ <span class="cline-any cline-yes">14x</span>
341
341
  <span class="cline-any cline-neutral">&nbsp;</span>
342
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
343
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -349,13 +349,13 @@
349
349
  <span class="cline-any cline-neutral">&nbsp;</span>
350
350
  <span class="cline-any cline-neutral">&nbsp;</span>
351
351
  <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
352
+ <span class="cline-any cline-yes">49x</span>
353
353
  <span class="cline-any cline-neutral">&nbsp;</span>
354
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
355
  <span class="cline-any cline-neutral">&nbsp;</span>
356
356
  <span class="cline-any cline-neutral">&nbsp;</span>
357
357
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-yes">4x</span>
359
359
  <span class="cline-any cline-neutral">&nbsp;</span>
360
360
  <span class="cline-any cline-neutral">&nbsp;</span>
361
361
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -367,7 +367,7 @@
367
367
  <span class="cline-any cline-neutral">&nbsp;</span>
368
368
  <span class="cline-any cline-neutral">&nbsp;</span>
369
369
  <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-no">&nbsp;</span>
370
+ <span class="cline-any cline-yes">4x</span>
371
371
  <span class="cline-any cline-neutral">&nbsp;</span>
372
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
373
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -403,22 +403,22 @@ import { MapContext } from "@mapcomponents/react-core";
403
403
  *
404
404
  * @component
405
405
  */
406
- function <span class="fstat-no" title="function not covered" >useMapState(</span>props) {
406
+ function useMapState(props) {
407
407
  // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
408
- const mapContext = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
408
+ const mapContext = useContext(MapContext);
409
409
  &nbsp;
410
- const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
411
- const mapRef = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
410
+ const initializedRef = useRef(false);
411
+ const mapRef = useRef(undefined);
412
412
  &nbsp;
413
- const [center, setCenter] = <span class="cstat-no" title="statement not covered" >useState(undefined);</span>
413
+ const [center, setCenter] = useState(undefined);
414
414
  &nbsp;
415
- const [viewport, setViewport] = <span class="cstat-no" title="statement not covered" >useState(undefined);</span>
416
- const viewportRef = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
415
+ const [viewport, setViewport] = useState(undefined);
416
+ const viewportRef = useRef(undefined);
417
417
  &nbsp;
418
- const [layers, setLayers] = <span class="cstat-no" title="statement not covered" >useState(undefined);</span>
419
- const layersRef = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
418
+ const [layers, setLayers] = useState(undefined);
419
+ const layersRef = useRef(undefined);
420
420
  //const mapRef = useRef(props.map);
421
- const componentId = <span class="cstat-no" title="statement not covered" >useRef(uuidv4());</span>
421
+ const componentId = useRef(uuidv4());
422
422
  &nbsp;
423
423
  &nbsp;
424
424
  /**
@@ -427,13 +427,13 @@ function <span class="fstat-no" title="function not covered" >useMapState(</span
427
427
  *
428
428
  * @param {object} layer
429
429
  */
430
- const layerIdFilter = <span class="cstat-no" title="statement not covered" >useCallback(</span>
430
+ const layerIdFilter = useCallback(
431
431
  <span class="fstat-no" title="function not covered" > (l</span>ayer) =&gt; {
432
- <span class="cstat-no" title="statement not covered" > if (!props.filter.includeBaseLayers &amp;&amp; layer.baseLayer) {</span>
432
+ <span class="cstat-no" title="statement not covered" > if (!props?.filter?.includeBaseLayers &amp;&amp; layer.baseLayer) {</span>
433
433
  <span class="cstat-no" title="statement not covered" > return false;</span>
434
434
  }
435
435
  &nbsp;
436
- <span class="cstat-no" title="statement not covered" > if (typeof props.filter.matchLayerIds !== "undefined") {</span>
436
+ <span class="cstat-no" title="statement not covered" > if (typeof props.filter?.matchLayerIds !== "undefined") {</span>
437
437
  <span class="cstat-no" title="statement not covered" > if (props.filter.matchLayerIds instanceof RegExp) {</span>
438
438
  <span class="cstat-no" title="statement not covered" > return props.filter.matchLayerIds.test(layer.id);</span>
439
439
  } else {
@@ -446,33 +446,33 @@ function <span class="fstat-no" title="function not covered" >useMapState(</span
446
446
  [props.filter]
447
447
  );
448
448
  &nbsp;
449
- const refreshLayerState = <span class="cstat-no" title="statement not covered" >useCallback(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
450
- let _layerState = <span class="cstat-no" title="statement not covered" >mapRef.current.wrapper.layerState.filter(layerIdFilter);</span>
451
- let _layerStateString = <span class="cstat-no" title="statement not covered" >JSON.stringify(_layerState);</span>
452
- <span class="cstat-no" title="statement not covered" > if (layersRef.current !== _layerStateString) {</span>
453
- <span class="cstat-no" title="statement not covered" > layersRef.current = _layerStateString;</span>
454
- <span class="cstat-no" title="statement not covered" > setLayers(_layerState);</span>
449
+ const refreshLayerState = useCallback(() =&gt; {
450
+ let _layerState = mapRef.current.wrapper.layerState.filter(layerIdFilter);
451
+ let _layerStateString = JSON.stringify(_layerState);
452
+ if (layersRef.current !== _layerStateString) {
453
+ layersRef.current = _layerStateString;
454
+ setLayers(_layerState);
455
455
  }
456
- },[layerIdFilter]);
456
+ }, [layerIdFilter]);
457
457
  &nbsp;
458
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
459
- let _componentId = <span class="cstat-no" title="statement not covered" >componentId.current;</span>
458
+ useEffect(() =&gt; {
459
+ let _componentId = componentId.current;
460
460
  &nbsp;
461
- <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
462
- <span class="cstat-no" title="statement not covered" > if (mapRef.current) {</span>
463
- <span class="cstat-no" title="statement not covered" > mapRef.current.cleanup(_componentId);</span>
464
- <span class="cstat-no" title="statement not covered" > mapRef.current = undefined;</span>
461
+ return () =&gt; {
462
+ if (mapRef.current) {
463
+ mapRef.current.cleanup(_componentId);
464
+ mapRef.current = undefined;
465
465
  }
466
- <span class="cstat-no" title="statement not covered" > initializedRef.current = false;</span>
466
+ initializedRef.current = false;
467
467
  };
468
468
  }, []);
469
469
  &nbsp;
470
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
471
- <span class="cstat-no" title="statement not covered" > if (!mapContext.mapExists(props.mapId) || initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
470
+ useEffect(() =&gt; {
471
+ if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
472
472
  // the MapLibre-gl instance (mapContext.getMap(props.mapId)) is accessible here
473
473
  // initialize the layer and add it to the MapLibre-gl instance or do something else with it
474
- <span class="cstat-no" title="statement not covered" > initializedRef.current = true;</span>
475
- <span class="cstat-no" title="statement not covered" > mapRef.current = mapContext.getMap(props.mapId);</span>
474
+ initializedRef.current = true;
475
+ mapRef.current = mapContext.getMap(props.mapId);
476
476
  &nbsp;
477
477
  /*
478
478
  mapRef.current.on(
@@ -484,7 +484,7 @@ function <span class="fstat-no" title="function not covered" >useMapState(</span
484
484
  );
485
485
  */
486
486
  &nbsp;
487
- <span class="cstat-no" title="statement not covered" > if (props?.watch?.viewport) {</span>
487
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (props?.watch?.viewport) {
488
488
  <span class="cstat-no" title="statement not covered" > setViewport(mapRef.current.wrapper.viewportState);</span>
489
489
  &nbsp;
490
490
  <span class="cstat-no" title="statement not covered" > mapRef.current.wrapper.on(</span>
@@ -499,10 +499,10 @@ function <span class="fstat-no" title="function not covered" >useMapState(</span
499
499
  );
500
500
  }
501
501
  &nbsp;
502
- <span class="cstat-no" title="statement not covered" > if (props?.watch?.layers) {</span>
503
- <span class="cstat-no" title="statement not covered" > refreshLayerState();</span>
502
+ if (props?.watch?.layers) {
503
+ refreshLayerState();
504
504
  &nbsp;
505
- <span class="cstat-no" title="statement not covered" > mapRef.current.wrapper.on(</span>
505
+ mapRef.current.wrapper.on(
506
506
  "layerchange",
507
507
  refreshLayerState,
508
508
  {
@@ -514,13 +514,13 @@ function <span class="fstat-no" title="function not covered" >useMapState(</span
514
514
  }
515
515
  }, [mapContext.mapIds, mapContext, props.mapId, refreshLayerState]);
516
516
  &nbsp;
517
- <span class="cstat-no" title="statement not covered" > return {</span>
517
+ return {
518
518
  layers,
519
519
  viewport,
520
520
  };
521
521
  }
522
522
  &nbsp;
523
- <span class="cstat-no" title="statement not covered" >useMapState.defaultProps = {</span>
523
+ useMapState.defaultProps = {
524
524
  mapId: undefined,
525
525
  watch: {
526
526
  layers: true,
@@ -532,7 +532,7 @@ function <span class="fstat-no" title="function not covered" >useMapState(</span
532
532
  },
533
533
  };
534
534
  &nbsp;
535
- <span class="cstat-no" title="statement not covered" >useMapState.propTypes = {</span>
535
+ useMapState.propTypes = {
536
536
  /**
537
537
  * Id of the target MapLibre instance in mapContext
538
538
  */
@@ -565,17 +565,17 @@ export default useMapState;
565
565
  <div class='footer quiet pad2 space-top1 center small'>
566
566
  Code coverage generated by
567
567
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
568
- at Sat Dec 04 2021 10:55:55 GMT+0000 (Coordinated Universal Time)
568
+ at Thu Dec 23 2021 12:19:00 GMT+0000 (Coordinated Universal Time)
569
569
  </div>
570
570
  </div>
571
- <script src="../prettify.js"></script>
571
+ <script src="../../prettify.js"></script>
572
572
  <script>
573
573
  window.onload = function () {
574
574
  prettyPrint();
575
575
  };
576
576
  </script>
577
- <script src="../sorter.js"></script>
578
- <script src="../block-navigation.js"></script>
577
+ <script src="../../sorter.js"></script>
578
+ <script src="../../block-navigation.js"></script>
579
579
  </body>
580
580
  </html>
581
581
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for hooks/useWms.js</title>
6
+ <title>Code coverage report for src/hooks/useWms.js</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../prettify.css" />
9
- <link rel="stylesheet" href="../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
14
+ background-image: url(../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,7 +19,7 @@
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">hooks</a> useWms.js</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/hooks</a> useWms.js</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -185,6 +185,7 @@
185
185
  <span class="cline-any cline-neutral">&nbsp;</span>
186
186
  <span class="cline-any cline-no">&nbsp;</span>
187
187
  <span class="cline-any cline-no">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
189
  <span class="cline-any cline-no">&nbsp;</span>
189
190
  <span class="cline-any cline-neutral">&nbsp;</span>
190
191
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -252,7 +253,6 @@
252
253
  <span class="cline-any cline-neutral">&nbsp;</span>
253
254
  <span class="cline-any cline-neutral">&nbsp;</span>
254
255
  <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-neutral">&nbsp;</span>
256
256
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { useContext, useState, useEffect, useRef } from "react";
257
257
  import { v4 as uuidv4 } from "uuid";
258
258
  import WMSCapabilities from "wms-capabilities";
@@ -280,12 +280,13 @@ function <span class="fstat-no" title="function not covered" >useWms(</span>prop
280
280
  // extract URL parameters from the given URL
281
281
  <span class="cstat-no" title="statement not covered" > clearState();</span>
282
282
  <span class="cstat-no" title="statement not covered" > setError(undefined);</span>
283
- <span class="cstat-no" title="statement not covered" > if (!props.url) <span class="cstat-no" title="statement not covered" >return;</span></span>
283
+ &nbsp;
284
+ <span class="cstat-no" title="statement not covered" > if (!url) <span class="cstat-no" title="statement not covered" >return;</span></span>
284
285
  &nbsp;
285
286
  let _propsUrlParams;
286
- let _wmsUrl = <span class="cstat-no" title="statement not covered" >props.url;</span>
287
- <span class="cstat-no" title="statement not covered" > if (props.url.indexOf("?") !== -1) {</span>
288
- <span class="cstat-no" title="statement not covered" > _propsUrlParams = props.url.split("?");</span>
287
+ let _wmsUrl = <span class="cstat-no" title="statement not covered" >url;</span>
288
+ <span class="cstat-no" title="statement not covered" > if (url.indexOf("?") !== -1) {</span>
289
+ <span class="cstat-no" title="statement not covered" > _propsUrlParams = url.split("?");</span>
289
290
  <span class="cstat-no" title="statement not covered" > _wmsUrl = _propsUrlParams[0];</span>
290
291
  }
291
292
  let _urlParamsFromUrl = <span class="cstat-no" title="statement not covered" >new URLSearchParams(_propsUrlParams?.[1]);</span>
@@ -317,7 +318,7 @@ function <span class="fstat-no" title="function not covered" >useWms(</span>prop
317
318
  <span class="cstat-no" title="statement not covered" > console.log(error);</span>
318
319
  <span class="cstat-no" title="statement not covered" > setError(error.message);</span>
319
320
  });
320
- }, [props.url, props.urlParameters]);
321
+ }, [url, props.urlParameters]);
321
322
  &nbsp;
322
323
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
323
324
  <span class="cstat-no" title="statement not covered" > if (!capabilities?.Service) <span class="cstat-no" title="statement not covered" >return;</span></span>
@@ -347,25 +348,24 @@ function <span class="fstat-no" title="function not covered" >useWms(</span>prop
347
348
  },
348
349
  };
349
350
  &nbsp;
350
- export default useWms;
351
- &nbsp;</pre></td></tr></table></pre>
351
+ export default useWms;</pre></td></tr></table></pre>
352
352
 
353
353
  <div class='push'></div><!-- for sticky footer -->
354
354
  </div><!-- /wrapper -->
355
355
  <div class='footer quiet pad2 space-top1 center small'>
356
356
  Code coverage generated by
357
357
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
358
- at Sat Dec 04 2021 10:55:55 GMT+0000 (Coordinated Universal Time)
358
+ at Thu Dec 23 2021 12:19:00 GMT+0000 (Coordinated Universal Time)
359
359
  </div>
360
360
  </div>
361
- <script src="../prettify.js"></script>
361
+ <script src="../../prettify.js"></script>
362
362
  <script>
363
363
  window.onload = function () {
364
364
  prettyPrint();
365
365
  };
366
366
  </script>
367
- <script src="../sorter.js"></script>
368
- <script src="../block-navigation.js"></script>
367
+ <script src="../../sorter.js"></script>
368
+ <script src="../../block-navigation.js"></script>
369
369
  </body>
370
370
  </html>
371
371