@mapcomponents/react-maplibre 0.1.45 → 0.1.49

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 (349) hide show
  1. package/.github/workflows/node_version_test.yml +2 -1
  2. package/CHANGELOG.md +23 -0
  3. package/README.md +61 -150
  4. package/coverage/clover.xml +350 -269
  5. package/coverage/coverage-final.json +11 -9
  6. package/coverage/lcov-report/index.html +95 -80
  7. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +61 -31
  8. package/coverage/lcov-report/src/components/MapLibreMap/index.html +17 -17
  9. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
  10. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  11. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +72 -66
  12. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +18 -18
  13. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  14. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  15. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +1 -1
  16. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +1 -1
  18. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
  19. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +1 -1
  21. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +188 -53
  23. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +21 -21
  24. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  25. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +1 -1
  27. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +1 -1
  29. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  30. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +2 -2
  31. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  32. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  35. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  36. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +265 -0
  37. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +116 -0
  38. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  39. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  40. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +1 -1
  41. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  43. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +232 -0
  44. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +25 -10
  45. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  46. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  48. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
  50. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  52. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  53. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
  54. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  55. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  56. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +74 -20
  58. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +19 -19
  59. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  60. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  61. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +80 -20
  62. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +21 -21
  63. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +2 -2
  64. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  65. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +23 -23
  66. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  67. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  68. package/coverage/lcov-report/src/contexts/index.html +1 -1
  69. package/coverage/lcov-report/src/hooks/index.html +19 -19
  70. package/coverage/lcov-report/src/hooks/useLayer.ts.html +95 -71
  71. package/coverage/lcov-report/src/hooks/useMap.ts.html +25 -25
  72. package/coverage/lcov-report/src/hooks/useMapState.ts.html +28 -28
  73. package/coverage/lcov-report/src/hooks/useWms.js.html +2 -2
  74. package/coverage/lcov-report/src/index.html +1 -1
  75. package/coverage/lcov-report/src/index.ts.html +12 -6
  76. package/coverage/lcov.info +688 -497
  77. package/dist/components/MapLibreMap/MapLibreMap.d.ts +31 -0
  78. package/dist/components/MapLibreMap/MapLibreMap.stories.d.ts +15 -0
  79. package/dist/components/MapLibreMap/MapLibreMap.test.d.ts +1 -0
  80. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +75 -0
  81. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.test.d.ts +1 -0
  82. package/dist/components/MlBasicComponent.d.ts +5 -0
  83. package/dist/components/MlComponentTemplate/MlComponentTemplate.d.ts +22 -0
  84. package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +10 -0
  85. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.d.ts +21 -0
  86. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +10 -0
  87. package/dist/components/MlCreatePdfButton/lib/createPdf.d.ts +2 -0
  88. package/dist/components/MlCreatePdfButton/lib/nominatimMap.d.ts +2 -0
  89. package/dist/components/MlFeatureEditor/MlFeatureEditor.d.ts +35 -0
  90. package/dist/components/MlFeatureEditor/MlFeatureEditor.stories.d.ts +15 -0
  91. package/dist/components/MlFeatureEditor/MlFeatureEditor.test.d.ts +1 -0
  92. package/dist/components/MlFeatureEditor/custom-direct-select-mode.d.ts +37 -0
  93. package/dist/components/MlFeatureEditor/custom-polygon-mode.d.ts +16 -0
  94. package/dist/components/MlFeatureEditor/custom-select-mode.d.ts +37 -0
  95. package/dist/components/MlFeatureEditor/lib/common_selectors.d.ts +11 -0
  96. package/dist/components/MlFeatureEditor/lib/constants.d.ts +85 -0
  97. package/dist/components/MlFeatureEditor/lib/constrain_feature_movement.d.ts +2 -0
  98. package/dist/components/MlFeatureEditor/lib/create_midpoint.d.ts +15 -0
  99. package/dist/components/MlFeatureEditor/lib/create_supplementary_points.d.ts +2 -0
  100. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +13 -0
  101. package/dist/components/MlFeatureEditor/lib/double_click_zoom.d.ts +7 -0
  102. package/dist/components/MlFeatureEditor/lib/euclidean_distance.d.ts +5 -0
  103. package/dist/components/MlFeatureEditor/lib/features_at.d.ts +7 -0
  104. package/dist/components/MlFeatureEditor/lib/get_features_and_set_cursor.d.ts +1 -0
  105. package/dist/components/MlFeatureEditor/lib/is_click.d.ts +1 -0
  106. package/dist/components/MlFeatureEditor/lib/is_event_at_coordinates.d.ts +6 -0
  107. package/dist/components/MlFeatureEditor/lib/is_tap.d.ts +3 -0
  108. package/dist/components/MlFeatureEditor/lib/map_event_to_bounding_box.d.ts +12 -0
  109. package/dist/components/MlFeatureEditor/lib/mode_handler.d.ts +24 -0
  110. package/dist/components/MlFeatureEditor/lib/mouse_event_point.d.ts +11 -0
  111. package/dist/components/MlFeatureEditor/lib/move_features.d.ts +2 -0
  112. package/dist/components/MlFeatureEditor/lib/sort_features.d.ts +2 -0
  113. package/dist/components/MlFeatureEditor/lib/string_set.d.ts +21 -0
  114. package/dist/components/MlFeatureEditor/lib/string_sets_are_equal.d.ts +5 -0
  115. package/dist/components/MlFeatureEditor/lib/theme.d.ts +88 -0
  116. package/dist/components/MlFeatureEditor/lib/to_dense_array.d.ts +12 -0
  117. package/dist/components/MlFeatureEditor/lib/utils.d.ts +10 -0
  118. package/dist/components/MlFillExtrusionLayer/MlFillExtrusionLayer.d.ts +61 -0
  119. package/dist/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.d.ts +10 -0
  120. package/dist/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.d.ts +1 -0
  121. package/dist/components/MlFollowGps/MlFollowGps.d.ts +80 -0
  122. package/dist/components/MlFollowGps/MlFollowGps.stories.d.ts +10 -0
  123. package/dist/components/MlFollowGps/MlFollowGps.test.d.ts +1 -0
  124. package/dist/components/MlGPXViewer/MlGPXViewer.d.ts +29 -0
  125. package/dist/components/MlGPXViewer/MlGPXViewer.stories.d.ts +16 -0
  126. package/dist/components/MlGPXViewer/MlGPXViewer.test.d.ts +1 -0
  127. package/dist/components/MlGPXViewer/gpxConverter.d.ts +11 -0
  128. package/dist/components/MlGPXViewer/util/GeoJsonContext.d.ts +10 -0
  129. package/dist/components/MlGPXViewer/util/GeoJsonProvider.d.ts +4 -0
  130. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.d.ts +69 -0
  131. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +12 -0
  132. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.test.d.ts +1 -0
  133. package/dist/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.d.ts +2 -0
  134. package/dist/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.d.ts +2 -0
  135. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.d.ts +29 -0
  136. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +10 -0
  137. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.test.d.ts +1 -0
  138. package/dist/components/MlLayer/MlLayer.d.ts +26 -0
  139. package/dist/components/MlLayer/MlLayer.stories.d.ts +10 -0
  140. package/dist/components/MlLayer/MlLayer.test.d.ts +1 -0
  141. package/dist/components/MlLayerMagnify/MlLayerMagnify.d.ts +27 -0
  142. package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +10 -0
  143. package/dist/components/MlLayerMagnify/MlLayerMagnify.test.d.ts +1 -0
  144. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +16 -0
  145. package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +11 -0
  146. package/dist/components/MlLayerSwipe/MlLayerSwipe.test.d.ts +1 -0
  147. package/dist/components/MlLayerSwitcher/MlLayerSwitcher.d.ts +30 -0
  148. package/dist/components/MlLayerSwitcher/MlLayerSwitcher.stories.d.ts +13 -0
  149. package/dist/components/MlLayerSwitcher/components/LayerBox.d.ts +6 -0
  150. package/dist/components/MlMarker/MlMarker.d.ts +33 -0
  151. package/dist/components/MlMarker/MlMarker.stories.d.ts +9 -0
  152. package/dist/components/MlMeasureTool/MlMeasureTool.d.ts +20 -0
  153. package/dist/components/MlMeasureTool/MlMeasureTool.stories.d.ts +11 -0
  154. package/dist/components/MlNavigationCompass/MlNavigationCompass.d.ts +47 -0
  155. package/dist/components/MlNavigationCompass/MlNavigationCompass.stories.d.ts +10 -0
  156. package/dist/components/MlNavigationCompass/MlNavigationCompass.test.d.ts +1 -0
  157. package/dist/components/MlNavigationTools/MlNavigationTools.d.ts +9 -0
  158. package/dist/components/MlNavigationTools/MlNavigationTools.stories.d.ts +13 -0
  159. package/dist/components/MlOsmLayer/MlOsmLayer.d.ts +18 -0
  160. package/dist/components/MlOsmLayer/MlOsmLayer.stories_.d.ts +16 -0
  161. package/dist/components/MlOsmLayer/MlOsmLayer.test.d.ts +1 -0
  162. package/dist/components/MlScaleReference/MlScaleReference.d.ts +2 -0
  163. package/dist/components/MlScaleReference/MlScaleReference.stories.d.ts +14 -0
  164. package/dist/components/MlShareMapState/MlShareMapState.d.ts +22 -0
  165. package/dist/components/MlShareMapState/MlShareMapState.stories.d.ts +10 -0
  166. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.d.ts +20 -0
  167. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +16 -0
  168. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.d.ts +1 -0
  169. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.d.ts +15 -0
  170. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.stories.d.ts +16 -0
  171. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.test.d.ts +1 -0
  172. package/dist/components/MlThreeJsLayer/lib/GLTFLoader.d.ts +17 -0
  173. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.d.ts +68 -0
  174. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.d.ts +13 -0
  175. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.d.ts +1 -0
  176. package/dist/components/MlTransitionGeoJsonLayer/util/transitionFunctions.d.ts +2 -0
  177. package/dist/components/MlUseMapDebugger/MlUseMapDebugger.d.ts +22 -0
  178. package/dist/components/MlUseMapDebugger/MlUseMapDebugger.stories.d.ts +13 -0
  179. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.d.ts +37 -0
  180. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.stories.d.ts +13 -0
  181. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.test.d.ts +1 -0
  182. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.d.ts +22 -0
  183. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.d.ts +13 -0
  184. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +100 -0
  185. package/dist/components/MlWmsLayer/MlWmsLayer.stories.d.ts +13 -0
  186. package/dist/components/MlWmsLayer/MlWmsLayer.test.d.ts +1 -0
  187. package/dist/components/MlWmsLoader/MlWmsLoader.d.ts +48 -0
  188. package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +13 -0
  189. package/dist/contexts/MapComponentsProvider.test.d.ts +1 -0
  190. package/dist/contexts/MapContext.d.ts +13 -0
  191. package/dist/contexts/SimpleDataContext.d.ts +4 -0
  192. package/dist/contexts/SimpleDataProvider.d.ts +8 -0
  193. package/dist/contexts/SimpleDataProvider.test.d.ts +1 -0
  194. package/dist/custom.d.d.ts +22 -0
  195. package/dist/decorators/MapContextDecorator.d.ts +2 -0
  196. package/dist/decorators/MultiMapContextDecorator.d.ts +2 -0
  197. package/dist/hooks/useLayer.d.ts +24 -0
  198. package/dist/hooks/useLayer.test.d.ts +1 -0
  199. package/dist/hooks/useMap.d.ts +14 -0
  200. package/dist/hooks/useMapState.d.ts +62 -0
  201. package/dist/hooks/useMapState.stories.d.ts +14 -0
  202. package/dist/hooks/useWms.d.ts +18 -0
  203. package/dist/index.d.ts +32 -0
  204. package/dist/index.esm.js +193 -60
  205. package/dist/index.esm.js.map +1 -1
  206. package/dist/setupTests.d.ts +12 -0
  207. package/dist/stories/components/Readme.d.ts +2 -0
  208. package/dist/ui_components/ImageLoader.d.ts +2 -0
  209. package/dist/ui_components/Legend.d.ts +1 -0
  210. package/dist/ui_components/LoadingOverlay.d.ts +2 -0
  211. package/dist/ui_components/LoadingOverlayContext.d.ts +11 -0
  212. package/dist/ui_components/Sidebar.d.ts +1 -0
  213. package/dist/ui_components/Tooltip.d.ts +1 -0
  214. package/dist/ui_components/TopToolbar.d.ts +1 -0
  215. package/dist/util/index.d.ts +3 -0
  216. package/dist/util/layerRemovalTest.d.ts +2 -0
  217. package/dist/util/sourceRemovalTest.d.ts +2 -0
  218. package/package.json +2 -1
  219. package/public/catalogue/mc_meta.json +1 -0
  220. package/public/thumbnails/MlMeasureTool.png +0 -0
  221. package/src/components/MapLibreMap/MapLibreMap.stories.js +75 -20
  222. package/src/components/MapLibreMap/MapLibreMap.tsx +12 -2
  223. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +2 -2
  224. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +1 -2
  225. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +3 -3
  226. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +40 -38
  227. package/src/components/MlFeatureEditor/lib/utils.js +1 -2
  228. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +1 -1
  229. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +82 -37
  230. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +1 -1
  231. package/src/components/MlMeasureTool/MlMeasureTool.doc.de.md +3 -0
  232. package/src/components/MlMeasureTool/MlMeasureTool.meta.json +15 -0
  233. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +96 -0
  234. package/src/components/MlMeasureTool/MlMeasureTool.tsx +60 -0
  235. package/src/components/MlOsmLayer/{MlOsmLayer.stories.js → MlOsmLayer.stories_.js} +0 -0
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +26 -8
  237. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +2 -3
  238. package/src/components/MlWmsLayer/MlWmsLayer.tsx +27 -7
  239. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +1 -1
  240. package/src/components/MlWmsLoader/MlWmsLoader.tsx +1 -1
  241. package/src/hooks/useLayer.test.js +205 -0
  242. package/src/hooks/useLayer.ts +15 -7
  243. package/src/hooks/useWms.js +1 -1
  244. package/src/index.ts +5 -4
  245. package/src/util/layerRemovalTest.js +5 -0
  246. package/tsconfig.json +35 -7
  247. package/docs-build/0.20735a16c2ad9677fe7d.manager.bundle.js +0 -1
  248. package/docs-build/0.b1b9b035.iframe.bundle.js +0 -2
  249. package/docs-build/0.b1b9b035.iframe.bundle.js.map +0 -1
  250. package/docs-build/1.c50fb367.iframe.bundle.js +0 -10
  251. package/docs-build/1.c50fb367.iframe.bundle.js.map +0 -1
  252. package/docs-build/17.2e544968.iframe.bundle.js +0 -2
  253. package/docs-build/17.2e544968.iframe.bundle.js.map +0 -1
  254. package/docs-build/18.42087006.iframe.bundle.js +0 -17
  255. package/docs-build/18.42087006.iframe.bundle.js.map +0 -1
  256. package/docs-build/19.7e782442.iframe.bundle.js +0 -14
  257. package/docs-build/19.7e782442.iframe.bundle.js.map +0 -1
  258. package/docs-build/2.e58dc625.iframe.bundle.js +0 -2
  259. package/docs-build/2.e58dc625.iframe.bundle.js.map +0 -1
  260. package/docs-build/20.f009289a.iframe.bundle.js +0 -2
  261. package/docs-build/20.f009289a.iframe.bundle.js.map +0 -1
  262. package/docs-build/21.1cdc9040.iframe.bundle.js +0 -4
  263. package/docs-build/21.1cdc9040.iframe.bundle.js.map +0 -1
  264. package/docs-build/22.c9e6b2d7.iframe.bundle.js +0 -22
  265. package/docs-build/22.c9e6b2d7.iframe.bundle.js.map +0 -1
  266. package/docs-build/3.a8172b89.iframe.bundle.js +0 -2
  267. package/docs-build/3.a8172b89.iframe.bundle.js.map +0 -1
  268. package/docs-build/4.8ac31bba1926f4f011b0.manager.bundle.js +0 -2
  269. package/docs-build/4.8ac31bba1926f4f011b0.manager.bundle.js.LICENSE.txt +0 -8
  270. package/docs-build/5.daf044a6c0f55d839078.manager.bundle.js +0 -1
  271. package/docs-build/6.99fba2cf6af0473f8209.manager.bundle.js +0 -2
  272. package/docs-build/6.99fba2cf6af0473f8209.manager.bundle.js.LICENSE.txt +0 -12
  273. package/docs-build/7.b6a48b90f61cb575c2e4.manager.bundle.js +0 -1
  274. package/docs-build/8.50518a5391398d9d5812.manager.bundle.js +0 -1
  275. package/docs-build/assets/3D/godzilla_simple.glb +0 -0
  276. package/docs-build/assets/dop.png +0 -0
  277. package/docs-build/assets/historic.png +0 -0
  278. package/docs-build/assets/marker.png +0 -0
  279. package/docs-build/assets/osm.png +0 -0
  280. package/docs-build/assets/sample.gpx +0 -716
  281. package/docs-build/catalogue/.gitkeep +0 -0
  282. package/docs-build/catalogue/mc_meta.json +0 -1
  283. package/docs-build/favicon.ico +0 -0
  284. package/docs-build/iframe.html +0 -348
  285. package/docs-build/index.html +0 -59
  286. package/docs-build/logo.png +0 -0
  287. package/docs-build/main.ef9704b1252e8efa56a0.manager.bundle.js +0 -1
  288. package/docs-build/main~24120820.edd86ba9.iframe.bundle.js +0 -2
  289. package/docs-build/main~24120820.edd86ba9.iframe.bundle.js.map +0 -1
  290. package/docs-build/manifest.json +0 -25
  291. package/docs-build/robots.txt +0 -3
  292. package/docs-build/runtime~main.6e6ed7dc9ea4785ef286.manager.bundle.js +0 -1
  293. package/docs-build/static/media/mapcomponents_logo.98b01a05.png +0 -0
  294. package/docs-build/static/media/wg-marker.bf3eeb2d.png +0 -0
  295. package/docs-build/thumbnails/MapLibreMap.png +0 -0
  296. package/docs-build/thumbnails/MlCameraFollowPath.png +0 -0
  297. package/docs-build/thumbnails/MlCreatePdfButton.png +0 -0
  298. package/docs-build/thumbnails/MlDeckGlLayer.png +0 -0
  299. package/docs-build/thumbnails/MlDeckGlTerrainLayer.png +0 -0
  300. package/docs-build/thumbnails/MlDemoDashboard.png +0 -0
  301. package/docs-build/thumbnails/MlFeatureEditor.png +0 -0
  302. package/docs-build/thumbnails/MlFillExtrusionLayer.png +0 -0
  303. package/docs-build/thumbnails/MlFollowGps.png +0 -0
  304. package/docs-build/thumbnails/MlGPXViewer.png +0 -0
  305. package/docs-build/thumbnails/MlGeoJsonLayer.png +0 -0
  306. package/docs-build/thumbnails/MlHillshadeLayer.png +0 -0
  307. package/docs-build/thumbnails/MlIconLayer.png +0 -0
  308. package/docs-build/thumbnails/MlLaermkarte.png +0 -0
  309. package/docs-build/thumbnails/MlLayerMagnify.png +0 -0
  310. package/docs-build/thumbnails/MlLayerSwipe.png +0 -0
  311. package/docs-build/thumbnails/MlMapDrawTools.png +0 -0
  312. package/docs-build/thumbnails/MlMobilerImker.png +0 -0
  313. package/docs-build/thumbnails/MlNavigationCompass.png +0 -0
  314. package/docs-build/thumbnails/MlNavigationTools.png +0 -0
  315. package/docs-build/thumbnails/MlOsmLayer.png +0 -0
  316. package/docs-build/thumbnails/MlScaleReference.png +0 -0
  317. package/docs-build/thumbnails/MlSpatialElevationProfile.png +0 -0
  318. package/docs-build/thumbnails/MlThreeJsLayer.png +0 -0
  319. package/docs-build/thumbnails/MlTransitionGeoJsonLayer.png +0 -0
  320. package/docs-build/thumbnails/MlVectorTileLayer.png +0 -0
  321. package/docs-build/thumbnails/MlWanderApp.png +0 -0
  322. package/docs-build/thumbnails/MlWmsLayer.png +0 -0
  323. package/docs-build/thumbnails/MlWmsLoader.png +0 -0
  324. package/docs-build/vendors~main.4b570b3072ba06ee44b5.manager.bundle.js +0 -2
  325. package/docs-build/vendors~main.4b570b3072ba06ee44b5.manager.bundle.js.LICENSE.txt +0 -104
  326. package/docs-build/vendors~main~0ad7406a.2054ae7c.iframe.bundle.js +0 -8
  327. package/docs-build/vendors~main~0ad7406a.2054ae7c.iframe.bundle.js.map +0 -1
  328. package/docs-build/vendors~main~0f485567.de36692f.iframe.bundle.js +0 -2
  329. package/docs-build/vendors~main~0f485567.de36692f.iframe.bundle.js.map +0 -1
  330. package/docs-build/vendors~main~41a6ab2c.a947ed53.iframe.bundle.js +0 -2
  331. package/docs-build/vendors~main~41a6ab2c.a947ed53.iframe.bundle.js.map +0 -1
  332. package/docs-build/vendors~main~52589227.1d1558cd.iframe.bundle.js +0 -8
  333. package/docs-build/vendors~main~52589227.1d1558cd.iframe.bundle.js.map +0 -1
  334. package/docs-build/vendors~main~57c1f6cb.6a433835.iframe.bundle.js +0 -2
  335. package/docs-build/vendors~main~57c1f6cb.6a433835.iframe.bundle.js.map +0 -1
  336. package/docs-build/vendors~main~73914085.a8e03e3b.iframe.bundle.js +0 -293
  337. package/docs-build/vendors~main~73914085.a8e03e3b.iframe.bundle.js.map +0 -1
  338. package/docs-build/vendors~main~9c5b28f6.7b8beed1.iframe.bundle.js +0 -7
  339. package/docs-build/vendors~main~9c5b28f6.7b8beed1.iframe.bundle.js.map +0 -1
  340. package/docs-build/vendors~main~b5906859.7f66dcaf.iframe.bundle.js +0 -21
  341. package/docs-build/vendors~main~b5906859.7f66dcaf.iframe.bundle.js.map +0 -1
  342. package/docs-build/vendors~main~b8f44717.7053e467.iframe.bundle.js +0 -89
  343. package/docs-build/vendors~main~b8f44717.7053e467.iframe.bundle.js.map +0 -1
  344. package/docs-build/vendors~main~b9cf3951.a4fd68f5.iframe.bundle.js +0 -63
  345. package/docs-build/vendors~main~b9cf3951.a4fd68f5.iframe.bundle.js.map +0 -1
  346. package/docs-build/vendors~main~d939e436.ba1cad1b.iframe.bundle.js +0 -2
  347. package/docs-build/vendors~main~d939e436.ba1cad1b.iframe.bundle.js.map +0 -1
  348. package/docs-build/vendors~main~f420d588.59c93444.iframe.bundle.js +0 -107
  349. package/docs-build/vendors~main~f420d588.59c93444.iframe.bundle.js.map +0 -1
package/dist/index.esm.js CHANGED
@@ -331,7 +331,7 @@ var MapLibreGlWrapper = /** @class */ (function () {
331
331
  */
332
332
  buildLayerObjects: function () {
333
333
  // @ts-ignore
334
- return self.style._order
334
+ return self.map.style._order
335
335
  .map(function (layerId) {
336
336
  return self.wrapper.buildLayerObject(self.map.style._layers[layerId]);
337
337
  })
@@ -568,7 +568,7 @@ var MapLibreGlWrapper = /** @class */ (function () {
568
568
  props[_i] = arguments[_i];
569
569
  }
570
570
  if (self.map &&
571
- _this.map.style &&
571
+ self.map.style &&
572
572
  typeof self.map.style[item] === "function") {
573
573
  (_a = self.map.style)[item].apply(_a, props);
574
574
  }
@@ -744,7 +744,7 @@ var defaultProps$2 = {
744
744
  id: "background",
745
745
  type: "background",
746
746
  paint: {
747
- "background-color": "rgba(80,0,0,0)",
747
+ "background-color": "rgba(0,0,0,0)",
748
748
  },
749
749
  },
750
750
  ],
@@ -762,11 +762,13 @@ var defaultProps$2 = {
762
762
  * @category Map components
763
763
  */
764
764
  var MapLibreMap = function (props) {
765
+ var _a;
765
766
  var map = useRef(null);
766
767
  var mapContainer = useRef();
767
768
  var mapContext = useContext(MapContext);
768
769
  var mapIdRef = useRef(props.mapId);
769
770
  var initializedRef = useRef(false);
771
+ var currentStyle = useRef((_a = props.options) === null || _a === void 0 ? void 0 : _a.style);
770
772
  useEffect(function () {
771
773
  var mapId = mapIdRef.current;
772
774
  return function () {
@@ -796,6 +798,15 @@ var MapLibreMap = function (props) {
796
798
  });
797
799
  }
798
800
  }, [props.options, props.mapId]);
801
+ useEffect(function () {
802
+ var _a, _b;
803
+ if (((_a = map.current) === null || _a === void 0 ? void 0 : _a.map) && ((_b = props === null || props === void 0 ? void 0 : props.options) === null || _b === void 0 ? void 0 : _b.style) && currentStyle.current !== props.options.style) {
804
+ console.log("set style");
805
+ currentStyle.current = props.options.style;
806
+ map.current.map.setStyle(props.options.style);
807
+ }
808
+ // @ts-ignore: props.options is either passed or populated with default values
809
+ }, [props.options.style]);
799
810
  return React__default.createElement("div", { ref: mapContainer, className: "mapContainer", style: props.style });
800
811
  };
801
812
  MapLibreMap.defaultProps = defaultProps$2;
@@ -11848,7 +11859,9 @@ var drawUtils = {
11848
11859
  },
11849
11860
  getDrawInstance: function getDrawInstance(map) {
11850
11861
  for (var i = map._controls.length - 1; i >= 0; i--) {
11851
- if (map._controls[i].options && map._controls[i].options.defaultMode === "custom_select") {
11862
+ var _map$_controls$i, _map$_controls$i$mode;
11863
+
11864
+ if (((_map$_controls$i = map._controls[i]) === null || _map$_controls$i === void 0 ? void 0 : (_map$_controls$i$mode = _map$_controls$i.modes) === null || _map$_controls$i$mode === void 0 ? void 0 : _map$_controls$i$mode.SIMPLE_SELECT) === "simple_select") {
11852
11865
  return map._controls[i];
11853
11866
  }
11854
11867
  }
@@ -12132,21 +12145,15 @@ var MlFeatureEditor = function (props) {
12132
12145
  mapId: props.mapId,
12133
12146
  waitForLayer: props.insertBeforeLayer,
12134
12147
  });
12135
- var onChangeRef = useRef(props.onChange);
12136
12148
  var drawToolsInitialized = useRef(false);
12137
12149
  var _a = useState(false), drawToolsReady = _a[0], setDrawToolsReady = _a[1];
12138
- var _b = useState(0), mouseUpTrigger = _b[0], setMouseUpTrigger = _b[1];
12139
12150
  var modeChangeHandler = function (e) {
12140
12151
  console.log("MlFeatureEditor mode change to " + e.mode);
12141
12152
  //setDrawMode(e.mode);
12142
12153
  };
12143
- var mouseUpHandler = function () {
12144
- setMouseUpTrigger(Math.random());
12145
- };
12146
12154
  useEffect(function () {
12147
12155
  var _a;
12148
- if (mapHook.map &&
12149
- !drawToolsInitialized.current) {
12156
+ if (mapHook.map && !drawToolsInitialized.current) {
12150
12157
  drawToolsInitialized.current = true;
12151
12158
  if (mapHook.map.map.style &&
12152
12159
  mapHook.map.map.getSource("mapbox-gl-draw-cold") &&
@@ -12165,35 +12172,46 @@ var MlFeatureEditor = function (props) {
12165
12172
  custom_direct_select: DirectSelect,
12166
12173
  }, MapboxDraw.modes),
12167
12174
  });
12168
- mapHook.map.on("draw.modechange", modeChangeHandler, mapHook.componentId);
12169
12175
  mapHook.map.addControl(draw.current, "top-left", mapHook.componentId);
12170
- mapHook.map.on("mouseup", mouseUpHandler, mapHook.componentId);
12176
+ mapHook.map.on("draw.modechange", modeChangeHandler, mapHook.componentId);
12171
12177
  setDrawToolsReady(true);
12172
12178
  }
12173
12179
  }, [mapHook.map, props, drawToolsInitialized]);
12180
+ useEffect(function () {
12181
+ if (!mapHook.map || !drawToolsReady)
12182
+ return;
12183
+ var changeHandler = function () {
12184
+ var _a, _b;
12185
+ if (draw.current) {
12186
+ // update drawnFeatures state object
12187
+ if (typeof props.onChange === "function") {
12188
+ var currentFeatureCollection = (_b = (_a = draw.current).getAll) === null || _b === void 0 ? void 0 : _b.call(_a);
12189
+ props.onChange(currentFeatureCollection === null || currentFeatureCollection === void 0 ? void 0 : currentFeatureCollection.features);
12190
+ }
12191
+ }
12192
+ };
12193
+ mapHook.map.on("mouseup", changeHandler);
12194
+ mapHook.map.on("touchend", changeHandler);
12195
+ return function () {
12196
+ if (!mapHook.map)
12197
+ return;
12198
+ mapHook.map.map.off("mouseup", changeHandler);
12199
+ mapHook.map.map.off("touchend", changeHandler);
12200
+ };
12201
+ }, [drawToolsReady, mapHook.map]);
12174
12202
  useEffect(function () {
12175
12203
  var _a;
12176
- if (draw.current &&
12177
- ((_a = props.geojson) === null || _a === void 0 ? void 0 : _a.geometry)) {
12204
+ if (draw.current && ((_a = props.geojson) === null || _a === void 0 ? void 0 : _a.geometry)) {
12178
12205
  draw.current.set({ type: "FeatureCollection", features: [props.geojson] });
12179
12206
  }
12180
12207
  }, [props.geojson, drawToolsReady]);
12181
- useEffect(function () {
12182
- if (draw.current && mouseUpTrigger) {
12183
- // update drawnFeatures state object
12184
- var currentFeatureCollection = draw.current.getAll();
12185
- if (typeof onChangeRef.current === "function") {
12186
- onChangeRef.current(currentFeatureCollection.features);
12187
- }
12188
- }
12189
- }, [mouseUpTrigger]);
12190
12208
  useEffect(function () {
12191
12209
  if (props.mode && draw.current) {
12192
12210
  // @ts-ignore
12193
12211
  draw.current.changeMode(props.mode);
12194
12212
  }
12195
12213
  }, [props.mode]);
12196
- return (React__default.createElement(React__default.Fragment, null));
12214
+ return React__default.createElement(React__default.Fragment, null);
12197
12215
  };
12198
12216
 
12199
12217
  var legalLayerTypes = [
@@ -12223,7 +12241,7 @@ function useLayer(props) {
12223
12241
  if (!mapHook.map)
12224
12242
  return;
12225
12243
  if (mapHook.map.map.getLayer(layerId.current)) {
12226
- mapHook.map.map.removeLayer(layerId.current);
12244
+ mapHook.cleanup();
12227
12245
  }
12228
12246
  if (mapHook.map.map.getSource(layerId.current)) {
12229
12247
  mapHook.map.map.removeSource(layerId.current);
@@ -12251,6 +12269,14 @@ function useLayer(props) {
12251
12269
  if (typeof props.onLeave !== "undefined") {
12252
12270
  mapHook.map.on("mouseleave", layerId.current, props.onLeave, mapHook.componentId);
12253
12271
  }
12272
+ // recreate layer if style has changed
12273
+ mapHook.map.on("styledata", function () {
12274
+ var _a;
12275
+ if (initializedRef.current && !((_a = mapHook.map) === null || _a === void 0 ? void 0 : _a.map.getLayer(layerId.current))) {
12276
+ console.log("Recreate Layer");
12277
+ createLayer();
12278
+ }
12279
+ }, mapHook.componentId);
12254
12280
  layerPaintConfRef.current = JSON.stringify((_a = props.options) === null || _a === void 0 ? void 0 : _a.paint);
12255
12281
  layerLayoutConfRef.current = JSON.stringify((_b = props.options) === null || _b === void 0 ? void 0 : _b.layout);
12256
12282
  layerTypeRef.current = props.options.type;
@@ -12302,13 +12328,10 @@ function useLayer(props) {
12302
12328
  layerPaintConfRef.current = paintString;
12303
12329
  }
12304
12330
  }, [props.options, mapHook.map]);
12305
- var cleanup = function () {
12306
- initializedRef.current = false;
12307
- mapHook.cleanup();
12308
- };
12309
12331
  useEffect(function () {
12310
12332
  return function () {
12311
- cleanup();
12333
+ initializedRef.current = false;
12334
+ mapHook.cleanup();
12312
12335
  };
12313
12336
  }, []);
12314
12337
  return {
@@ -12569,16 +12592,16 @@ var MlImageMarkerLayer = function (props) {
12569
12592
  mapId: props.mapId,
12570
12593
  waitForLayer: props.insertBeforeLayer,
12571
12594
  });
12572
- var layerInitializedRef = useRef(false);
12595
+ var initializedRef = useRef(false);
12596
+ var recreationInProgress = useRef(false);
12573
12597
  var imageIdRef = useRef(props.imageId || "img_" + new Date().getTime());
12574
12598
  var layerId = useRef(props.layerId || "MlImageMarkerLayer-" + mapHook.componentId);
12599
+ // effect to sync Layer paint & layout properties
12575
12600
  useEffect(function () {
12576
12601
  if (!mapHook.map ||
12577
12602
  (mapHook.map && !mapHook.map.map.getLayer(layerId.current)) ||
12578
12603
  !props.options)
12579
12604
  return;
12580
- // the MapLibre-gl instance (mapContext.map) is accessible here
12581
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
12582
12605
  var key;
12583
12606
  if (props.options.layout) {
12584
12607
  for (key in props.options.layout) {
@@ -12591,41 +12614,120 @@ var MlImageMarkerLayer = function (props) {
12591
12614
  }
12592
12615
  }
12593
12616
  }, [props.options, layerId.current, props.mapId]);
12594
- var addLayer = useCallback(function () {
12595
- if (!mapHook.map)
12596
- return;
12597
- var tmpOptions = __assign({ id: layerId.current, layout: {} }, props.options);
12598
- tmpOptions.layout["icon-image"] = imageIdRef.current;
12599
- mapHook.map.addLayer(tmpOptions, props.insertBeforeLayer, mapHook.componentId);
12600
- }, [props, mapHook.map]);
12601
- useEffect(function () {
12602
- if (!props.options || !mapHook.map || layerInitializedRef.current)
12617
+ var createImage = function (mapHook, props, callback) {
12618
+ if (!mapHook.map) {
12619
+ initializedRef.current = false;
12603
12620
  return;
12604
- layerInitializedRef.current = true;
12605
- if (props.imgSrc) {
12621
+ }
12622
+ if (props.imgSrc && !mapHook.map.map.hasImage(imageIdRef.current)) {
12606
12623
  mapHook.map.map.loadImage(props.imgSrc, function (error, image) {
12607
12624
  if (error)
12608
12625
  throw error;
12609
- if (!mapHook.map)
12626
+ if (!mapHook.map || mapHook.map.map.hasImage(imageIdRef.current))
12610
12627
  return;
12611
12628
  mapHook.map.addImage(imageIdRef.current, image, mapHook.componentId);
12629
+ if (typeof callback === "function") {
12630
+ callback();
12631
+ }
12612
12632
  });
12613
12633
  }
12614
- addLayer();
12615
- }, [mapHook.map, addLayer, props]);
12634
+ else {
12635
+ if (typeof callback === "function") {
12636
+ callback();
12637
+ }
12638
+ }
12639
+ };
12640
+ var createLayer = function (mapHook, props, createMapLibreElements) {
12641
+ var _a;
12642
+ if (!props.options || !mapHook.map || ((_a = mapHook.map) === null || _a === void 0 ? void 0 : _a.map.getLayer(layerId.current)))
12643
+ return;
12644
+ var tmpOptions = __assign({ id: layerId.current, layout: {} }, props.options);
12645
+ tmpOptions.layout["icon-image"] = imageIdRef.current;
12646
+ mapHook.map.addLayer(tmpOptions, props.insertBeforeLayer, mapHook.componentId);
12647
+ // recreate layer if map style.json has changed
12648
+ mapHook.map.on("styledata", function () {
12649
+ var _a;
12650
+ if (initializedRef.current &&
12651
+ !((_a = mapHook.map) === null || _a === void 0 ? void 0 : _a.map.getLayer(layerId.current)) &&
12652
+ !recreationInProgress.current) {
12653
+ initializedRef.current = false;
12654
+ recreationInProgress.current = true;
12655
+ console.log("Recreate Layer " + layerId.current);
12656
+ createMapLibreElements();
12657
+ }
12658
+ }, mapHook.componentId);
12659
+ if (recreationInProgress.current) {
12660
+ recreationInProgress.current = false;
12661
+ }
12662
+ };
12663
+ var createMapLibreElements = useCallback(function () {
12664
+ var _a;
12665
+ if (!mapHook.map || initializedRef.current || ((_a = mapHook.map) === null || _a === void 0 ? void 0 : _a.map.getLayer(layerId.current)))
12666
+ return;
12667
+ initializedRef.current = true;
12668
+ if (recreationInProgress.current) {
12669
+ mapHook.cleanup();
12670
+ }
12671
+ if (props.imgSrc) {
12672
+ createImage(mapHook, props, function () {
12673
+ createLayer(mapHook, props, createMapLibreElements);
12674
+ });
12675
+ }
12676
+ else {
12677
+ createLayer(mapHook, props, createMapLibreElements);
12678
+ }
12679
+ }, [props, mapHook]);
12680
+ useEffect(function () {
12681
+ if (initializedRef.current)
12682
+ return;
12683
+ createMapLibreElements();
12684
+ }, [createMapLibreElements]);
12616
12685
  useEffect(function () {
12617
12686
  if (!mapHook.map ||
12618
12687
  (mapHook.map && !mapHook.map.map.getLayer(layerId.current)) ||
12619
12688
  !props.options) {
12620
12689
  return;
12621
12690
  }
12622
- mapHook.map.map
12623
- .getSource(layerId.current)
12624
- .setData(props.options.source.data);
12691
+ mapHook.map.map.getSource(layerId.current).setData(props.options.source.data);
12625
12692
  }, [props.options.source.data, props]);
12626
12693
  return React__default.createElement(React__default.Fragment, null);
12627
12694
  };
12628
12695
 
12696
+ //const unitSquareConvert = {
12697
+ // kilometers: 1,
12698
+ // miles: 1 / 2.58998811,
12699
+ //};
12700
+ function getUnitSquareMultiplier(measureType) {
12701
+ return measureType === "miles" ? 1 / 2.58998811 : 1;
12702
+ }
12703
+ function getUnitLabel(measureType) {
12704
+ return measureType === "miles" ? 'mi' : 'km';
12705
+ }
12706
+ var MlMeasureTool = function (props) {
12707
+ var _a = useState(0), length = _a[0], setLength = _a[1];
12708
+ var _b = useState([undefined]), currentFeatures = _b[0], setCurrentFeatures = _b[1];
12709
+ useEffect(function () {
12710
+ if (currentFeatures[0]) {
12711
+ setLength(props.measureType === "polygon"
12712
+ ? (turf.area(currentFeatures[0]) / 1000000) * getUnitSquareMultiplier(props.unit)
12713
+ : turf.length(currentFeatures[0], { units: props.unit }));
12714
+ }
12715
+ }, [props.unit, currentFeatures]);
12716
+ return (React__default.createElement(React__default.Fragment, null,
12717
+ React__default.createElement(MlFeatureEditor, { onChange: function (features) {
12718
+ setCurrentFeatures(features);
12719
+ }, mode: props.measureType === "polygon" ? "custom_polygon" : "draw_line_string" }),
12720
+ length.toFixed(2),
12721
+ " ",
12722
+ getUnitLabel(props.unit),
12723
+ props.measureType === "polygon" ? "²" : ""));
12724
+ };
12725
+ MlMeasureTool.defaultProps = {
12726
+ mapId: undefined,
12727
+ measureType: "line",
12728
+ unit: "kilometers",
12729
+ };
12730
+
12629
12731
  function getButtonGroupUtilityClass(slot) {
12630
12732
  return generateUtilityClass('MuiButtonGroup', slot);
12631
12733
  }
@@ -13342,10 +13444,13 @@ var MlVectorTileLayer = function (props) {
13342
13444
  var layerPaintConfsRef = useRef({});
13343
13445
  var layerLayoutConfsRef = useRef({});
13344
13446
  var initializedRef = useRef(false);
13345
- useEffect(function () {
13346
- if (!mapHook.map || initializedRef.current)
13447
+ var createLayer = useCallback(function () {
13448
+ if (!mapHook.map)
13347
13449
  return;
13348
13450
  initializedRef.current = true;
13451
+ if (mapHook.map.map.getLayer(layerId.current)) {
13452
+ mapHook.cleanup();
13453
+ }
13349
13454
  // Add the new layer to the openlayers instance once it is available
13350
13455
  mapHook.map.addSource(layerId.current, __assign({ type: "vector", tiles: [props.url], tileSize: 512, attribution: "" }, props.sourceOptions), mapHook.componentId);
13351
13456
  for (var key in props.layers) {
@@ -13358,8 +13463,21 @@ var MlVectorTileLayer = function (props) {
13358
13463
  } }, props.layers[key]), props.insertBeforeLayer, mapHook.componentId);
13359
13464
  layerPaintConfsRef.current[key] = JSON.stringify(props.layers[key].paint);
13360
13465
  layerLayoutConfsRef.current[key] = JSON.stringify(props.layers[key].layout);
13466
+ // recreate layer if style has changed
13467
+ mapHook.map.on("styledata", function () {
13468
+ var _a;
13469
+ if (initializedRef.current && !((_a = mapHook.map) === null || _a === void 0 ? void 0 : _a.map.getSource(layerId.current))) {
13470
+ console.log("Recreate Layer " + layerId.current);
13471
+ createLayer();
13472
+ }
13473
+ }, mapHook.componentId);
13361
13474
  }
13362
13475
  }, [mapHook.map, props]);
13476
+ useEffect(function () {
13477
+ if (initializedRef.current)
13478
+ return;
13479
+ createLayer();
13480
+ }, [createLayer]);
13363
13481
  useEffect(function () {
13364
13482
  if (!mapHook.map || !initializedRef.current)
13365
13483
  return;
@@ -13452,10 +13570,13 @@ var MlWmsLayer = function (props) {
13452
13570
  });
13453
13571
  var initializedRef = useRef(false);
13454
13572
  var layerId = useRef(props.layerId || "MlWmsLayer-" + mapHook.componentId);
13455
- useEffect(function () {
13456
- if (!mapHook.map || initializedRef.current)
13573
+ var createLayer = useCallback(function () {
13574
+ if (!mapHook.map)
13457
13575
  return;
13458
13576
  initializedRef.current = true;
13577
+ if (mapHook.map.map.getLayer(layerId.current)) {
13578
+ mapHook.cleanup();
13579
+ }
13459
13580
  var _propsUrlParams;
13460
13581
  var _wmsUrl = props.url;
13461
13582
  if (props.url.indexOf("?") !== -1) {
@@ -13466,14 +13587,26 @@ var MlWmsLayer = function (props) {
13466
13587
  // first spread in default props manually to enable overriding a single parameter without replacing the whole default urlParameters object
13467
13588
  var urlParamsObj = __assign(__assign(__assign({}, defaultProps.urlParameters), Object.fromEntries(_urlParamsFromUrl)), props.urlParameters);
13468
13589
  var urlParams = new URLSearchParams(urlParamsObj);
13469
- var urlParamsStr = decodeURIComponent(urlParams.toString()) +
13470
- "".replace(/%2F/g, "/").replace(/%3A/g, ":");
13590
+ var urlParamsStr = decodeURIComponent(urlParams.toString()) + "".replace(/%2F/g, "/").replace(/%3A/g, ":");
13471
13591
  mapHook.map.addSource(layerId.current, __assign({ type: "raster", tiles: [_wmsUrl + "?" + urlParamsStr], tileSize: urlParamsObj.width, attribution: props.attribution }, props.sourceOptions), mapHook.componentId);
13472
13592
  mapHook.map.addLayer(__assign({ id: layerId.current, type: "raster", source: layerId.current }, props.layerOptions), props.insertBeforeLayer, mapHook.componentId);
13593
+ // recreate layer if map style.json has changed
13594
+ mapHook.map.on("styledata", function () {
13595
+ var _a;
13596
+ if (initializedRef.current && !((_a = mapHook.map) === null || _a === void 0 ? void 0 : _a.map.getLayer(layerId.current))) {
13597
+ console.log("Recreate Layer " + layerId.current);
13598
+ createLayer();
13599
+ }
13600
+ }, mapHook.componentId);
13473
13601
  if (!props.visible) {
13474
13602
  mapHook.map.map.setLayoutProperty(layerId.current, "visibility", "none");
13475
13603
  }
13476
- }, [mapHook, props]);
13604
+ }, [mapHook.map, props]);
13605
+ useEffect(function () {
13606
+ if (initializedRef.current)
13607
+ return;
13608
+ createLayer();
13609
+ }, [createLayer]);
13477
13610
  useEffect(function () {
13478
13611
  if (!mapHook.map || !initializedRef.current)
13479
13612
  return;
@@ -18567,7 +18700,7 @@ useWms.defaultProps = {
18567
18700
  urlParameters: {
18568
18701
  SERVICE: "WMS",
18569
18702
  VERSION: "1.3.0",
18570
- REQUEST: "getCapabilities"
18703
+ REQUEST: "GetCapabilities"
18571
18704
  }
18572
18705
  };
18573
18706
 
@@ -18633,5 +18766,5 @@ SimpleDataProvider.propTypes = {
18633
18766
  children: PropTypes.node.isRequired
18634
18767
  };
18635
18768
 
18636
- export { GeoJsonContext, GeoJsonProvider, MapComponentsProvider, MapContext, MapLibreMap, MlBasicComponent, MlComponentTemplate, MlCreatePdfButton, MlFeatureEditor, MlFillExtrusionLayer, MlFollowGps, MlGPXViewer, MlGeoJsonLayer, MlImageMarkerLayer, MlLayer, MlLayerMagnify, MlLayerSwipe, MlMarker, MlNavigationCompass, MlNavigationTools, MlOsmLayer, MlSpatialElevationProfile, MlTransitionGeoJsonLayer, MlVectorTileLayer, MlWmsLayer, SimpleDataContext, SimpleDataProvider, useLayer, useMap, useMapState, useWms };
18769
+ export { GeoJsonContext, GeoJsonProvider, MapComponentsProvider, MapContext, MapLibreMap, MlBasicComponent, MlComponentTemplate, MlCreatePdfButton, MlFeatureEditor, MlFillExtrusionLayer, MlFollowGps, MlGPXViewer, MlGeoJsonLayer, MlImageMarkerLayer, MlLayer, MlLayerMagnify, MlLayerSwipe, MlMarker, MlMeasureTool, MlNavigationCompass, MlNavigationTools, MlOsmLayer, MlSpatialElevationProfile, MlTransitionGeoJsonLayer, MlVectorTileLayer, MlWmsLayer, SimpleDataContext, SimpleDataProvider, useLayer, useMap, useMapState, useWms };
18637
18770
  //# sourceMappingURL=index.esm.js.map