@mapcomponents/react-maplibre 0.1.11 → 0.1.15

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/workflows/storybook.yml +10 -5
  2. package/coverage/clover.xml +894 -747
  3. package/coverage/coverage-final.json +22 -17
  4. package/coverage/lcov-report/block-navigation.js +8 -0
  5. package/coverage/lcov-report/index.html +188 -122
  6. package/coverage/lcov-report/sorter.js +26 -0
  7. package/coverage/lcov-report/{components → src/components}/MapLibreMap/MapLibreMap.js.html +17 -11
  8. package/coverage/lcov-report/{components → src/components}/MapLibreMap/index.html +17 -11
  9. package/coverage/lcov-report/{components → src/components}/MlCreatePdfButton/MlCreatePdfButton.js.html +17 -11
  10. package/coverage/lcov-report/{components → src/components}/MlCreatePdfButton/index.html +17 -11
  11. package/coverage/lcov-report/{components → src/components}/MlFeatureEditor/MlFeatureEditor.js.html +17 -11
  12. package/coverage/lcov-report/{components → src/components}/MlFeatureEditor/index.html +17 -11
  13. package/coverage/lcov-report/{components → src/components}/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +17 -11
  14. package/coverage/lcov-report/{components → src/components}/MlFillExtrusionLayer/index.html +17 -11
  15. package/coverage/lcov-report/{components → src/components}/MlFollowGps/MlFollowGps.js.html +84 -69
  16. package/coverage/lcov-report/{components → src/components}/MlFollowGps/index.html +27 -21
  17. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/MlGPXViewer.js.html +73 -61
  18. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/gpxConverter.js.html +56 -71
  19. package/coverage/lcov-report/{components → src/components}/MlGPXViewer/index.html +32 -26
  20. package/coverage/lcov-report/{components → src/components}/MlGeoJsonLayer/MlGeoJsonLayer.js.html +162 -48
  21. package/coverage/lcov-report/{components → src/components}/MlGeoJsonLayer/index.html +35 -29
  22. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js.html +311 -0
  23. package/coverage/lcov-report/{components → src/components}/MlImageMarkerLayer/index.html +35 -29
  24. package/coverage/lcov-report/{components/MlImageMarkerLayer/MlImageMarkerLayer.js.html → src/components/MlLayer/MlLayer.js.html} +123 -126
  25. package/coverage/lcov-report/src/components/MlLayer/index.html +117 -0
  26. package/coverage/lcov-report/{components → src/components}/MlLayerMagnify/MlLayerMagnify.js.html +48 -42
  27. package/coverage/lcov-report/{components → src/components}/MlLayerMagnify/index.html +31 -25
  28. package/coverage/lcov-report/{components → src/components}/MlLayerSwipe/MlLayerSwipe.js.html +45 -42
  29. package/coverage/lcov-report/{components → src/components}/MlLayerSwipe/index.html +31 -25
  30. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +755 -0
  31. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +380 -0
  32. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +117 -0
  33. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +117 -0
  34. package/coverage/lcov-report/{components → src/components}/MlMarker/MlMarker.js.html +18 -12
  35. package/coverage/lcov-report/{components → src/components}/MlMarker/index.html +17 -11
  36. package/coverage/lcov-report/{components → src/components}/MlNavigationCompass/MlNavigationCompass.js.html +17 -11
  37. package/coverage/lcov-report/{components → src/components}/MlNavigationCompass/index.html +17 -11
  38. package/coverage/lcov-report/{components → src/components}/MlNavigationTools/MlNavigationTools.js.html +57 -42
  39. package/coverage/lcov-report/{components → src/components}/MlNavigationTools/index.html +25 -19
  40. package/coverage/lcov-report/{components → src/components}/MlOsmLayer/MlOsmLayer.js.html +17 -11
  41. package/coverage/lcov-report/{components → src/components}/MlOsmLayer/index.html +17 -11
  42. package/coverage/lcov-report/{components → src/components}/MlScaleReference/MlScaleReference.js.html +17 -11
  43. package/coverage/lcov-report/{components → src/components}/MlScaleReference/index.html +17 -11
  44. package/coverage/lcov-report/{components → src/components}/MlShareMapState/MlShareMapState.js.html +224 -26
  45. package/coverage/lcov-report/{components → src/components}/MlShareMapState/index.html +25 -19
  46. package/coverage/lcov-report/{components → src/components}/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +17 -11
  47. package/coverage/lcov-report/{components → src/components}/MlSpatialElevationProfile/index.html +17 -11
  48. package/coverage/lcov-report/{components → src/components}/MlThreeJsLayer/MlThreeJsLayer.js.html +37 -55
  49. package/coverage/lcov-report/{components → src/components}/MlThreeJsLayer/index.html +31 -25
  50. package/coverage/lcov-report/{components → src/components}/MlUseMapDebugger/MlUseMapDebugger.js.html +17 -11
  51. package/coverage/lcov-report/{components → src/components}/MlUseMapDebugger/index.html +17 -11
  52. package/coverage/lcov-report/{components → src/components}/MlVectorTileLayer/MlVectorTileLayer.js.html +17 -11
  53. package/coverage/lcov-report/{components → src/components}/MlVectorTileLayer/index.html +17 -11
  54. package/coverage/lcov-report/{components → src/components}/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +17 -11
  55. package/coverage/lcov-report/{components → src/components}/MlWmsFeatureInfoPopup/index.html +17 -11
  56. package/coverage/lcov-report/{components → src/components}/MlWmsLayer/MlWmsLayer.js.html +20 -14
  57. package/coverage/lcov-report/{components → src/components}/MlWmsLayer/index.html +21 -15
  58. package/coverage/lcov-report/{components → src/components}/MlWmsLoader/MlWmsLoader.js.html +38 -20
  59. package/coverage/lcov-report/{components → src/components}/MlWmsLoader/index.html +23 -17
  60. package/coverage/lcov-report/src/hooks/index.html +147 -0
  61. package/coverage/lcov-report/{components/MlLayer/MlLayer.js.html → src/hooks/useMap.js.html} +86 -119
  62. package/coverage/lcov-report/{hooks → src/hooks}/useMapState.js.html +98 -92
  63. package/coverage/lcov-report/{hooks → src/hooks}/useWms.js.html +25 -19
  64. package/coverage/lcov-report/src/i18n.js.html +167 -0
  65. package/coverage/lcov-report/src/index.html +117 -0
  66. package/coverage/lcov-report/src/translations/english.js.html +95 -0
  67. package/coverage/lcov-report/src/translations/german.js.html +95 -0
  68. package/coverage/lcov-report/src/translations/index.html +132 -0
  69. package/coverage/lcov.info +1620 -1306
  70. package/dist/b556faa3bc6829d2.png +0 -0
  71. package/dist/index.esm.js +976 -688
  72. package/dist/index.esm.js.map +1 -1
  73. package/package.json +3 -1
  74. package/public/assets/dop.png +0 -0
  75. package/public/assets/historic.png +0 -0
  76. package/public/assets/osm.png +0 -0
  77. package/public/thumbnails/MlFollowGps.png +0 -0
  78. package/public/thumbnails/MlThreeJsLayer.png +0 -0
  79. package/rollup.config.js +7 -1
  80. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +53 -67
  81. package/src/components/MlCreatePdfButton/MlCreatePdfButton.meta.json +1 -1
  82. package/src/components/MlFeatureEditor/MlFeatureEditor.meta.json +2 -2
  83. package/src/components/MlFollowGps/MlFollowGps.js +49 -46
  84. package/src/components/MlFollowGps/MlFollowGps.meta.json +2 -2
  85. package/src/components/MlFollowGps/assets/marker.png +0 -0
  86. package/src/components/MlGPXViewer/MlGPXViewer.js +45 -43
  87. package/src/components/MlGPXViewer/gpxConverter.js +22 -29
  88. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +45 -9
  89. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.meta.json +1 -1
  90. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js +21 -57
  91. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +6 -7
  92. package/src/components/MlLayer/MlLayer.js +28 -6
  93. package/src/components/MlLayer/MlLayer.test.js +12 -10
  94. package/src/components/MlLayerMagnify/MlLayerMagnify.js +3 -3
  95. package/src/components/MlLayerSwipe/MlLayerSwipe.js +4 -5
  96. package/src/components/MlLayerSwitcher/MlLayerSwitcher.css +17 -0
  97. package/src/components/MlLayerSwitcher/MlLayerSwitcher.doc.de.md +3 -0
  98. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +223 -0
  99. package/src/components/MlLayerSwitcher/MlLayerSwitcher.meta_.json +15 -0
  100. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +106 -0
  101. package/src/components/MlLayerSwitcher/assets/sample_1.json +26 -0
  102. package/src/components/MlLayerSwitcher/assets/sample_2.json +22 -0
  103. package/src/components/MlLayerSwitcher/components/LayerBox.js +98 -0
  104. package/src/components/MlMarker/MlMarker.js +1 -1
  105. package/src/components/MlNavigationTools/MlNavigationTools.js +29 -26
  106. package/src/components/MlScaleReference/MlScaleReference.meta.json +1 -1
  107. package/src/components/MlScaleReference/MlScaleReference.stories.js +25 -21
  108. package/src/components/MlShareMapState/MlShareMapState.js +73 -9
  109. package/src/components/MlShareMapState/MlShareMapState.stories.js +24 -1
  110. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +12 -6
  111. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +8 -15
  112. package/src/components/MlVectorTileLayer/MlVectorTileLayer.meta.json +3 -3
  113. package/src/components/MlWmsLayer/MlWmsLayer.js +1 -1
  114. package/src/components/MlWmsLoader/MlWmsLoader.js +8 -4
  115. package/src/components/MlWmsLoader/MlWmsLoader.meta.json +1 -1
  116. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +5 -4
  117. package/src/decorators/EmptyMapContextDecorator.js +11 -6
  118. package/src/decorators/MapContext3DDecorator.js +25 -20
  119. package/src/decorators/MapContextDashboardDecorator.js +7 -2
  120. package/src/decorators/MapContextDecorator.js +7 -3
  121. package/src/decorators/MapContextKlokantechBasicDecorator.js +8 -4
  122. package/src/decorators/MultiMapContextDecorator.js +2 -1
  123. package/src/hooks/useMap.js +36 -62
  124. package/src/hooks/useMapState.js +3 -3
  125. package/src/hooks/useWms.js +7 -6
  126. package/src/i18n.js +28 -0
  127. package/src/index.js +3 -0
  128. package/src/translations/english.js +4 -0
  129. package/src/translations/german.js +4 -0
  130. package/src/ui_components/ImageLoader.js +73 -0
  131. package/src/ui_components/Sidebar.js +76 -22
  132. package/src/ui_components/TopToolbar.js +18 -18
  133. package/coverage/lcov-report/components/MlLayer/index.html +0 -111
  134. package/coverage/lcov-report/hooks/index.html +0 -141
  135. package/coverage/lcov-report/hooks/useMap.js.html +0 -377
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for components/MlShareMapState/MlShareMapState.js</title>
6
+ <title>Code coverage report for src/components/MlShareMapState/MlShareMapState.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,34 +19,34 @@
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/MlShareMapState</a> MlShareMapState.js</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlShareMapState</a> MlShareMapState.js</h1>
23
23
  <div class='clearfix'>
24
24
 
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/50</span>
28
+ <span class='fraction'>0/87</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/24</span>
35
+ <span class='fraction'>0/42</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/9</span>
42
+ <span class='fraction'>0/10</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/48</span>
49
+ <span class='fraction'>0/81</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 low'></div>
59
65
  <pre><table class="coverage">
@@ -176,7 +182,71 @@
176
182
  <a name='L117'></a><a href='#L117'>117</a>
177
183
  <a name='L118'></a><a href='#L118'>118</a>
178
184
  <a name='L119'></a><a href='#L119'>119</a>
179
- <a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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>
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>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
180
250
  <span class="cline-any cline-neutral">&nbsp;</span>
181
251
  <span class="cline-any cline-neutral">&nbsp;</span>
182
252
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -190,7 +260,6 @@
190
260
  <span class="cline-any cline-neutral">&nbsp;</span>
191
261
  <span class="cline-any cline-neutral">&nbsp;</span>
192
262
  <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
263
  <span class="cline-any cline-neutral">&nbsp;</span>
195
264
  <span class="cline-any cline-no">&nbsp;</span>
196
265
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -198,6 +267,18 @@
198
267
  <span class="cline-any cline-no">&nbsp;</span>
199
268
  <span class="cline-any cline-no">&nbsp;</span>
200
269
  <span class="cline-any cline-no">&nbsp;</span>
270
+ <span class="cline-any cline-no">&nbsp;</span>
271
+ <span class="cline-any cline-no">&nbsp;</span>
272
+ <span class="cline-any cline-no">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
282
  <span class="cline-any cline-neutral">&nbsp;</span>
202
283
  <span class="cline-any cline-no">&nbsp;</span>
203
284
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -233,19 +314,46 @@
233
314
  <span class="cline-any cline-no">&nbsp;</span>
234
315
  <span class="cline-any cline-no">&nbsp;</span>
235
316
  <span class="cline-any cline-no">&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>
320
+ <span class="cline-any cline-no">&nbsp;</span>
321
+ <span class="cline-any cline-no">&nbsp;</span>
322
+ <span class="cline-any cline-no">&nbsp;</span>
236
323
  <span class="cline-any cline-no">&nbsp;</span>
237
324
  <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-no">&nbsp;</span>
328
+ <span class="cline-any cline-no">&nbsp;</span>
329
+ <span class="cline-any cline-no">&nbsp;</span>
330
+ <span class="cline-any cline-no">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
333
  <span class="cline-any cline-neutral">&nbsp;</span>
239
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-no">&nbsp;</span>
240
337
  <span class="cline-any cline-no">&nbsp;</span>
241
338
  <span class="cline-any cline-no">&nbsp;</span>
242
339
  <span class="cline-any cline-neutral">&nbsp;</span>
243
340
  <span class="cline-any cline-no">&nbsp;</span>
244
341
  <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
245
343
  <span class="cline-any cline-neutral">&nbsp;</span>
246
344
  <span class="cline-any cline-neutral">&nbsp;</span>
247
345
  <span class="cline-any cline-no">&nbsp;</span>
248
346
  <span class="cline-any cline-no">&nbsp;</span>
347
+ <span class="cline-any cline-no">&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
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
354
+ <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
357
  <span class="cline-any cline-neutral">&nbsp;</span>
250
358
  <span class="cline-any cline-neutral">&nbsp;</span>
251
359
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -268,6 +376,32 @@
268
376
  <span class="cline-any cline-no">&nbsp;</span>
269
377
  <span class="cline-any cline-no">&nbsp;</span>
270
378
  <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-no">&nbsp;</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-no">&nbsp;</span>
383
+ <span class="cline-any cline-no">&nbsp;</span>
384
+ <span class="cline-any cline-no">&nbsp;</span>
385
+ <span class="cline-any cline-no">&nbsp;</span>
386
+ <span class="cline-any cline-no">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-no">&nbsp;</span>
389
+ <span class="cline-any cline-no">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-no">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-no">&nbsp;</span>
395
+ <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-no">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
+ <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
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
405
  <span class="cline-any cline-neutral">&nbsp;</span>
272
406
  <span class="cline-any cline-no">&nbsp;</span>
273
407
  <span class="cline-any cline-no">&nbsp;</span>
@@ -295,11 +429,12 @@
295
429
  <span class="cline-any cline-neutral">&nbsp;</span>
296
430
  <span class="cline-any cline-neutral">&nbsp;</span>
297
431
  <span class="cline-any cline-neutral">&nbsp;</span>
298
- <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";
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";
299
433
  import PropTypes from "prop-types";
300
434
  &nbsp;
301
- import { MapContext } from "@mapcomponents/react-core";
302
- import { v4 as uuidv4 } from "uuid";
435
+ import {MapContext} from "@mapcomponents/react-core";
436
+ import {v4 as uuidv4} from "uuid";
437
+ import useMapState from "../../hooks/useMapState";
303
438
  &nbsp;
304
439
  /**
305
440
  * TODO: Add short &amp; useful description
@@ -312,11 +447,21 @@ import { v4 as uuidv4 } from "uuid";
312
447
  const MlShareMapState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) =&gt; {</span>
313
448
  // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
314
449
  const mapContext = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
315
- &nbsp;
316
450
  const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
317
451
  const mapRef = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
318
452
  const [map, setMap] = <span class="cstat-no" title="statement not covered" >useState(undefined);</span>
319
453
  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
+ const mapState = <span class="cstat-no" title="statement not covered" >useMapState({</span>
456
+ watch: {
457
+ viewport: false,
458
+ layers: true,
459
+ sources: false
460
+ },
461
+ filter: {
462
+ includeBaseLayers: false
463
+ }
464
+ })
320
465
  &nbsp;
321
466
  const mapStateRef = <span class="cstat-no" title="statement not covered" >useRef({});</span>
322
467
  &nbsp;
@@ -346,32 +491,59 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
346
491
  <span class="cstat-no" title="statement not covered" > mapRef.current = mapContext.getMap(props.mapId);</span>
347
492
  <span class="cstat-no" title="statement not covered" > setMap(mapRef.current);</span>
348
493
  &nbsp;
349
- let currentUrlParams = <span class="cstat-no" title="statement not covered" >getCurrentUrlParameters();</span>
494
+ const currentUrlParams = <span class="cstat-no" title="statement not covered" >getCurrentUrlParameters();</span>
350
495
  <span class="cstat-no" title="statement not covered" > if (currentUrlParams.lat &amp;&amp; currentUrlParams.lng) {</span>
351
496
  <span class="cstat-no" title="statement not covered" > mapStateRef.current.lat = currentUrlParams.lat;</span>
352
497
  <span class="cstat-no" title="statement not covered" > mapStateRef.current.lng = currentUrlParams.lng;</span>
353
498
  <span class="cstat-no" title="statement not covered" > mapStateRef.current.zoom = currentUrlParams.zoom;</span>
354
- <span class="cstat-no" title="statement not covered" > mapRef.current.setCenter([mapStateRef.current.lng, mapStateRef.current.lat]);</span>
355
499
  <span class="cstat-no" title="statement not covered" > mapRef.current.setZoom(mapStateRef.current.zoom);</span>
356
500
  }
357
501
  }, [mapContext.mapIds, mapContext, props.mapId, props.active]);
358
502
  &nbsp;
359
503
  <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
360
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>
507
+ &nbsp;
508
+ const currentUrlParams = <span class="cstat-no" title="statement not covered" >getCurrentUrlParameters()</span>
509
+ &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>
514
+ }
515
+ }
516
+ &nbsp;
517
+ }, [mapState.layers, props.mapId, props.active])
518
+ &nbsp;
519
+ <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
520
+ <span class="cstat-no" title="statement not covered" > if (!map) <span class="cstat-no" title="statement not covered" >return;</span></span>
521
+ <span class="cstat-no" title="statement not covered" > if (!mapState.layers) <span class="cstat-no" title="statement not covered" >return;</span></span>
361
522
  &nbsp;
362
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>
363
525
  <span class="cstat-no" title="statement not covered" > map.on(</span>
364
526
  "moveend",
365
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
+ }
366
536
  <span class="cstat-no" title="statement not covered" > refreshMapState();</span>
367
537
  let urlParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams({</span>
368
538
  ...getCurrentUrlParameters(),
369
539
  ...mapStateRef.current,
540
+ layers : mapLayers
370
541
  });
542
+ &nbsp;
371
543
  let currentParams = <span class="cstat-no" title="statement not covered" >new URLSearchParams(window.location.search);</span>
372
544
  <span class="cstat-no" title="statement not covered" > if (urlParams.toString() !== currentParams.toString()) {</span>
373
545
  <span class="cstat-no" title="statement not covered" > window.history.pushState(</span>
374
- { ...mapStateRef.current },
546
+ {...mapStateRef.current},
375
547
  document.title,
376
548
  "?" + urlParams.toString()
377
549
  );
@@ -385,7 +557,33 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
385
557
  }, [props.active, map]);
386
558
  &nbsp;
387
559
  const getCurrentUrlParameters = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
388
- <span class="cstat-no" title="statement not covered" > return Object.fromEntries(new URLSearchParams(window.location.search));</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>
389
587
  };
390
588
  &nbsp;
391
589
  const refreshMapState = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
@@ -396,7 +594,7 @@ const MlShareMapState = <span class="cstat-no" title="statement not covered" ><s
396
594
  &nbsp;
397
595
  <span class="cstat-no" title="statement not covered" > window.onpopstate = <span class="fstat-no" title="function not covered" >(e</span>vent) =&gt; {</span>
398
596
  <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>
399
- <span class="cstat-no" title="statement not covered" > mapRef.current.easeTo({ zoom: event.state.zoom, center: [event.state.lng, event.state.lat] });</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>
400
598
  }
401
599
  };
402
600
  &nbsp;
@@ -420,18 +618,18 @@ export default MlShareMapState;
420
618
  </div><!-- /wrapper -->
421
619
  <div class='footer quiet pad2 space-top1 center small'>
422
620
  Code coverage generated by
423
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
424
- at Wed Dec 01 2021 11:10:48 GMT+0000 (Coordinated Universal Time)
621
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
622
+ at Tue Dec 21 2021 11:51:22 GMT+0000 (Coordinated Universal Time)
425
623
  </div>
426
624
  </div>
427
- <script src="../../prettify.js"></script>
625
+ <script src="../../../prettify.js"></script>
428
626
  <script>
429
627
  window.onload = function () {
430
628
  prettyPrint();
431
629
  };
432
630
  </script>
433
- <script src="../../sorter.js"></script>
434
- <script src="../../block-navigation.js"></script>
631
+ <script src="../../../sorter.js"></script>
632
+ <script src="../../../block-navigation.js"></script>
435
633
  </body>
436
634
  </html>
437
635
 
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for components/MlShareMapState</title>
6
+ <title>Code coverage report for src/components/MlShareMapState</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,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> components/MlShareMapState</h1>
22
+ <h1><a href="../../../index.html">All files</a> src/components/MlShareMapState</h1>
23
23
  <div class='clearfix'>
24
24
 
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/50</span>
28
+ <span class='fraction'>0/87</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/24</span>
35
+ <span class='fraction'>0/42</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/9</span>
42
+ <span class='fraction'>0/10</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/48</span>
49
+ <span class='fraction'>0/81</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 low'></div>
59
65
  <div class="pad1">
@@ -78,13 +84,13 @@
78
84
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
79
85
  </td>
80
86
  <td data-value="0" class="pct low">0%</td>
81
- <td data-value="50" class="abs low">0/50</td>
87
+ <td data-value="87" class="abs low">0/87</td>
82
88
  <td data-value="0" class="pct low">0%</td>
83
- <td data-value="24" class="abs low">0/24</td>
89
+ <td data-value="42" class="abs low">0/42</td>
84
90
  <td data-value="0" class="pct low">0%</td>
85
- <td data-value="9" class="abs low">0/9</td>
91
+ <td data-value="10" class="abs low">0/10</td>
86
92
  <td data-value="0" class="pct low">0%</td>
87
- <td data-value="48" class="abs low">0/48</td>
93
+ <td data-value="81" class="abs low">0/81</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 Wed Dec 01 2021 11:10:48 GMT+0000 (Coordinated Universal Time)
103
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
104
+ at Tue Dec 21 2021 11:51:22 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/MlSpatialElevationProfile/MlSpatialElevationProfile.js</title>
6
+ <title>Code coverage report for src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.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,7 +19,7 @@
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/MlSpatialElevationProfile</a> MlSpatialElevationProfile.js</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlSpatialElevationProfile</a> MlSpatialElevationProfile.js</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
@@ -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 low'></div>
59
65
  <pre><table class="coverage">
@@ -762,18 +768,18 @@ export default MlSpatialElevationProfile;
762
768
  </div><!-- /wrapper -->
763
769
  <div class='footer quiet pad2 space-top1 center small'>
764
770
  Code coverage generated by
765
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
766
- at Wed Dec 01 2021 11:10:48 GMT+0000 (Coordinated Universal Time)
771
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener">istanbul</a>
772
+ at Tue Dec 21 2021 11:51:22 GMT+0000 (Coordinated Universal Time)
767
773
  </div>
768
774
  </div>
769
- <script src="../../prettify.js"></script>
775
+ <script src="../../../prettify.js"></script>
770
776
  <script>
771
777
  window.onload = function () {
772
778
  prettyPrint();
773
779
  };
774
780
  </script>
775
- <script src="../../sorter.js"></script>
776
- <script src="../../block-navigation.js"></script>
781
+ <script src="../../../sorter.js"></script>
782
+ <script src="../../../block-navigation.js"></script>
777
783
  </body>
778
784
  </html>
779
785