@mapcomponents/react-maplibre 0.1.48 → 0.1.52

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 (346) hide show
  1. package/.github/workflows/node_version_test.yml +2 -1
  2. package/CHANGELOG.md +22 -1
  3. package/README.md +61 -150
  4. package/coverage/clover.xml +269 -246
  5. package/coverage/coverage-final.json +10 -9
  6. package/coverage/lcov-report/index.html +49 -34
  7. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +25 -25
  8. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  9. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +343 -0
  10. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +116 -0
  11. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  13. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +69 -63
  14. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +18 -18
  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 +1 -1
  18. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  19. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +1 -1
  20. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
  21. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +26 -11
  23. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +1 -1
  25. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  27. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +1 -1
  29. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  30. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +1 -1
  31. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  34. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  36. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  37. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
  39. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  40. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  41. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +106 -34
  43. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +15 -15
  44. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  45. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
  46. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  48. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  50. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
  52. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  53. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  54. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  55. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +22 -19
  56. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  58. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  59. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +1 -1
  60. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  61. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  62. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  63. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +1 -1
  64. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  65. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +1 -1
  66. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  67. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +23 -23
  68. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  69. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  70. package/coverage/lcov-report/src/contexts/index.html +1 -1
  71. package/coverage/lcov-report/src/hooks/index.html +15 -15
  72. package/coverage/lcov-report/src/hooks/useLayer.ts.html +78 -69
  73. package/coverage/lcov-report/src/hooks/useMap.ts.html +25 -25
  74. package/coverage/lcov-report/src/hooks/useMapState.ts.html +28 -28
  75. package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
  76. package/coverage/lcov-report/src/index.html +1 -1
  77. package/coverage/lcov-report/src/index.ts.html +1 -1
  78. package/coverage/lcov.info +544 -494
  79. package/dist/components/MapLibreMap/MapLibreMap.d.ts +31 -0
  80. package/dist/components/MapLibreMap/MapLibreMap.stories.d.ts +15 -0
  81. package/dist/components/MapLibreMap/MapLibreMap.test.d.ts +1 -0
  82. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +76 -0
  83. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.test.d.ts +1 -0
  84. package/dist/components/MlBasicComponent.d.ts +5 -0
  85. package/dist/components/MlCenterPosition/MlCenterPosition.d.ts +50 -0
  86. package/dist/components/MlCenterPosition/MlCenterPosition.stories.d.ts +17 -0
  87. package/dist/components/MlComponentTemplate/MlComponentTemplate.d.ts +22 -0
  88. package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +10 -0
  89. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.d.ts +21 -0
  90. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +10 -0
  91. package/dist/components/MlCreatePdfButton/lib/createPdf.d.ts +2 -0
  92. package/dist/components/MlCreatePdfButton/lib/nominatimMap.d.ts +2 -0
  93. package/dist/components/MlFeatureEditor/MlFeatureEditor.d.ts +35 -0
  94. package/dist/components/MlFeatureEditor/MlFeatureEditor.stories.d.ts +15 -0
  95. package/dist/components/MlFeatureEditor/MlFeatureEditor.test.d.ts +1 -0
  96. package/dist/components/MlFeatureEditor/custom-direct-select-mode.d.ts +37 -0
  97. package/dist/components/MlFeatureEditor/custom-polygon-mode.d.ts +16 -0
  98. package/dist/components/MlFeatureEditor/custom-select-mode.d.ts +37 -0
  99. package/dist/components/MlFeatureEditor/lib/common_selectors.d.ts +11 -0
  100. package/dist/components/MlFeatureEditor/lib/constants.d.ts +85 -0
  101. package/dist/components/MlFeatureEditor/lib/constrain_feature_movement.d.ts +2 -0
  102. package/dist/components/MlFeatureEditor/lib/create_midpoint.d.ts +15 -0
  103. package/dist/components/MlFeatureEditor/lib/create_supplementary_points.d.ts +2 -0
  104. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +13 -0
  105. package/dist/components/MlFeatureEditor/lib/double_click_zoom.d.ts +7 -0
  106. package/dist/components/MlFeatureEditor/lib/euclidean_distance.d.ts +5 -0
  107. package/dist/components/MlFeatureEditor/lib/features_at.d.ts +7 -0
  108. package/dist/components/MlFeatureEditor/lib/get_features_and_set_cursor.d.ts +1 -0
  109. package/dist/components/MlFeatureEditor/lib/is_click.d.ts +1 -0
  110. package/dist/components/MlFeatureEditor/lib/is_event_at_coordinates.d.ts +6 -0
  111. package/dist/components/MlFeatureEditor/lib/is_tap.d.ts +3 -0
  112. package/dist/components/MlFeatureEditor/lib/map_event_to_bounding_box.d.ts +12 -0
  113. package/dist/components/MlFeatureEditor/lib/mode_handler.d.ts +24 -0
  114. package/dist/components/MlFeatureEditor/lib/mouse_event_point.d.ts +11 -0
  115. package/dist/components/MlFeatureEditor/lib/move_features.d.ts +2 -0
  116. package/dist/components/MlFeatureEditor/lib/sort_features.d.ts +2 -0
  117. package/dist/components/MlFeatureEditor/lib/string_set.d.ts +21 -0
  118. package/dist/components/MlFeatureEditor/lib/string_sets_are_equal.d.ts +5 -0
  119. package/dist/components/MlFeatureEditor/lib/theme.d.ts +88 -0
  120. package/dist/components/MlFeatureEditor/lib/to_dense_array.d.ts +12 -0
  121. package/dist/components/MlFeatureEditor/lib/utils.d.ts +10 -0
  122. package/dist/components/MlFillExtrusionLayer/MlFillExtrusionLayer.d.ts +61 -0
  123. package/dist/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.d.ts +10 -0
  124. package/dist/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.d.ts +1 -0
  125. package/dist/components/MlFollowGps/MlFollowGps.d.ts +80 -0
  126. package/dist/components/MlFollowGps/MlFollowGps.stories.d.ts +10 -0
  127. package/dist/components/MlFollowGps/MlFollowGps.test.d.ts +1 -0
  128. package/dist/components/MlGPXViewer/MlGPXViewer.d.ts +29 -0
  129. package/dist/components/MlGPXViewer/MlGPXViewer.stories.d.ts +16 -0
  130. package/dist/components/MlGPXViewer/MlGPXViewer.test.d.ts +1 -0
  131. package/dist/components/MlGPXViewer/gpxConverter.d.ts +11 -0
  132. package/dist/components/MlGPXViewer/util/GeoJsonContext.d.ts +10 -0
  133. package/dist/components/MlGPXViewer/util/GeoJsonProvider.d.ts +4 -0
  134. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.d.ts +76 -0
  135. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +12 -0
  136. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.test.d.ts +1 -0
  137. package/dist/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.d.ts +2 -0
  138. package/dist/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.d.ts +2 -0
  139. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.d.ts +29 -0
  140. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +10 -0
  141. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.test.d.ts +1 -0
  142. package/dist/components/MlLayer/MlLayer.d.ts +26 -0
  143. package/dist/components/MlLayer/MlLayer.stories.d.ts +10 -0
  144. package/dist/components/MlLayer/MlLayer.test.d.ts +1 -0
  145. package/dist/components/MlLayerMagnify/MlLayerMagnify.d.ts +27 -0
  146. package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +10 -0
  147. package/dist/components/MlLayerMagnify/MlLayerMagnify.test.d.ts +1 -0
  148. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +16 -0
  149. package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +11 -0
  150. package/dist/components/MlLayerSwipe/MlLayerSwipe.test.d.ts +1 -0
  151. package/dist/components/MlLayerSwitcher/MlLayerSwitcher.d.ts +30 -0
  152. package/dist/components/MlLayerSwitcher/MlLayerSwitcher.stories.d.ts +13 -0
  153. package/dist/components/MlLayerSwitcher/components/LayerBox.d.ts +6 -0
  154. package/dist/components/MlMarker/MlMarker.d.ts +33 -0
  155. package/dist/components/MlMarker/MlMarker.stories.d.ts +9 -0
  156. package/dist/components/MlMeasureTool/MlMeasureTool.d.ts +20 -0
  157. package/dist/components/MlMeasureTool/MlMeasureTool.stories.d.ts +11 -0
  158. package/dist/components/MlNavigationCompass/MlNavigationCompass.d.ts +47 -0
  159. package/dist/components/MlNavigationCompass/MlNavigationCompass.stories.d.ts +10 -0
  160. package/dist/components/MlNavigationCompass/MlNavigationCompass.test.d.ts +1 -0
  161. package/dist/components/MlNavigationTools/MlNavigationTools.d.ts +31 -0
  162. package/dist/components/MlNavigationTools/MlNavigationTools.stories.d.ts +13 -0
  163. package/dist/components/MlOsmLayer/MlOsmLayer.d.ts +18 -0
  164. package/dist/components/MlOsmLayer/MlOsmLayer.stories_.d.ts +16 -0
  165. package/dist/components/MlOsmLayer/MlOsmLayer.test.d.ts +1 -0
  166. package/dist/components/MlScaleReference/MlScaleReference.d.ts +2 -0
  167. package/dist/components/MlScaleReference/MlScaleReference.stories.d.ts +14 -0
  168. package/dist/components/MlShareMapState/MlShareMapState.d.ts +22 -0
  169. package/dist/components/MlShareMapState/MlShareMapState.stories.d.ts +10 -0
  170. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.d.ts +20 -0
  171. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +16 -0
  172. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.d.ts +1 -0
  173. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.d.ts +15 -0
  174. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.stories.d.ts +16 -0
  175. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.test.d.ts +1 -0
  176. package/dist/components/MlThreeJsLayer/lib/GLTFLoader.d.ts +17 -0
  177. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.d.ts +73 -0
  178. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.d.ts +13 -0
  179. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.d.ts +1 -0
  180. package/dist/components/MlTransitionGeoJsonLayer/util/transitionFunctions.d.ts +2 -0
  181. package/dist/components/MlUseMapDebugger/MlUseMapDebugger.d.ts +22 -0
  182. package/dist/components/MlUseMapDebugger/MlUseMapDebugger.stories.d.ts +13 -0
  183. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.d.ts +37 -0
  184. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.stories.d.ts +13 -0
  185. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.test.d.ts +1 -0
  186. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.d.ts +22 -0
  187. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.d.ts +13 -0
  188. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +100 -0
  189. package/dist/components/MlWmsLayer/MlWmsLayer.stories.d.ts +13 -0
  190. package/dist/components/MlWmsLayer/MlWmsLayer.test.d.ts +1 -0
  191. package/dist/components/MlWmsLoader/MlWmsLoader.d.ts +48 -0
  192. package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +13 -0
  193. package/dist/contexts/MapComponentsProvider.test.d.ts +1 -0
  194. package/dist/contexts/MapContext.d.ts +13 -0
  195. package/dist/contexts/SimpleDataContext.d.ts +4 -0
  196. package/dist/contexts/SimpleDataProvider.d.ts +8 -0
  197. package/dist/contexts/SimpleDataProvider.test.d.ts +1 -0
  198. package/dist/custom.d.d.ts +22 -0
  199. package/dist/decorators/MapContextDecorator.d.ts +2 -0
  200. package/dist/decorators/MultiMapContextDecorator.d.ts +2 -0
  201. package/dist/hooks/useLayer.d.ts +26 -0
  202. package/dist/hooks/useLayer.test.d.ts +1 -0
  203. package/dist/hooks/useMap.d.ts +14 -0
  204. package/dist/hooks/useMapState.d.ts +62 -0
  205. package/dist/hooks/useMapState.stories.d.ts +14 -0
  206. package/dist/hooks/useWms.d.ts +18 -0
  207. package/dist/index.d.ts +32 -0
  208. package/dist/index.esm.js +96 -33
  209. package/dist/index.esm.js.map +1 -1
  210. package/dist/setupTests.d.ts +12 -0
  211. package/dist/stories/components/Readme.d.ts +2 -0
  212. package/dist/ui_components/ImageLoader.d.ts +2 -0
  213. package/dist/ui_components/Legend.d.ts +1 -0
  214. package/dist/ui_components/LoadingOverlay.d.ts +2 -0
  215. package/dist/ui_components/LoadingOverlayContext.d.ts +11 -0
  216. package/dist/ui_components/Sidebar.d.ts +1 -0
  217. package/dist/ui_components/Tooltip.d.ts +1 -0
  218. package/dist/ui_components/TopToolbar.d.ts +1 -0
  219. package/dist/util/index.d.ts +3 -0
  220. package/dist/util/layerRemovalTest.d.ts +2 -0
  221. package/dist/util/sourceRemovalTest.d.ts +2 -0
  222. package/package.json +2 -1
  223. package/scripts/create-map-component.sh +2 -2
  224. package/src/components/MapLibreMap/MapLibreMap.tsx +1 -1
  225. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +4 -3
  226. package/src/components/MlCenterPosition/MlCenterPosition.doc.de.md +3 -0
  227. package/src/components/MlCenterPosition/MlCenterPosition.meta_.json +15 -0
  228. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +21 -0
  229. package/src/components/MlCenterPosition/MlCenterPosition.tsx +86 -0
  230. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +1 -2
  231. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +3 -3
  232. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +37 -35
  233. package/src/components/MlFeatureEditor/lib/utils.js +1 -2
  234. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +14 -9
  235. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +2 -1
  236. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +3 -2
  237. package/src/components/MlNavigationTools/MlNavigationTools.tsx +44 -20
  238. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +18 -17
  239. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +1 -1
  240. package/src/hooks/useLayer.test.js +205 -0
  241. package/src/hooks/useLayer.ts +11 -8
  242. package/tsconfig.json +35 -7
  243. package/docs-build/0.20735a16c2ad9677fe7d.manager.bundle.js +0 -1
  244. package/docs-build/0.968bdc5f.iframe.bundle.js +0 -2
  245. package/docs-build/0.968bdc5f.iframe.bundle.js.map +0 -1
  246. package/docs-build/1.3530bc86.iframe.bundle.js +0 -10
  247. package/docs-build/1.3530bc86.iframe.bundle.js.map +0 -1
  248. package/docs-build/17.c96fb6bc.iframe.bundle.js +0 -2
  249. package/docs-build/17.c96fb6bc.iframe.bundle.js.map +0 -1
  250. package/docs-build/18.0947f810.iframe.bundle.js +0 -17
  251. package/docs-build/18.0947f810.iframe.bundle.js.map +0 -1
  252. package/docs-build/19.44204e5a.iframe.bundle.js +0 -14
  253. package/docs-build/19.44204e5a.iframe.bundle.js.map +0 -1
  254. package/docs-build/2.c62e9630.iframe.bundle.js +0 -2
  255. package/docs-build/2.c62e9630.iframe.bundle.js.map +0 -1
  256. package/docs-build/20.50a2ad76.iframe.bundle.js +0 -2
  257. package/docs-build/20.50a2ad76.iframe.bundle.js.map +0 -1
  258. package/docs-build/21.ce55b70e.iframe.bundle.js +0 -4
  259. package/docs-build/21.ce55b70e.iframe.bundle.js.map +0 -1
  260. package/docs-build/22.639c6bb4.iframe.bundle.js +0 -22
  261. package/docs-build/22.639c6bb4.iframe.bundle.js.map +0 -1
  262. package/docs-build/3.afb0e0a5.iframe.bundle.js +0 -2
  263. package/docs-build/3.afb0e0a5.iframe.bundle.js.map +0 -1
  264. package/docs-build/4.8ac31bba1926f4f011b0.manager.bundle.js +0 -2
  265. package/docs-build/4.8ac31bba1926f4f011b0.manager.bundle.js.LICENSE.txt +0 -8
  266. package/docs-build/5.daf044a6c0f55d839078.manager.bundle.js +0 -1
  267. package/docs-build/6.99fba2cf6af0473f8209.manager.bundle.js +0 -2
  268. package/docs-build/6.99fba2cf6af0473f8209.manager.bundle.js.LICENSE.txt +0 -12
  269. package/docs-build/7.b6a48b90f61cb575c2e4.manager.bundle.js +0 -1
  270. package/docs-build/8.50518a5391398d9d5812.manager.bundle.js +0 -1
  271. package/docs-build/assets/3D/godzilla_simple.glb +0 -0
  272. package/docs-build/assets/dop.png +0 -0
  273. package/docs-build/assets/historic.png +0 -0
  274. package/docs-build/assets/marker.png +0 -0
  275. package/docs-build/assets/osm.png +0 -0
  276. package/docs-build/assets/sample.gpx +0 -716
  277. package/docs-build/catalogue/.gitkeep +0 -0
  278. package/docs-build/catalogue/mc_meta.json +0 -1
  279. package/docs-build/favicon.ico +0 -0
  280. package/docs-build/iframe.html +0 -348
  281. package/docs-build/index.html +0 -59
  282. package/docs-build/logo.png +0 -0
  283. package/docs-build/main.ef9704b1252e8efa56a0.manager.bundle.js +0 -1
  284. package/docs-build/main~24120820.e956ad2c.iframe.bundle.js +0 -2
  285. package/docs-build/main~24120820.e956ad2c.iframe.bundle.js.map +0 -1
  286. package/docs-build/manifest.json +0 -25
  287. package/docs-build/robots.txt +0 -3
  288. package/docs-build/runtime~main.6e6ed7dc9ea4785ef286.manager.bundle.js +0 -1
  289. package/docs-build/static/media/mapcomponents_logo.98b01a05.png +0 -0
  290. package/docs-build/static/media/wg-marker.bf3eeb2d.png +0 -0
  291. package/docs-build/thumbnails/MapLibreMap.png +0 -0
  292. package/docs-build/thumbnails/MlCameraFollowPath.png +0 -0
  293. package/docs-build/thumbnails/MlCreatePdfButton.png +0 -0
  294. package/docs-build/thumbnails/MlDeckGlLayer.png +0 -0
  295. package/docs-build/thumbnails/MlDeckGlTerrainLayer.png +0 -0
  296. package/docs-build/thumbnails/MlDemoDashboard.png +0 -0
  297. package/docs-build/thumbnails/MlFeatureEditor.png +0 -0
  298. package/docs-build/thumbnails/MlFillExtrusionLayer.png +0 -0
  299. package/docs-build/thumbnails/MlFollowGps.png +0 -0
  300. package/docs-build/thumbnails/MlGPXViewer.png +0 -0
  301. package/docs-build/thumbnails/MlGeoJsonLayer.png +0 -0
  302. package/docs-build/thumbnails/MlHillshadeLayer.png +0 -0
  303. package/docs-build/thumbnails/MlIconLayer.png +0 -0
  304. package/docs-build/thumbnails/MlLaermkarte.png +0 -0
  305. package/docs-build/thumbnails/MlLayerMagnify.png +0 -0
  306. package/docs-build/thumbnails/MlLayerSwipe.png +0 -0
  307. package/docs-build/thumbnails/MlMapDrawTools.png +0 -0
  308. package/docs-build/thumbnails/MlMeasureTool.png +0 -0
  309. package/docs-build/thumbnails/MlMobilerImker.png +0 -0
  310. package/docs-build/thumbnails/MlNavigationCompass.png +0 -0
  311. package/docs-build/thumbnails/MlNavigationTools.png +0 -0
  312. package/docs-build/thumbnails/MlOsmLayer.png +0 -0
  313. package/docs-build/thumbnails/MlScaleReference.png +0 -0
  314. package/docs-build/thumbnails/MlSpatialElevationProfile.png +0 -0
  315. package/docs-build/thumbnails/MlThreeJsLayer.png +0 -0
  316. package/docs-build/thumbnails/MlTransitionGeoJsonLayer.png +0 -0
  317. package/docs-build/thumbnails/MlVectorTileLayer.png +0 -0
  318. package/docs-build/thumbnails/MlWanderApp.png +0 -0
  319. package/docs-build/thumbnails/MlWmsLayer.png +0 -0
  320. package/docs-build/thumbnails/MlWmsLoader.png +0 -0
  321. package/docs-build/vendors~main.4b570b3072ba06ee44b5.manager.bundle.js +0 -2
  322. package/docs-build/vendors~main.4b570b3072ba06ee44b5.manager.bundle.js.LICENSE.txt +0 -104
  323. package/docs-build/vendors~main~0ad7406a.834c9ace.iframe.bundle.js +0 -8
  324. package/docs-build/vendors~main~0ad7406a.834c9ace.iframe.bundle.js.map +0 -1
  325. package/docs-build/vendors~main~0f485567.7297d057.iframe.bundle.js +0 -2
  326. package/docs-build/vendors~main~0f485567.7297d057.iframe.bundle.js.map +0 -1
  327. package/docs-build/vendors~main~41a6ab2c.19d97527.iframe.bundle.js +0 -2
  328. package/docs-build/vendors~main~41a6ab2c.19d97527.iframe.bundle.js.map +0 -1
  329. package/docs-build/vendors~main~52589227.cebbe724.iframe.bundle.js +0 -8
  330. package/docs-build/vendors~main~52589227.cebbe724.iframe.bundle.js.map +0 -1
  331. package/docs-build/vendors~main~57c1f6cb.8a8dd47e.iframe.bundle.js +0 -2
  332. package/docs-build/vendors~main~57c1f6cb.8a8dd47e.iframe.bundle.js.map +0 -1
  333. package/docs-build/vendors~main~73914085.2e61c0dc.iframe.bundle.js +0 -293
  334. package/docs-build/vendors~main~73914085.2e61c0dc.iframe.bundle.js.map +0 -1
  335. package/docs-build/vendors~main~9c5b28f6.32356887.iframe.bundle.js +0 -7
  336. package/docs-build/vendors~main~9c5b28f6.32356887.iframe.bundle.js.map +0 -1
  337. package/docs-build/vendors~main~b5906859.94dc520a.iframe.bundle.js +0 -21
  338. package/docs-build/vendors~main~b5906859.94dc520a.iframe.bundle.js.map +0 -1
  339. package/docs-build/vendors~main~b8f44717.8669cfb8.iframe.bundle.js +0 -89
  340. package/docs-build/vendors~main~b8f44717.8669cfb8.iframe.bundle.js.map +0 -1
  341. package/docs-build/vendors~main~b9cf3951.2a2025c3.iframe.bundle.js +0 -63
  342. package/docs-build/vendors~main~b9cf3951.2a2025c3.iframe.bundle.js.map +0 -1
  343. package/docs-build/vendors~main~d939e436.bb2b0303.iframe.bundle.js +0 -2
  344. package/docs-build/vendors~main~d939e436.bb2b0303.iframe.bundle.js.map +0 -1
  345. package/docs-build/vendors~main~f420d588.3481b43e.iframe.bundle.js +0 -107
  346. package/docs-build/vendors~main~f420d588.3481b43e.iframe.bundle.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ export var uuid_regex: string;
2
+ export namespace mockMapLibreMethods {
3
+ const on: any;
4
+ const off: any;
5
+ const addControl: any;
6
+ const removeControl: any;
7
+ const hasControl: any;
8
+ function getCanvas(): HTMLCanvasElement;
9
+ function getContainer(): {
10
+ style: {};
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ export default Readme;
2
+ declare function Readme(): JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default ImageLoader;
2
+ declare function ImageLoader(props: any): JSX.Element;
@@ -0,0 +1 @@
1
+ export default function Legend(props: any): JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default LoadingOverlay;
2
+ declare function LoadingOverlay(): JSX.Element;
@@ -0,0 +1,11 @@
1
+ export const LoadingOverlayContext: React.Context<{}>;
2
+ export function LoadingOverlayProvider({ children }: {
3
+ children: any;
4
+ }): JSX.Element;
5
+ export namespace LoadingOverlayProvider {
6
+ namespace propTypes {
7
+ const children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
8
+ }
9
+ }
10
+ import React from "react";
11
+ import PropTypes from "prop-types";
@@ -0,0 +1 @@
1
+ export default function Sidebar(props: any): JSX.Element;
@@ -0,0 +1 @@
1
+ export default function Legend(props: any): JSX.Element;
@@ -0,0 +1 @@
1
+ export default function TopToolbar(props: any): JSX.Element;
@@ -0,0 +1,3 @@
1
+ import layerRemovalTest from "./layerRemovalTest";
2
+ import sourceRemovalTest from "./sourceRemovalTest";
3
+ export { layerRemovalTest, sourceRemovalTest };
@@ -0,0 +1,2 @@
1
+ export default layerRemovalTest;
2
+ declare function layerRemovalTest(ComponentName: any, Component: any, regexLayerNameTest: any, humanReadableLayerName: any, beforeWrapperInit: any, afterWrapperInit: any, createWrapperFunction: any): void;
@@ -0,0 +1,2 @@
1
+ export default sourceRemovalTest;
2
+ declare function sourceRemovalTest(ComponentName: any, Component: any, regexLayerNameTest: any, humanReadableLayerName: any, beforeWrapperInit: any, afterWrapperInit: any): void;
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@mapcomponents/react-maplibre",
3
- "version": "0.1.48",
3
+ "version": "0.1.52",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.esm.js",
7
7
  "source": "src/index.ts",
8
+ "types": "dist/index.d.ts",
8
9
  "scripts": {
9
10
  "build": "rollup -c",
10
11
  "start": "start-storybook -p 6006 -s public",
@@ -18,14 +18,14 @@ if [ ! -d "$target_path$component_name" ]; then
18
18
 
19
19
  mv $target_path$component_name/$template_name.doc.de.md $target_path$component_name/$component_name.doc.de.md
20
20
 
21
- mv $target_path$component_name/$template_name.js $target_path$component_name/$component_name.js
21
+ mv $target_path$component_name/$template_name.tsx $target_path$component_name/$component_name.tsx
22
22
 
23
23
  mv $target_path$component_name/$template_name.meta_.json $target_path$component_name/$component_name.meta_.json
24
24
 
25
25
  mv $target_path$component_name/$template_name.stories.js $target_path$component_name/$component_name.stories.js
26
26
 
27
27
  sed -i "s/$template_name/$component_name/g" $target_path$component_name/$component_name.doc.de.md
28
- sed -i "s/$template_name/$component_name/g" $target_path$component_name/$component_name.js
28
+ sed -i "s/$template_name/$component_name/g" $target_path$component_name/$component_name.tsx
29
29
  sed -i "s/$template_name/$component_name/g" $target_path$component_name/$component_name.meta_.json
30
30
  sed -i "s/$template_name/$component_name/g" $target_path$component_name/$component_name.stories.js
31
31
 
@@ -16,7 +16,7 @@ type MapLibreMapProps = {
16
16
  * See https://maplibre.org/maplibre-gl-js-docs/api/map/ for a formal documentation of al
17
17
  * available properties.
18
18
  */
19
- options?: MapOptionsType;
19
+ options?: Partial<MapOptionsType>;
20
20
  /**
21
21
  * css style definition passed to the map container DOM element
22
22
  */
@@ -1,4 +1,5 @@
1
- import { Map, IControl, MapOptions as MapOptionsType } from "!maplibre-gl";
1
+ import { Map, IControl, MapOptions as MapOptionsType, } from "!maplibre-gl";
2
+ import { Map as MapType } from "maplibre-gl";
2
3
 
3
4
  type EventArgArray = [string, string | Function, Function?];
4
5
  type LayerState = {
@@ -53,7 +54,7 @@ class MapLibreGlWrapper {
53
54
  };
54
55
  initRegisteredElements: Function;
55
56
  addNativeMaplibreFunctionsAndProps: Function;
56
- map: Map;
57
+ map: MapType;
57
58
  style: object;
58
59
 
59
60
  styleJson: object;
@@ -603,7 +604,7 @@ class MapLibreGlWrapper {
603
604
  });
604
605
  }
605
606
 
606
- self.map = new Map(props.mapOptions);
607
+ self.map = new Map(props.mapOptions) as MapType;
607
608
  //@ts-ignore
608
609
  window._map = self.map;
609
610
 
@@ -0,0 +1,3 @@
1
+ # Component Beschreibung
2
+
3
+ Beschreibungstext
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "MlCenterPosition",
3
+ "title": "",
4
+ "description": "",
5
+ "i18n": {
6
+ "de": {
7
+ "title": "",
8
+ "description": ""
9
+ }
10
+ },
11
+ "tags": [],
12
+ "category": "",
13
+ "type": "component",
14
+ "price": 0
15
+ }
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+
3
+ import MlCenterPosition from "./MlCenterPosition";
4
+
5
+ import mapContextDecorator from "../../decorators/MapContextDecorator";
6
+
7
+ const storyoptions = {
8
+ title: "MapComponents/MlCenterPosition",
9
+ component: MlCenterPosition,
10
+ argTypes: {
11
+ },
12
+ decorators: mapContextDecorator,
13
+ parameters: { docs: { source: { type: 'code' } } }
14
+ };
15
+ export default storyoptions;
16
+
17
+ const Template = (args) => <MlCenterPosition />;
18
+
19
+ export const ExampleConfig = Template.bind({});
20
+ ExampleConfig.parameters = {};
21
+ ExampleConfig.args = {};
@@ -0,0 +1,86 @@
1
+ import React, { useState, useCallback } from "react";
2
+ import useMap from "../../hooks/useMap";
3
+ import { Button } from "@mui/material";
4
+ import GpsFixedIcon from "@mui/icons-material/GpsFixed";
5
+
6
+ interface MlCenterPositionProps {
7
+ /**
8
+ * Id of the target MapLibre instance in mapContext
9
+ */
10
+ mapId?: string;
11
+ /**
12
+ * Id of an existing layer in the mapLibre instance to help specify the layer order
13
+ * This layer will be visually beneath the layer with the "insertBeforeLayer" id.
14
+ */
15
+ insertBeforeLayer?: string;
16
+ /**
17
+ * Active button font color
18
+ */
19
+ onColor?: string;
20
+ /**
21
+ * Inactive button font color
22
+ */
23
+ offColor?: string;
24
+ /**
25
+ * CSS style object that is applied to the button component
26
+ */
27
+ style?: any;
28
+ }
29
+
30
+ /**
31
+ * Component template
32
+ *
33
+ */
34
+ const MlCenterPosition = (props: MlCenterPositionProps) => {
35
+ const mapHook = useMap({
36
+ mapId: props.mapId,
37
+ waitForLayer: props.insertBeforeLayer,
38
+ });
39
+ const [locationAccessDenied, setLocationAccessDenied] = useState(false);
40
+
41
+ const centerCurrentLocation = () => {
42
+ navigator.geolocation.getCurrentPosition(getLocationSuccess, getLocationError);
43
+ };
44
+
45
+ const getLocationSuccess = useCallback((location) => {
46
+ mapHook.map?.map.setCenter?.([location.coords.longitude, location.coords.latitude]);
47
+ }, [mapHook.map]);
48
+
49
+ const getLocationError = () => {
50
+ console.log("Access of user location denied");
51
+ setLocationAccessDenied(true);
52
+ };
53
+ return <>
54
+ <Button
55
+ sx={{
56
+ zIndex: 1002,
57
+ color: !locationAccessDenied ? props.onColor : props.offColor,
58
+ ...props.style,
59
+ }}
60
+ onClick={centerCurrentLocation} disabled={locationAccessDenied}>
61
+ <GpsFixedIcon sx={{ ...(props.style?.fontSize?{fontSize: props.style?.fontSize}:{}) }} />{" "}
62
+ </Button>
63
+ </>;
64
+
65
+ };
66
+
67
+ MlCenterPosition.defaultProps = {
68
+ mapId: undefined,
69
+ style: {
70
+ minWidth: "30px",
71
+ minHeight: "30px",
72
+ width: "30px",
73
+ height: "30px",
74
+ backgroundColor: "#414141",
75
+ borderRadius: "23%",
76
+ margin: 0.15,
77
+ fontSize: "1.3em",
78
+ ":hover": {
79
+ backgroundColor: "#515151",
80
+ color: "#ececec",
81
+ },
82
+ },
83
+ onColor: "#ececec",
84
+ offColor: "#666",
85
+ };
86
+ export default MlCenterPosition;
@@ -15,11 +15,10 @@ export default storyoptions;
15
15
  const Template = (args) => {
16
16
  return (
17
17
  <MlFeatureEditor
18
- debug={true}
18
+ {...args}
19
19
  onChange={(features) => {
20
20
  console.log(features);
21
21
  }}
22
- {...args}
23
22
  />
24
23
  );
25
24
  };
@@ -82,7 +82,7 @@ describe("<MlFeatureEditor>", () => {
82
82
  );
83
83
 
84
84
  // MapLibreGlWrapper now subscribes to "data", "move" events on its own
85
- await waitFor(() => expect(mockMapLibreMethods.on).toHaveBeenCalledTimes(6));
85
+ await waitFor(() => expect(mockMapLibreMethods.on).toHaveBeenCalledTimes(7));
86
86
  });
87
87
 
88
88
  it("should deregister 2 event listeners to the maplibre instance", async () => {
@@ -93,11 +93,11 @@ describe("<MlFeatureEditor>", () => {
93
93
  );
94
94
 
95
95
  // MapLibreGlWrapper now subscribes to "data", "move" events on its own
96
- expect(mockMapLibreMethods.on).toHaveBeenCalledTimes(6);
96
+ expect(mockMapLibreMethods.on).toHaveBeenCalledTimes(7);
97
97
 
98
98
  wrapper.find(".toggle_layer_visible").simulate("click");
99
99
 
100
- expect(mockMapLibreMethods.off).toHaveBeenCalledTimes(2);
100
+ expect(mockMapLibreMethods.off).toHaveBeenCalledTimes(3);
101
101
  });
102
102
 
103
103
  it("should add MapBox-Gl-draw instance using map.addControl to the maplibre instance", async () => {
@@ -9,7 +9,6 @@ import CustomDirectSelectMode from "./custom-direct-select-mode.js";
9
9
 
10
10
  import useMap from "../../hooks/useMap";
11
11
 
12
-
13
12
  interface MlFeatureEditorProps {
14
13
  /**
15
14
  * Id of the target MapLibre instance in mapContext
@@ -28,7 +27,7 @@ interface MlFeatureEditorProps {
28
27
  * Callback function that is called each time the GeoJson data within has changed within MlFeatureEditor.
29
28
  * First parameter is the new GeoJson feature.
30
29
  */
31
- onChange?: Function
30
+ onChange?: Function;
32
31
  /**
33
32
  * Feature editor mode:
34
33
  * - "custom_select" edit features
@@ -36,40 +35,30 @@ interface MlFeatureEditorProps {
36
35
  * - "draw_point" draw Point
37
36
  * - "draw_line_string" draw LineString
38
37
  */
39
- mode?:string
38
+ mode?: string;
40
39
  }
41
40
 
42
41
  /**
43
42
  * GeoJson Feature editor that allows to create or manipulate GeoJson data
44
43
  */
45
- const MlFeatureEditor = (props:MlFeatureEditorProps) => {
44
+ const MlFeatureEditor = (props: MlFeatureEditorProps) => {
46
45
  const draw = useRef<MapboxDraw>();
47
46
  const mapHook = useMap({
48
47
  mapId: props.mapId,
49
48
  waitForLayer: props.insertBeforeLayer,
50
49
  });
51
- const onChangeRef = useRef(props.onChange);
52
50
 
53
51
  const drawToolsInitialized = useRef(false);
54
52
  const [drawToolsReady, setDrawToolsReady] = useState(false);
55
53
 
56
- const [mouseUpTrigger, setMouseUpTrigger] = useState(0);
57
54
 
58
- const modeChangeHandler = (e:any) => {
55
+ const modeChangeHandler = (e: any) => {
59
56
  console.log("MlFeatureEditor mode change to " + e.mode);
60
57
  //setDrawMode(e.mode);
61
58
  };
62
59
 
63
- const mouseUpHandler = () => {
64
- setMouseUpTrigger(Math.random());
65
- };
66
-
67
60
  useEffect(() => {
68
- if (
69
- mapHook.map &&
70
- !drawToolsInitialized.current
71
- ) {
72
-
61
+ if (mapHook.map && !drawToolsInitialized.current) {
73
62
  drawToolsInitialized.current = true;
74
63
 
75
64
  if (
@@ -96,34 +85,47 @@ const MlFeatureEditor = (props:MlFeatureEditorProps) => {
96
85
  ),
97
86
  });
98
87
 
99
- mapHook.map.on("draw.modechange", modeChangeHandler, mapHook.componentId);
100
-
101
88
  mapHook.map.addControl(draw.current, "top-left", mapHook.componentId);
102
89
 
103
- mapHook.map.on("mouseup", mouseUpHandler, mapHook.componentId);
90
+
91
+ mapHook.map.on("draw.modechange", modeChangeHandler, mapHook.componentId);
104
92
 
105
93
  setDrawToolsReady(true);
106
94
  }
107
- }, [mapHook.map, props, drawToolsInitialized]);
95
+ }, [mapHook.map, props, drawToolsInitialized]);
108
96
 
109
97
  useEffect(() => {
110
- if (
111
- draw.current &&
112
- props.geojson?.geometry
113
- ) {
114
- draw.current.set({ type: "FeatureCollection", features: [props.geojson] });
98
+ if (!mapHook.map || !drawToolsReady) return;
99
+
100
+ const changeHandler = () => {
101
+ if (draw.current) {
102
+ // update drawnFeatures state object
103
+ if (typeof props.onChange === "function") {
104
+ let currentFeatureCollection = draw.current.getAll?.();
105
+ props.onChange(currentFeatureCollection?.features);
106
+ }
107
+ }
108
+ };
109
+
110
+ mapHook.map.on("mouseup", changeHandler);
111
+
112
+ mapHook.map.on("touchend", changeHandler);
113
+
114
+ return () => {
115
+ if (!mapHook.map) return;
116
+
117
+ mapHook.map.map.off("mouseup", changeHandler);
118
+
119
+ mapHook.map.map.off("touchend", changeHandler);
115
120
  }
116
- }, [props.geojson, drawToolsReady]);
121
+
122
+ }, [drawToolsReady, mapHook.map])
117
123
 
118
124
  useEffect(() => {
119
- if (draw.current && mouseUpTrigger) {
120
- // update drawnFeatures state object
121
- let currentFeatureCollection = draw.current.getAll();
122
- if (typeof onChangeRef.current === "function") {
123
- onChangeRef.current(currentFeatureCollection.features);
124
- }
125
+ if (draw.current && props.geojson?.geometry) {
126
+ draw.current.set({ type: "FeatureCollection", features: [props.geojson] });
125
127
  }
126
- }, [mouseUpTrigger]);
128
+ }, [props.geojson, drawToolsReady]);
127
129
 
128
130
  useEffect(() => {
129
131
  if (props.mode && draw.current) {
@@ -132,7 +134,7 @@ const MlFeatureEditor = (props:MlFeatureEditorProps) => {
132
134
  }
133
135
  }, [props.mode]);
134
136
 
135
- return (<></>);
136
- }
137
+ return <></>;
138
+ };
137
139
 
138
140
  export default MlFeatureEditor;
@@ -39,8 +39,7 @@ const drawUtils = {
39
39
  getDrawInstance: (map) => {
40
40
  for (var i = map._controls.length - 1; i >= 0; i--) {
41
41
  if (
42
- map._controls[i].options &&
43
- map._controls[i].options.defaultMode === "custom_select"
42
+ map._controls[i]?.modes?.SIMPLE_SELECT === "simple_select"
44
43
  ) {
45
44
  return map._controls[i];
46
45
  }
@@ -8,6 +8,9 @@ import getDefaultPaintPropsByType from "./util/getDefaultPaintPropsByType";
8
8
  import getDefaulLayerTypeByGeometry from "./util/getDefaultLayerTypeByGeometry";
9
9
  import { Feature, FeatureCollection } from "@turf/turf";
10
10
 
11
+
12
+ import { LineLayerSpecification, CircleLayerSpecification, FillLayerSpecification,MapLayerMouseEvent, LayerSpecification } from "maplibre-gl";
13
+
11
14
  type MlGeoJsonLayerProps = {
12
15
  /**
13
16
  * Id of the target MapLibre instance in mapContext
@@ -16,6 +19,8 @@ type MlGeoJsonLayerProps = {
16
19
  /**
17
20
  * Id of an existing layer in the mapLibre instance to help specify the layer order
18
21
  * This layer will be visually beneath the layer with the "insertBeforeLayer" id.
22
+ * This layer will not be added to the maplibre-gl instance until a layer with an
23
+ * id that matches the value of insertBeforeLayer is created.
19
24
  */
20
25
  insertBeforeLayer?: string;
21
26
  /**
@@ -30,7 +35,7 @@ type MlGeoJsonLayerProps = {
30
35
  * Type of the layer that will be added to the MapLibre instance.
31
36
  * Possible values: "line", "circle", "fill"
32
37
  */
33
- type?: string;
38
+ type?: "fill" | "line" | "circle";
34
39
  /**
35
40
  * Paint property object, that is passed to the addLayer call.
36
41
  * Possible props depend on the layer type.
@@ -38,7 +43,7 @@ type MlGeoJsonLayerProps = {
38
43
  * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
39
44
  * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
40
45
  */
41
- paint?: any;
46
+ paint?: CircleLayerSpecification['paint'] | FillLayerSpecification['paint'] | LineLayerSpecification['paint'];
42
47
  /**
43
48
  * Layout property object, that is passed to the addLayer call.
44
49
  * Possible props depend on the layer type.
@@ -46,28 +51,28 @@ type MlGeoJsonLayerProps = {
46
51
  * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
47
52
  * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
48
53
  */
49
- layout?: any;
54
+ layout?: CircleLayerSpecification['layout'] | FillLayerSpecification['layout'] | LineLayerSpecification['layout'];
50
55
  /**
51
56
  * Javascript object that is spread into the addLayer commands first parameter.
52
57
  */
53
- options?: any;
58
+ options?: CircleLayerSpecification | FillLayerSpecification | LineLayerSpecification;
54
59
  /**
55
60
  * Javascript object with optional properties "fill", "line", "circle" to override implicit layer type default paint properties.
56
61
  */
57
- defaultPaintOverrides?: any;
62
+ defaultPaintOverrides?: { circle?: CircleLayerSpecification['paint'], fill?: FillLayerSpecification['paint'], line?: LineLayerSpecification['paint'] };
58
63
  /**
59
64
  * Hover event handler that is executed whenever a geometry rendered by this component is hovered.
60
65
  */
61
- onHover?: Function;
66
+ onHover?: MapLayerMouseEvent;
62
67
  /**
63
68
  * Click event handler that is executed whenever a geometry rendered by this component is clicked.
64
69
  */
65
- onClick?: Function;
70
+ onClick?: MapLayerMouseEvent;
66
71
  /**
67
72
  * Leave event handler that is executed whenever a geometry rendered by this component is
68
73
  * left/unhovered.
69
74
  */
70
- onLeave?: Function;
75
+ onLeave?: MapLayerMouseEvent;
71
76
  }
72
77
 
73
78
  /**
@@ -91,7 +96,7 @@ const MlGeoJsonLayer = (props: MlGeoJsonLayerProps) => {
91
96
  ),
92
97
  layout: props.layout || {},
93
98
  ...props.options,
94
- type: layerType,
99
+ type: layerType as LayerSpecification['type'],
95
100
  },
96
101
  insertBeforeLayer: props.insertBeforeLayer,
97
102
  onHover: props.onHover,
@@ -1,4 +1,5 @@
1
1
  import { Feature, FeatureCollection } from "@turf/turf";
2
+ import { LayerSpecification } from "maplibre-gl";
2
3
 
3
4
  const mapGeometryTypesToLayerTypes = {
4
5
  Position: "circle",
@@ -13,7 +14,7 @@ const mapGeometryTypesToLayerTypes = {
13
14
 
14
15
  const getDefaulLayerTypeByGeometry: Function = (
15
16
  geojson: Feature | FeatureCollection
16
- ): string => {
17
+ ): LayerSpecification['type'] => {
17
18
  if (geojson?.type === "Feature") {
18
19
  return mapGeometryTypesToLayerTypes?.[geojson?.geometry?.type]
19
20
  ? mapGeometryTypesToLayerTypes[geojson.geometry.type]
@@ -15,8 +15,9 @@ const storyoptions = {
15
15
  };
16
16
  export default storyoptions;
17
17
 
18
- const Template = (args) => <MlNavigationTools />;
18
+ const Template = (args) => <MlNavigationTools {...args} />;
19
19
 
20
20
  export const ExampleConfig = Template.bind({});
21
21
  ExampleConfig.parameters = {};
22
- ExampleConfig.args = {};
22
+ ExampleConfig.args = {
23
+ };