@mapcomponents/react-maplibre 0.1.57 → 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 (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 +13 -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 +250 -64
  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
@@ -11,178 +11,178 @@ import createVertex from "./lib/create_vertex.js";
11
11
  const CustomPolygonMode = {};
12
12
 
13
13
  CustomPolygonMode.onSetup = function () {
14
- console.log("Change mode: custom polygon");
15
-
16
- const polygon = this.newFeature({
17
- type: Constants.geojsonTypes.FEATURE,
18
- properties: {},
19
- geometry: {
20
- type: Constants.geojsonTypes.POLYGON,
21
- coordinates: [[]],
22
- },
23
- });
24
-
25
- this.addFeature(polygon);
26
-
27
- this.clearSelectedFeatures();
28
- doubleClickZoom.disable(this);
29
- this.updateUIClasses({ mouse: Constants.cursors.ADD });
30
- this.activateUIButton(Constants.types.POLYGON);
31
- this.setActionableState({
32
- trash: true,
33
- });
34
-
35
- return {
36
- polygon,
37
- currentVertexPosition: 0,
38
- };
14
+ console.log("Change mode: custom polygon");
15
+
16
+ const polygon = this.newFeature({
17
+ type: Constants.geojsonTypes.FEATURE,
18
+ properties: {},
19
+ geometry: {
20
+ type: Constants.geojsonTypes.POLYGON,
21
+ coordinates: [[]],
22
+ },
23
+ });
24
+
25
+ this.addFeature(polygon);
26
+
27
+ this.clearSelectedFeatures();
28
+ doubleClickZoom.disable(this);
29
+ this.updateUIClasses({ mouse: Constants.cursors.ADD });
30
+ this.activateUIButton(Constants.types.POLYGON);
31
+ this.setActionableState({
32
+ trash: true,
33
+ });
34
+
35
+ return {
36
+ polygon,
37
+ currentVertexPosition: 0,
38
+ };
39
39
  };
40
40
 
41
41
  CustomPolygonMode.clickAnywhere = function (state, e) {
42
- if (
43
- state.currentVertexPosition > 0 &&
44
- isEventAtCoordinates(
45
- e,
46
- state.polygon.coordinates[0][state.currentVertexPosition - 1]
47
- )
48
- ) {
49
- return this.changeMode("custom_select", {
50
- featureIds: [state.polygon.id],
51
- });
52
- }
53
- this.updateUIClasses({ mouse: Constants.cursors.ADD });
54
- state.polygon.updateCoordinate(
55
- `0.${state.currentVertexPosition}`,
56
- e.lngLat.lng,
57
- e.lngLat.lat
58
- );
59
- state.currentVertexPosition++;
60
- state.polygon.updateCoordinate(
61
- `0.${state.currentVertexPosition}`,
62
- e.lngLat.lng,
63
- e.lngLat.lat
64
- );
65
-
66
- this.map.fire(Constants.events.CREATE, {
67
- features: [state.polygon.toGeoJSON()],
68
- });
42
+ if (
43
+ state.currentVertexPosition > 0 &&
44
+ isEventAtCoordinates(
45
+ e,
46
+ state.polygon.coordinates[0][state.currentVertexPosition - 1]
47
+ )
48
+ ) {
49
+ return this.changeMode("custom_select", {
50
+ featureIds: [state.polygon.id],
51
+ });
52
+ }
53
+ this.updateUIClasses({ mouse: Constants.cursors.ADD });
54
+ state.polygon.updateCoordinate(
55
+ `0.${state.currentVertexPosition}`,
56
+ e.lngLat.lng,
57
+ e.lngLat.lat
58
+ );
59
+ state.currentVertexPosition++;
60
+ state.polygon.updateCoordinate(
61
+ `0.${state.currentVertexPosition}`,
62
+ e.lngLat.lng,
63
+ e.lngLat.lat
64
+ );
65
+
66
+ this.map.fire(Constants.events.CREATE, {
67
+ features: [state.polygon.toGeoJSON()],
68
+ });
69
69
  };
70
70
 
71
71
  CustomPolygonMode.clickOnVertex = function (state) {
72
- return this.changeMode("custom_select", {
73
- featureIds: [state.polygon.id],
74
- });
72
+ return this.changeMode("custom_select", {
73
+ featureIds: [state.polygon.id],
74
+ });
75
75
  };
76
76
 
77
77
  CustomPolygonMode.onMouseMove = function (state, e) {
78
- state.polygon.updateCoordinate(
79
- `0.${state.currentVertexPosition}`,
80
- e.lngLat.lng,
81
- e.lngLat.lat
82
- );
83
-
84
- if (CommonSelectors.isVertex(e)) {
85
- this.updateUIClasses({ mouse: Constants.cursors.POINTER });
86
- }
78
+ state.polygon.updateCoordinate(
79
+ `0.${state.currentVertexPosition}`,
80
+ e.lngLat.lng,
81
+ e.lngLat.lat
82
+ );
83
+
84
+ if (CommonSelectors.isVertex(e)) {
85
+ this.updateUIClasses({ mouse: Constants.cursors.POINTER });
86
+ }
87
87
  };
88
88
 
89
89
  CustomPolygonMode.onTap = CustomPolygonMode.onClick = function (state, e) {
90
- if (CommonSelectors.isVertex(e)) return this.clickOnVertex(state, e);
91
- return this.clickAnywhere(state, e);
90
+ if (CommonSelectors.isVertex(e)) return this.clickOnVertex(state, e);
91
+ return this.clickAnywhere(state, e);
92
92
  };
93
93
 
94
94
  CustomPolygonMode.onKeyUp = function (state, e) {
95
- if (CommonSelectors.isEscapeKey(e)) {
96
- this.deleteFeature([state.polygon.id], { silent: true });
97
- this.changeMode("custom_select");
98
- } else if (CommonSelectors.isEnterKey(e)) {
99
- this.changeMode("custom_select", {
100
- featureIds: [state.polygon.id],
101
- });
102
- }
95
+ if (CommonSelectors.isEscapeKey(e)) {
96
+ this.deleteFeature([state.polygon.id], { silent: true });
97
+ this.changeMode("custom_select");
98
+ } else if (CommonSelectors.isEnterKey(e)) {
99
+ this.changeMode("custom_select", {
100
+ featureIds: [state.polygon.id],
101
+ });
102
+ }
103
103
  };
104
104
 
105
105
  CustomPolygonMode.onStop = function (state) {
106
- this.updateUIClasses({ mouse: Constants.cursors.NONE });
107
- doubleClickZoom.enable(this);
108
- this.activateUIButton();
109
-
110
- // check to see if we've deleted this feature
111
- if (this.getFeature(state.polygon.id) === undefined) return;
112
-
113
- //remove last added coordinate
114
- state.polygon.removeCoordinate(`0.${state.currentVertexPosition}`);
115
- if (state.polygon.isValid()) {
116
- this.map.fire(Constants.events.CREATE, {
117
- features: [state.polygon.toGeoJSON()],
118
- });
119
- } else {
120
- this.deleteFeature([state.polygon.id], { silent: true });
121
- this.changeMode("custom_select", {}, { silent: true });
122
- }
106
+ this.updateUIClasses({ mouse: Constants.cursors.NONE });
107
+ doubleClickZoom.enable(this);
108
+ this.activateUIButton();
109
+
110
+ // check to see if we've deleted this feature
111
+ if (this.getFeature(state.polygon.id) === undefined) return;
112
+
113
+ //remove last added coordinate
114
+ state.polygon.removeCoordinate(`0.${state.currentVertexPosition}`);
115
+ if (state.polygon.isValid()) {
116
+ this.map.fire(Constants.events.CREATE, {
117
+ features: [state.polygon.toGeoJSON()],
118
+ });
119
+ } else {
120
+ this.deleteFeature([state.polygon.id], { silent: true });
121
+ this.changeMode("custom_select", {}, { silent: true });
122
+ }
123
123
  };
124
124
 
125
125
  CustomPolygonMode.toDisplayFeatures = function (state, geojson, display) {
126
- const isActivePolygon = geojson.properties.id === state.polygon.id;
127
- geojson.properties.active = isActivePolygon
128
- ? Constants.activeStates.ACTIVE
129
- : Constants.activeStates.INACTIVE;
130
- if (!isActivePolygon) return display(geojson);
131
-
132
- // Don't render a polygon until it has two positions
133
- // (and a 3rd which is just the first repeated)
134
- if (geojson.geometry.coordinates.length === 0) return;
135
-
136
- const coordinateCount = geojson.geometry.coordinates[0].length;
137
- // 2 coordinates after selecting a draw type
138
- // 3 after creating the first point
139
- if (coordinateCount < 3) {
140
- return;
141
- }
142
- geojson.properties.meta = Constants.meta.FEATURE;
143
- display(
144
- createVertex(state.polygon.id, geojson.geometry.coordinates[0][0], "0.0", false)
145
- );
146
- if (coordinateCount > 3) {
147
- // Add a start position marker to the map, clicking on this will finish the feature
148
- // This should only be shown when we're in a valid spot
149
- const endPos = geojson.geometry.coordinates[0].length - 3;
150
- display(
151
- createVertex(
152
- state.polygon.id,
153
- geojson.geometry.coordinates[0][endPos],
154
- `0.${endPos}`,
155
- false
156
- )
157
- );
158
- }
159
- if (coordinateCount <= 4) {
160
- // If we've only drawn two positions (plus the closer),
161
- // make a LineString instead of a Polygon
162
- const lineCoordinates = [
163
- [geojson.geometry.coordinates[0][0][0], geojson.geometry.coordinates[0][0][1]],
164
- [geojson.geometry.coordinates[0][1][0], geojson.geometry.coordinates[0][1][1]],
165
- ];
166
- // create an initial vertex so that we can track the first point on mobile devices
167
- display({
168
- type: Constants.geojsonTypes.FEATURE,
169
- properties: geojson.properties,
170
- geometry: {
171
- coordinates: lineCoordinates,
172
- type: Constants.geojsonTypes.LINE_STRING,
173
- },
174
- });
175
- if (coordinateCount === 3) {
176
- return;
177
- }
178
- }
179
- // render the Polygon
180
- return display(geojson);
126
+ const isActivePolygon = geojson.properties.id === state.polygon.id;
127
+ geojson.properties.active = isActivePolygon
128
+ ? Constants.activeStates.ACTIVE
129
+ : Constants.activeStates.INACTIVE;
130
+ if (!isActivePolygon) return display(geojson);
131
+
132
+ // Don't render a polygon until it has two positions
133
+ // (and a 3rd which is just the first repeated)
134
+ if (geojson.geometry.coordinates.length === 0) return;
135
+
136
+ const coordinateCount = geojson.geometry.coordinates[0].length;
137
+ // 2 coordinates after selecting a draw type
138
+ // 3 after creating the first point
139
+ if (coordinateCount < 3) {
140
+ return;
141
+ }
142
+ geojson.properties.meta = Constants.meta.FEATURE;
143
+ display(
144
+ createVertex(state.polygon.id, geojson.geometry.coordinates[0][0], "0.0", false)
145
+ );
146
+ if (coordinateCount > 3) {
147
+ // Add a start position marker to the map, clicking on this will finish the feature
148
+ // This should only be shown when we're in a valid spot
149
+ const endPos = geojson.geometry.coordinates[0].length - 3;
150
+ display(
151
+ createVertex(
152
+ state.polygon.id,
153
+ geojson.geometry.coordinates[0][endPos],
154
+ `0.${endPos}`,
155
+ false
156
+ )
157
+ );
158
+ }
159
+ if (coordinateCount <= 4) {
160
+ // If we've only drawn two positions (plus the closer),
161
+ // make a LineString instead of a Polygon
162
+ const lineCoordinates = [
163
+ [geojson.geometry.coordinates[0][0][0], geojson.geometry.coordinates[0][0][1]],
164
+ [geojson.geometry.coordinates[0][1][0], geojson.geometry.coordinates[0][1][1]],
165
+ ];
166
+ // create an initial vertex so that we can track the first point on mobile devices
167
+ display({
168
+ type: Constants.geojsonTypes.FEATURE,
169
+ properties: geojson.properties,
170
+ geometry: {
171
+ coordinates: lineCoordinates,
172
+ type: Constants.geojsonTypes.LINE_STRING,
173
+ },
174
+ });
175
+ if (coordinateCount === 3) {
176
+ return;
177
+ }
178
+ }
179
+ // render the Polygon
180
+ return display(geojson);
181
181
  };
182
182
 
183
183
  CustomPolygonMode.onTrash = function (state) {
184
- this.deleteFeature([state.polygon.id], { silent: true });
185
- this.changeMode("custom_select");
184
+ this.deleteFeature([state.polygon.id], { silent: true });
185
+ this.changeMode("custom_select");
186
186
  };
187
187
 
188
188
  export default CustomPolygonMode;