@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
 
@@ -246,13 +246,72 @@
246
246
  <a name='L181'></a><a href='#L181'>181</a>
247
247
  <a name='L182'></a><a href='#L182'>182</a>
248
248
  <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
250
300
  <span class="cline-any cline-neutral">&nbsp;</span>
251
301
  <span class="cline-any cline-neutral">&nbsp;</span>
252
302
  <span class="cline-any cline-neutral">&nbsp;</span>
253
303
  <span class="cline-any cline-neutral">&nbsp;</span>
254
304
  <span class="cline-any cline-neutral">&nbsp;</span>
255
305
  <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-no">&nbsp;</span>
307
+ <span class="cline-any cline-no">&nbsp;</span>
308
+ <span class="cline-any cline-no">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-no">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
315
  <span class="cline-any cline-neutral">&nbsp;</span>
257
316
  <span class="cline-any cline-neutral">&nbsp;</span>
258
317
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -281,11 +340,14 @@
281
340
  <span class="cline-any cline-neutral">&nbsp;</span>
282
341
  <span class="cline-any cline-neutral">&nbsp;</span>
283
342
  <span class="cline-any cline-no">&nbsp;</span>
284
- <span class="cline-any cline-neutral">&nbsp;</span>
285
343
  <span class="cline-any cline-no">&nbsp;</span>
286
344
  <span class="cline-any cline-no">&nbsp;</span>
287
345
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <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>
289
351
  <span class="cline-any cline-neutral">&nbsp;</span>
290
352
  <span class="cline-any cline-neutral">&nbsp;</span>
291
353
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -293,23 +355,28 @@
293
355
  <span class="cline-any cline-neutral">&nbsp;</span>
294
356
  <span class="cline-any cline-neutral">&nbsp;</span>
295
357
  <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
359
  <span class="cline-any cline-no">&nbsp;</span>
297
360
  <span class="cline-any cline-no">&nbsp;</span>
298
361
  <span class="cline-any cline-neutral">&nbsp;</span>
299
362
  <span class="cline-any cline-no">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
300
365
  <span class="cline-any cline-neutral">&nbsp;</span>
301
366
  <span class="cline-any cline-neutral">&nbsp;</span>
302
367
  <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-no">&nbsp;</span>
304
- <span class="cline-any cline-no">&nbsp;</span>
305
368
  <span class="cline-any cline-neutral">&nbsp;</span>
306
369
  <span class="cline-any cline-neutral">&nbsp;</span>
307
370
  <span class="cline-any cline-no">&nbsp;</span>
308
371
  <span class="cline-any cline-no">&nbsp;</span>
309
- <span class="cline-any cline-no">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
375
  <span class="cline-any cline-neutral">&nbsp;</span>
311
376
  <span class="cline-any cline-no">&nbsp;</span>
312
377
  <span class="cline-any cline-no">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
380
  <span class="cline-any cline-no">&nbsp;</span>
314
381
  <span class="cline-any cline-no">&nbsp;</span>
315
382
  <span class="cline-any cline-no">&nbsp;</span>
@@ -317,67 +384,101 @@
317
384
  <span class="cline-any cline-neutral">&nbsp;</span>
318
385
  <span class="cline-any cline-neutral">&nbsp;</span>
319
386
  <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
391
  <span class="cline-any cline-no">&nbsp;</span>
321
392
  <span class="cline-any cline-no">&nbsp;</span>
322
- <span class="cline-any cline-no">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
394
  <span class="cline-any cline-no">&nbsp;</span>
324
395
  <span class="cline-any cline-neutral">&nbsp;</span>
325
396
  <span class="cline-any cline-no">&nbsp;</span>
326
397
  <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
403
  <span class="cline-any cline-no">&nbsp;</span>
328
404
  <span class="cline-any cline-no">&nbsp;</span>
329
405
  <span class="cline-any cline-no">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
407
  <span class="cline-any cline-no">&nbsp;</span>
331
408
  <span class="cline-any cline-neutral">&nbsp;</span>
332
409
  <span class="cline-any cline-neutral">&nbsp;</span>
333
410
  <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-no">&nbsp;</span>
412
+ <span class="cline-any cline-no">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-no">&nbsp;</span>
334
415
  <span class="cline-any cline-neutral">&nbsp;</span>
335
416
  <span class="cline-any cline-neutral">&nbsp;</span>
336
417
  <span class="cline-any cline-no">&nbsp;</span>
337
418
  <span class="cline-any cline-no">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
420
  <span class="cline-any cline-no">&nbsp;</span>
339
421
  <span class="cline-any cline-neutral">&nbsp;</span>
340
422
  <span class="cline-any cline-no">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
424
  <span class="cline-any cline-no">&nbsp;</span>
342
425
  <span class="cline-any cline-no">&nbsp;</span>
343
426
  <span class="cline-any cline-neutral">&nbsp;</span>
344
427
  <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
429
  <span class="cline-any cline-no">&nbsp;</span>
347
430
  <span class="cline-any cline-no">&nbsp;</span>
348
431
  <span class="cline-any cline-neutral">&nbsp;</span>
349
432
  <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-no">&nbsp;</span>
434
+ <span class="cline-any cline-no">&nbsp;</span>
435
+ <span class="cline-any cline-no">&nbsp;</span>
436
+ <span class="cline-any cline-no">&nbsp;</span>
437
+ <span class="cline-any cline-no">&nbsp;</span>
350
438
  <span class="cline-any cline-neutral">&nbsp;</span>
351
439
  <span class="cline-any cline-neutral">&nbsp;</span>
352
440
  <span class="cline-any cline-neutral">&nbsp;</span>
353
441
  <span class="cline-any cline-no">&nbsp;</span>
354
442
  <span class="cline-any cline-no">&nbsp;</span>
355
443
  <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-no">&nbsp;</span>
446
+ <span class="cline-any cline-no">&nbsp;</span>
447
+ <span class="cline-any cline-no">&nbsp;</span>
356
448
  <span class="cline-any cline-neutral">&nbsp;</span>
357
449
  <span class="cline-any cline-neutral">&nbsp;</span>
358
450
  <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-no">&nbsp;</span>
360
452
  <span class="cline-any cline-no">&nbsp;</span>
361
453
  <span class="cline-any cline-no">&nbsp;</span>
362
454
  <span class="cline-any cline-no">&nbsp;</span>
363
455
  <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-no">&nbsp;</span>
364
458
  <span class="cline-any cline-neutral">&nbsp;</span>
365
459
  <span class="cline-any cline-neutral">&nbsp;</span>
366
460
  <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-no">&nbsp;</span>
462
+ <span class="cline-any cline-no">&nbsp;</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
464
+ <span class="cline-any cline-no">&nbsp;</span>
465
+ <span class="cline-any cline-no">&nbsp;</span>
367
466
  <span class="cline-any cline-neutral">&nbsp;</span>
368
467
  <span class="cline-any cline-neutral">&nbsp;</span>
369
468
  <span class="cline-any cline-neutral">&nbsp;</span>
370
469
  <span class="cline-any cline-neutral">&nbsp;</span>
371
470
  <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
471
  <span class="cline-any cline-neutral">&nbsp;</span>
375
472
  <span class="cline-any cline-neutral">&nbsp;</span>
376
473
  <span class="cline-any cline-no">&nbsp;</span>
377
474
  <span class="cline-any cline-no">&nbsp;</span>
475
+ <span class="cline-any cline-no">&nbsp;</span>
378
476
  <span class="cline-any cline-neutral">&nbsp;</span>
379
477
  <span class="cline-any cline-no">&nbsp;</span>
380
478
  <span class="cline-any cline-no">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
482
  <span class="cline-any cline-no">&nbsp;</span>
382
483
  <span class="cline-any cline-no">&nbsp;</span>
383
484
  <span class="cline-any cline-no">&nbsp;</span>
@@ -385,10 +486,12 @@
385
486
  <span class="cline-any cline-no">&nbsp;</span>
386
487
  <span class="cline-any cline-no">&nbsp;</span>
387
488
  <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
490
  <span class="cline-any cline-no">&nbsp;</span>
389
491
  <span class="cline-any cline-no">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
492
  <span class="cline-any cline-no">&nbsp;</span>
493
+ <span class="cline-any cline-no">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
495
  <span class="cline-any cline-neutral">&nbsp;</span>
393
496
  <span class="cline-any cline-neutral">&nbsp;</span>
394
497
  <span class="cline-any cline-no">&nbsp;</span>
@@ -396,17 +499,11 @@
396
499
  <span class="cline-any cline-no">&nbsp;</span>
397
500
  <span class="cline-any cline-no">&nbsp;</span>
398
501
  <span class="cline-any cline-no">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
502
  <span class="cline-any cline-no">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
503
  <span class="cline-any cline-no">&nbsp;</span>
404
504
  <span class="cline-any cline-neutral">&nbsp;</span>
405
505
  <span class="cline-any cline-neutral">&nbsp;</span>
406
506
  <span class="cline-any cline-no">&nbsp;</span>
407
- <span class="cline-any cline-no">&nbsp;</span>
408
- <span class="cline-any cline-no">&nbsp;</span>
409
- <span class="cline-any cline-no">&nbsp;</span>
410
507
  <span class="cline-any cline-neutral">&nbsp;</span>
411
508
  <span class="cline-any cline-neutral">&nbsp;</span>
412
509
  <span class="cline-any cline-no">&nbsp;</span>
@@ -415,6 +512,9 @@
415
512
  <span class="cline-any cline-neutral">&nbsp;</span>
416
513
  <span class="cline-any cline-neutral">&nbsp;</span>
417
514
  <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
518
  <span class="cline-any cline-no">&nbsp;</span>
419
519
  <span class="cline-any cline-neutral">&nbsp;</span>
420
520
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -429,13 +529,22 @@
429
529
  <span class="cline-any cline-neutral">&nbsp;</span>
430
530
  <span class="cline-any cline-neutral">&nbsp;</span>
431
531
  <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, {useRef, useEffect, useContext, useState} from "react";
532
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useContext, useState, useCallback } from "react";
433
533
  import PropTypes from "prop-types";
434
534
  &nbsp;
435
- import {MapContext} from "@mapcomponents/react-core";
436
- import {v4 as uuidv4} from "uuid";
535
+ import { MapContext } from "@mapcomponents/react-core";
536
+ import { v4 as uuidv4 } from "uuid";
437
537
  import useMapState from "../../hooks/useMapState";
438
538
  &nbsp;
539
+ const getCurrentUrlParameters = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
540
+ let currentParams = <span class="cstat-no" title="statement not covered" >Object.fromEntries(new URLSearchParams(window.location.search));</span>
541
+ <span class="cstat-no" title="statement not covered" > currentParams.layers = JSON.parse(currentParams?.layers ? currentParams.layers : "[]");</span>
542
+ &nbsp;
543
+ <span class="cstat-no" title="statement not covered" > return currentParams;</span>
544
+ };
545
+ &nbsp;
546
+ const initialUrlParams = <span class="cstat-no" title="statement not covered" >getCurrentUrlParameters();</span>
547
+ &nbsp;
439
548
  /**
440
549
  * TODO: Add short &amp; useful description
441
550
  *
@@ -450,24 +559,73 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
450
559
  const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
451
560
  const mapRef = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
452
561
  const [map, setMap] = <span class="cstat-no" title="statement not covered" >useState(undefined);</span>
562
+ const layersFromUrlParamsRef = <span class="cstat-no" title="statement not covered" >useRef({});</span>
453
563
  const componentId = <span class="cstat-no" title="statement not covered" >useRef((props.idPrefix ? props.idPrefix : "MlShareMapState-") + uuidv4());</span>
454
- const [isInitialState, setIsInitialState] = <span class="cstat-no" title="statement not covered" >useState(true);</span>
455
564
  const mapState = <span class="cstat-no" title="statement not covered" >useMapState({</span>
456
565
  watch: {
457
566
  viewport: false,
458
567
  layers: true,
459
- sources: false
568
+ sources: false,
460
569
  },
461
570
  filter: {
462
- includeBaseLayers: false
463
- }
464
- })
571
+ includeBaseLayers: false,
572
+ },
573
+ });
574
+ &nbsp;
575
+ const allStatesRestoredRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
576
+ const layerStatesRestored = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
577
+ const restoredStatesRef = <span class="cstat-no" title="statement not covered" >useRef({</span>
578
+ viewport: {
579
+ center: false,
580
+ bearing: false,
581
+ pitch: false,
582
+ zoom: false,
583
+ },
584
+ layers: {
585
+ ...layersFromUrlParamsRef,
586
+ },
587
+ });
465
588
  &nbsp;
589
+ // initial URL-Params
466
590
  const mapStateRef = <span class="cstat-no" title="statement not covered" >useRef({});</span>
591
+ &nbsp;
592
+ const refreshUrlParameters = <span class="cstat-no" title="statement not covered" >useCallback(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
593
+ <span class="cstat-no" title="statement not covered" > if (!props.active) <span class="cstat-no" title="statement not covered" >return;</span></span>
594
+ &nbsp;
595
+ let mapLayers = <span class="cstat-no" title="statement not covered" >[];</span>
596
+ <span class="cstat-no" title="statement not covered" > for (let x in mapState.layers) {</span>
597
+ <span class="cstat-no" title="statement not covered" > mapLayers.push({</span>
598
+ id: mapState.layers[x].id,
599
+ type: mapState.layers[x].type,
600
+ visible: mapState.layers[x].visible,
601
+ });
602
+ }
603
+ <span class="cstat-no" title="statement not covered" > refreshMapState();</span>
604
+ let urlParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams({</span>
605
+ ...getCurrentUrlParameters(),
606
+ ...mapStateRef.current,
607
+ layers: JSON.stringify(mapLayers),
608
+ });
609
+ <span class="cstat-no" title="statement not covered" > JSON.parse(Object.fromEntries(urlParams).layers).forEach(<span class="fstat-no" title="function not covered" >(e</span>l) =&gt; {</span>
610
+ <span class="cstat-no" title="statement not covered" > layersFromUrlParamsRef.current[el.id] = false;</span>
611
+ });
612
+ &nbsp;
613
+ let currentParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams(window.location.search);</span>
614
+ <span class="cstat-no" title="statement not covered" > checkRestorationStates(mapState.layers);</span>
615
+ <span class="cstat-no" title="statement not covered" > if (urlParams.toString() !== currentParams.toString()) {</span>
616
+ <span class="cstat-no" title="statement not covered" > window.history.pushState(</span>
617
+ { ...mapStateRef.current },
618
+ document.title,
619
+ "?" + urlParams.toString()
620
+ );
621
+ }
622
+ }, [mapState.layers, props.active]);
467
623
  &nbsp;
468
624
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
469
625
  let _componentId = <span class="cstat-no" title="statement not covered" >componentId.current;</span>
470
626
  &nbsp;
627
+ <span class="cstat-no" title="statement not covered" > mapStateRef.current = getCurrentUrlParameters();</span>
628
+ &nbsp;
471
629
  <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
472
630
  // This is the cleanup function, it is called when this react component is removed from react-dom
473
631
  // try to remove anything this component has added to the MapLibre-gl instance
@@ -484,117 +642,109 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
484
642
  }, []);
485
643
  &nbsp;
486
644
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
645
+ <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
646
+ &nbsp;
647
+ <span class="cstat-no" title="statement not covered" > refreshUrlParameters();</span>
648
+ }, [refreshUrlParameters]);
649
+ &nbsp;
650
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
651
+ <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
652
+ &nbsp;
653
+ let _refreshUrlParameters = <span class="cstat-no" title="statement not covered" >refreshUrlParameters;</span>
654
+ &nbsp;
655
+ <span class="cstat-no" title="statement not covered" > mapRef.current.on("moveend", _refreshUrlParameters, componentId.current);</span>
656
+ &nbsp;
657
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
658
+ <span class="cstat-no" title="statement not covered" > mapRef.current?.off("moveend", _refreshUrlParameters);</span>
659
+ };
660
+ }, [refreshUrlParameters, map]);
661
+ &nbsp;
662
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
487
663
  <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>
488
664
  // the MapLibre-gl instance (mapContext.getMap(props.mapId)) is accessible here
489
665
  // initialize the layer and add it to the MapLibre-gl instance or do something else with it
490
666
  <span class="cstat-no" title="statement not covered" > initializedRef.current = true;</span>
491
667
  <span class="cstat-no" title="statement not covered" > mapRef.current = mapContext.getMap(props.mapId);</span>
492
668
  <span class="cstat-no" title="statement not covered" > setMap(mapRef.current);</span>
493
- &nbsp;
494
- const currentUrlParams = <span class="cstat-no" title="statement not covered" >getCurrentUrlParameters();</span>
495
- <span class="cstat-no" title="statement not covered" > if (currentUrlParams.lat &amp;&amp; currentUrlParams.lng) {</span>
496
- <span class="cstat-no" title="statement not covered" > mapStateRef.current.lat = currentUrlParams.lat;</span>
497
- <span class="cstat-no" title="statement not covered" > mapStateRef.current.lng = currentUrlParams.lng;</span>
498
- <span class="cstat-no" title="statement not covered" > mapStateRef.current.zoom = currentUrlParams.zoom;</span>
499
- <span class="cstat-no" title="statement not covered" > mapRef.current.setZoom(mapStateRef.current.zoom);</span>
669
+ <span class="cstat-no" title="statement not covered" > if (mapStateRef.current.lat &amp;&amp; mapStateRef.current.lng) {</span>
670
+ <span class="cstat-no" title="statement not covered" > restoreViewportState();</span>
500
671
  }
501
672
  }, [mapContext.mapIds, mapContext, props.mapId, props.active]);
502
673
  &nbsp;
503
674
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
504
- <span class="cstat-no" title="statement not covered" > if (!map) <span class="cstat-no" title="statement not covered" >return;</span></span>
505
- <span class="cstat-no" title="statement not covered" > if(!mapState.layers) <span class="cstat-no" title="statement not covered" >return;</span></span>
506
- <span class="cstat-no" title="statement not covered" > if(!isInitialState) <span class="cstat-no" title="statement not covered" >return;</span></span>
675
+ <span class="cstat-no" title="statement not covered" > if (!mapState?.layers?.length) <span class="cstat-no" title="statement not covered" >return;</span></span>
507
676
  &nbsp;
508
- const currentUrlParams = <span class="cstat-no" title="statement not covered" >getCurrentUrlParameters()</span>
677
+ <span class="cstat-no" title="statement not covered" > if (typeof layerStatesRestored.current === "undefined") {</span>
678
+ <span class="cstat-no" title="statement not covered" > layerStatesRestored.current = {};</span>
679
+ <span class="cstat-no" title="statement not covered" > initialUrlParams?.layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
680
+ <span class="cstat-no" title="statement not covered" > layerStatesRestored.current[layer.id] = false;</span>
681
+ });
682
+ }
509
683
  &nbsp;
510
- <span class="cstat-no" title="statement not covered" > if(currentUrlParams.layers) {</span>
511
- <span class="cstat-no" title="statement not covered" > for (let x in currentUrlParams.layers) {</span>
512
- <span class="cstat-no" title="statement not covered" > mapRef.current.getLayer(currentUrlParams.layers[x].id).visibility = currentUrlParams.layers[x].visible ? "visible" : "none"</span>
513
- <span class="cstat-no" title="statement not covered" > mapRef.current.getLayer(currentUrlParams.layers[x].id).type = currentUrlParams.layers[x].type</span>
684
+ <span class="cstat-no" title="statement not covered" > for (let key in layerStatesRestored.current) {</span>
685
+ let _allDone = <span class="cstat-no" title="statement not covered" >true;</span>
686
+ <span class="cstat-no" title="statement not covered" > if (layerStatesRestored.current[key] === false) {</span>
687
+ <span class="cstat-no" title="statement not covered" > _allDone = false;</span>
688
+ }
689
+ <span class="cstat-no" title="statement not covered" > if (_allDone) {</span>
690
+ <span class="cstat-no" title="statement not covered" > return;</span>
514
691
  }
515
692
  }
516
693
  &nbsp;
517
- }, [mapState.layers, props.mapId, props.active])
694
+ <span class="cstat-no" title="statement not covered" > if (initialUrlParams.layers) {</span>
695
+ <span class="cstat-no" title="statement not covered" > initialUrlParams.layers.forEach(<span class="fstat-no" title="function not covered" >(l</span>ayer) =&gt; {</span>
696
+ <span class="cstat-no" title="statement not covered" > if (mapRef.current?.getLayer(layer.id) &amp;&amp; layerStatesRestored.current[layer.id] === false) {</span>
697
+ <span class="cstat-no" title="statement not covered" > layerStatesRestored.current[layer.id] = true;</span>
698
+ <span class="cstat-no" title="statement not covered" > mapRef.current</span>
699
+ ?.getLayer(layer.id)
700
+ ?.setLayoutProperty("visibility", layer.visible ? "visible" : "none");
701
+ }
702
+ });
703
+ }
704
+ }, [mapState.layers, props.mapId, props.active]);
518
705
  &nbsp;
519
706
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
520
707
  <span class="cstat-no" title="statement not covered" > if (!map) <span class="cstat-no" title="statement not covered" >return;</span></span>
521
708
  <span class="cstat-no" title="statement not covered" > if (!mapState.layers) <span class="cstat-no" title="statement not covered" >return;</span></span>
522
709
  &nbsp;
523
- <span class="cstat-no" title="statement not covered" > if (props.active) {</span>
524
- <span class="cstat-no" title="statement not covered" > setIsInitialState(false)</span>
525
- <span class="cstat-no" title="statement not covered" > map.on(</span>
526
- "moveend",
527
- <span class="fstat-no" title="function not covered" > ()</span> =&gt; {
528
- let mapLayers = <span class="cstat-no" title="statement not covered" >[]</span>
529
- <span class="cstat-no" title="statement not covered" > for (let x in mapState.layers) {</span>
530
- <span class="cstat-no" title="statement not covered" > mapLayers.push(new URLSearchParams({</span>
531
- id: mapState.layers[x].id,
532
- type: mapState.layers[x].type,
533
- visible: mapState.layers[x].visible
534
- }))
535
- }
536
- <span class="cstat-no" title="statement not covered" > refreshMapState();</span>
537
- let urlParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams({</span>
538
- ...getCurrentUrlParameters(),
539
- ...mapStateRef.current,
540
- layers : mapLayers
541
- });
542
- &nbsp;
543
- let currentParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams(window.location.search);</span>
544
- <span class="cstat-no" title="statement not covered" > if (urlParams.toString() !== currentParams.toString()) {</span>
545
- <span class="cstat-no" title="statement not covered" > window.history.pushState(</span>
546
- {...mapStateRef.current},
547
- document.title,
548
- "?" + urlParams.toString()
549
- );
550
- }
551
- },
552
- componentId.current
553
- );
554
- } else {
710
+ <span class="cstat-no" title="statement not covered" > if (!props.active) {</span>
555
711
  <span class="cstat-no" title="statement not covered" > map.cleanup(componentId.current);</span>
556
712
  }
557
- }, [props.active, map]);
558
- &nbsp;
559
- const getCurrentUrlParameters = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
560
- let parameterObject = <span class="cstat-no" title="statement not covered" >Object.fromEntries(new URLSearchParams(window.location.search))</span>
561
- &nbsp;
562
- <span class="cstat-no" title="statement not covered" > if(window.location.search.indexOf("layers")!==-1) {</span>
563
- let layerParamString = <span class="cstat-no" title="statement not covered" >window.location.search.substring(window.location.search.indexOf("layers"))</span>
564
- <span class="cstat-no" title="statement not covered" > layerParamString = layerParamString.substring(0, (layerParamString.indexOf("&amp;")!==-1) ? layerParamString.indexOf("&amp;") : layerParamString.length)</span>
565
- <span class="cstat-no" title="statement not covered" > parameterObject = Object.fromEntries(new URLSearchParams(window.location.search.replace(layerParamString, "")))</span>
566
- let layerParams = <span class="cstat-no" title="statement not covered" >layerParamString.substring(7)</span>
567
- <span class="cstat-no" title="statement not covered" > layerParams = layerParams.replaceAll("%3D", "=")</span>
568
- <span class="cstat-no" title="statement not covered" > layerParams = layerParams.replaceAll("%26", "&amp;")</span>
569
- <span class="cstat-no" title="statement not covered" > layerParams = layerParams.replaceAll("%2C", ",")</span>
570
- &nbsp;
571
- <span class="cstat-no" title="statement not covered" > if (layerParams.indexOf(",")) {</span>
572
- <span class="cstat-no" title="statement not covered" > layerParams = layerParams.split(",")</span>
573
- } else {
574
- <span class="cstat-no" title="statement not covered" > layerParams = [layerParams]</span>
575
- }
576
- &nbsp;
577
- <span class="cstat-no" title="statement not covered" > for (let x in layerParams) {</span>
578
- let layerState = <span class="cstat-no" title="statement not covered" >layerParams[x].split("&amp;")</span>
579
- <span class="cstat-no" title="statement not covered" > layerParams[x] = {}</span>
580
- <span class="cstat-no" title="statement not covered" > for (let y in layerState) {</span>
581
- <span class="cstat-no" title="statement not covered" > layerParams[x][layerState[y].split("=")[0]] = layerState[y].split("=")[1]</span>
582
- }
583
- }
584
- <span class="cstat-no" title="statement not covered" > parameterObject["layers"] = layerParams</span>
585
- }
586
- <span class="cstat-no" title="statement not covered" > return parameterObject</span>
587
- };
713
+ }, [props.active, map, mapState.layers]);
588
714
  &nbsp;
589
715
  const refreshMapState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
590
716
  <span class="cstat-no" title="statement not covered" > mapStateRef.current.lat = mapRef.current.getCenter().lat;</span>
591
717
  <span class="cstat-no" title="statement not covered" > mapStateRef.current.lng = mapRef.current.getCenter().lng;</span>
592
718
  <span class="cstat-no" title="statement not covered" > mapStateRef.current.zoom = mapRef.current.getZoom();</span>
719
+ <span class="cstat-no" title="statement not covered" > mapStateRef.current.bearing = mapRef.current.getBearing();</span>
720
+ <span class="cstat-no" title="statement not covered" > mapStateRef.current.pitch = mapRef.current.getPitch();</span>
721
+ };
722
+ &nbsp;
723
+ const checkRestorationStates = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(s</span>tateArray) =&gt; {</span>
724
+ let tempArray = <span class="cstat-no" title="statement not covered" >{};</span>
725
+ <span class="cstat-no" title="statement not covered" > stateArray.forEach(<span class="fstat-no" title="function not covered" >(e</span>l, i, arr) =&gt; {</span>
726
+ <span class="cstat-no" title="statement not covered" > if (!arr[el.key]) <span class="cstat-no" title="statement not covered" >tempArray[el.key] = true;</span></span>
727
+ });
728
+ };
729
+ &nbsp;
730
+ const restoreViewportState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
731
+ <span class="cstat-no" title="statement not covered" > if (!restoredStatesRef.current.viewport.center) {</span>
732
+ <span class="cstat-no" title="statement not covered" > restoredStatesRef.current.viewport.center = true;</span>
733
+ <span class="cstat-no" title="statement not covered" > mapRef.current.setCenter([mapStateRef.current.lng, mapStateRef.current.lat]);</span>
734
+ <span class="cstat-no" title="statement not covered" > mapRef.current.setZoom(mapStateRef.current.zoom);</span>
735
+ <span class="cstat-no" title="statement not covered" > mapRef.current.setBearing(mapStateRef.current.bearing);</span>
736
+ <span class="cstat-no" title="statement not covered" > mapRef.current.setPitch(mapStateRef.current.pitch);</span>
737
+ }
738
+ &nbsp;
739
+ <span class="cstat-no" title="statement not covered" > allStatesRestoredRef.current = true;</span>
593
740
  };
594
741
  &nbsp;
595
742
  <span class="cstat-no" title="statement not covered" > window.onpopstate = <span class="fstat-no" title="function not covered" >(e</span>vent) =&gt; {</span>
596
743
  <span class="cstat-no" title="statement not covered" > if (event.state &amp;&amp; event.state.lng &amp;&amp; event.state.lat &amp;&amp; event.state.zoom) {</span>
597
- <span class="cstat-no" title="statement not covered" > mapRef.current.easeTo({zoom: event.state.zoom, center: [event.state.lng, event.state.lat]});</span>
744
+ <span class="cstat-no" title="statement not covered" > mapRef.current.easeTo({</span>
745
+ zoom: event.state.zoom,
746
+ center: [event.state.lng, event.state.lat],
747
+ });
598
748
  }
599
749
  };
600
750
  &nbsp;
@@ -619,7 +769,7 @@ export default MlShareMapState;
619
769
  <div class='footer quiet pad2 space-top1 center small'>
620
770
  Code coverage generated by
621
771
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
622
- 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)
623
773
  </div>
624
774
  <script src="../../../prettify.js"></script>
625
775
  <script>