@mapcomponents/react-maplibre 0.1.66 → 0.1.68

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 (287) hide show
  1. package/.github/workflows/node_version_test.yml +1 -1
  2. package/.storybook/main.js +37 -31
  3. package/.storybook/preview.js +21 -0
  4. package/CHANGELOG.md +13 -0
  5. package/coverage/clover.xml +545 -472
  6. package/coverage/coverage-final.json +18 -17
  7. package/coverage/lcov-report/index.html +80 -80
  8. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +50 -26
  9. package/coverage/lcov-report/src/components/MapLibreMap/index.html +5 -5
  10. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +30 -51
  11. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +3 -3
  12. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
  13. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +1 -1
  15. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +1 -1
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  19. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  21. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +48 -105
  22. package/coverage/lcov-report/src/components/MlFollowGps/index.html +15 -15
  23. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +2 -2
  24. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  25. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html +1 -1
  26. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +1 -1
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +1 -1
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +1 -1
  31. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +1 -1
  33. package/coverage/lcov-report/src/components/MlGpxViewer/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +1 -1
  35. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  36. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +52 -40
  39. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +10 -10
  40. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +4 -4
  41. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  43. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  44. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  47. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  48. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
  49. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  50. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  51. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  52. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +41 -113
  53. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +15 -15
  54. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  55. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
  56. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlScaleReference/{MlScaleReference.js.html → MlScaleReference.tsx.html} +57 -36
  58. package/coverage/lcov-report/src/components/MlScaleReference/index.html +2 -2
  59. package/coverage/lcov-report/src/components/MlShareMapState/{MlShareMapState.js.html → MlShareMapState.tsx.html} +192 -84
  60. package/coverage/lcov-report/src/components/MlShareMapState/index.html +20 -20
  61. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +1 -1
  62. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +1 -1
  63. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +1 -1
  64. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +2 -2
  65. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlSketchTool/MlSketchTool.tsx.html +2 -2
  67. package/coverage/lcov-report/src/components/MlSketchTool/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.html +1 -1
  69. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  71. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreejsLayer.tsx.html +769 -0
  72. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +25 -10
  73. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
  74. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  75. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  76. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  77. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +22 -10
  78. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +13 -13
  79. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +11 -11
  80. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +11 -11
  81. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +1 -1
  82. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  83. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +27 -18
  84. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +11 -11
  85. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +72 -27
  86. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  87. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  88. package/coverage/lcov-report/src/contexts/index.html +1 -1
  89. package/coverage/lcov-report/src/hooks/index.html +21 -21
  90. package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +1 -1
  91. package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +1 -1
  92. package/coverage/lcov-report/src/hooks/useExportMap/index.html +1 -1
  93. package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +1 -1
  94. package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +2 -2
  95. package/coverage/lcov-report/src/hooks/useGpx/index.html +1 -1
  96. package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +1 -1
  97. package/coverage/lcov-report/src/hooks/useLayer.ts.html +1 -1
  98. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +9 -9
  99. package/coverage/lcov-report/src/hooks/useLayerFilter/index.html +1 -1
  100. package/coverage/lcov-report/src/hooks/useLayerFilter/useLayerFilter.ts.html +1 -1
  101. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +1 -1
  102. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +9 -6
  103. package/coverage/lcov-report/src/hooks/useMap.ts.html +2 -2
  104. package/coverage/lcov-report/src/hooks/useMapState.ts.html +8 -29
  105. package/coverage/lcov-report/src/hooks/useSource.ts.html +10 -10
  106. package/coverage/lcov-report/src/hooks/useWms.ts.html +1 -1
  107. package/coverage/lcov-report/src/index.html +1 -1
  108. package/coverage/lcov-report/src/index.ts.html +105 -12
  109. package/coverage/lcov.info +1038 -917
  110. package/dist/components/MapLibreMap/MapLibreMap.d.ts +3 -3
  111. package/dist/components/MapLibreMap/MapLibreMap.stories.d.ts +5 -0
  112. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +17 -15
  113. package/dist/components/MlCenterPosition/MlCenterPosition.d.ts +2 -15
  114. package/dist/components/MlCenterPosition/MlCenterPosition.stories.d.ts +2 -15
  115. package/dist/components/MlComponentTemplate/MlComponentTemplate.d.ts +1 -0
  116. package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +2 -1
  117. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.d.ts +1 -0
  118. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +2 -1
  119. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +1 -0
  120. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +2 -1
  121. package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +1 -0
  122. package/dist/components/MlCreatePdfForm/lib/_PdfPreview.d.ts +1 -0
  123. package/dist/components/MlFeatureEditor/MlFeatureEditor.d.ts +1 -0
  124. package/dist/components/MlFeatureEditor/lib/create_supplementary_points.d.ts +1 -1
  125. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  126. package/dist/components/MlFillExtrusionLayer/MlFillExtrusionLayer.d.ts +1 -0
  127. package/dist/components/MlFollowGps/MlFollowGps.d.ts +5 -23
  128. package/dist/components/MlFollowGps/MlFollowGps.stories.d.ts +2 -2
  129. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.d.ts +1 -0
  130. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +2 -1
  131. package/dist/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.d.ts +1 -0
  132. package/dist/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.d.ts +1 -0
  133. package/dist/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.d.ts +4 -1
  134. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +1 -0
  135. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +2 -1
  136. package/dist/components/MlGpxViewer/MlGpxViewer.d.ts +1 -0
  137. package/dist/components/MlGpxViewer/MlGpxViewer.stories.d.ts +2 -1
  138. package/dist/components/MlGpxViewer/util/GeoJsonProvider.d.ts +1 -0
  139. package/dist/components/MlGpxViewer/util/MetadataDrawer.d.ts +1 -0
  140. package/dist/components/MlGpxViewer/util/MlGpxDemoLoader.d.ts +1 -0
  141. package/dist/components/MlGpxViewer/util/MlGpxViewerInstructions.d.ts +1 -0
  142. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.d.ts +1 -0
  143. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +2 -1
  144. package/dist/components/MlLayer/MlLayer.d.ts +1 -0
  145. package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +2 -1
  146. package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +2 -1
  147. package/dist/components/MlMarker/MlMarker.d.ts +1 -0
  148. package/dist/components/MlMeasureTool/MlMeasureTool.d.ts +1 -0
  149. package/dist/components/MlNavigationCompass/MlNavigationCompass.d.ts +1 -0
  150. package/dist/components/MlNavigationTools/MlNavigationTools.d.ts +5 -0
  151. package/dist/components/MlScaleReference/MlScaleReference.d.ts +8 -1
  152. package/dist/components/MlShareMapState/MlShareMapState.d.ts +33 -13
  153. package/dist/components/MlShareMapState/MlShareMapState.stories.d.ts +16 -9
  154. package/dist/components/MlSketchTool/LayerList/ColorPicker.d.ts +1 -0
  155. package/dist/components/MlSketchTool/LayerList/LayerList.d.ts +1 -0
  156. package/dist/components/MlSketchTool/LayerList/LayerListItem.d.ts +1 -0
  157. package/dist/components/MlSketchTool/LayerList/LayerPropertyForm.d.ts +1 -0
  158. package/dist/components/MlSketchTool/MlSketchTool.d.ts +1 -0
  159. package/dist/components/MlSketchTool/MlSketchTool.stories.d.ts +2 -1
  160. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.d.ts +1 -0
  161. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +2 -1
  162. package/dist/components/MlSpatialElevationProfile/util/getElevationData.d.ts +1 -1
  163. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.stories.d.ts +2 -1
  164. package/dist/components/MlThreeJsLayer/MlThreejsLayer.d.ts +30 -0
  165. package/dist/components/MlThreeJsLayer/lib/GLTFLoader.d.ts +2 -1
  166. package/dist/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.d.ts +1 -0
  167. package/dist/components/MlVectorTileLayer/MlVectorTileLayer.d.ts +3 -2
  168. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.d.ts +2 -1
  169. package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +1 -0
  170. package/dist/components/MlWmsLoader/MlWmsLoader.d.ts +1 -0
  171. package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +2 -1
  172. package/dist/components/MlWmsLoader/utils/MlWmsLoaderInstructions.d.ts +1 -0
  173. package/dist/components/MlWmsLoader/utils/WMSLinks.d.ts +1 -0
  174. package/dist/contexts/MapContext.d.ts +13 -2
  175. package/dist/decorators/EmptyMapDecorator.d.ts +2 -0
  176. package/dist/decorators/MapContextDecorator.d.ts +1 -1
  177. package/dist/decorators/MapContextDecoratorHooks.d.ts +1 -1
  178. package/dist/decorators/MultiMapContextDecorator.d.ts +1 -1
  179. package/dist/decorators/NoNavToolsDecorator.d.ts +1 -1
  180. package/dist/decorators/ThemeDecorator.d.ts +2 -0
  181. package/dist/hooks/useCameraFollowPath/useCameraFollowPath.stories.d.ts +2 -1
  182. package/dist/hooks/useExportMap/lib.d.ts +1 -1
  183. package/dist/hooks/useLayerFilter/useLayerFilter.stories.d.ts +2 -1
  184. package/dist/hooks/useLayerHoverPopup/useLayerHoverPopup.d.ts +1 -0
  185. package/dist/index.d.ts +25 -8
  186. package/dist/index.esm.css +0 -97
  187. package/dist/index.esm.js +2187 -9306
  188. package/dist/index.esm.js.map +1 -1
  189. package/dist/setupTests.d.ts +6 -6
  190. package/dist/ui_components/Dropzone.d.ts +1 -0
  191. package/dist/ui_components/ImageLoader.d.ts +1 -0
  192. package/dist/ui_components/LayerList/LayerList.d.ts +6 -0
  193. package/dist/ui_components/LayerList/LayerList.stories.d.ts +12 -0
  194. package/dist/ui_components/LayerList/LayerListFolder.d.ts +9 -0
  195. package/dist/ui_components/LayerList/LayerListItem.d.ts +18 -0
  196. package/dist/ui_components/LayerList/util/LayerListItemVectorLayer.d.ts +15 -0
  197. package/dist/ui_components/LayerList/util/LayerPropertyForm.d.ts +10 -0
  198. package/dist/ui_components/LayerList/util/input/ColorPicker.d.ts +10 -0
  199. package/dist/ui_components/LoadingOverlayContext.d.ts +0 -1
  200. package/dist/ui_components/MapcomponentsTheme.d.ts +7 -0
  201. package/dist/ui_components/Tooltip.d.ts +1 -0
  202. package/dist/ui_components/TopToolbar.d.ts +1 -0
  203. package/dist/ui_components/UploadButton.d.ts +1 -0
  204. package/dist/util/Instructions.d.ts +1 -0
  205. package/package.json +67 -67
  206. package/public/thumbnails/{MlGPXViewer.png → MlGpxViewer.png} +0 -0
  207. package/rollup.config.js +68 -50
  208. package/src/@types/assets/index.d.ts +20 -0
  209. package/src/App.css +0 -55
  210. package/src/components/MapLibreMap/MapLibreMap.stories.js +38 -32
  211. package/src/components/MapLibreMap/MapLibreMap.tsx +29 -21
  212. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +50 -40
  213. package/src/components/MlCenterPosition/MlCenterPosition.tsx +22 -29
  214. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +6 -6
  215. package/src/components/MlFollowGps/MlFollowGps.stories.js +28 -10
  216. package/src/components/MlFollowGps/MlFollowGps.tsx +38 -57
  217. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +1 -1
  218. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +16 -10
  219. package/src/components/MlGpxViewer/MlGpxViewer.stories.tsx +4 -13
  220. package/src/components/MlGpxViewer/util/MlGpxDemoLoader.tsx +3 -1
  221. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +21 -17
  222. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +3 -3
  223. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +4 -5
  224. package/src/components/MlNavigationTools/MlNavigationTools.tsx +30 -54
  225. package/src/components/MlScaleReference/{MlScaleReference.js → MlScaleReference.tsx} +38 -31
  226. package/src/components/MlShareMapState/MlShareMapState.stories.tsx +100 -0
  227. package/src/components/MlShareMapState/{MlShareMapState.js → MlShareMapState.tsx} +94 -58
  228. package/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx +1 -1
  229. package/src/components/MlSketchTool/MlSketchTool.tsx +1 -1
  230. package/src/components/MlThreeJsLayer/MlThreejsLayer.tsx +228 -0
  231. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +7 -3
  232. package/src/components/MlWmsLoader/MlWmsLoader.stories.tsx +3 -11
  233. package/src/components/MlWmsLoader/MlWmsLoader.tsx +7 -4
  234. package/src/components/MlWmsLoader/utils/MlWmsLoaderInstructions.tsx +2 -2
  235. package/src/components/MlWmsLoader/utils/WMSLinks.tsx +1 -1
  236. package/src/contexts/MapContext.tsx +34 -20
  237. package/src/custom.d.ts +4 -0
  238. package/src/decorators/EmptyMapDecorator.js +38 -0
  239. package/src/decorators/MapContextDecorator.js +31 -26
  240. package/src/decorators/MapContextDecoratorHooks.js +29 -24
  241. package/src/decorators/MultiMapContextDecorator.js +71 -71
  242. package/src/decorators/NoNavToolsDecorator.js +25 -23
  243. package/src/decorators/ThemeDecorator.js +24 -0
  244. package/src/decorators/style.css +0 -2
  245. package/src/hooks/useCameraFollowPath/useCameraFollowPath.stories.tsx +13 -19
  246. package/src/hooks/useExportMap/lib.ts +1 -1
  247. package/src/hooks/useGpx/useGpx.stories.js +1 -1
  248. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.stories.js +1 -1
  249. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx +5 -4
  250. package/src/hooks/useMap.ts +1 -1
  251. package/src/hooks/useMapState.stories.js +1 -1
  252. package/src/hooks/useMapState.ts +6 -13
  253. package/src/hooks/useSource.ts +1 -1
  254. package/src/hooks/useSources.stories.js +1 -1
  255. package/src/index.ts +40 -8
  256. package/src/ui_components/LayerList/LayerList.stories.tsx +136 -0
  257. package/src/ui_components/LayerList/LayerList.tsx +12 -0
  258. package/src/ui_components/LayerList/LayerListFolder.tsx +82 -0
  259. package/src/ui_components/LayerList/LayerListItem.tsx +180 -0
  260. package/src/ui_components/LayerList/assets/sample_1.json +26 -0
  261. package/src/ui_components/LayerList/assets/sample_2.json +22 -0
  262. package/src/ui_components/LayerList/assets/sample_polygon_1.json +33 -0
  263. package/src/ui_components/LayerList/assets/style.json +2599 -0
  264. package/src/ui_components/LayerList/util/LayerListItemVectorLayer.tsx +92 -0
  265. package/src/ui_components/LayerList/util/LayerPropertyForm.tsx +125 -0
  266. package/src/ui_components/LayerList/util/input/ColorPicker.tsx +44 -0
  267. package/src/ui_components/MapcomponentsTheme.tsx +133 -0
  268. package/src/ui_components/Sidebar.tsx +16 -11
  269. package/src/ui_components/TopToolbar.tsx +1 -3
  270. package/src/util/BubbleForInstructions.js +14 -12
  271. package/tsconfig.json +3 -9
  272. package/dist/components/MlGPXViewer/MlGPXViewer.d.ts +0 -29
  273. package/dist/components/MlGPXViewer/MlGPXViewer.stories.d.ts +0 -16
  274. package/dist/components/MlGPXViewer/MlGPXViewer.test.d.ts +0 -1
  275. package/dist/components/MlGPXViewer/gpxConverter.d.ts +0 -11
  276. package/dist/components/MlGPXViewer/util/GeoJsonContext.d.ts +0 -10
  277. package/dist/components/MlGPXViewer/util/GeoJsonProvider.d.ts +0 -4
  278. package/dist/components/MlLayer/MlLayer.stories.d.ts +0 -10
  279. package/dist/custom.d.d.ts +0 -22
  280. package/dist/decorators/ThemeWrapper.d.ts +0 -3
  281. package/dist/hooks/exportMap/index.d.ts +0 -11
  282. package/dist/hooks/exportMap/lib.d.ts +0 -36
  283. package/dist/ui_components/Legend.d.ts +0 -1
  284. package/dist/ui_components/LoadingOverlay.d.ts +0 -2
  285. package/src/components/MlShareMapState/MlShareMapState.stories.js +0 -100
  286. package/src/custom.d.tsx +0 -26
  287. package/src/decorators/ThemeWrapper.tsx +0 -9
@@ -32,7 +32,7 @@
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/4</span>
35
+ <span class='fraction'>0/2</span>
36
36
  </div>
37
37
 
38
38
 
@@ -142,14 +142,7 @@
142
142
  <a name='L77'></a><a href='#L77'>77</a>
143
143
  <a name='L78'></a><a href='#L78'>78</a>
144
144
  <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
145
+ <a name='L80'></a><a href='#L80'>80</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
153
146
  <span class="cline-any cline-neutral">&nbsp;</span>
154
147
  <span class="cline-any cline-neutral">&nbsp;</span>
155
148
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -187,26 +180,25 @@
187
180
  <span class="cline-any cline-neutral">&nbsp;</span>
188
181
  <span class="cline-any cline-neutral">&nbsp;</span>
189
182
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-no">&nbsp;</span>
191
183
  <span class="cline-any cline-neutral">&nbsp;</span>
192
184
  <span class="cline-any cline-no">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span>
195
185
  <span class="cline-any cline-neutral">&nbsp;</span>
196
186
  <span class="cline-any cline-no">&nbsp;</span>
197
187
  <span class="cline-any cline-no">&nbsp;</span>
198
188
  <span class="cline-any cline-neutral">&nbsp;</span>
199
189
  <span class="cline-any cline-neutral">&nbsp;</span>
200
190
  <span class="cline-any cline-no">&nbsp;</span>
201
- <span class="cline-any cline-no">&nbsp;</span>
202
- <span class="cline-any cline-no">&nbsp;</span>
203
191
  <span class="cline-any cline-neutral">&nbsp;</span>
204
192
  <span class="cline-any cline-no">&nbsp;</span>
205
193
  <span class="cline-any cline-neutral">&nbsp;</span>
206
194
  <span class="cline-any cline-neutral">&nbsp;</span>
207
195
  <span class="cline-any cline-neutral">&nbsp;</span>
208
196
  <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-no">&nbsp;</span>
198
+ <span class="cline-any cline-no">&nbsp;</span>
199
+ <span class="cline-any cline-no">&nbsp;</span>
209
200
  <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-no">&nbsp;</span>
210
202
  <span class="cline-any cline-neutral">&nbsp;</span>
211
203
  <span class="cline-any cline-neutral">&nbsp;</span>
212
204
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -215,13 +207,6 @@
215
207
  <span class="cline-any cline-neutral">&nbsp;</span>
216
208
  <span class="cline-any cline-neutral">&nbsp;</span>
217
209
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-yes">10x</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
210
  <span class="cline-any cline-neutral">&nbsp;</span>
226
211
  <span class="cline-any cline-neutral">&nbsp;</span>
227
212
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -230,6 +215,7 @@
230
215
  <span class="cline-any cline-neutral">&nbsp;</span>
231
216
  <span class="cline-any cline-neutral">&nbsp;</span>
232
217
  <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-yes">10x</span>
233
219
  <span class="cline-any cline-neutral">&nbsp;</span>
234
220
  <span class="cline-any cline-neutral">&nbsp;</span>
235
221
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -237,8 +223,8 @@
237
223
  <span class="cline-any cline-neutral">&nbsp;</span>
238
224
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useState, useCallback } from "react";
239
225
  import useMap from "../../hooks/useMap";
240
- import { Button, SxProps, Theme } from "@mui/material";
241
- import GpsFixedIcon from "@mui/icons-material/GpsFixed";
226
+ import { Button, SxProps, Theme } from '@mui/material';
227
+ import GpsFixedIcon from '@mui/icons-material/GpsFixed';
242
228
  &nbsp;
243
229
  export interface MlCenterPositionProps {
244
230
  /**
@@ -273,52 +259,45 @@ const MlCenterPosition = <span class="fstat-no" title="function not covered" >(p
273
259
  mapId: props.mapId,
274
260
  waitForLayer: props.insertBeforeLayer,
275
261
  });
262
+ &nbsp;
276
263
  const [locationAccessDenied, setLocationAccessDenied] = <span class="cstat-no" title="statement not covered" >useState(false);</span>
277
264
  &nbsp;
278
265
  const centerCurrentLocation = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
279
266
  <span class="cstat-no" title="statement not covered" > navigator.geolocation.getCurrentPosition(getLocationSuccess, getLocationError);</span>
280
267
  };
281
268
  &nbsp;
282
- const getLocationSuccess = <span class="cstat-no" title="statement not covered" >useCallback(<span class="fstat-no" title="function not covered" >(l</span>ocation) =&gt; {</span>
283
- <span class="cstat-no" title="statement not covered" > mapHook.map?.map.setCenter?.([location.coords.longitude, location.coords.latitude]);</span>
284
- }, [mapHook.map]);
269
+ const getLocationSuccess = <span class="cstat-no" title="statement not covered" >useCallback(</span>
270
+ <span class="fstat-no" title="function not covered" > (l</span>ocation: GeolocationPosition) =&gt; {
271
+ <span class="cstat-no" title="statement not covered" > mapHook.map?.map.setCenter?.([location.coords.longitude, location.coords.latitude]);</span>
272
+ },
273
+ [mapHook.map]
274
+ );
285
275
  &nbsp;
286
276
  const getLocationError = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
287
- <span class="cstat-no" title="statement not covered" > console.log("Access of user location denied");</span>
277
+ <span class="cstat-no" title="statement not covered" > console.log('Access of user location denied');</span>
288
278
  <span class="cstat-no" title="statement not covered" > setLocationAccessDenied(true);</span>
289
279
  };
290
- <span class="cstat-no" title="statement not covered" > return &lt;&gt;</span>
291
- &lt;Button
280
+ <span class="cstat-no" title="statement not covered" > return (</span>
281
+ &lt;&gt;
282
+ &lt;Button
283
+ variant="navtools"
292
284
  sx={{
293
285
  zIndex: 1002,
294
286
  color: !locationAccessDenied ? props.onColor : props.offColor,
295
- ...props.style,
296
287
  }}
297
- onClick={centerCurrentLocation} disabled={locationAccessDenied}&gt;
298
- &lt;GpsFixedIcon sx={{ ...(props.style?.['fontSize']?{fontSize: props.style?.['fontSize']}:{}) }} /&gt;{" "}
288
+ onClick={centerCurrentLocation}
289
+ disabled={locationAccessDenied}
290
+ &gt;
291
+ &lt;GpsFixedIcon sx={{ fontSize: { xs: '1.4em', md: '1em' } }} /&gt;
299
292
  &lt;/Button&gt;
300
- &lt;/&gt;;
301
- &nbsp;
293
+ &lt;/&gt;
294
+ );
302
295
  };
303
296
  &nbsp;
304
297
  MlCenterPosition.defaultProps = {
305
298
  mapId: undefined,
306
- style: {
307
- minWidth: "30px",
308
- minHeight: "30px",
309
- width: "30px",
310
- height: "30px",
311
- backgroundColor: "#414141",
312
- borderRadius: "23%",
313
- margin: 0.15,
314
- fontSize: "1.3em",
315
- ":hover": {
316
- backgroundColor: "#515151",
317
- color: "#ececec",
318
- },
319
- },
320
- onColor: "#ececec",
321
- offColor: "#666",
299
+ onColor: '#ececec',
300
+ offColor: '#666',
322
301
  };
323
302
  export default MlCenterPosition;
324
303
  &nbsp;</pre></td></tr></table></pre>
@@ -328,7 +307,7 @@ export default MlCenterPosition;
328
307
  <div class='footer quiet pad2 space-top1 center small'>
329
308
  Code coverage generated by
330
309
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
331
- at 2023-01-23T12:34:46.087Z
310
+ at 2023-02-07T08:13:43.414Z
332
311
  </div>
333
312
  <script src="../../../prettify.js"></script>
334
313
  <script>
@@ -32,7 +32,7 @@
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/4</span>
35
+ <span class='fraction'>0/2</span>
36
36
  </div>
37
37
 
38
38
 
@@ -86,7 +86,7 @@
86
86
  <td data-value="16.66" class="pct low">16.66%</td>
87
87
  <td data-value="12" class="abs low">2/12</td>
88
88
  <td data-value="0" class="pct low">0%</td>
89
- <td data-value="4" class="abs low">0/4</td>
89
+ <td data-value="2" class="abs low">0/2</td>
90
90
  <td data-value="0" class="pct low">0%</td>
91
91
  <td data-value="4" class="abs low">0/4</td>
92
92
  <td data-value="16.66" class="pct low">16.66%</td>
@@ -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 2023-01-23T12:34:46.087Z
104
+ at 2023-02-07T08:13:43.414Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -223,7 +223,7 @@ export default MlCreatePdfButton;
223
223
  <div class='footer quiet pad2 space-top1 center small'>
224
224
  Code coverage generated by
225
225
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
226
- at 2023-01-23T12:34:46.087Z
226
+ at 2023-02-07T08:13:43.414Z
227
227
  </div>
228
228
  <script src="../../../prettify.js"></script>
229
229
  <script>
@@ -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 2023-01-23T12:34:46.087Z
104
+ at 2023-02-07T08:13:43.414Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -133,7 +133,7 @@ const {ExampleConfig } = <span class="cstat-no" title="statement not covered" >c
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at 2023-01-23T12:34:46.087Z
136
+ at 2023-02-07T08:13:43.414Z
137
137
  </div>
138
138
  <script src="../../../prettify.js"></script>
139
139
  <script>
@@ -181,7 +181,7 @@ export default MlCreatePdfForm;
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at 2023-01-23T12:34:46.087Z
184
+ at 2023-02-07T08:13:43.414Z
185
185
  </div>
186
186
  <script src="../../../prettify.js"></script>
187
187
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2023-01-23T12:34:46.087Z
119
+ at 2023-02-07T08:13:43.414Z
120
120
  </div>
121
121
  <script src="../../../prettify.js"></script>
122
122
  <script>
@@ -520,7 +520,7 @@ export default MlFeatureEditor;
520
520
  <div class='footer quiet pad2 space-top1 center small'>
521
521
  Code coverage generated by
522
522
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
523
- at 2023-01-23T12:34:46.087Z
523
+ at 2023-02-07T08:13:43.414Z
524
524
  </div>
525
525
  <script src="../../../prettify.js"></script>
526
526
  <script>
@@ -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 2023-01-23T12:34:46.087Z
104
+ at 2023-02-07T08:13:43.414Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -325,7 +325,7 @@ export default MlFillExtrusionLayer;
325
325
  <div class='footer quiet pad2 space-top1 center small'>
326
326
  Code coverage generated by
327
327
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
328
- at 2023-01-23T12:34:46.087Z
328
+ at 2023-02-07T08:13:43.414Z
329
329
  </div>
330
330
  <script src="../../../prettify.js"></script>
331
331
  <script>
@@ -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 2023-01-23T12:34:46.087Z
104
+ at 2023-02-07T08:13:43.414Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">57.89% </span>
26
+ <span class="strong">56.89% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>33/57</span>
28
+ <span class='fraction'>33/58</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">50% </span>
33
+ <span class="strong">46.87% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>16/32</span>
35
+ <span class='fraction'>15/32</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">59.25% </span>
47
+ <span class="strong">58.18% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>32/54</span>
49
+ <span class='fraction'>32/55</span>
50
50
  </div>
51
51
 
52
52
 
@@ -304,30 +304,7 @@
304
304
  <a name='L239'></a><a href='#L239'>239</a>
305
305
  <a name='L240'></a><a href='#L240'>240</a>
306
306
  <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <a name='L242'></a><a href='#L242'>242</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
331
308
  <span class="cline-any cline-neutral">&nbsp;</span>
332
309
  <span class="cline-any cline-neutral">&nbsp;</span>
333
310
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -465,6 +442,8 @@
465
442
  <span class="cline-any cline-neutral">&nbsp;</span>
466
443
  <span class="cline-any cline-yes">9x</span>
467
444
  <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-no">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
447
  <span class="cline-any cline-neutral">&nbsp;</span>
469
448
  <span class="cline-any cline-neutral">&nbsp;</span>
470
449
  <span class="cline-any cline-yes">9x</span>
@@ -554,9 +533,6 @@
554
533
  <span class="cline-any cline-neutral">&nbsp;</span>
555
534
  <span class="cline-any cline-neutral">&nbsp;</span>
556
535
  <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
536
  <span class="cline-any cline-yes">11x</span>
561
537
  <span class="cline-any cline-neutral">&nbsp;</span>
562
538
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -569,29 +545,15 @@
569
545
  <span class="cline-any cline-neutral">&nbsp;</span>
570
546
  <span class="cline-any cline-neutral">&nbsp;</span>
571
547
  <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
548
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useRef, useEffect, useState, useCallback, useMemo } from "react";
587
549
  import useMap from "../../hooks/useMap";
588
550
  import MlGeoJsonLayer from "../MlGeoJsonLayer/MlGeoJsonLayer";
589
551
  &nbsp;
590
- import { Button, SxProps } from "@mui/material";
591
- import GpsFixedIcon from "@mui/icons-material/GpsFixed";
552
+ import { Button } from '@mui/material';
553
+ import GpsFixedIcon from '@mui/icons-material/GpsFixed';
592
554
  &nbsp;
593
- import { point, circle, lineArc, Feature, Point } from "@turf/turf";
594
- import { CircleLayerSpecification, FillLayerSpecification } from "maplibre-gl";
555
+ import { point, circle, lineArc, Feature, Point } from '@turf/turf';
556
+ import { CircleLayerSpecification, FillLayerSpecification } from 'maplibre-gl';
595
557
  &nbsp;
596
558
  interface MlFollowGpsProps {
597
559
  /**
@@ -632,13 +594,13 @@ interface MlFollowGpsProps {
632
594
  * Use any available paint prop from layer type "fill".
633
595
  * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
634
596
  */
635
- orientationConePaint?: FillLayerSpecification["paint"];
597
+ orientationConePaint?: FillLayerSpecification['paint'];
636
598
  /**
637
599
  * Position circle paint property object, that is passed to the MlGeoJsonLayer responsible for drawing the position circle.
638
600
  * Use any available paint prop from layer type "circle".
639
601
  * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
640
602
  */
641
- circlePaint?: CircleLayerSpecification["paint"];
603
+ circlePaint?: CircleLayerSpecification['paint'];
642
604
  /**
643
605
  * Active button font color
644
606
  */
@@ -652,11 +614,7 @@ interface MlFollowGpsProps {
652
614
  * Use any available paint prop from layer type "fill".
653
615
  * https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
654
616
  */
655
- accuracyPaint?: FillLayerSpecification["paint"];
656
- /**
657
- * CSS style object that is applied to the button component
658
- */
659
- buttonSx?: SxProps | any;
617
+ accuracyPaint?: FillLayerSpecification['paint'];
660
618
  }
661
619
  &nbsp;
662
620
  /**
@@ -678,7 +636,7 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
678
636
  const initiallyCentered = useRef(false);
679
637
  &nbsp;
680
638
  const getLocationSuccess = useCallback(
681
- <span class="fstat-no" title="function not covered" > (p</span>os) =&gt; {
639
+ <span class="fstat-no" title="function not covered" > (p</span>os: GeolocationPosition) =&gt; {
682
640
  <span class="cstat-no" title="statement not covered" > if (!mapHook.map) <span class="cstat-no" title="statement not covered" >return;</span></span>
683
641
  &nbsp;
684
642
  <span class="cstat-no" title="statement not covered" > if ((!props.centerUserPosition &amp;&amp; !initiallyCentered.current) || props.centerUserPosition) {</span>
@@ -704,7 +662,7 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
704
662
  );
705
663
  &nbsp;
706
664
  const getLocationError = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
707
- <span class="cstat-no" title="statement not covered" > console.log("Access of user location denied");</span>
665
+ <span class="cstat-no" title="statement not covered" > console.log('Access of user location denied');</span>
708
666
  <span class="cstat-no" title="statement not covered" > setLocationAccessDenied(true);</span>
709
667
  };
710
668
  &nbsp;
@@ -712,27 +670,29 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
712
670
  <span class="missing-if-branch" title="else path not taken" >E</span>if (!userLocationGeoJson) {
713
671
  return undefined;
714
672
  }
715
- let radius = <span class="cstat-no" title="statement not covered" >0.02;</span>
716
- let bearing1 = <span class="cstat-no" title="statement not covered" >deviceOrientation - 15;</span>
717
- let bearing2 = <span class="cstat-no" title="statement not covered" >deviceOrientation + 15;</span>
673
+ const radius = <span class="cstat-no" title="statement not covered" >0.02;</span>
674
+ const bearing1 = <span class="cstat-no" title="statement not covered" >deviceOrientation - 15;</span>
675
+ const bearing2 = <span class="cstat-no" title="statement not covered" >deviceOrientation + 15;</span>
718
676
  const options = <span class="cstat-no" title="statement not covered" >{ steps: 65 };</span>
719
- let arc = <span class="cstat-no" title="statement not covered" >lineArc(userLocationGeoJson, radius, bearing1, bearing2, options);</span>
720
- let copy = <span class="cstat-no" title="statement not covered" >arc;</span>
677
+ const arc = <span class="cstat-no" title="statement not covered" >lineArc(userLocationGeoJson, radius, bearing1, bearing2, options);</span>
678
+ const copy = <span class="cstat-no" title="statement not covered" >arc;</span>
721
679
  <span class="cstat-no" title="statement not covered" > copy.geometry.coordinates.push(userLocationGeoJson.geometry.coordinates);</span>
722
680
  <span class="cstat-no" title="statement not covered" > copy.geometry.coordinates.slice(0, 0);</span>
723
681
  <span class="cstat-no" title="statement not covered" > return copy;</span>
724
682
  }, [deviceOrientation, userLocationGeoJson]);
725
683
  &nbsp;
726
- const handleOrientation = <span class="fstat-no" title="function not covered" >(e</span>vent: any) =&gt; {
727
- <span class="cstat-no" title="statement not covered" > setDeviceOrientation(-event.alpha);</span>
684
+ const handleOrientation = <span class="fstat-no" title="function not covered" >(e</span>vent: DeviceOrientationEvent) =&gt; {
685
+ <span class="cstat-no" title="statement not covered" > if (event?.alpha) {</span>
686
+ <span class="cstat-no" title="statement not covered" > setDeviceOrientation(-event.alpha);</span>
687
+ }
728
688
  };
729
689
  &nbsp;
730
690
  useEffect(() =&gt; {
731
691
  if (isFollowed) {
732
- let _handleOrientation = handleOrientation;
733
- window.addEventListener("deviceorientation", _handleOrientation);
692
+ const _handleOrientation = handleOrientation;
693
+ window.addEventListener('deviceorientation', _handleOrientation);
734
694
  return () =&gt; {
735
- window.removeEventListener("deviceorientation", _handleOrientation);
695
+ window.removeEventListener('deviceorientation', _handleOrientation);
736
696
  };
737
697
  } else {
738
698
  initiallyCentered.current = false;
@@ -744,7 +704,7 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
744
704
  if (!mapHook.map) return;
745
705
  &nbsp;
746
706
  if (isFollowed) {
747
- let _watchId = navigator.geolocation.watchPosition(getLocationSuccess, getLocationError);
707
+ const _watchId = navigator.geolocation.watchPosition(getLocationSuccess, getLocationError);
748
708
  &nbsp;
749
709
  return () =&gt; {
750
710
  navigator.geolocation.clearWatch(_watchId);
@@ -758,10 +718,10 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
758
718
  {isFollowed &amp;&amp; userLocationGeoJson &amp;&amp; (
759
719
  <span class="branch-2 cbranch-no" title="branch not covered" > &lt;MlGeoJsonLayer</span>
760
720
  geojson={accuracyGeoJson}
761
- type={"fill"}
721
+ type={'fill'}
762
722
  paint={{
763
- "fill-color": "#cbd300",
764
- "fill-opacity": 0.3,
723
+ 'fill-color': '#cbd300',
724
+ 'fill-opacity': 0.3,
765
725
  ...props.accuracyPaint,
766
726
  }}
767
727
  insertBeforeLayer={props.insertBeforeLayer}
@@ -771,11 +731,11 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
771
731
  {isFollowed &amp;&amp; orientationCone &amp;&amp; (
772
732
  <span class="branch-2 cbranch-no" title="branch not covered" > &lt;MlGeoJsonLayer</span>
773
733
  geojson={orientationCone}
774
- type={"fill"}
734
+ type={'fill'}
775
735
  paint={{
776
- "fill-color": "#0000ff",
777
- "fill-antialias": false,
778
- "fill-opacity": 0.3,
736
+ 'fill-color': '#0000ff',
737
+ 'fill-antialias': false,
738
+ 'fill-opacity': 0.3,
779
739
  ...props.orientationConePaint,
780
740
  }}
781
741
  insertBeforeLayer={props.insertBeforeLayer}
@@ -785,12 +745,12 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
785
745
  {isFollowed &amp;&amp; userLocationGeoJson &amp;&amp; (
786
746
  <span class="branch-2 cbranch-no" title="branch not covered" > &lt;MlGeoJsonLayer</span>
787
747
  geojson={userLocationGeoJson}
788
- type={"circle"}
748
+ type={'circle'}
789
749
  paint={{
790
- "circle-color": "#009ee0",
791
- "circle-radius": 5,
792
- "circle-stroke-color": "#fafaff",
793
- "circle-stroke-width": 1,
750
+ 'circle-color': '#009ee0',
751
+ 'circle-radius': 5,
752
+ 'circle-stroke-color': '#fafaff',
753
+ 'circle-stroke-width': 1,
794
754
  ...props.circlePaint,
795
755
  }}
796
756
  insertBeforeLayer={props.insertBeforeLayer}
@@ -798,20 +758,17 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
798
758
  )}
799
759
  &nbsp;
800
760
  &lt;Button
761
+ variant="navtools"
801
762
  sx={{
802
763
  zIndex: 1002,
803
764
  color: isFollowed ? props.onColor : props.offColor,
804
- ...props.buttonSx,
805
765
  }}
806
766
  disabled={locationAccessDenied}
807
767
  onClick={() =&gt; {
808
768
  setIsFollowed(!isFollowed);
809
769
  }}
810
770
  &gt;
811
- {" "}
812
- &lt;GpsFixedIcon
813
- sx={{ ...(props.buttonSx?.fontSize ? { fontSize: props.buttonSx?.fontSize } : <span class="branch-1 cbranch-no" title="branch not covered" >{})</span> }}
814
- /&gt;{" "}
771
+ &lt;GpsFixedIcon sx={{ fontSize: { xs: '1.4em', md: '1em' } }} /&gt;
815
772
  &lt;/Button&gt;
816
773
  &lt;/&gt;
817
774
  );
@@ -819,22 +776,8 @@ const MlFollowGps = (props: MlFollowGpsProps) =&gt; {
819
776
  &nbsp;
820
777
  MlFollowGps.defaultProps = {
821
778
  mapId: undefined,
822
- buttonSx: {
823
- minWidth: "30px",
824
- minHeight: "30px",
825
- width: "30px",
826
- height: "30px",
827
- backgroundColor: "#414141",
828
- borderRadius: "23%",
829
- margin: 0.15,
830
- fontSize: "1.3em",
831
- ":hover": {
832
- backgroundColor: "#515151",
833
- color: "#ececec",
834
- },
835
- },
836
- onColor: "#ececec",
837
- offColor: "#666",
779
+ onColor: '#ececec',
780
+ offColor: '#666',
838
781
  showAccuracyCircle: true,
839
782
  showUserLocation: true,
840
783
  showOrientation: true,
@@ -850,7 +793,7 @@ export default MlFollowGps;
850
793
  <div class='footer quiet pad2 space-top1 center small'>
851
794
  Code coverage generated by
852
795
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
853
- at 2023-01-23T12:34:46.087Z
796
+ at 2023-02-07T08:13:43.414Z
854
797
  </div>
855
798
  <script src="../../../prettify.js"></script>
856
799
  <script>