@mapcomponents/react-maplibre 0.1.57 → 0.1.59

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 (276) hide show
  1. package/.eslintignore +11 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/check-formatting.yml +46 -0
  4. package/.prettierignore +11 -0
  5. package/.prettierrc.json +6 -0
  6. package/CHANGELOG.md +18 -0
  7. package/coverage/clover.xml +229 -77
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +65 -20
  10. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +83 -83
  11. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +66 -66
  13. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +30 -30
  15. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +202 -0
  17. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +116 -0
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +99 -99
  19. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +66 -66
  21. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +221 -221
  23. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +308 -308
  25. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +497 -497
  26. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +85 -85
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +469 -0
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +116 -0
  31. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +140 -140
  32. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +37 -37
  34. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +179 -179
  36. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +113 -113
  38. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  39. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +181 -181
  40. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +58 -58
  41. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  43. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +108 -108
  44. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +39 -39
  46. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +183 -183
  48. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +163 -163
  50. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +50 -50
  52. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +30 -30
  53. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +83 -83
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  56. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +204 -204
  57. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  58. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +180 -180
  59. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  60. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +163 -163
  61. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  62. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +136 -136
  63. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  64. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +53 -53
  65. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +123 -123
  67. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +35 -35
  69. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +155 -155
  71. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  72. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +255 -255
  73. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  74. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +66 -66
  75. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  76. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +48 -48
  77. package/coverage/lcov-report/src/contexts/index.html +1 -1
  78. package/coverage/lcov-report/src/hooks/exportMap/index.html +131 -0
  79. package/coverage/lcov-report/src/hooks/exportMap/index.ts.html +175 -0
  80. package/coverage/lcov-report/src/hooks/exportMap/lib.ts.html +646 -0
  81. package/coverage/lcov-report/src/hooks/index.html +48 -18
  82. package/coverage/lcov-report/src/hooks/useLayer.ts.html +230 -188
  83. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +232 -0
  84. package/coverage/lcov-report/src/hooks/useMap.ts.html +72 -69
  85. package/coverage/lcov-report/src/hooks/useMapState.ts.html +145 -145
  86. package/coverage/lcov-report/src/hooks/useSource.ts.html +337 -0
  87. package/coverage/lcov-report/src/hooks/useWms.js.html +72 -72
  88. package/coverage/lcov-report/src/index.html +1 -1
  89. package/coverage/lcov-report/src/index.ts.html +11 -2
  90. package/coverage/lcov.info +448 -151
  91. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +24 -0
  92. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +13 -0
  93. package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +21 -0
  94. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +10 -0
  95. package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +13 -0
  96. package/dist/components/MlCreatePdfForm/lib/pdf.templates.d.ts +11 -0
  97. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  98. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +22 -0
  99. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +10 -0
  100. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +1 -1
  101. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +2 -2
  102. package/dist/decorators/MapContextDecoratorHooks.d.ts +2 -0
  103. package/dist/hooks/exportMap/index.d.ts +11 -0
  104. package/dist/hooks/exportMap/lib.d.ts +36 -0
  105. package/dist/hooks/useLayer.d.ts +6 -5
  106. package/dist/hooks/useLayerEvent.d.ts +2 -0
  107. package/dist/hooks/useMap.d.ts +1 -1
  108. package/dist/hooks/useMapState.stories.d.ts +2 -2
  109. package/dist/hooks/useSource.d.ts +17 -0
  110. package/dist/hooks/useSources.stories.d.ts +13 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.esm.js +1055 -315
  113. package/dist/index.esm.js.map +1 -1
  114. package/eslintErrorTest.js +10 -0
  115. package/package.json +7 -1
  116. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  117. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  118. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  119. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  120. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  122. package/src/components/MlBasicComponent.js +25 -25
  123. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  124. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  125. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  127. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  128. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  130. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  131. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  132. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  136. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  139. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  140. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  143. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  144. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  145. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  146. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  147. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  148. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  149. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  150. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  151. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  152. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  153. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  154. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  155. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  156. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  157. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  158. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  159. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  160. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  161. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  162. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  163. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  164. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  165. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  166. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  167. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  168. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  169. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  172. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  173. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  174. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  175. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  176. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  177. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  178. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  179. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  180. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  181. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  184. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  185. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  186. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  190. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  193. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  194. package/src/components/MlLayer/MlLayer.test.js +86 -86
  195. package/src/components/MlLayer/MlLayer.tsx +36 -36
  196. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  199. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  202. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  204. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  205. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  206. package/src/components/MlMarker/MlMarker.tsx +119 -119
  207. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  208. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  209. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  212. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  213. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  214. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  215. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  216. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  217. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  218. package/src/components/MlScaleReference/MlScaleReference.stories.js +27 -27
  219. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  220. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  221. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  224. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  227. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  228. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  231. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  232. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  234. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  237. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  239. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  240. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  241. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  242. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  243. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  244. package/src/contexts/MapComponentsProvider.test.js +229 -229
  245. package/src/contexts/MapContext.tsx +65 -65
  246. package/src/contexts/SimpleDataProvider.js +47 -47
  247. package/src/contexts/SimpleDataProvider.test.js +29 -29
  248. package/src/custom.d.tsx +14 -14
  249. package/src/decorators/MapContextDecorator.js +22 -22
  250. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  251. package/src/decorators/MultiMapContextDecorator.js +63 -63
  252. package/src/decorators/NoNavToolsDecorator.js +17 -17
  253. package/src/decorators/ThemeWrapper.jsx +1 -1
  254. package/src/hooks/assets/pointWG.json +13 -0
  255. package/src/hooks/exportMap/index.ts +30 -0
  256. package/src/hooks/exportMap/lib.ts +187 -0
  257. package/src/hooks/useLayer.test.js +188 -188
  258. package/src/hooks/useLayer.ts +194 -180
  259. package/src/hooks/useLayerEvent.js +49 -0
  260. package/src/hooks/useMap.ts +67 -66
  261. package/src/hooks/useMapState.stories.js +78 -78
  262. package/src/hooks/useMapState.ts +161 -161
  263. package/src/hooks/useSource.ts +84 -0
  264. package/src/hooks/useSources.stories.js +232 -0
  265. package/src/hooks/useWms.js +71 -71
  266. package/src/index.ts +3 -0
  267. package/src/setupTests.js +86 -86
  268. package/src/ui_components/ImageLoader.js +62 -62
  269. package/src/ui_components/Legend.js +34 -34
  270. package/src/ui_components/LoadingOverlay.js +29 -29
  271. package/src/ui_components/LoadingOverlayContext.js +68 -68
  272. package/src/ui_components/Sidebar.js +80 -80
  273. package/src/ui_components/Tooltip.js +9 -9
  274. package/src/ui_components/TopToolbar.js +23 -23
  275. package/src/util/layerRemovalTest.js +111 -111
  276. package/src/util/sourceRemovalTest.js +103 -103
@@ -4,257 +4,257 @@ import { MapComponentsProvider } from "./MapContext";
4
4
  import { mount } from "enzyme";
5
5
 
6
6
  const MapObjectTestBlock = ({ mapId }) => {
7
- const mapContext = useContext(MapContext);
8
-
9
- return (
10
- <>
11
- <button
12
- className={"register_" + mapId}
13
- onClick={() => {
14
- mapContext.registerMap(mapId, { id: mapId });
15
- }}
16
- >
17
- set {mapId}
18
- </button>
19
- <button
20
- className={"remove_" + mapId}
21
- onClick={() => {
22
- mapContext.removeMap(mapId);
23
- }}
24
- >
25
- set {mapId}
26
- </button>
27
- <div className={mapId + "_found"}>{mapContext.mapExists(mapId) ? "true" : "false"}</div>
28
- <div className={mapId + "_id"}>
29
- {mapContext.mapExists(mapId) ? mapContext.getMap(mapId).id : ""}
30
- </div>
31
- <div className={mapId + "_id_position_in_map_ids"}>{mapContext.mapIds.indexOf(mapId)}</div>
32
- </>
33
- );
7
+ const mapContext = useContext(MapContext);
8
+
9
+ return (
10
+ <>
11
+ <button
12
+ className={"register_" + mapId}
13
+ onClick={() => {
14
+ mapContext.registerMap(mapId, { id: mapId });
15
+ }}
16
+ >
17
+ set {mapId}
18
+ </button>
19
+ <button
20
+ className={"remove_" + mapId}
21
+ onClick={() => {
22
+ mapContext.removeMap(mapId);
23
+ }}
24
+ >
25
+ set {mapId}
26
+ </button>
27
+ <div className={mapId + "_found"}>{mapContext.mapExists(mapId) ? "true" : "false"}</div>
28
+ <div className={mapId + "_id"}>
29
+ {mapContext.mapExists(mapId) ? mapContext.getMap(mapId).id : ""}
30
+ </div>
31
+ <div className={mapId + "_id_position_in_map_ids"}>{mapContext.mapIds.indexOf(mapId)}</div>
32
+ </>
33
+ );
34
34
  };
35
35
 
36
36
  const MapContextTestComponent = () => {
37
- const mapContext = useContext(MapContext);
38
-
39
- return (
40
- <>
41
- <div className="map_count">{mapContext.mapIds.length}</div>
42
- <div className="typeof_map">{typeof mapContext.map}</div>
43
- <button
44
- className="set_anonymous_map"
45
- onClick={() => {
46
- mapContext.setMap({});
47
- }}
48
- >
49
- set anonymous map
50
- </button>
51
- <button
52
- className="remove_anonymous_map"
53
- onClick={() => {
54
- mapContext.removeMap();
55
- }}
56
- >
57
- set anonymous map
58
- </button>
59
- <div className="anonymous_map_found">{mapContext.mapExists() ? "true" : "false"}</div>
60
- <div className="get_anonymous_map">{mapContext.getMap() ? "true" : "false"}</div>
61
-
62
- {["map_1", "map_2"].map((mapId) => (
63
- <MapObjectTestBlock mapId={mapId} key={mapId} />
64
- ))}
65
- </>
66
- );
37
+ const mapContext = useContext(MapContext);
38
+
39
+ return (
40
+ <>
41
+ <div className="map_count">{mapContext.mapIds.length}</div>
42
+ <div className="typeof_map">{typeof mapContext.map}</div>
43
+ <button
44
+ className="set_anonymous_map"
45
+ onClick={() => {
46
+ mapContext.setMap({});
47
+ }}
48
+ >
49
+ set anonymous map
50
+ </button>
51
+ <button
52
+ className="remove_anonymous_map"
53
+ onClick={() => {
54
+ mapContext.removeMap();
55
+ }}
56
+ >
57
+ set anonymous map
58
+ </button>
59
+ <div className="anonymous_map_found">{mapContext.mapExists() ? "true" : "false"}</div>
60
+ <div className="get_anonymous_map">{mapContext.getMap() ? "true" : "false"}</div>
61
+
62
+ {["map_1", "map_2"].map((mapId) => (
63
+ <MapObjectTestBlock mapId={mapId} key={mapId} />
64
+ ))}
65
+ </>
66
+ );
67
67
  };
68
68
 
69
69
  describe("MapComponentsProvider.setMap", () => {
70
- it("should add an anonymous map object to mapContext", () => {
71
- const wrapper = mount(
72
- <MapComponentsProvider>
73
- <MapContextTestComponent />
74
- </MapComponentsProvider>
75
- );
70
+ it("should add an anonymous map object to mapContext", () => {
71
+ const wrapper = mount(
72
+ <MapComponentsProvider>
73
+ <MapContextTestComponent />
74
+ </MapComponentsProvider>
75
+ );
76
76
 
77
- expect(wrapper.find(".typeof_map").text()).toEqual("undefined");
78
- expect(wrapper.find(".map_count").text()).toEqual("0");
77
+ expect(wrapper.find(".typeof_map").text()).toEqual("undefined");
78
+ expect(wrapper.find(".map_count").text()).toEqual("0");
79
79
 
80
- wrapper.find(".set_anonymous_map").simulate("click");
80
+ wrapper.find(".set_anonymous_map").simulate("click");
81
81
 
82
- expect(wrapper.find(".typeof_map").text()).toEqual("object");
83
- expect(wrapper.find(".map_count").text()).toEqual("1");
84
- });
82
+ expect(wrapper.find(".typeof_map").text()).toEqual("object");
83
+ expect(wrapper.find(".map_count").text()).toEqual("1");
84
+ });
85
85
  });
86
86
 
87
87
  describe("MapComponentsProvider.getMap", () => {
88
- it("should return the map object referenced by mapContext.map if no parameters are passed", () => {
89
- const wrapper = mount(
90
- <MapComponentsProvider>
91
- <MapContextTestComponent />
92
- </MapComponentsProvider>
93
- );
88
+ it("should return the map object referenced by mapContext.map if no parameters are passed", () => {
89
+ const wrapper = mount(
90
+ <MapComponentsProvider>
91
+ <MapContextTestComponent />
92
+ </MapComponentsProvider>
93
+ );
94
94
 
95
- expect(wrapper.find(".get_anonymous_map").text()).toEqual("false");
95
+ expect(wrapper.find(".get_anonymous_map").text()).toEqual("false");
96
96
 
97
- wrapper.find(".set_anonymous_map").simulate("click");
97
+ wrapper.find(".set_anonymous_map").simulate("click");
98
98
 
99
- expect(wrapper.find(".get_anonymous_map").text()).toEqual("true");
100
- });
99
+ expect(wrapper.find(".get_anonymous_map").text()).toEqual("true");
100
+ });
101
101
  });
102
102
 
103
103
  describe("MapComponentsProvider.mapExists", () => {
104
- it("should return true if an anonymous map object has been set using setMap", () => {
105
- const wrapper = mount(
106
- <MapComponentsProvider>
107
- <MapContextTestComponent />
108
- </MapComponentsProvider>
109
- );
110
-
111
- expect(wrapper.find(".typeof_map").text()).toEqual("undefined");
112
- expect(wrapper.find(".map_count").text()).toEqual("0");
113
- expect(wrapper.find(".anonymous_map_found").text()).toEqual("false");
114
-
115
- wrapper.find(".set_anonymous_map").simulate("click");
116
-
117
- expect(wrapper.find(".typeof_map").text()).toEqual("object");
118
- expect(wrapper.find(".map_count").text()).toEqual("1");
119
- expect(wrapper.find(".anonymous_map_found").text()).toEqual("true");
120
- });
121
-
122
- it("should return true if a map object has been registered using registerMap", () => {
123
- const wrapper = mount(
124
- <MapComponentsProvider>
125
- <MapContextTestComponent />
126
- </MapComponentsProvider>
127
- );
128
-
129
- expect(wrapper.find(".map_1_found").text()).toEqual("false");
130
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
131
- expect(wrapper.find(".anonymous_map_found").text()).toEqual("false");
132
-
133
- wrapper.find(".register_map_1").simulate("click");
134
-
135
- expect(wrapper.find(".map_1_found").text()).toEqual("true");
136
- expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
137
- expect(wrapper.find(".anonymous_map_found").text()).toEqual("true");
138
- });
104
+ it("should return true if an anonymous map object has been set using setMap", () => {
105
+ const wrapper = mount(
106
+ <MapComponentsProvider>
107
+ <MapContextTestComponent />
108
+ </MapComponentsProvider>
109
+ );
110
+
111
+ expect(wrapper.find(".typeof_map").text()).toEqual("undefined");
112
+ expect(wrapper.find(".map_count").text()).toEqual("0");
113
+ expect(wrapper.find(".anonymous_map_found").text()).toEqual("false");
114
+
115
+ wrapper.find(".set_anonymous_map").simulate("click");
116
+
117
+ expect(wrapper.find(".typeof_map").text()).toEqual("object");
118
+ expect(wrapper.find(".map_count").text()).toEqual("1");
119
+ expect(wrapper.find(".anonymous_map_found").text()).toEqual("true");
120
+ });
121
+
122
+ it("should return true if a map object has been registered using registerMap", () => {
123
+ const wrapper = mount(
124
+ <MapComponentsProvider>
125
+ <MapContextTestComponent />
126
+ </MapComponentsProvider>
127
+ );
128
+
129
+ expect(wrapper.find(".map_1_found").text()).toEqual("false");
130
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
131
+ expect(wrapper.find(".anonymous_map_found").text()).toEqual("false");
132
+
133
+ wrapper.find(".register_map_1").simulate("click");
134
+
135
+ expect(wrapper.find(".map_1_found").text()).toEqual("true");
136
+ expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
137
+ expect(wrapper.find(".anonymous_map_found").text()).toEqual("true");
138
+ });
139
139
  });
140
140
 
141
141
  describe("MapComponentsProvider.registerMap", () => {
142
- it("should register a map object with the id map_1 to mapContext", () => {
143
- const wrapper = mount(
144
- <MapComponentsProvider>
145
- <MapContextTestComponent />
146
- </MapComponentsProvider>
147
- );
148
-
149
- expect(wrapper.find(".map_1_found").text()).toEqual("false");
150
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
151
-
152
- wrapper.find(".register_map_1").simulate("click");
153
-
154
- expect(wrapper.find(".map_1_found").text()).toEqual("true");
155
- expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
156
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).not.toEqual("-1");
157
- });
158
-
159
- it("should register a map object with the id map_1 and another on with the id map_2 to mapContext", () => {
160
- const wrapper = mount(
161
- <MapComponentsProvider>
162
- <MapContextTestComponent />
163
- </MapComponentsProvider>
164
- );
165
-
166
- expect(wrapper.find(".map_1_found").text()).toEqual("false");
167
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
168
- expect(wrapper.find(".map_2_found").text()).toEqual("false");
169
- expect(wrapper.find(".map_2_id_position_in_map_ids").text()).toEqual("-1");
170
-
171
- wrapper.find(".register_map_1").simulate("click");
172
- wrapper.find(".register_map_2").simulate("click");
173
-
174
- expect(wrapper.find(".map_1_found").text()).toEqual("true");
175
- expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
176
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).not.toEqual("-1");
177
- expect(wrapper.find(".map_2_found").text()).toEqual("true");
178
- expect(wrapper.find(".map_2_id").text()).toEqual("map_2");
179
- expect(wrapper.find(".map_2_id_position_in_map_ids").text()).not.toEqual("-1");
180
- });
142
+ it("should register a map object with the id map_1 to mapContext", () => {
143
+ const wrapper = mount(
144
+ <MapComponentsProvider>
145
+ <MapContextTestComponent />
146
+ </MapComponentsProvider>
147
+ );
148
+
149
+ expect(wrapper.find(".map_1_found").text()).toEqual("false");
150
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
151
+
152
+ wrapper.find(".register_map_1").simulate("click");
153
+
154
+ expect(wrapper.find(".map_1_found").text()).toEqual("true");
155
+ expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
156
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).not.toEqual("-1");
157
+ });
158
+
159
+ it("should register a map object with the id map_1 and another on with the id map_2 to mapContext", () => {
160
+ const wrapper = mount(
161
+ <MapComponentsProvider>
162
+ <MapContextTestComponent />
163
+ </MapComponentsProvider>
164
+ );
165
+
166
+ expect(wrapper.find(".map_1_found").text()).toEqual("false");
167
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
168
+ expect(wrapper.find(".map_2_found").text()).toEqual("false");
169
+ expect(wrapper.find(".map_2_id_position_in_map_ids").text()).toEqual("-1");
170
+
171
+ wrapper.find(".register_map_1").simulate("click");
172
+ wrapper.find(".register_map_2").simulate("click");
173
+
174
+ expect(wrapper.find(".map_1_found").text()).toEqual("true");
175
+ expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
176
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).not.toEqual("-1");
177
+ expect(wrapper.find(".map_2_found").text()).toEqual("true");
178
+ expect(wrapper.find(".map_2_id").text()).toEqual("map_2");
179
+ expect(wrapper.find(".map_2_id_position_in_map_ids").text()).not.toEqual("-1");
180
+ });
181
181
  });
182
182
 
183
183
  describe("MapComponentsProvider.removeMap", () => {
184
- it("should remove an anonymous map object from mapContext", () => {
185
- const wrapper = mount(
186
- <MapComponentsProvider>
187
- <MapContextTestComponent />
188
- </MapComponentsProvider>
189
- );
190
-
191
- expect(wrapper.find(".typeof_map").text()).toEqual("undefined");
192
- expect(wrapper.find(".map_count").text()).toEqual("0");
193
-
194
- wrapper.find(".set_anonymous_map").simulate("click");
195
-
196
- expect(wrapper.find(".typeof_map").text()).toEqual("object");
197
- expect(wrapper.find(".map_count").text()).toEqual("1");
198
-
199
- wrapper.find(".remove_anonymous_map").simulate("click");
200
-
201
- expect(wrapper.find(".typeof_map").text()).toEqual("undefined");
202
- expect(wrapper.find(".map_count").text()).toEqual("0");
203
- });
204
-
205
- it("should remove a map object with the id map_1 from mapContext", () => {
206
- const wrapper = mount(
207
- <MapComponentsProvider>
208
- <MapContextTestComponent />
209
- </MapComponentsProvider>
210
- );
211
-
212
- expect(wrapper.find(".map_1_found").text()).toEqual("false");
213
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
214
-
215
- wrapper.find(".register_map_1").simulate("click");
216
-
217
- expect(wrapper.find(".map_1_found").text()).toEqual("true");
218
- expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
219
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).not.toEqual("-1");
220
-
221
- wrapper.find(".remove_map_1").simulate("click");
222
-
223
- expect(wrapper.find(".map_1_found").text()).toEqual("false");
224
- expect(wrapper.find(".map_1_id").text()).toEqual("");
225
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
226
- });
227
-
228
- it("should remove a map object with the id map_1 and another on with the id map_2 from mapContext", () => {
229
- const wrapper = mount(
230
- <MapComponentsProvider>
231
- <MapContextTestComponent />
232
- </MapComponentsProvider>
233
- );
234
-
235
- expect(wrapper.find(".map_1_found").text()).toEqual("false");
236
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
237
- expect(wrapper.find(".map_2_found").text()).toEqual("false");
238
- expect(wrapper.find(".map_2_id_position_in_map_ids").text()).toEqual("-1");
239
-
240
- wrapper.find(".register_map_1").simulate("click");
241
- wrapper.find(".register_map_2").simulate("click");
242
-
243
- expect(wrapper.find(".map_1_found").text()).toEqual("true");
244
- expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
245
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).not.toEqual("-1");
246
- expect(wrapper.find(".map_2_found").text()).toEqual("true");
247
- expect(wrapper.find(".map_2_id").text()).toEqual("map_2");
248
- expect(wrapper.find(".map_2_id_position_in_map_ids").text()).not.toEqual("-1");
249
-
250
- wrapper.find(".remove_map_1").simulate("click");
251
- wrapper.find(".remove_map_2").simulate("click");
252
-
253
- expect(wrapper.find(".map_1_found").text()).toEqual("false");
254
- expect(wrapper.find(".map_1_id").text()).toEqual("");
255
- expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
256
- expect(wrapper.find(".map_2_found").text()).toEqual("false");
257
- expect(wrapper.find(".map_2_id").text()).toEqual("");
258
- expect(wrapper.find(".map_2_id_position_in_map_ids").text()).toEqual("-1");
259
- });
184
+ it("should remove an anonymous map object from mapContext", () => {
185
+ const wrapper = mount(
186
+ <MapComponentsProvider>
187
+ <MapContextTestComponent />
188
+ </MapComponentsProvider>
189
+ );
190
+
191
+ expect(wrapper.find(".typeof_map").text()).toEqual("undefined");
192
+ expect(wrapper.find(".map_count").text()).toEqual("0");
193
+
194
+ wrapper.find(".set_anonymous_map").simulate("click");
195
+
196
+ expect(wrapper.find(".typeof_map").text()).toEqual("object");
197
+ expect(wrapper.find(".map_count").text()).toEqual("1");
198
+
199
+ wrapper.find(".remove_anonymous_map").simulate("click");
200
+
201
+ expect(wrapper.find(".typeof_map").text()).toEqual("undefined");
202
+ expect(wrapper.find(".map_count").text()).toEqual("0");
203
+ });
204
+
205
+ it("should remove a map object with the id map_1 from mapContext", () => {
206
+ const wrapper = mount(
207
+ <MapComponentsProvider>
208
+ <MapContextTestComponent />
209
+ </MapComponentsProvider>
210
+ );
211
+
212
+ expect(wrapper.find(".map_1_found").text()).toEqual("false");
213
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
214
+
215
+ wrapper.find(".register_map_1").simulate("click");
216
+
217
+ expect(wrapper.find(".map_1_found").text()).toEqual("true");
218
+ expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
219
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).not.toEqual("-1");
220
+
221
+ wrapper.find(".remove_map_1").simulate("click");
222
+
223
+ expect(wrapper.find(".map_1_found").text()).toEqual("false");
224
+ expect(wrapper.find(".map_1_id").text()).toEqual("");
225
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
226
+ });
227
+
228
+ it("should remove a map object with the id map_1 and another on with the id map_2 from mapContext", () => {
229
+ const wrapper = mount(
230
+ <MapComponentsProvider>
231
+ <MapContextTestComponent />
232
+ </MapComponentsProvider>
233
+ );
234
+
235
+ expect(wrapper.find(".map_1_found").text()).toEqual("false");
236
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
237
+ expect(wrapper.find(".map_2_found").text()).toEqual("false");
238
+ expect(wrapper.find(".map_2_id_position_in_map_ids").text()).toEqual("-1");
239
+
240
+ wrapper.find(".register_map_1").simulate("click");
241
+ wrapper.find(".register_map_2").simulate("click");
242
+
243
+ expect(wrapper.find(".map_1_found").text()).toEqual("true");
244
+ expect(wrapper.find(".map_1_id").text()).toEqual("map_1");
245
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).not.toEqual("-1");
246
+ expect(wrapper.find(".map_2_found").text()).toEqual("true");
247
+ expect(wrapper.find(".map_2_id").text()).toEqual("map_2");
248
+ expect(wrapper.find(".map_2_id_position_in_map_ids").text()).not.toEqual("-1");
249
+
250
+ wrapper.find(".remove_map_1").simulate("click");
251
+ wrapper.find(".remove_map_2").simulate("click");
252
+
253
+ expect(wrapper.find(".map_1_found").text()).toEqual("false");
254
+ expect(wrapper.find(".map_1_id").text()).toEqual("");
255
+ expect(wrapper.find(".map_1_id_position_in_map_ids").text()).toEqual("-1");
256
+ expect(wrapper.find(".map_2_found").text()).toEqual("false");
257
+ expect(wrapper.find(".map_2_id").text()).toEqual("");
258
+ expect(wrapper.find(".map_2_id_position_in_map_ids").text()).toEqual("-1");
259
+ });
260
260
  });
@@ -12,80 +12,80 @@ MapComponentsProvider must be used one level higher than the first use of MapCon
12
12
  */
13
13
 
14
14
  const MapComponentsProvider = ({ children }:{children:any}) => {
15
- const [map, setMap] = useState<(MapLibreGlWrapper | undefined)>(undefined);
16
- const [mapIds, setMapIds] = useState<[...string[]]>([]);
17
- let mapIds_raw = useRef<[...string[]]>([]);
18
- let maps = useRef<any>({});
15
+ const [map, setMap] = useState<(MapLibreGlWrapper | undefined)>(undefined);
16
+ const [mapIds, setMapIds] = useState<[...string[]]>([]);
17
+ let mapIds_raw = useRef<[...string[]]>([]);
18
+ let maps = useRef<any>({});
19
19
 
20
20
 
21
- const removeMap = (mapId:string) => {
22
- if (mapId) {
23
- if (typeof maps.current[mapId] !== "undefined") {
24
- delete maps.current[mapId];
25
- }
26
- let mapIdIndex = mapIds_raw.current.indexOf(mapId);
27
- if (mapIdIndex > -1) {
28
- mapIds_raw.current.splice(mapIdIndex, 1);
29
- }
30
- setMapIds([...mapIds_raw.current]);
21
+ const removeMap = (mapId:string) => {
22
+ if (mapId) {
23
+ if (typeof maps.current[mapId] !== "undefined") {
24
+ delete maps.current[mapId];
25
+ }
26
+ let mapIdIndex = mapIds_raw.current.indexOf(mapId);
27
+ if (mapIdIndex > -1) {
28
+ mapIds_raw.current.splice(mapIdIndex, 1);
29
+ }
30
+ setMapIds([...mapIds_raw.current]);
31
31
 
32
- if (mapIds.length === 1 && map) {
33
- setMap(undefined);
34
- }
35
- } else {
36
- setMap(undefined);
37
- removeMap("anonymous_map");
38
- }
39
- };
32
+ if (mapIds.length === 1 && map) {
33
+ setMap(undefined);
34
+ }
35
+ } else {
36
+ setMap(undefined);
37
+ removeMap("anonymous_map");
38
+ }
39
+ };
40
40
 
41
- const setMapHandler = (mapInstance:MapLibreGlWrapper) => {
42
- setMap(mapInstance);
41
+ const setMapHandler = (mapInstance:MapLibreGlWrapper) => {
42
+ setMap(mapInstance);
43
43
 
44
- if (mapIds.length === 0) {
45
- let mapId = "anonymous_map";
46
- setMapIds([...mapIds, mapId]);
47
- maps.current[mapId] = mapInstance;
48
- }
49
- };
44
+ if (mapIds.length === 0) {
45
+ let mapId = "anonymous_map";
46
+ setMapIds([...mapIds, mapId]);
47
+ maps.current[mapId] = mapInstance;
48
+ }
49
+ };
50
50
 
51
- const value = {
52
- map: map,
53
- setMap: setMapHandler,
54
- maps: maps.current,
55
- mapIds: mapIds,
56
- registerMap: (mapId:string, mapInstance:MapLibreGlWrapper) => {
57
- if (mapId && mapInstance) {
58
- maps.current[mapId] = mapInstance;
59
- mapIds_raw.current.push(mapId);
60
- setMapIds([...mapIds_raw.current]);
51
+ const value = {
52
+ map: map,
53
+ setMap: setMapHandler,
54
+ maps: maps.current,
55
+ mapIds: mapIds,
56
+ registerMap: (mapId:string, mapInstance:MapLibreGlWrapper) => {
57
+ if (mapId && mapInstance) {
58
+ maps.current[mapId] = mapInstance;
59
+ mapIds_raw.current.push(mapId);
60
+ setMapIds([...mapIds_raw.current]);
61
61
 
62
- if (!map) {
63
- setMap(mapInstance);
64
- }
65
- }
66
- },
67
- removeMap,
68
- mapExists: (mapId:string) => {
69
- if (mapId && Object.keys(maps.current).indexOf(mapId) === -1) {
70
- return false;
71
- } else if (!mapId && !map) {
72
- return false;
73
- }
74
- return true;
75
- },
76
- getMap: (mapId:string):(MapLibreGlWrapper | null) => {
77
- if (mapId && mapIds.indexOf(mapId) !== -1) {
78
- return maps.current[mapId];
79
- } else if (!mapId && map) {
80
- return map;
81
- }
62
+ if (!map) {
63
+ setMap(mapInstance);
64
+ }
65
+ }
66
+ },
67
+ removeMap,
68
+ mapExists: (mapId:string) => {
69
+ if (mapId && Object.keys(maps.current).indexOf(mapId) === -1) {
70
+ return false;
71
+ } else if (!mapId && !map) {
72
+ return false;
73
+ }
74
+ return true;
75
+ },
76
+ getMap: (mapId:string):(MapLibreGlWrapper | null) => {
77
+ if (mapId && mapIds.indexOf(mapId) !== -1) {
78
+ return maps.current[mapId];
79
+ } else if (!mapId && map) {
80
+ return map;
81
+ }
82
82
 
83
- return null;
84
- },
85
- };
83
+ return null;
84
+ },
85
+ };
86
86
 
87
- //@ts-ignore
88
- return <MapContext.Provider value={value}>{children}</MapContext.Provider>;
87
+ //@ts-ignore
88
+ return <MapContext.Provider value={value}>{children}</MapContext.Provider>;
89
89
  };
90
90
 
91
91
  export { MapComponentsProvider };