@mapcomponents/react-maplibre 0.1.20 → 0.1.21

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 (83) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/coverage/clover.xml +179 -165
  3. package/coverage/coverage-final.json +6 -6
  4. package/coverage/lcov-report/index.html +36 -36
  5. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.js.html +1 -1
  6. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  7. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.js.html +1 -1
  8. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  9. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.js.html +1 -1
  10. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  11. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +1 -1
  12. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  13. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.js.html +1 -1
  14. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  15. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.js.html +1 -1
  16. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
  17. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  18. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js.html +4 -4
  19. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js.html +1 -1
  21. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlLayer/MlLayer.js.html +1 -1
  23. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.js.html +1 -1
  25. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.js.html +1 -1
  27. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  29. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  30. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  31. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlMarker/MlMarker.js.html +1 -1
  33. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.js.html +1 -1
  35. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  36. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.js.html +1 -1
  37. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  39. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  40. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  41. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +261 -111
  43. package/coverage/lcov-report/src/components/MlShareMapState/index.html +9 -9
  44. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
  45. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  47. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  48. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  49. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  50. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.js.html +49 -13
  51. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +15 -15
  52. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  53. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.js.html +35 -89
  55. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +17 -17
  56. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.js.html +1 -1
  57. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  58. package/coverage/lcov-report/src/hooks/index.html +12 -12
  59. package/coverage/lcov-report/src/hooks/useMap.js.html +40 -28
  60. package/coverage/lcov-report/src/hooks/useMapState.js.html +34 -34
  61. package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
  62. package/coverage/lcov-report/src/i18n.js.html +1 -1
  63. package/coverage/lcov-report/src/index.html +1 -1
  64. package/coverage/lcov-report/src/translations/english.js.html +1 -1
  65. package/coverage/lcov-report/src/translations/german.js.html +1 -1
  66. package/coverage/lcov-report/src/translations/index.html +1 -1
  67. package/coverage/lcov.info +304 -268
  68. package/dist/index.esm.js +69 -59
  69. package/dist/index.esm.js.map +1 -1
  70. package/package.json +1 -1
  71. package/scripts/build-catalogue-markdown-docs.js +5 -3
  72. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +26 -21
  73. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +3 -3
  74. package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.de.md +2 -2
  75. package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.en.md +3 -0
  76. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +2 -2
  77. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +3 -3
  78. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +2 -2
  79. package/src/components/MlShareMapState/MlShareMapState.js +138 -88
  80. package/src/components/MlShareMapState/MlShareMapState.stories.js +79 -29
  81. package/src/components/MlVectorTileLayer/MlVectorTileLayer.js +17 -5
  82. package/src/components/MlWmsLayer/MlWmsLayer.js +16 -34
  83. package/src/hooks/useMap.js +4 -0
@@ -25,28 +25,28 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/87</span>
28
+ <span class='fraction'>0/108</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/42</span>
35
+ <span class='fraction'>0/54</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/10</span>
42
+ <span class='fraction'>0/19</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/81</span>
49
+ <span class='fraction'>0/100</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
85
  </td>
86
86
  <td data-value="0" class="pct low">0%</td>
87
- <td data-value="87" class="abs low">0/87</td>
87
+ <td data-value="108" class="abs low">0/108</td>
88
88
  <td data-value="0" class="pct low">0%</td>
89
- <td data-value="42" class="abs low">0/42</td>
89
+ <td data-value="54" class="abs low">0/54</td>
90
90
  <td data-value="0" class="pct low">0%</td>
91
- <td data-value="10" class="abs low">0/10</td>
91
+ <td data-value="19" class="abs low">0/19</td>
92
92
  <td data-value="0" class="pct low">0%</td>
93
- <td data-value="81" class="abs low">0/81</td>
93
+ <td data-value="100" class="abs low">0/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 Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -769,7 +769,7 @@ export default MlSpatialElevationProfile;
769
769
  <div class='footer quiet pad2 space-top1 center small'>
770
770
  Code coverage generated by
771
771
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
772
- at Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
772
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
773
773
  </div>
774
774
  <script src="../../../prettify.js"></script>
775
775
  <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 Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -688,7 +688,7 @@ export default MlThreeJsLayer;</pre></td></tr></table></pre>
688
688
  <div class='footer quiet pad2 space-top1 center small'>
689
689
  Code coverage generated by
690
690
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
691
- at Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
691
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
692
692
  </div>
693
693
  <script src="../../../prettify.js"></script>
694
694
  <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 Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -295,7 +295,7 @@ export default MlUseMapDebugger;
295
295
  <div class='footer quiet pad2 space-top1 center small'>
296
296
  Code coverage generated by
297
297
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
298
- at Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
298
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
299
299
  </div>
300
300
  <script src="../../../prettify.js"></script>
301
301
  <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 Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">89.36% </span>
26
+ <span class="strong">85.71% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>42/47</span>
28
+ <span class='fraction'>42/49</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">63.63% </span>
33
+ <span class="strong">58.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/22</span>
35
+ <span class='fraction'>14/24</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">88.63% </span>
47
+ <span class="strong">84.78% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>39/44</span>
49
+ <span class='fraction'>39/46</span>
50
50
  </div>
51
51
 
52
52
 
@@ -196,7 +196,19 @@
196
196
  <a name='L131'></a><a href='#L131'>131</a>
197
197
  <a name='L132'></a><a href='#L132'>132</a>
198
198
  <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
200
212
  <span class="cline-any cline-neutral">&nbsp;</span>
201
213
  <span class="cline-any cline-neutral">&nbsp;</span>
202
214
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -298,14 +310,22 @@
298
310
  <span class="cline-any cline-yes">8x</span>
299
311
  <span class="cline-any cline-yes">4x</span>
300
312
  <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
314
+ <span class="cline-any cline-no">&nbsp;</span>
301
315
  <span class="cline-any cline-neutral">&nbsp;</span>
302
316
  <span class="cline-any cline-no">&nbsp;</span>
303
317
  <span class="cline-any cline-no">&nbsp;</span>
304
318
  <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
321
  <span class="cline-any cline-no">&nbsp;</span>
306
322
  <span class="cline-any cline-neutral">&nbsp;</span>
307
323
  <span class="cline-any cline-neutral">&nbsp;</span>
308
324
  <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
329
  <span class="cline-any cline-yes">8x</span>
310
330
  <span class="cline-any cline-neutral">&nbsp;</span>
311
331
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -329,6 +349,10 @@
329
349
  <span class="cline-any cline-neutral">&nbsp;</span>
330
350
  <span class="cline-any cline-neutral">&nbsp;</span>
331
351
  <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
356
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useContext, useRef, useEffect } from "react";
333
357
  import { MapContext } from "@mapcomponents/react-core";
334
358
  import PropTypes from "prop-types";
@@ -431,11 +455,19 @@ const MlVectorTileLayer = (props) =&gt; {
431
455
  useEffect(() =&gt; {
432
456
  if (!mapRef.current) return;
433
457
  &nbsp;
434
- // toggle layer visibility by changing the layout object's visibility property
435
- <span class="cstat-no" title="statement not covered" > if (props.visible) {</span>
436
- <span class="cstat-no" title="statement not covered" > mapRef.current.setLayoutProperty(layerName + idSuffixRef.current, "visibility", "visible");</span>
437
- } else {
438
- <span class="cstat-no" title="statement not covered" > mapRef.current.setLayoutProperty(layerName + idSuffixRef.current, "visibility", "none");</span>
458
+ <span class="cstat-no" title="statement not covered" > for (var key in props.layers) {</span>
459
+ <span class="cstat-no" title="statement not covered" > if (mapRef.current.getLayer(layerIdsRef.current[key])) {</span>
460
+ // toggle layer visibility by changing the layout object's visibility property
461
+ <span class="cstat-no" title="statement not covered" > if (props.visible) {</span>
462
+ <span class="cstat-no" title="statement not covered" > mapContext</span>
463
+ .getMap(props.mapId)
464
+ .setLayoutProperty(layerIdsRef.current[key], "visibility", "visible");
465
+ } else {
466
+ <span class="cstat-no" title="statement not covered" > mapContext</span>
467
+ .getMap(props.mapId)
468
+ .setLayoutProperty(layerIdsRef.current[key], "visibility", "none");
469
+ }
470
+ }
439
471
  }
440
472
  }, [props.visible]);
441
473
  &nbsp;
@@ -455,6 +487,10 @@ MlVectorTileLayer.propTypes = {
455
487
  * Object that hold layers
456
488
  */
457
489
  layers: PropTypes.object,
490
+ /**
491
+ * Boolean value to control the visibility of this layer
492
+ */
493
+ visible: PropTypes.bool,
458
494
  /**
459
495
  * String of the URL of a wms layer
460
496
  */
@@ -469,7 +505,7 @@ export default MlVectorTileLayer;
469
505
  <div class='footer quiet pad2 space-top1 center small'>
470
506
  Code coverage generated by
471
507
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
472
- at Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
508
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
473
509
  </div>
474
510
  <script src="../../../prettify.js"></script>
475
511
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">89.36% </span>
26
+ <span class="strong">85.71% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>42/47</span>
28
+ <span class='fraction'>42/49</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">63.63% </span>
33
+ <span class="strong">58.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/22</span>
35
+ <span class='fraction'>14/24</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">88.63% </span>
47
+ <span class="strong">84.78% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>39/44</span>
49
+ <span class='fraction'>39/46</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="MlVectorTileLayer.js"><a href="MlVectorTileLayer.js.html">MlVectorTileLayer.js</a></td>
83
- <td data-value="89.36" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
83
+ <td data-value="85.71" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
85
85
  </td>
86
- <td data-value="89.36" class="pct high">89.36%</td>
87
- <td data-value="47" class="abs high">42/47</td>
88
- <td data-value="63.63" class="pct medium">63.63%</td>
89
- <td data-value="22" class="abs medium">14/22</td>
86
+ <td data-value="85.71" class="pct high">85.71%</td>
87
+ <td data-value="49" class="abs high">42/49</td>
88
+ <td data-value="58.33" class="pct medium">58.33%</td>
89
+ <td data-value="24" class="abs medium">14/24</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="6" class="abs high">6/6</td>
92
- <td data-value="88.63" class="pct high">88.63%</td>
93
- <td data-value="44" class="abs high">39/44</td>
92
+ <td data-value="84.78" class="pct high">84.78%</td>
93
+ <td data-value="46" class="abs high">39/46</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 Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -262,7 +262,7 @@ export default MlWmsFeatureInfoPopup;
262
262
  <div class='footer quiet pad2 space-top1 center small'>
263
263
  Code coverage generated by
264
264
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
265
- at Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
265
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
266
266
  </div>
267
267
  <script src="../../../prettify.js"></script>
268
268
  <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 Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">83.33% </span>
26
+ <span class="strong">86.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>35/42</span>
28
+ <span class='fraction'>26/30</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">63.63% </span>
33
+ <span class="strong">81.25% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/22</span>
35
+ <span class='fraction'>13/16</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/5</span>
42
+ <span class='fraction'>3/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">84.61% </span>
47
+ <span class="strong">85.71% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>33/39</span>
49
+ <span class='fraction'>24/28</span>
50
50
  </div>
51
51
 
52
52
 
@@ -229,25 +229,7 @@
229
229
  <a name='L164'></a><a href='#L164'>164</a>
230
230
  <a name='L165'></a><a href='#L165'>165</a>
231
231
  <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
232
+ <a name='L167'></a><a href='#L167'>167</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
251
233
  <span class="cline-any cline-neutral">&nbsp;</span>
252
234
  <span class="cline-any cline-neutral">&nbsp;</span>
253
235
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -294,33 +276,15 @@
294
276
  <span class="cline-any cline-neutral">&nbsp;</span>
295
277
  <span class="cline-any cline-neutral">&nbsp;</span>
296
278
  <span class="cline-any cline-yes">1x</span>
297
- <span class="cline-any cline-yes">8x</span>
279
+ <span class="cline-any cline-yes">12x</span>
298
280
  <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-yes">8x</span>
300
- <span class="cline-any cline-yes">8x</span>
301
- <span class="cline-any cline-yes">8x</span>
302
- <span class="cline-any cline-yes">8x</span>
281
+ <span class="cline-any cline-yes">12x</span>
282
+ <span class="cline-any cline-yes">12x</span>
303
283
  <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-yes">8x</span>
305
- <span class="cline-any cline-yes">4x</span>
306
- <span class="cline-any cline-yes">4x</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-yes">2x</span>
309
- <span class="cline-any cline-yes">2x</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-yes">2x</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-yes">2x</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-yes">8x</span>
284
+ <span class="cline-any cline-yes">12x</span>
318
285
  <span class="cline-any cline-yes">8x</span>
319
286
  <span class="cline-any cline-neutral">&nbsp;</span>
320
287
  <span class="cline-any cline-yes">4x</span>
321
- <span class="cline-any cline-yes">4x</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">4x</span>
324
288
  <span class="cline-any cline-neutral">&nbsp;</span>
325
289
  <span class="cline-any cline-neutral">&nbsp;</span>
326
290
  <span class="cline-any cline-yes">4x</span>
@@ -367,18 +331,18 @@
367
331
  <span class="cline-any cline-neutral">&nbsp;</span>
368
332
  <span class="cline-any cline-neutral">&nbsp;</span>
369
333
  <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-yes">12x</span>
370
335
  <span class="cline-any cline-yes">8x</span>
371
- <span class="cline-any cline-yes">4x</span>
372
336
  <span class="cline-any cline-neutral">&nbsp;</span>
373
337
  <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-no">&nbsp;</span>
375
- <span class="cline-any cline-no">&nbsp;</span>
338
+ <span class="cline-any cline-yes">4x</span>
339
+ <span class="cline-any cline-yes">4x</span>
376
340
  <span class="cline-any cline-neutral">&nbsp;</span>
377
341
  <span class="cline-any cline-no">&nbsp;</span>
378
342
  <span class="cline-any cline-neutral">&nbsp;</span>
379
343
  <span class="cline-any cline-neutral">&nbsp;</span>
380
344
  <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">8x</span>
345
+ <span class="cline-any cline-yes">12x</span>
382
346
  <span class="cline-any cline-neutral">&nbsp;</span>
383
347
  <span class="cline-any cline-neutral">&nbsp;</span>
384
348
  <span class="cline-any cline-yes">1x</span>
@@ -431,8 +395,8 @@
431
395
  <span class="cline-any cline-neutral">&nbsp;</span>
432
396
  <span class="cline-any cline-neutral">&nbsp;</span>
433
397
  <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useContext, useRef, useEffect } from "react";
435
- import { MapContext } from "@mapcomponents/react-core";
398
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect } from "react";
399
+ import useMap from "../../hooks/useMap";
436
400
  &nbsp;
437
401
  import PropTypes from "prop-types";
438
402
  import { v4 as uuidv4 } from "uuid";
@@ -478,31 +442,13 @@ const defaultProps = {
478
442
  * @component
479
443
  */
480
444
  const MlWmsLayer = (props) =&gt; {
481
- const mapContext = useContext(MapContext);
445
+ const mapHook = useMap({ mapId: props.mapId, waitForLayer: props.insertBeforeLayer });
482
446
  &nbsp;
483
- const componentId = useRef(props.layerId || ("MlWmsLayer-" + uuidv4()));
484
- const mapRef = useRef(null);
485
447
  const initializedRef = useRef(false);
486
- const layerId = useRef(props.layerId || componentId.current);
448
+ const layerId = useRef(props.layerId || "MlWmsLayer-" + mapHook.componentId);
487
449
  &nbsp;
488
450
  useEffect(() =&gt; {
489
- let _componentId = componentId.current;
490
- return () =&gt; {
491
- // This is the cleanup function, it is called when this react component is removed from react-dom
492
- if (mapRef.current) {
493
- mapRef.current.cleanup(_componentId);
494
- &nbsp;
495
- mapRef.current = null;
496
- }
497
- initializedRef.current = false;
498
- };
499
- }, []);
500
- &nbsp;
501
- useEffect(() =&gt; {
502
- if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
503
- &nbsp;
504
- mapRef.current = mapContext.getMap(props.mapId);
505
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span>
451
+ if (!mapHook.map || initializedRef.current) return;
506
452
  &nbsp;
507
453
  initializedRef.current = true;
508
454
  &nbsp;
@@ -523,7 +469,7 @@ const MlWmsLayer = (props) =&gt; {
523
469
  let urlParamsStr =
524
470
  decodeURIComponent(urlParams.toString()) + "".replace(/%2F/g, "/").replace(/%3A/g, ":");
525
471
  &nbsp;
526
- mapRef.current.addSource(
472
+ mapHook.map.addSource(
527
473
  layerId.current,
528
474
  {
529
475
  type: "raster",
@@ -532,35 +478,35 @@ const MlWmsLayer = (props) =&gt; {
532
478
  attribution: props.attribution,
533
479
  ...props.sourceOptions,
534
480
  },
535
- componentId.current
481
+ mapHook.componentId
536
482
  );
537
483
  &nbsp;
538
- mapRef.current.addLayer(
484
+ mapHook.map.addLayer(
539
485
  {
540
486
  id: layerId.current,
541
487
  type: "raster",
542
- source: componentId.current,
488
+ source: layerId.current,
543
489
  ...props.layerOptions,
544
490
  },
545
491
  props.insertBeforeLayer,
546
- componentId.current
492
+ mapHook.componentId
547
493
  );
548
494
  &nbsp;
549
495
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!props.visible) {
550
- <span class="cstat-no" title="statement not covered" > mapRef.current.setLayoutProperty(componentId.current, "visibility", "none");</span>
496
+ <span class="cstat-no" title="statement not covered" > mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");</span>
551
497
  }
552
- }, [mapContext.mapIds, mapContext, props]);
498
+ }, [mapHook.map, props]);
553
499
  &nbsp;
554
500
  useEffect(() =&gt; {
555
- if (!mapRef.current || <span class="branch-1 cbranch-no" title="branch not covered" >!initializedRef.current)</span> return;
501
+ if (!mapHook.map || !initializedRef.current) return;
556
502
  &nbsp;
557
503
  // toggle layer visibility by changing the layout object's visibility property
558
- <span class="cstat-no" title="statement not covered" > if (props.visible) {</span>
559
- <span class="cstat-no" title="statement not covered" > mapRef.current.setLayoutProperty(componentId.current, "visibility", "visible");</span>
560
- } else {
561
- <span class="cstat-no" title="statement not covered" > mapRef.current.setLayoutProperty(componentId.current, "visibility", "none");</span>
504
+ if (props.visible) {
505
+ mapHook.map.setLayoutProperty(layerId.current, "visibility", "visible");
506
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
507
+ <span class="cstat-no" title="statement not covered" > mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");</span>
562
508
  }
563
- }, [props.visible]);
509
+ }, [props.visible, mapHook.map]);
564
510
  &nbsp;
565
511
  return &lt;&gt;&lt;/&gt;;
566
512
  };
@@ -622,7 +568,7 @@ export default MlWmsLayer;
622
568
  <div class='footer quiet pad2 space-top1 center small'>
623
569
  Code coverage generated by
624
570
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
625
- at Mon Jan 17 2022 10:02:27 GMT+0000 (Coordinated Universal Time)
571
+ at Fri Jan 21 2022 19:54:16 GMT+0000 (Coordinated Universal Time)
626
572
  </div>
627
573
  <script src="../../../prettify.js"></script>
628
574
  <script>