@mapcomponents/react-maplibre 0.1.10 → 0.1.14

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 (135) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +2 -2
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +3 -3
  3. package/.github/workflows/node_version_test.yml +25 -0
  4. package/.github/workflows/storybook.yml +6 -3
  5. package/CONTRIBUTING.md +2 -2
  6. package/README.md +3 -7
  7. package/coverage/clover.xml +748 -625
  8. package/coverage/coverage-final.json +19 -14
  9. package/coverage/lcov-report/block-navigation.js +8 -0
  10. package/coverage/lcov-report/index.html +170 -104
  11. package/coverage/lcov-report/sorter.js +26 -0
  12. package/coverage/lcov-report/{components → src/components}/MapLibreMap/MapLibreMap.js.html +17 -11
  13. package/coverage/lcov-report/{components → src/components}/MapLibreMap/index.html +17 -11
  14. package/coverage/lcov-report/{components → src/components}/MlCreatePdfButton/MlCreatePdfButton.js.html +17 -11
  15. package/coverage/lcov-report/{components → src/components}/MlCreatePdfButton/index.html +17 -11
  16. package/coverage/lcov-report/{components → src/components}/MlFeatureEditor/MlFeatureEditor.js.html +17 -11
  17. package/coverage/lcov-report/{components → src/components}/MlFeatureEditor/index.html +17 -11
  18. package/coverage/lcov-report/{components → src/components}/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +17 -11
  19. package/coverage/lcov-report/{components → src/components}/MlFillExtrusionLayer/index.html +17 -11
  20. package/coverage/lcov-report/{components → src/components}/MlFollowGps/MlFollowGps.js.html +99 -48
  21. package/coverage/lcov-report/{components → src/components}/MlFollowGps/index.html +27 -21
  22. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/MlGPXViewer.js.html +73 -61
  23. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/gpxConverter.js.html +56 -71
  24. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/index.html +32 -26
  25. package/coverage/lcov-report/{components → src/components}/MlGeoJsonLayer/MlGeoJsonLayer.js.html +91 -31
  26. package/coverage/lcov-report/{components → src/components}/MlGeoJsonLayer/index.html +35 -29
  27. package/coverage/lcov-report/{components → src/components}/MlImageMarkerLayer/MlImageMarkerLayer.js.html +26 -23
  28. package/coverage/lcov-report/{components → src/components}/MlImageMarkerLayer/index.html +26 -20
  29. package/coverage/lcov-report/{components → src/components}/MlLayer/MlLayer.js.html +37 -31
  30. package/coverage/lcov-report/{components → src/components}/MlLayer/index.html +33 -27
  31. package/coverage/lcov-report/{components → src/components}/MlLayerMagnify/MlLayerMagnify.js.html +48 -42
  32. package/coverage/lcov-report/{components → src/components}/MlLayerMagnify/index.html +31 -25
  33. package/coverage/lcov-report/{components → src/components}/MlLayerSwipe/MlLayerSwipe.js.html +45 -42
  34. package/coverage/lcov-report/{components → src/components}/MlLayerSwipe/index.html +31 -25
  35. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +755 -0
  36. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +380 -0
  37. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +117 -0
  38. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +117 -0
  39. package/coverage/lcov-report/{components → src/components}/MlMarker/MlMarker.js.html +18 -12
  40. package/coverage/lcov-report/{components → src/components}/MlMarker/index.html +17 -11
  41. package/coverage/lcov-report/{components → src/components}/MlNavigationCompass/MlNavigationCompass.js.html +17 -11
  42. package/coverage/lcov-report/{components → src/components}/MlNavigationCompass/index.html +17 -11
  43. package/coverage/lcov-report/{components → src/components}/MlNavigationTools/MlNavigationTools.js.html +55 -37
  44. package/coverage/lcov-report/{components → src/components}/MlNavigationTools/index.html +23 -17
  45. package/coverage/lcov-report/{components → src/components}/MlOsmLayer/MlOsmLayer.js.html +17 -11
  46. package/coverage/lcov-report/{components → src/components}/MlOsmLayer/index.html +17 -11
  47. package/coverage/lcov-report/{components → src/components}/MlScaleReference/MlScaleReference.js.html +17 -11
  48. package/coverage/lcov-report/{components → src/components}/MlScaleReference/index.html +17 -11
  49. package/coverage/lcov-report/{components → src/components}/MlShareMapState/MlShareMapState.js.html +17 -11
  50. package/coverage/lcov-report/{components → src/components}/MlShareMapState/index.html +17 -11
  51. package/coverage/lcov-report/{components → src/components}/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +17 -11
  52. package/coverage/lcov-report/{components → src/components}/MlSpatialElevationProfile/index.html +17 -11
  53. package/coverage/lcov-report/{components → src/components}/MlThreeJsLayer/MlThreeJsLayer.js.html +37 -55
  54. package/coverage/lcov-report/{components → src/components}/MlThreeJsLayer/index.html +31 -25
  55. package/coverage/lcov-report/{components → src/components}/MlUseMapDebugger/MlUseMapDebugger.js.html +17 -11
  56. package/coverage/lcov-report/{components → src/components}/MlUseMapDebugger/index.html +17 -11
  57. package/coverage/lcov-report/{components → src/components}/MlVectorTileLayer/MlVectorTileLayer.js.html +17 -11
  58. package/coverage/lcov-report/{components → src/components}/MlVectorTileLayer/index.html +17 -11
  59. package/coverage/lcov-report/{components → src/components}/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +17 -11
  60. package/coverage/lcov-report/{components → src/components}/MlWmsFeatureInfoPopup/index.html +17 -11
  61. package/coverage/lcov-report/{components → src/components}/MlWmsLayer/MlWmsLayer.js.html +20 -14
  62. package/coverage/lcov-report/{components → src/components}/MlWmsLayer/index.html +21 -15
  63. package/coverage/lcov-report/{components → src/components}/MlWmsLoader/MlWmsLoader.js.html +38 -20
  64. package/coverage/lcov-report/{components → src/components}/MlWmsLoader/index.html +23 -17
  65. package/coverage/lcov-report/{hooks → src/hooks}/index.html +17 -11
  66. package/coverage/lcov-report/{hooks → src/hooks}/useMap.js.html +17 -11
  67. package/coverage/lcov-report/{hooks → src/hooks}/useMapState.js.html +17 -11
  68. package/coverage/lcov-report/{hooks → src/hooks}/useWms.js.html +25 -19
  69. package/coverage/lcov-report/src/i18n.js.html +167 -0
  70. package/coverage/lcov-report/src/index.html +117 -0
  71. package/coverage/lcov-report/src/translations/english.js.html +95 -0
  72. package/coverage/lcov-report/src/translations/german.js.html +95 -0
  73. package/coverage/lcov-report/src/translations/index.html +132 -0
  74. package/coverage/lcov.info +1278 -1010
  75. package/dist/b556faa3bc6829d2.png +0 -0
  76. package/dist/index.esm.js +276 -90
  77. package/dist/index.esm.js.map +1 -1
  78. package/package.json +3 -1
  79. package/public/assets/dop.png +0 -0
  80. package/public/assets/historic.png +0 -0
  81. package/public/assets/osm.png +0 -0
  82. package/public/thumbnails/MlFollowGps.png +0 -0
  83. package/public/thumbnails/MlThreeJsLayer.png +0 -0
  84. package/rollup.config.js +7 -1
  85. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +58 -73
  86. package/src/components/MlCreatePdfButton/MlCreatePdfButton.meta.json +1 -1
  87. package/src/components/MlFeatureEditor/MlFeatureEditor.meta.json +2 -2
  88. package/src/components/MlFollowGps/MlFollowGps.js +46 -31
  89. package/src/components/MlFollowGps/MlFollowGps.meta.json +2 -2
  90. package/src/components/MlFollowGps/assets/marker.png +0 -0
  91. package/src/components/MlGPXViewer/MlGPXViewer.js +45 -43
  92. package/src/components/MlGPXViewer/gpxConverter.js +22 -29
  93. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +27 -9
  94. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.meta.json +1 -1
  95. package/src/components/MlGeoJsonLayer/util/transitionFunctions.js +19 -12
  96. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js +3 -4
  97. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +6 -7
  98. package/src/components/MlLayer/MlLayer.js +2 -2
  99. package/src/components/MlLayer/MlLayer.test.js +12 -10
  100. package/src/components/MlLayerMagnify/MlLayerMagnify.js +3 -3
  101. package/src/components/MlLayerSwipe/MlLayerSwipe.js +4 -5
  102. package/src/components/MlLayerSwitcher/MlLayerSwitcher.css +17 -0
  103. package/src/components/MlLayerSwitcher/MlLayerSwitcher.doc.de.md +3 -0
  104. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +223 -0
  105. package/src/components/MlLayerSwitcher/MlLayerSwitcher.meta_.json +15 -0
  106. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +106 -0
  107. package/src/components/MlLayerSwitcher/assets/sample_1.json +26 -0
  108. package/src/components/MlLayerSwitcher/assets/sample_2.json +22 -0
  109. package/src/components/MlLayerSwitcher/components/LayerBox.js +98 -0
  110. package/src/components/MlMarker/MlMarker.js +1 -1
  111. package/src/components/MlNavigationTools/MlNavigationTools.js +26 -22
  112. package/src/components/MlScaleReference/MlScaleReference.meta.json +1 -1
  113. package/src/components/MlScaleReference/MlScaleReference.stories.js +25 -21
  114. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +12 -6
  115. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +8 -15
  116. package/src/components/MlVectorTileLayer/MlVectorTileLayer.meta.json +3 -3
  117. package/src/components/MlWmsLayer/MlWmsLayer.js +1 -1
  118. package/src/components/MlWmsLoader/MlWmsLoader.js +8 -4
  119. package/src/components/MlWmsLoader/MlWmsLoader.meta.json +1 -1
  120. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +5 -4
  121. package/src/decorators/EmptyMapContextDecorator.js +11 -6
  122. package/src/decorators/MapContext3DDecorator.js +25 -20
  123. package/src/decorators/MapContextDashboardDecorator.js +7 -7
  124. package/src/decorators/MapContextDecorator.js +7 -8
  125. package/src/decorators/MapContextKlokantechBasicDecorator.js +8 -9
  126. package/src/decorators/MultiMapContextDecorator.js +2 -6
  127. package/src/hooks/useMapState.stories.js +7 -2
  128. package/src/hooks/useWms.js +7 -6
  129. package/src/i18n.js +28 -0
  130. package/src/index.js +1 -0
  131. package/src/translations/english.js +4 -0
  132. package/src/translations/german.js +4 -0
  133. package/src/ui_components/ImageLoader.js +73 -0
  134. package/src/ui_components/Sidebar.js +76 -22
  135. package/src/ui_components/TopToolbar.js +18 -18
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for components/MlFollowGps/MlFollowGps.js</title>
6
+ <title>Code coverage report for src/components/MlFollowGps/MlFollowGps.js</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,13 +19,13 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">components/MlFollowGps</a> MlFollowGps.js</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlFollowGps</a> MlFollowGps.js</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">67.5% </span>
26
+ <span class="strong">66.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>27/40</span>
28
+ <span class='fraction'>28/42</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">68.42% </span>
47
+ <span class="strong">67.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>26/38</span>
49
+ <span class='fraction'>27/40</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <pre><table class="coverage">
@@ -213,7 +219,24 @@
213
219
  <a name='L154'></a><a href='#L154'>154</a>
214
220
  <a name='L155'></a><a href='#L155'>155</a>
215
221
  <a name='L156'></a><a href='#L156'>156</a>
216
- <a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
240
  <span class="cline-any cline-neutral">&nbsp;</span>
218
241
  <span class="cline-any cline-neutral">&nbsp;</span>
219
242
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -244,11 +267,11 @@
244
267
  <span class="cline-any cline-yes">7x</span>
245
268
  <span class="cline-any cline-yes">7x</span>
246
269
  <span class="cline-any cline-yes">7x</span>
270
+ <span class="cline-any cline-yes">7x</span>
247
271
  <span class="cline-any cline-neutral">&nbsp;</span>
248
272
  <span class="cline-any cline-yes">7x</span>
249
273
  <span class="cline-any cline-yes">2x</span>
250
274
  <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-neutral">&nbsp;</span>
252
275
  <span class="cline-any cline-yes">2x</span>
253
276
  <span class="cline-any cline-neutral">&nbsp;</span>
254
277
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -277,11 +300,11 @@
277
300
  <span class="cline-any cline-yes">2x</span>
278
301
  <span class="cline-any cline-neutral">&nbsp;</span>
279
302
  <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-neutral">&nbsp;</span>
281
303
  <span class="cline-any cline-yes">7x</span>
282
304
  <span class="cline-any cline-no">&nbsp;</span>
283
305
  <span class="cline-any cline-no">&nbsp;</span>
284
306
  <span class="cline-any cline-no">&nbsp;</span>
307
+ <span class="cline-any cline-no">&nbsp;</span>
285
308
  <span class="cline-any cline-neutral">&nbsp;</span>
286
309
  <span class="cline-any cline-neutral">&nbsp;</span>
287
310
  <span class="cline-any cline-yes">7x</span>
@@ -323,6 +346,18 @@
323
346
  <span class="cline-any cline-neutral">&nbsp;</span>
324
347
  <span class="cline-any cline-neutral">&nbsp;</span>
325
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
+ <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>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
326
361
  <span class="cline-any cline-yes">3x</span>
327
362
  <span class="cline-any cline-yes">1x</span>
328
363
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -358,6 +393,7 @@
358
393
  <span class="cline-any cline-neutral">&nbsp;</span>
359
394
  <span class="cline-any cline-neutral">&nbsp;</span>
360
395
  <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
397
  <span class="cline-any cline-yes">1x</span>
362
398
  <span class="cline-any cline-neutral">&nbsp;</span>
363
399
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -380,6 +416,8 @@ import {point} from "@turf/turf"
380
416
  import MlGeoJsonLayer from "../MlGeoJsonLayer/MlGeoJsonLayer";
381
417
  import MlImageMarkerLayer from "../MlImageMarkerLayer/MlImageMarkerLayer";
382
418
  &nbsp;
419
+ import marker from "./assets/marker.png";
420
+ &nbsp;
383
421
  /**
384
422
  * Adds a button that makes the map follow the users GPS position using
385
423
  * navigator.geolocation.watchPosition if activated
@@ -400,10 +438,10 @@ const MlFollowGps = (props) =&gt; {
400
438
  const initializedRef = useRef(false);
401
439
  const mapRef = useRef(undefined);
402
440
  const componentId = useRef((props.idPrefix ? <span class="branch-0 cbranch-no" title="branch not covered" >props.idPrefix </span>: "MlFollowGps-") + uuidv4());
441
+ const [accuracyRadius, setAccuracyRadius] = useState(30);
403
442
  &nbsp;
404
443
  useEffect(() =&gt; {
405
444
  let _componentId = componentId.current;
406
- &nbsp;
407
445
  &nbsp;
408
446
  return <span class="fstat-no" title="function not covered" >()</span> =&gt; {
409
447
  // This is the cleanup function, it is called when this react component is removed from react-dom
@@ -431,12 +469,12 @@ const MlFollowGps = (props) =&gt; {
431
469
  initializedRef.current = true;
432
470
  mapRef.current = mapContext.getMap(props.mapId);
433
471
  mapRef.current.setCenter([7.132122000552613, 50.716405378037706]);
434
- &nbsp;
435
472
  }, [mapContext.mapIds, mapContext, props.mapId]);
436
473
  &nbsp;
437
474
  const getLocationSuccess = <span class="fstat-no" title="function not covered" >(p</span>os) =&gt; {
438
475
  <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
439
476
  <span class="cstat-no" title="statement not covered" > mapRef.current.setCenter([pos.coords.longitude, pos.coords.latitude]);</span>
477
+ <span class="cstat-no" title="statement not covered" > setAccuracyRadius(pos.coords.accuracy);</span>
440
478
  <span class="cstat-no" title="statement not covered" > setGeoJson(point([pos.coords.longitude, pos.coords.latitude]));</span>
441
479
  };
442
480
  &nbsp;
@@ -447,36 +485,48 @@ const MlFollowGps = (props) =&gt; {
447
485
  &nbsp;
448
486
  return (
449
487
  &lt;&gt;
450
- {isFollowed &amp;&amp; geoJson &amp;&amp;
451
- <span class="branch-2 cbranch-no" title="branch not covered" > &lt;MlGeoJsonLayer geojson={geoJson} type={"circle"}</span>
452
- paint={{
453
- "circle-radius": 30,
454
- "circle-color": "#ee7700",
455
- "circle-opacity": 0.5,
456
- }}
457
- /&gt;
458
- }
488
+ {isFollowed &amp;&amp; geoJson &amp;&amp; (
489
+ <span class="branch-2 cbranch-no" title="branch not covered" > &lt;MlGeoJsonLayer</span>
490
+ geojson={geoJson}
491
+ type={"circle"}
492
+ paint={{
493
+ "circle-radius": {
494
+ stops: [
495
+ [0, 0],
496
+ [
497
+ 20,
498
+ accuracyRadius /
499
+ 0.075 /
500
+ Math.cos((geoJson.geometry.coordinates[1] * Math.PI) / 180),
501
+ ],
502
+ ],
503
+ base: 2,
504
+ },
505
+ "circle-color": "#ee7700",
506
+ "circle-opacity": 0.5,
507
+ }}
508
+ /&gt;
509
+ )}
459
510
  &nbsp;
460
- {isFollowed &amp;&amp; geoJson &amp;&amp;
461
- <span class="branch-2 cbranch-no" title="branch not covered" > &lt;MlImageMarkerLayer</span>
462
- options={{
463
- type: "symbol",
464
- source: {
465
- type: "geojson",
466
- data: geoJson
467
- },
468
- layout: {
469
- "icon-size": 0.1,
470
- "icon-offset": [0, -340]
471
- },
472
- }
473
- }
474
- imgSrc={"/assets/marker.png"}
475
- /&gt;
476
- }
511
+ {isFollowed &amp;&amp; geoJson &amp;&amp; (
512
+ <span class="branch-2 cbranch-no" title="branch not covered" > &lt;MlImageMarkerLayer</span>
513
+ options={{
514
+ type: "symbol",
515
+ source: {
516
+ type: "geojson",
517
+ data: geoJson,
518
+ },
519
+ layout: {
520
+ "icon-size": 0.1,
521
+ "icon-offset": [0, -340],
522
+ },
523
+ }}
524
+ imgSrc={marker}
525
+ /&gt;
526
+ )}
477
527
  &nbsp;
478
528
  &lt;Button
479
- sx={{zIndex: 1002, color: isFollowed ? "#bbb" : "#666", ...props.style}}
529
+ sx={{ zIndex: 1002, color: isFollowed ? "#bbb" : "#666", ...props.style }}
480
530
  disabled={locationAccessDenied}
481
531
  onClick={() =&gt; {
482
532
  if (isFollowed) {
@@ -491,7 +541,7 @@ const MlFollowGps = (props) =&gt; {
491
541
  }}
492
542
  &gt;
493
543
  {" "}
494
- &lt;RoomIcon sx={{}}/&gt;{" "}
544
+ &lt;RoomIcon sx={{fontSize: props.style.fontSize}}/&gt;{" "}
495
545
  &lt;/Button&gt;
496
546
  &lt;/&gt;
497
547
  );
@@ -507,6 +557,7 @@ MlFollowGps.defaultProps = {
507
557
  backgroundColor: "#414141",
508
558
  borderRadius: "23%",
509
559
  margin: 0.15,
560
+ fontSize: "1.3em",
510
561
  ":hover": {
511
562
  backgroundColor: "#515151",
512
563
  color: "#ececec",
@@ -531,18 +582,18 @@ export default MlFollowGps;
531
582
  </div><!-- /wrapper -->
532
583
  <div class='footer quiet pad2 space-top1 center small'>
533
584
  Code coverage generated by
534
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
535
- at Mon Nov 29 2021 08:36:45 GMT+0000 (Coordinated Universal Time)
585
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
586
+ at Wed Dec 15 2021 17:41:09 GMT+0000 (Coordinated Universal Time)
536
587
  </div>
537
588
  </div>
538
- <script src="../../prettify.js"></script>
589
+ <script src="../../../prettify.js"></script>
539
590
  <script>
540
591
  window.onload = function () {
541
592
  prettyPrint();
542
593
  };
543
594
  </script>
544
- <script src="../../sorter.js"></script>
545
- <script src="../../block-navigation.js"></script>
595
+ <script src="../../../sorter.js"></script>
596
+ <script src="../../../block-navigation.js"></script>
546
597
  </body>
547
598
  </html>
548
599
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for components/MlFollowGps</title>
6
+ <title>Code coverage report for src/components/MlFollowGps</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,13 +19,13 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> components/MlFollowGps</h1>
22
+ <h1><a href="../../../index.html">All files</a> src/components/MlFollowGps</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">67.5% </span>
26
+ <span class="strong">66.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>27/40</span>
28
+ <span class='fraction'>28/42</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">68.42% </span>
47
+ <span class="strong">67.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>26/38</span>
49
+ <span class='fraction'>27/40</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <div class="pad1">
@@ -74,17 +80,17 @@
74
80
  </thead>
75
81
  <tbody><tr>
76
82
  <td class="file medium" data-value="MlFollowGps.js"><a href="MlFollowGps.js.html">MlFollowGps.js</a></td>
77
- <td data-value="67.5" class="pic medium">
78
- <div class="chart"><div class="cover-fill" style="width: 67%"></div><div class="cover-empty" style="width: 33%"></div></div>
83
+ <td data-value="66.66" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
79
85
  </td>
80
- <td data-value="67.5" class="pct medium">67.5%</td>
81
- <td data-value="40" class="abs medium">27/40</td>
86
+ <td data-value="66.66" class="pct medium">66.66%</td>
87
+ <td data-value="42" class="abs medium">28/42</td>
82
88
  <td data-value="59.09" class="pct medium">59.09%</td>
83
89
  <td data-value="22" class="abs medium">13/22</td>
84
90
  <td data-value="57.14" class="pct medium">57.14%</td>
85
91
  <td data-value="7" class="abs medium">4/7</td>
86
- <td data-value="68.42" class="pct medium">68.42%</td>
87
- <td data-value="38" class="abs medium">26/38</td>
92
+ <td data-value="67.5" class="pct medium">67.5%</td>
93
+ <td data-value="40" class="abs medium">27/40</td>
88
94
  </tr>
89
95
 
90
96
  </tbody>
@@ -94,18 +100,18 @@
94
100
  </div><!-- /wrapper -->
95
101
  <div class='footer quiet pad2 space-top1 center small'>
96
102
  Code coverage generated by
97
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Mon Nov 29 2021 08:36:45 GMT+0000 (Coordinated Universal Time)
103
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
104
+ at Wed Dec 15 2021 17:41:09 GMT+0000 (Coordinated Universal Time)
99
105
  </div>
100
106
  </div>
101
- <script src="../../prettify.js"></script>
107
+ <script src="../../../prettify.js"></script>
102
108
  <script>
103
109
  window.onload = function () {
104
110
  prettyPrint();
105
111
  };
106
112
  </script>
107
- <script src="../../sorter.js"></script>
108
- <script src="../../block-navigation.js"></script>
113
+ <script src="../../../sorter.js"></script>
114
+ <script src="../../../block-navigation.js"></script>
109
115
  </body>
110
116
  </html>
111
117
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for components/MlGPXViewer/MlGPXViewer.js</title>
6
+ <title>Code coverage report for src/components/MlGPXViewer/MlGPXViewer.js</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,20 +19,20 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">components/MlGPXViewer</a> MlGPXViewer.js</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlGPXViewer</a> MlGPXViewer.js</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">51.18% </span>
26
+ <span class="strong">51.56% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>65/127</span>
28
+ <span class='fraction'>66/128</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">25% </span>
33
+ <span class="strong">26.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>7/28</span>
35
+ <span class='fraction'>8/30</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">52.5% </span>
47
+ <span class="strong">52.89% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>63/120</span>
49
+ <span class='fraction'>64/121</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <pre><table class="coverage">
@@ -426,7 +432,10 @@
426
432
  <a name='L367'></a><a href='#L367'>367</a>
427
433
  <a name='L368'></a><a href='#L368'>368</a>
428
434
  <a name='L369'></a><a href='#L369'>369</a>
429
- <a name='L370'></a><a href='#L370'>370</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
439
  <span class="cline-any cline-neutral">&nbsp;</span>
431
440
  <span class="cline-any cline-neutral">&nbsp;</span>
432
441
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -466,6 +475,7 @@
466
475
  <span class="cline-any cline-yes">12x</span>
467
476
  <span class="cline-any cline-yes">12x</span>
468
477
  <span class="cline-any cline-yes">12x</span>
478
+ <span class="cline-any cline-yes">12x</span>
469
479
  <span class="cline-any cline-neutral">&nbsp;</span>
470
480
  <span class="cline-any cline-yes">12x</span>
471
481
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -795,24 +805,25 @@
795
805
  <span class="cline-any cline-neutral">&nbsp;</span>
796
806
  <span class="cline-any cline-neutral">&nbsp;</span>
797
807
  <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useContext, useRef, useEffect, useState } from "react";
808
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, {useContext, useRef, useEffect, useState} from "react";
799
809
  import PropTypes from "prop-types";
800
- import { MapContext } from "@mapcomponents/react-core";
801
- import { bbox } from "@turf/turf";
810
+ import {MapContext} from "@mapcomponents/react-core";
811
+ import {bbox} from "@turf/turf";
802
812
  import Divider from "@mui/material/Divider";
803
813
  import Typography from "@mui/material/Typography";
804
814
  import Drawer from "@mui/material/Drawer";
805
815
  import IconButton from "@mui/material/IconButton";
806
816
  import InfoIcon from "@mui/icons-material/Info";
807
817
  import FileCopy from "@mui/icons-material/FileCopy";
808
- import { Popup } from "maplibre-gl";
818
+ import {Popup} from "maplibre-gl";
809
819
  import List from "@mui/material/List";
810
820
  import ListItem from "@mui/material/ListItem";
811
821
  import ListItemText from "@mui/material/ListItemText";
812
822
  import GeoJsonContext from "./util/GeoJsonContext";
813
823
  import toGeoJSON from "./gpxConverter";
824
+ import useMediaQuery from "@mui/material/useMediaQuery";
814
825
  &nbsp;
815
- import { v4 as uuidv4 } from "uuid";
826
+ import {v4 as uuidv4} from "uuid";
816
827
  &nbsp;
817
828
  /**
818
829
  * MlGPXViewer returns a dropzone and a button to load a GPX Track into the map.
@@ -835,6 +846,7 @@ const MlGPXViewer = (props) =&gt; {
835
846
  const [zIndex, setZIndex] = useState(0);
836
847
  const [metaData, setMetaData] = useState([]);
837
848
  const fileupload = useRef(null);
849
+ const mediaIsMobile = useMediaQuery("(max-width:900px)");
838
850
  &nbsp;
839
851
  const popup = useRef(
840
852
  new Popup({
@@ -1052,42 +1064,42 @@ const MlGPXViewer = (props) =&gt; {
1052
1064
  };
1053
1065
  return (
1054
1066
  &lt;&gt;
1055
- &lt;IconButton
1056
- onClick={manualUpload}
1057
- style={{
1058
- position: "absolute",
1059
- right: "5px",
1060
- bottom: "75px",
1061
- backgroundColor: "rgba(255,255,255,1)",
1062
- &nbsp;
1063
- zIndex: 1000,
1064
- }}
1065
- size="large"
1066
- &gt;
1067
- &lt;input
1068
- ref={fileupload}
1069
- onChange={fileUploadOnChange}
1070
- type="file"
1071
- id="input"
1072
- multiple
1073
- style={{ display: "none" }}
1074
- &gt;&lt;/input&gt;
1075
- &lt;FileCopy /&gt;
1076
- &lt;/IconButton&gt;
1077
- &lt;IconButton
1078
- onClick={toogleDrawer}
1079
- style={{
1080
- position: "absolute",
1081
- right: "5px",
1082
- bottom: "25px",
1083
- backgroundColor: "rgba(255,255,255,1)",
1084
- &nbsp;
1085
- zIndex: 1000,
1086
- }}
1087
- size="large"
1088
- &gt;
1089
- &lt;InfoIcon /&gt;
1090
- &lt;/IconButton&gt;
1067
+ &lt;div style={{
1068
+ position: "fixed",
1069
+ right: "5px",
1070
+ bottom: mediaIsMobile ? <span class="branch-0 cbranch-no" title="branch not covered" >"40px" </span>: "25px",
1071
+ display: "flex",
1072
+ flexDirection: "column",
1073
+ gap: "5px",
1074
+ zIndex: 1000,
1075
+ }}&gt;
1076
+ &lt;IconButton
1077
+ onClick={manualUpload}
1078
+ style={{
1079
+ backgroundColor: "rgba(255,255,255,1)",
1080
+ }}
1081
+ size="large"
1082
+ &gt;
1083
+ &lt;input
1084
+ ref={fileupload}
1085
+ onChange={fileUploadOnChange}
1086
+ type="file"
1087
+ id="input"
1088
+ multiple
1089
+ style={{display: "none"}}
1090
+ &gt;&lt;/input&gt;
1091
+ &lt;FileCopy/&gt;
1092
+ &lt;/IconButton&gt;
1093
+ &lt;IconButton
1094
+ onClick={toogleDrawer}
1095
+ style={{
1096
+ backgroundColor: "rgba(255,255,255,1)",
1097
+ }}
1098
+ size="large"
1099
+ &gt;
1100
+ &lt;InfoIcon/&gt;
1101
+ &lt;/IconButton&gt;
1102
+ &lt;/div&gt;
1091
1103
  &lt;Drawer variant="persistent" anchor="left" open={open}&gt;
1092
1104
  &lt;Typography
1093
1105
  variant="h6"
@@ -1099,11 +1111,11 @@ const MlGPXViewer = (props) =&gt; {
1099
1111
  &gt;
1100
1112
  Informationen zur Route
1101
1113
  &lt;/Typography&gt;
1102
- &lt;Divider /&gt;
1114
+ &lt;Divider/&gt;
1103
1115
  &lt;List&gt;
1104
1116
  {metaData.map(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; (
1105
1117
  <span class="cstat-no" title="statement not covered" > &lt;ListItem key={`item--${item.id}`}&gt;</span>
1106
- &lt;ListItemText primary={item.value} /&gt;
1118
+ &lt;ListItemText primary={item.value}/&gt;
1107
1119
  &lt;/ListItem&gt;
1108
1120
  ))}
1109
1121
  &lt;/List&gt;
@@ -1170,18 +1182,18 @@ export default MlGPXViewer;
1170
1182
  </div><!-- /wrapper -->
1171
1183
  <div class='footer quiet pad2 space-top1 center small'>
1172
1184
  Code coverage generated by
1173
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1174
- at Mon Nov 29 2021 08:36:45 GMT+0000 (Coordinated Universal Time)
1185
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
1186
+ at Wed Dec 15 2021 17:41:09 GMT+0000 (Coordinated Universal Time)
1175
1187
  </div>
1176
1188
  </div>
1177
- <script src="../../prettify.js"></script>
1189
+ <script src="../../../prettify.js"></script>
1178
1190
  <script>
1179
1191
  window.onload = function () {
1180
1192
  prettyPrint();
1181
1193
  };
1182
1194
  </script>
1183
- <script src="../../sorter.js"></script>
1184
- <script src="../../block-navigation.js"></script>
1195
+ <script src="../../../sorter.js"></script>
1196
+ <script src="../../../block-navigation.js"></script>
1185
1197
  </body>
1186
1198
  </html>
1187
1199