@mapcomponents/react-maplibre 0.1.25 → 0.1.29

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 (111) hide show
  1. package/CHANGELOG.md +78 -7
  2. package/coverage/clover.xml +463 -486
  3. package/coverage/coverage-final.json +21 -20
  4. package/coverage/lcov-report/index.html +94 -79
  5. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.js.html +22 -22
  6. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  7. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.js.html +11 -11
  8. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +11 -11
  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 +4 -4
  12. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  13. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.js.html +234 -36
  14. package/coverage/lcov-report/src/components/MlFollowGps/index.html +19 -19
  15. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.js.html +129 -165
  16. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +8 -8
  17. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +20 -20
  18. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js.html +45 -297
  19. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +19 -19
  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 +2 -2
  23. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.js.html +4 -4
  25. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.js.html +3 -3
  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 +38 -104
  35. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +19 -19
  36. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.js.html +40 -139
  37. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +15 -15
  38. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +32 -155
  39. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +19 -19
  40. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +39 -198
  41. package/coverage/lcov-report/src/components/MlScaleReference/index.html +9 -9
  42. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  43. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  44. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +4 -4
  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/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.js.html +580 -0
  49. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +116 -0
  50. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  51. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  52. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.js.html +3 -3
  53. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  55. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  56. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.js.html +8 -11
  57. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  58. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.js.html +1 -1
  59. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  60. package/coverage/lcov-report/src/hooks/index.html +6 -6
  61. package/coverage/lcov-report/src/hooks/useMap.js.html +38 -26
  62. package/coverage/lcov-report/src/hooks/useMapState.js.html +47 -38
  63. package/coverage/lcov-report/src/hooks/useWms.js.html +2 -2
  64. package/coverage/lcov-report/src/i18n.js.html +1 -1
  65. package/coverage/lcov-report/src/index.html +1 -1
  66. package/coverage/lcov-report/src/translations/english.js.html +1 -1
  67. package/coverage/lcov-report/src/translations/german.js.html +1 -1
  68. package/coverage/lcov-report/src/translations/index.html +1 -1
  69. package/coverage/lcov.info +827 -872
  70. package/dist/index.esm.js +281 -490
  71. package/dist/index.esm.js.map +1 -1
  72. package/jsdoc.json +3 -3
  73. package/package.json +13 -10
  74. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +6 -2
  75. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +3 -3
  76. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +2 -2
  77. package/src/components/MlFollowGps/MlFollowGps.js +85 -19
  78. package/src/components/MlGPXViewer/MlGPXViewer.js +69 -81
  79. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +6 -90
  80. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +4 -22
  81. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.js +2 -2
  82. package/src/components/MlNavigationCompass/MlNavigationCompass.js +17 -39
  83. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +3 -3
  84. package/src/components/MlNavigationTools/MlNavigationTools.js +30 -63
  85. package/src/components/MlOsmLayer/MlOsmLayer.js +15 -56
  86. package/src/components/MlOsmLayer/MlOsmLayer.stories.js +21 -10
  87. package/src/components/MlOsmLayer/MlOsmLayer.test.js +4 -4
  88. package/src/components/MlScaleReference/MlScaleReference.js +29 -82
  89. package/src/components/MlShareMapState/MlShareMapState.stories.js +1 -3
  90. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +2369 -2591
  91. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.doc.de.md +3 -0
  92. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.js +165 -0
  93. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.meta.json +15 -0
  94. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +52 -0
  95. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +20 -0
  96. package/src/components/MlTransitionGeoJsonLayer/assets/sample_1.json +26 -0
  97. package/src/components/MlTransitionGeoJsonLayer/assets/sample_2.json +22 -0
  98. package/src/components/MlTransitionGeoJsonLayer/assets/sample_polygon_1.json +33 -0
  99. package/src/components/{MlGeoJsonLayer → MlTransitionGeoJsonLayer}/util/transitionFunctions.js +63 -97
  100. package/src/components/MlWmsLayer/MlWmsLayer.js +1 -2
  101. package/src/decorators/MapContextDecorator.js +5 -0
  102. package/src/decorators/MultiMapContextDecorator.js +6 -0
  103. package/src/hooks/useMap.js +8 -4
  104. package/src/hooks/useMapState.js +4 -1
  105. package/src/hooks/useWms.js +1 -1
  106. package/dist/b556faa3bc6829d2.png +0 -0
  107. package/src/components/MlFollowGps/assets/marker.png +0 -0
  108. package/src/decorators/EmptyMapContextDecorator.js +0 -25
  109. package/src/decorators/MapContext3DDecorator.js +0 -39
  110. package/src/decorators/MapContextDashboardDecorator.js +0 -19
  111. package/src/decorators/MapContextKlokantechBasicDecorator.js +0 -39
@@ -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/56</span>
28
+ <span class='fraction'>0/50</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/30</span>
35
+ <span class='fraction'>0/26</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/8</span>
42
+ <span class='fraction'>0/7</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/55</span>
49
+ <span class='fraction'>0/48</span>
50
50
  </div>
51
51
 
52
52
 
@@ -165,97 +165,28 @@
165
165
  <a name='L100'></a><a href='#L100'>100</a>
166
166
  <a name='L101'></a><a href='#L101'>101</a>
167
167
  <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
168
+ <a name='L103'></a><a href='#L103'>103</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
222
169
  <span class="cline-any cline-neutral">&nbsp;</span>
223
170
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-no">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-no">&nbsp;</span>
229
171
  <span class="cline-any cline-no">&nbsp;</span>
230
172
  <span class="cline-any cline-no">&nbsp;</span>
231
173
  <span class="cline-any cline-no">&nbsp;</span>
232
174
  <span class="cline-any cline-neutral">&nbsp;</span>
233
175
  <span class="cline-any cline-no">&nbsp;</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-no">&nbsp;</span>
238
176
  <span class="cline-any cline-no">&nbsp;</span>
239
177
  <span class="cline-any cline-neutral">&nbsp;</span>
240
178
  <span class="cline-any cline-no">&nbsp;</span>
241
179
  <span class="cline-any cline-no">&nbsp;</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
243
180
  <span class="cline-any cline-no">&nbsp;</span>
244
181
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-no">&nbsp;</span>
250
182
  <span class="cline-any cline-no">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
184
  <span class="cline-any cline-no">&nbsp;</span>
252
185
  <span class="cline-any cline-neutral">&nbsp;</span>
253
186
  <span class="cline-any cline-neutral">&nbsp;</span>
254
187
  <span class="cline-any cline-neutral">&nbsp;</span>
255
188
  <span class="cline-any cline-neutral">&nbsp;</span>
256
189
  <span class="cline-any cline-no">&nbsp;</span>
257
- <span class="cline-any cline-no">&nbsp;</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
190
  <span class="cline-any cline-neutral">&nbsp;</span>
260
191
  <span class="cline-any cline-no">&nbsp;</span>
261
192
  <span class="cline-any cline-no">&nbsp;</span>
@@ -263,24 +194,14 @@
263
194
  <span class="cline-any cline-no">&nbsp;</span>
264
195
  <span class="cline-any cline-neutral">&nbsp;</span>
265
196
  <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-no">&nbsp;</span>
267
- <span class="cline-any cline-no">&nbsp;</span>
268
- <span class="cline-any cline-no">&nbsp;</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-no">&nbsp;</span>
272
- <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-neutral">&nbsp;</span>
274
- <span class="cline-any cline-neutral">&nbsp;</span>
275
197
  <span class="cline-any cline-neutral">&nbsp;</span>
276
198
  <span class="cline-any cline-no">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
199
  <span class="cline-any cline-no">&nbsp;</span>
279
200
  <span class="cline-any cline-no">&nbsp;</span>
280
201
  <span class="cline-any cline-no">&nbsp;</span>
281
202
  <span class="cline-any cline-no">&nbsp;</span>
282
203
  <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-no">&nbsp;</span>
284
205
  <span class="cline-any cline-neutral">&nbsp;</span>
285
206
  <span class="cline-any cline-no">&nbsp;</span>
286
207
  <span class="cline-any cline-no">&nbsp;</span>
@@ -288,35 +209,19 @@
288
209
  <span class="cline-any cline-no">&nbsp;</span>
289
210
  <span class="cline-any cline-no">&nbsp;</span>
290
211
  <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-neutral">&nbsp;</span>
295
212
  <span class="cline-any cline-no">&nbsp;</span>
296
213
  <span class="cline-any cline-neutral">&nbsp;</span>
297
214
  <span class="cline-any cline-neutral">&nbsp;</span>
298
215
  <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
302
216
  <span class="cline-any cline-no">&nbsp;</span>
303
217
  <span class="cline-any cline-no">&nbsp;</span>
304
218
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
219
  <span class="cline-any cline-no">&nbsp;</span>
309
220
  <span class="cline-any cline-no">&nbsp;</span>
310
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
221
  <span class="cline-any cline-no">&nbsp;</span>
316
222
  <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-no">&nbsp;</span>
224
+ <span class="cline-any cline-no">&nbsp;</span>
320
225
  <span class="cline-any cline-neutral">&nbsp;</span>
321
226
  <span class="cline-any cline-neutral">&nbsp;</span>
322
227
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -338,17 +243,6 @@
338
243
  <span class="cline-any cline-neutral">&nbsp;</span>
339
244
  <span class="cline-any cline-no">&nbsp;</span>
340
245
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&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>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
246
  <span class="cline-any cline-no">&nbsp;</span>
353
247
  <span class="cline-any cline-neutral">&nbsp;</span>
354
248
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -373,66 +267,32 @@
373
267
  <span class="cline-any cline-neutral">&nbsp;</span>
374
268
  <span class="cline-any cline-neutral">&nbsp;</span>
375
269
  <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useState, useContext } from "react";
377
- &nbsp;
378
- import { MapContext } from "@mapcomponents/react-core";
379
- import { v4 as uuidv4 } from "uuid";
270
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useState, useCallback } from "react";
271
+ import useMap from "../../hooks/useMap";
380
272
  &nbsp;
381
273
  const MlScaleReference = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) =&gt; {</span>
382
- // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
383
- const mapContext = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
384
- const mapRef = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
385
- const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
386
274
  const zoomRef = <span class="cstat-no" title="statement not covered" >useRef(0);</span>
387
- &nbsp;
388
- const componentId = <span class="cstat-no" title="statement not covered" >useRef(</span>
389
- (props.idPrefix ? props.idPrefix : "MlScaleReference-") + uuidv4()
390
- );
275
+ const mapHook = <span class="cstat-no" title="statement not covered" >useMap({ mapId: props.mapId, waitForLayer: props.insertBeforeLayer });</span>
391
276
  &nbsp;
392
277
  const [pxWidth, setPxWidth] = <span class="cstat-no" title="statement not covered" >useState(0);</span>
393
278
  const [text, setText] = <span class="cstat-no" title="statement not covered" >useState("");</span>
394
279
  &nbsp;
395
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
396
- let _componentId = <span class="cstat-no" title="statement not covered" >componentId.current;</span>
397
- &nbsp;
398
- <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
399
- // This is the cleanup function, it is called when this react component is removed from react-dom
400
- // try to remove anything this component has added to the MapLibre-gl instance
401
- // e.g.: remove the layer
402
- // mapContext.getMap(props.mapId).removeLayer(layerRef.current);
403
- // check for the existence of map.style before calling getLayer or getSource
404
- <span class="cstat-no" title="statement not covered" > if (mapRef.current) {</span>
405
- <span class="cstat-no" title="statement not covered" > mapRef.current.cleanup(_componentId);</span>
406
- <span class="cstat-no" title="statement not covered" > mapRef.current = undefined;</span>
407
- }
408
- };
409
- }, []);
410
- &nbsp;
411
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
412
- <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>
413
- // the MapLibre-gl instance (mapContext.map) is accessible here
414
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
415
- <span class="cstat-no" title="statement not covered" > initializedRef.current = true;</span>
416
- <span class="cstat-no" title="statement not covered" > mapRef.current = mapContext.getMap(props.mapId);</span>
417
- <span class="cstat-no" title="statement not covered" > mapRef.current.on("move", updateScale.current, componentId.current);</span>
418
- <span class="cstat-no" title="statement not covered" > updateScale.current();</span>
419
- }, [mapContext.mapIds, mapContext, props.mapId]);
420
- &nbsp;
421
- const updateScale = <span class="cstat-no" title="statement not covered" >useRef(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
422
- <span class="cstat-no" title="statement not covered" > if (mapRef.current.map.getZoom() === zoomRef.current) {</span>
280
+ const updateScale = <span class="cstat-no" title="statement not covered" >useCallback(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
281
+ <span class="cstat-no" title="statement not covered" > if (mapHook.map?.map.getZoom() === zoomRef.current) {</span>
423
282
  <span class="cstat-no" title="statement not covered" > return;</span>
424
283
  }
284
+ <span class="cstat-no" title="statement not covered" > if (!mapHook.map) <span class="cstat-no" title="statement not covered" >return;</span></span>
425
285
  &nbsp;
426
- <span class="cstat-no" title="statement not covered" > zoomRef.current = mapRef.current.map.getZoom();</span>
286
+ <span class="cstat-no" title="statement not covered" > zoomRef.current = mapHook.map?.map.getZoom();</span>
427
287
  // Calculation from MapLibre
428
288
  // A horizontal scale is imagined to be present at center of the map
429
289
  // Using spherical law of cosines approximation, the real distance is
430
290
  // found between the two coordinates.
431
291
  const maxWidth = <span class="cstat-no" title="statement not covered" >props.maxWidth || 100;</span>
432
292
  &nbsp;
433
- const y = <span class="cstat-no" title="statement not covered" >mapRef.current._container.clientHeight / 2;</span>
434
- const left = <span class="cstat-no" title="statement not covered" >mapRef.current.unproject([0, y]);</span>
435
- const right = <span class="cstat-no" title="statement not covered" >mapRef.current.unproject([maxWidth, y]);</span>
293
+ const y = <span class="cstat-no" title="statement not covered" >mapHook.map._container.clientHeight / 2;</span>
294
+ const left = <span class="cstat-no" title="statement not covered" >mapHook.map.unproject([0, y]);</span>
295
+ const right = <span class="cstat-no" title="statement not covered" >mapHook.map.unproject([maxWidth, y]);</span>
436
296
  const maxMeters = <span class="cstat-no" title="statement not covered" >left.distanceTo(right);</span>
437
297
  // The real distance corresponding to 100px scale length is rounded off to
438
298
  // near pretty number and the scale length for the same is found out.
@@ -441,39 +301,31 @@ const MlScaleReference = <span class="cstat-no" title="statement not covered" ><
441
301
  const maxFeet = <span class="cstat-no" title="statement not covered" >3.2808 * maxMeters;</span>
442
302
  <span class="cstat-no" title="statement not covered" > if (maxFeet &gt; 5280) {</span>
443
303
  const maxMiles = <span class="cstat-no" title="statement not covered" >maxFeet / 5280;</span>
444
- <span class="cstat-no" title="statement not covered" > setScale(</span>
445
- maxWidth,
446
- maxMiles,
447
- mapRef.current._getUIString("ScaleControl.Miles")
448
- );
304
+ <span class="cstat-no" title="statement not covered" > setScale(maxWidth, maxMiles, mapHook.map._getUIString("ScaleControl.Miles"));</span>
449
305
  } else {
450
- <span class="cstat-no" title="statement not covered" > setScale(</span>
451
- maxWidth,
452
- maxFeet,
453
- mapRef.current._getUIString("ScaleControl.Feet")
454
- );
306
+ <span class="cstat-no" title="statement not covered" > setScale(maxWidth, maxFeet, mapHook.map._getUIString("ScaleControl.Feet"));</span>
455
307
  }
456
308
  } else <span class="cstat-no" title="statement not covered" >if (props.unit === "nautical") {</span>
457
309
  const maxNauticals = <span class="cstat-no" title="statement not covered" >maxMeters / 1852;</span>
458
- <span class="cstat-no" title="statement not covered" > setScale(</span>
459
- maxWidth,
460
- maxNauticals,
461
- mapRef.current._getUIString("ScaleControl.NauticalMiles")
462
- );
310
+ <span class="cstat-no" title="statement not covered" > setScale(maxWidth, maxNauticals, mapHook.map._getUIString("ScaleControl.NauticalMiles"));</span>
463
311
  } else <span class="cstat-no" title="statement not covered" >if (maxMeters &gt;= 1000) {</span>
464
- <span class="cstat-no" title="statement not covered" > setScale(</span>
465
- maxWidth,
466
- maxMeters / 1000,
467
- mapRef.current._getUIString("ScaleControl.Kilometers")
468
- );
312
+ <span class="cstat-no" title="statement not covered" > setScale(maxWidth, maxMeters / 1000, mapHook.map._getUIString("ScaleControl.Kilometers"));</span>
469
313
  } else {
470
- <span class="cstat-no" title="statement not covered" > setScale(</span>
471
- maxWidth,
472
- maxMeters,
473
- mapRef.current._getUIString("ScaleControl.Meters")
474
- );
314
+ <span class="cstat-no" title="statement not covered" > setScale(maxWidth, maxMeters, mapHook.map._getUIString("ScaleControl.Meters"));</span>
475
315
  }
476
- });
316
+ }, [mapHook.map, props.unit, props.maxWidth]);
317
+ &nbsp;
318
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
319
+ <span class="cstat-no" title="statement not covered" > if (!mapHook.map) <span class="cstat-no" title="statement not covered" >return;</span></span>
320
+ &nbsp;
321
+ let _updateScale = <span class="cstat-no" title="statement not covered" >updateScale;</span>
322
+ <span class="cstat-no" title="statement not covered" > mapHook.map.on("move", _updateScale, mapHook.componentId);</span>
323
+ <span class="cstat-no" title="statement not covered" > updateScale();</span>
324
+ &nbsp;
325
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
326
+ <span class="cstat-no" title="statement not covered" > mapHook.map.off("move", _updateScale);</span>
327
+ };
328
+ }, [mapHook.map, updateScale]);
477
329
  &nbsp;
478
330
  const setScale = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(m</span>axWidth, maxDistance, unit) =&gt; {</span>
479
331
  const distance = <span class="cstat-no" title="statement not covered" >getRoundNum(maxDistance);</span>
@@ -491,18 +343,7 @@ const MlScaleReference = <span class="cstat-no" title="statement not covered" ><
491
343
  const pow10 = <span class="cstat-no" title="statement not covered" >Math.pow(10, `${Math.floor(num)}`.length - 1);</span>
492
344
  let d = <span class="cstat-no" title="statement not covered" >num / pow10;</span>
493
345
  &nbsp;
494
- <span class="cstat-no" title="statement not covered" > d =</span>
495
- d &gt;= 10
496
- ? 10
497
- : d &gt;= 5
498
- ? 5
499
- : d &gt;= 3
500
- ? 3
501
- : d &gt;= 2
502
- ? 2
503
- : d &gt;= 1
504
- ? 1
505
- : getDecimalRoundNum(d);
346
+ <span class="cstat-no" title="statement not covered" > d = d &gt;= 10 ? 10 : d &gt;= 5 ? 5 : d &gt;= 3 ? 3 : d &gt;= 2 ? 2 : d &gt;= 1 ? 1 : getDecimalRoundNum(d);</span>
506
347
  &nbsp;
507
348
  <span class="cstat-no" title="statement not covered" > return pow10 * d;</span>
508
349
  };
@@ -535,7 +376,7 @@ export default MlScaleReference;
535
376
  <div class='footer quiet pad2 space-top1 center small'>
536
377
  Code coverage generated by
537
378
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
538
- at Mon Jan 31 2022 16:41:51 GMT+0000 (Coordinated Universal Time)
379
+ at Sun Feb 20 2022 15:15:59 GMT+0000 (Coordinated Universal Time)
539
380
  </div>
540
381
  <script src="../../../prettify.js"></script>
541
382
  <script>
@@ -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/56</span>
28
+ <span class='fraction'>0/50</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/30</span>
35
+ <span class='fraction'>0/26</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/8</span>
42
+ <span class='fraction'>0/7</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/55</span>
49
+ <span class='fraction'>0/48</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
85
  </td>
86
86
  <td data-value="0" class="pct low">0%</td>
87
- <td data-value="56" class="abs low">0/56</td>
87
+ <td data-value="50" class="abs low">0/50</td>
88
88
  <td data-value="0" class="pct low">0%</td>
89
- <td data-value="30" class="abs low">0/30</td>
89
+ <td data-value="26" class="abs low">0/26</td>
90
90
  <td data-value="0" class="pct low">0%</td>
91
- <td data-value="8" class="abs low">0/8</td>
91
+ <td data-value="7" class="abs low">0/7</td>
92
92
  <td data-value="0" class="pct low">0%</td>
93
- <td data-value="55" class="abs low">0/55</td>
93
+ <td data-value="48" class="abs low">0/48</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Mon Jan 31 2022 16:41:51 GMT+0000 (Coordinated Universal Time)
104
+ at Sun Feb 20 2022 15:15:59 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -769,7 +769,7 @@ export default MlShareMapState;
769
769
  <div class='footer quiet pad2 space-top1 center small'>
770
770
  Code coverage generated by
771
771
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
772
- at Mon Jan 31 2022 16:41:51 GMT+0000 (Coordinated Universal Time)
772
+ at Sun Feb 20 2022 15:15:59 GMT+0000 (Coordinated Universal Time)
773
773
  </div>
774
774
  <script src="../../../prettify.js"></script>
775
775
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Mon Jan 31 2022 16:41:51 GMT+0000 (Coordinated Universal Time)
104
+ at Sun Feb 20 2022 15:15:59 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -309,7 +309,7 @@
309
309
  <span class="cline-any cline-neutral">&nbsp;</span>
310
310
  <span class="cline-any cline-neutral">&nbsp;</span>
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">1x</span>
312
+ <span class="cline-any cline-yes">2x</span>
313
313
  <span class="cline-any cline-yes">8x</span>
314
314
  <span class="cline-any cline-neutral">&nbsp;</span>
315
315
  <span class="cline-any cline-yes">8x</span>
@@ -504,11 +504,11 @@
504
504
  <span class="cline-any cline-yes">8x</span>
505
505
  <span class="cline-any cline-neutral">&nbsp;</span>
506
506
  <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-yes">1x</span>
507
+ <span class="cline-any cline-yes">2x</span>
508
508
  <span class="cline-any cline-neutral">&nbsp;</span>
509
509
  <span class="cline-any cline-neutral">&nbsp;</span>
510
510
  <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-yes">1x</span>
511
+ <span class="cline-any cline-yes">2x</span>
512
512
  <span class="cline-any cline-neutral">&nbsp;</span>
513
513
  <span class="cline-any cline-neutral">&nbsp;</span>
514
514
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -769,7 +769,7 @@ export default MlSpatialElevationProfile;
769
769
  <div class='footer quiet pad2 space-top1 center small'>
770
770
  Code coverage generated by
771
771
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
772
- at Mon Jan 31 2022 16:41:51 GMT+0000 (Coordinated Universal Time)
772
+ at Sun Feb 20 2022 15:15:59 GMT+0000 (Coordinated Universal Time)
773
773
  </div>
774
774
  <script src="../../../prettify.js"></script>
775
775
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Mon Jan 31 2022 16:41:51 GMT+0000 (Coordinated Universal Time)
104
+ at Sun Feb 20 2022 15:15:59 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -688,7 +688,7 @@ export default MlThreeJsLayer;</pre></td></tr></table></pre>
688
688
  <div class='footer quiet pad2 space-top1 center small'>
689
689
  Code coverage generated by
690
690
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
691
- at Mon Jan 31 2022 16:41:51 GMT+0000 (Coordinated Universal Time)
691
+ at Sun Feb 20 2022 15:15:59 GMT+0000 (Coordinated Universal Time)
692
692
  </div>
693
693
  <script src="../../../prettify.js"></script>
694
694
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Mon Jan 31 2022 16:41:51 GMT+0000 (Coordinated Universal Time)
104
+ at Sun Feb 20 2022 15:15:59 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>