@mapcomponents/react-maplibre 0.1.58 → 0.1.60

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 (102) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/coverage/clover.xml +59 -55
  3. package/coverage/coverage-final.json +6 -6
  4. package/coverage/lcov-report/index.html +34 -34
  5. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +1 -1
  6. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  7. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +1 -1
  8. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  9. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
  10. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  11. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +11 -11
  12. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +13 -13
  13. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +1 -1
  14. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  15. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  16. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +1 -1
  18. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  19. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +1 -1
  20. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
  21. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +1 -1
  23. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +1 -1
  25. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +1 -1
  27. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  29. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  30. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +1 -1
  31. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  36. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  39. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  40. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
  41. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  43. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  44. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +1 -1
  45. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  47. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
  48. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  50. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  52. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  53. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
  54. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  55. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  56. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
  58. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  59. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  60. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  61. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +92 -146
  62. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +21 -21
  63. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  64. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  65. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +1 -1
  66. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  67. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +1 -1
  68. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  69. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +1 -1
  70. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  71. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  72. package/coverage/lcov-report/src/contexts/index.html +1 -1
  73. package/coverage/lcov-report/src/hooks/index.html +11 -11
  74. package/coverage/lcov-report/src/hooks/{exportMap → useExportMap}/index.html +3 -3
  75. package/coverage/lcov-report/src/hooks/{exportMap → useExportMap}/index.ts.html +4 -4
  76. package/coverage/lcov-report/src/hooks/{exportMap → useExportMap}/lib.ts.html +4 -4
  77. package/coverage/lcov-report/src/hooks/useLayer.ts.html +1 -1
  78. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +9 -9
  79. package/coverage/lcov-report/src/hooks/useMap.ts.html +4 -4
  80. package/coverage/lcov-report/src/hooks/useMapState.ts.html +1 -1
  81. package/coverage/lcov-report/src/hooks/useSource.ts.html +1 -1
  82. package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
  83. package/coverage/lcov-report/src/index.html +1 -1
  84. package/coverage/lcov-report/src/index.ts.html +3 -3
  85. package/coverage/lcov.info +104 -82
  86. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +1 -1
  87. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +1 -1
  88. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.d.ts +5 -24
  89. package/dist/hooks/useExportMap/index.d.ts +11 -0
  90. package/dist/hooks/useExportMap/lib.d.ts +36 -0
  91. package/dist/index.d.ts +2 -2
  92. package/dist/index.esm.js +994 -445
  93. package/dist/index.esm.js.map +1 -1
  94. package/package.json +1 -1
  95. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +1 -1
  96. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +3 -3
  97. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +15 -9
  98. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +7 -6
  99. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +59 -77
  100. package/src/hooks/{exportMap → useExportMap}/index.ts +1 -1
  101. package/src/hooks/{exportMap → useExportMap}/lib.ts +1 -1
  102. package/src/index.ts +2 -2
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80% </span>
26
+ <span class="strong">79.24% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>36/45</span>
28
+ <span class='fraction'>42/53</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">59.09% </span>
33
+ <span class="strong">65.62% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/22</span>
35
+ <span class='fraction'>21/32</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">80% </span>
40
+ <span class="strong">88.88% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/5</span>
42
+ <span class='fraction'>8/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.95% </span>
47
+ <span class="strong">84.78% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>34/42</span>
49
+ <span class='fraction'>39/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 high'></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>
@@ -202,25 +202,8 @@
202
202
  <a name='L137'></a><a href='#L137'>137</a>
203
203
  <a name='L138'></a><a href='#L138'>138</a>
204
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>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
205
+ <a name='L140'></a><a href='#L140'>140</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
207
  <span class="cline-any cline-neutral">&nbsp;</span>
225
208
  <span class="cline-any cline-neutral">&nbsp;</span>
226
209
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -249,22 +232,18 @@
249
232
  <span class="cline-any cline-yes">12x</span>
250
233
  <span class="cline-any cline-yes">12x</span>
251
234
  <span class="cline-any cline-yes">12x</span>
252
- <span class="cline-any cline-yes">12x</span>
253
235
  <span class="cline-any cline-neutral">&nbsp;</span>
254
236
  <span class="cline-any cline-yes">12x</span>
255
- <span class="cline-any cline-yes">8x</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-yes">4x</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-yes">4x</span>
260
- <span class="cline-any cline-no">&nbsp;</span>
261
- <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-yes">12x</span>
262
238
  <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-yes">8x</span>
263
240
  <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-yes">8x</span>
264
242
  <span class="cline-any cline-yes">4x</span>
265
243
  <span class="cline-any cline-neutral">&nbsp;</span>
266
244
  <span class="cline-any cline-neutral">&nbsp;</span>
267
245
  <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-yes">8x</span>
268
247
  <span class="cline-any cline-neutral">&nbsp;</span>
269
248
  <span class="cline-any cline-neutral">&nbsp;</span>
270
249
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -273,13 +252,12 @@
273
252
  <span class="cline-any cline-neutral">&nbsp;</span>
274
253
  <span class="cline-any cline-neutral">&nbsp;</span>
275
254
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">4x</span>
277
- <span class="cline-any cline-yes">4x</span>
278
- <span class="cline-any cline-yes">4x</span>
279
255
  <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-yes">4x</span>
281
256
  <span class="cline-any cline-neutral">&nbsp;</span>
282
257
  <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-yes">8x</span>
259
+ <span class="cline-any cline-yes">8x</span>
260
+ <span class="cline-any cline-yes">8x</span>
283
261
  <span class="cline-any cline-neutral">&nbsp;</span>
284
262
  <span class="cline-any cline-neutral">&nbsp;</span>
285
263
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -295,11 +273,11 @@
295
273
  <span class="cline-any cline-neutral">&nbsp;</span>
296
274
  <span class="cline-any cline-neutral">&nbsp;</span>
297
275
  <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-yes">4x</span>
299
- <span class="cline-any cline-yes">4x</span>
276
+ <span class="cline-any cline-yes">8x</span>
277
+ <span class="cline-any cline-yes">8x</span>
300
278
  <span class="cline-any cline-neutral">&nbsp;</span>
301
279
  <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-yes">4x</span>
280
+ <span class="cline-any cline-yes">8x</span>
303
281
  <span class="cline-any cline-neutral">&nbsp;</span>
304
282
  <span class="cline-any cline-neutral">&nbsp;</span>
305
283
  <span class="cline-any cline-no">&nbsp;</span>
@@ -313,16 +291,11 @@
313
291
  <span class="cline-any cline-neutral">&nbsp;</span>
314
292
  <span class="cline-any cline-neutral">&nbsp;</span>
315
293
  <span class="cline-any cline-yes">12x</span>
316
- <span class="cline-any cline-yes">8x</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-yes">8x</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-yes">12x</span>
322
- <span class="cline-any cline-yes">8x</span>
294
+ <span class="cline-any cline-yes">4x</span>
323
295
  <span class="cline-any cline-neutral">&nbsp;</span>
324
296
  <span class="cline-any cline-yes">4x</span>
325
297
  <span class="cline-any cline-yes">4x</span>
298
+ <span class="cline-any cline-yes">4x</span>
326
299
  <span class="cline-any cline-neutral">&nbsp;</span>
327
300
  <span class="cline-any cline-yes">4x</span>
328
301
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -331,10 +304,6 @@
331
304
  <span class="cline-any cline-no">&nbsp;</span>
332
305
  <span class="cline-any cline-neutral">&nbsp;</span>
333
306
  <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
307
  <span class="cline-any cline-yes">4x</span>
339
308
  <span class="cline-any cline-neutral">&nbsp;</span>
340
309
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -345,49 +314,45 @@
345
314
  <span class="cline-any cline-no">&nbsp;</span>
346
315
  <span class="cline-any cline-neutral">&nbsp;</span>
347
316
  <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
317
  <span class="cline-any cline-yes">4x</span>
353
318
  <span class="cline-any cline-neutral">&nbsp;</span>
354
319
  <span class="cline-any cline-neutral">&nbsp;</span>
355
320
  <span class="cline-any cline-neutral">&nbsp;</span>
356
321
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">12x</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-yes">10x</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</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
322
  <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-yes">12x</span>
324
+ <span class="cline-any cline-yes">8x</span>
325
+ <span class="cline-any cline-yes">8x</span>
369
326
  <span class="cline-any cline-neutral">&nbsp;</span>
370
327
  <span class="cline-any cline-neutral">&nbsp;</span>
371
328
  <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-yes">12x</span>
330
+ <span class="cline-any cline-yes">8x</span>
331
+ <span class="cline-any cline-yes">4x</span>
372
332
  <span class="cline-any cline-neutral">&nbsp;</span>
373
333
  <span class="cline-any cline-neutral">&nbsp;</span>
374
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-yes">12x</span>
336
+ <span class="cline-any cline-yes">8x</span>
337
+ <span class="cline-any cline-yes">4x</span>
375
338
  <span class="cline-any cline-neutral">&nbsp;</span>
376
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-yes">12x</span>
377
341
  <span class="cline-any cline-neutral">&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></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useCallback } from "react";
381
- import useMap from "../../hooks/useMap";
382
- import PropTypes from "prop-types";
345
+ import useMap from '../../hooks/useMap';
346
+ import { LayerSpecification } from 'maplibre-gl';
347
+ import { VectorSourceSpecification } from 'maplibre-gl';
383
348
  &nbsp;
384
349
  interface MlVectorTileLayerProps {
385
350
  mapId?: string;
386
351
  insertBeforeLayer?: string;
387
352
  layerId?: string;
388
- sourceOptions?: any;
353
+ sourceOptions?: VectorSourceSpecification;
389
354
  url?: string;
390
- layers?: any;
355
+ layers: LayerSpecification[];
391
356
  }
392
357
  &nbsp;
393
358
  /**
@@ -402,137 +367,118 @@ const MlVectorTileLayer = (props: MlVectorTileLayerProps) =&gt; {
402
367
  waitForLayer: props.insertBeforeLayer,
403
368
  });
404
369
  &nbsp;
405
- const layerIdsRef = useRef({});
406
- const layerId = useRef(props.layerId || "MlVectorTileLayer-" + mapHook.componentId);
370
+ const layerId = useRef(props.layerId || 'MlVectorTileLayer-' + mapHook.componentId);
407
371
  const layerPaintConfsRef = useRef({});
408
372
  const layerLayoutConfsRef = useRef({});
409
373
  const initializedRef = useRef(false);
410
374
  &nbsp;
411
- const createLayer = useCallback(() =&gt; {
375
+ const createLayers = useCallback(() =&gt; {
412
376
  if (!mapHook.map) return;
413
377
  &nbsp;
414
378
  initializedRef.current = true;
415
379
  &nbsp;
416
- <span class="missing-if-branch" title="if path not taken" >I</span>if (mapHook.map.map.getLayer(layerId.current)) {
417
- <span class="cstat-no" title="statement not covered" > mapHook.cleanup();</span>
380
+ if (mapHook.map.map.getSource(layerId.current)) {
381
+ mapHook.cleanup();
418
382
  }
419
383
  &nbsp;
420
- // Add the new layer to the openlayers instance once it is available
384
+ // Add the new layer to the maplibre instance once it is available
421
385
  mapHook.map.addSource(
422
386
  layerId.current,
423
387
  {
424
- type: "vector",
388
+ type: 'vector',
425
389
  tiles: [props.url],
426
390
  tileSize: 512,
427
- attribution: "",
391
+ attribution: '',
428
392
  ...props.sourceOptions,
429
393
  },
430
394
  mapHook.componentId
431
395
  );
432
396
  &nbsp;
433
- for (let key in props.layers) {
434
- let _layerId = layerId.current + "_" + key;
435
- layerIdsRef.current[key] = _layerId;
436
- &nbsp;
397
+ props.layers.forEach((layer) =&gt; {
398
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!mapHook.map) <span class="cstat-no" title="statement not covered" >return;</span>
437
399
  mapHook.map.addLayer(
438
400
  {
439
- id: _layerId,
440
401
  source: layerId.current,
441
- type: "line",
442
402
  minzoom: 0,
443
403
  maxzoom: 22,
444
404
  layout: {},
445
405
  paint: {
446
- "line-opacity": 0.5,
447
- "line-color": "rgb(80, 80, 80)",
448
- "line-width": 2,
406
+ 'line-opacity': 0.5,
407
+ 'line-color': 'rgb(80, 80, 80)',
408
+ 'line-width': 2,
449
409
  },
450
- ...props.layers[key],
410
+ ...layer,
451
411
  },
452
412
  props.insertBeforeLayer,
453
413
  mapHook.componentId
454
414
  );
455
- layerPaintConfsRef.current[key] = JSON.stringify(props.layers[key].paint);
456
- layerLayoutConfsRef.current[key] = JSON.stringify(props.layers[key].layout);
415
+ layerPaintConfsRef.current[layer.id] = JSON.stringify(layer.paint);
416
+ layerLayoutConfsRef.current[layer.id] = JSON.stringify(layer.layout);
457
417
  &nbsp;
458
418
  // recreate layer if style has changed
459
419
  mapHook.map.on(
460
- "styledata",
420
+ 'styledata',
461
421
  <span class="fstat-no" title="function not covered" > ()</span> =&gt; {
462
422
  <span class="cstat-no" title="statement not covered" > if (initializedRef.current &amp;&amp; !mapHook.map?.map.getSource(layerId.current)) {</span>
463
- <span class="cstat-no" title="statement not covered" > console.log("Recreate Layer " + layerId.current);</span>
464
- <span class="cstat-no" title="statement not covered" > createLayer();</span>
423
+ <span class="cstat-no" title="statement not covered" > console.log('Recreate Layer ' + layerId.current);</span>
424
+ <span class="cstat-no" title="statement not covered" > createLayers();</span>
465
425
  }
466
426
  },
467
427
  mapHook.componentId
468
428
  );
469
- }
429
+ });
470
430
  }, [mapHook.map, props]);
471
431
  &nbsp;
472
- useEffect(() =&gt; {
473
- <span class="missing-if-branch" title="if path not taken" >I</span>if (initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span>
474
- &nbsp;
475
- createLayer();
476
- }, [createLayer]);
432
+ const updateLayers = useCallback(() =&gt; {
433
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span>
477
434
  &nbsp;
478
- useEffect(() =&gt; {
479
- if (!mapHook.map || !initializedRef.current) return;
480
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
481
- for (var key in props.layers) {
482
- <span class="missing-if-branch" title="else path not taken" >E</span>if (mapHook.map.map.getLayer(layerIdsRef.current[key])) {
435
+ props.layers.forEach((layer) =&gt; {
436
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!mapHook.map) <span class="cstat-no" title="statement not covered" >return;</span>
437
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (mapHook.map.map.getLayer(layer.id)) {
483
438
  // update changed paint property
484
- let layerPaintConfString = JSON.stringify(props.layers[key].paint);
439
+ const layerPaintConfString = JSON.stringify(layer.paint);
485
440
  &nbsp;
486
- <span class="missing-if-branch" title="if path not taken" >I</span>if (layerPaintConfString !== layerPaintConfsRef.current[key]) {
487
- <span class="cstat-no" title="statement not covered" > for (let paintKey in props.layers[key].paint) {</span>
488
- <span class="cstat-no" title="statement not covered" > mapHook.map.map.setPaintProperty(</span>
489
- layerIdsRef.current[key],
490
- paintKey,
491
- props.layers[key].paint[paintKey]
492
- );
441
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (layerPaintConfString !== layerPaintConfsRef.current[layer.id]) {
442
+ <span class="cstat-no" title="statement not covered" > for (const paintKey in layer.paint) {</span>
443
+ <span class="cstat-no" title="statement not covered" > mapHook.map.map.setPaintProperty(layer.id, paintKey, layer.paint[paintKey]);</span>
493
444
  }
494
445
  }
495
- layerPaintConfsRef.current[key] = layerPaintConfString;
446
+ layerPaintConfsRef.current[layer.id] = layerPaintConfString;
496
447
  &nbsp;
497
448
  // update changed layout property
498
- let layerLayoutConfString = JSON.stringify(props.layers[key].layout);
449
+ const layerLayoutConfString = JSON.stringify(layer.layout);
499
450
  &nbsp;
500
- <span class="missing-if-branch" title="if path not taken" >I</span>if (layerLayoutConfString !== layerLayoutConfsRef.current[key]) {
501
- <span class="cstat-no" title="statement not covered" > for (let layoutKey in props.layers[key].layout) {</span>
502
- <span class="cstat-no" title="statement not covered" > mapHook.map.map.setLayoutProperty(</span>
503
- layerIdsRef.current[key],
504
- layoutKey,
505
- props.layers[key].layout[layoutKey]
506
- );
451
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (layerLayoutConfString !== layerLayoutConfsRef.current[layer.id]) {
452
+ <span class="cstat-no" title="statement not covered" > for (const layoutKey in layer.layout) {</span>
453
+ <span class="cstat-no" title="statement not covered" > mapHook.map.map.setLayoutProperty(layer.id, layoutKey, layer.layout[layoutKey]);</span>
507
454
  }
508
455
  }
509
- layerLayoutConfsRef.current[key] = layerLayoutConfString;
456
+ layerLayoutConfsRef.current[layer.id] = layerLayoutConfString;
510
457
  }
511
- }
458
+ });
459
+ }, [mapHook.map, props.layers]);
460
+ &nbsp;
461
+ // initial layer creation
462
+ useEffect(() =&gt; {
463
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span>
464
+ createLayers();
465
+ }, [createLayers]);
466
+ &nbsp;
467
+ // if layers get removed or added
468
+ useEffect(() =&gt; {
469
+ if (!mapHook.map || !initializedRef.current) return;
470
+ createLayers();
471
+ }, [props.layers.length, mapHook.map]);
472
+ &nbsp;
473
+ // on layout/paint update
474
+ useEffect(() =&gt; {
475
+ if (!mapHook.map || !initializedRef.current) return;
476
+ updateLayers();
512
477
  }, [props.layers, mapHook.map]);
513
478
  &nbsp;
514
479
  return &lt;&gt;&lt;/&gt;;
515
480
  };
516
481
  &nbsp;
517
- MlVectorTileLayer.propTypes = {
518
- /**
519
- * Id of the target MapLibre instance in mapContext
520
- */
521
- mapId: PropTypes.string,
522
- /**
523
- * Options object that will be used as first parameter on the MapLibreGl.addSource call see MapLibre source options documentation.
524
- */
525
- sourceOptions: PropTypes.object,
526
- /**
527
- * Object that hold layers
528
- */
529
- layers: PropTypes.object,
530
- /**
531
- * String of the URL of a wms layer
532
- */
533
- url: PropTypes.string,
534
- };
535
- &nbsp;
536
482
  export default MlVectorTileLayer;
537
483
  &nbsp;</pre></td></tr></table></pre>
538
484
 
@@ -541,7 +487,7 @@ export default MlVectorTileLayer;
541
487
  <div class='footer quiet pad2 space-top1 center small'>
542
488
  Code coverage generated by
543
489
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
544
- at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
490
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
545
491
  </div>
546
492
  <script src="../../../prettify.js"></script>
547
493
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80% </span>
26
+ <span class="strong">79.24% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>36/45</span>
28
+ <span class='fraction'>42/53</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">59.09% </span>
33
+ <span class="strong">65.62% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/22</span>
35
+ <span class='fraction'>21/32</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">80% </span>
40
+ <span class="strong">88.88% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/5</span>
42
+ <span class='fraction'>8/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.95% </span>
47
+ <span class="strong">84.78% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>34/42</span>
49
+ <span class='fraction'>39/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 high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -79,18 +79,18 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file high" data-value="MlVectorTileLayer.tsx"><a href="MlVectorTileLayer.tsx.html">MlVectorTileLayer.tsx</a></td>
83
- <td data-value="80" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
82
+ <td class="file medium" data-value="MlVectorTileLayer.tsx"><a href="MlVectorTileLayer.tsx.html">MlVectorTileLayer.tsx</a></td>
83
+ <td data-value="79.24" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 79%"></div><div class="cover-empty" style="width: 21%"></div></div>
85
85
  </td>
86
- <td data-value="80" class="pct high">80%</td>
87
- <td data-value="45" class="abs high">36/45</td>
88
- <td data-value="59.09" class="pct medium">59.09%</td>
89
- <td data-value="22" class="abs medium">13/22</td>
90
- <td data-value="80" class="pct high">80%</td>
91
- <td data-value="5" class="abs high">4/5</td>
92
- <td data-value="80.95" class="pct high">80.95%</td>
93
- <td data-value="42" class="abs high">34/42</td>
86
+ <td data-value="79.24" class="pct medium">79.24%</td>
87
+ <td data-value="53" class="abs medium">42/53</td>
88
+ <td data-value="65.62" class="pct medium">65.62%</td>
89
+ <td data-value="32" class="abs medium">21/32</td>
90
+ <td data-value="88.88" class="pct high">88.88%</td>
91
+ <td data-value="9" class="abs high">8/9</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 Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Nov 04 2022 12:45:22 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 Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
265
+ at Fri Nov 04 2022 12:45:22 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 Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -670,7 +670,7 @@ export default MlWmsLayer;
670
670
  <div class='footer quiet pad2 space-top1 center small'>
671
671
  Code coverage generated by
672
672
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
673
- at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
673
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
674
674
  </div>
675
675
  <script src="../../../prettify.js"></script>
676
676
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -1021,7 +1021,7 @@ export default MlWmsLoader;
1021
1021
  <div class='footer quiet pad2 space-top1 center small'>
1022
1022
  Code coverage generated by
1023
1023
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1024
- at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
1024
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
1025
1025
  </div>
1026
1026
  <script src="../../../prettify.js"></script>
1027
1027
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -343,7 +343,7 @@ export default MapContext;</pre></td></tr></table></pre>
343
343
  <div class='footer quiet pad2 space-top1 center small'>
344
344
  Code coverage generated by
345
345
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
346
- at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
346
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
347
347
  </div>
348
348
  <script src="../../prettify.js"></script>
349
349
  <script>
@@ -88,7 +88,7 @@ export default SimpleDataContext;
88
88
  <div class='footer quiet pad2 space-top1 center small'>
89
89
  Code coverage generated by
90
90
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
91
- at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
91
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
92
92
  </div>
93
93
  <script src="../../prettify.js"></script>
94
94
  <script>
@@ -262,7 +262,7 @@ export default SimpleDataProvider;
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 Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
265
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
266
266
  </div>
267
267
  <script src="../../prettify.js"></script>
268
268
  <script>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at Tue Oct 04 2022 11:59:51 GMT+0000 (Coordinated Universal Time)
134
+ at Fri Nov 04 2022 12:45:22 GMT+0000 (Coordinated Universal Time)
135
135
  </div>
136
136
  <script src="../../prettify.js"></script>
137
137
  <script>