@mapcomponents/react-maplibre 0.1.67 → 0.1.68

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 (258) hide show
  1. package/coverage/clover.xml +172 -174
  2. package/coverage/coverage-final.json +7 -7
  3. package/coverage/lcov-report/index.html +38 -38
  4. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +43 -25
  5. package/coverage/lcov-report/src/components/MapLibreMap/index.html +10 -10
  6. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +30 -51
  7. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +3 -3
  8. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
  9. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  10. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +1 -1
  11. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +1 -1
  13. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +1 -1
  14. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  15. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  16. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +41 -98
  18. package/coverage/lcov-report/src/components/MlFollowGps/index.html +15 -15
  19. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +2 -2
  20. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  21. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html +1 -1
  22. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +1 -1
  23. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +1 -1
  25. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGpxViewer/index.html +1 -1
  30. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +1 -1
  31. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  36. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  39. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  40. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  41. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  43. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  44. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
  45. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  47. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  48. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +41 -113
  49. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +15 -15
  50. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  51. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
  52. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  53. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.tsx.html +1 -1
  54. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  55. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.tsx.html +1 -1
  56. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +1 -1
  58. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +1 -1
  59. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +1 -1
  60. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +2 -2
  61. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +1 -1
  62. package/coverage/lcov-report/src/components/MlSketchTool/MlSketchTool.tsx.html +2 -2
  63. package/coverage/lcov-report/src/components/MlSketchTool/index.html +1 -1
  64. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.html +1 -1
  65. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  67. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreejsLayer.tsx.html +1 -1
  68. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  69. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
  70. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  71. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  72. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  73. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +22 -10
  74. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +13 -13
  75. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  76. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  77. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +1 -1
  78. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  79. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +1 -1
  80. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  81. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +24 -3
  82. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  83. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  84. package/coverage/lcov-report/src/contexts/index.html +1 -1
  85. package/coverage/lcov-report/src/hooks/index.html +1 -1
  86. package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +1 -1
  87. package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +1 -1
  88. package/coverage/lcov-report/src/hooks/useExportMap/index.html +1 -1
  89. package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +1 -1
  90. package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +2 -2
  91. package/coverage/lcov-report/src/hooks/useGpx/index.html +1 -1
  92. package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +1 -1
  93. package/coverage/lcov-report/src/hooks/useLayer.ts.html +1 -1
  94. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +1 -1
  95. package/coverage/lcov-report/src/hooks/useLayerFilter/index.html +1 -1
  96. package/coverage/lcov-report/src/hooks/useLayerFilter/useLayerFilter.ts.html +1 -1
  97. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +1 -1
  98. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +1 -1
  99. package/coverage/lcov-report/src/hooks/useMap.ts.html +1 -1
  100. package/coverage/lcov-report/src/hooks/useMapState.ts.html +1 -1
  101. package/coverage/lcov-report/src/hooks/useSource.ts.html +1 -1
  102. package/coverage/lcov-report/src/hooks/useWms.ts.html +1 -1
  103. package/coverage/lcov-report/src/index.html +1 -1
  104. package/coverage/lcov-report/src/index.ts.html +27 -3
  105. package/coverage/lcov.info +326 -342
  106. package/dist/components/MapLibreMap/MapLibreMap.d.ts +3 -3
  107. package/dist/components/MapLibreMap/MapLibreMap.stories.d.ts +2 -0
  108. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +1 -1
  109. package/dist/components/MlCenterPosition/MlCenterPosition.d.ts +2 -15
  110. package/dist/components/MlCenterPosition/MlCenterPosition.stories.d.ts +1 -14
  111. package/dist/components/MlComponentTemplate/MlComponentTemplate.d.ts +1 -0
  112. package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +1 -0
  113. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.d.ts +1 -0
  114. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +1 -0
  115. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +1 -0
  116. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +1 -0
  117. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +1 -0
  118. package/dist/components/MlCreatePdfForm/lib/_PdfPreview.d.ts +1 -0
  119. package/dist/components/MlFeatureEditor/MlFeatureEditor.d.ts +1 -0
  120. package/dist/components/MlFillExtrusionLayer/MlFillExtrusionLayer.d.ts +1 -0
  121. package/dist/components/MlFollowGps/MlFollowGps.d.ts +5 -23
  122. package/dist/components/MlFollowGps/MlFollowGps.stories.d.ts +2 -2
  123. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.d.ts +1 -0
  124. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +1 -0
  125. package/dist/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.d.ts +1 -0
  126. package/dist/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.d.ts +1 -0
  127. package/dist/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.d.ts +4 -1
  128. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +1 -0
  129. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +1 -0
  130. package/dist/components/MlGpxViewer/MlGpxViewer.d.ts +1 -0
  131. package/dist/components/MlGpxViewer/MlGpxViewer.stories.d.ts +1 -0
  132. package/dist/components/MlGpxViewer/util/GeoJsonProvider.d.ts +1 -0
  133. package/dist/components/MlGpxViewer/util/MetadataDrawer.d.ts +1 -0
  134. package/dist/components/MlGpxViewer/util/MlGpxDemoLoader.d.ts +1 -0
  135. package/dist/components/MlGpxViewer/util/MlGpxViewerInstructions.d.ts +1 -0
  136. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.d.ts +1 -0
  137. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +1 -0
  138. package/dist/components/MlLayer/MlLayer.d.ts +1 -0
  139. package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +1 -0
  140. package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +1 -0
  141. package/dist/components/MlMarker/MlMarker.d.ts +1 -0
  142. package/dist/components/MlMeasureTool/MlMeasureTool.d.ts +1 -0
  143. package/dist/components/MlNavigationCompass/MlNavigationCompass.d.ts +1 -0
  144. package/dist/components/MlNavigationTools/MlNavigationTools.d.ts +5 -0
  145. package/dist/components/MlScaleReference/MlScaleReference.d.ts +1 -0
  146. package/dist/components/MlShareMapState/MlShareMapState.d.ts +1 -0
  147. package/dist/components/MlShareMapState/MlShareMapState.stories.d.ts +1 -0
  148. package/dist/components/MlSketchTool/LayerList/ColorPicker.d.ts +1 -0
  149. package/dist/components/MlSketchTool/LayerList/LayerList.d.ts +1 -0
  150. package/dist/components/MlSketchTool/LayerList/LayerListItem.d.ts +1 -0
  151. package/dist/components/MlSketchTool/LayerList/LayerPropertyForm.d.ts +1 -0
  152. package/dist/components/MlSketchTool/MlSketchTool.d.ts +1 -0
  153. package/dist/components/MlSketchTool/MlSketchTool.stories.d.ts +1 -0
  154. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.d.ts +1 -0
  155. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +1 -0
  156. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.stories.d.ts +1 -0
  157. package/dist/components/MlThreeJsLayer/MlThreejsLayer.d.ts +1 -0
  158. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.d.ts +1 -0
  159. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.d.ts +3 -2
  160. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.d.ts +1 -0
  161. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +1 -0
  162. package/dist/components/MlWmsLoader/MlWmsLoader.d.ts +1 -0
  163. package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +1 -0
  164. package/dist/components/MlWmsLoader/utils/MlWmsLoaderInstructions.d.ts +1 -0
  165. package/dist/components/MlWmsLoader/utils/WMSLinks.d.ts +1 -0
  166. package/dist/decorators/EmptyMapDecorator.d.ts +2 -0
  167. package/dist/decorators/ThemeDecorator.d.ts +2 -0
  168. package/dist/hooks/useCameraFollowPath/useCameraFollowPath.stories.d.ts +1 -0
  169. package/dist/hooks/useExportMap/lib.d.ts +1 -1
  170. package/dist/hooks/useLayerFilter/useLayerFilter.stories.d.ts +1 -0
  171. package/dist/hooks/useLayerHoverPopup/useLayerHoverPopup.d.ts +1 -0
  172. package/dist/index.d.ts +7 -0
  173. package/dist/index.esm.css +0 -97
  174. package/dist/index.esm.js +5495 -14503
  175. package/dist/index.esm.js.map +1 -1
  176. package/dist/ui_components/Dropzone.d.ts +1 -0
  177. package/dist/ui_components/ImageLoader.d.ts +1 -0
  178. package/dist/ui_components/LayerList/LayerList.d.ts +6 -0
  179. package/dist/ui_components/LayerList/LayerList.stories.d.ts +12 -0
  180. package/dist/ui_components/LayerList/LayerListFolder.d.ts +9 -0
  181. package/dist/ui_components/LayerList/LayerListItem.d.ts +18 -0
  182. package/dist/ui_components/LayerList/util/LayerListItemVectorLayer.d.ts +15 -0
  183. package/dist/ui_components/LayerList/util/LayerPropertyForm.d.ts +10 -0
  184. package/dist/ui_components/LayerList/util/input/ColorPicker.d.ts +10 -0
  185. package/dist/ui_components/LoadingOverlayContext.d.ts +0 -1
  186. package/dist/ui_components/MapcomponentsTheme.d.ts +7 -0
  187. package/dist/ui_components/Tooltip.d.ts +1 -0
  188. package/dist/ui_components/TopToolbar.d.ts +1 -0
  189. package/dist/ui_components/UploadButton.d.ts +1 -0
  190. package/dist/util/Instructions.d.ts +1 -0
  191. package/package.json +24 -31
  192. package/rollup.config.js +61 -44
  193. package/src/@types/assets/index.d.ts +1 -1
  194. package/src/App.css +0 -55
  195. package/src/components/MapLibreMap/MapLibreMap.stories.js +36 -37
  196. package/src/components/MapLibreMap/MapLibreMap.tsx +23 -17
  197. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +1 -1
  198. package/src/components/MlCenterPosition/MlCenterPosition.tsx +22 -29
  199. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +6 -6
  200. package/src/components/MlFollowGps/MlFollowGps.stories.js +28 -10
  201. package/src/components/MlFollowGps/MlFollowGps.tsx +31 -50
  202. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +1 -1
  203. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +16 -10
  204. package/src/components/MlGpxViewer/MlGpxViewer.stories.tsx +4 -13
  205. package/src/components/MlGpxViewer/util/MlGpxDemoLoader.tsx +3 -1
  206. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +4 -5
  207. package/src/components/MlNavigationTools/MlNavigationTools.tsx +30 -54
  208. package/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx +1 -1
  209. package/src/components/MlSketchTool/MlSketchTool.tsx +1 -1
  210. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +7 -3
  211. package/src/components/MlWmsLoader/MlWmsLoader.stories.tsx +3 -11
  212. package/src/components/MlWmsLoader/utils/MlWmsLoaderInstructions.tsx +2 -2
  213. package/src/components/MlWmsLoader/utils/WMSLinks.tsx +1 -1
  214. package/src/contexts/MapContext.tsx +8 -1
  215. package/src/custom.d.ts +4 -5
  216. package/src/decorators/EmptyMapDecorator.js +38 -0
  217. package/src/decorators/MapContextDecorator.js +10 -16
  218. package/src/decorators/MapContextDecoratorHooks.js +25 -30
  219. package/src/decorators/MultiMapContextDecorator.js +8 -18
  220. package/src/decorators/NoNavToolsDecorator.js +8 -15
  221. package/src/decorators/ThemeDecorator.js +24 -0
  222. package/src/decorators/style.css +0 -2
  223. package/src/hooks/useCameraFollowPath/useCameraFollowPath.stories.tsx +13 -19
  224. package/src/hooks/useExportMap/lib.ts +1 -1
  225. package/src/hooks/useGpx/useGpx.stories.js +1 -1
  226. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.stories.js +1 -1
  227. package/src/hooks/useMapState.stories.js +1 -1
  228. package/src/hooks/useSources.stories.js +1 -1
  229. package/src/index.ts +9 -0
  230. package/src/ui_components/LayerList/LayerList.stories.tsx +136 -0
  231. package/src/ui_components/LayerList/LayerList.tsx +12 -0
  232. package/src/ui_components/LayerList/LayerListFolder.tsx +82 -0
  233. package/src/ui_components/LayerList/LayerListItem.tsx +180 -0
  234. package/src/ui_components/LayerList/assets/sample_1.json +26 -0
  235. package/src/ui_components/LayerList/assets/sample_2.json +22 -0
  236. package/src/ui_components/LayerList/assets/sample_polygon_1.json +33 -0
  237. package/src/ui_components/LayerList/assets/style.json +2599 -0
  238. package/src/ui_components/LayerList/util/LayerListItemVectorLayer.tsx +92 -0
  239. package/src/ui_components/LayerList/util/LayerPropertyForm.tsx +125 -0
  240. package/src/ui_components/LayerList/util/input/ColorPicker.tsx +44 -0
  241. package/src/ui_components/MapcomponentsTheme.tsx +133 -0
  242. package/src/ui_components/Sidebar.tsx +16 -11
  243. package/src/ui_components/TopToolbar.tsx +1 -3
  244. package/src/util/BubbleForInstructions.js +14 -12
  245. package/tsconfig.json +3 -10
  246. package/dist/components/MlGPXViewer/MlGPXViewer.d.ts +0 -29
  247. package/dist/components/MlGPXViewer/MlGPXViewer.stories.d.ts +0 -16
  248. package/dist/components/MlGPXViewer/MlGPXViewer.test.d.ts +0 -1
  249. package/dist/components/MlGPXViewer/gpxConverter.d.ts +0 -11
  250. package/dist/components/MlGPXViewer/util/GeoJsonContext.d.ts +0 -10
  251. package/dist/components/MlGPXViewer/util/GeoJsonProvider.d.ts +0 -4
  252. package/dist/components/MlLayer/MlLayer.stories.d.ts +0 -10
  253. package/dist/custom.d.d.ts +0 -22
  254. package/dist/decorators/ThemeWrapper.d.ts +0 -1
  255. package/dist/hooks/exportMap/index.d.ts +0 -11
  256. package/dist/hooks/exportMap/lib.d.ts +0 -36
  257. package/dist/ui_components/Legend.d.ts +0 -1
  258. package/dist/ui_components/LoadingOverlay.d.ts +0 -2
@@ -1,9 +1,9 @@
1
- import React, { useRef, useEffect, useCallback } from "react";
1
+ import React, { useRef, useEffect, useCallback } from 'react';
2
2
  import useMap from '../../hooks/useMap';
3
3
  import { LayerSpecification } from 'maplibre-gl';
4
4
  import { VectorSourceSpecification } from 'maplibre-gl';
5
5
 
6
- interface MlVectorTileLayerProps {
6
+ export type MlVectorTileLayerProps = {
7
7
  mapId?: string;
8
8
  insertBeforeLayer?: string;
9
9
  layerId?: string;
@@ -29,6 +29,8 @@ const MlVectorTileLayer = (props: MlVectorTileLayerProps) => {
29
29
  const layerLayoutConfsRef = useRef({});
30
30
  const initializedRef = useRef(false);
31
31
 
32
+ console.log('render vt')
33
+ console.log(props.layers)
32
34
  const createLayers = useCallback(() => {
33
35
  if (!mapHook.map) return;
34
36
 
@@ -43,8 +45,10 @@ const MlVectorTileLayer = (props: MlVectorTileLayerProps) => {
43
45
  layerId.current,
44
46
  {
45
47
  type: 'vector',
46
- tiles: [props.url || ""],
48
+ tiles: [props.url || ''],
47
49
  attribution: '',
50
+ minzoom: 0,
51
+ maxzoom: 14,
48
52
  ...props.sourceOptions,
49
53
  },
50
54
  mapHook.componentId
@@ -46,25 +46,17 @@ const Template = (props: MlWmsLoaderStoryProps) => {
46
46
  <MlWmsLoaderInstructions open={guide} />
47
47
  <WMSLinks open={demoMode} close={() => setDemoMode(false)} load={loader} />
48
48
  <TopToolbar appBarStyle={{ zIndex: 1220 }}>
49
- <Button
50
- variant="contained"
51
- onClick={openGuide}
52
- sx={{ marginRight: '10px' }}
53
- >
49
+ <Button variant="contained" onClick={openGuide} sx={{ marginRight: '10px' }}>
54
50
  Guide me through
55
51
  </Button>
56
- <Button
57
- variant="contained"
58
- onClick={() => setDemoMode(!demoMode)}
59
-
60
- >
52
+ <Button variant="contained" onClick={() => setDemoMode(!demoMode)}>
61
53
  Demo WMS
62
54
  </Button>
63
55
  </TopToolbar>
64
56
 
65
57
  {!mediaIsMobile || (mediaIsMobile && !demoMode) ? (
66
58
  <Sidebar
67
- drawerPaperProps={{ sx: { top: '65px', maxWidth: '20%', padding: '40px' } }}
59
+ drawerPaperProps={{ sx: { top: '64px', maxWidth: '20%', padding: '40px' } }}
68
60
  drawerButtonStyle={{ top: '65px' }}
69
61
  sx={{ wordBreak: 'break-word' }}
70
62
  >
@@ -12,7 +12,7 @@ const steps = [
12
12
  iconTransform: 'rotate(90deg)',
13
13
  iconMarginTop: '-210px',
14
14
  iconMarginLeft: '200px',
15
- zIndex: 1210
15
+ zIndex: 1210,
16
16
  },
17
17
  content: (
18
18
  <>
@@ -31,7 +31,7 @@ const steps = [
31
31
  iconTransform: 'rotate(90deg)',
32
32
  iconMarginTop: '-125px',
33
33
  iconMarginLeft: '280px',
34
- zIndex: 1210
34
+ zIndex: 1210,
35
35
  },
36
36
  content: (
37
37
  <>
@@ -111,7 +111,7 @@ export default function WMSLinks(props: wmsLinksProps) {
111
111
  </Grid>
112
112
  <Grid item xs={2}>
113
113
  <Button onClick={props.close}>
114
- <CloseIcon sx={{ color: 'black' }} />
114
+ <CloseIcon sx={{ color: 'text.primary' }} />
115
115
  </Button>
116
116
  </Grid>
117
117
  </Grid>
@@ -1,6 +1,9 @@
1
1
  import React, { useState, useRef, ReactNode } from 'react';
2
2
  import MapLibreGlWrapper from '../components/MapLibreMap/lib/MapLibreGlWrapper';
3
3
 
4
+ import { ThemeProvider as MUIThemeProvider } from '@mui/material/styles';
5
+ import getTheme from '../ui_components/MapcomponentsTheme';
6
+
4
7
  export interface MapContextType {
5
8
  mapIds: string[];
6
9
  mapExists: (map_id: string | undefined) => boolean;
@@ -92,7 +95,11 @@ const MapComponentsProvider = ({ children }: { children: ReactNode }) => {
92
95
  },
93
96
  } as unknown as MapContextType;
94
97
 
95
- return <MapContext.Provider value={value}>{children}</MapContext.Provider>;
98
+ return (
99
+ <MapContext.Provider value={value}>
100
+ <MUIThemeProvider theme={getTheme('light')}>{children}</MUIThemeProvider>
101
+ </MapContext.Provider>
102
+ );
96
103
  };
97
104
 
98
105
  export { MapComponentsProvider };
package/src/custom.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- export interface GeoJSON {
2
- type: string,
3
- features?: any
4
- geometry?: any
5
- }
1
+ import { GeoJSONFeature } from "maplibre-gl";
2
+ import { GeoJSONObject } from '@turf/turf';
3
+
4
+ export type GeoJSON = (GeoJSONFeature & GeoJSONObject);
@@ -0,0 +1,38 @@
1
+ import React, { useMemo } from 'react';
2
+
3
+ import { MapComponentsProvider } from '../index';
4
+ import MapLibreMap from '../components/MapLibreMap/MapLibreMap';
5
+ import './style.css';
6
+ import MlNavgiationTools from '../components/MlNavigationTools/MlNavigationTools';
7
+ import { ThemeProvider as MUIThemeProvider } from '@mui/material/styles';
8
+ import getTheme from '../ui_components/MapcomponentsTheme';
9
+
10
+ const decorators = [
11
+ (Story, context) => {
12
+ const theme = useMemo(() => getTheme(context?.globals?.theme), [context?.globals?.theme]);
13
+
14
+ return (
15
+ <div className="fullscreen_map">
16
+ <MapComponentsProvider>
17
+ <MUIThemeProvider theme={theme}>
18
+ <Story />
19
+ <MapLibreMap
20
+ mapId="map_1"
21
+ options={{
22
+ zoom: 12.5,
23
+ center: [7.0851268, 50.73884],
24
+ }}
25
+ />
26
+ <MlNavgiationTools
27
+ sx={{ bottom: '25px', right: '5px' }}
28
+ showZoomButtons={false}
29
+ mapId="map_1"
30
+ />
31
+ </MUIThemeProvider>
32
+ </MapComponentsProvider>
33
+ </div>
34
+ );
35
+ },
36
+ ];
37
+
38
+ export default decorators;
@@ -1,26 +1,20 @@
1
- import React, { useMemo } from 'react';
1
+ import React, { useMemo } from 'react';
2
2
 
3
3
  import { MapComponentsProvider } from '../index';
4
4
  import MapLibreMap from '../components/MapLibreMap/MapLibreMap';
5
5
  import './style.css';
6
6
  import MlNavgiationTools from '../components/MlNavigationTools/MlNavigationTools';
7
- import { ThemeProvider as MUIThemeProvider, createTheme } from '@mui/material/styles';
7
+ import { ThemeProvider as MUIThemeProvider } from '@mui/material/styles';
8
+ import getTheme from '../ui_components/MapcomponentsTheme';
8
9
 
9
10
  const decorators = [
10
11
  (Story, context) => {
11
- const theme = useMemo(
12
- () =>
13
- createTheme({
14
- palette: {
15
- mode: context?.globals?.theme ? context?.globals?.theme : 'light',
16
- },
17
- }),
18
- [context?.globals?.theme]
19
- );
12
+ const theme = useMemo(() => getTheme(context?.globals?.theme), [context?.globals?.theme]);
13
+
20
14
  return (
21
15
  <div className="fullscreen_map">
22
- <MUIThemeProvider theme={theme}>
23
- <MapComponentsProvider>
16
+ <MapComponentsProvider>
17
+ <MUIThemeProvider theme={theme}>
24
18
  <Story />
25
19
  <MapLibreMap
26
20
  options={{
@@ -31,12 +25,12 @@ const decorators = [
31
25
  mapId="map_1"
32
26
  />
33
27
  <MlNavgiationTools
34
- sx={{ bottom: '25px', right: 0 }}
28
+ sx={{ bottom: '25px', right: '5px' }}
35
29
  showZoomButtons={false}
36
30
  mapId="map_1"
37
31
  />
38
- </MapComponentsProvider>
39
- </MUIThemeProvider>
32
+ </MUIThemeProvider>
33
+ </MapComponentsProvider>
40
34
  </div>
41
35
  );
42
36
  },
@@ -4,41 +4,36 @@ import { MapComponentsProvider } from "../index";
4
4
  import MapLibreMap from "../components/MapLibreMap/MapLibreMap";
5
5
  import "./style.css";
6
6
  import MlNavgiationTools from "../components/MlNavigationTools/MlNavigationTools";
7
- import { ThemeProvider as MUIThemeProvider, createTheme } from '@mui/material/styles';
7
+ import { ThemeProvider as MUIThemeProvider } from '@mui/material/styles';
8
+ import getTheme from '../ui_components/MapcomponentsTheme';
8
9
 
9
10
  const decorators = [
10
11
  (Story, context) => {
11
- const theme = useMemo(
12
- () =>
13
- createTheme({
14
- palette: {
15
- mode: context?.globals?.theme ? context?.globals?.theme : 'light',
16
- },
17
- }),
18
- [context?.globals?.theme]
19
- );
12
+ const theme = useMemo(() => getTheme(context?.globals?.theme), [context?.globals?.theme]);
13
+
20
14
  return (
21
15
  <div className="fullscreen_map">
22
- <MUIThemeProvider theme={theme}>
23
- <MapComponentsProvider>
24
- <Story />
25
- <MapLibreMap
26
- options={{
27
- zoom: 14.5,
28
- style: "https://wms.wheregroup.com/tileserver/style/osm-bright.json",
29
- center: [7.0851268, 50.73884],
30
- }}
31
- mapId="map_1"
32
- />
33
- <MlNavgiationTools
34
- sx={{ bottom: "25px", right: 0 }}
35
- showZoomButtons={false}
36
- mapId="map_1"
37
- />
38
- </MapComponentsProvider>
39
- </MUIThemeProvider>
40
- </div>)
41
- },
16
+ <MapComponentsProvider>
17
+ <MUIThemeProvider theme={theme}>
18
+ <Story />
19
+ <MapLibreMap
20
+ options={{
21
+ zoom: 14.5,
22
+ style: 'https://wms.wheregroup.com/tileserver/style/osm-bright.json',
23
+ center: [7.0851268, 50.73884],
24
+ }}
25
+ mapId="map_1"
26
+ />
27
+ <MlNavgiationTools
28
+ sx={{ bottom: '25px', right: '5px' }}
29
+ showZoomButtons={false}
30
+ mapId="map_1"
31
+ />
32
+ </MUIThemeProvider>
33
+ </MapComponentsProvider>
34
+ </div>
35
+ );
36
+ },
42
37
  ];
43
38
 
44
39
  export default decorators;
@@ -1,29 +1,19 @@
1
1
  import React, { useMemo } from 'react';
2
-
3
2
  import { MapComponentsProvider } from '../index';
4
-
5
3
  import MapLibreMap from '../components/MapLibreMap/MapLibreMap';
6
-
7
4
  import './style.css';
8
5
  import MlNavgiationTools from '../components/MlNavigationTools/MlNavigationTools';
9
-
10
- import { ThemeProvider as MUIThemeProvider, createTheme } from '@mui/material/styles';
6
+ import { ThemeProvider as MUIThemeProvider } from '@mui/material/styles';
7
+ import getTheme from '../ui_components/MapcomponentsTheme';
11
8
 
12
9
  const decorators = [
13
10
  (Story, context) => {
14
- const theme = useMemo(
15
- () =>
16
- createTheme({
17
- palette: {
18
- mode: context?.globals?.theme ? context?.globals?.theme : 'light',
19
- },
20
- }),
21
- [context?.globals?.theme]
22
- );
11
+ const theme = useMemo(() => getTheme(context?.globals?.theme), [context?.globals?.theme]);
12
+
23
13
  return (
24
14
  <div className="fullscreen_map">
25
- <MUIThemeProvider theme={theme}>
26
- <MapComponentsProvider>
15
+ <MapComponentsProvider>
16
+ <MUIThemeProvider theme={theme}>
27
17
  <div
28
18
  style={{
29
19
  overflow: 'hidden',
@@ -80,8 +70,8 @@ const decorators = [
80
70
  />
81
71
  </div>
82
72
  </div>
83
- </MapComponentsProvider>
84
- </MUIThemeProvider>
73
+ </MUIThemeProvider>
74
+ </MapComponentsProvider>
85
75
  </div>
86
76
  );
87
77
  },
@@ -3,24 +3,17 @@ import React, { useMemo } from 'react';
3
3
  import { MapComponentsProvider } from '../index';
4
4
  import MapLibreMap from '../components/MapLibreMap/MapLibreMap';
5
5
  import './style.css';
6
- import MlNavgiationTools from '../components/MlNavigationTools/MlNavigationTools';
7
- import { ThemeProvider as MUIThemeProvider, createTheme } from '@mui/material/styles';
6
+ import { ThemeProvider as MUIThemeProvider } from '@mui/material/styles';
7
+ import getTheme from '../ui_components/MapcomponentsTheme';
8
8
 
9
9
  const decorators = [
10
10
  (Story, context) => {
11
- const theme = useMemo(
12
- () =>
13
- createTheme({
14
- palette: {
15
- mode: context?.globals?.theme ? context?.globals?.theme : 'light',
16
- },
17
- }),
18
- [context?.globals?.theme]
19
- );
11
+ const theme = useMemo(() => getTheme(context?.globals?.theme), [context?.globals?.theme]);
12
+
20
13
  return (
21
14
  <div className="fullscreen_map">
22
- <MUIThemeProvider theme={theme}>
23
- <MapComponentsProvider>
15
+ <MapComponentsProvider>
16
+ <MUIThemeProvider theme={theme}>
24
17
  <Story />
25
18
  <MapLibreMap
26
19
  options={{
@@ -30,8 +23,8 @@ const decorators = [
30
23
  }}
31
24
  mapId="map_1"
32
25
  />
33
- </MapComponentsProvider>
34
- </MUIThemeProvider>
26
+ </MUIThemeProvider>
27
+ </MapComponentsProvider>
35
28
  </div>
36
29
  );
37
30
  },
@@ -0,0 +1,24 @@
1
+ import React, { useMemo } from 'react';
2
+
3
+ import { MapComponentsProvider } from '../index';
4
+ import './style.css';
5
+ import { ThemeProvider as MUIThemeProvider } from '@mui/material/styles';
6
+ import getTheme from '../ui_components/MapcomponentsTheme';
7
+
8
+ const decorators = [
9
+ (Story, context) => {
10
+ const theme = useMemo(() => getTheme(context?.globals?.theme), [context?.globals?.theme]);
11
+
12
+ return (
13
+ <div className="fullscreen_map">
14
+ <MapComponentsProvider>
15
+ <MUIThemeProvider theme={theme}>
16
+ <Story />
17
+ </MUIThemeProvider>
18
+ </MapComponentsProvider>
19
+ </div>
20
+ );
21
+ },
22
+ ];
23
+
24
+ export default decorators;
@@ -25,8 +25,6 @@
25
25
  }
26
26
  .fullscreen_map .mapContainer {
27
27
  position: absolute;
28
- height: 100vh;
29
- width: 100vw;
30
28
  top: 0;
31
29
  right: 0;
32
30
  left: 0;
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
2
2
  import useCameraFollowPath from './useCameraFollowPath';
3
3
  import TopToolbar from '../../ui_components/TopToolbar';
4
4
  import mapContextDecorator from '../../decorators/MapContextDecorator';
5
- import { Button, Slider, Typography } from '@mui/material';
5
+ import { MenuItem, Slider, Typography } from '@mui/material';
6
6
  import MlGeoJsonLayer from '../../components/MlGeoJsonLayer/MlGeoJsonLayer';
7
7
  import { Feature } from '@turf/turf';
8
8
 
@@ -78,9 +78,9 @@ const Template = () => {
78
78
  return (
79
79
  <>
80
80
  <TopToolbar>
81
- <Button onClick={() => setShowComponent(!showComponent)}>
81
+ <MenuItem onClick={() => setShowComponent(!showComponent)}>
82
82
  {showComponent ? 'Route ausblenden' : 'Route einblenden'}
83
- </Button>
83
+ </MenuItem>
84
84
  {showComponent ? (
85
85
  <MlGeoJsonLayer
86
86
  geojson={routeJson}
@@ -91,7 +91,7 @@ const Template = () => {
91
91
  }}
92
92
  />
93
93
  ) : null}
94
- <Button
94
+ <MenuItem
95
95
  disabled={!state.pause}
96
96
  onClick={() =>
97
97
  setState((current) => {
@@ -100,8 +100,8 @@ const Template = () => {
100
100
  }
101
101
  >
102
102
  Start
103
- </Button>
104
- <Button
103
+ </MenuItem>
104
+ <MenuItem
105
105
  disabled={state.pause}
106
106
  onClick={() =>
107
107
  setState((current) => {
@@ -110,8 +110,8 @@ const Template = () => {
110
110
  }
111
111
  >
112
112
  Pause
113
- </Button>
114
- <Button
113
+ </MenuItem>
114
+ <MenuItem
115
115
  onClick={() => {
116
116
  CameraFollowPath.reset();
117
117
  setState((current) => {
@@ -120,11 +120,8 @@ const Template = () => {
120
120
  }}
121
121
  >
122
122
  Reset
123
- </Button>
124
- <Typography
125
- id="discrete-slider"
126
- style={{ color: '#121212', marginLeft: '10px', marginRight: '10px' }}
127
- >
123
+ </MenuItem>
124
+ <Typography id="discrete-slider" style={{ marginLeft: '10px', marginRight: '10px' }}>
128
125
  Zoom:
129
126
  </Typography>
130
127
  <Slider
@@ -148,10 +145,7 @@ const Template = () => {
148
145
  maxWidth: '200px',
149
146
  }}
150
147
  />
151
- <Typography
152
- id="discrete-slider2"
153
- style={{ color: '#121212', marginLeft: '10px', marginRight: '10px' }}
154
- >
148
+ <Typography id="discrete-slider2" style={{ marginLeft: '10px', marginRight: '10px' }}>
155
149
  Speed:
156
150
  </Typography>
157
151
  <Slider
@@ -173,7 +167,7 @@ const Template = () => {
173
167
  maxWidth: '200px',
174
168
  }}
175
169
  />
176
- <Button
170
+ <MenuItem
177
171
  onClick={() => {
178
172
  if (state.pitch === 0) {
179
173
  setState((current) => {
@@ -187,7 +181,7 @@ const Template = () => {
187
181
  }}
188
182
  >
189
183
  {state.pitch === 0 ? '3D' : '2D'}
190
- </Button>
184
+ </MenuItem>
191
185
  </TopToolbar>
192
186
  </>
193
187
  );
@@ -1,4 +1,4 @@
1
- import { Map } from '!maplibre-gl';
1
+ import { Map } from 'maplibre-gl';
2
2
  import jsPDF from 'jspdf';
3
3
  import MapLibreGlWrapper from '../../components/MapLibreMap/lib/MapLibreGlWrapper';
4
4
 
@@ -5,7 +5,7 @@ import useGpx from "./useGpx";
5
5
  import mapContextDecorator from "../../decorators/MapContextDecorator";
6
6
 
7
7
  const storyoptions = {
8
- title: "MapComponents/useGpx",
8
+ title: "Hooks/useGpx",
9
9
  component: useGpx,
10
10
  argTypes: {
11
11
  },
@@ -5,7 +5,7 @@ import useLayerHoverPopup from "./useLayerHoverPopup";
5
5
  import mapContextDecorator from "../../decorators/MapContextDecorator";
6
6
 
7
7
  const storyoptions = {
8
- title: "MapComponents/useLayerHoverPopup",
8
+ title: "Hooks/useLayerHoverPopup",
9
9
  component: useLayerHoverPopup,
10
10
  argTypes: {
11
11
  },
@@ -5,7 +5,7 @@ import useMapState from "./useMapState";
5
5
  import mapContextDecoratorHooks from "../decorators/MapContextDecoratorHooks";
6
6
 
7
7
  const storyoptions = {
8
- title: "Hooks/UseMapState",
8
+ title: "Hooks/useMapState",
9
9
  component: useMapState,
10
10
  argTypes: {},
11
11
  decorators: mapContextDecoratorHooks,
@@ -13,7 +13,7 @@ const vectorUrl =
13
13
  'https://wms.wheregroup.com/tileserver/tile/tileserver.php?/europe-0-14/index.json?/europe-0-14/{z}/{x}/{y}.pbf';
14
14
 
15
15
  const storyoptions = {
16
- title: 'Hooks/UseSource',
16
+ title: 'Hooks/useSource',
17
17
  component: useSource,
18
18
  argTypes: {},
19
19
  decorators: mapContextDecoratorHooks,
package/src/index.ts CHANGED
@@ -67,3 +67,12 @@ export { MapComponentsProvider } from "./contexts/MapContext";
67
67
  export { default as MapContext } from "./contexts/MapContext";
68
68
  export { default as SimpleDataProvider } from "./contexts/SimpleDataProvider";
69
69
  export { default as SimpleDataContext } from "./contexts/SimpleDataContext";
70
+
71
+ export { default as getTheme } from './ui_components/MapcomponentsTheme';
72
+
73
+ export { default as LayerList } from './ui_components/LayerList/LayerList';
74
+ export { default as LayerListItem } from './ui_components/LayerList/LayerListItem';
75
+ export { default as LayerListFolder } from './ui_components/LayerList/LayerListFolder';
76
+ export { default as LayerPropertyForm } from './ui_components/LayerList/util/LayerPropertyForm';
77
+ export { default as LayerListItemVectorLayer } from './ui_components/LayerList/util/LayerListItemVectorLayer';
78
+ export { default as ColorPicker } from './ui_components/LayerList/util/input/ColorPicker';