@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
@@ -3,7 +3,7 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.js</title>
6
+ <title>Code coverage report for src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx</title>
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../../../prettify.css" />
9
9
  <link rel="stylesheet" href="../../../base.css" />
@@ -19,20 +19,20 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlFillExtrusionLayer</a> MlFillExtrusionLayer.js</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlImageMarkerLayer</a> MlImageMarkerLayer.tsx</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.9% </span>
26
+ <span class="strong">64.86% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>30/33</span>
28
+ <span class='fraction'>24/37</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">78.57% </span>
33
+ <span class="strong">45.45% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>22/28</span>
35
+ <span class='fraction'>15/33</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90.32% </span>
47
+ <span class="strong">70.58% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>28/31</span>
49
+ <span class='fraction'>24/34</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -192,31 +192,7 @@
192
192
  <a name='L127'></a><a href='#L127'>127</a>
193
193
  <a name='L128'></a><a href='#L128'>128</a>
194
194
  <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
195
+ <a name='L130'></a><a href='#L130'>130</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
220
196
  <span class="cline-any cline-neutral">&nbsp;</span>
221
197
  <span class="cline-any cline-neutral">&nbsp;</span>
222
198
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -228,46 +204,11 @@
228
204
  <span class="cline-any cline-neutral">&nbsp;</span>
229
205
  <span class="cline-any cline-neutral">&nbsp;</span>
230
206
  <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-yes">1x</span>
232
- <span class="cline-any cline-yes">4x</span>
233
- <span class="cline-any cline-yes">4x</span>
234
207
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">4x</span>
236
- <span class="cline-any cline-yes">4x</span>
237
208
  <span class="cline-any cline-neutral">&nbsp;</span>
238
209
  <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-yes">4x</span>
240
- <span class="cline-any cline-yes">4x</span>
241
210
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">4x</span>
243
- <span class="cline-any cline-yes">2x</span>
244
211
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">2x</span>
246
- <span class="cline-any cline-yes">1x</span>
247
- <span class="cline-any cline-yes">1x</span>
248
- <span class="cline-any cline-yes">1x</span>
249
- <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">1x</span>
251
- <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-yes">4x</span>
255
- <span class="cline-any cline-yes">4x</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-yes">2x</span>
259
- <span class="cline-any cline-yes">2x</span>
260
- <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-yes">2x</span>
262
- <span class="cline-any cline-yes">2x</span>
263
- <span class="cline-any cline-no">&nbsp;</span>
264
- <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-yes">2x</span>
267
- <span class="cline-any cline-no">&nbsp;</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-yes">2x</span>
271
212
  <span class="cline-any cline-neutral">&nbsp;</span>
272
213
  <span class="cline-any cline-neutral">&nbsp;</span>
273
214
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -284,50 +225,41 @@
284
225
  <span class="cline-any cline-neutral">&nbsp;</span>
285
226
  <span class="cline-any cline-neutral">&nbsp;</span>
286
227
  <span class="cline-any cline-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-yes">1x</span>
229
+ <span class="cline-any cline-yes">12x</span>
287
230
  <span class="cline-any cline-neutral">&nbsp;</span>
288
231
  <span class="cline-any cline-neutral">&nbsp;</span>
289
232
  <span class="cline-any cline-neutral">&nbsp;</span>
290
233
  <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-yes">12x</span>
235
+ <span class="cline-any cline-yes">12x</span>
236
+ <span class="cline-any cline-yes">12x</span>
291
237
  <span class="cline-any cline-neutral">&nbsp;</span>
292
238
  <span class="cline-any cline-neutral">&nbsp;</span>
293
239
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">4x</span>
240
+ <span class="cline-any cline-yes">12x</span>
295
241
  <span class="cline-any cline-yes">4x</span>
296
242
  <span class="cline-any cline-neutral">&nbsp;</span>
297
243
  <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-yes">2x</span>
299
244
  <span class="cline-any cline-neutral">&nbsp;</span>
300
245
  <span class="cline-any cline-neutral">&nbsp;</span>
301
246
  <span class="cline-any cline-yes">4x</span>
302
247
  <span class="cline-any cline-neutral">&nbsp;</span>
303
248
  <span class="cline-any cline-neutral">&nbsp;</span>
304
249
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">1x</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
250
  <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-no">&nbsp;</span>
252
+ <span class="cline-any cline-no">&nbsp;</span>
253
+ <span class="cline-any cline-no">&nbsp;</span>
324
254
  <span class="cline-any cline-neutral">&nbsp;</span>
325
255
  <span class="cline-any cline-neutral">&nbsp;</span>
326
256
  <span class="cline-any cline-neutral">&nbsp;</span>
327
257
  <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-yes">1x</span>
329
258
  <span class="cline-any cline-neutral">&nbsp;</span>
330
259
  <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-no">&nbsp;</span>
261
+ <span class="cline-any cline-no">&nbsp;</span>
262
+ <span class="cline-any cline-no">&nbsp;</span>
331
263
  <span class="cline-any cline-neutral">&nbsp;</span>
332
264
  <span class="cline-any cline-neutral">&nbsp;</span>
333
265
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -336,192 +268,188 @@
336
268
  <span class="cline-any cline-neutral">&nbsp;</span>
337
269
  <span class="cline-any cline-neutral">&nbsp;</span>
338
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-yes">12x</span>
272
+ <span class="cline-any cline-yes">4x</span>
339
273
  <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-yes">4x</span>
340
275
  <span class="cline-any cline-neutral">&nbsp;</span>
341
276
  <span class="cline-any cline-neutral">&nbsp;</span>
342
277
  <span class="cline-any cline-neutral">&nbsp;</span>
343
278
  <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-yes">4x</span>
280
+ <span class="cline-any cline-yes">4x</span>
344
281
  <span class="cline-any cline-neutral">&nbsp;</span>
345
282
  <span class="cline-any cline-neutral">&nbsp;</span>
346
283
  <span class="cline-any cline-neutral">&nbsp;</span>
347
284
  <span class="cline-any cline-neutral">&nbsp;</span>
348
285
  <span class="cline-any cline-neutral">&nbsp;</span>
349
286
  <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-yes">12x</span>
288
+ <span class="cline-any cline-yes">8x</span>
289
+ <span class="cline-any cline-yes">4x</span>
350
290
  <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-yes">4x</span>
351
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-yes">4x</span>
294
+ <span class="cline-any cline-yes">4x</span>
295
+ <span class="cline-any cline-no">&nbsp;</span>
352
296
  <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-no">&nbsp;</span>
353
298
  <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-no">&nbsp;</span>
354
300
  <span class="cline-any cline-neutral">&nbsp;</span>
355
301
  <span class="cline-any cline-neutral">&nbsp;</span>
356
302
  <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-yes">4x</span>
357
304
  <span class="cline-any cline-neutral">&nbsp;</span>
358
305
  <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-yes">12x</span>
307
+ <span class="cline-any cline-yes">4x</span>
359
308
  <span class="cline-any cline-neutral">&nbsp;</span>
360
309
  <span class="cline-any cline-neutral">&nbsp;</span>
361
310
  <span class="cline-any cline-neutral">&nbsp;</span>
362
311
  <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-yes">4x</span>
363
313
  <span class="cline-any cline-neutral">&nbsp;</span>
364
314
  <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-no">&nbsp;</span>
365
316
  <span class="cline-any cline-neutral">&nbsp;</span>
366
317
  <span class="cline-any cline-neutral">&nbsp;</span>
367
318
  <span class="cline-any cline-neutral">&nbsp;</span>
368
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-yes">12x</span>
369
321
  <span class="cline-any cline-neutral">&nbsp;</span>
370
322
  <span class="cline-any cline-neutral">&nbsp;</span>
371
323
  <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useContext, useRef, useEffect, useState } from "react";
373
- import PropTypes from "prop-types";
374
- import { MapContext } from "@mapcomponents/react-core";
324
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useCallback, useEffect } from "react";
375
325
  &nbsp;
376
- import { v4 as uuidv4 } from "uuid";
377
- import Button from "@mui/material/Button";
326
+ import { GeoJSONSource } from "maplibre-gl";
327
+ import useMap from "../../hooks/useMap";
378
328
  &nbsp;
379
- /**
380
- * Adds a fill extrusion layer to the MapLibre instance reference by props.mapId
381
- *
382
- * @Component
383
- */
384
- const MlFillExtrusionLayer = (props) =&gt; {
385
- const mapContext = useContext(MapContext);
386
- const mapRef = useRef(null);
329
+ interface MlImageMarkerLayerProps {
330
+ /**
331
+ * Id of the target MapLibre instance in mapContext
332
+ */
333
+ mapId?: string;
334
+ /**
335
+ * The layerId of an existing layer this layer should be rendered visually beneath
336
+ * https://maplibre.org/maplibre-gl-js-docs/api/map/#map#addlayer - see "beforeId" property
337
+ */
338
+ insertBeforeLayer?: string;
339
+ /**
340
+ * Id of the layer that will be added by this component to the maplibre-gl instance
341
+ */
342
+ layerId?: string;
343
+ /**
344
+ * Id of the image that will be added by this component to the maplibre-gl instance
345
+ */
346
+ imageId?: string;
347
+ /**
348
+ * Path or URL to a supported raster image
349
+ */
350
+ imgSrc?: string;
351
+ /**
352
+ * Javascript object that is passed the addLayer command as first parameter.
353
+ */
354
+ options?: any;
355
+ }
356
+ &nbsp;
357
+ const MlImageMarkerLayer = (props: MlImageMarkerLayerProps) =&gt; {
358
+ const mapHook = useMap({
359
+ mapId: props.mapId,
360
+ waitForLayer: props.insertBeforeLayer,
361
+ });
387
362
  &nbsp;
388
- const [showLayer, setShowLayer] = useState(true);
389
- const componentId = useRef(
390
- (props.idPrefix ? <span class="branch-0 cbranch-no" title="branch not covered" >props.idPrefix </span>: "MlFillExtrusionLayer-") + uuidv4()
363
+ const layerInitializedRef = useRef(false);
364
+ const imageIdRef = useRef(props.imageId || "img_" + new Date().getTime());
365
+ const layerId = useRef(
366
+ props.layerId || "MlImageMarkerLayer-" + mapHook.componentId
391
367
  );
392
- const initializedRef = useRef(false);
393
- const layerId = useRef(props.layerId || "MlFillExtrusionLayer-" + uuidv4());
394
368
  &nbsp;
395
369
  useEffect(() =&gt; {
396
- let _componentId = componentId.current;
370
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (
371
+ !mapHook.map ||
372
+ (<span class="branch-1 cbranch-no" title="branch not covered" >mapHook.map </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >!mapHook.map.map.getLayer(layerId.current))</span> ||
373
+ <span class="branch-3 cbranch-no" title="branch not covered" > !props.options</span>
374
+ )
375
+ return;
376
+ // the MapLibre-gl instance (mapContext.map) is accessible here
377
+ // initialize the layer and add it to the MapLibre-gl instance or do something else with it
378
+ var key;
397
379
  &nbsp;
398
- return () =&gt; {
399
- if (mapRef.current) {
400
- mapRef.current.cleanup(_componentId);
401
- mapRef.current = undefined;
380
+ <span class="cstat-no" title="statement not covered" > if (props.options.layout) {</span>
381
+ <span class="cstat-no" title="statement not covered" > for (key in props.options.layout) {</span>
382
+ <span class="cstat-no" title="statement not covered" > mapHook.map.map.setLayoutProperty(</span>
383
+ layerId.current,
384
+ key,
385
+ props.options.layout[key]
386
+ );
387
+ }
388
+ }
389
+ <span class="cstat-no" title="statement not covered" > if (props.options.paint) {</span>
390
+ <span class="cstat-no" title="statement not covered" > for (key in props.options.paint) {</span>
391
+ <span class="cstat-no" title="statement not covered" > mapHook.map.map.setPaintProperty(</span>
392
+ layerId.current,
393
+ key,
394
+ props.options.paint[key]
395
+ );
402
396
  }
403
- initializedRef.current = false;
397
+ }
398
+ }, [props.options, layerId.current, props.mapId]);
399
+ &nbsp;
400
+ const addLayer = useCallback(() =&gt; {
401
+ <span class="missing-if-branch" title="if path not taken" >I</span>if(!mapHook.map)<span class="cstat-no" title="statement not covered" >return;</span>
402
+ &nbsp;
403
+ let tmpOptions = {
404
+ id: layerId.current,
405
+ layout: {},
406
+ ...props.options,
404
407
  };
405
- }, []);
408
+ tmpOptions.layout["icon-image"] = imageIdRef.current;
409
+ mapHook.map.addLayer(
410
+ tmpOptions,
411
+ props.insertBeforeLayer,
412
+ mapHook.componentId
413
+ );
414
+ }, [props, mapHook.map]);
406
415
  &nbsp;
407
416
  useEffect(() =&gt; {
408
- if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
409
- // the MapLibre-gl instance (mapContext.getMap(props.mapId)) is accessible here
410
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
411
- initializedRef.current = true;
412
- mapRef.current = mapContext.getMap(props.mapId);
417
+ if (!props.options || !mapHook.map || layerInitializedRef.current)
418
+ return;
413
419
  &nbsp;
414
- let lastLabelLayerId = undefined;
415
- <span class="missing-if-branch" title="if path not taken" >I</span>if (mapContext.map.getLayer("waterway-name")) {
416
- <span class="cstat-no" title="statement not covered" > lastLabelLayerId = "waterway-name";</span>
417
- }
420
+ layerInitializedRef.current = true;
421
+ &nbsp;
422
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (props.imgSrc) {
423
+ mapHook.map.map.loadImage(props.imgSrc, <span class="fstat-no" title="function not covered" >fu</span>nction (error, image) {
424
+ <span class="cstat-no" title="statement not covered" > if (error) <span class="cstat-no" title="statement not covered" >throw error;</span></span>
425
+
426
+ <span class="cstat-no" title="statement not covered" > if(!mapHook.map)<span class="cstat-no" title="statement not covered" >return;</span></span>
418
427
  &nbsp;
419
- <span class="missing-if-branch" title="if path not taken" >I</span>if (mapContext.map.getLayer("poi_label")) {
420
- <span class="cstat-no" title="statement not covered" > lastLabelLayerId = "poi_label";</span>
428
+ <span class="cstat-no" title="statement not covered" > mapHook.map.addImage(imageIdRef.current, image, mapHook.componentId);</span>
429
+ });
421
430
  }
422
431
  &nbsp;
423
- mapContext.map.addLayer(
424
- {
425
- id: layerId.current,
426
- type: "fill-extrusion",
427
- source: props.sourceId || "openmaptiles",
428
- "source-layer": props.sourceLayer || "building",
429
- minzoom: props.minZoom || 14,
430
- paint: {
431
- ...props.paint,
432
- },
433
- },
434
- props.insertBeforeLayer || lastLabelLayerId,
435
- componentId.current
436
- );
437
- }, [
438
- mapContext,
439
- props.insertBeforeLayer,
440
- props.mapId,
441
- props.minZoom,
442
- props.paint,
443
- props.sourceId,
444
- props.sourceLayer,
445
- ]);
432
+ addLayer();
433
+ }, [mapHook.map, addLayer, props]);
446
434
  &nbsp;
447
435
  useEffect(() =&gt; {
448
- if (!initializedRef.current) return;
449
- &nbsp;
450
- // toggle layer visibility by changing the layout object's visibility property
451
- mapRef.current.setLayoutProperty(layerId.current, "visibility", showLayer ? "visible" : <span class="branch-1 cbranch-no" title="branch not covered" >"none")</span>;
452
- }, [showLayer, mapContext]);
453
- &nbsp;
454
- return (
455
- &lt;Button
456
- color="primary"
457
- variant={showLayer ? "contained" : <span class="branch-1 cbranch-no" title="branch not covered" >"outlined"}</span>
458
- onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >setShowLayer(!showLayer)}</span>
459
- &gt;
460
- Composite
461
- &lt;/Button&gt;
462
- );
463
- };
436
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (
437
+ !mapHook.map ||
438
+ (<span class="branch-1 cbranch-no" title="branch not covered" >mapHook.map </span>&amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >!mapHook.map.map.getLayer(layerId.current))</span> ||
439
+ <span class="branch-3 cbranch-no" title="branch not covered" > !props.options</span>
440
+ ) {
441
+ return;
442
+ }
464
443
  &nbsp;
465
- MlFillExtrusionLayer.defaultProps = {
466
- mapId: undefined,
467
- paint: {
468
- "fill-extrusion-color": "hsl(196, 61%, 83%)",
469
- "fill-extrusion-height": {
470
- property: "render_height",
471
- type: "identity",
472
- },
473
- "fill-extrusion-base": {
474
- property: "render_min_height",
475
- type: "identity",
476
- },
477
- "fill-extrusion-opacity": 1,
478
- },
479
- };
444
+ <span class="cstat-no" title="statement not covered" > (mapHook.map.map</span>
445
+ .getSource(layerId.current) as GeoJSONSource)
446
+ .setData(props.options.source.data);
447
+ }, [props.options.source.data, props]);
480
448
  &nbsp;
481
- MlFillExtrusionLayer.propTypes = {
482
- /**
483
- * Id of the target MapLibre instance in mapContext
484
- */
485
- mapId: PropTypes.string,
486
- /**
487
- * Id of the layer that will be added by this component
488
- */
489
- layerId: PropTypes.string,
490
- /**
491
- * Prefix of the component id this component uses when adding elements to the MapLibreGl-instance
492
- */
493
- idPrefix: PropTypes.string,
494
- /**
495
- * Paint properties of the config object that is passed to the MapLibreGl.addLayer call. All
496
- * available properties are documented in the MapLibreGl documentation
497
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill-extrusion
498
- */
499
- paint: PropTypes.object,
500
- /**
501
- * Source id of a vector tile source containing the geometries to use for this fill-extrusion
502
- * layer.
503
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#source-layer
504
- */
505
- sourceId: PropTypes.string,
506
- /**
507
- * Layer id from a vector tile source containing the geometries to use for this fill-extrusion
508
- * layer.
509
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#source-layer
510
- */
511
- sourceLayer: PropTypes.string,
512
- /**
513
- * This layer will be hidde for zoom levels lower than defined on this property
514
- * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#minzoom
515
- */
516
- minZoom: PropTypes.number,
517
- /**
518
- * The layerId of an existing layer this layer should be rendered visually beneath
519
- * https://maplibre.org/maplibre-gl-js-docs/api/map/#map#addlayer - see "beforeId" property
520
- */
521
- insertBeforeLayer: PropTypes.string,
449
+ return &lt;&gt;&lt;/&gt;;
522
450
  };
523
451
  &nbsp;
524
- export default MlFillExtrusionLayer;
452
+ export default MlImageMarkerLayer;
525
453
  &nbsp;</pre></td></tr></table></pre>
526
454
 
527
455
  <div class='push'></div><!-- for sticky footer -->
@@ -529,7 +457,7 @@ export default MlFillExtrusionLayer;
529
457
  <div class='footer quiet pad2 space-top1 center small'>
530
458
  Code coverage generated by
531
459
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
532
- at Tue Mar 15 2022 11:25:03 GMT+0000 (Coordinated Universal Time)
460
+ at Wed Apr 20 2022 07:57:24 GMT+0000 (Coordinated Universal Time)
533
461
  </div>
534
462
  <script src="../../../prettify.js"></script>
535
463
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">69.69% </span>
26
+ <span class="strong">64.86% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>23/33</span>
28
+ <span class='fraction'>24/37</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">48.27% </span>
33
+ <span class="strong">45.45% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/29</span>
35
+ <span class='fraction'>15/33</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">70.96% </span>
47
+ <span class="strong">70.58% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>22/31</span>
49
+ <span class='fraction'>24/34</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,18 +79,18 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file medium" data-value="MlImageMarkerLayer.js"><a href="MlImageMarkerLayer.js.html">MlImageMarkerLayer.js</a></td>
83
- <td data-value="69.69" class="pic medium">
84
- <div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
82
+ <td class="file medium" data-value="MlImageMarkerLayer.tsx"><a href="MlImageMarkerLayer.tsx.html">MlImageMarkerLayer.tsx</a></td>
83
+ <td data-value="64.86" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 64%"></div><div class="cover-empty" style="width: 36%"></div></div>
85
85
  </td>
86
- <td data-value="69.69" class="pct medium">69.69%</td>
87
- <td data-value="33" class="abs medium">23/33</td>
88
- <td data-value="48.27" class="pct low">48.27%</td>
89
- <td data-value="29" class="abs low">14/29</td>
86
+ <td data-value="64.86" class="pct medium">64.86%</td>
87
+ <td data-value="37" class="abs medium">24/37</td>
88
+ <td data-value="45.45" class="pct low">45.45%</td>
89
+ <td data-value="33" class="abs low">15/33</td>
90
90
  <td data-value="83.33" class="pct high">83.33%</td>
91
91
  <td data-value="6" class="abs high">5/6</td>
92
- <td data-value="70.96" class="pct medium">70.96%</td>
93
- <td data-value="31" class="abs medium">22/31</td>
92
+ <td data-value="70.58" class="pct medium">70.58%</td>
93
+ <td data-value="34" class="abs medium">24/34</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Tue Mar 15 2022 11:25:03 GMT+0000 (Coordinated Universal Time)
104
+ at Wed Apr 20 2022 07:57:24 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>