@mapcomponents/react-maplibre 0.1.69 → 0.1.71

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 (523) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +3 -2
  3. package/dist/components/MlComponentTemplate/MlComponentTemplate.d.ts +1 -6
  4. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.d.ts +3 -3
  5. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +7 -2
  6. package/dist/components/MlCreatePngButton/MlCreatePngButton.d.ts +22 -0
  7. package/dist/components/MlCreatePngButton/MlCreatePngButton.stories.d.ts +14 -0
  8. package/dist/components/MlGpxViewer/util/{MetadataDrawer.d.ts → Metadata.d.ts} +1 -2
  9. package/dist/components/MlGpxViewer/util/MlGpxDemoLoader.d.ts +1 -1
  10. package/dist/hooks/useExportMap/lib.d.ts +16 -1
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.esm.js +292 -287
  13. package/dist/index.esm.js.map +1 -1
  14. package/dist/ui_components/Sidebar.d.ts +5 -3
  15. package/dist/ui_components/TopToolbar.d.ts +8 -7
  16. package/package.json +1 -2
  17. package/.babelrc +0 -22
  18. package/.editorconfig +0 -19
  19. package/.eslintignore +0 -12
  20. package/.eslintrc.js +0 -30
  21. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -41
  22. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  23. package/.github/workflows/check-catalogue-metadata-schema.yml +0 -19
  24. package/.github/workflows/check-formatting.yml +0 -46
  25. package/.github/workflows/node_version_test.yml +0 -26
  26. package/.github/workflows/publish.yml +0 -21
  27. package/.github/workflows/storybook.yml +0 -28
  28. package/.prettierignore +0 -11
  29. package/.prettierrc.json +0 -6
  30. package/.storybook/.babelrc +0 -26
  31. package/.storybook/main.js +0 -40
  32. package/.storybook/manager.js +0 -6
  33. package/.storybook/mapcomponents_logo.png +0 -0
  34. package/.storybook/preview.js +0 -33
  35. package/.storybook/style.css +0 -15
  36. package/.storybook/wheregroupTheme.js +0 -9
  37. package/config/env.js +0 -106
  38. package/config/jest/babelTransform.js +0 -29
  39. package/config/jest/cssTransform.js +0 -14
  40. package/config/jest/fileTransform.js +0 -40
  41. package/config/paths.js +0 -75
  42. package/coverage/clover.xml +0 -2018
  43. package/coverage/coverage-final.json +0 -60
  44. package/coverage/lcov-report/base.css +0 -224
  45. package/coverage/lcov-report/block-navigation.js +0 -87
  46. package/coverage/lcov-report/favicon.png +0 -0
  47. package/coverage/lcov-report/index.html +0 -731
  48. package/coverage/lcov-report/prettify.css +0 -1
  49. package/coverage/lcov-report/prettify.js +0 -2
  50. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  51. package/coverage/lcov-report/sorter.js +0 -196
  52. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +0 -466
  53. package/coverage/lcov-report/src/components/MapLibreMap/index.html +0 -116
  54. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +0 -322
  55. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +0 -116
  56. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +0 -238
  57. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +0 -116
  58. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +0 -148
  59. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +0 -196
  60. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +0 -131
  61. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +0 -535
  62. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +0 -116
  63. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +0 -340
  64. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +0 -116
  65. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +0 -808
  66. package/coverage/lcov-report/src/components/MlFollowGps/index.html +0 -116
  67. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +0 -469
  68. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +0 -116
  69. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html +0 -652
  70. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +0 -649
  71. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +0 -112
  72. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +0 -115
  73. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +0 -161
  74. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +0 -469
  75. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +0 -116
  76. package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +0 -394
  77. package/coverage/lcov-report/src/components/MlGpxViewer/index.html +0 -116
  78. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +0 -385
  79. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +0 -116
  80. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +0 -247
  81. package/coverage/lcov-report/src/components/MlLayer/index.html +0 -116
  82. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +0 -745
  83. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +0 -116
  84. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +0 -520
  85. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +0 -116
  86. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +0 -736
  87. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +0 -316
  88. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +0 -116
  89. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +0 -116
  90. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +0 -505
  91. package/coverage/lcov-report/src/components/MlMarker/index.html +0 -116
  92. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +0 -265
  93. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +0 -116
  94. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +0 -763
  95. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +0 -116
  96. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +0 -613
  97. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +0 -116
  98. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +0 -298
  99. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +0 -232
  100. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +0 -131
  101. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.tsx.html +0 -412
  102. package/coverage/lcov-report/src/components/MlScaleReference/index.html +0 -116
  103. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.tsx.html +0 -892
  104. package/coverage/lcov-report/src/components/MlShareMapState/index.html +0 -116
  105. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +0 -214
  106. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +0 -121
  107. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +0 -412
  108. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +0 -463
  109. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +0 -161
  110. package/coverage/lcov-report/src/components/MlSketchTool/MlSketchTool.tsx.html +0 -898
  111. package/coverage/lcov-report/src/components/MlSketchTool/index.html +0 -116
  112. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.html +0 -514
  113. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +0 -116
  114. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +0 -703
  115. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreejsLayer.tsx.html +0 -769
  116. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +0 -131
  117. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +0 -406
  118. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +0 -116
  119. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +0 -310
  120. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +0 -116
  121. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +0 -517
  122. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +0 -116
  123. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +0 -277
  124. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +0 -116
  125. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +0 -739
  126. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +0 -116
  127. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +0 -1102
  128. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +0 -116
  129. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +0 -403
  130. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +0 -103
  131. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +0 -277
  132. package/coverage/lcov-report/src/contexts/index.html +0 -146
  133. package/coverage/lcov-report/src/hooks/index.html +0 -191
  134. package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +0 -116
  135. package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +0 -661
  136. package/coverage/lcov-report/src/hooks/useExportMap/index.html +0 -131
  137. package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +0 -175
  138. package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +0 -559
  139. package/coverage/lcov-report/src/hooks/useGpx/index.html +0 -116
  140. package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +0 -295
  141. package/coverage/lcov-report/src/hooks/useLayer.ts.html +0 -787
  142. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +0 -232
  143. package/coverage/lcov-report/src/hooks/useLayerFilter/index.html +0 -116
  144. package/coverage/lcov-report/src/hooks/useLayerFilter/useLayerFilter.ts.html +0 -184
  145. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +0 -116
  146. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +0 -334
  147. package/coverage/lcov-report/src/hooks/useMap.ts.html +0 -358
  148. package/coverage/lcov-report/src/hooks/useMapState.ts.html +0 -631
  149. package/coverage/lcov-report/src/hooks/useSource.ts.html +0 -337
  150. package/coverage/lcov-report/src/hooks/useWms.ts.html +0 -397
  151. package/coverage/lcov-report/src/index.html +0 -116
  152. package/coverage/lcov-report/src/index.ts.html +0 -316
  153. package/coverage/lcov.info +0 -3987
  154. package/cypress/support/commands.ts +0 -37
  155. package/cypress/support/component-index.html +0 -12
  156. package/cypress/support/component.ts +0 -46
  157. package/cypress.config.ts +0 -101
  158. package/dist/components/MlCreatePdfButton/lib/createPdf.d.ts +0 -2
  159. package/dist/components/MlCreatePdfButton/lib/nominatimMap.d.ts +0 -2
  160. package/eslintErrorTest.js +0 -10
  161. package/public/assets/3D/godzilla_simple.glb +0 -0
  162. package/public/assets/dop.png +0 -0
  163. package/public/assets/historic.png +0 -0
  164. package/public/assets/marker.png +0 -0
  165. package/public/assets/osm.png +0 -0
  166. package/public/assets/sample.gpx +0 -716
  167. package/public/assets/sample1.gpx +0 -3003
  168. package/public/assets/sample2.gpx +0 -1264
  169. package/public/assets/sample3.gpx +0 -912
  170. package/public/assets/wg-marker.png +0 -0
  171. package/public/catalogue/.gitkeep +0 -0
  172. package/public/catalogue/mc_meta.json +0 -1
  173. package/public/favicon.ico +0 -0
  174. package/public/index.html +0 -39
  175. package/public/logo.png +0 -0
  176. package/public/manifest.json +0 -25
  177. package/public/robots.txt +0 -3
  178. package/public/thumbnails/MapLibreMap.png +0 -0
  179. package/public/thumbnails/MlCameraFollowPath.png +0 -0
  180. package/public/thumbnails/MlCreatePdfButton.png +0 -0
  181. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  182. package/public/thumbnails/MlDeckGlLayer.png +0 -0
  183. package/public/thumbnails/MlDeckGlTerrainLayer.png +0 -0
  184. package/public/thumbnails/MlDemoDashboard.png +0 -0
  185. package/public/thumbnails/MlFeatureEditor.png +0 -0
  186. package/public/thumbnails/MlFillExtrusionLayer.png +0 -0
  187. package/public/thumbnails/MlFollowGps.png +0 -0
  188. package/public/thumbnails/MlGeoJsonLayer.png +0 -0
  189. package/public/thumbnails/MlGpxViewer.png +0 -0
  190. package/public/thumbnails/MlHillshadeLayer.png +0 -0
  191. package/public/thumbnails/MlIconLayer.png +0 -0
  192. package/public/thumbnails/MlLaermkarte.png +0 -0
  193. package/public/thumbnails/MlLayerMagnify.png +0 -0
  194. package/public/thumbnails/MlLayerSwipe.png +0 -0
  195. package/public/thumbnails/MlMapDrawTools.png +0 -0
  196. package/public/thumbnails/MlMeasureTool.png +0 -0
  197. package/public/thumbnails/MlMobilerImker.png +0 -0
  198. package/public/thumbnails/MlNavigationCompass.png +0 -0
  199. package/public/thumbnails/MlNavigationTools.png +0 -0
  200. package/public/thumbnails/MlOsmLayer.png +0 -0
  201. package/public/thumbnails/MlScaleReference.png +0 -0
  202. package/public/thumbnails/MlSketchTool.png +0 -0
  203. package/public/thumbnails/MlSpatialElevationProfile.png +0 -0
  204. package/public/thumbnails/MlThreeJsLayer.png +0 -0
  205. package/public/thumbnails/MlTransitionGeoJsonLayer.png +0 -0
  206. package/public/thumbnails/MlVectorTileLayer.png +0 -0
  207. package/public/thumbnails/MlWanderApp.png +0 -0
  208. package/public/thumbnails/MlWmsLayer.png +0 -0
  209. package/public/thumbnails/MlWmsLoader.png +0 -0
  210. package/public/thumbnails/useCameraFollowPath.png +0 -0
  211. package/rollup.config.js +0 -74
  212. package/scripts/build-catalogue-markdown-docs.js +0 -28
  213. package/scripts/build-catalogue-meta.js +0 -42
  214. package/scripts/create-map-component.sh +0 -36
  215. package/scripts/test.js +0 -53
  216. package/src/@types/assets/index.d.ts +0 -20
  217. package/src/App.css +0 -0
  218. package/src/components/MapLibreMap/MapLibreMap.stories.js +0 -106
  219. package/src/components/MapLibreMap/MapLibreMap.test.js +0 -84
  220. package/src/components/MapLibreMap/MapLibreMap.tsx +0 -127
  221. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +0 -395
  222. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +0 -691
  223. package/src/components/MlBasicComponent.js +0 -39
  224. package/src/components/MlCenterPosition/MlCenterPosition.doc.de.md +0 -3
  225. package/src/components/MlCenterPosition/MlCenterPosition.meta_.json +0 -14
  226. package/src/components/MlCenterPosition/MlCenterPosition.stories.tsx +0 -20
  227. package/src/components/MlCenterPosition/MlCenterPosition.tsx +0 -79
  228. package/src/components/MlComponentTemplate/MlComponentTemplate.doc.de.md +0 -3
  229. package/src/components/MlComponentTemplate/MlComponentTemplate.meta_.json +0 -14
  230. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.tsx +0 -20
  231. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +0 -42
  232. package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.de.md +0 -1
  233. package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.en.md +0 -1
  234. package/src/components/MlCreatePdfButton/MlCreatePdfButton.meta_.json +0 -14
  235. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.tsx +0 -35
  236. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +0 -51
  237. package/src/components/MlCreatePdfButton/lib/createPdf.ts +0 -189
  238. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +0 -57
  239. package/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx +0 -21
  240. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +0 -3
  241. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +0 -14
  242. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +0 -165
  243. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +0 -37
  244. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +0 -51
  245. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +0 -257
  246. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +0 -327
  247. package/src/components/MlCreatePdfForm/lib/_PdfPreview.tsx +0 -399
  248. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +0 -82
  249. package/src/components/MlCreatePdfForm/lib/pdfContext.d.ts +0 -24
  250. package/src/components/MlCreatePdfForm/lib/preview.css +0 -114
  251. package/src/components/MlFeatureEditor/MlFeatureEditor.css +0 -0
  252. package/src/components/MlFeatureEditor/MlFeatureEditor.doc.de.md +0 -1
  253. package/src/components/MlFeatureEditor/MlFeatureEditor.doc.en.md +0 -1
  254. package/src/components/MlFeatureEditor/MlFeatureEditor.meta.json +0 -14
  255. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +0 -91
  256. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +0 -126
  257. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +0 -150
  258. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +0 -303
  259. package/src/components/MlFeatureEditor/custom-polygon-mode.js +0 -188
  260. package/src/components/MlFeatureEditor/custom-select-mode.js +0 -406
  261. package/src/components/MlFeatureEditor/lib/LICENSE.md +0 -18
  262. package/src/components/MlFeatureEditor/lib/common_selectors.js +0 -72
  263. package/src/components/MlFeatureEditor/lib/constants.js +0 -104
  264. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +0 -72
  265. package/src/components/MlFeatureEditor/lib/create_midpoint.js +0 -42
  266. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +0 -102
  267. package/src/components/MlFeatureEditor/lib/create_vertex.js +0 -35
  268. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +0 -30
  269. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +0 -9
  270. package/src/components/MlFeatureEditor/lib/features_at.js +0 -52
  271. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +0 -28
  272. package/src/components/MlFeatureEditor/lib/is_click.js +0 -22
  273. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +0 -10
  274. package/src/components/MlFeatureEditor/lib/is_tap.js +0 -19
  275. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +0 -18
  276. package/src/components/MlFeatureEditor/lib/mode_handler.js +0 -120
  277. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +0 -23
  278. package/src/components/MlFeatureEditor/lib/move_features.js +0 -47
  279. package/src/components/MlFeatureEditor/lib/sort_features.js +0 -45
  280. package/src/components/MlFeatureEditor/lib/string_set.js +0 -59
  281. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +0 -8
  282. package/src/components/MlFeatureEditor/lib/theme.js +0 -236
  283. package/src/components/MlFeatureEditor/lib/to_dense_array.js +0 -15
  284. package/src/components/MlFeatureEditor/lib/utils.js +0 -51
  285. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.doc.de.md +0 -1
  286. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.doc.en.md +0 -1
  287. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.meta.json +0 -14
  288. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +0 -24
  289. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +0 -15
  290. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +0 -85
  291. package/src/components/MlFollowGps/MlFollowGps.doc.de.md +0 -1
  292. package/src/components/MlFollowGps/MlFollowGps.doc.en.md +0 -1
  293. package/src/components/MlFollowGps/MlFollowGps.meta.json +0 -14
  294. package/src/components/MlFollowGps/MlFollowGps.stories.js +0 -40
  295. package/src/components/MlFollowGps/MlFollowGps.test.js +0 -63
  296. package/src/components/MlFollowGps/MlFollowGps.tsx +0 -241
  297. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.doc.de.md +0 -1
  298. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.doc.en.md +0 -1
  299. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.meta.json +0 -14
  300. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.tsx +0 -191
  301. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +0 -20
  302. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +0 -128
  303. package/src/components/MlGeoJsonLayer/assets/earthquake.json +0 -109937
  304. package/src/components/MlGeoJsonLayer/assets/sample_1.json +0 -140
  305. package/src/components/MlGeoJsonLayer/assets/sample_2.json +0 -142
  306. package/src/components/MlGeoJsonLayer/assets/sample_polygon_1.json +0 -33
  307. package/src/components/MlGeoJsonLayer/assets/wg_locations.json +0 -65
  308. package/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js +0 -189
  309. package/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js +0 -188
  310. package/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx +0 -9
  311. package/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx +0 -10
  312. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +0 -31
  313. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +0 -37
  314. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +0 -3
  315. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +0 -14
  316. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.tsx +0 -19
  317. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +0 -128
  318. package/src/components/MlGpxViewer/MlGpxViewer.doc.de.md +0 -1
  319. package/src/components/MlGpxViewer/MlGpxViewer.doc.en.md +0 -1
  320. package/src/components/MlGpxViewer/MlGpxViewer.meta.json +0 -14
  321. package/src/components/MlGpxViewer/MlGpxViewer.stories.tsx +0 -100
  322. package/src/components/MlGpxViewer/MlGpxViewer.test.js +0 -53
  323. package/src/components/MlGpxViewer/MlGpxViewer.tsx +0 -103
  324. package/src/components/MlGpxViewer/util/GeoJsonContext.ts +0 -13
  325. package/src/components/MlGpxViewer/util/GeoJsonProvider.tsx +0 -25
  326. package/src/components/MlGpxViewer/util/MetadataDrawer.tsx +0 -38
  327. package/src/components/MlGpxViewer/util/MlGpxDemoLoader.tsx +0 -130
  328. package/src/components/MlGpxViewer/util/MlGpxViewerInstructions.tsx +0 -71
  329. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.doc.de.md +0 -3
  330. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.meta_.json +0 -14
  331. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.tsx +0 -41
  332. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +0 -38
  333. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +0 -100
  334. package/src/components/MlLayer/MlLayer.doc.de.md +0 -3
  335. package/src/components/MlLayer/MlLayer.meta_.json +0 -14
  336. package/src/components/MlLayer/MlLayer.test.js +0 -117
  337. package/src/components/MlLayer/MlLayer.tsx +0 -54
  338. package/src/components/MlLayerMagnify/MlLayerMagnify.doc.de.md +0 -1
  339. package/src/components/MlLayerMagnify/MlLayerMagnify.doc.en.md +0 -1
  340. package/src/components/MlLayerMagnify/MlLayerMagnify.meta.json +0 -14
  341. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.tsx +0 -44
  342. package/src/components/MlLayerMagnify/MlLayerMagnify.test.tsx +0 -83
  343. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +0 -220
  344. package/src/components/MlLayerMagnify/style.css +0 -48
  345. package/src/components/MlLayerSwipe/MlLayerSwipe.doc.de.md +0 -1
  346. package/src/components/MlLayerSwipe/MlLayerSwipe.doc.en.md +0 -1
  347. package/src/components/MlLayerSwipe/MlLayerSwipe.meta.json +0 -14
  348. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.tsx +0 -36
  349. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +0 -86
  350. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +0 -145
  351. package/src/components/MlLayerSwipe/style.css +0 -48
  352. package/src/components/MlLayerSwitcher/MlLayerSwitcher.css +0 -17
  353. package/src/components/MlLayerSwitcher/MlLayerSwitcher.doc.de.md +0 -3
  354. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +0 -217
  355. package/src/components/MlLayerSwitcher/MlLayerSwitcher.meta_.json +0 -14
  356. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +0 -103
  357. package/src/components/MlLayerSwitcher/assets/sample_1.json +0 -26
  358. package/src/components/MlLayerSwitcher/assets/sample_2.json +0 -22
  359. package/src/components/MlLayerSwitcher/components/LayerBox.js +0 -77
  360. package/src/components/MlMarker/MlMarker.doc.de.md +0 -3
  361. package/src/components/MlMarker/MlMarker.meta_.json +0 -14
  362. package/src/components/MlMarker/MlMarker.stories.js +0 -22
  363. package/src/components/MlMarker/MlMarker.tsx +0 -140
  364. package/src/components/MlMeasureTool/MlMeasureTool.doc.de.md +0 -3
  365. package/src/components/MlMeasureTool/MlMeasureTool.meta.json +0 -14
  366. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +0 -96
  367. package/src/components/MlMeasureTool/MlMeasureTool.tsx +0 -60
  368. package/src/components/MlNavigationCompass/MlNavigationCompass.doc.de.md +0 -1
  369. package/src/components/MlNavigationCompass/MlNavigationCompass.doc.en.md +0 -1
  370. package/src/components/MlNavigationCompass/MlNavigationCompass.meta.json +0 -14
  371. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +0 -63
  372. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +0 -68
  373. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +0 -226
  374. package/src/components/MlNavigationCompass/assets/needle.svg +0 -17
  375. package/src/components/MlNavigationCompass/assets/needle__.svg +0 -19
  376. package/src/components/MlNavigationCompass/assets/rotate_left.svg +0 -13
  377. package/src/components/MlNavigationCompass/assets/rotate_right.svg +0 -15
  378. package/src/components/MlNavigationTools/MlNavigationTools.doc.de.md +0 -1
  379. package/src/components/MlNavigationTools/MlNavigationTools.doc.en.md +0 -1
  380. package/src/components/MlNavigationTools/MlNavigationTools.meta.json +0 -14
  381. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +0 -64
  382. package/src/components/MlNavigationTools/MlNavigationTools.tsx +0 -176
  383. package/src/components/MlOsmLayer/MlOsmLayer.js +0 -71
  384. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +0 -49
  385. package/src/components/MlOsmLayer/MlOsmLayer.test.js +0 -19
  386. package/src/components/MlScaleReference/MlScaleReference.doc.de.md +0 -1
  387. package/src/components/MlScaleReference/MlScaleReference.doc.en.md +0 -1
  388. package/src/components/MlScaleReference/MlScaleReference.meta.json +0 -14
  389. package/src/components/MlScaleReference/MlScaleReference.stories.js +0 -51
  390. package/src/components/MlScaleReference/MlScaleReference.tsx +0 -109
  391. package/src/components/MlShareMapState/MlShareMapState.doc.de.md +0 -3
  392. package/src/components/MlShareMapState/MlShareMapState.meta_.json +0 -14
  393. package/src/components/MlShareMapState/MlShareMapState.stories.tsx +0 -100
  394. package/src/components/MlShareMapState/MlShareMapState.tsx +0 -269
  395. package/src/components/MlSketchTool/LayerList/ColorPicker.tsx +0 -43
  396. package/src/components/MlSketchTool/LayerList/LayerList.tsx +0 -12
  397. package/src/components/MlSketchTool/LayerList/LayerListItem.tsx +0 -109
  398. package/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx +0 -126
  399. package/src/components/MlSketchTool/MlSketchTool.doc.de.md +0 -3
  400. package/src/components/MlSketchTool/MlSketchTool.meta.json +0 -14
  401. package/src/components/MlSketchTool/MlSketchTool.stories.tsx +0 -26
  402. package/src/components/MlSketchTool/MlSketchTool.tsx +0 -271
  403. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.doc.de.md +0 -1
  404. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.doc.en.md +0 -1
  405. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.meta.json +0 -14
  406. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.tsx +0 -121
  407. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +0 -48
  408. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx +0 -143
  409. package/src/components/MlSpatialElevationProfile/util/getElevationData.tsx +0 -103
  410. package/src/components/MlThreeJsLayer/MlThreeJsLayer.doc.de.md +0 -1
  411. package/src/components/MlThreeJsLayer/MlThreeJsLayer.doc.en.md +0 -1
  412. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +0 -207
  413. package/src/components/MlThreeJsLayer/MlThreeJsLayer.meta.json +0 -14
  414. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.tsx +0 -37
  415. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +0 -33
  416. package/src/components/MlThreeJsLayer/MlThreejsLayer.tsx +0 -228
  417. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +0 -3331
  418. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.doc.de.md +0 -3
  419. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.meta.json +0 -14
  420. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +0 -52
  421. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +0 -20
  422. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +0 -107
  423. package/src/components/MlTransitionGeoJsonLayer/assets/sample_1.json +0 -26
  424. package/src/components/MlTransitionGeoJsonLayer/assets/sample_2.json +0 -22
  425. package/src/components/MlTransitionGeoJsonLayer/assets/sample_polygon_1.json +0 -33
  426. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +0 -221
  427. package/src/components/MlUseMapDebugger/MlUseMapDebugger.doc.de.md +0 -3
  428. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +0 -75
  429. package/src/components/MlUseMapDebugger/MlUseMapDebugger.meta_.json +0 -14
  430. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +0 -30
  431. package/src/components/MlVectorTileLayer/MlVectorTileLayer.doc.de.md +0 -1
  432. package/src/components/MlVectorTileLayer/MlVectorTileLayer.doc.en.md +0 -1
  433. package/src/components/MlVectorTileLayer/MlVectorTileLayer.meta.json +0 -14
  434. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +0 -52
  435. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +0 -40
  436. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +0 -144
  437. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.doc.de.md +0 -3
  438. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +0 -64
  439. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.meta_.json +0 -14
  440. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.tsx +0 -22
  441. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +0 -49
  442. package/src/components/MlWmsLayer/MlWmsLayer.test.js +0 -19
  443. package/src/components/MlWmsLayer/MlWmsLayer.tsx +0 -218
  444. package/src/components/MlWmsLoader/MlWmsLoader.doc.de.md +0 -1
  445. package/src/components/MlWmsLoader/MlWmsLoader.doc.en.md +0 -1
  446. package/src/components/MlWmsLoader/MlWmsLoader.meta.json +0 -14
  447. package/src/components/MlWmsLoader/MlWmsLoader.stories.tsx +0 -81
  448. package/src/components/MlWmsLoader/MlWmsLoader.tsx +0 -339
  449. package/src/components/MlWmsLoader/utils/MlWmsLoaderInstructions.tsx +0 -50
  450. package/src/components/MlWmsLoader/utils/WMSLinks.tsx +0 -128
  451. package/src/contexts/MapComponentsProvider.test.js +0 -260
  452. package/src/contexts/MapContext.tsx +0 -106
  453. package/src/contexts/SimpleDataContext.js +0 -6
  454. package/src/contexts/SimpleDataProvider.js +0 -64
  455. package/src/contexts/SimpleDataProvider.test.js +0 -68
  456. package/src/custom.d.ts +0 -4
  457. package/src/decorators/EmptyMapDecorator.js +0 -38
  458. package/src/decorators/MapContextDecorator.js +0 -39
  459. package/src/decorators/MapContextDecoratorHooks.js +0 -39
  460. package/src/decorators/MultiMapContextDecorator.js +0 -80
  461. package/src/decorators/NoNavToolsDecorator.js +0 -33
  462. package/src/decorators/ThemeDecorator.js +0 -24
  463. package/src/decorators/style.css +0 -34
  464. package/src/hooks/assets/pointWG.json +0 -13
  465. package/src/hooks/useCameraFollowPath/useCameraFollowPath.doc.de.md +0 -4
  466. package/src/hooks/useCameraFollowPath/useCameraFollowPath.doc.en.md +0 -1
  467. package/src/hooks/useCameraFollowPath/useCameraFollowPath.meta.json +0 -14
  468. package/src/hooks/useCameraFollowPath/useCameraFollowPath.stories.tsx +0 -192
  469. package/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx +0 -192
  470. package/src/hooks/useExportMap/index.ts +0 -30
  471. package/src/hooks/useExportMap/lib.ts +0 -158
  472. package/src/hooks/useGpx/lib/gpxConverter.js +0 -521
  473. package/src/hooks/useGpx/useGpx.doc.de.md +0 -3
  474. package/src/hooks/useGpx/useGpx.meta_.json +0 -15
  475. package/src/hooks/useGpx/useGpx.stories.js +0 -20
  476. package/src/hooks/useGpx/useGpx.tsx +0 -70
  477. package/src/hooks/useLayer.test.js +0 -205
  478. package/src/hooks/useLayer.ts +0 -234
  479. package/src/hooks/useLayerEvent.js +0 -49
  480. package/src/hooks/useLayerFilter/useLayerFilter.doc.de.md +0 -3
  481. package/src/hooks/useLayerFilter/useLayerFilter.meta_.json +0 -14
  482. package/src/hooks/useLayerFilter/useLayerFilter.stories.tsx +0 -40
  483. package/src/hooks/useLayerFilter/useLayerFilter.ts +0 -33
  484. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.doc.de.md +0 -3
  485. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.meta_.json +0 -15
  486. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.stories.js +0 -20
  487. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx +0 -83
  488. package/src/hooks/useMap.test.tsx +0 -48
  489. package/src/hooks/useMap.ts +0 -91
  490. package/src/hooks/useMapState.stories.js +0 -120
  491. package/src/hooks/useMapState.ts +0 -182
  492. package/src/hooks/useSource.ts +0 -84
  493. package/src/hooks/useSources.stories.js +0 -232
  494. package/src/hooks/useWms.ts +0 -104
  495. package/src/index.ts +0 -78
  496. package/src/setupTests.js +0 -113
  497. package/src/stories/components/Readme.js +0 -7
  498. package/src/ui_components/Dropzone.tsx +0 -104
  499. package/src/ui_components/ImageLoader.tsx +0 -83
  500. package/src/ui_components/LayerList/LayerList.stories.tsx +0 -136
  501. package/src/ui_components/LayerList/LayerList.tsx +0 -12
  502. package/src/ui_components/LayerList/LayerListFolder.tsx +0 -82
  503. package/src/ui_components/LayerList/LayerListItem.tsx +0 -180
  504. package/src/ui_components/LayerList/assets/sample_1.json +0 -26
  505. package/src/ui_components/LayerList/assets/sample_2.json +0 -22
  506. package/src/ui_components/LayerList/assets/sample_polygon_1.json +0 -33
  507. package/src/ui_components/LayerList/assets/style.json +0 -2599
  508. package/src/ui_components/LayerList/util/LayerListItemVectorLayer.tsx +0 -92
  509. package/src/ui_components/LayerList/util/LayerPropertyForm.tsx +0 -125
  510. package/src/ui_components/LayerList/util/input/ColorPicker.tsx +0 -44
  511. package/src/ui_components/LoadingOverlay.css +0 -9
  512. package/src/ui_components/LoadingOverlayContext.tsx +0 -79
  513. package/src/ui_components/MapcomponentsTheme.tsx +0 -133
  514. package/src/ui_components/Sidebar.tsx +0 -87
  515. package/src/ui_components/Tooltip.tsx +0 -17
  516. package/src/ui_components/TopToolbar.tsx +0 -24
  517. package/src/ui_components/UploadButton.tsx +0 -57
  518. package/src/util/BubbleForInstructions.js +0 -48
  519. package/src/util/Instructions.tsx +0 -60
  520. package/src/util/index.js +0 -4
  521. package/src/util/layerRemovalTest.js +0 -121
  522. package/src/util/sourceRemovalTest.js +0 -113
  523. package/tsconfig.json +0 -34
@@ -1,20 +0,0 @@
1
- import React from "react";
2
-
3
- import useLayerHoverPopup from "./useLayerHoverPopup";
4
-
5
- import mapContextDecorator from "../../decorators/MapContextDecorator";
6
-
7
- const storyoptions = {
8
- title: "Hooks/useLayerHoverPopup",
9
- component: useLayerHoverPopup,
10
- argTypes: {
11
- },
12
- decorators: mapContextDecorator,
13
- };
14
- export default storyoptions;
15
-
16
- const Template = () => <useLayerHoverPopup />;
17
-
18
- export const ExampleConfig = Template.bind({});
19
- ExampleConfig.parameters = {};
20
- ExampleConfig.args = {};
@@ -1,83 +0,0 @@
1
- import React, { useRef, useEffect } from 'react';
2
- import useMap from '../../hooks/useMap';
3
- import { GeoJSONFeature } from 'maplibre-gl';
4
- import {
5
- LngLatLike,
6
- Popup,
7
- MapEventType,
8
- } from 'maplibre-gl';
9
-
10
- interface useLayerHoverPopupProps {
11
- /**
12
- * Id of the target MapLibre instance in mapContext
13
- */
14
- mapId?: string;
15
- /**
16
- * Id of an existing layer in the mapLibre instance this event will be registered to
17
- */
18
- layerId?: string;
19
- getPopupContent: (feature: GeoJSONFeature) => string;
20
- }
21
-
22
- /**
23
- * useLayerHoverPopup hook registers a mouseenter event to display feature properties in a MapLibre popup if a feature on the configured layer is hovered
24
- *
25
- */
26
- const useLayerHoverPopup = (props: useLayerHoverPopupProps) => {
27
- const mapHook = useMap({
28
- mapId: props.mapId,
29
- waitForLayer: props.layerId,
30
- });
31
- const popup = useRef(
32
- new Popup({
33
- closeButton: false,
34
- closeOnClick: true,
35
- })
36
- );
37
-
38
- useEffect(() => {
39
- if (!mapHook.map || !props.layerId) return;
40
- mapHook.map.on(
41
- 'mouseenter',
42
- props.layerId,
43
- (
44
- e: MapEventType & {
45
- features?: ({[key:string]:string} & { geometry:{coordinates:[number,number]}})[] | undefined;
46
- lngLat: { lng: number; lat: number };
47
- }
48
- ) => {
49
- if (!mapHook.map) return;
50
- // Change the cursor style as a UI indicator.
51
-
52
- const coordinates = e?.features?.[0].geometry.coordinates.slice();
53
- //const description = e.features[0].properties.desc;
54
- let content = '';
55
- if (e?.features?.[0] && typeof props.getPopupContent === 'function') {
56
- content = props.getPopupContent(e.features[0] as unknown as GeoJSONFeature);
57
- }
58
-
59
- if (coordinates?.[0]) {
60
- // Ensure that if the map is zoomed out such that multiple
61
- // copies of the feature are visible, the popup appears
62
- // over the copy being pointed to.
63
- while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {
64
- coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;
65
- }
66
-
67
- // Populate the popup and set its coordinates
68
-
69
- // based on the feature found.
70
- popup.current.setLngLat(coordinates as LngLatLike).setHTML(content).addTo(mapHook.map.map);
71
- }
72
- },
73
- mapHook.componentId
74
- );
75
- }, [mapHook.map]);
76
-
77
- return <></>;
78
- };
79
-
80
- useLayerHoverPopup.defaultProps = {
81
- mapId: undefined,
82
- };
83
- export default useLayerHoverPopup;
@@ -1,48 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { mount } from 'enzyme';
3
- import { MapComponentsProvider } from '../contexts/MapContext';
4
- import MapLibreMap from '../components/MapLibreMap/MapLibreMap';
5
-
6
- import useMap from './useMap';
7
-
8
- const UseMapTestComponent = () => {
9
- const mapHook = useMap();
10
-
11
- return <>{mapHook.map && 'Map is ready'}</>;
12
- };
13
-
14
- const TestComponent = () => {
15
- const [includeComponent, setIncludeComponent] = useState(true);
16
-
17
- return (
18
- <>
19
- <button
20
- className="toggle_includeComponent"
21
- onClick={() => {
22
- setIncludeComponent(!includeComponent);
23
- }}
24
- >
25
- toggle
26
- </button>
27
- <div className="useMapContainer">
28
- {includeComponent && <UseMapTestComponent />}
29
- </div>
30
- <MapLibreMap />
31
- </>
32
- );
33
- };
34
-
35
- describe('useMap hook', () => {
36
- it("should retrieve a MapLibre instance even if no attributes are passed", async () => {
37
- const wrapper = mount(
38
- <MapComponentsProvider>
39
- <TestComponent />
40
- </MapComponentsProvider>
41
- );
42
-
43
-
44
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
45
- // @ts-ignore
46
- expect(wrapper.find('.useMapContainer').text()).toEqual("Map is ready");
47
- });
48
- });
@@ -1,91 +0,0 @@
1
- import { useContext, useState, useEffect, useRef } from "react";
2
- import { v4 as uuidv4 } from "uuid";
3
- import MapContext, { MapContextType } from "../contexts/MapContext";
4
- import useMapState from "./useMapState";
5
- import MapLibreGlWrapper, { LayerState } from "../components/MapLibreMap/lib/MapLibreGlWrapper";
6
-
7
- type useMapType = {
8
- map: MapLibreGlWrapper | undefined;
9
- mapIsReady: boolean;
10
- componentId: string;
11
- layers: (LayerState | undefined)[];
12
- cleanup: () => void;
13
- };
14
-
15
- function useMap(props?: { mapId?: string; waitForLayer?: string }): useMapType {
16
- // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
17
- const mapContext: MapContextType = useContext(MapContext);
18
- const [map, setMap] = useState<MapLibreGlWrapper>();
19
-
20
- const mapState = useMapState({
21
- mapId: props?.mapId,
22
- watch: {
23
- viewport: false,
24
- layers: props?.waitForLayer ? true : false,
25
- sources: false,
26
- },
27
- filter: {
28
- includeBaseLayers: true,
29
- },
30
- });
31
-
32
- const initializedRef = useRef(false);
33
-
34
- const mapRef = useRef<MapLibreGlWrapper>();
35
-
36
- const componentId = useRef(uuidv4());
37
-
38
- const [mapIsReady, setMapIsReady] = useState(false);
39
-
40
- const cleanup = () => {
41
- if (mapRef.current) {
42
- mapRef.current.cleanup(componentId.current);
43
- }
44
- initializedRef.current = false;
45
- };
46
-
47
- useEffect(() => {
48
- return () => {
49
- cleanup();
50
- setMapIsReady(false);
51
- mapRef.current = undefined;
52
- };
53
- }, []);
54
-
55
- useEffect(() => {
56
- if (!mapContext.mapExists(props?.mapId) || initializedRef.current) return;
57
-
58
- // check if waitForLayer (string, layer id of the layer this hook is supposed to wait for)
59
- // exists as layer in the MapLibre instance
60
- if (props?.waitForLayer) {
61
- let layerFound = false;
62
-
63
- mapState?.layers?.forEach((layer: any) => {
64
- if (layer.id === props?.waitForLayer) {
65
- layerFound = true;
66
- }
67
- });
68
- if (!layerFound) {
69
- return;
70
- }
71
- }
72
- // the MapLibre-gl instance (mapContext.getMap(props.mapId)) is accessible here
73
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
74
- initializedRef.current = true;
75
- mapRef.current = mapContext.getMap(props?.mapId);
76
- setMap(mapRef.current);
77
- setMapIsReady(true);
78
- }, [mapContext.mapIds, mapState.layers, mapContext, props]);
79
-
80
- return {
81
- map: map,
82
- mapIsReady,
83
- componentId: componentId.current,
84
- layers: mapState.layers,
85
- cleanup,
86
- };
87
- }
88
-
89
- export default useMap;
90
-
91
- export type { useMapType };
@@ -1,120 +0,0 @@
1
- import React, { useEffect } from "react";
2
-
3
- import useMapState from "./useMapState";
4
-
5
- import mapContextDecoratorHooks from "../decorators/MapContextDecoratorHooks";
6
-
7
- const storyoptions = {
8
- title: "Hooks/useMapState",
9
- component: useMapState,
10
- argTypes: {},
11
- decorators: mapContextDecoratorHooks,
12
- };
13
- export default storyoptions;
14
-
15
- const Template = (props) => {
16
- const mapState = useMapState({ ...props });
17
-
18
- useEffect(() => {
19
-
20
-
21
- }, [mapState.layers])
22
-
23
- return (
24
- <>
25
- <div
26
- style={{
27
- position: "fixed",
28
- zIndex: 10000,
29
- display: "flex",
30
- flexWrap: "wrap",
31
- top: 0,
32
- left: 0,
33
- right: 0,
34
- bottom: 0,
35
- maxHeight:'100VH',
36
- backgroundColor: "rgba(80,80,80,.8)",
37
- padding: "50px",
38
- fontSize: "20px",
39
- color: "#51ff09",
40
- overflow:'hidden',
41
- pointerEvents: "none",
42
- }}
43
- >
44
-
45
- <pre>{JSON.stringify(mapState, null, " ")}</pre>
46
-
47
-
48
- </div>
49
- </>
50
- );
51
- };
52
-
53
- export const ViewportOnly = Template.bind({});
54
- ViewportOnly.parameters = {};
55
- ViewportOnly.args = {
56
- mapId: "map_1",
57
- watch: {
58
- viewport: true,
59
- layers: false,
60
- sources: false,
61
- },
62
- };
63
-
64
- export const IncludeBaseLayers = Template.bind({});
65
- IncludeBaseLayers.parameters = {};
66
- IncludeBaseLayers.args = {
67
- mapId: "map_1",
68
- watch: {
69
- viewport: false,
70
- layers: true,
71
- sources: false,
72
- },
73
- filter: {
74
- includeBaseLayers: true,
75
- },
76
- };
77
-
78
- export const MatchLayerIdString = Template.bind({});
79
- MatchLayerIdString.parameters = {};
80
- MatchLayerIdString.args = {
81
- mapId: "map_1",
82
- watch: {
83
- viewport: false,
84
- layers: true,
85
- sources: false,
86
- },
87
- filter: {
88
- includeBaseLayers: true,
89
- matchLayerIds: "water",
90
- },
91
- };
92
-
93
- export const MatchLayerIdRegexp = Template.bind({});
94
- MatchLayerIdRegexp.parameters = {};
95
- MatchLayerIdRegexp.args = {
96
- mapId: "map_1",
97
- watch: {
98
- viewport: false,
99
- layers: true,
100
- sources: false,
101
- },
102
- filter: {
103
- includeBaseLayers: true,
104
- matchLayerIds: /water/,
105
- },
106
- };
107
-
108
- export const NonBaseLayersOnly = Template.bind({});
109
- NonBaseLayersOnly.parameters = {};
110
- NonBaseLayersOnly.args = {
111
- mapId: "map_1",
112
- watch: {
113
- viewport: false,
114
- layers: true,
115
- sources: false,
116
- },
117
- filter: {
118
- includeBaseLayers: false,
119
- },
120
- };
@@ -1,182 +0,0 @@
1
- import { useContext, useCallback, useState, useEffect, useRef } from "react";
2
- import PropTypes from "prop-types";
3
- import { v4 as uuidv4 } from "uuid";
4
- import MapContext, { MapContextType } from "../contexts/MapContext";
5
- import MapLibreGlWrapper, {
6
- LayerState,
7
- ViewportState,
8
- } from "../components/MapLibreMap/lib/MapLibreGlWrapper";
9
-
10
- type useMapStateType = {
11
- layers: (LayerState | undefined)[];
12
- viewport: ViewportState | undefined;
13
- };
14
-
15
- /**
16
- * React hook that allows subscribing to map state changes
17
- *
18
- * @component
19
- */
20
- function useMapState(props: {
21
- mapId?: string;
22
- watch?: {
23
- layers?: boolean;
24
- sources?: boolean;
25
- viewport?: boolean;
26
- };
27
- filter?: {
28
- includeBaseLayers?: boolean;
29
- matchLayerIds?: RegExp | string;
30
- matchSourceIds?: RegExp | string;
31
- };
32
- }): useMapStateType {
33
- // Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
34
- const mapContext = useContext<MapContextType>(MapContext);
35
-
36
- const initializedRef = useRef(false);
37
- const mapRef = useRef<MapLibreGlWrapper>();
38
-
39
- const [viewport, setViewport] = useState<ViewportState | undefined>();
40
- const viewportRef = useRef(undefined);
41
-
42
- const [layers, setLayers] = useState<(LayerState | undefined)[]>([]);
43
- const layersRef = useRef<string>();
44
- //const mapRef = useRef(props.map);
45
- const componentId = useRef(uuidv4());
46
-
47
- /**
48
- * returns the element if it matches the defined filter criteria
49
- * to be used as filter function on the layers array
50
- *
51
- * @param {object} layer
52
- */
53
- const layerIdFilter = useCallback(
54
- (layer:LayerState) => {
55
- if (!props?.filter?.includeBaseLayers && layer?.baseLayer) {
56
- return false;
57
- }
58
-
59
- if (typeof props.filter?.matchLayerIds !== "undefined") {
60
- if (props.filter.matchLayerIds instanceof RegExp) {
61
- return props.filter.matchLayerIds.test(layer.id);
62
- } else {
63
- return layer.id.includes(props.filter.matchLayerIds);
64
- }
65
- }
66
-
67
- return true;
68
- },
69
- [props.filter]
70
- );
71
-
72
- const refreshLayerState = useCallback(() => {
73
- if (!mapRef.current) return;
74
-
75
- const _layerState = mapRef.current.wrapper.layerState.filter(layerIdFilter);
76
- const _layerStateString = JSON.stringify(_layerState);
77
- if (layersRef.current !== _layerStateString) {
78
- layersRef.current = _layerStateString;
79
- setLayers(_layerState);
80
- }
81
- }, [layerIdFilter]);
82
-
83
- useEffect(() => {
84
- const _componentId = componentId.current;
85
-
86
- return () => {
87
- // cleanup all event listeners
88
- if (mapRef.current) {
89
- mapRef.current.cleanup(_componentId);
90
- mapRef.current = undefined;
91
- }
92
- initializedRef.current = false;
93
- };
94
- }, []);
95
-
96
- useEffect(() => {
97
- if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
98
- // the MapLibre-gl instance (mapContext.getMap(props.mapId)) is accessible here
99
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
100
- initializedRef.current = true;
101
- mapRef.current = mapContext.getMap(props.mapId);
102
-
103
- if (!mapRef.current) {
104
- initializedRef.current = false;
105
- return;
106
- }
107
-
108
- if (props?.watch?.viewport) {
109
- setViewport(mapRef.current.wrapper.viewportState);
110
-
111
- // register viewportchange event handler
112
- mapRef.current.wrapper.on(
113
- "viewportchange",
114
- () => {
115
- if (viewportRef.current !== mapRef.current?.wrapper.viewportStateString) {
116
- setViewport(mapRef.current?.wrapper.viewportState);
117
- }
118
- },
119
- componentId.current
120
- );
121
- }
122
-
123
- // register layerchange event handler
124
- if (props?.watch?.layers) {
125
- refreshLayerState();
126
-
127
- mapRef.current.wrapper.on(
128
- "layerchange",
129
- refreshLayerState,
130
- {
131
- includeBaseLayers: props?.filter?.includeBaseLayers,
132
- matchLayerIds: props?.filter?.matchLayerIds,
133
- },
134
- componentId.current
135
- );
136
- }
137
- }, [mapContext.mapIds, mapContext, props.mapId, refreshLayerState, props]);
138
-
139
- return {
140
- layers,
141
- viewport,
142
- };
143
- }
144
-
145
- useMapState.defaultProps = {
146
- mapId: undefined,
147
- watch: {
148
- layers: true,
149
- sources: false,
150
- viewport: false,
151
- },
152
- filter: {
153
- includeBaseLayers: false,
154
- },
155
- };
156
-
157
- useMapState.propTypes = {
158
- /**
159
- * Id of the target MapLibre instance in mapContext
160
- */
161
- mapId: PropTypes.string,
162
- /**
163
- * Defines map Resources to watch
164
- */
165
- watch: PropTypes.shape({
166
- layers: PropTypes.bool,
167
- sources: PropTypes.bool,
168
- viewport: PropTypes.bool,
169
- }),
170
- /**
171
- * Filter string or RegExp to more explicitly define the elements watched and increase performance
172
- * strings will be matched using layerId.includes(matchString)
173
- * RegExps will be matched using matchRegExp.test(layerId)
174
- */
175
- filter: PropTypes.shape({
176
- includeBaseLayers: PropTypes.bool,
177
- matchLayerIds: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(RegExp)]),
178
- matchSourceIds: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(RegExp)]),
179
- }),
180
- };
181
-
182
- export default useMapState;
@@ -1,84 +0,0 @@
1
- import { useEffect, useRef, useCallback, useState } from "react";
2
- import useMap, { useMapType } from "./useMap";
3
- import MapLibreGlWrapper from "../components/MapLibreMap/lib/MapLibreGlWrapper";
4
- import { Source, SourceSpecification } from "maplibre-gl";
5
-
6
- type useSourceType = {
7
- map: MapLibreGlWrapper | undefined;
8
- source: Source | undefined;
9
- componentId: string;
10
- mapHook: useMapType;
11
- };
12
- interface useSourceProps {
13
- mapId?: string;
14
- idPrefix?: string;
15
- source: SourceSpecification;
16
- sourceId: string;
17
- }
18
-
19
- function useSource(props: useSourceProps): useSourceType {
20
- const mapHook = useMap({
21
- mapId: props.mapId,
22
- });
23
-
24
- const initializedRef = useRef<boolean>(false);
25
- const [source, setSource] = useState<Source>();
26
- const sourceId = useRef(
27
- props.sourceId || (props.idPrefix ? props.idPrefix : "Source-") + mapHook.componentId
28
- );
29
-
30
- const createSource = useCallback(() => {
31
- if (!mapHook.map) return;
32
- initializedRef.current = true;
33
-
34
- if (mapHook.map.map.getSource(sourceId.current)) {
35
- mapHook.cleanup();
36
- }
37
-
38
- mapHook.map?.addSource(sourceId.current, {
39
- ...props.source,
40
- }, mapHook.componentId);
41
-
42
- setSource(mapHook.map.map.getSource(sourceId.current));
43
- }, [props, mapHook.map]);
44
-
45
- useEffect(() => {
46
- if (!mapHook.map || initializedRef.current) return;
47
- createSource();
48
- }, [mapHook.map, props, createSource]);
49
-
50
- useEffect(() => {
51
- if (!initializedRef.current || !mapHook.map?.map?.getSource(props.sourceId)) return;
52
-
53
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
54
- //@ts-ignore setData only exists on GeoJsonSource
55
- mapHook.map.map.getSource(props.sourceId)?.setData?.(props.source.data);
56
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
57
- //@ts-ignore data only exists on GeoJsonSource
58
- }, [props.source?.data]);
59
-
60
- //cleanup
61
- useEffect(() => {
62
- return () => {
63
- initializedRef.current = false;
64
- if (mapHook.map && mapHook.map?.map?.style?._layers) {
65
- for (const [layerId, layer] of Object.entries(mapHook.map.map.style._layers)) {
66
- if (layer.source === sourceId.current) {
67
- mapHook.map.map.removeLayer(layerId);
68
- }
69
- }
70
-
71
- mapHook.map.map.removeSource(sourceId.current);
72
- }
73
- };
74
- }, [mapHook.map]);
75
-
76
- return {
77
- map: mapHook.map,
78
- source: source,
79
- componentId: mapHook.componentId,
80
- mapHook: mapHook,
81
- };
82
- }
83
-
84
- export default useSource;