@mapcomponents/react-maplibre 0.1.57 → 0.1.59

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 (276) 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 +18 -0
  7. package/coverage/clover.xml +229 -77
  8. package/coverage/coverage-final.json +43 -37
  9. package/coverage/lcov-report/index.html +65 -20
  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 +83 -83
  55. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  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 +11 -2
  90. package/coverage/lcov.info +448 -151
  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/hooks/exportMap/index.d.ts +11 -0
  104. package/dist/hooks/exportMap/lib.d.ts +36 -0
  105. package/dist/hooks/useLayer.d.ts +6 -5
  106. package/dist/hooks/useLayerEvent.d.ts +2 -0
  107. package/dist/hooks/useMap.d.ts +1 -1
  108. package/dist/hooks/useMapState.stories.d.ts +2 -2
  109. package/dist/hooks/useSource.d.ts +17 -0
  110. package/dist/hooks/useSources.stories.d.ts +13 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.esm.js +1055 -315
  113. package/dist/index.esm.js.map +1 -1
  114. package/eslintErrorTest.js +10 -0
  115. package/package.json +7 -1
  116. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  117. package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
  118. package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
  119. package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
  120. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
  121. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
  122. package/src/components/MlBasicComponent.js +25 -25
  123. package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
  124. package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
  125. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
  126. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
  127. package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
  128. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
  129. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
  130. package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
  131. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
  132. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
  133. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
  134. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
  135. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
  136. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
  137. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
  138. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
  139. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
  140. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
  141. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
  142. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
  143. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
  144. package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
  145. package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
  146. package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
  147. package/src/components/MlFeatureEditor/lib/constants.js +61 -61
  148. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
  149. package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
  150. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
  151. package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
  152. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
  153. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
  154. package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
  155. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
  156. package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
  157. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
  158. package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
  159. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
  160. package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
  161. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
  162. package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
  163. package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
  164. package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
  165. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
  166. package/src/components/MlFeatureEditor/lib/theme.js +230 -230
  167. package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
  168. package/src/components/MlFeatureEditor/lib/utils.js +40 -40
  169. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
  170. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
  171. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
  172. package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
  173. package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
  174. package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
  175. package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
  176. package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
  177. package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
  178. package/src/components/MlGPXViewer/gpxConverter.js +496 -496
  179. package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
  180. package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
  181. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
  182. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
  183. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
  184. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
  185. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
  186. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
  187. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
  188. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
  189. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
  190. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
  191. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
  192. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
  193. package/src/components/MlLayer/MlLayer.stories.js +5 -5
  194. package/src/components/MlLayer/MlLayer.test.js +86 -86
  195. package/src/components/MlLayer/MlLayer.tsx +36 -36
  196. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
  197. package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
  198. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
  199. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
  200. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
  201. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
  202. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
  203. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
  204. package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
  205. package/src/components/MlMarker/MlMarker.stories.js +7 -7
  206. package/src/components/MlMarker/MlMarker.tsx +119 -119
  207. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
  208. package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
  209. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
  210. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
  211. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
  212. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
  213. package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
  214. package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
  215. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
  216. package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
  217. package/src/components/MlScaleReference/MlScaleReference.js +82 -82
  218. package/src/components/MlScaleReference/MlScaleReference.stories.js +27 -27
  219. package/src/components/MlShareMapState/MlShareMapState.js +203 -203
  220. package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
  221. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
  222. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
  223. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
  224. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
  225. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
  226. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
  227. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
  228. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
  229. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
  230. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
  231. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
  232. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
  233. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
  234. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
  235. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
  236. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
  237. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
  238. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
  239. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
  240. package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
  241. package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
  242. package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
  243. package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
  244. package/src/contexts/MapComponentsProvider.test.js +229 -229
  245. package/src/contexts/MapContext.tsx +65 -65
  246. package/src/contexts/SimpleDataProvider.js +47 -47
  247. package/src/contexts/SimpleDataProvider.test.js +29 -29
  248. package/src/custom.d.tsx +14 -14
  249. package/src/decorators/MapContextDecorator.js +22 -22
  250. package/src/decorators/MapContextDecoratorHooks.js +34 -0
  251. package/src/decorators/MultiMapContextDecorator.js +63 -63
  252. package/src/decorators/NoNavToolsDecorator.js +17 -17
  253. package/src/decorators/ThemeWrapper.jsx +1 -1
  254. package/src/hooks/assets/pointWG.json +13 -0
  255. package/src/hooks/exportMap/index.ts +30 -0
  256. package/src/hooks/exportMap/lib.ts +187 -0
  257. package/src/hooks/useLayer.test.js +188 -188
  258. package/src/hooks/useLayer.ts +194 -180
  259. package/src/hooks/useLayerEvent.js +49 -0
  260. package/src/hooks/useMap.ts +67 -66
  261. package/src/hooks/useMapState.stories.js +78 -78
  262. package/src/hooks/useMapState.ts +161 -161
  263. package/src/hooks/useSource.ts +84 -0
  264. package/src/hooks/useSources.stories.js +232 -0
  265. package/src/hooks/useWms.js +71 -71
  266. package/src/index.ts +3 -0
  267. package/src/setupTests.js +86 -86
  268. package/src/ui_components/ImageLoader.js +62 -62
  269. package/src/ui_components/Legend.js +34 -34
  270. package/src/ui_components/LoadingOverlay.js +29 -29
  271. package/src/ui_components/LoadingOverlayContext.js +68 -68
  272. package/src/ui_components/Sidebar.js +80 -80
  273. package/src/ui_components/Tooltip.js +9 -9
  274. package/src/ui_components/TopToolbar.js +23 -23
  275. package/src/util/layerRemovalTest.js +111 -111
  276. package/src/util/sourceRemovalTest.js +103 -103
@@ -5,74 +5,74 @@ import CircularProgress from '@mui/material/CircularProgress';
5
5
  import ErrorIcon from '@mui/icons-material/Error';
6
6
  import { Box } from "@mui/system";
7
7
  const ImageLoader = (props) => {
8
- const [state, setState] = useState("loading");
8
+ const [state, setState] = useState("loading");
9
9
 
10
- useEffect(() => {
11
- if (!props.src) {
12
- setState("error");
13
- return;
14
- }
15
- fetch(props.src)
16
- .then(({ ok }) => {
17
- if (ok) {
18
- setState("ready");
19
- } else {
20
- setState("error");
21
- }
22
- })
23
- .catch((e) => {
24
- console.error(e);
25
- setState("error");
26
- });
27
- }, [props.src]);
10
+ useEffect(() => {
11
+ if (!props.src) {
12
+ setState("error");
13
+ return;
14
+ }
15
+ fetch(props.src)
16
+ .then(({ ok }) => {
17
+ if (ok) {
18
+ setState("ready");
19
+ } else {
20
+ setState("error");
21
+ }
22
+ })
23
+ .catch((e) => {
24
+ console.error(e);
25
+ setState("error");
26
+ });
27
+ }, [props.src]);
28
28
 
29
- const boxStyle = {
30
- width: "100%",
31
- height: "100%",
32
- border: 2,
33
- borderRadius: "8px",
34
- textAlign: "center",
35
- display: "flex",
36
- };
29
+ const boxStyle = {
30
+ width: "100%",
31
+ height: "100%",
32
+ border: 2,
33
+ borderRadius: "8px",
34
+ textAlign: "center",
35
+ display: "flex",
36
+ };
37
37
 
38
- const LoadingImage = () => {
39
- return (
40
- <Box className={props.className} sx={{ ...boxStyle, ...props.style }}>
41
- <CircularProgress />
42
- </Box>
43
- );
44
- };
38
+ const LoadingImage = () => {
39
+ return (
40
+ <Box className={props.className} sx={{ ...boxStyle, ...props.style }}>
41
+ <CircularProgress />
42
+ </Box>
43
+ );
44
+ };
45
45
 
46
- const ReadyImage = () => {
47
- return (
48
- <img
49
- className={props.className}
50
- style={{ ...boxStyle, ...props.style }}
51
- src={props.src}
52
- alt={props.alt || ""}
53
- />
54
- );
55
- };
56
- const ErrorImage = () => {
57
- return (
58
- <Box className={props.className} sx={{ boxStyle, ...props.style }}>
59
- <ErrorIcon sx={{ display: "block", margin: "auto" }} />
60
- </Box>
61
- );
62
- };
46
+ const ReadyImage = () => {
47
+ return (
48
+ <img
49
+ className={props.className}
50
+ style={{ ...boxStyle, ...props.style }}
51
+ src={props.src}
52
+ alt={props.alt || ""}
53
+ />
54
+ );
55
+ };
56
+ const ErrorImage = () => {
57
+ return (
58
+ <Box className={props.className} sx={{ boxStyle, ...props.style }}>
59
+ <ErrorIcon sx={{ display: "block", margin: "auto" }} />
60
+ </Box>
61
+ );
62
+ };
63
63
 
64
- const renderImage = (state) => {
65
- switch (state) {
66
- case "ready":
67
- return <ReadyImage />;
68
- case "error":
69
- return <ErrorImage />;
70
- default:
71
- return <LoadingImage />;
72
- }
73
- };
64
+ const renderImage = (state) => {
65
+ switch (state) {
66
+ case "ready":
67
+ return <ReadyImage />;
68
+ case "error":
69
+ return <ErrorImage />;
70
+ default:
71
+ return <LoadingImage />;
72
+ }
73
+ };
74
74
 
75
- return <>{renderImage(state)}</>;
75
+ return <>{renderImage(state)}</>;
76
76
  };
77
77
 
78
78
  export default ImageLoader
@@ -3,42 +3,42 @@ import makeStyles from '@mui/styles/makeStyles';
3
3
  import Drawer from "@mui/material/Drawer";
4
4
 
5
5
  const useStyles = makeStyles(() => ({
6
- drawer: {
7
- boxShadow: "0px 2px 3px 2px rgb(0,0,0, .4)",
8
- flexGrow: 1,
9
- zIndex: 110,
10
- position: "absolute",
11
- top: "100px",
12
- left: 0,
13
- height: "275px",
14
- backgroundColor: "#aecaec",
15
- },
16
- drawerPaper: {
17
- position: "static",
18
- display: "flex",
19
- alignItems: "stretch",
20
- alignContent: "stretch",
21
- flexDirection: "column",
22
- padding: "10px 10px 10px 10px",
23
- boxSizing: "border-box",
24
- minWidth: "170px",
25
- },
6
+ drawer: {
7
+ boxShadow: "0px 2px 3px 2px rgb(0,0,0, .4)",
8
+ flexGrow: 1,
9
+ zIndex: 110,
10
+ position: "absolute",
11
+ top: "100px",
12
+ left: 0,
13
+ height: "275px",
14
+ backgroundColor: "#aecaec",
15
+ },
16
+ drawerPaper: {
17
+ position: "static",
18
+ display: "flex",
19
+ alignItems: "stretch",
20
+ alignContent: "stretch",
21
+ flexDirection: "column",
22
+ padding: "10px 10px 10px 10px",
23
+ boxSizing: "border-box",
24
+ minWidth: "170px",
25
+ },
26
26
  }));
27
27
 
28
28
  export default function Legend(props) {
29
- const classes = useStyles();
29
+ const classes = useStyles();
30
30
 
31
- return (
32
- <Drawer
33
- className={classes.drawer}
34
- variant="persistent"
35
- anchor={"left"}
36
- open={true}
37
- classes={{
38
- paper: classes.drawerPaper,
39
- }}
40
- >
41
- {props.children}
42
- </Drawer>
43
- );
31
+ return (
32
+ <Drawer
33
+ className={classes.drawer}
34
+ variant="persistent"
35
+ anchor={"left"}
36
+ open={true}
37
+ classes={{
38
+ paper: classes.drawerPaper,
39
+ }}
40
+ >
41
+ {props.children}
42
+ </Drawer>
43
+ );
44
44
  }
@@ -6,36 +6,36 @@ import FadeLoader from "react-spinners/FadeLoader";
6
6
  import "./LoadingOverlay.css";
7
7
 
8
8
  function LoadingOverlay() {
9
- const loadingOverlayContext = useContext(LoadingOverlayContext);
10
- let { fadeoutAnimation, visible } = loadingOverlayContext;
9
+ const loadingOverlayContext = useContext(LoadingOverlayContext);
10
+ let { fadeoutAnimation, visible } = loadingOverlayContext;
11
11
 
12
- return (
13
- <div
14
- className={
15
- fadeoutAnimation ? "loadingOverlay-fadeout" : "loadingOverlay-fadein"
16
- }
17
- style={{
18
- position: "fixed",
19
- top: 0,
20
- left: 0,
21
- bottom: 0,
22
- right: 0,
23
- backgroundColor: "#000",
24
- zIndex: 1000000,
25
- overflow: "hidden",
26
- display: visible ? "flex" : "none",
27
- alignItems: "center",
28
- justifyContent: "center",
29
- }}
30
- >
31
- <FadeLoader
32
- color={"#ababab"}
33
- loading={visible}
34
- css={{ display: "block", borderColor: "red" }}
35
- size={50}
36
- />
37
- </div>
38
- );
12
+ return (
13
+ <div
14
+ className={
15
+ fadeoutAnimation ? "loadingOverlay-fadeout" : "loadingOverlay-fadein"
16
+ }
17
+ style={{
18
+ position: "fixed",
19
+ top: 0,
20
+ left: 0,
21
+ bottom: 0,
22
+ right: 0,
23
+ backgroundColor: "#000",
24
+ zIndex: 1000000,
25
+ overflow: "hidden",
26
+ display: visible ? "flex" : "none",
27
+ alignItems: "center",
28
+ justifyContent: "center",
29
+ }}
30
+ >
31
+ <FadeLoader
32
+ color={"#ababab"}
33
+ loading={visible}
34
+ css={{ display: "block", borderColor: "red" }}
35
+ size={50}
36
+ />
37
+ </div>
38
+ );
39
39
  }
40
40
 
41
41
  export default LoadingOverlay;
@@ -6,77 +6,77 @@ const LoadingOverlayContext = React.createContext({});
6
6
  const LoadingOverlayContextProvider = LoadingOverlayContext.Provider;
7
7
 
8
8
  const LoadingOverlayProvider = ({ children }) => {
9
- const mapContext = useContext(MapContext);
10
-
11
- const [controlled, setControlled] = useState(false);
12
- const [loadingDone, setLoadingDone] = useState(false);
13
- const [visible, setVisible] = useState(true);
14
- const [fadeoutAnimation, setFadeoutAnimation] = useState(false);
15
- const mapJobsRef = useRef({});
16
- const [checkIdleTrigger, setCheckIdleTrigger] = useState(0);
17
-
18
- const createOnMapIdleFunction = (mapId) => () => {
19
- mapJobsRef.current[mapId] = true;
20
- setCheckIdleTrigger(Math.random());
21
- };
22
-
23
- const fadeOut = () => {
24
- // add another setTimeout as MapLibre appear to fire idle before all tiles have rendered
25
- setTimeout(() => {
26
- setFadeoutAnimation(true);
27
- setTimeout(() => {
28
- setVisible(false);
29
- }, 1700);
30
- }, 900);
31
- };
32
-
33
- useEffect(() => {
34
- if (!mapContext.map || controlled) return;
35
-
36
- for (var key in mapJobsRef.current) {
37
- if (!mapJobsRef.current[key]) return;
38
- }
39
-
40
- fadeOut();
41
- }, [checkIdleTrigger, controlled, mapContext]);
42
-
43
- useEffect(() => {
44
- for (var i = 0, len = mapContext.mapIds.length; i < len; i++) {
45
- if (Object.keys(mapJobsRef.current).indexOf(mapContext.mapIds[i]) === -1) {
46
- let mapId = mapContext.mapIds[i] + "";
47
-
48
- if (mapContext.getMap(mapId)) {
49
- mapJobsRef.current[mapId] = false;
50
-
51
- mapContext.getMap(mapId).on("idle", createOnMapIdleFunction(mapId));
52
- }
53
- }
54
- }
55
- }, [mapContext, mapContext.mapIds]);
56
-
57
- useEffect(() => {
58
- if (loadingDone) {
59
- fadeOut();
60
- }
61
- }, [loadingDone]);
62
-
63
- const value = {
64
- setControlled,
65
- controlled,
66
- visible,
67
- fadeoutAnimation,
68
- setLoadingDone,
69
- };
70
-
71
- return (
72
- <LoadingOverlayContextProvider value={value}>
73
- {children}
74
- </LoadingOverlayContextProvider>
75
- );
9
+ const mapContext = useContext(MapContext);
10
+
11
+ const [controlled, setControlled] = useState(false);
12
+ const [loadingDone, setLoadingDone] = useState(false);
13
+ const [visible, setVisible] = useState(true);
14
+ const [fadeoutAnimation, setFadeoutAnimation] = useState(false);
15
+ const mapJobsRef = useRef({});
16
+ const [checkIdleTrigger, setCheckIdleTrigger] = useState(0);
17
+
18
+ const createOnMapIdleFunction = (mapId) => () => {
19
+ mapJobsRef.current[mapId] = true;
20
+ setCheckIdleTrigger(Math.random());
21
+ };
22
+
23
+ const fadeOut = () => {
24
+ // add another setTimeout as MapLibre appear to fire idle before all tiles have rendered
25
+ setTimeout(() => {
26
+ setFadeoutAnimation(true);
27
+ setTimeout(() => {
28
+ setVisible(false);
29
+ }, 1700);
30
+ }, 900);
31
+ };
32
+
33
+ useEffect(() => {
34
+ if (!mapContext.map || controlled) return;
35
+
36
+ for (var key in mapJobsRef.current) {
37
+ if (!mapJobsRef.current[key]) return;
38
+ }
39
+
40
+ fadeOut();
41
+ }, [checkIdleTrigger, controlled, mapContext]);
42
+
43
+ useEffect(() => {
44
+ for (var i = 0, len = mapContext.mapIds.length; i < len; i++) {
45
+ if (Object.keys(mapJobsRef.current).indexOf(mapContext.mapIds[i]) === -1) {
46
+ let mapId = mapContext.mapIds[i] + "";
47
+
48
+ if (mapContext.getMap(mapId)) {
49
+ mapJobsRef.current[mapId] = false;
50
+
51
+ mapContext.getMap(mapId).on("idle", createOnMapIdleFunction(mapId));
52
+ }
53
+ }
54
+ }
55
+ }, [mapContext, mapContext.mapIds]);
56
+
57
+ useEffect(() => {
58
+ if (loadingDone) {
59
+ fadeOut();
60
+ }
61
+ }, [loadingDone]);
62
+
63
+ const value = {
64
+ setControlled,
65
+ controlled,
66
+ visible,
67
+ fadeoutAnimation,
68
+ setLoadingDone,
69
+ };
70
+
71
+ return (
72
+ <LoadingOverlayContextProvider value={value}>
73
+ {children}
74
+ </LoadingOverlayContextProvider>
75
+ );
76
76
  };
77
77
 
78
78
  LoadingOverlayProvider.propTypes = {
79
- children: PropTypes.node.isRequired,
79
+ children: PropTypes.node.isRequired,
80
80
  };
81
81
 
82
82
  export { LoadingOverlayContext, LoadingOverlayProvider };
@@ -8,93 +8,93 @@ import { IconButton } from "@mui/material";
8
8
  import useMediaQuery from "@mui/material/useMediaQuery";
9
9
 
10
10
  const useStyles = makeStyles((theme) => ({
11
- drawer: {
12
- flexGrow: 1,
13
- zIndex: 105,
14
- position: "absolute",
15
- top: 0,
16
- left: 0,
17
- bottom: 0,
18
- backgroundColor: "#fafafa",
19
- display: "flex",
20
- flexDirection: "column",
21
- alignItems: "stretch",
22
- alignContent: "stretch",
23
- },
24
- drawerPaper: {
25
- position: "initial !important",
26
- boxSizing: "border-box",
27
- padding: "40px",
28
- visibility: "visible !important",
29
- zIndex: "initial !important",
30
- },
31
- drawerHeader: {
32
- alignContent: "flex-start",
33
- display: "flex",
34
- },
35
- drawerContent: {},
11
+ drawer: {
12
+ flexGrow: 1,
13
+ zIndex: 105,
14
+ position: "absolute",
15
+ top: 0,
16
+ left: 0,
17
+ bottom: 0,
18
+ backgroundColor: "#fafafa",
19
+ display: "flex",
20
+ flexDirection: "column",
21
+ alignItems: "stretch",
22
+ alignContent: "stretch",
23
+ },
24
+ drawerPaper: {
25
+ position: "initial !important",
26
+ boxSizing: "border-box",
27
+ padding: "40px",
28
+ visibility: "visible !important",
29
+ zIndex: "initial !important",
30
+ },
31
+ drawerHeader: {
32
+ alignContent: "flex-start",
33
+ display: "flex",
34
+ },
35
+ drawerContent: {},
36
36
  }));
37
37
 
38
38
  const DrawerHeader = styled("div")(({ theme }) => ({
39
- display: "flex",
40
- alignItems: "center",
39
+ display: "flex",
40
+ alignItems: "center",
41
41
  }));
42
42
 
43
43
  export default function Sidebar(props) {
44
- const classes = useStyles();
45
- const mediaIsMobile = useMediaQuery("(max-width:900px)");
44
+ const classes = useStyles();
45
+ const mediaIsMobile = useMediaQuery("(max-width:900px)");
46
46
 
47
- const [drawerOpen, setDrawerOpen] = useState(true);
47
+ const [drawerOpen, setDrawerOpen] = useState(true);
48
48
 
49
- const handleDrawerOpen = () => {
50
- setDrawerOpen(true);
51
- };
52
- const handleDrawerClose = () => {
53
- setDrawerOpen(false);
54
- };
49
+ const handleDrawerOpen = () => {
50
+ setDrawerOpen(true);
51
+ };
52
+ const handleDrawerClose = () => {
53
+ setDrawerOpen(false);
54
+ };
55
55
 
56
- return (
57
- <>
58
- <IconButton
59
- onClick={handleDrawerOpen}
60
- style={{
61
- zIndex: 101,
62
- position: "relative",
63
- padding: "20px",
64
- }}
65
- >
66
- <MenuIcon />
67
- </IconButton>
68
- <Drawer
69
- transitionDuration={0}
70
- className={classes.drawer}
71
- variant="persistent"
72
- anchor="left"
73
- open={drawerOpen}
74
- classes={{
75
- paper: classes.drawerPaper,
76
- }}
77
- sx={{
78
- ...props.sx,
79
- ...{
80
- maxWidth: mediaIsMobile ? "90vw" : "20vw",
81
- },
82
- ...(drawerOpen ? {} : { left: mediaIsMobile ? "-90vw" : "-20vw" }),
83
- }}
84
- >
85
- <DrawerHeader className={classes.drawerHeader}>
86
- <IconButton onClick={handleDrawerClose}>
87
- <ChevronLeftIcon
88
- style={
89
- {
90
- //paddingBottom: "40px",
91
- }
92
- }
93
- />
94
- </IconButton>
95
- </DrawerHeader>
96
- <div style={{ maxWidth: "100%" }}>{props.children}</div>
97
- </Drawer>
98
- </>
99
- );
56
+ return (
57
+ <>
58
+ <IconButton
59
+ onClick={handleDrawerOpen}
60
+ style={{
61
+ zIndex: 101,
62
+ position: "relative",
63
+ padding: "20px",
64
+ }}
65
+ >
66
+ <MenuIcon />
67
+ </IconButton>
68
+ <Drawer
69
+ transitionDuration={0}
70
+ className={classes.drawer}
71
+ variant="persistent"
72
+ anchor="left"
73
+ open={drawerOpen}
74
+ classes={{
75
+ paper: classes.drawerPaper,
76
+ }}
77
+ sx={{
78
+ ...props.sx,
79
+ ...{
80
+ maxWidth: mediaIsMobile ? "90vw" : "20vw",
81
+ },
82
+ ...(drawerOpen ? {} : { left: mediaIsMobile ? "-90vw" : "-20vw" }),
83
+ }}
84
+ >
85
+ <DrawerHeader className={classes.drawerHeader}>
86
+ <IconButton onClick={handleDrawerClose}>
87
+ <ChevronLeftIcon
88
+ style={
89
+ {
90
+ //paddingBottom: "40px",
91
+ }
92
+ }
93
+ />
94
+ </IconButton>
95
+ </DrawerHeader>
96
+ <div style={{ maxWidth: "100%" }}>{props.children}</div>
97
+ </Drawer>
98
+ </>
99
+ );
100
100
  }
@@ -5,17 +5,17 @@ import Drawer from "@mui/material/Drawer";
5
5
  import Divider from "@mui/material/Divider";
6
6
 
7
7
  const useStyles = makeStyles((theme) => ({
8
- tooltip: {
9
- position: "fixed",
10
- top: "100px",
11
- left: "100px",
12
- zIndex: 100000,
13
- },
8
+ tooltip: {
9
+ position: "fixed",
10
+ top: "100px",
11
+ left: "100px",
12
+ zIndex: 100000,
13
+ },
14
14
  }));
15
15
 
16
16
  export default function Legend(props) {
17
- const classes = useStyles();
18
- const theme = useTheme();
17
+ const classes = useStyles();
18
+ const theme = useTheme();
19
19
 
20
- return <div className={classes.tooltip}>tooltip</div>;
20
+ return <div className={classes.tooltip}>tooltip</div>;
21
21
  }