@mapcomponents/react-maplibre 0.1.56 → 0.1.58

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 (277) hide show
  1. package/.eslintignore +11 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/workflows/check-formatting.yml +46 -0
  4. package/.prettierignore +11 -0
  5. package/.prettierrc.json +6 -0
  6. package/CHANGELOG.md +20 -0
  7. package/coverage/clover.xml +232 -80
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +71 -26
  10. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +83 -83
  11. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +66 -66
  13. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +30 -30
  15. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +202 -0
  17. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +116 -0
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +99 -99
  19. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +66 -66
  21. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +221 -221
  23. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +308 -308
  25. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +497 -497
  26. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +85 -85
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +469 -0
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +116 -0
  31. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +140 -140
  32. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  33. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +37 -37
  34. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  35. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +179 -179
  36. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +113 -113
  38. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  39. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +181 -181
  40. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +58 -58
  41. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  43. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +108 -108
  44. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +39 -39
  46. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +183 -183
  48. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +163 -163
  50. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +50 -50
  52. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +30 -30
  53. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +89 -89
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +11 -11
  56. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +204 -204
  57. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  58. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +180 -180
  59. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  60. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +163 -163
  61. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  62. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +136 -136
  63. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  64. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +53 -53
  65. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +123 -123
  67. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +35 -35
  69. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +155 -155
  71. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  72. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +255 -255
  73. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  74. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +66 -66
  75. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  76. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +48 -48
  77. package/coverage/lcov-report/src/contexts/index.html +1 -1
  78. package/coverage/lcov-report/src/hooks/exportMap/index.html +131 -0
  79. package/coverage/lcov-report/src/hooks/exportMap/index.ts.html +175 -0
  80. package/coverage/lcov-report/src/hooks/exportMap/lib.ts.html +646 -0
  81. package/coverage/lcov-report/src/hooks/index.html +48 -18
  82. package/coverage/lcov-report/src/hooks/useLayer.ts.html +230 -188
  83. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +232 -0
  84. package/coverage/lcov-report/src/hooks/useMap.ts.html +72 -69
  85. package/coverage/lcov-report/src/hooks/useMapState.ts.html +145 -145
  86. package/coverage/lcov-report/src/hooks/useSource.ts.html +337 -0
  87. package/coverage/lcov-report/src/hooks/useWms.js.html +72 -72
  88. package/coverage/lcov-report/src/index.html +1 -1
  89. package/coverage/lcov-report/src/index.ts.html +14 -2
  90. package/coverage/lcov.info +450 -153
  91. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +24 -0
  92. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +13 -0
  93. package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +21 -0
  94. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +10 -0
  95. package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +13 -0
  96. package/dist/components/MlCreatePdfForm/lib/pdf.templates.d.ts +11 -0
  97. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  98. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +22 -0
  99. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +10 -0
  100. package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +1 -1
  101. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +2 -2
  102. package/dist/decorators/MapContextDecoratorHooks.d.ts +2 -0
  103. package/dist/decorators/ThemeWrapper.d.ts +1 -0
  104. package/dist/hooks/exportMap/index.d.ts +11 -0
  105. package/dist/hooks/exportMap/lib.d.ts +36 -0
  106. package/dist/hooks/useLayer.d.ts +6 -5
  107. package/dist/hooks/useLayerEvent.d.ts +2 -0
  108. package/dist/hooks/useMap.d.ts +1 -1
  109. package/dist/hooks/useMapState.stories.d.ts +2 -2
  110. package/dist/hooks/useSource.d.ts +17 -0
  111. package/dist/hooks/useSources.stories.d.ts +13 -0
  112. package/dist/index.d.ts +4 -0
  113. package/dist/index.esm.js +479 -190
  114. package/dist/index.esm.js.map +1 -1
  115. package/eslintErrorTest.js +10 -0
  116. package/package.json +7 -1
  117. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  118. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  119. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  120. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  122. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  123. package/src/components/MlBasicComponent.js +25 -25
  124. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  125. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  127. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  128. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  130. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  131. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  132. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  136. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  139. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  140. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  143. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  144. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  145. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  146. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  147. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  148. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  149. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  150. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  151. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  152. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  153. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  154. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  155. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  156. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  157. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  158. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  159. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  160. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  161. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  162. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  163. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  164. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  165. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  166. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  167. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  168. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  169. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  172. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  173. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  174. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  175. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  176. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  177. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  178. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  179. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  180. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  181. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  184. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  185. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  186. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  190. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  193. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  194. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  195. package/src/components/MlLayer/MlLayer.test.js +86 -86
  196. package/src/components/MlLayer/MlLayer.tsx +36 -36
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  199. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  202. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  204. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  205. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  206. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  207. package/src/components/MlMarker/MlMarker.tsx +119 -119
  208. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  209. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  212. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  213. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  214. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  215. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  216. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  217. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  218. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  219. package/src/components/MlScaleReference/MlScaleReference.stories.js +33 -35
  220. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  221. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  224. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  227. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  228. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  231. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  232. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  234. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  237. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  239. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  240. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  241. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  242. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  243. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  244. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  245. package/src/contexts/MapComponentsProvider.test.js +229 -229
  246. package/src/contexts/MapContext.tsx +65 -65
  247. package/src/contexts/SimpleDataProvider.js +47 -47
  248. package/src/contexts/SimpleDataProvider.test.js +29 -29
  249. package/src/custom.d.tsx +14 -14
  250. package/src/decorators/MapContextDecorator.js +23 -25
  251. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  252. package/src/decorators/MultiMapContextDecorator.js +63 -63
  253. package/src/decorators/NoNavToolsDecorator.js +17 -17
  254. package/src/decorators/ThemeWrapper.jsx +9 -0
  255. package/src/hooks/assets/pointWG.json +13 -0
  256. package/src/hooks/exportMap/index.ts +30 -0
  257. package/src/hooks/exportMap/lib.ts +187 -0
  258. package/src/hooks/useLayer.test.js +188 -188
  259. package/src/hooks/useLayer.ts +194 -180
  260. package/src/hooks/useLayerEvent.js +49 -0
  261. package/src/hooks/useMap.ts +67 -66
  262. package/src/hooks/useMapState.stories.js +78 -78
  263. package/src/hooks/useMapState.ts +161 -161
  264. package/src/hooks/useSource.ts +84 -0
  265. package/src/hooks/useSources.stories.js +232 -0
  266. package/src/hooks/useWms.js +71 -71
  267. package/src/index.ts +4 -0
  268. package/src/setupTests.js +86 -86
  269. package/src/ui_components/ImageLoader.js +62 -62
  270. package/src/ui_components/Legend.js +34 -34
  271. package/src/ui_components/LoadingOverlay.js +29 -29
  272. package/src/ui_components/LoadingOverlayContext.js +68 -68
  273. package/src/ui_components/Sidebar.js +80 -80
  274. package/src/ui_components/Tooltip.js +9 -9
  275. package/src/ui_components/TopToolbar.js +23 -23
  276. package/src/util/layerRemovalTest.js +111 -111
  277. package/src/util/sourceRemovalTest.js +103 -103
@@ -0,0 +1,10 @@
1
+ const eslintErrorTest = () => {
2
+ let c;
3
+ const b;
4
+ const ab;
5
+ const l = "abc";
6
+ const j = 'oh no'
7
+
8
+ for (let i = 0; i < 10; i--) {}
9
+ while (true) {}
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapcomponents/react-maplibre",
3
- "version": "0.1.56",
3
+ "version": "0.1.58",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.esm.js",
@@ -62,6 +62,8 @@
62
62
  "@types/react": "^17.0.43",
63
63
  "@types/react-dom": "^17.0.14",
64
64
  "@types/uuid": "^8.3.4",
65
+ "@typescript-eslint/eslint-plugin": "^5.36.1",
66
+ "@typescript-eslint/parser": "^5.36.1",
65
67
  "@wojtekmaj/enzyme-adapter-react-17": "^0.6.7",
66
68
  "babel-jest": "^26.6.0",
67
69
  "babel-plugin-inline-react-svg": "^2.0.1",
@@ -69,6 +71,9 @@
69
71
  "babel-preset-react-app": "^10.0.1",
70
72
  "docz": "^2.4.0",
71
73
  "enzyme": "^3.11.0",
74
+ "eslint": "^8.23.0",
75
+ "eslint-config-prettier": "^8.5.0",
76
+ "eslint-plugin-react": "^7.31.1",
72
77
  "glob": "^7.2.0",
73
78
  "jest": "26.6.0",
74
79
  "jest-circus": "26.6.0",
@@ -77,6 +82,7 @@
77
82
  "jest-resolve": "26.6.0",
78
83
  "jest-watch-typeahead": "0.6.1",
79
84
  "postcss": "^8.4.12",
85
+ "prettier": "2.7.1",
80
86
  "react": "^17.0.2",
81
87
  "react-app-polyfill": "^3.0.0",
82
88
  "react-dev-utils": "^12.0.0",
@@ -8,93 +8,93 @@ import TopToolbar from "../../ui_components/TopToolbar";
8
8
  import sample_geojson_1 from "../MlGeoJsonLayer/assets/sample_1.json";
9
9
 
10
10
  const storyoptions = {
11
- title: "Core/MapLibreMap",
12
- component: MapLibreMap,
13
- argTypes: {
14
- options: {
15
- control: {
16
- type: "object",
17
- },
18
- },
19
- },
11
+ title: "Core/MapLibreMap",
12
+ component: MapLibreMap,
13
+ argTypes: {
14
+ options: {
15
+ control: {
16
+ type: "object",
17
+ },
18
+ },
19
+ },
20
20
  };
21
21
  export default storyoptions;
22
22
 
23
23
  const Template = (args) => {
24
- return (
25
- <MapComponentsProvider>
26
- <MapLibreMap
27
- options={args.options}
28
- style={{
29
- position: "absolute",
30
- height: "100vh",
31
- width: "100vw",
32
- top: 0,
33
- right: 0,
34
- left: 0,
35
- bottom: 0,
36
- zIndex: 100,
37
- }}
38
- />
39
- </MapComponentsProvider>
40
- );
24
+ return (
25
+ <MapComponentsProvider>
26
+ <MapLibreMap
27
+ options={args.options}
28
+ style={{
29
+ position: "absolute",
30
+ height: "100vh",
31
+ width: "100vw",
32
+ top: 0,
33
+ right: 0,
34
+ left: 0,
35
+ bottom: 0,
36
+ zIndex: 100,
37
+ }}
38
+ />
39
+ </MapComponentsProvider>
40
+ );
41
41
  };
42
42
 
43
43
  export const ExampleConfig = Template.bind({});
44
44
  ExampleConfig.args = {
45
- options: {
46
- style: "https://wms.wheregroup.com/tileserver/style/osm-bright.json",
47
- center: [8.607, 53.1409349],
48
- zoom: 14,
49
- },
45
+ options: {
46
+ style: "https://wms.wheregroup.com/tileserver/style/osm-bright.json",
47
+ center: [8.607, 53.1409349],
48
+ zoom: 14,
49
+ },
50
50
  };
51
51
 
52
52
  const StyleChangeTemplate = (args) => {
53
- const [activeStyle, setActiveStyle] = useState(
54
- "https://wms.wheregroup.com/tileserver/style/osm-fiord-color.json"
55
- );
53
+ const [activeStyle, setActiveStyle] = useState(
54
+ "https://wms.wheregroup.com/tileserver/style/osm-fiord-color.json"
55
+ );
56
56
 
57
- return (
58
- <MapComponentsProvider>
59
- <TopToolbar>
60
- <Button
61
- onClick={() =>
62
- setActiveStyle("https://wms.wheregroup.com/tileserver/style/osm-bright.json")
63
- }
64
- >
65
- OSM-Bright
66
- </Button>
67
- <Button
68
- onClick={() =>
69
- setActiveStyle("https://wms.wheregroup.com/tileserver/style/osm-fiord-color.json")
70
- }
71
- >
72
- OSM-Fiord-Color
73
- </Button>
74
- </TopToolbar>
75
- <MapLibreMap
76
- options={{ ...args.options, style: activeStyle }}
77
- style={{
78
- position: "absolute",
79
- height: "100vh",
80
- width: "100vw",
81
- top: 0,
82
- right: 0,
83
- left: 0,
84
- bottom: 0,
85
- zIndex: 100,
86
- }}
87
- />
88
- <MlGeoJsonLayer type="line" geojson={sample_geojson_1} />
89
- </MapComponentsProvider>
90
- );
57
+ return (
58
+ <MapComponentsProvider>
59
+ <TopToolbar>
60
+ <Button
61
+ onClick={() =>
62
+ setActiveStyle("https://wms.wheregroup.com/tileserver/style/osm-bright.json")
63
+ }
64
+ >
65
+ OSM-Bright
66
+ </Button>
67
+ <Button
68
+ onClick={() =>
69
+ setActiveStyle("https://wms.wheregroup.com/tileserver/style/osm-fiord-color.json")
70
+ }
71
+ >
72
+ OSM-Fiord-Color
73
+ </Button>
74
+ </TopToolbar>
75
+ <MapLibreMap
76
+ options={{ ...args.options, style: activeStyle }}
77
+ style={{
78
+ position: "absolute",
79
+ height: "100vh",
80
+ width: "100vw",
81
+ top: 0,
82
+ right: 0,
83
+ left: 0,
84
+ bottom: 0,
85
+ zIndex: 100,
86
+ }}
87
+ />
88
+ <MlGeoJsonLayer type="line" geojson={sample_geojson_1} />
89
+ </MapComponentsProvider>
90
+ );
91
91
  };
92
92
 
93
93
  export const StyleChangeConfig = StyleChangeTemplate.bind({});
94
94
  StyleChangeConfig.args = {
95
- options: {
96
- zoom: 14.5,
97
- center: [7.0851268, 50.73884],
98
- },
95
+ options: {
96
+ zoom: 14.5,
97
+ center: [7.0851268, 50.73884],
98
+ },
99
99
  };
100
100
  StyleChangeConfig.parameters = {};
@@ -5,80 +5,80 @@ import MapContext, { MapComponentsProvider } from "../../contexts/MapContext";
5
5
  import MapLibreMap from "./MapLibreMap";
6
6
 
7
7
  const MapLibreMapTestComponent = (props) => {
8
- const mapContext = useContext(MapContext);
9
- const [mapIsVisible, setMapIsVisible] = useState(true);
8
+ const mapContext = useContext(MapContext);
9
+ const [mapIsVisible, setMapIsVisible] = useState(true);
10
10
 
11
- return (
12
- <>
13
- <button
14
- className="toggle_map_is_visible"
15
- onClick={() => {
16
- setMapIsVisible(!mapIsVisible);
17
- }}
18
- >
19
- toggle mapIsVisible
20
- </button>
21
- <div className="map_count">{mapContext.mapIds.length}</div>
11
+ return (
12
+ <>
13
+ <button
14
+ className="toggle_map_is_visible"
15
+ onClick={() => {
16
+ setMapIsVisible(!mapIsVisible);
17
+ }}
18
+ >
19
+ toggle mapIsVisible
20
+ </button>
21
+ <div className="map_count">{mapContext.mapIds.length}</div>
22
22
 
23
- {!props.mapId && mapIsVisible && <MapLibreMap />}
24
- {props.mapId && (
25
- <>
26
- <div className="map_1_exists">
27
- {mapContext.getMap(props.mapId) ? "true" : "false"}
28
- </div>
29
- {mapIsVisible && <MapLibreMap mapId={props.mapId} />}
30
- </>
31
- )}
32
- </>
33
- );
23
+ {!props.mapId && mapIsVisible && <MapLibreMap />}
24
+ {props.mapId && (
25
+ <>
26
+ <div className="map_1_exists">
27
+ {mapContext.getMap(props.mapId) ? "true" : "false"}
28
+ </div>
29
+ {mapIsVisible && <MapLibreMap mapId={props.mapId} />}
30
+ </>
31
+ )}
32
+ </>
33
+ );
34
34
  };
35
35
 
36
36
  describe("<MapLibreMap>", () => {
37
- it("should register an anonymous maplibre object to mapContext", async () => {
38
- const wrapper = mount(
39
- <MapComponentsProvider>
40
- <MapLibreMapTestComponent />
41
- </MapComponentsProvider>
42
- );
37
+ it("should register an anonymous maplibre object to mapContext", async () => {
38
+ const wrapper = mount(
39
+ <MapComponentsProvider>
40
+ <MapLibreMapTestComponent />
41
+ </MapComponentsProvider>
42
+ );
43
43
 
44
- expect(wrapper.find(".map_count").text()).toEqual("1");
45
- });
44
+ expect(wrapper.find(".map_count").text()).toEqual("1");
45
+ });
46
46
 
47
- it("should remove an anonymous maplibre object from mapContext", async () => {
48
- const wrapper = mount(
49
- <MapComponentsProvider>
50
- <MapLibreMapTestComponent />
51
- </MapComponentsProvider>
52
- );
47
+ it("should remove an anonymous maplibre object from mapContext", async () => {
48
+ const wrapper = mount(
49
+ <MapComponentsProvider>
50
+ <MapLibreMapTestComponent />
51
+ </MapComponentsProvider>
52
+ );
53
53
 
54
- expect(wrapper.find(".map_count").text()).toEqual("1");
54
+ expect(wrapper.find(".map_count").text()).toEqual("1");
55
55
 
56
- wrapper.find(".toggle_map_is_visible").simulate("click");
56
+ wrapper.find(".toggle_map_is_visible").simulate("click");
57
57
 
58
- expect(wrapper.find(".map_count").text()).toEqual("0");
59
- });
58
+ expect(wrapper.find(".map_count").text()).toEqual("0");
59
+ });
60
60
 
61
- it("should register a maplibre object with the id 'map_1' to mapContext", async () => {
62
- const wrapper = mount(
63
- <MapComponentsProvider>
64
- <MapLibreMapTestComponent mapId="map_1" />
65
- </MapComponentsProvider>
66
- );
61
+ it("should register a maplibre object with the id 'map_1' to mapContext", async () => {
62
+ const wrapper = mount(
63
+ <MapComponentsProvider>
64
+ <MapLibreMapTestComponent mapId="map_1" />
65
+ </MapComponentsProvider>
66
+ );
67
67
 
68
- expect(wrapper.find(".map_1_exists").text()).toEqual("true");
69
- });
68
+ expect(wrapper.find(".map_1_exists").text()).toEqual("true");
69
+ });
70
70
 
71
- it("should remove a maplibre object with the id 'map_1' to mapContext", async () => {
72
- const wrapper = mount(
73
- <MapComponentsProvider>
74
- <MapLibreMapTestComponent mapId="map_1" />
75
- </MapComponentsProvider>
76
- );
71
+ it("should remove a maplibre object with the id 'map_1' to mapContext", async () => {
72
+ const wrapper = mount(
73
+ <MapComponentsProvider>
74
+ <MapLibreMapTestComponent mapId="map_1" />
75
+ </MapComponentsProvider>
76
+ );
77
77
 
78
- expect(wrapper.find(".map_1_exists").text()).toEqual("true");
78
+ expect(wrapper.find(".map_1_exists").text()).toEqual("true");
79
79
 
80
- wrapper.find(".toggle_map_is_visible").simulate("click");
80
+ wrapper.find(".toggle_map_is_visible").simulate("click");
81
81
 
82
- expect(wrapper.find(".map_1_exists").text()).toEqual("false");
83
- });
82
+ expect(wrapper.find(".map_1_exists").text()).toEqual("false");
83
+ });
84
84
  });
@@ -1,4 +1,4 @@
1
- import React, { useRef, useEffect, useContext, FC, RefObject } from "react";
1
+ import React, { useRef, useEffect, useContext, FC, RefObject } from "react";
2
2
 
3
3
  import MapContext from "../../contexts/MapContext";
4
4
  import MapLibreGlWrapper from "./lib/MapLibreGlWrapper";
@@ -7,45 +7,45 @@ import { MapOptions as MapOptionsType } from "maplibre-gl";
7
7
  import "maplibre-gl/dist/maplibre-gl.css";
8
8
 
9
9
  type MapLibreMapProps = {
10
- /**
11
- * Id of the MapLibreGl(Wrapper) instance in mapContext
12
- */
13
- mapId?: string;
14
- /**
15
- * Config object that is passed to the MapLibreGl constructor as first parameter.
16
- * See https://maplibre.org/maplibre-gl-js-docs/api/map/ for a formal documentation of al
17
- * available properties.
18
- */
19
- options?: Partial<MapOptionsType>;
20
- /**
21
- * css style definition passed to the map container DOM element
22
- */
23
- style?: object;
10
+ /**
11
+ * Id of the MapLibreGl(Wrapper) instance in mapContext
12
+ */
13
+ mapId?: string;
14
+ /**
15
+ * Config object that is passed to the MapLibreGl constructor as first parameter.
16
+ * See https://maplibre.org/maplibre-gl-js-docs/api/map/ for a formal documentation of al
17
+ * available properties.
18
+ */
19
+ options?: Partial<MapOptionsType>;
20
+ /**
21
+ * css style definition passed to the map container DOM element
22
+ */
23
+ style?: object;
24
24
  };
25
25
 
26
26
  const defaultProps: MapLibreMapProps = {
27
- mapId: undefined,
28
- options: {
29
- center: { lng: 8.607, lat: 53.1409349 },
30
- zoom: 11,
31
- container: '',
32
- style: {
33
- version: 8,
34
- name: "blank",
35
- center: [0, 0],
36
- zoom: 0,
37
- sources: {},
38
- layers: [
39
- {
40
- id: "background",
41
- type: "background",
42
- paint: {
43
- "background-color": "rgba(0,0,0,0)",
44
- },
45
- },
46
- ],
47
- },
48
- },
27
+ mapId: undefined,
28
+ options: {
29
+ center: { lng: 8.607, lat: 53.1409349 },
30
+ zoom: 11,
31
+ container: '',
32
+ style: {
33
+ version: 8,
34
+ name: "blank",
35
+ center: [0, 0],
36
+ zoom: 0,
37
+ sources: {},
38
+ layers: [
39
+ {
40
+ id: "background",
41
+ type: "background",
42
+ paint: {
43
+ "background-color": "rgba(0,0,0,0)",
44
+ },
45
+ },
46
+ ],
47
+ },
48
+ },
49
49
  };
50
50
 
51
51
  /**
@@ -59,59 +59,59 @@ const defaultProps: MapLibreMapProps = {
59
59
  * @category Map components
60
60
  */
61
61
  const MapLibreMap: FC<MapLibreMapProps> = (props: MapLibreMapProps) => {
62
- const map: any = useRef<MapLibreGlWrapper>(null);
63
- const mapContainer = useRef<HTMLDivElement>();
62
+ const map: any = useRef<MapLibreGlWrapper>(null);
63
+ const mapContainer = useRef<HTMLDivElement>();
64
64
 
65
- const mapContext: any = useContext<MapContextType>(MapContext);
65
+ const mapContext: any = useContext<MapContextType>(MapContext);
66
66
 
67
- const mapIdRef = useRef(props.mapId);
68
- const initializedRef = useRef(false);
69
- const currentStyle = useRef(props.options?.style);
67
+ const mapIdRef = useRef(props.mapId);
68
+ const initializedRef = useRef(false);
69
+ const currentStyle = useRef(props.options?.style);
70
70
 
71
- useEffect(() => {
72
- let mapId = mapIdRef.current;
71
+ useEffect(() => {
72
+ let mapId = mapIdRef.current;
73
73
 
74
- return () => {
75
- mapContext.removeMap(mapId);
76
- map.current?.remove?.();
77
- map.current = null;
78
- };
79
- }, []);
74
+ return () => {
75
+ mapContext.removeMap(mapId);
76
+ map.current?.remove?.();
77
+ map.current = null;
78
+ };
79
+ }, []);
80
80
 
81
- useEffect(() => {
82
- if (initializedRef.current) return;
81
+ useEffect(() => {
82
+ if (initializedRef.current) return;
83
83
 
84
- if (mapContainer.current) {
85
- initializedRef.current = true;
86
- map.current = new MapLibreGlWrapper({
87
- mapOptions: {
88
- style: '',
89
- container: mapContainer.current,
90
- ...props.options,
91
- },
92
- onReady: (map: any, wrapper: any) => {
93
- map.once("load", () => {
94
- if (props.mapId) {
95
- mapContext.registerMap(props.mapId, wrapper);
96
- } else {
97
- mapContext.setMap(wrapper);
98
- }
99
- });
100
- },
101
- });
102
- }
103
- }, [props.options, props.mapId]);
84
+ if (mapContainer.current) {
85
+ initializedRef.current = true;
86
+ map.current = new MapLibreGlWrapper({
87
+ mapOptions: {
88
+ style: '',
89
+ container: mapContainer.current,
90
+ ...props.options,
91
+ },
92
+ onReady: (map: any, wrapper: any) => {
93
+ map.once("load", () => {
94
+ if (props.mapId) {
95
+ mapContext.registerMap(props.mapId, wrapper);
96
+ } else {
97
+ mapContext.setMap(wrapper);
98
+ }
99
+ });
100
+ },
101
+ });
102
+ }
103
+ }, [props.options, props.mapId]);
104
104
 
105
- useEffect(() => {
106
- if (map.current?.map && props?.options?.style && currentStyle.current !== props.options.style) {
107
- console.log("set style");
108
- currentStyle.current = props.options.style;
109
- map.current.map.setStyle(props.options.style);
110
- }
111
- // @ts-ignore: props.options is either passed or populated with default values
112
- }, [props.options.style])
105
+ useEffect(() => {
106
+ if (map.current?.map && props?.options?.style && currentStyle.current !== props.options.style) {
107
+ console.log("set style");
108
+ currentStyle.current = props.options.style;
109
+ map.current.map.setStyle(props.options.style);
110
+ }
111
+ // @ts-ignore: props.options is either passed or populated with default values
112
+ }, [props.options.style])
113
113
 
114
- return <div ref={mapContainer as RefObject<HTMLDivElement>} className="mapContainer" style={props.style} />;
114
+ return <div ref={mapContainer as RefObject<HTMLDivElement>} className="mapContainer" style={props.style} />;
115
115
  };
116
116
 
117
117
  MapLibreMap.defaultProps = defaultProps;