@mapcomponents/react-maplibre 0.1.32 → 0.1.35

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 (319) hide show
  1. package/.babelrc +3 -0
  2. package/.github/workflows/storybook.yml +1 -1
  3. package/.storybook/.babelrc +26 -0
  4. package/.storybook/main.js +15 -1
  5. package/.storybook/mapcomponents_logo.png +0 -0
  6. package/CHANGELOG.md +10 -0
  7. package/config/env.js +106 -0
  8. package/config/getHttpsConfig.js +66 -0
  9. package/config/jest/babelTransform.js +29 -0
  10. package/config/jest/cssTransform.js +14 -0
  11. package/config/jest/fileTransform.js +40 -0
  12. package/config/modules.js +134 -0
  13. package/config/paths.js +75 -0
  14. package/config/pnpTs.js +35 -0
  15. package/config/webpack.config.js +757 -0
  16. package/config/webpackDevServer.config.js +130 -0
  17. package/coverage/clover.xml +822 -900
  18. package/coverage/coverage-final.json +23 -24
  19. package/coverage/lcov-report/index.html +135 -150
  20. package/coverage/lcov-report/src/components/MapLibreMap/{MapLibreMap.js.html → MapLibreMap.tsx.html} +77 -68
  21. package/coverage/lcov-report/src/components/MapLibreMap/index.html +6 -6
  22. package/coverage/lcov-report/src/components/MlCreatePdfButton/{MlCreatePdfButton.js.html → MlCreatePdfButton.tsx.html} +40 -43
  23. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +10 -10
  24. package/coverage/lcov-report/src/components/MlFeatureEditor/{MlFeatureEditor.js.html → MlFeatureEditor.tsx.html} +145 -85
  25. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +21 -21
  26. package/coverage/lcov-report/src/components/{MlImageMarkerLayer/MlImageMarkerLayer.js.html → MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html} +141 -111
  27. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +20 -20
  28. package/coverage/lcov-report/src/components/MlFollowGps/{MlFollowGps.js.html → MlFollowGps.tsx.html} +177 -138
  29. package/coverage/lcov-report/src/components/MlFollowGps/index.html +15 -15
  30. package/coverage/lcov-report/src/components/MlGPXViewer/{MlGPXViewer.js.html → MlGPXViewer.tsx.html} +134 -80
  31. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
  32. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +16 -16
  33. package/coverage/lcov-report/src/components/{MlLayer/MlLayer.js.html → MlGeoJsonLayer/MlGeoJsonLayer.tsx.html} +151 -154
  34. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +19 -19
  35. package/coverage/lcov-report/src/components/{MlFillExtrusionLayer/MlFillExtrusionLayer.js.html → MlImageMarkerLayer/MlImageMarkerLayer.tsx.html} +151 -223
  36. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +16 -16
  37. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +229 -0
  38. package/coverage/lcov-report/src/components/MlLayer/index.html +21 -21
  39. package/coverage/lcov-report/src/components/MlLayerMagnify/{MlLayerMagnify.js.html → MlLayerMagnify.tsx.html} +134 -77
  40. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +20 -20
  41. package/coverage/lcov-report/src/components/MlLayerSwipe/{MlLayerSwipe.js.html → MlLayerSwipe.tsx.html} +83 -41
  42. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +2 -2
  43. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +3 -15
  44. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  45. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlMarker/{MlMarker.js.html → MlMarker.tsx.html} +89 -137
  48. package/coverage/lcov-report/src/components/MlMarker/index.html +10 -10
  49. package/coverage/lcov-report/src/components/MlNavigationCompass/{MlNavigationCompass.js.html → MlNavigationCompass.tsx.html} +76 -25
  50. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +17 -17
  51. package/coverage/lcov-report/src/components/MlNavigationTools/{MlNavigationTools.js.html → MlNavigationTools.tsx.html} +67 -52
  52. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +10 -10
  53. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  54. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  55. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  56. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  58. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  59. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +3 -3
  60. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  61. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +5 -5
  62. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  63. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/{MlTransitionGeoJsonLayer.js.html → MlTransitionGeoJsonLayer.tsx.html} +127 -118
  64. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +11 -11
  65. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  66. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  67. package/coverage/lcov-report/src/components/MlVectorTileLayer/{MlVectorTileLayer.js.html → MlVectorTileLayer.tsx.html} +59 -11
  68. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +2 -2
  69. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  70. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  71. package/coverage/lcov-report/src/components/MlWmsLayer/{MlWmsLayer.js.html → MlWmsLayer.tsx.html} +56 -11
  72. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +2 -2
  73. package/coverage/lcov-report/src/components/MlWmsLoader/{MlWmsLoader.js.html → MlWmsLoader.tsx.html} +102 -78
  74. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +8 -8
  75. package/coverage/lcov-report/src/hooks/index.html +44 -29
  76. package/coverage/lcov-report/src/{components/MlGeoJsonLayer/MlGeoJsonLayer.js.html → hooks/useLayer.ts.html} +328 -184
  77. package/coverage/lcov-report/src/hooks/{useMap.js.html → useMap.ts.html} +140 -50
  78. package/coverage/lcov-report/src/hooks/{useMapState.js.html → useMapState.ts.html} +166 -61
  79. package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
  80. package/coverage/lcov-report/src/index.html +15 -15
  81. package/coverage/lcov-report/src/{i18n.js.html → index.ts.html} +50 -32
  82. package/coverage/lcov.info +1540 -1669
  83. package/dist/index.esm.css +195 -0
  84. package/dist/index.esm.js +17304 -4936
  85. package/dist/index.esm.js.map +1 -1
  86. package/docs-build/0.d0c23b79.iframe.bundle.js +2 -0
  87. package/docs-build/0.d0c23b79.iframe.bundle.js.map +1 -0
  88. package/docs-build/0.fd1aa3ea21956d993519.manager.bundle.js +1 -0
  89. package/docs-build/1.34075652.iframe.bundle.js +10 -0
  90. package/docs-build/1.34075652.iframe.bundle.js.map +1 -0
  91. package/docs-build/16.ca488dae.iframe.bundle.js +2 -0
  92. package/docs-build/16.ca488dae.iframe.bundle.js.map +1 -0
  93. package/docs-build/17.e40eac7f.iframe.bundle.js +17 -0
  94. package/docs-build/17.e40eac7f.iframe.bundle.js.map +1 -0
  95. package/docs-build/18.62af0912.iframe.bundle.js +14 -0
  96. package/docs-build/18.62af0912.iframe.bundle.js.map +1 -0
  97. package/docs-build/19.0a217189.iframe.bundle.js +2 -0
  98. package/docs-build/19.0a217189.iframe.bundle.js.map +1 -0
  99. package/docs-build/2.f15ae19a.iframe.bundle.js +2 -0
  100. package/docs-build/2.f15ae19a.iframe.bundle.js.map +1 -0
  101. package/docs-build/20.4c43e27c.iframe.bundle.js +4 -0
  102. package/docs-build/20.4c43e27c.iframe.bundle.js.map +1 -0
  103. package/docs-build/21.19c21085.iframe.bundle.js +22 -0
  104. package/docs-build/21.19c21085.iframe.bundle.js.map +1 -0
  105. package/docs-build/3.5dd9e88b.iframe.bundle.js +2 -0
  106. package/docs-build/3.5dd9e88b.iframe.bundle.js.map +1 -0
  107. package/docs-build/4.f741dafe1833630ec8bf.manager.bundle.js +2 -0
  108. package/docs-build/4.f741dafe1833630ec8bf.manager.bundle.js.LICENSE.txt +8 -0
  109. package/docs-build/5.d4de191e7daeefb036ca.manager.bundle.js +1 -0
  110. package/docs-build/6.2b178c5444648ee5c0fa.manager.bundle.js +2 -0
  111. package/docs-build/6.2b178c5444648ee5c0fa.manager.bundle.js.LICENSE.txt +12 -0
  112. package/docs-build/7.7c16aea8ec7ea6e91994.manager.bundle.js +1 -0
  113. package/docs-build/8.52fa838fdf937b29676a.manager.bundle.js +1 -0
  114. package/docs-build/assets/dop.png +0 -0
  115. package/docs-build/assets/historic.png +0 -0
  116. package/docs-build/assets/marker.png +0 -0
  117. package/docs-build/assets/osm.png +0 -0
  118. package/docs-build/assets/sample.gpx +716 -0
  119. package/docs-build/{.gitkeep → catalogue/.gitkeep} +0 -0
  120. package/docs-build/catalogue/mc_meta.json +1 -0
  121. package/docs-build/favicon.ico +0 -0
  122. package/docs-build/iframe.html +348 -0
  123. package/docs-build/index.html +59 -0
  124. package/docs-build/logo.png +0 -0
  125. package/docs-build/main.8a7ec710ea1c16b5e13f.manager.bundle.js +1 -0
  126. package/docs-build/main~24120820.ba6665a8.iframe.bundle.js +2 -0
  127. package/docs-build/main~24120820.ba6665a8.iframe.bundle.js.map +1 -0
  128. package/docs-build/manifest.json +25 -0
  129. package/docs-build/robots.txt +3 -0
  130. package/docs-build/runtime~main.67aa1de2d72f40a81164.manager.bundle.js +1 -0
  131. package/docs-build/static/media/mapcomponents_logo.98b01a05.png +0 -0
  132. package/docs-build/static/media/wg-marker.bf3eeb2d.png +0 -0
  133. package/docs-build/stories.json +331 -0
  134. package/docs-build/thumbnails/MapLibreMap.png +0 -0
  135. package/docs-build/thumbnails/MlCameraFollowPath.png +0 -0
  136. package/docs-build/thumbnails/MlCreatePdfButton.png +0 -0
  137. package/docs-build/thumbnails/MlDeckGlLayer.png +0 -0
  138. package/docs-build/thumbnails/MlDeckGlTerrainLayer.png +0 -0
  139. package/docs-build/thumbnails/MlDemoDashboard.png +0 -0
  140. package/docs-build/thumbnails/MlFeatureEditor.png +0 -0
  141. package/docs-build/thumbnails/MlFillExtrusionLayer.png +0 -0
  142. package/docs-build/thumbnails/MlFollowGps.png +0 -0
  143. package/docs-build/thumbnails/MlGPXViewer.png +0 -0
  144. package/docs-build/thumbnails/MlGeoJsonLayer.png +0 -0
  145. package/docs-build/thumbnails/MlHillshadeLayer.png +0 -0
  146. package/docs-build/thumbnails/MlIconLayer.png +0 -0
  147. package/docs-build/thumbnails/MlLaermkarte.png +0 -0
  148. package/docs-build/thumbnails/MlLayerMagnify.png +0 -0
  149. package/docs-build/thumbnails/MlLayerSwipe.png +0 -0
  150. package/docs-build/thumbnails/MlMapDrawTools.png +0 -0
  151. package/docs-build/thumbnails/MlMobilerImker.png +0 -0
  152. package/docs-build/thumbnails/MlNavigationCompass.png +0 -0
  153. package/docs-build/thumbnails/MlNavigationTools.png +0 -0
  154. package/docs-build/thumbnails/MlOsmLayer.png +0 -0
  155. package/docs-build/thumbnails/MlScaleReference.png +0 -0
  156. package/docs-build/thumbnails/MlSpatialElevationProfile.png +0 -0
  157. package/docs-build/thumbnails/MlThreeJsLayer.png +0 -0
  158. package/docs-build/thumbnails/MlTransitionGeoJsonLayer.png +0 -0
  159. package/docs-build/thumbnails/MlVectorTileLayer.png +0 -0
  160. package/docs-build/thumbnails/MlWanderApp.png +0 -0
  161. package/docs-build/thumbnails/MlWmsLayer.png +0 -0
  162. package/docs-build/thumbnails/MlWmsLoader.png +0 -0
  163. package/docs-build/vendors~main.351900838c49e9200954.manager.bundle.js +2 -0
  164. package/docs-build/vendors~main.351900838c49e9200954.manager.bundle.js.LICENSE.txt +101 -0
  165. package/docs-build/vendors~main~0ad7406a.a6abfed7.iframe.bundle.js +8 -0
  166. package/docs-build/vendors~main~0ad7406a.a6abfed7.iframe.bundle.js.map +1 -0
  167. package/docs-build/vendors~main~0f485567.1d7a15b7.iframe.bundle.js +2 -0
  168. package/docs-build/vendors~main~0f485567.1d7a15b7.iframe.bundle.js.map +1 -0
  169. package/docs-build/vendors~main~41a6ab2c.525ecc56.iframe.bundle.js +2 -0
  170. package/docs-build/vendors~main~41a6ab2c.525ecc56.iframe.bundle.js.map +1 -0
  171. package/docs-build/vendors~main~52589227.1d1558cd.iframe.bundle.js +8 -0
  172. package/docs-build/vendors~main~52589227.1d1558cd.iframe.bundle.js.map +1 -0
  173. package/docs-build/vendors~main~73914085.227c6747.iframe.bundle.js +293 -0
  174. package/docs-build/vendors~main~73914085.227c6747.iframe.bundle.js.map +1 -0
  175. package/docs-build/vendors~main~9c5b28f6.f02cc741.iframe.bundle.js +7 -0
  176. package/docs-build/vendors~main~9c5b28f6.f02cc741.iframe.bundle.js.map +1 -0
  177. package/docs-build/vendors~main~b5906859.4083ac60.iframe.bundle.js +21 -0
  178. package/docs-build/vendors~main~b5906859.4083ac60.iframe.bundle.js.map +1 -0
  179. package/docs-build/vendors~main~b8f44717.7a612c34.iframe.bundle.js +89 -0
  180. package/docs-build/vendors~main~b8f44717.7a612c34.iframe.bundle.js.map +1 -0
  181. package/docs-build/vendors~main~b9cf3951.45da142d.iframe.bundle.js +68 -0
  182. package/docs-build/vendors~main~b9cf3951.45da142d.iframe.bundle.js.map +1 -0
  183. package/docs-build/vendors~main~d939e436.92c27fbf.iframe.bundle.js +2 -0
  184. package/docs-build/vendors~main~d939e436.92c27fbf.iframe.bundle.js.map +1 -0
  185. package/docs-build/vendors~main~dab50aa4.b0d58038.iframe.bundle.js +107 -0
  186. package/docs-build/vendors~main~dab50aa4.b0d58038.iframe.bundle.js.map +1 -0
  187. package/package.json +133 -117
  188. package/public/favicon.ico +0 -0
  189. package/public/logo.png +0 -0
  190. package/rollup.config.js +26 -3
  191. package/scripts/start.js +166 -0
  192. package/scripts/test.js +53 -0
  193. package/src/components/MapLibreMap/MapLibreMap.stories.js +14 -5
  194. package/src/components/MapLibreMap/MapLibreMap.test.js +1 -1
  195. package/src/components/MapLibreMap/{MapLibreMap.js → MapLibreMap.tsx} +40 -37
  196. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +3 -3
  197. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +636 -0
  198. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +0 -2
  199. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +42 -0
  200. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +0 -5
  201. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +51 -0
  202. package/src/components/MlCreatePdfButton/lib/{createPdf.js → createPdf.ts} +26 -23
  203. package/src/components/MlCreatePdfButton/lib/{nominatimMap.js → nominatimMap.ts} +3 -3
  204. package/src/components/MlFeatureEditor/MlFeatureEditor.doc.en.md +1 -0
  205. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +139 -0
  206. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +12 -8
  207. package/src/components/MlFeatureEditor/custom-polygon-mode.js +9 -5
  208. package/src/components/MlFeatureEditor/custom-select-mode.js +11 -7
  209. package/src/components/MlFeatureEditor/lib/LICENSE.md +18 -0
  210. package/src/components/MlFeatureEditor/lib/common_selectors.js +4 -0
  211. package/src/components/MlFeatureEditor/lib/constants.js +4 -0
  212. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +4 -0
  213. package/src/components/MlFeatureEditor/lib/create_midpoint.js +4 -0
  214. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +4 -0
  215. package/src/components/MlFeatureEditor/lib/create_vertex.js +4 -0
  216. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +4 -0
  217. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +4 -0
  218. package/src/components/MlFeatureEditor/lib/features_at.js +4 -0
  219. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +4 -0
  220. package/src/components/MlFeatureEditor/lib/is_click.js +4 -0
  221. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +4 -0
  222. package/src/components/MlFeatureEditor/lib/is_tap.js +4 -0
  223. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -0
  224. package/src/components/MlFeatureEditor/lib/mode_handler.js +4 -0
  225. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +4 -0
  226. package/src/components/MlFeatureEditor/lib/move_features.js +4 -0
  227. package/src/components/MlFeatureEditor/lib/sort_features.js +4 -0
  228. package/src/components/MlFeatureEditor/lib/string_set.js +4 -0
  229. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +4 -0
  230. package/src/components/MlFeatureEditor/lib/theme.js +4 -0
  231. package/src/components/MlFeatureEditor/lib/to_dense_array.js +4 -0
  232. package/src/components/MlFeatureEditor/lib/utils.js +4 -0
  233. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.doc.en.md +1 -0
  234. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +6 -11
  235. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +85 -0
  236. package/src/components/MlFollowGps/MlFollowGps.doc.en.md +1 -0
  237. package/src/components/MlFollowGps/MlFollowGps.stories.js +0 -2
  238. package/src/components/MlFollowGps/{MlFollowGps.js → MlFollowGps.tsx} +99 -86
  239. package/src/components/MlGPXViewer/MlGPXViewer.doc.en.md +1 -0
  240. package/src/components/MlGPXViewer/{MlGPXViewer.js → MlGPXViewer.tsx} +68 -50
  241. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +13 -0
  242. package/src/components/MlGPXViewer/util/{GeoJsonProvider.js → GeoJsonProvider.tsx} +3 -7
  243. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.doc.en.md +1 -0
  244. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +8 -3
  245. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +106 -0
  246. package/src/components/MlGeoJsonLayer/util/{getDefaultLayerTypeByGeometry.js → getDefaultLayerTypeByGeometry.ts} +6 -1
  247. package/src/components/MlGeoJsonLayer/util/{getDefaultPaintPropsByType.js → getDefaultPaintPropsByType.ts} +1 -1
  248. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +1 -4
  249. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +129 -0
  250. package/src/components/MlLayer/MlLayer.stories.js +0 -2
  251. package/src/components/MlLayer/MlLayer.tsx +48 -0
  252. package/src/components/MlLayerMagnify/MlLayerMagnify.doc.en.md +1 -0
  253. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +3 -3
  254. package/src/components/MlLayerMagnify/{MlLayerMagnify.js → MlLayerMagnify.tsx} +62 -43
  255. package/src/components/MlLayerSwipe/MlLayerSwipe.doc.en.md +1 -0
  256. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +0 -2
  257. package/src/components/MlLayerSwipe/{MlLayerSwipe.js → MlLayerSwipe.tsx} +38 -24
  258. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +0 -4
  259. package/src/components/MlMarker/MlMarker.tsx +140 -0
  260. package/src/components/MlNavigationCompass/MlNavigationCompass.doc.en.md +1 -0
  261. package/src/components/MlNavigationCompass/{MlNavigationCompass.js → MlNavigationCompass.tsx} +27 -10
  262. package/src/components/MlNavigationTools/MlNavigationTools.doc.en.md +1 -0
  263. package/src/components/MlNavigationTools/{MlNavigationTools.js → MlNavigationTools.tsx} +37 -32
  264. package/src/components/MlScaleReference/MlScaleReference.doc.en.md +1 -0
  265. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.doc.en.md +1 -0
  266. package/src/components/MlThreeJsLayer/MlThreeJsLayer.doc.en.md +1 -0
  267. package/src/components/MlTransitionGeoJsonLayer/{MlTransitionGeoJsonLayer.js → MlTransitionGeoJsonLayer.tsx} +76 -73
  268. package/src/components/MlVectorTileLayer/MlVectorTileLayer.doc.en.md +1 -0
  269. package/src/components/MlVectorTileLayer/{MlVectorTileLayer.js → MlVectorTileLayer.tsx} +23 -7
  270. package/src/components/MlWmsLayer/{MlWmsLayer.js → MlWmsLayer.tsx} +22 -7
  271. package/src/components/MlWmsLoader/MlWmsLoader.doc.en.md +1 -0
  272. package/src/components/MlWmsLoader/{MlWmsLoader.js → MlWmsLoader.tsx} +55 -47
  273. package/src/custom.d.tsx +26 -0
  274. package/src/hooks/useLayer.ts +221 -0
  275. package/src/hooks/{useMap.js → useMap.ts} +48 -17
  276. package/src/hooks/{useMapState.js → useMapState.ts} +42 -7
  277. package/src/{index.js → index.ts} +15 -8
  278. package/tsconfig.json +18 -24
  279. package/.env +0 -1
  280. package/.storybook/main.bck.js +0 -56
  281. package/babel.config.json +0 -4
  282. package/coverage/lcov-report/src/translations/english.js.html +0 -94
  283. package/coverage/lcov-report/src/translations/german.js.html +0 -94
  284. package/coverage/lcov-report/src/translations/index.html +0 -131
  285. package/jest.config.json +0 -16
  286. package/jsdoc.json +0 -21
  287. package/public/assets/3D/posttower.gltf +0 -103
  288. package/public/assets/3D/posttower_simple.gltf +0 -103
  289. package/public/assets/3D/posttower_wh.gltf.glb +0 -0
  290. package/public/bee.png +0 -0
  291. package/public/logo192.png +0 -0
  292. package/public/logo512.png +0 -0
  293. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +0 -528
  294. package/src/components/MlComponentTemplate/MlComponentTemplate.js +0 -39
  295. package/src/components/MlCreatePdfButton/MlCreatePdfButton.js +0 -52
  296. package/src/components/MlFeatureEditor/MlFeatureEditor.js +0 -119
  297. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.js +0 -153
  298. package/src/components/MlGPXViewer/util/GeoJsonContext.js +0 -6
  299. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +0 -173
  300. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js +0 -75
  301. package/src/components/MlLayer/MlLayer.js +0 -107
  302. package/src/components/MlLayerMagnify/utils/compareMagnify.js +0 -173
  303. package/src/components/MlLayerSwipe/utils/swipeCompare.js +0 -220
  304. package/src/components/MlMarker/MlMarker.js +0 -156
  305. package/src/components/index.js +0 -6
  306. package/src/i18n.js +0 -28
  307. package/src/react-app-env.d.ts +0 -1
  308. package/src/stories/IntroductionCore.stories.mdx +0 -3
  309. package/src/stories/assets/code-brackets.svg +0 -1
  310. package/src/stories/assets/colors.svg +0 -1
  311. package/src/stories/assets/comments.svg +0 -1
  312. package/src/stories/assets/direction.svg +0 -1
  313. package/src/stories/assets/flow.svg +0 -1
  314. package/src/stories/assets/plugin.svg +0 -1
  315. package/src/stories/assets/repo.svg +0 -1
  316. package/src/stories/assets/stackalt.svg +0 -1
  317. package/src/stories/components/ComponentTeaser.js +0 -64
  318. package/src/translations/english.js +0 -4
  319. package/src/translations/german.js +0 -4
@@ -1,103 +0,0 @@
1
- {
2
- "asset" : {
3
- "generator" : "Khronos glTF Blender I/O v1.1.46",
4
- "version" : "2.0"
5
- },
6
- "scene" : 0,
7
- "scenes" : [
8
- {
9
- "name" : "Scene",
10
- "nodes" : [
11
- 0,
12
- 1
13
- ]
14
- }
15
- ],
16
- "nodes" : [
17
- {
18
- "name" : "Light",
19
- "rotation" : [
20
- 0.16907575726509094,
21
- 0.7558803558349609,
22
- -0.27217137813568115,
23
- 0.570947527885437
24
- ],
25
- "translation" : [
26
- 4.076245307922363,
27
- 5.903861999511719,
28
- -1.0054539442062378
29
- ]
30
- },
31
- {
32
- "mesh" : 0,
33
- "name" : "Post-Tower"
34
- }
35
- ],
36
- "meshes" : [
37
- {
38
- "name" : "Post-Tower",
39
- "primitives" : [
40
- {
41
- "attributes" : {
42
- "POSITION" : 0,
43
- "NORMAL" : 1
44
- },
45
- "indices" : 2
46
- }
47
- ]
48
- }
49
- ],
50
- "accessors" : [
51
- {
52
- "bufferView" : 0,
53
- "componentType" : 5126,
54
- "count" : 258,
55
- "max" : [
56
- 71.77005004882812,
57
- 160.99974060058594,
58
- 42.6383056640625
59
- ],
60
- "min" : [
61
- -22.617782592773438,
62
- -0.00030803680419921875,
63
- -35.430809020996094
64
- ],
65
- "type" : "VEC3"
66
- },
67
- {
68
- "bufferView" : 1,
69
- "componentType" : 5126,
70
- "count" : 258,
71
- "type" : "VEC3"
72
- },
73
- {
74
- "bufferView" : 2,
75
- "componentType" : 5123,
76
- "count" : 432,
77
- "type" : "SCALAR"
78
- }
79
- ],
80
- "bufferViews" : [
81
- {
82
- "buffer" : 0,
83
- "byteLength" : 3096,
84
- "byteOffset" : 0
85
- },
86
- {
87
- "buffer" : 0,
88
- "byteLength" : 3096,
89
- "byteOffset" : 3096
90
- },
91
- {
92
- "buffer" : 0,
93
- "byteLength" : 864,
94
- "byteOffset" : 6192
95
- }
96
- ],
97
- "buffers" : [
98
- {
99
- "byteLength" : 7056,
100
- "uri" : "data:application/octet-stream;base64,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JAAlACYAJwAkACYAKAApACoAKwAoACoALAAtAC4ALAAuAC8AMAAxADIAMAAyADMANAA1ADYANAA2ADcALQA4ADkALQA5AC4AOgA7ADwAOgA8AD0ANQA+AD8ANQA/ADYAQABBAEIAQABCAEMARABFAEYARABGAEcASABJAEoASABKAEsATABNAE4ATABOAE8AUABRAFIAUABSAFMAVABVAFYAVABWAFcAWABZAFoAWABaAFsAXABdAF4AXABeAF8AYABEAEcAYABHAGEAYgBIAEsAYgBLAGMAZABlAGYAZwBkAGYAaABpAGoAawBoAGoAbABtAG4AbwBsAG4AcABxAHIAcwBwAHIAdAB1AHYAdwB0AHYAeAB5AHoAeAB6AHsAfAB9AH4AfwB8AH4AgACBAIIAgwCAAIIAhACFAIYAhACGAIcAiACJAIoAiwCIAIoAjACNAI4AjACOAI8AkACRAJIAkACSAJMAlACVAJYAlACWAJcAmACZAJoAmACaAJsAnACdAJ4AnACeAJ8AoAChAKIAoACiAKMApAClAKYApACmAKcAqACpAKoAqwCoAKoArACkAKcArACnAK0ArgCvALAArgCwALEAsgCzALQAtQCyALQAtgC3ALgAtgC4ALkAtwC6ALsAtwC7ALgAvAC9AL4AvAC+AL8AwADBAMIAwADCAMMAxADFAMYAxADGAMcAyADJAMoAyADKAMsAzADNAM4AzADOAM8A0ADRANIA0ADSANMA1ADVANYA1ADWANcA2ABYAFsA2ABbANkA2gDbANwA2gDcAN0A3gDfAOAA3gDgAOEA4gDjAOQA4gDkAOUA5gDnAOgA5gDoAOkAEQDqAOsAEQDrABIA7ADtAO4A7ADuAO8ARQAwADMARQAzAEYA8ADxAPIA8ADyAPMA9AD1APYA9AD2APcA+ADIAMsA+ADLAPkAjQD6APsAjQD7AI4ApQCcAJ8ApQCfAKYA/AD9AP4A/AD+AP8AAAFYANgAAQEAAdgA"
101
- }
102
- ]
103
- }
package/public/bee.png DELETED
Binary file
Binary file
Binary file
@@ -1,528 +0,0 @@
1
- // @ts-ignore: TS export Problem to be fixed upstream
2
- import maplibregl from "!maplibre-gl";
3
-
4
- /**
5
- * Creates a MapLibre-gl-js instance and offers all of the native MapLibre functions and properties as well as additional functionality such as element registration & cleanup and more events.
6
- *
7
- * @param {object} props
8
- *
9
- * @class
10
- */
11
- const MapLibreGlWrapper = function (props) {
12
- // closure variable to safely point to the object context of the current MapLibreGlWrapper instance
13
- let self = this;
14
-
15
- // element registration and cleanup on a component level is experimental
16
- this.registeredElements = {};
17
-
18
- // array of base layer ids, all layers that have been added by the style passed to the MapLibreGl coonstructor
19
- this.baseLayers = [];
20
-
21
- // layer id of the first symbol layer
22
- this.firstSymbolLayer = undefined;
23
-
24
- // event handlers registered in MapLibreGlWrapper
25
- this.eventHandlers = {
26
- layerchange: [],
27
- viewportchange: [],
28
- };
29
-
30
- // functions and properties provided by the wrapper
31
- // Add new functions and properties introduced by the wrapper to this object to prevent collisions due to future MapLibre API changes
32
- this.wrapper = {
33
- /**
34
- * Subscribe the given event handler to an event
35
- *
36
- * @param {string} eventName
37
- * @param {function} handler
38
- * @param {object} options
39
- * @param {string} componentId
40
- * @returns {undefined}
41
- */
42
- on: (eventName, handler, options, componentId) => {
43
- if (!self.eventHandlers[eventName]) return;
44
-
45
- if (typeof options === "string") {
46
- componentId = options;
47
- options = {};
48
- }
49
-
50
- self.eventHandlers[eventName].push({ handler, options });
51
-
52
- let _arguments = [eventName, handler];
53
- if (componentId && typeof componentId === "string") {
54
- self.initRegisteredElements(componentId);
55
- self.registeredElements[componentId].wrapperEvents.push(_arguments);
56
- }
57
- },
58
- /**
59
- * Unsubscribes the given event handler from an event
60
- *
61
- * @param {string} eventName
62
- * @param {function} handler
63
- * @returns {undefined}
64
- */
65
- off: (eventName, handler) => {
66
- if (!self.eventHandlers[eventName]) return;
67
-
68
- self.eventHandlers[eventName] = self.eventHandlers[eventName].filter((item) => {
69
- if (!Object.is(item.handler, handler)) {
70
- return item;
71
- }
72
- return false;
73
- });
74
- },
75
- /**
76
- * Calls all event handlers that have been subscribed to the given eventName
77
- *
78
- * @param {string} eventName
79
- * @param {object} context
80
- * @returns {undefined}
81
- */
82
- fire: (eventName, context) => {
83
- if (!self.eventHandlers[eventName]) return;
84
-
85
- var scope = context || window;
86
- let event = new Event(eventName);
87
- event.data = self;
88
-
89
- self.eventHandlers[eventName].forEach(function (item) {
90
- item.handler.call(scope, event);
91
- });
92
- },
93
- /**
94
- * Array containing an object for each layer in the MapLibre instance providing information on visibility, loading state, order, paint & layout properties
95
- */
96
- layerState: [],
97
- /**
98
- * Maps layerIds to layerState in JSON string form for quick deep comparisons
99
- */
100
- layerStateString: "",
101
- /**
102
- * Previous Version of layerStateString
103
- */
104
- oldLayerStateStrings: {},
105
- /**
106
- * Builds the layer info object for a given layer id
107
- *
108
- * @param {string} layer
109
- * @returns object
110
- */
111
- buildLayerObject: (layer) => {
112
- //if (self.baseLayers.indexOf(layer.id) === -1) {
113
- //let paint = {};
114
- //let values = layer.paint?._values;
115
- //Object.keys(values || {}).map((propName) => {
116
- // paint[propName] =
117
- // typeof values[propName].value !== "undefined"
118
- // ? values[propName].value.value
119
- // : values[propName];
120
- //});
121
- //let layout = {};
122
- //values = layer.layout?._values;
123
- //Object.keys(values || {}).map((propName) => {
124
- // layout[propName] =
125
- // typeof values[propName].value !== "undefined"
126
- // ? values[propName].value.value
127
- // : values[propName];
128
- //});
129
- return {
130
- id: layer.id,
131
- type: layer.type,
132
- visible: layer.visibility === "none" ? false : true,
133
- baseLayer: self.baseLayers.indexOf(layer.id) !== -1,
134
- //paint,
135
- //layout,
136
- //filter: layers[layerId].filter,
137
- //layout: layers[layerId].layout,
138
- //maxzoom: layers[layerId].maxzoom,
139
- //metadata: layers[layerId].metadata,
140
- //minzoom: layers[layerId].minzoom,
141
- //paint: layers[layerId].paint.get(),
142
- //source: layers[layerId].source,
143
- //sourceLayer: layers[layerId].sourceLayer,
144
- };
145
- //}
146
- },
147
- /**
148
- * Returns an array of layer state info objects for all layers in the MapLibre instance
149
- *
150
- * @returns array
151
- */
152
- buildLayerObjects: () => {
153
- return self.style._order
154
- .map((layerId) => {
155
- return self.wrapper.buildLayerObject(self.map.style._layers[layerId]);
156
- })
157
- .filter((n) => n);
158
- },
159
- /**
160
- * Updates layer state info objects
161
- */
162
- refreshLayerState: () => {
163
- self.wrapper.layerState = self.wrapper.buildLayerObjects();
164
- if (JSON.stringify(self.wrapper.layerState) !== self.wrapper.layerStateString) {
165
- self.wrapper.fire("layerchange");
166
- self.wrapper.layerStateString = JSON.stringify(self.wrapper.layerState);
167
- }
168
- },
169
- /**
170
- * Object containing information on the current viewport state
171
- */
172
- viewportState: {},
173
- /**
174
- * The same data as viewportState in JSON string form for quick deep comparisons
175
- */
176
- viewportStateString: "{}",
177
- /**
178
- * Previous version of viewportStateString
179
- */
180
- oldViewportStateString: "{}",
181
- getViewport: () =>
182
- typeof self.map.getCenter === "function"
183
- ? {
184
- center: (({ lng, lat, ...rest }) => ({ lng, lat }))(self.map.getCenter()),
185
- zoom: self.map.getZoom(),
186
- bearing: self.map.getBearing(),
187
- pitch: self.map.getPitch(),
188
- }
189
- : {},
190
- refreshViewport: () => {
191
- self.wrapper.viewportState = self.wrapper.getViewport();
192
- },
193
- };
194
-
195
- /**
196
- * Initializes an empty registered elements object for the given componentId
197
- *
198
- * @param {string} componentId
199
- * @param {boolean} force
200
- */
201
- this.initRegisteredElements = (componentId, force) => {
202
- if (
203
- typeof self.registeredElements[componentId] === "undefined" ||
204
- (force !== "undefined" && force)
205
- ) {
206
- self.registeredElements[componentId] = {
207
- layers: [],
208
- sources: [],
209
- images: [],
210
- events: [],
211
- controls: [],
212
- wrapperEvents: [],
213
- };
214
- }
215
- };
216
-
217
- /**
218
- * Overrides MapLibre-gl-js addLayer function providing an additional componentId parameter for the wrapper element registration.
219
- *
220
- * @param {object} layer
221
- * @param {string} beforeId
222
- * @param {string} componentId
223
- * @returns {undefined}
224
- */
225
- this.addLayer = (layer, beforeId, componentId) => {
226
- if (!self.map.style) {
227
- return;
228
- }
229
- if (componentId && typeof componentId === "string" && typeof layer.id !== "undefined") {
230
- self.initRegisteredElements(componentId);
231
- self.registeredElements[componentId].layers.push(layer.id);
232
-
233
- if (typeof layer.source === "object") {
234
- self.registeredElements[componentId].sources.push(layer.id);
235
- }
236
- }
237
-
238
- self.map.addLayer(layer, beforeId);
239
- };
240
-
241
- /**
242
- * Overrides MapLibre-gl-js addSource function providing an additional componentId parameter for the wrapper element registration.
243
- *
244
- * @param {string} sourceId
245
- * @param {object} source
246
- * @param {object} options
247
- * @param {string} componentId
248
- * @returns {undefined}
249
- */
250
- this.addSource = (sourceId, source, options, componentId) => {
251
- if (!self.map.style) {
252
- return;
253
- }
254
- if (typeof options === "string" && typeof componentId === "undefined") {
255
- return self.addSource.call(self, sourceId, source, undefined, options);
256
- }
257
- if (componentId && typeof componentId === "string" && typeof sourceId !== "undefined") {
258
- self.initRegisteredElements(componentId);
259
- self.registeredElements[componentId].sources.push(sourceId);
260
- }
261
-
262
- self.map.addSource(sourceId, source, options);
263
- };
264
-
265
- /**
266
- * Overrides MapLibre-gl-js addImage function providing an additional componentId parameter for the wrapper element registration.
267
- *
268
- * @param {string} id
269
- * @param {*} image
270
- * @param {*} ref
271
- * @param {string} componentId
272
- * @returns {undefined}
273
- */
274
- this.addImage = (id, image, ref, componentId) => {
275
- if (!self.map.style) {
276
- return;
277
- }
278
- if (typeof ref === "string" && typeof componentId === "undefined") {
279
- return self.addImage.call(self, id, image, undefined, ref);
280
- }
281
- if (componentId && typeof componentId === "string" && typeof id !== "undefined") {
282
- self.initRegisteredElements(componentId);
283
- self.registeredElements[componentId].images.push(id);
284
- }
285
-
286
- self.map.addImage(id, image, ref);
287
- };
288
-
289
- /**
290
- * Overrides MapLibre-gl-js on function providing an additional componentId parameter for the wrapper element registration.
291
- *
292
- * @param {string} type
293
- * @param {string} layerId
294
- * @param {function} listener
295
- * @param {string} componentId
296
- * @returns {undefined}
297
- */
298
- this.on = (type, layerId, listener, componentId) => {
299
- if (typeof listener === "string" && typeof layerId === "function") {
300
- return self.on.call(self, type, undefined, layerId, listener);
301
- }
302
-
303
- let _arguments = [type, layerId, listener];
304
- if (!layerId) {
305
- _arguments = [type, listener];
306
- }
307
-
308
- if (componentId && typeof componentId === "string") {
309
- self.initRegisteredElements(componentId);
310
- self.registeredElements[componentId].events.push(_arguments);
311
- }
312
-
313
- self.map.on(..._arguments);
314
- };
315
-
316
- /**
317
- * Overrides MapLibre-gl-js addControl function providing an additional componentId parameter for the wrapper element registration.
318
- *
319
- * @param {object} control
320
- * @param {string} position
321
- * @param {string} componentId
322
- */
323
- this.addControl = (control, position, componentId) => {
324
- if (componentId && typeof componentId === "string") {
325
- self.initRegisteredElements(componentId);
326
- self.registeredElements[componentId].controls.push(control);
327
- }
328
-
329
- self.map.addControl(control, position);
330
- };
331
-
332
- /**
333
- * Removes anything that has been added to the maplibre instance referenced with componentId
334
- *
335
- * @param {string} componentId
336
- */
337
- this.cleanup = (componentId) => {
338
- if (self.map.style && typeof self.registeredElements[componentId] !== "undefined") {
339
- // cleanup layers
340
- self.registeredElements[componentId].layers.forEach((item) => {
341
- if (self.map.style.getLayer(item)) {
342
- self.map.style.removeLayer(item);
343
- }
344
- });
345
-
346
- // cleanup sources
347
- self.registeredElements[componentId].sources.forEach((item) => {
348
- if (self.map.style.getSource(item)) {
349
- self.map.style.removeSource(item);
350
- }
351
- });
352
-
353
- // cleanup images
354
- self.registeredElements[componentId].images.forEach((item) => {
355
- if (self.map.hasImage(item)) {
356
- self.map.style.removeImage(item);
357
- }
358
- });
359
-
360
- // cleanup events
361
- self.registeredElements[componentId].events.forEach((item) => {
362
- self.map.off(...item);
363
- });
364
-
365
- // cleanup controls
366
- self.registeredElements[componentId].controls.forEach((item) => {
367
- self.map.removeControl(item);
368
- });
369
-
370
- // cleanup wrapper events
371
- self.registeredElements[componentId].wrapperEvents.forEach((item) => {
372
- self.wrapper.off(...item);
373
- });
374
-
375
- self.initRegisteredElements(componentId, true);
376
- }
377
- };
378
-
379
- // add style prop functions that require map._update to be called afterwards
380
- let updatingStyleFunctions = [
381
- "moveLayer",
382
- "removeLayer",
383
- "removeSource",
384
- "setPaintProperty",
385
- "setLayoutProperty",
386
- ];
387
- updatingStyleFunctions.forEach((item) => {
388
- this[item] = (...props) => {
389
- if (self.map && this.map.style && typeof self.map.style[item] === "function") {
390
- self.map.style[item](...props);
391
- }
392
- return self.map._update ? self.map._update(true) : undefined;
393
- };
394
- });
395
-
396
- // add style prop functions
397
- let styleFunctions = [
398
- "getLayer",
399
- "getSource",
400
- "listImages",
401
- "getPaintProperty",
402
- "getLayoutProperty",
403
- "removeImage",
404
- ];
405
- styleFunctions.forEach((item) => {
406
- this[item] = (...props) => {
407
- if (self.map && self.map.style) {
408
- return self.map.style[item](...props);
409
- }
410
- return false;
411
- };
412
- });
413
-
414
- this.addNativeMaplibreFunctionsAndProps = () => {
415
- // add MapLibre-gl functions
416
- Object.getOwnPropertyNames(Object.getPrototypeOf(this.map)).forEach((item) => {
417
- if (typeof this[item] === "undefined") {
418
- this[item] = (...props) => self.map[item](...props);
419
- }
420
- });
421
-
422
- // add MapLibre-gl properties
423
- Object.keys(this.map).forEach((item) => {
424
- if (typeof this[item] === "undefined") {
425
- this[item] = self.map[item];
426
- }
427
- });
428
- };
429
-
430
- // add functions that are missing on the MapLibre instances prototype
431
- let missingFunctions = [
432
- "getZoom",
433
- "setZoom",
434
- "getCenter",
435
- "setCenter",
436
- "getBearing",
437
- "setBearing",
438
- "getPitch",
439
- "setPitch",
440
- "jumpTo",
441
- "flyTo",
442
- "panTo",
443
- "panBy",
444
- "panBy",
445
- "zoomTo",
446
- "zoomIn",
447
- "zoomOut",
448
- "getPadding",
449
- "setPadding",
450
- "rotateTo",
451
- "resetNorth",
452
- "resetNorthPitch",
453
- "snapToNorth",
454
- "cameraForBounds",
455
- "fitBounds",
456
- "fitScreenCoordinates",
457
- "getFreeCameraOptions",
458
- "setFreeCameraOptions",
459
- "easeTo",
460
- "stop",
461
- ];
462
- missingFunctions.forEach((item) => {
463
- this[item] = (...props) => {
464
- if (typeof self.map[item] === "function") {
465
- return self.map[item].call(self.map, ...props);
466
- }
467
- return undefined;
468
- };
469
- });
470
-
471
- // initialize the MapLibre-gl instance
472
- let initializeMapLibre = async () => {
473
- // if mapOptions style URL is given and if it is not a mapbox URL fetch the json and initialize the mapbox object
474
- if (
475
- typeof props.mapOptions.style === "string" &&
476
- props.mapOptions.style.indexOf("mapbox://") === -1
477
- ) {
478
- await fetch(props.mapOptions.style)
479
- .then((response) => {
480
- if (response.ok) {
481
- return response.json();
482
- } else {
483
- throw new Error("error loading map style.json");
484
- }
485
- })
486
- .then((styleJson) => {
487
- styleJson.layers.forEach((item) => {
488
- self.baseLayers.push(item.id);
489
- if (!self.firstSymbolLayer && item.type === "symbol") {
490
- self.firstSymbolLayer = item.id;
491
- }
492
- });
493
- self.styleJson = styleJson;
494
- props.mapOptions.style = styleJson;
495
- })
496
- .catch((error) => {
497
- console.log(error);
498
- });
499
- }
500
-
501
- self.map = new maplibregl.Map(props.mapOptions);
502
-
503
- self.addNativeMaplibreFunctionsAndProps();
504
- self.wrapper.refreshViewport();
505
- self.wrapper.fire("viewportchange");
506
-
507
- self.map.on("load", () => {
508
- self.addNativeMaplibreFunctionsAndProps();
509
- });
510
-
511
- self.map.on("move", () => {
512
- self.wrapper.viewportState = self.wrapper.getViewport();
513
- self.wrapper.fire("viewportchange");
514
- });
515
- self.map.on("idle", () => {
516
- self.wrapper.refreshLayerState();
517
- });
518
- self.map.on("data", () => {
519
- self.wrapper.refreshLayerState();
520
- });
521
- if (typeof props.onReady === "function") {
522
- props.onReady(self.map, self);
523
- }
524
- };
525
- initializeMapLibre();
526
- };
527
-
528
- export default MapLibreGlWrapper;
@@ -1,39 +0,0 @@
1
- import React, { useRef, useEffect } from "react";
2
- import PropTypes from "prop-types";
3
- import useMap from "../../hooks/useMap";
4
-
5
- /**
6
- * TODO: Add short & useful description
7
- *
8
- * @param {object} props
9
- * @param {string} props.mapId Id of the target MapLibre instance in mapContext
10
- *
11
- * @component
12
- */
13
- const MlComponentTemplate = (props) => {
14
- const mapHook = useMap({ mapId: props.mapId, waitForLayer: props.insertBeforeLayer });
15
- const initializedRef = useRef(false);
16
-
17
- useEffect(() => {
18
- if (!mapHook.mapIsReady || initializedRef.current) return;
19
- // the MapLibre-gl instance (mapHook.map) is accessible here
20
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
21
- initializedRef.current = true;
22
-
23
- mapHook.map.setCenter([7.132122000552613, 50.716405378037706]);
24
- }, [mapHook.map, mapHook.mapIsReady, props.mapId]);
25
-
26
- return <></>;
27
- };
28
-
29
- MlComponentTemplate.defaultProps = {
30
- mapId: undefined,
31
- };
32
-
33
- MlComponentTemplate.propTypes = {
34
- /**
35
- * Id of the target MapLibre instance in mapContext
36
- */
37
- mapId: PropTypes.string,
38
- };
39
- export default MlComponentTemplate;