@deck.gl-community/editable-layers 9.2.0-beta.6 → 9.2.0-beta.8

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 (303) hide show
  1. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts +2 -2
  2. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts.map +1 -1
  3. package/dist/edit-modes/draw-90degree-polygon-mode.js.map +1 -1
  4. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +2 -2
  5. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts.map +1 -1
  6. package/dist/edit-modes/draw-circle-by-diameter-mode.js +0 -1
  7. package/dist/edit-modes/draw-circle-by-diameter-mode.js.map +1 -1
  8. package/dist/edit-modes/draw-circle-from-center-mode.d.ts +2 -2
  9. package/dist/edit-modes/draw-circle-from-center-mode.d.ts.map +1 -1
  10. package/dist/edit-modes/draw-circle-from-center-mode.js +0 -1
  11. package/dist/edit-modes/draw-circle-from-center-mode.js.map +1 -1
  12. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +2 -2
  13. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts.map +1 -1
  14. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +1 -2
  15. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js.map +1 -1
  16. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +2 -2
  17. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts.map +1 -1
  18. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +0 -2
  19. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js.map +1 -1
  20. package/dist/edit-modes/draw-line-string-mode.d.ts +5 -5
  21. package/dist/edit-modes/draw-line-string-mode.d.ts.map +1 -1
  22. package/dist/edit-modes/draw-line-string-mode.js.map +1 -1
  23. package/dist/edit-modes/draw-point-mode.d.ts +2 -2
  24. package/dist/edit-modes/draw-point-mode.d.ts.map +1 -1
  25. package/dist/edit-modes/draw-point-mode.js.map +1 -1
  26. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +8 -8
  27. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts.map +1 -1
  28. package/dist/edit-modes/draw-polygon-by-dragging-mode.js.map +1 -1
  29. package/dist/edit-modes/draw-polygon-mode.d.ts +5 -5
  30. package/dist/edit-modes/draw-polygon-mode.d.ts.map +1 -1
  31. package/dist/edit-modes/draw-polygon-mode.js.map +1 -1
  32. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +2 -2
  33. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -1
  34. package/dist/edit-modes/draw-rectangle-from-center-mode.js +0 -1
  35. package/dist/edit-modes/draw-rectangle-from-center-mode.js.map +1 -1
  36. package/dist/edit-modes/draw-rectangle-mode.d.ts +2 -2
  37. package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -1
  38. package/dist/edit-modes/draw-rectangle-mode.js +0 -1
  39. package/dist/edit-modes/draw-rectangle-mode.js.map +1 -1
  40. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +2 -2
  41. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -1
  42. package/dist/edit-modes/draw-square-from-center-mode.d.ts +2 -2
  43. package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -1
  44. package/dist/edit-modes/draw-square-from-center-mode.js +0 -1
  45. package/dist/edit-modes/draw-square-from-center-mode.js.map +1 -1
  46. package/dist/edit-modes/draw-square-mode.d.ts +2 -2
  47. package/dist/edit-modes/draw-square-mode.d.ts.map +1 -1
  48. package/dist/edit-modes/draw-square-mode.js +0 -1
  49. package/dist/edit-modes/draw-square-mode.js.map +1 -1
  50. package/dist/edit-modes/duplicate-mode.d.ts +2 -2
  51. package/dist/edit-modes/duplicate-mode.d.ts.map +1 -1
  52. package/dist/edit-modes/duplicate-mode.js.map +1 -1
  53. package/dist/edit-modes/extend-line-string-mode.d.ts +4 -4
  54. package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -1
  55. package/dist/edit-modes/extend-line-string-mode.js.map +1 -1
  56. package/dist/edit-modes/extrude-mode.d.ts +7 -7
  57. package/dist/edit-modes/extrude-mode.d.ts.map +1 -1
  58. package/dist/edit-modes/extrude-mode.js.map +1 -1
  59. package/dist/edit-modes/geojson-edit-mode.d.ts +9 -9
  60. package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -1
  61. package/dist/edit-modes/geojson-edit-mode.js +4 -7
  62. package/dist/edit-modes/geojson-edit-mode.js.map +1 -1
  63. package/dist/edit-modes/immutable-feature-collection.d.ts +7 -7
  64. package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -1
  65. package/dist/edit-modes/immutable-feature-collection.js.map +1 -1
  66. package/dist/edit-modes/measure-area-mode.d.ts +3 -3
  67. package/dist/edit-modes/measure-area-mode.d.ts.map +1 -1
  68. package/dist/edit-modes/measure-area-mode.js.map +1 -1
  69. package/dist/edit-modes/modify-mode.d.ts +8 -8
  70. package/dist/edit-modes/modify-mode.d.ts.map +1 -1
  71. package/dist/edit-modes/modify-mode.js +2 -4
  72. package/dist/edit-modes/modify-mode.js.map +1 -1
  73. package/dist/edit-modes/resize-circle-mode.d.ts +3 -3
  74. package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -1
  75. package/dist/edit-modes/resize-circle-mode.js +1 -5
  76. package/dist/edit-modes/resize-circle-mode.js.map +1 -1
  77. package/dist/edit-modes/rotate-mode.d.ts +7 -7
  78. package/dist/edit-modes/rotate-mode.d.ts.map +1 -1
  79. package/dist/edit-modes/rotate-mode.js +2 -9
  80. package/dist/edit-modes/rotate-mode.js.map +1 -1
  81. package/dist/edit-modes/scale-mode.d.ts +11 -11
  82. package/dist/edit-modes/scale-mode.d.ts.map +1 -1
  83. package/dist/edit-modes/scale-mode.js +1 -6
  84. package/dist/edit-modes/scale-mode.js.map +1 -1
  85. package/dist/edit-modes/snappable-mode.d.ts +5 -5
  86. package/dist/edit-modes/snappable-mode.d.ts.map +1 -1
  87. package/dist/edit-modes/snappable-mode.js.map +1 -1
  88. package/dist/edit-modes/split-polygon-mode.d.ts +5 -5
  89. package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -1
  90. package/dist/edit-modes/split-polygon-mode.js +2 -5
  91. package/dist/edit-modes/split-polygon-mode.js.map +1 -1
  92. package/dist/edit-modes/three-click-polygon-mode.d.ts +3 -3
  93. package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -1
  94. package/dist/edit-modes/three-click-polygon-mode.js.map +1 -1
  95. package/dist/edit-modes/translate-mode.d.ts +6 -6
  96. package/dist/edit-modes/translate-mode.d.ts.map +1 -1
  97. package/dist/edit-modes/translate-mode.js +1 -2
  98. package/dist/edit-modes/translate-mode.js.map +1 -1
  99. package/dist/edit-modes/two-click-polygon-mode.d.ts +6 -6
  100. package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -1
  101. package/dist/edit-modes/two-click-polygon-mode.js.map +1 -1
  102. package/dist/edit-modes/types.d.ts +3 -3
  103. package/dist/edit-modes/types.d.ts.map +1 -1
  104. package/dist/edit-modes/utils.d.ts +7 -7
  105. package/dist/edit-modes/utils.d.ts.map +1 -1
  106. package/dist/edit-modes/utils.js +0 -3
  107. package/dist/edit-modes/utils.js.map +1 -1
  108. package/dist/editable-layers/editable-geojson-layer.d.ts +5 -13
  109. package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -1
  110. package/dist/editable-layers/editable-geojson-layer.js +4 -4
  111. package/dist/editable-layers/editable-geojson-layer.js.map +1 -1
  112. package/dist/editable-layers/selection-layer.d.ts +1 -2
  113. package/dist/editable-layers/selection-layer.d.ts.map +1 -1
  114. package/dist/editable-layers/selection-layer.js +2 -2
  115. package/dist/editable-layers/selection-layer.js.map +1 -1
  116. package/dist/index.cjs +192 -942
  117. package/dist/index.cjs.map +4 -4
  118. package/dist/index.d.ts +3 -11
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +1 -10
  121. package/dist/index.js.map +1 -1
  122. package/dist/mode-handlers/composite-mode-handler.d.ts +3 -3
  123. package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -1
  124. package/dist/mode-handlers/composite-mode-handler.js.map +1 -1
  125. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -1
  126. package/dist/mode-handlers/draw-90degree-polygon-handler.js +4 -2
  127. package/dist/mode-handlers/draw-90degree-polygon-handler.js.map +1 -1
  128. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -1
  129. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +0 -1
  130. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js.map +1 -1
  131. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -1
  132. package/dist/mode-handlers/draw-circle-from-center-handler.js +0 -1
  133. package/dist/mode-handlers/draw-circle-from-center-handler.js.map +1 -1
  134. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -1
  135. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +1 -2
  136. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js.map +1 -1
  137. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -1
  138. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +2 -2
  139. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js.map +1 -1
  140. package/dist/mode-handlers/draw-point-handler.js.map +1 -1
  141. package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -1
  142. package/dist/mode-handlers/draw-polygon-handler.js +4 -2
  143. package/dist/mode-handlers/draw-polygon-handler.js.map +1 -1
  144. package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -1
  145. package/dist/mode-handlers/draw-rectangle-handler.js +0 -1
  146. package/dist/mode-handlers/draw-rectangle-handler.js.map +1 -1
  147. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -1
  148. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +4 -2
  149. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js.map +1 -1
  150. package/dist/mode-handlers/mode-handler.d.ts +12 -12
  151. package/dist/mode-handlers/mode-handler.d.ts.map +1 -1
  152. package/dist/mode-handlers/mode-handler.js +6 -7
  153. package/dist/mode-handlers/mode-handler.js.map +1 -1
  154. package/dist/mode-handlers/modify-handler.d.ts +2 -2
  155. package/dist/mode-handlers/modify-handler.d.ts.map +1 -1
  156. package/dist/mode-handlers/modify-handler.js +1 -4
  157. package/dist/mode-handlers/modify-handler.js.map +1 -1
  158. package/dist/mode-handlers/rotate-handler.d.ts +2 -2
  159. package/dist/mode-handlers/rotate-handler.d.ts.map +1 -1
  160. package/dist/mode-handlers/rotate-handler.js +2 -7
  161. package/dist/mode-handlers/rotate-handler.js.map +1 -1
  162. package/dist/mode-handlers/scale-handler.d.ts +2 -2
  163. package/dist/mode-handlers/scale-handler.d.ts.map +1 -1
  164. package/dist/mode-handlers/scale-handler.js +2 -7
  165. package/dist/mode-handlers/scale-handler.js.map +1 -1
  166. package/dist/mode-handlers/snappable-handler.d.ts +3 -3
  167. package/dist/mode-handlers/snappable-handler.d.ts.map +1 -1
  168. package/dist/mode-handlers/snappable-handler.js.map +1 -1
  169. package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -1
  170. package/dist/mode-handlers/split-polygon-handler.js +4 -5
  171. package/dist/mode-handlers/split-polygon-handler.js.map +1 -1
  172. package/dist/mode-handlers/translate-handler.d.ts +2 -2
  173. package/dist/mode-handlers/translate-handler.d.ts.map +1 -1
  174. package/dist/mode-handlers/translate-handler.js +1 -4
  175. package/dist/mode-handlers/translate-handler.js.map +1 -1
  176. package/dist/utils/geojson-types.d.ts +13 -34
  177. package/dist/utils/geojson-types.d.ts.map +1 -1
  178. package/dist/utils/translate-from-center.d.ts +2 -4
  179. package/dist/utils/translate-from-center.d.ts.map +1 -1
  180. package/dist/utils/translate-from-center.js.map +1 -1
  181. package/dist/utils/utils.d.ts +3 -3
  182. package/dist/utils/utils.d.ts.map +1 -1
  183. package/dist/utils/utils.js.map +1 -1
  184. package/package.json +33 -34
  185. package/src/edit-modes/draw-90degree-polygon-mode.ts +2 -2
  186. package/src/edit-modes/draw-circle-by-diameter-mode.ts +3 -3
  187. package/src/edit-modes/draw-circle-from-center-mode.ts +3 -3
  188. package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +4 -4
  189. package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +3 -4
  190. package/src/edit-modes/draw-line-string-mode.ts +5 -5
  191. package/src/edit-modes/draw-point-mode.ts +2 -2
  192. package/src/edit-modes/draw-polygon-by-dragging-mode.ts +8 -8
  193. package/src/edit-modes/draw-polygon-mode.ts +8 -8
  194. package/src/edit-modes/draw-rectangle-from-center-mode.ts +2 -3
  195. package/src/edit-modes/draw-rectangle-mode.ts +2 -3
  196. package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +2 -2
  197. package/src/edit-modes/draw-square-from-center-mode.ts +2 -3
  198. package/src/edit-modes/draw-square-mode.ts +3 -3
  199. package/src/edit-modes/duplicate-mode.ts +2 -2
  200. package/src/edit-modes/extend-line-string-mode.ts +4 -4
  201. package/src/edit-modes/extrude-mode.ts +7 -7
  202. package/src/edit-modes/geojson-edit-mode.ts +16 -19
  203. package/src/edit-modes/immutable-feature-collection.ts +10 -11
  204. package/src/edit-modes/measure-area-mode.ts +3 -3
  205. package/src/edit-modes/modify-mode.ts +13 -13
  206. package/src/edit-modes/resize-circle-mode.ts +6 -8
  207. package/src/edit-modes/rotate-mode.ts +9 -15
  208. package/src/edit-modes/scale-mode.ts +11 -15
  209. package/src/edit-modes/snappable-mode.ts +5 -5
  210. package/src/edit-modes/split-polygon-mode.ts +12 -16
  211. package/src/edit-modes/three-click-polygon-mode.ts +3 -3
  212. package/src/edit-modes/translate-mode.ts +10 -12
  213. package/src/edit-modes/two-click-polygon-mode.ts +7 -7
  214. package/src/edit-modes/types.ts +4 -4
  215. package/src/edit-modes/utils.ts +12 -16
  216. package/src/editable-layers/editable-geojson-layer.ts +19 -18
  217. package/src/editable-layers/selection-layer.ts +3 -3
  218. package/src/index.ts +8 -28
  219. package/src/mode-handlers/composite-mode-handler.ts +3 -3
  220. package/src/mode-handlers/draw-90degree-polygon-handler.ts +4 -2
  221. package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +0 -1
  222. package/src/mode-handlers/draw-circle-from-center-handler.ts +0 -1
  223. package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +1 -2
  224. package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +3 -2
  225. package/src/mode-handlers/draw-point-handler.ts +2 -2
  226. package/src/mode-handlers/draw-polygon-handler.ts +4 -2
  227. package/src/mode-handlers/draw-rectangle-handler.ts +0 -1
  228. package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +4 -2
  229. package/src/mode-handlers/mode-handler.ts +20 -21
  230. package/src/mode-handlers/modify-handler.ts +2 -4
  231. package/src/mode-handlers/rotate-handler.ts +4 -8
  232. package/src/mode-handlers/scale-handler.ts +4 -8
  233. package/src/mode-handlers/snappable-handler.ts +3 -3
  234. package/src/mode-handlers/split-polygon-handler.ts +6 -7
  235. package/src/mode-handlers/translate-handler.ts +3 -5
  236. package/src/utils/geojson-types.ts +15 -54
  237. package/src/utils/translate-from-center.ts +6 -11
  238. package/src/utils/utils.ts +4 -4
  239. package/dist/lib/constants.d.ts +0 -7
  240. package/dist/lib/constants.d.ts.map +0 -1
  241. package/dist/lib/constants.js +0 -10
  242. package/dist/lib/constants.js.map +0 -1
  243. package/dist/lib/deck-renderer/deck-cache.d.ts +0 -15
  244. package/dist/lib/deck-renderer/deck-cache.d.ts.map +0 -1
  245. package/dist/lib/deck-renderer/deck-cache.js +0 -52
  246. package/dist/lib/deck-renderer/deck-cache.js.map +0 -1
  247. package/dist/lib/deck-renderer/deck-drawer.d.ts +0 -63
  248. package/dist/lib/deck-renderer/deck-drawer.d.ts.map +0 -1
  249. package/dist/lib/deck-renderer/deck-drawer.js +0 -233
  250. package/dist/lib/deck-renderer/deck-drawer.js.map +0 -1
  251. package/dist/lib/feature.d.ts +0 -11
  252. package/dist/lib/feature.d.ts.map +0 -1
  253. package/dist/lib/feature.js +0 -20
  254. package/dist/lib/feature.js.map +0 -1
  255. package/dist/lib/layer-mouse-event.d.ts +0 -12
  256. package/dist/lib/layer-mouse-event.d.ts.map +0 -1
  257. package/dist/lib/layer-mouse-event.js +0 -28
  258. package/dist/lib/layer-mouse-event.js.map +0 -1
  259. package/dist/lib/layers/junctions-layer.d.ts +0 -9
  260. package/dist/lib/layers/junctions-layer.d.ts.map +0 -1
  261. package/dist/lib/layers/junctions-layer.js +0 -37
  262. package/dist/lib/layers/junctions-layer.js.map +0 -1
  263. package/dist/lib/layers/segments-layer.d.ts +0 -19
  264. package/dist/lib/layers/segments-layer.d.ts.map +0 -1
  265. package/dist/lib/layers/segments-layer.js +0 -98
  266. package/dist/lib/layers/segments-layer.js.map +0 -1
  267. package/dist/lib/layers/texts-layer.d.ts +0 -9
  268. package/dist/lib/layers/texts-layer.d.ts.map +0 -1
  269. package/dist/lib/layers/texts-layer.js +0 -36
  270. package/dist/lib/layers/texts-layer.js.map +0 -1
  271. package/dist/lib/math.d.ts +0 -12
  272. package/dist/lib/math.d.ts.map +0 -1
  273. package/dist/lib/math.js +0 -26
  274. package/dist/lib/math.js.map +0 -1
  275. package/dist/lib/nebula-core.d.ts +0 -35
  276. package/dist/lib/nebula-core.d.ts.map +0 -1
  277. package/dist/lib/nebula-core.js +0 -258
  278. package/dist/lib/nebula-core.js.map +0 -1
  279. package/dist/lib/nebula-layer.d.ts +0 -14
  280. package/dist/lib/nebula-layer.d.ts.map +0 -1
  281. package/dist/lib/nebula-layer.js +0 -30
  282. package/dist/lib/nebula-layer.js.map +0 -1
  283. package/dist/lib/style.d.ts +0 -20
  284. package/dist/lib/style.d.ts.map +0 -1
  285. package/dist/lib/style.js +0 -24
  286. package/dist/lib/style.js.map +0 -1
  287. package/dist/utils/curve-utils.d.ts +0 -3
  288. package/dist/utils/curve-utils.d.ts.map +0 -1
  289. package/dist/utils/curve-utils.js +0 -65
  290. package/dist/utils/curve-utils.js.map +0 -1
  291. package/src/lib/constants.ts +0 -10
  292. package/src/lib/deck-renderer/deck-cache.ts +0 -61
  293. package/src/lib/deck-renderer/deck-drawer.ts +0 -263
  294. package/src/lib/feature.ts +0 -31
  295. package/src/lib/layer-mouse-event.ts +0 -33
  296. package/src/lib/layers/junctions-layer.ts +0 -44
  297. package/src/lib/layers/segments-layer.ts +0 -112
  298. package/src/lib/layers/texts-layer.ts +0 -47
  299. package/src/lib/math.ts +0 -30
  300. package/src/lib/nebula-core.ts +0 -327
  301. package/src/lib/nebula-layer.ts +0 -37
  302. package/src/lib/style.ts +0 -26
  303. package/src/utils/curve-utils.ts +0 -81
package/dist/index.cjs CHANGED
@@ -34,9 +34,8 @@ var __publicField = (obj, key, value) => {
34
34
  // dist/index.js
35
35
  var dist_exports = {};
36
36
  __export(dist_exports, {
37
- ArrowStyles: () => ArrowStyles,
38
37
  CompositeMode: () => CompositeMode,
39
- DEFAULT_ARROWS: () => DEFAULT_ARROWS,
38
+ DeleteMode: () => DeleteMode,
40
39
  Draw90DegreePolygonMode: () => Draw90DegreePolygonMode,
41
40
  DrawCircleByDiameterMode: () => DrawCircleByDiameterMode,
42
41
  DrawCircleFromCenterMode: () => DrawCircleFromCenterMode,
@@ -59,29 +58,19 @@ __export(dist_exports, {
59
58
  ElevationMode: () => ElevationMode,
60
59
  ExtendLineStringMode: () => ExtendLineStringMode,
61
60
  ExtrudeMode: () => ExtrudeMode,
62
- Feature: () => Feature,
63
61
  GeoJsonEditMode: () => GeoJsonEditMode,
64
62
  ImmutableFeatureCollection: () => ImmutableFeatureCollection,
65
63
  JunctionScatterplotLayer: () => JunctionScatterplotLayer,
66
- JunctionsLayer: () => JunctionsLayer,
67
- LayerMouseEvent: () => LayerMouseEvent,
68
- MAX_ARROWS: () => MAX_ARROWS,
69
64
  MeasureAngleMode: () => MeasureAngleMode,
70
65
  MeasureAreaMode: () => MeasureAreaMode,
71
66
  MeasureDistanceMode: () => MeasureDistanceMode,
72
67
  ModifyMode: () => ModifyMode,
73
- NebulaCore: () => NebulaCore,
74
- NebulaLayer: () => NebulaLayer,
75
- PROJECTED_PIXEL_SIZE_MULTIPLIER: () => PROJECTED_PIXEL_SIZE_MULTIPLIER,
76
68
  ResizeCircleMode: () => ResizeCircleMode,
77
69
  RotateMode: () => RotateMode,
78
- SELECTION_TYPE: () => SELECTION_TYPE,
79
70
  ScaleMode: () => ScaleMode,
80
- SegmentsLayer: () => SegmentsLayer,
81
71
  SelectionLayer: () => SelectionLayer,
82
72
  SnappableMode: () => SnappableMode,
83
73
  SplitPolygonMode: () => SplitPolygonMode,
84
- TextsLayer: () => TextsLayer,
85
74
  TransformMode: () => TransformMode,
86
75
  TranslateMode: () => TranslateMode,
87
76
  ViewMode: () => ViewMode,
@@ -93,302 +82,6 @@ __export(dist_exports, {
93
82
  });
94
83
  module.exports = __toCommonJS(dist_exports);
95
84
 
96
- // dist/lib/style.js
97
- var ArrowStyles = {
98
- NONE: 0,
99
- FORWARD: 1,
100
- BACKWARD: 2,
101
- BOTH: 3
102
- };
103
- var DEFAULT_ARROWS = 1;
104
- var MAX_ARROWS = 3;
105
- var DEFAULT_STYLE = {
106
- arrowColor: [0, 0, 0, 1],
107
- arrowCount: DEFAULT_ARROWS,
108
- arrowStyle: ArrowStyles.NONE,
109
- fillColor: [0, 0, 0, 1],
110
- lineColor: [0, 0, 0, 1],
111
- lineWidthMeters: 5,
112
- outlineRadiusMeters: 0,
113
- opacity: 1,
114
- zLevel: 0
115
- };
116
-
117
- // dist/lib/deck-renderer/deck-drawer.js
118
- var import_layers = require("@deck.gl/layers");
119
- var import_helpers = require("@turf/helpers");
120
- var import_bbox = __toESM(require("@turf/bbox"), 1);
121
- var import_bbox_polygon = __toESM(require("@turf/bbox-polygon"), 1);
122
- var import_buffer = __toESM(require("@turf/buffer"), 1);
123
- var import_difference = __toESM(require("@turf/difference"), 1);
124
- var import_distance = __toESM(require("@turf/distance"), 1);
125
- var POLYGON_LINE_COLOR = [0, 255, 0, 255];
126
- var POLYGON_FILL_COLOR = [255, 255, 255, 90];
127
- var POLYGON_LINE_WIDTH = 2;
128
- var POLYGON_THRESHOLD = 0.01;
129
- var EXPANSION_KM = 10;
130
- var LAYER_ID_VIEW = "DeckDrawerView";
131
- var LAYER_ID_PICK = "DeckDrawerPick";
132
- var SELECTION_TYPE = {
133
- NONE: null,
134
- RECTANGLE: "rectangle",
135
- POLYGON: "polygon"
136
- };
137
- var DeckDrawer = class {
138
- nebula;
139
- usePolygon;
140
- validPolygon;
141
- landPoints;
142
- mousePoints;
143
- constructor(nebula) {
144
- this.nebula = nebula;
145
- this.usePolygon = false;
146
- this.validPolygon = true;
147
- this.landPoints = [];
148
- this.mousePoints = [];
149
- }
150
- _getLayerIds() {
151
- return this.nebula.deckgl.props.layers.filter((l) => l && l.props && l.props.nebulaLayer && l.props.nebulaLayer.enableSelection).map((l) => l.id);
152
- }
153
- _selectFromPickingInfos(pickingInfos) {
154
- const objects = pickingInfos.map(({ layer, index, object }) => object.original || layer.props.nebulaLayer.deckCache.originals[index]);
155
- this.nebula.props.onSelection(objects);
156
- }
157
- _getBoundingBox() {
158
- const { mousePoints } = this;
159
- const allX = mousePoints.map((mousePoint) => mousePoint[0]);
160
- const allY = mousePoints.map((mousePoint) => mousePoint[1]);
161
- const x = Math.min(...allX);
162
- const y = Math.min(...allY);
163
- const maxX = Math.max(...allX);
164
- const maxY = Math.max(...allY);
165
- return { x, y, width: maxX - x, height: maxY - y };
166
- }
167
- _selectRectangleObjects() {
168
- if (this.landPoints.length !== 2)
169
- return;
170
- const [x1, y1] = this.mousePoints[0];
171
- const [x2, y2] = this.mousePoints[1];
172
- const pickingInfos = this.nebula.deckgl.pickObjects({
173
- x: Math.min(x1, x2),
174
- y: Math.min(y1, y2),
175
- width: Math.abs(x2 - x1),
176
- height: Math.abs(y2 - y1),
177
- layerIds: this._getLayerIds()
178
- });
179
- this._selectFromPickingInfos(pickingInfos);
180
- }
181
- _selectPolygonObjects() {
182
- const pickingInfos = this.nebula.deckgl.pickObjects({
183
- ...this._getBoundingBox(),
184
- layerIds: [LAYER_ID_PICK, ...this._getLayerIds()]
185
- });
186
- this._selectFromPickingInfos(pickingInfos.filter((item) => item.layer.id !== LAYER_ID_PICK));
187
- }
188
- _getMousePosFromEvent(event) {
189
- const { offsetX, offsetY } = event;
190
- return [offsetX, offsetY];
191
- }
192
- // eslint-disable-next-line max-statements, complexity
193
- handleEvent(event, lngLat, selectionType) {
194
- if (event.type !== "mouseup")
195
- event.stopPropagation();
196
- this.usePolygon = selectionType === SELECTION_TYPE.POLYGON;
197
- let redraw = false;
198
- let deactivate = false;
199
- const { usePolygon, landPoints, mousePoints } = this;
200
- if (event.type === "mousedown") {
201
- if (usePolygon && landPoints.length) {
202
- if (this.landPoints.length < 3 || this.validPolygon) {
203
- landPoints.push(lngLat);
204
- mousePoints.push(this._getMousePosFromEvent(event));
205
- }
206
- } else {
207
- this.landPoints = [lngLat, lngLat];
208
- const m = this._getMousePosFromEvent(event);
209
- this.mousePoints = [m, m];
210
- }
211
- redraw = true;
212
- } else if (event.type === "mousemove" && landPoints.length) {
213
- landPoints[landPoints.length - 1] = lngLat;
214
- mousePoints[mousePoints.length - 1] = this._getMousePosFromEvent(event);
215
- redraw = true;
216
- } else if (event.type === "mouseup") {
217
- if (usePolygon) {
218
- if (landPoints.length > 4 && (0, import_distance.default)(landPoints[0], landPoints[landPoints.length - 1]) < POLYGON_THRESHOLD && this.validPolygon) {
219
- this._selectPolygonObjects();
220
- this.reset();
221
- redraw = true;
222
- deactivate = true;
223
- }
224
- } else {
225
- this._selectRectangleObjects();
226
- this.reset();
227
- redraw = true;
228
- deactivate = true;
229
- }
230
- }
231
- return { redraw, deactivate };
232
- }
233
- reset() {
234
- this.landPoints = [];
235
- this.mousePoints = [];
236
- }
237
- _makeStartPointHighlight(center) {
238
- const buffer = (0, import_buffer.default)((0, import_helpers.point)(center), POLYGON_THRESHOLD / 4);
239
- return (0, import_bbox_polygon.default)((0, import_bbox.default)(buffer)).geometry.coordinates;
240
- }
241
- render() {
242
- const data = [];
243
- const dataPick = [];
244
- if (!this.usePolygon && this.landPoints.length === 2) {
245
- const [[x1, y1], [x2, y2]] = this.mousePoints;
246
- const selPolygon = [
247
- [x1, y1],
248
- [x1, y2],
249
- [x2, y2],
250
- [x2, y1],
251
- [x1, y1]
252
- ].map((mousePos) => this.nebula.unprojectMousePosition(mousePos));
253
- data.push({
254
- polygon: selPolygon,
255
- lineColor: POLYGON_LINE_COLOR,
256
- fillColor: POLYGON_FILL_COLOR
257
- });
258
- } else if (this.usePolygon && this.landPoints.length) {
259
- data.push({
260
- polygon: this.landPoints,
261
- lineColor: POLYGON_LINE_COLOR,
262
- fillColor: POLYGON_FILL_COLOR
263
- });
264
- if (this.landPoints.length >= 3) {
265
- const landPointsPoly = (0, import_helpers.polygon)([[...this.landPoints, this.landPoints[0]]]);
266
- const bigBuffer = (0, import_buffer.default)((0, import_helpers.point)(this.landPoints[0]), EXPANSION_KM);
267
- let bigPolygon;
268
- try {
269
- bigPolygon = (0, import_difference.default)(bigBuffer, landPointsPoly);
270
- dataPick.push({
271
- polygon: bigPolygon.geometry.coordinates,
272
- fillColor: [0, 0, 0, 1]
273
- });
274
- this.validPolygon = true;
275
- } catch (e) {
276
- this.validPolygon = false;
277
- }
278
- }
279
- }
280
- if (this.landPoints.length) {
281
- data.push({
282
- polygon: this._makeStartPointHighlight(this.landPoints[0]),
283
- lineColor: [0, 0, 0, 0],
284
- fillColor: POLYGON_LINE_COLOR
285
- });
286
- }
287
- data.push({ polygon: [[0, 0]] });
288
- dataPick.push({ polygon: [[0, 0]] });
289
- return [
290
- new import_layers.PolygonLayer({
291
- id: LAYER_ID_VIEW,
292
- data,
293
- fp64: false,
294
- opacity: 1,
295
- pickable: false,
296
- lineWidthMinPixels: POLYGON_LINE_WIDTH,
297
- lineWidthMaxPixels: POLYGON_LINE_WIDTH,
298
- lineDashJustified: true,
299
- // TODO(v9) Add extension
300
- // getLineDashArray: (x) => POLYGON_DASHES,
301
- getLineColor: (obj) => obj.lineColor || [0, 0, 0, 255],
302
- getFillColor: (obj) => obj.fillColor || [0, 0, 0, 255],
303
- getPolygon: (o) => o.polygon
304
- }),
305
- new import_layers.PolygonLayer({
306
- id: LAYER_ID_PICK,
307
- data: dataPick,
308
- getLineColor: (obj) => obj.lineColor || [0, 0, 0, 255],
309
- getFillColor: (obj) => obj.fillColor || [0, 0, 0, 255],
310
- fp64: false,
311
- opacity: 1,
312
- stroked: false,
313
- pickable: true,
314
- getPolygon: (o) => o.polygon
315
- })
316
- ];
317
- }
318
- };
319
-
320
- // dist/lib/feature.js
321
- var Feature = class {
322
- // geo json coordinates
323
- geoJson;
324
- style;
325
- original;
326
- metadata;
327
- constructor(geoJson, style, original = null, metadata = {}) {
328
- this.geoJson = geoJson;
329
- this.style = style;
330
- this.original = original;
331
- this.metadata = metadata;
332
- }
333
- getCoords() {
334
- return this.geoJson.geometry.coordinates;
335
- }
336
- };
337
-
338
- // dist/lib/layer-mouse-event.js
339
- var LayerMouseEvent = class {
340
- canceled = false;
341
- // original item that this event is related to
342
- data;
343
- // internal nebula info about the object
344
- metadata;
345
- // the mouse [lng,lat] raycasted onto the ground
346
- groundPoint;
347
- // browser event
348
- nativeEvent;
349
- // reference to nebula
350
- nebula;
351
- constructor(nativeEvent, { data, groundPoint, nebula, metadata }) {
352
- this.nativeEvent = nativeEvent;
353
- this.data = data;
354
- this.groundPoint = groundPoint;
355
- this.nebula = nebula;
356
- this.metadata = metadata;
357
- }
358
- stopPropagation() {
359
- this.nativeEvent.stopPropagation();
360
- this.canceled = true;
361
- }
362
- };
363
-
364
- // dist/lib/nebula-layer.js
365
- var import_eventemitter3 = require("eventemitter3");
366
- var import_uuid = require("uuid");
367
- var NebulaLayer = class extends import_eventemitter3.EventEmitter {
368
- getData;
369
- toNebulaFeature;
370
- id;
371
- helperLayers;
372
- // flags
373
- usesMapEvents = false;
374
- enablePicking = false;
375
- enableSelection = false;
376
- //
377
- constructor({ getData, on, toNebulaFeature }) {
378
- super();
379
- this.id = (0, import_uuid.v4)();
380
- this.getData = getData;
381
- this.toNebulaFeature = toNebulaFeature;
382
- this.helperLayers = [];
383
- if (on) {
384
- Object.keys(on).forEach((key) => this.on(key, on[key]));
385
- }
386
- }
387
- render(config) {
388
- return null;
389
- }
390
- };
391
-
392
85
  // dist/utils/utils.js
393
86
  var utils_exports = {};
394
87
  __export(utils_exports, {
@@ -403,7 +96,7 @@ __export(utils_exports, {
403
96
  var import_destination = __toESM(require("@turf/destination"), 1);
404
97
  var import_bearing = __toESM(require("@turf/bearing"), 1);
405
98
  var import_point_to_line_distance = __toESM(require("@turf/point-to-line-distance"), 1);
406
- var import_helpers2 = require("@turf/helpers");
99
+ var import_helpers = require("@turf/helpers");
407
100
  var import_viewport_mercator_project = require("viewport-mercator-project");
408
101
  function toDeckColor(color, defaultColor = [255, 0, 0, 255]) {
409
102
  if (!Array.isArray(color)) {
@@ -428,7 +121,7 @@ function generatePointsParallelToLinePoints(p1, p2, mapCoords2) {
428
121
  type: "LineString",
429
122
  coordinates: [p1, p2]
430
123
  };
431
- const pt = (0, import_helpers2.point)(mapCoords2);
124
+ const pt = (0, import_helpers.point)(mapCoords2);
432
125
  const ddistance = (0, import_point_to_line_distance.default)(pt, lineString3);
433
126
  const lineBearing = (0, import_bearing.default)(p1, p2);
434
127
  const isPointToLeftOfLine = (mapCoords2[0] - p1[0]) * (p2[1] - p1[1]) - (mapCoords2[1] - p1[1]) * (p2[0] - p1[0]);
@@ -499,479 +192,13 @@ function insertBefore(base, insertBeforeText, toInsert) {
499
192
  return base.slice(0, at) + toInsert + base.slice(at);
500
193
  }
501
194
 
502
- // dist/lib/deck-renderer/deck-cache.js
503
- var DeckCache = class {
504
- objects;
505
- originals;
506
- updateTrigger;
507
- _idToPosition;
508
- _getData;
509
- _convert;
510
- constructor(getData, convert) {
511
- this.objects = [];
512
- this.originals = [];
513
- this.updateTrigger = 0;
514
- this._idToPosition = /* @__PURE__ */ new Map();
515
- this._getData = getData;
516
- this._convert = convert;
517
- }
518
- updateAllDeckObjects() {
519
- if (!this._getData || !this._convert)
520
- return;
521
- this.originals.length = 0;
522
- this.objects.length = 0;
523
- this._idToPosition.clear();
524
- this._getData().forEach((d) => {
525
- this._idToPosition.set(d.id, this.objects.length);
526
- this.originals.push(d);
527
- this.objects.push(this._convert(d));
528
- });
529
- this.triggerUpdate();
530
- }
531
- updateDeckObjectsByIds(ids) {
532
- if (!this._getData || !this._convert)
533
- return;
534
- ids.forEach((id) => {
535
- const p = this._idToPosition.get(id);
536
- if (p !== void 0) {
537
- this.objects[p] = this._convert(this.originals[p]);
538
- }
539
- });
540
- this.triggerUpdate();
541
- }
542
- triggerUpdate() {
543
- this.updateTrigger++;
544
- }
545
- getDeckObjectById(id) {
546
- const p = this._idToPosition.get(id);
547
- return p !== void 0 ? this.objects[p] : null;
548
- }
549
- getOriginalById(id) {
550
- const p = this._idToPosition.get(id);
551
- return p !== void 0 ? this.originals[p] : null;
552
- }
553
- };
554
-
555
- // dist/editable-layers/junction-scatterplot-layer.js
556
- var import_core = require("@deck.gl/core");
557
- var import_layers2 = require("@deck.gl/layers");
558
- var JunctionScatterplotLayer = class extends import_core.CompositeLayer {
559
- renderLayers() {
560
- const { id, getFillColor, getStrokeColor, getInnerRadius, updateTriggers } = this.props;
561
- return [
562
- // the full circles
563
- new import_layers2.ScatterplotLayer({
564
- ...this.props,
565
- id: `${id}-full`,
566
- data: this.props.data,
567
- getLineColor: getStrokeColor,
568
- updateTriggers: {
569
- ...updateTriggers,
570
- getStrokeColor: updateTriggers.getStrokeColor
571
- }
572
- }),
573
- // the inner part
574
- new import_layers2.ScatterplotLayer({
575
- ...this.props,
576
- id: `${id}-inner`,
577
- data: this.props.data,
578
- getFillColor,
579
- getRadius: getInnerRadius,
580
- pickable: false,
581
- updateTriggers: {
582
- ...updateTriggers,
583
- getFillColor: updateTriggers.getFillColor,
584
- getRadius: updateTriggers.getInnerRadius
585
- }
586
- })
587
- ];
588
- }
589
- };
590
- __publicField(JunctionScatterplotLayer, "layerName", "JunctionScatterplotLayer");
591
- __publicField(JunctionScatterplotLayer, "defaultProps", {
592
- ...import_layers2.ScatterplotLayer.defaultProps,
593
- getFillColor: (d) => [0, 0, 0, 255],
594
- getStrokeColor: (d) => [255, 255, 255, 255],
595
- getInnerRadius: (d) => 1
596
- });
597
-
598
- // dist/lib/layers/junctions-layer.js
599
- var JunctionsLayer = class extends NebulaLayer {
600
- deckCache;
601
- constructor(config) {
602
- super(config);
603
- this.deckCache = new DeckCache(config.getData, (data) => config.toNebulaFeature(data));
604
- this.enablePicking = true;
605
- }
606
- render({ nebula }) {
607
- const defaultColor = [0, 0, 0, 255];
608
- const { objects, updateTrigger } = this.deckCache;
609
- return new JunctionScatterplotLayer({
610
- id: `junctions-${this.id}`,
611
- data: objects,
612
- opacity: 1,
613
- pickable: true,
614
- getPosition: (nf) => nf.geoJson.geometry.coordinates,
615
- getFillColor: (nf) => toDeckColor(nf.style.fillColor) || defaultColor,
616
- getStrokeColor: (nf) => toDeckColor(nf.style.outlineColor) || toDeckColor(nf.style.fillColor) || defaultColor,
617
- getRadius: (nf) => nf.style.pointRadiusMeters + nf.style.outlineRadiusMeters || 1,
618
- getInnerRadius: (nf) => nf.style.pointRadiusMeters || 0.5,
619
- parameters: {
620
- depthCompare: "always"
621
- },
622
- updateTriggers: { all: updateTrigger },
623
- // @ts-expect-error TODO
624
- nebulaLayer: this
625
- });
626
- }
627
- };
628
-
629
- // dist/lib/layers/texts-layer.js
630
- var import_layers3 = require("@deck.gl/layers");
631
-
632
- // dist/lib/constants.js
633
- var PROJECTED_PIXEL_SIZE_MULTIPLIER = 2 / 3;
634
-
635
- // dist/lib/layers/texts-layer.js
636
- var TextsLayer = class extends NebulaLayer {
637
- deckCache;
638
- constructor(config) {
639
- super(config);
640
- this.deckCache = new DeckCache(config.getData, (data) => config.toNebulaFeature(data));
641
- }
642
- render({ nebula }) {
643
- const defaultColor = [0, 0, 0, 255];
644
- const { objects, updateTrigger } = this.deckCache;
645
- const { zoom } = nebula.props.viewport;
646
- return new import_layers3.TextLayer({
647
- id: `texts-${this.id}`,
648
- data: objects,
649
- opacity: 1,
650
- fp64: false,
651
- pickable: false,
652
- getText: (nf) => nf.style.text,
653
- getPosition: (nf) => nf.geoJson.geometry.coordinates,
654
- getColor: (nf) => toDeckColor(nf.style.fillColor) || defaultColor,
655
- // TODO: layer should offer option to scale with zoom
656
- sizeScale: 1 / Math.pow(2, 20 - zoom),
657
- getSize: PROJECTED_PIXEL_SIZE_MULTIPLIER,
658
- updateTriggers: { all: updateTrigger },
659
- nebulaLayer: this
660
- });
661
- }
662
- };
663
-
664
- // dist/lib/layers/segments-layer.js
665
- var import_layers4 = require("@deck.gl-community/layers");
666
- var NEBULA_TO_DECK_DIRECTIONS = {
667
- [ArrowStyles.NONE]: { forward: false, backward: false },
668
- [ArrowStyles.FORWARD]: { forward: true, backward: false },
669
- [ArrowStyles.BACKWARD]: { forward: false, backward: true },
670
- [ArrowStyles.BOTH]: { forward: true, backward: true }
671
- };
672
- var SegmentsLayer = class extends NebulaLayer {
673
- deckCache;
674
- noBlend;
675
- highlightColor;
676
- arrowSize;
677
- jointRounded;
678
- capRounded;
679
- dashed;
680
- markerLayerProps;
681
- constructor(config) {
682
- super(config);
683
- this.deckCache = new DeckCache(config.getData, (data) => config.toNebulaFeature(data));
684
- this.enableSelection = true;
685
- this.enablePicking = config.enablePicking ?? true;
686
- this.noBlend = config.noBlend ?? false;
687
- this.jointRounded = config.jointRounded ?? true;
688
- this.capRounded = config.capRounded ?? true;
689
- this.dashed = config.dashed ?? false;
690
- this.markerLayerProps = config.markerLayerProps ?? null;
691
- this.highlightColor = [1, 1, 1, 1];
692
- this.arrowSize = 1;
693
- }
694
- getMouseOverSegment() {
695
- return null;
696
- }
697
- _calcMarkerPercentages(nf) {
698
- const { arrowPercentages } = nf.style;
699
- if (arrowPercentages) {
700
- return arrowPercentages;
701
- }
702
- const arrowStyle = nf.style.arrowStyle || DEFAULT_STYLE.arrowStyle;
703
- if (arrowStyle === ArrowStyles.NONE)
704
- return [];
705
- const arrowCount = Math.min(nf.style.arrowCount || DEFAULT_STYLE.arrowCount, MAX_ARROWS);
706
- return [[0.5], [0.33, 0.66], [0.25, 0.5, 0.75]][arrowCount - 1];
707
- }
708
- _getHighlightedObjectIndex({ nebula }) {
709
- const { deckglMouseOverInfo } = nebula;
710
- if (deckglMouseOverInfo) {
711
- const { originalLayer, index } = deckglMouseOverInfo;
712
- if (originalLayer === this) {
713
- return index;
714
- }
715
- }
716
- return -1;
717
- }
718
- render({ nebula }) {
719
- const defaultColor = [0, 0, 0, 255];
720
- const { objects, updateTrigger } = this.deckCache;
721
- return new import_layers4.PathMarkerLayer({
722
- id: `segments-${this.id}`,
723
- data: objects,
724
- opacity: 1,
725
- fp64: false,
726
- jointRounded: this.jointRounded,
727
- capRounded: this.capRounded,
728
- pickable: true,
729
- sizeScale: this.arrowSize || 6,
730
- parameters: {
731
- depthCompare: "always",
732
- blendColorOperation: this.noBlend ? void 0 : "max"
733
- },
734
- getPath: (nf) => nf.geoJson.geometry.coordinates,
735
- getColor: (nf) => toDeckColor(nf.style.lineColor, defaultColor),
736
- getWidth: (nf) => nf.style.lineWidthMeters || 1,
737
- getZLevel: (nf) => nf.style.zLevel * 255,
738
- getDirection: (nf) => NEBULA_TO_DECK_DIRECTIONS[nf.style.arrowStyle],
739
- getMarkerColor: (nf) => toDeckColor(nf.style.arrowColor, defaultColor),
740
- // eslint-disable-next-line @typescript-eslint/unbound-method
741
- getMarkerPercentages: this._calcMarkerPercentages,
742
- updateTriggers: { all: updateTrigger },
743
- highlightedObjectIndex: this._getHighlightedObjectIndex({ nebula }),
744
- highlightColor: toDeckColor(this.highlightColor),
745
- dashJustified: this.dashed,
746
- getDashArray: this.dashed ? (nf) => nf.style.dashArray : void 0,
747
- markerLayerProps: this.markerLayerProps || import_layers4.PathMarkerLayer.defaultProps.markerLayerProps,
748
- nebulaLayer: this
749
- });
750
- }
751
- };
752
-
753
- // dist/lib/nebula-core.js
754
- var import_eventemitter32 = require("eventemitter3");
755
- var import_core2 = require("@deck.gl/core");
756
- var LOGGER_PREFIX = "Nebula: ";
757
- var NebulaCore = class {
758
- init(props) {
759
- this.props = props;
760
- this.wmViewport = new import_core2.WebMercatorViewport(this.props.viewport);
761
- ["click", "mousemove", "mouseup", "mousedown"].forEach((name) => document.addEventListener(name, this._onMouseEvent, true));
762
- }
763
- detach() {
764
- ["click", "mousemove", "mouseup", "mousedown"].forEach((name) => document.removeEventListener(name, this._onMouseEvent, true));
765
- }
766
- updateProps(newProps) {
767
- this.props = newProps;
768
- const { viewport } = this.props;
769
- this.wmViewport = new import_core2.WebMercatorViewport(viewport);
770
- }
771
- props = null;
772
- deckgl = null;
773
- mainContainer = null;
774
- deckglMouseOverInfo = null;
775
- _deckDrawer = null;
776
- _mouseWasDown = null;
777
- wmViewport = null;
778
- queryObjectEvents = new import_eventemitter32.EventEmitter();
779
- forceUpdate = null;
780
- inited = null;
781
- log(message) {
782
- const { logger } = this.props;
783
- if (logger && logger.info) {
784
- logger.info(LOGGER_PREFIX + message);
785
- }
786
- }
787
- updateAllDeckObjects() {
788
- this.getAllLayers().forEach((layer) => {
789
- if (layer && layer.deckCache) {
790
- layer.deckCache.updateAllDeckObjects();
791
- }
792
- });
793
- this.forceUpdate();
794
- }
795
- updateDeckObjectsByIds(ids) {
796
- this.getAllLayers().forEach((layer) => {
797
- if (layer && layer.deckCache) {
798
- layer.deckCache.updateDeckObjectsByIds(ids);
799
- }
800
- });
801
- this.forceUpdate();
802
- }
803
- rerenderLayers() {
804
- this.updateAllDeckObjects();
805
- }
806
- _isNebulaEvent({ buttons, target, type }) {
807
- const { viewport } = this.props;
808
- if (this._mouseWasDown && type === "mouseup") {
809
- this._mouseWasDown = false;
810
- return true;
811
- }
812
- if (type === "mousemove" && buttons > 0) {
813
- return true;
814
- }
815
- if (!target.getBoundingClientRect) {
816
- return false;
817
- }
818
- const rect = target.getBoundingClientRect();
819
- return Math.round(rect.width) === Math.round(viewport.width) && Math.round(rect.height) === Math.round(viewport.height);
820
- }
821
- _onMouseEvent = (event) => {
822
- if (!this._isNebulaEvent(event)) {
823
- return;
824
- }
825
- if (event.type === "mousedown") {
826
- this._mouseWasDown = true;
827
- }
828
- const { top = 0, left = 0 } = this.mainContainer ? this.mainContainer.getBoundingClientRect() : {};
829
- const proxyEvent = new Proxy(event, {
830
- get: (original, propertyName) => {
831
- if (propertyName === "offsetX") {
832
- return original.pageX - left;
833
- }
834
- if (propertyName === "offsetY") {
835
- return original.pageY - top;
836
- }
837
- if (propertyName === "type") {
838
- return original.type.replace("pointer", "mouse");
839
- }
840
- const result = original[propertyName];
841
- if (typeof result === "function") {
842
- return result.bind(original);
843
- }
844
- return result;
845
- }
846
- });
847
- this._handleDeckGLEvent(proxyEvent);
848
- };
849
- getMouseGroundPosition(event) {
850
- return this.wmViewport.unproject([event.offsetX, event.offsetY]);
851
- }
852
- unprojectMousePosition(mousePosition) {
853
- return this.wmViewport.unproject(mousePosition);
854
- }
855
- // eslint-disable-next-line max-statements, complexity
856
- _handleDeckGLEvent(event) {
857
- const { deckgl, props: { onMapMouseEvent, selectionType, eventFilter } } = this;
858
- let sendMapEvent = true;
859
- let cursor = "auto";
860
- if (event && deckgl && selectionType) {
861
- if (!this._deckDrawer)
862
- this._deckDrawer = new DeckDrawer(this);
863
- const lngLat = this.getMouseGroundPosition(event);
864
- if (eventFilter && !eventFilter(lngLat, event))
865
- return;
866
- const drawerResult = this._deckDrawer.handleEvent(event, lngLat, selectionType);
867
- if (drawerResult.redraw)
868
- this.forceUpdate();
869
- return;
870
- }
871
- if (event && deckgl && (!event.buttons || event.type !== "mousemove")) {
872
- const layerIds = deckgl.props.layers.filter((l) => l && l.props && l.props.nebulaLayer && l.props.nebulaLayer.enablePicking).map((l) => l.id);
873
- const pickingInfo = deckgl.pickObject({
874
- x: event.offsetX,
875
- y: event.offsetY,
876
- radius: 5,
877
- layerIds
878
- });
879
- this.queryObjectEvents.emit("pick", { event, pickingInfo });
880
- if (pickingInfo) {
881
- sendMapEvent = false;
882
- const { index, lngLat } = pickingInfo;
883
- if (eventFilter && !eventFilter(lngLat, event))
884
- return;
885
- const { layer: deckLayer, object } = pickingInfo;
886
- if (deckLayer && deckLayer.props && deckLayer.props.nebulaLayer && deckLayer.props.nebulaLayer.eventHandler) {
887
- deckLayer.props.nebulaLayer.eventHandler(event, pickingInfo);
888
- }
889
- const original = object.original || deckLayer.props.nebulaLayer && deckLayer.props.nebulaLayer.deckCache && deckLayer.props.nebulaLayer.deckCache.originals[index];
890
- if (original) {
891
- this.deckglMouseOverInfo = { originalLayer: deckLayer.props.nebulaLayer, index };
892
- const nebulaMouseEvent = new LayerMouseEvent(event, {
893
- data: original,
894
- metadata: object.metadata,
895
- groundPoint: lngLat,
896
- nebula: this
897
- });
898
- deckLayer.props.nebulaLayer.emit(event.type, nebulaMouseEvent);
899
- this.forceUpdate();
900
- }
901
- cursor = "pointer";
902
- }
903
- }
904
- if (document.documentElement) {
905
- document.documentElement.style.cursor = cursor;
906
- }
907
- if (sendMapEvent) {
908
- this.deckglMouseOverInfo = null;
909
- const lngLat = this.getMouseGroundPosition(event);
910
- if (eventFilter && !eventFilter(lngLat, event))
911
- return;
912
- const nebulaMouseEvent = new LayerMouseEvent(event, {
913
- groundPoint: lngLat,
914
- nebula: this
915
- });
916
- this.getAllLayers().filter((layer) => layer && layer.usesMapEvents).forEach((layer) => layer.emit("mapMouseEvent", nebulaMouseEvent));
917
- this.getAllLayers().filter((layer) => layer && layer.props && layer.props.nebulaLayer && layer.props.nebulaLayer.mapMouseEvent).forEach((layer) => layer.props.nebulaLayer.mapMouseEvent(nebulaMouseEvent, layer));
918
- if (onMapMouseEvent) {
919
- onMapMouseEvent(event, lngLat);
920
- }
921
- }
922
- }
923
- getExtraDeckLayers() {
924
- const result = [];
925
- if (this._deckDrawer)
926
- result.push(...this._deckDrawer.render());
927
- return result;
928
- }
929
- renderDeckLayers() {
930
- return this.getAllLayers().map((layer) => layer instanceof NebulaLayer ? layer.render({ nebula: this }) : layer).filter(Boolean);
931
- }
932
- getAllLayers() {
933
- const result = [];
934
- this.props.layers.filter(Boolean).forEach((layer) => {
935
- result.push(layer);
936
- if (layer instanceof NebulaLayer) {
937
- result.push(...layer.helperLayers);
938
- }
939
- });
940
- return result.filter(Boolean);
941
- }
942
- getRenderedLayers() {
943
- return [...this.renderDeckLayers(), ...this.getExtraDeckLayers()];
944
- }
945
- updateAndGetRenderedLayers(layers, viewport, container) {
946
- if (this.inited) {
947
- this.updateProps({ layers, viewport });
948
- this.forceUpdate = () => container.forceUpdate();
949
- } else {
950
- this.inited = true;
951
- this.init({ layers, viewport });
952
- this.forceUpdate = () => container.forceUpdate();
953
- this.updateAllDeckObjects();
954
- }
955
- return this.getRenderedLayers();
956
- }
957
- setDeck(deckgl) {
958
- if (deckgl) {
959
- this.deckgl = deckgl;
960
- }
961
- }
962
- setMainContainer(mainContainer) {
963
- if (mainContainer) {
964
- this.mainContainer = mainContainer;
965
- }
966
- }
967
- };
968
-
969
195
  // dist/editable-layers/editable-geojson-layer.js
970
- var import_layers6 = require("@deck.gl/layers");
196
+ var import_layers2 = require("@deck.gl/layers");
971
197
 
972
198
  // dist/edit-modes/geojson-edit-mode.js
199
+ var import_helpers3 = require("@turf/helpers");
973
200
  var import_union = __toESM(require("@turf/union"), 1);
974
- var import_difference2 = __toESM(require("@turf/difference"), 1);
201
+ var import_difference = __toESM(require("@turf/difference"), 1);
975
202
  var import_intersect = __toESM(require("@turf/intersect"), 1);
976
203
  var import_rewind = __toESM(require("@turf/rewind"), 1);
977
204
 
@@ -980,7 +207,7 @@ var import_destination2 = __toESM(require("@turf/destination"), 1);
980
207
  var import_bearing2 = __toESM(require("@turf/bearing"), 1);
981
208
  var import_point_to_line_distance2 = __toESM(require("@turf/point-to-line-distance"), 1);
982
209
  var import_meta = require("@turf/meta");
983
- var import_helpers3 = require("@turf/helpers");
210
+ var import_helpers2 = require("@turf/helpers");
984
211
  var import_invariant = require("@turf/invariant");
985
212
  var import_viewport_mercator_project2 = require("viewport-mercator-project");
986
213
  function recursivelyTraverseNestedArrays2(array, prefix, fn) {
@@ -1000,7 +227,7 @@ function generatePointsParallelToLinePoints2(p1, p2, coords) {
1000
227
  type: "LineString",
1001
228
  coordinates: [p1, p2]
1002
229
  };
1003
- const pt = (0, import_helpers3.point)(coords);
230
+ const pt = (0, import_helpers2.point)(coords);
1004
231
  const ddistance = (0, import_point_to_line_distance2.default)(pt, lineString3);
1005
232
  const lineBearing = (0, import_bearing2.default)(p1, p2);
1006
233
  const isPointToLeftOfLine = (coords[0] - p1[0]) * (p2[1] - p1[1]) - (coords[1] - p1[1]) * (p2[0] - p1[0]);
@@ -1069,7 +296,7 @@ function nearestPointOnLine(lines, inPoint, viewport) {
1069
296
  if (viewport) {
1070
297
  mercator = new import_viewport_mercator_project2.WebMercatorViewport(viewport);
1071
298
  }
1072
- let closestPoint = (0, import_helpers3.point)([Infinity, Infinity], {
299
+ let closestPoint = (0, import_helpers2.point)([Infinity, Infinity], {
1073
300
  dist: Infinity
1074
301
  });
1075
302
  if (!((_a = lines.geometry) == null ? void 0 : _a.coordinates.length) || ((_b = lines.geometry) == null ? void 0 : _b.coordinates.length) < 2) {
@@ -1143,7 +370,7 @@ function nearestPointOnLine(lines, inPoint, viewport) {
1143
370
  from
1144
371
  };
1145
372
  }
1146
- closestPoint = (0, import_helpers3.point)([snapPoint.x, snapPoint.y], {
373
+ closestPoint = (0, import_helpers2.point)([snapPoint.x, snapPoint.y], {
1147
374
  dist: Math.abs(snapPoint.from - snapPoint.to),
1148
375
  index: snapPoint.idx
1149
376
  });
@@ -1270,8 +497,8 @@ function shouldCancelPan(event) {
1270
497
  // dist/edit-modes/immutable-feature-collection.js
1271
498
  var ImmutableFeatureCollection = class {
1272
499
  featureCollection;
1273
- constructor(featureCollection4) {
1274
- this.featureCollection = featureCollection4;
500
+ constructor(featureCollection7) {
501
+ this.featureCollection = featureCollection7;
1275
502
  }
1276
503
  getObject() {
1277
504
  return this.featureCollection;
@@ -1506,9 +733,9 @@ function pruneGeometryIfNecessary(geometry) {
1506
733
  }
1507
734
  }
1508
735
  function prunePolygonIfNecessary(geometry) {
1509
- const polygon3 = geometry.coordinates;
1510
- for (let holeIndex = 1; holeIndex < polygon3.length; holeIndex++) {
1511
- if (removeHoleIfNecessary(polygon3, holeIndex)) {
736
+ const polygon2 = geometry.coordinates;
737
+ for (let holeIndex = 1; holeIndex < polygon2.length; holeIndex++) {
738
+ if (removeHoleIfNecessary(polygon2, holeIndex)) {
1512
739
  holeIndex--;
1513
740
  }
1514
741
  }
@@ -1524,23 +751,23 @@ function pruneMultiLineStringIfNecessary(geometry) {
1524
751
  }
1525
752
  function pruneMultiPolygonIfNecessary(geometry) {
1526
753
  for (let polygonIndex = 0; polygonIndex < geometry.coordinates.length; polygonIndex++) {
1527
- const polygon3 = geometry.coordinates[polygonIndex];
1528
- const outerRing = polygon3[0];
754
+ const polygon2 = geometry.coordinates[polygonIndex];
755
+ const outerRing = polygon2[0];
1529
756
  if (outerRing.length <= 3) {
1530
757
  geometry.coordinates.splice(polygonIndex, 1);
1531
758
  polygonIndex--;
1532
759
  }
1533
- for (let holeIndex = 1; holeIndex < polygon3.length; holeIndex++) {
1534
- if (removeHoleIfNecessary(polygon3, holeIndex)) {
760
+ for (let holeIndex = 1; holeIndex < polygon2.length; holeIndex++) {
761
+ if (removeHoleIfNecessary(polygon2, holeIndex)) {
1535
762
  holeIndex--;
1536
763
  }
1537
764
  }
1538
765
  }
1539
766
  }
1540
- function removeHoleIfNecessary(polygon3, holeIndex) {
1541
- const hole = polygon3[holeIndex];
767
+ function removeHoleIfNecessary(polygon2, holeIndex) {
768
+ const hole = polygon2[holeIndex];
1542
769
  if (hole.length <= 3) {
1543
- polygon3.splice(holeIndex, 1);
770
+ polygon2.splice(holeIndex, 1);
1544
771
  return true;
1545
772
  }
1546
773
  return false;
@@ -1667,11 +894,11 @@ var GeoJsonEditMode = class {
1667
894
  };
1668
895
  let updatedGeometry;
1669
896
  if (modeConfig.booleanOperation === "union") {
1670
- updatedGeometry = (0, import_union.default)(selectedFeature, feature);
897
+ updatedGeometry = (0, import_union.default)((0, import_helpers3.featureCollection)([selectedFeature, feature]));
1671
898
  } else if (modeConfig.booleanOperation === "difference") {
1672
- updatedGeometry = (0, import_difference2.default)(selectedFeature, feature);
899
+ updatedGeometry = (0, import_difference.default)((0, import_helpers3.featureCollection)([selectedFeature, feature]));
1673
900
  } else if (modeConfig.booleanOperation === "intersection") {
1674
- updatedGeometry = (0, import_intersect.default)(selectedFeature, feature);
901
+ updatedGeometry = (0, import_intersect.default)((0, import_helpers3.featureCollection)([selectedFeature, feature]));
1675
902
  } else {
1676
903
  console.warn(`Invalid booleanOperation ${modeConfig.booleanOperation}`);
1677
904
  return null;
@@ -1744,7 +971,7 @@ var ViewMode = class extends GeoJsonEditMode {
1744
971
 
1745
972
  // dist/edit-modes/translate-mode.js
1746
973
  var import_bearing3 = __toESM(require("@turf/bearing"), 1);
1747
- var import_distance2 = __toESM(require("@turf/distance"), 1);
974
+ var import_distance = __toESM(require("@turf/distance"), 1);
1748
975
  var import_clone = __toESM(require("@turf/clone"), 1);
1749
976
  var import_helpers4 = require("@turf/helpers");
1750
977
  var import_viewport_mercator_project3 = require("viewport-mercator-project");
@@ -1847,7 +1074,7 @@ var TranslateMode = class extends GeoJsonEditMode {
1847
1074
  } else {
1848
1075
  const p1 = (0, import_helpers4.point)(startDragPoint);
1849
1076
  const p2 = (0, import_helpers4.point)(currentPoint);
1850
- const distanceMoved = (0, import_distance2.default)(p1, p2);
1077
+ const distanceMoved = (0, import_distance.default)(p1, p2);
1851
1078
  const direction = (0, import_bearing3.default)(p1, p2);
1852
1079
  const movedFeatures = this._geometryBeforeTranslate.features.map((feature) => translateFromCenter((0, import_clone.default)(feature), distanceMoved, direction));
1853
1080
  for (let i = 0; i < selectedIndexes.length; i++) {
@@ -1894,12 +1121,7 @@ var ModifyMode = class extends GeoJsonEditMode {
1894
1121
  const referencePoint = (0, import_helpers5.point)(mapCoords2);
1895
1122
  recursivelyTraverseNestedArrays2(featureAsPick.object.geometry.coordinates, [], (lineString3, prefix) => {
1896
1123
  const lineStringFeature = (0, import_helpers5.lineString)(lineString3);
1897
- const candidateIntermediatePoint = this.getNearestPoint(
1898
- // @ts-expect-error turf types too wide
1899
- lineStringFeature,
1900
- referencePoint,
1901
- props.modeConfig && props.modeConfig.viewport
1902
- );
1124
+ const candidateIntermediatePoint = this.getNearestPoint(lineStringFeature, referencePoint, props.modeConfig && props.modeConfig.viewport);
1903
1125
  if (!intermediatePoint || candidateIntermediatePoint.properties.dist < intermediatePoint.properties.dist) {
1904
1126
  intermediatePoint = candidateIntermediatePoint;
1905
1127
  positionIndexPrefix = prefix;
@@ -2035,7 +1257,7 @@ var ModifyMode = class extends GeoJsonEditMode {
2035
1257
  }
2036
1258
  handleStopDragging(event, props) {
2037
1259
  const selectedFeatureIndexes = props.selectedIndexes;
2038
- const editHandle = getPickedEditHandle(event.picks);
1260
+ const editHandle = getPickedEditHandle(event.pointerDownPicks);
2039
1261
  if (selectedFeatureIndexes.length && editHandle) {
2040
1262
  this._dragEditHandle("finishMovePosition", props, editHandle, event);
2041
1263
  }
@@ -2051,14 +1273,14 @@ var ModifyMode = class extends GeoJsonEditMode {
2051
1273
  };
2052
1274
 
2053
1275
  // dist/edit-modes/scale-mode.js
2054
- var import_bbox2 = __toESM(require("@turf/bbox"), 1);
1276
+ var import_bbox = __toESM(require("@turf/bbox"), 1);
2055
1277
  var import_centroid = __toESM(require("@turf/centroid"), 1);
2056
1278
  var import_bearing4 = __toESM(require("@turf/bearing"), 1);
2057
- var import_bbox_polygon2 = __toESM(require("@turf/bbox-polygon"), 1);
1279
+ var import_bbox_polygon = __toESM(require("@turf/bbox-polygon"), 1);
2058
1280
  var import_helpers6 = require("@turf/helpers");
2059
1281
  var import_polygon_to_line = require("@turf/polygon-to-line");
2060
1282
  var import_meta2 = require("@turf/meta");
2061
- var import_distance3 = __toESM(require("@turf/distance"), 1);
1283
+ var import_distance2 = __toESM(require("@turf/distance"), 1);
2062
1284
  var import_transform_scale = __toESM(require("@turf/transform-scale"), 1);
2063
1285
  var import_invariant2 = require("@turf/invariant");
2064
1286
  var ScaleMode = class extends GeoJsonEditMode {
@@ -2107,12 +1329,7 @@ var ScaleMode = class extends GeoJsonEditMode {
2107
1329
  const oppositeHandle = this._getOppositeScaleHandle(this._selectedEditHandle);
2108
1330
  const origin = (0, import_invariant2.getCoord)(oppositeHandle);
2109
1331
  const scaleFactor = getScaleFactor(origin, startDragPoint, currentPoint);
2110
- const scaledFeatures = (0, import_transform_scale.default)(
2111
- // @ts-expect-error turf types diff
2112
- this._geometryBeingScaled,
2113
- scaleFactor,
2114
- { origin }
2115
- );
1332
+ const scaledFeatures = (0, import_transform_scale.default)(this._geometryBeingScaled, scaleFactor, { origin });
2116
1333
  return {
2117
1334
  updatedData: this._getUpdatedData(props, scaledFeatures),
2118
1335
  editType,
@@ -2186,7 +1403,7 @@ var ScaleMode = class extends GeoJsonEditMode {
2186
1403
  if (this._isSinglePointGeometrySelected(selectedGeometry)) {
2187
1404
  return { type: "FeatureCollection", features: [] };
2188
1405
  }
2189
- const boundingBox = (0, import_bbox_polygon2.default)((0, import_bbox2.default)(selectedGeometry));
1406
+ const boundingBox = (0, import_bbox_polygon.default)((0, import_bbox.default)(selectedGeometry));
2190
1407
  boundingBox.properties.mode = "scale";
2191
1408
  const cornerGuidePoints = [];
2192
1409
  (0, import_meta2.coordEach)(boundingBox, (coord, coordIndex) => {
@@ -2204,17 +1421,17 @@ var ScaleMode = class extends GeoJsonEditMode {
2204
1421
  }
2205
1422
  };
2206
1423
  function getScaleFactor(centroid, startDragPoint, currentPoint) {
2207
- const startDistance = (0, import_distance3.default)(centroid, startDragPoint);
2208
- const endDistance = (0, import_distance3.default)(centroid, currentPoint);
1424
+ const startDistance = (0, import_distance2.default)(centroid, startDragPoint);
1425
+ const endDistance = (0, import_distance2.default)(centroid, currentPoint);
2209
1426
  return endDistance / startDistance;
2210
1427
  }
2211
1428
 
2212
1429
  // dist/edit-modes/rotate-mode.js
2213
- var import_bbox3 = __toESM(require("@turf/bbox"), 1);
1430
+ var import_bbox2 = __toESM(require("@turf/bbox"), 1);
2214
1431
  var import_centroid2 = __toESM(require("@turf/centroid"), 1);
2215
1432
  var import_bearing5 = __toESM(require("@turf/bearing"), 1);
2216
- var import_bbox_polygon3 = __toESM(require("@turf/bbox-polygon"), 1);
2217
- var import_distance4 = __toESM(require("@turf/distance"), 1);
1433
+ var import_bbox_polygon2 = __toESM(require("@turf/bbox-polygon"), 1);
1434
+ var import_distance3 = __toESM(require("@turf/distance"), 1);
2218
1435
  var import_meta3 = require("@turf/meta");
2219
1436
  var import_invariant3 = require("@turf/invariant");
2220
1437
  var import_helpers7 = require("@turf/helpers");
@@ -2241,7 +1458,7 @@ var RotateMode = class extends GeoJsonEditMode {
2241
1458
  if (this._isRotating) {
2242
1459
  return (0, import_helpers7.featureCollection)([(0, import_centroid2.default)(selectedGeometry)]);
2243
1460
  }
2244
- const boundingBox = (0, import_bbox_polygon3.default)((0, import_bbox3.default)(selectedGeometry));
1461
+ const boundingBox = (0, import_bbox_polygon2.default)((0, import_bbox2.default)(selectedGeometry));
2245
1462
  let previousCoord = null;
2246
1463
  let topEdgeMidpointCoords = null;
2247
1464
  let longestEdgeLength = 0;
@@ -2251,7 +1468,7 @@ var RotateMode = class extends GeoJsonEditMode {
2251
1468
  if (!topEdgeMidpointCoords || edgeMidpoint[1] > topEdgeMidpointCoords[1]) {
2252
1469
  topEdgeMidpointCoords = edgeMidpoint;
2253
1470
  }
2254
- const edgeDistance = (0, import_distance4.default)(coord, previousCoord);
1471
+ const edgeDistance = (0, import_distance3.default)(coord, previousCoord);
2255
1472
  longestEdgeLength = Math.max(longestEdgeLength, edgeDistance);
2256
1473
  }
2257
1474
  previousCoord = coord;
@@ -2315,15 +1532,10 @@ var RotateMode = class extends GeoJsonEditMode {
2315
1532
  return null;
2316
1533
  }
2317
1534
  const centroid = (0, import_centroid2.default)(this._geometryBeingRotated);
2318
- const angle = getRotationAngle(centroid, startDragPoint, currentPoint);
2319
- const rotatedFeatures = (0, import_transform_rotate.default)(
2320
- // @ts-expect-error turf types too wide
2321
- this._geometryBeingRotated,
2322
- angle,
2323
- {
2324
- pivot: centroid
2325
- }
2326
- );
1535
+ const angle = getRotationAngle(centroid.geometry.coordinates, startDragPoint, currentPoint);
1536
+ const rotatedFeatures = (0, import_transform_rotate.default)(this._geometryBeingRotated, angle, {
1537
+ pivot: centroid
1538
+ });
2327
1539
  let updatedData = new ImmutableFeatureCollection(props.data);
2328
1540
  const selectedIndexes = props.selectedIndexes;
2329
1541
  for (let i = 0; i < selectedIndexes.length; i++) {
@@ -2365,12 +1577,12 @@ var DuplicateMode = class extends TranslateMode {
2365
1577
 
2366
1578
  // dist/edit-modes/split-polygon-mode.js
2367
1579
  var import_boolean_point_in_polygon = __toESM(require("@turf/boolean-point-in-polygon"), 1);
2368
- var import_difference3 = __toESM(require("@turf/difference"), 1);
2369
- var import_buffer2 = __toESM(require("@turf/buffer"), 1);
1580
+ var import_difference2 = __toESM(require("@turf/difference"), 1);
1581
+ var import_buffer = __toESM(require("@turf/buffer"), 1);
2370
1582
  var import_line_intersect = __toESM(require("@turf/line-intersect"), 1);
2371
1583
  var import_helpers8 = require("@turf/helpers");
2372
1584
  var import_bearing6 = __toESM(require("@turf/bearing"), 1);
2373
- var import_distance5 = __toESM(require("@turf/distance"), 1);
1585
+ var import_distance4 = __toESM(require("@turf/distance"), 1);
2374
1586
  var import_destination3 = __toESM(require("@turf/destination"), 1);
2375
1587
  var import_polygon_to_line3 = __toESM(require("@turf/polygon-to-line"), 1);
2376
1588
  var import_nearest_point_on_line = __toESM(require("@turf/nearest-point-on-line"), 1);
@@ -2389,7 +1601,7 @@ var SplitPolygonMode = class extends GeoJsonEditMode {
2389
1601
  let closestPoint = null;
2390
1602
  lines.forEach((line) => {
2391
1603
  const snapPoint = (0, import_nearest_point_on_line.default)(line, firstPoint);
2392
- const distanceFromOrigin = (0, import_distance5.default)(snapPoint, firstPoint);
1604
+ const distanceFromOrigin = (0, import_distance4.default)(snapPoint, firstPoint);
2393
1605
  if (minDistance > distanceFromOrigin) {
2394
1606
  minDistance = distanceFromOrigin;
2395
1607
  closestPoint = snapPoint;
@@ -2397,7 +1609,7 @@ var SplitPolygonMode = class extends GeoJsonEditMode {
2397
1609
  });
2398
1610
  if (closestPoint) {
2399
1611
  const lastBearing = (0, import_bearing6.default)(firstPoint, closestPoint);
2400
- const currentDistance = (0, import_distance5.default)(firstPoint, mapCoords2, { units: "meters" });
1612
+ const currentDistance = (0, import_distance4.default)(firstPoint, mapCoords2, { units: "meters" });
2401
1613
  return (0, import_destination3.default)(firstPoint, currentDistance, lastBearing, {
2402
1614
  units: "meters"
2403
1615
  }).geometry.coordinates;
@@ -2473,8 +1685,8 @@ var SplitPolygonMode = class extends GeoJsonEditMode {
2473
1685
  gap = 0.1;
2474
1686
  units = "centimeters";
2475
1687
  }
2476
- const buffer = (0, import_buffer2.default)(tentativeFeature, gap, { units });
2477
- const updatedGeometry = (0, import_difference3.default)(selectedGeometry, buffer);
1688
+ const buffer = (0, import_buffer.default)(tentativeFeature, gap, { units });
1689
+ const updatedGeometry = (0, import_difference2.default)((0, import_helpers8.featureCollection)([(0, import_helpers8.feature)(selectedGeometry), buffer]));
2478
1690
  if (!updatedGeometry) {
2479
1691
  console.warn("Canceling edit. Split Polygon erased");
2480
1692
  return null;
@@ -2749,7 +1961,7 @@ var DrawPointMode = class extends GeoJsonEditMode {
2749
1961
  };
2750
1962
 
2751
1963
  // dist/edit-modes/draw-line-string-mode.js
2752
- var import_distance6 = __toESM(require("@turf/distance"), 1);
1964
+ var import_distance5 = __toESM(require("@turf/distance"), 1);
2753
1965
 
2754
1966
  // dist/utils/memoize.js
2755
1967
  function isEqual(a, b) {
@@ -2906,7 +2118,7 @@ var DrawLineStringMode = class extends GeoJsonEditMode {
2906
2118
  calculateInfoDraw(clickSequence) {
2907
2119
  if (clickSequence.length > 1) {
2908
2120
  this.position = clickSequence[clickSequence.length - 1];
2909
- this.dist += (0, import_distance6.default)(clickSequence[clickSequence.length - 2], clickSequence[clickSequence.length - 1]);
2121
+ this.dist += (0, import_distance5.default)(clickSequence[clickSequence.length - 2], clickSequence[clickSequence.length - 1]);
2910
2122
  }
2911
2123
  }
2912
2124
  /**
@@ -3079,8 +2291,8 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
3079
2291
  // eslint-disable-next-line max-statements, complexity
3080
2292
  finishDrawing(props) {
3081
2293
  const clickSequence = this.getClickSequence();
3082
- const polygon3 = [...clickSequence, clickSequence[0]];
3083
- const newPolygon = (0, import_helpers9.polygon)([polygon3]);
2294
+ const polygon2 = [...clickSequence, clickSequence[0]];
2295
+ const newPolygon = (0, import_helpers9.polygon)([polygon2]);
3084
2296
  const canAddHole = canAddHoleToPolygon(props);
3085
2297
  const canOverlap = canPolygonOverlap(props);
3086
2298
  if (!canOverlap) {
@@ -3096,7 +2308,7 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
3096
2308
  }
3097
2309
  }
3098
2310
  if (canAddHole) {
3099
- const holeResult = this.tryAddHoleToExistingPolygon(newPolygon, polygon3, props);
2311
+ const holeResult = this.tryAddHoleToExistingPolygon(newPolygon, polygon2, props);
3100
2312
  if (holeResult.handled) {
3101
2313
  this.resetClickSequence();
3102
2314
  return;
@@ -3111,10 +2323,10 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
3111
2323
  this.resetClickSequence();
3112
2324
  return;
3113
2325
  }
3114
- tryAddHoleToExistingPolygon(newPolygon, polygon3, props) {
2326
+ tryAddHoleToExistingPolygon(newPolygon, polygon2, props) {
3115
2327
  for (const [featureIndex, feature] of props.data.features.entries()) {
3116
2328
  if (feature.geometry.type === "Polygon") {
3117
- const result = this.validateAndCreateHole(feature, featureIndex, newPolygon, polygon3, props);
2329
+ const result = this.validateAndCreateHole(feature, featureIndex, newPolygon, polygon2, props);
3118
2330
  if (result.handled) {
3119
2331
  return result;
3120
2332
  }
@@ -3122,7 +2334,7 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
3122
2334
  }
3123
2335
  return { handled: false };
3124
2336
  }
3125
- validateAndCreateHole(feature, featureIndex, newPolygon, polygon3, props) {
2337
+ validateAndCreateHole(feature, featureIndex, newPolygon, polygon2, props) {
3126
2338
  const outer = (0, import_helpers9.polygon)(feature.geometry.coordinates);
3127
2339
  for (let i = 1; i < feature.geometry.coordinates.length; i++) {
3128
2340
  const hole = (0, import_helpers9.polygon)([feature.geometry.coordinates[i]]);
@@ -3164,7 +2376,7 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
3164
2376
  if ((0, import_boolean_within.default)(newPolygon, outer)) {
3165
2377
  const updatedData = new ImmutableFeatureCollection(props.data).replaceGeometry(featureIndex, {
3166
2378
  ...feature.geometry,
3167
- coordinates: [...feature.geometry.coordinates, polygon3]
2379
+ coordinates: [...feature.geometry.coordinates, polygon2]
3168
2380
  }).getObject();
3169
2381
  props.onEdit({
3170
2382
  updatedData,
@@ -3191,7 +2403,7 @@ function canPolygonOverlap(props) {
3191
2403
  }
3192
2404
 
3193
2405
  // dist/edit-modes/draw-rectangle-mode.js
3194
- var import_bbox_polygon4 = __toESM(require("@turf/bbox-polygon"), 1);
2406
+ var import_bbox_polygon3 = __toESM(require("@turf/bbox-polygon"), 1);
3195
2407
 
3196
2408
  // dist/edit-modes/two-click-polygon-mode.js
3197
2409
  var import_lodash = __toESM(require("lodash.omit"), 1);
@@ -3248,15 +2460,15 @@ var TwoClickPolygonMode = class extends GeoJsonEditMode {
3248
2460
  }
3249
2461
  const corner1 = clickSequence[0];
3250
2462
  const corner2 = lastPointerMoveEvent.mapCoords;
3251
- const polygon3 = this.getTwoClickPolygon(corner1, corner2, modeConfig);
3252
- if (polygon3) {
2463
+ const polygon2 = this.getTwoClickPolygon(corner1, corner2, modeConfig);
2464
+ if (polygon2) {
3253
2465
  guides.features.push({
3254
2466
  type: "Feature",
3255
2467
  properties: {
3256
- ...polygon3.properties,
2468
+ ...polygon2.properties,
3257
2469
  guideType: "tentative"
3258
2470
  },
3259
- geometry: polygon3.geometry
2471
+ geometry: polygon2.geometry
3260
2472
  });
3261
2473
  }
3262
2474
  return guides;
@@ -3283,7 +2495,7 @@ var TwoClickPolygonMode = class extends GeoJsonEditMode {
3283
2495
  // dist/edit-modes/draw-rectangle-mode.js
3284
2496
  var DrawRectangleMode = class extends TwoClickPolygonMode {
3285
2497
  getTwoClickPolygon(coord1, coord2, modeConfig) {
3286
- const rectangle = (0, import_bbox_polygon4.default)([coord1[0], coord1[1], coord2[0], coord2[1]]);
2498
+ const rectangle = (0, import_bbox_polygon3.default)([coord1[0], coord1[1], coord2[0], coord2[1]]);
3287
2499
  rectangle.properties = rectangle.properties || {};
3288
2500
  rectangle.properties.shape = "Rectangle";
3289
2501
  return rectangle;
@@ -3291,22 +2503,22 @@ var DrawRectangleMode = class extends TwoClickPolygonMode {
3291
2503
  };
3292
2504
 
3293
2505
  // dist/edit-modes/draw-square-mode.js
3294
- var import_bbox_polygon5 = __toESM(require("@turf/bbox-polygon"), 1);
3295
- var import_distance7 = __toESM(require("@turf/distance"), 1);
2506
+ var import_bbox_polygon4 = __toESM(require("@turf/bbox-polygon"), 1);
2507
+ var import_distance6 = __toESM(require("@turf/distance"), 1);
3296
2508
  var import_along = __toESM(require("@turf/along"), 1);
3297
2509
  var import_helpers10 = require("@turf/helpers");
3298
2510
  var DrawSquareMode = class extends TwoClickPolygonMode {
3299
2511
  getTwoClickPolygon(coord1, coord2, modeConfig) {
3300
2512
  const coord3 = [coord2[0], coord1[1]];
3301
2513
  const coord4 = [coord1[0], coord2[1]];
3302
- const distance1 = (0, import_distance7.default)((0, import_helpers10.point)(coord3), (0, import_helpers10.point)(coord1));
3303
- const distance22 = (0, import_distance7.default)((0, import_helpers10.point)(coord4), (0, import_helpers10.point)(coord1));
2514
+ const distance1 = (0, import_distance6.default)((0, import_helpers10.point)(coord3), (0, import_helpers10.point)(coord1));
2515
+ const distance22 = (0, import_distance6.default)((0, import_helpers10.point)(coord4), (0, import_helpers10.point)(coord1));
3304
2516
  const shortestDistance = distance1 <= distance22 ? distance1 : distance22;
3305
2517
  const closestPoint = distance1 <= distance22 ? coord3 : coord4;
3306
2518
  const line = (0, import_helpers10.lineString)([closestPoint, coord2]);
3307
2519
  const newPoint = (0, import_along.default)(line, shortestDistance);
3308
2520
  const corner = newPoint.geometry.coordinates;
3309
- const square = (0, import_bbox_polygon5.default)([coord1[0], coord1[1], corner[0], corner[1]]);
2521
+ const square = (0, import_bbox_polygon4.default)([coord1[0], coord1[1], corner[0], corner[1]]);
3310
2522
  square.properties = square.properties || {};
3311
2523
  square.properties.shape = "Square";
3312
2524
  return square;
@@ -3314,12 +2526,12 @@ var DrawSquareMode = class extends TwoClickPolygonMode {
3314
2526
  };
3315
2527
 
3316
2528
  // dist/edit-modes/draw-rectangle-from-center-mode.js
3317
- var import_bbox_polygon6 = __toESM(require("@turf/bbox-polygon"), 1);
2529
+ var import_bbox_polygon5 = __toESM(require("@turf/bbox-polygon"), 1);
3318
2530
  var DrawRectangleFromCenterMode = class extends TwoClickPolygonMode {
3319
2531
  getTwoClickPolygon(coord1, coord2, modeConfig) {
3320
2532
  const longitude = coord1[0] > coord2[0] ? coord1[0] + Math.abs(coord1[0] - coord2[0]) : coord1[0] - Math.abs(coord1[0] - coord2[0]);
3321
2533
  const latitude = coord1[1] > coord2[1] ? coord1[1] + Math.abs(coord1[1] - coord2[1]) : coord1[1] - Math.abs(coord1[1] - coord2[1]);
3322
- const rectangle = (0, import_bbox_polygon6.default)([longitude, latitude, coord2[0], coord2[1]]);
2534
+ const rectangle = (0, import_bbox_polygon5.default)([longitude, latitude, coord2[0], coord2[1]]);
3323
2535
  rectangle.properties = rectangle.properties || {};
3324
2536
  rectangle.properties.shape = "Rectangle";
3325
2537
  return rectangle;
@@ -3327,16 +2539,16 @@ var DrawRectangleFromCenterMode = class extends TwoClickPolygonMode {
3327
2539
  };
3328
2540
 
3329
2541
  // dist/edit-modes/draw-square-from-center-mode.js
3330
- var import_bbox_polygon7 = __toESM(require("@turf/bbox-polygon"), 1);
3331
- var import_distance8 = __toESM(require("@turf/distance"), 1);
2542
+ var import_bbox_polygon6 = __toESM(require("@turf/bbox-polygon"), 1);
2543
+ var import_distance7 = __toESM(require("@turf/distance"), 1);
3332
2544
  var import_along2 = __toESM(require("@turf/along"), 1);
3333
2545
  var import_helpers11 = require("@turf/helpers");
3334
2546
  var DrawSquareFromCenterMode = class extends TwoClickPolygonMode {
3335
2547
  getTwoClickPolygon(coord1, coord2, modeConfig) {
3336
2548
  const coord3 = [coord2[0], coord1[1]];
3337
2549
  const coord4 = [coord1[0], coord2[1]];
3338
- const distance1 = (0, import_distance8.default)((0, import_helpers11.point)(coord3), (0, import_helpers11.point)(coord1));
3339
- const distance22 = (0, import_distance8.default)((0, import_helpers11.point)(coord4), (0, import_helpers11.point)(coord1));
2550
+ const distance1 = (0, import_distance7.default)((0, import_helpers11.point)(coord3), (0, import_helpers11.point)(coord1));
2551
+ const distance22 = (0, import_distance7.default)((0, import_helpers11.point)(coord4), (0, import_helpers11.point)(coord1));
3340
2552
  const shortestDistance = distance1 <= distance22 ? distance1 : distance22;
3341
2553
  const closestPoint = distance1 <= distance22 ? coord3 : coord4;
3342
2554
  const line = (0, import_helpers11.lineString)([closestPoint, coord2]);
@@ -3344,7 +2556,7 @@ var DrawSquareFromCenterMode = class extends TwoClickPolygonMode {
3344
2556
  const corner = newPoint.geometry.coordinates;
3345
2557
  const longitude = coord1[0] > corner[0] ? coord1[0] + Math.abs(coord1[0] - corner[0]) : coord1[0] - Math.abs(coord1[0] - corner[0]);
3346
2558
  const latitude = coord1[1] > corner[1] ? coord1[1] + Math.abs(coord1[1] - corner[1]) : coord1[1] - Math.abs(coord1[1] - corner[1]);
3347
- const square = (0, import_bbox_polygon7.default)([longitude, latitude, corner[0], corner[1]]);
2559
+ const square = (0, import_bbox_polygon6.default)([longitude, latitude, corner[0], corner[1]]);
3348
2560
  square.properties = square.properties || {};
3349
2561
  square.properties.shape = "Square";
3350
2562
  return square;
@@ -3353,7 +2565,7 @@ var DrawSquareFromCenterMode = class extends TwoClickPolygonMode {
3353
2565
 
3354
2566
  // dist/edit-modes/draw-circle-from-center-mode.js
3355
2567
  var import_circle = __toESM(require("@turf/circle"), 1);
3356
- var import_distance9 = __toESM(require("@turf/distance"), 1);
2568
+ var import_distance8 = __toESM(require("@turf/distance"), 1);
3357
2569
  var import_area = __toESM(require("@turf/area"), 1);
3358
2570
  var DrawCircleFromCenterMode = class extends TwoClickPolygonMode {
3359
2571
  radius = null;
@@ -3367,7 +2579,7 @@ var DrawCircleFromCenterMode = class extends TwoClickPolygonMode {
3367
2579
  console.warn("Minimum steps to draw a circle is 4 ");
3368
2580
  options.steps = 4;
3369
2581
  }
3370
- this.radius = Math.max((0, import_distance9.default)(coord1, coord2), 1e-3);
2582
+ this.radius = Math.max((0, import_distance8.default)(coord1, coord2), 1e-3);
3371
2583
  const geometry = (0, import_circle.default)(coord1, this.radius, options);
3372
2584
  geometry.properties = geometry.properties || {};
3373
2585
  geometry.properties.shape = "Circle";
@@ -3421,7 +2633,7 @@ var DrawCircleFromCenterMode = class extends TwoClickPolygonMode {
3421
2633
 
3422
2634
  // dist/edit-modes/draw-circle-by-diameter-mode.js
3423
2635
  var import_circle2 = __toESM(require("@turf/circle"), 1);
3424
- var import_distance10 = __toESM(require("@turf/distance"), 1);
2636
+ var import_distance9 = __toESM(require("@turf/distance"), 1);
3425
2637
  var import_area2 = __toESM(require("@turf/area"), 1);
3426
2638
  var DrawCircleByDiameterMode = class extends TwoClickPolygonMode {
3427
2639
  radius = null;
@@ -3436,8 +2648,8 @@ var DrawCircleByDiameterMode = class extends TwoClickPolygonMode {
3436
2648
  options.steps = 4;
3437
2649
  }
3438
2650
  const centerCoordinates = getIntermediatePosition(coord1, coord2);
3439
- this.radius = Math.max((0, import_distance10.default)(coord1, centerCoordinates), 1e-3);
3440
- this.diameter = Math.max((0, import_distance10.default)(coord1, coord2), 1e-3);
2651
+ this.radius = Math.max((0, import_distance9.default)(coord1, centerCoordinates), 1e-3);
2652
+ this.diameter = Math.max((0, import_distance9.default)(coord1, coord2), 1e-3);
3441
2653
  this.position = centerCoordinates;
3442
2654
  const geometry = (0, import_circle2.default)(centerCoordinates, this.radius, options);
3443
2655
  geometry.properties = geometry.properties || {};
@@ -3495,8 +2707,8 @@ var DrawCircleByDiameterMode = class extends TwoClickPolygonMode {
3495
2707
  };
3496
2708
 
3497
2709
  // dist/edit-modes/draw-ellipse-by-bounding-box-mode.js
3498
- var import_bbox_polygon8 = __toESM(require("@turf/bbox-polygon"), 1);
3499
- var import_distance11 = __toESM(require("@turf/distance"), 1);
2710
+ var import_bbox_polygon7 = __toESM(require("@turf/bbox-polygon"), 1);
2711
+ var import_distance10 = __toESM(require("@turf/distance"), 1);
3500
2712
  var import_ellipse = __toESM(require("@turf/ellipse"), 1);
3501
2713
  var import_helpers12 = require("@turf/helpers");
3502
2714
  var DrawEllipseByBoundingBoxMode = class extends TwoClickPolygonMode {
@@ -3505,11 +2717,11 @@ var DrawEllipseByBoundingBoxMode = class extends TwoClickPolygonMode {
3505
2717
  const minY = Math.min(coord1[1], coord2[1]);
3506
2718
  const maxX = Math.max(coord1[0], coord2[0]);
3507
2719
  const maxY = Math.max(coord1[1], coord2[1]);
3508
- const polygonPoints = (0, import_bbox_polygon8.default)([minX, minY, maxX, maxY]).geometry.coordinates[0];
2720
+ const polygonPoints = (0, import_bbox_polygon7.default)([minX, minY, maxX, maxY]).geometry.coordinates[0];
3509
2721
  const centerCoordinates = getIntermediatePosition(coord1, coord2);
3510
- const xSemiAxis = Math.max((0, import_distance11.default)((0, import_helpers12.point)(polygonPoints[0]), (0, import_helpers12.point)(polygonPoints[1])), 1e-3);
3511
- const ySemiAxis = Math.max((0, import_distance11.default)((0, import_helpers12.point)(polygonPoints[0]), (0, import_helpers12.point)(polygonPoints[3])), 1e-3);
3512
- const geometry = (0, import_ellipse.default)(centerCoordinates, xSemiAxis, ySemiAxis);
2722
+ const xSemiAxis = Math.max((0, import_distance10.default)((0, import_helpers12.point)(polygonPoints[0]), (0, import_helpers12.point)(polygonPoints[1])), 1e-3);
2723
+ const ySemiAxis = Math.max((0, import_distance10.default)((0, import_helpers12.point)(polygonPoints[0]), (0, import_helpers12.point)(polygonPoints[3])), 1e-3);
2724
+ const geometry = (0, import_ellipse.default)(centerCoordinates, xSemiAxis, ySemiAxis, {});
3513
2725
  geometry.properties = geometry.properties || {};
3514
2726
  geometry.properties.editProperties = geometry.properties.editProperties || {};
3515
2727
  geometry.properties.editProperties.shape = "Ellipse";
@@ -3559,15 +2771,15 @@ var ThreeClickPolygonMode = class extends GeoJsonEditMode {
3559
2771
  }
3560
2772
  });
3561
2773
  } else {
3562
- const polygon3 = this.getThreeClickPolygon(clickSequence[0], clickSequence[1], hoveredCoord, modeConfig);
3563
- if (polygon3) {
2774
+ const polygon2 = this.getThreeClickPolygon(clickSequence[0], clickSequence[1], hoveredCoord, modeConfig);
2775
+ if (polygon2) {
3564
2776
  guides.features.push({
3565
2777
  type: "Feature",
3566
2778
  properties: {
3567
- ...polygon3.properties,
2779
+ ...polygon2.properties,
3568
2780
  guideType: "tentative"
3569
2781
  },
3570
- geometry: polygon3.geometry
2782
+ geometry: polygon2.geometry
3571
2783
  });
3572
2784
  }
3573
2785
  }
@@ -3621,15 +2833,15 @@ var DrawRectangleUsingThreePointsMode = class extends ThreeClickPolygonMode {
3621
2833
  };
3622
2834
 
3623
2835
  // dist/edit-modes/draw-ellipse-using-three-points-mode.js
3624
- var import_distance12 = __toESM(require("@turf/distance"), 1);
2836
+ var import_distance11 = __toESM(require("@turf/distance"), 1);
3625
2837
  var import_ellipse2 = __toESM(require("@turf/ellipse"), 1);
3626
2838
  var import_bearing8 = __toESM(require("@turf/bearing"), 1);
3627
2839
  var import_helpers13 = require("@turf/helpers");
3628
2840
  var DrawEllipseUsingThreePointsMode = class extends ThreeClickPolygonMode {
3629
2841
  getThreeClickPolygon(coord1, coord2, coord3, modeConfig) {
3630
2842
  const centerCoordinates = getIntermediatePosition(coord1, coord2);
3631
- const xSemiAxis = Math.max((0, import_distance12.default)(centerCoordinates, (0, import_helpers13.point)(coord3)), 1e-3);
3632
- const ySemiAxis = Math.max((0, import_distance12.default)(coord1, coord2), 1e-3) / 2;
2843
+ const xSemiAxis = Math.max((0, import_distance11.default)(centerCoordinates, (0, import_helpers13.point)(coord3)), 1e-3);
2844
+ const ySemiAxis = Math.max((0, import_distance11.default)(coord1, coord2), 1e-3) / 2;
3633
2845
  const options = { angle: (0, import_bearing8.default)(coord1, coord2) };
3634
2846
  const geometry = (0, import_ellipse2.default)(centerCoordinates, xSemiAxis, ySemiAxis, options);
3635
2847
  geometry.properties = geometry.properties || {};
@@ -3647,7 +2859,7 @@ var DrawEllipseUsingThreePointsMode = class extends ThreeClickPolygonMode {
3647
2859
  var import_destination4 = __toESM(require("@turf/destination"), 1);
3648
2860
  var import_bearing9 = __toESM(require("@turf/bearing"), 1);
3649
2861
  var import_line_intersect3 = __toESM(require("@turf/line-intersect"), 1);
3650
- var import_distance13 = __toESM(require("@turf/distance"), 1);
2862
+ var import_distance12 = __toESM(require("@turf/distance"), 1);
3651
2863
  var import_helpers14 = require("@turf/helpers");
3652
2864
  var Draw90DegreePolygonMode = class extends GeoJsonEditMode {
3653
2865
  createTentativeFeature(props) {
@@ -3718,13 +2930,13 @@ var Draw90DegreePolygonMode = class extends GeoJsonEditMode {
3718
2930
  const lineString3 = tentativeFeature.geometry;
3719
2931
  clickSequence[clickSequence.length - 1] = lineString3.coordinates[lineString3.coordinates.length - 1];
3720
2932
  } else if (clickSequence.length > 3 && tentativeFeature.geometry.type === "Polygon") {
3721
- const polygon3 = tentativeFeature.geometry;
3722
- clickSequence[clickSequence.length - 1] = polygon3.coordinates[0][polygon3.coordinates[0].length - 2];
2933
+ const polygon2 = tentativeFeature.geometry;
2934
+ clickSequence[clickSequence.length - 1] = polygon2.coordinates[0][polygon2.coordinates[0].length - 2];
3723
2935
  const clickedEditHandle = getPickedEditHandle(picks);
3724
- if (clickedEditHandle && Array.isArray(clickedEditHandle.properties.positionIndexes) && (clickedEditHandle.properties.positionIndexes[1] === 0 || clickedEditHandle.properties.positionIndexes[1] === polygon3.coordinates[0].length - 3)) {
2936
+ if (clickedEditHandle && Array.isArray(clickedEditHandle.properties.positionIndexes) && (clickedEditHandle.properties.positionIndexes[1] === 0 || clickedEditHandle.properties.positionIndexes[1] === polygon2.coordinates[0].length - 3)) {
3725
2937
  const polygonToAdd = {
3726
2938
  type: "Polygon",
3727
- coordinates: this.finalizedCoordinates([...polygon3.coordinates[0]])
2939
+ coordinates: this.finalizedCoordinates([...polygon2.coordinates[0]])
3728
2940
  };
3729
2941
  this.resetClickSequence();
3730
2942
  const editAction = this.getAddFeatureOrBooleanPolygonAction(polygonToAdd, props);
@@ -3777,7 +2989,7 @@ var Draw90DegreePolygonMode = class extends GeoJsonEditMode {
3777
2989
  const newAngle2 = angle2 + factor * 90;
3778
2990
  angles.second.push(newAngle2 > 180 ? newAngle2 - 360 : newAngle2);
3779
2991
  });
3780
- const distance7 = (0, import_distance13.default)((0, import_helpers14.point)(p1), (0, import_helpers14.point)(p3));
2992
+ const distance7 = (0, import_distance12.default)((0, import_helpers14.point)(p1), (0, import_helpers14.point)(p3));
3781
2993
  [0, 1, 2].forEach((indexFirst) => {
3782
2994
  const line1 = (0, import_helpers14.lineString)([
3783
2995
  p1,
@@ -4107,12 +3319,12 @@ var DeleteMode = class extends GeoJsonEditMode {
4107
3319
  };
4108
3320
 
4109
3321
  // dist/constants.js
4110
- var PROJECTED_PIXEL_SIZE_MULTIPLIER2 = 2 / 3;
3322
+ var PROJECTED_PIXEL_SIZE_MULTIPLIER = 2 / 3;
4111
3323
 
4112
3324
  // dist/editable-layers/editable-layer.js
4113
- var import_core3 = require("@deck.gl/core");
3325
+ var import_core = require("@deck.gl/core");
4114
3326
  var EVENT_TYPES = ["click", "pointermove", "panstart", "panmove", "panend", "keyup", "dblclick"];
4115
- var EditableLayer = class extends import_core3.CompositeLayer {
3327
+ var EditableLayer = class extends import_core.CompositeLayer {
4116
3328
  state = void 0;
4117
3329
  // Overridable interaction event handlers
4118
3330
  onLayerClick(event) {
@@ -4305,7 +3517,7 @@ var EditableLayer = class extends import_core3.CompositeLayer {
4305
3517
  __publicField(EditableLayer, "layerName", "EditableLayer");
4306
3518
 
4307
3519
  // dist/editable-layers/editable-path-layer.js
4308
- var import_layers5 = require("@deck.gl/layers");
3520
+ var import_layers = require("@deck.gl/layers");
4309
3521
  var uniformBlock = `uniform pickingLineWidthUniforms {
4310
3522
  float extraPixels;
4311
3523
  } pickingLineWidth;
@@ -4319,10 +3531,10 @@ var pickingUniforms = {
4319
3531
  }
4320
3532
  };
4321
3533
  var defaultProps = {
4322
- ...import_layers5.PathLayer.defaultProps,
3534
+ ...import_layers.PathLayer.defaultProps,
4323
3535
  pickingLineWidthExtraPixels: { type: "number", min: 0, value: Number.MAX_SAFE_INTEGER }
4324
3536
  };
4325
- var EditablePathLayer = class extends import_layers5.PathLayer {
3537
+ var EditablePathLayer = class extends import_layers.PathLayer {
4326
3538
  getShaders() {
4327
3539
  const shaders = super.getShaders();
4328
3540
  shaders.vs = insertBefore(shaders.vs, "vec3 width;", `
@@ -4360,7 +3572,7 @@ var DEFAULT_EDITING_POINT_OUTLINE_COLOR = [255, 255, 255, 255];
4360
3572
  var DEFAULT_EDITING_EXISTING_POINT_RADIUS = 5;
4361
3573
  var DEFAULT_EDITING_INTERMEDIATE_POINT_RADIUS = 3;
4362
3574
  var DEFAULT_EDITING_SNAP_POINT_RADIUS = 7;
4363
- var DEFAULT_TOOLTIP_FONT_SIZE = 32 * PROJECTED_PIXEL_SIZE_MULTIPLIER2;
3575
+ var DEFAULT_TOOLTIP_FONT_SIZE = 32 * PROJECTED_PIXEL_SIZE_MULTIPLIER;
4364
3576
  var DEFAULT_EDIT_MODE = DrawPolygonMode;
4365
3577
  function guideAccessor(accessor) {
4366
3578
  if (!accessor || typeof accessor !== "function") {
@@ -4412,7 +3624,7 @@ var defaultProps2 = {
4412
3624
  fp64: false,
4413
3625
  filled: true,
4414
3626
  stroked: true,
4415
- lineWidthScale: PROJECTED_PIXEL_SIZE_MULTIPLIER2,
3627
+ lineWidthScale: PROJECTED_PIXEL_SIZE_MULTIPLIER,
4416
3628
  lineWidthMinPixels: 1,
4417
3629
  lineWidthMaxPixels: Number.MAX_SAFE_INTEGER,
4418
3630
  pickingLineWidthExtraPixels: 0,
@@ -4527,13 +3739,13 @@ var EditableGeoJsonLayer = class extends EditableLayer {
4527
3739
  }
4528
3740
  },
4529
3741
  updateTriggers: {
4530
- getLineColor: [this.props.selectedFeatureIndexes, this.props.mode],
4531
- getFillColor: [this.props.selectedFeatureIndexes, this.props.mode],
4532
- getPointRadius: [this.props.selectedFeatureIndexes, this.props.mode],
4533
- getLineWidth: [this.props.selectedFeatureIndexes, this.props.mode]
3742
+ getLineColor: [this.props.updateTriggers.getLineColor, this.props.selectedFeatureIndexes, this.props.mode],
3743
+ getFillColor: [this.props.updateTriggers.getFillColor, this.props.selectedFeatureIndexes, this.props.mode],
3744
+ getPointRadius: [this.props.updateTriggers.getPointRadius, this.props.selectedFeatureIndexes, this.props.mode],
3745
+ getLineWidth: [this.props.updateTriggers.getLineWidth, this.props.selectedFeatureIndexes, this.props.mode]
4534
3746
  }
4535
3747
  });
4536
- let layers = [new import_layers6.GeoJsonLayer(subLayerProps)];
3748
+ let layers = [new import_layers2.GeoJsonLayer(subLayerProps)];
4537
3749
  layers = layers.concat(this.createGuidesLayers(), this.createTooltipsLayers());
4538
3750
  return layers;
4539
3751
  }
@@ -4647,7 +3859,7 @@ var EditableGeoJsonLayer = class extends EditableLayer {
4647
3859
  };
4648
3860
  if (this.props.editHandleType === "icon") {
4649
3861
  subLayerProps["points-icon"] = {
4650
- type: import_layers6.IconLayer,
3862
+ type: import_layers2.IconLayer,
4651
3863
  iconAtlas: this.props.editHandleIconAtlas,
4652
3864
  iconMapping: this.props.editHandleIconMapping,
4653
3865
  sizeUnits: this.props.editHandleIconSizeUnits,
@@ -4660,7 +3872,7 @@ var EditableGeoJsonLayer = class extends EditableLayer {
4660
3872
  };
4661
3873
  } else {
4662
3874
  subLayerProps["points-circle"] = {
4663
- type: import_layers6.ScatterplotLayer,
3875
+ type: import_layers2.ScatterplotLayer,
4664
3876
  radiusScale: this.props.editHandlePointRadiusScale,
4665
3877
  stroked: this.props.editHandlePointOutline,
4666
3878
  getLineWidth: this.props.editHandlePointStrokeWidth,
@@ -4673,7 +3885,7 @@ var EditableGeoJsonLayer = class extends EditableLayer {
4673
3885
  billboard: this.props.billboard
4674
3886
  };
4675
3887
  }
4676
- const layer = new import_layers6.GeoJsonLayer(this.getSubLayerProps({
3888
+ const layer = new import_layers2.GeoJsonLayer(this.getSubLayerProps({
4677
3889
  id: "guides",
4678
3890
  data: guides,
4679
3891
  fp64: this.props.fp64,
@@ -4696,7 +3908,7 @@ var EditableGeoJsonLayer = class extends EditableLayer {
4696
3908
  createTooltipsLayers() {
4697
3909
  const mode = this.getActiveMode();
4698
3910
  const tooltips = mode.getTooltips(this.getModeProps(this.props));
4699
- const layer = new import_layers6.TextLayer({
3911
+ const layer = new import_layers2.TextLayer({
4700
3912
  getSize: DEFAULT_TOOLTIP_FONT_SIZE,
4701
3913
  ...this.getSubLayerProps({
4702
3914
  id: "tooltips",
@@ -4762,7 +3974,7 @@ var defaultProps3 = {
4762
3974
  selectedIndexes: [],
4763
3975
  filled: false,
4764
3976
  stroked: true,
4765
- lineWidthScale: PROJECTED_PIXEL_SIZE_MULTIPLIER2,
3977
+ lineWidthScale: PROJECTED_PIXEL_SIZE_MULTIPLIER,
4766
3978
  lineWidthMinPixels: 1,
4767
3979
  lineWidthMaxPixels: Number.MAX_SAFE_INTEGER,
4768
3980
  lineWidthUnits: "pixels",
@@ -4896,25 +4108,25 @@ __publicField(EditableH3ClusterLayer, "layerName", "EditableH3ClusterLayer");
4896
4108
  __publicField(EditableH3ClusterLayer, "defaultProps", defaultProps3);
4897
4109
 
4898
4110
  // dist/editable-layers/selection-layer.js
4899
- var import_core4 = require("@deck.gl/core");
4900
- var import_layers7 = require("@deck.gl/layers");
4111
+ var import_core2 = require("@deck.gl/core");
4112
+ var import_layers3 = require("@deck.gl/layers");
4901
4113
  var import_helpers16 = require("@turf/helpers");
4902
- var import_buffer3 = __toESM(require("@turf/buffer"), 1);
4903
- var import_difference4 = __toESM(require("@turf/difference"), 1);
4904
- var SELECTION_TYPE2 = {
4114
+ var import_buffer2 = __toESM(require("@turf/buffer"), 1);
4115
+ var import_difference3 = __toESM(require("@turf/difference"), 1);
4116
+ var SELECTION_TYPE = {
4905
4117
  NONE: null,
4906
4118
  RECTANGLE: "rectangle",
4907
4119
  POLYGON: "polygon"
4908
4120
  };
4909
4121
  var MODE_MAP = {
4910
- [SELECTION_TYPE2.RECTANGLE]: DrawRectangleMode,
4911
- [SELECTION_TYPE2.POLYGON]: DrawPolygonMode
4122
+ [SELECTION_TYPE.RECTANGLE]: DrawRectangleMode,
4123
+ [SELECTION_TYPE.POLYGON]: DrawPolygonMode
4912
4124
  };
4913
4125
  var MODE_CONFIG_MAP = {
4914
- [SELECTION_TYPE2.RECTANGLE]: { dragToDraw: true }
4126
+ [SELECTION_TYPE.RECTANGLE]: { dragToDraw: true }
4915
4127
  };
4916
4128
  var defaultProps4 = {
4917
- selectionType: SELECTION_TYPE2.RECTANGLE,
4129
+ selectionType: SELECTION_TYPE.RECTANGLE,
4918
4130
  layerIds: [],
4919
4131
  onSelect: () => {
4920
4132
  }
@@ -4923,7 +4135,7 @@ var EMPTY_DATA = {
4923
4135
  type: "FeatureCollection",
4924
4136
  features: []
4925
4137
  };
4926
- var EXPANSION_KM2 = 50;
4138
+ var EXPANSION_KM = 50;
4927
4139
  var LAYER_ID_GEOJSON = "selection-geojson";
4928
4140
  var LAYER_ID_BLOCKER = "selection-blocker";
4929
4141
  var PASS_THROUGH_PROPS = [
@@ -4948,7 +4160,7 @@ var PASS_THROUGH_PROPS = [
4948
4160
  "getTentativeFillColor",
4949
4161
  "getTentativeLineWidth"
4950
4162
  ];
4951
- var SelectionLayer = class extends import_core4.CompositeLayer {
4163
+ var SelectionLayer = class extends import_core2.CompositeLayer {
4952
4164
  state = void 0;
4953
4165
  _selectRectangleObjects(coordinates) {
4954
4166
  const { layerIds, onSelect } = this.props;
@@ -4973,10 +4185,10 @@ var SelectionLayer = class extends import_core4.CompositeLayer {
4973
4185
  const maxX = Math.max(...allX);
4974
4186
  const maxY = Math.max(...allY);
4975
4187
  const landPointsPoly = (0, import_helpers16.polygon)(coordinates);
4976
- const bigBuffer = (0, import_buffer3.default)(landPointsPoly, EXPANSION_KM2);
4188
+ const bigBuffer = (0, import_buffer2.default)(landPointsPoly, EXPANSION_KM);
4977
4189
  let bigPolygon;
4978
4190
  try {
4979
- bigPolygon = (0, import_difference4.default)(bigBuffer, landPointsPoly);
4191
+ bigPolygon = (0, import_difference3.default)((0, import_helpers16.featureCollection)([bigBuffer, landPointsPoly]));
4980
4192
  } catch (e) {
4981
4193
  console.log("turfDifference() error", e);
4982
4194
  return;
@@ -5020,9 +4232,9 @@ var SelectionLayer = class extends import_core4.CompositeLayer {
5020
4232
  onEdit: ({ updatedData, editType }) => {
5021
4233
  if (editType === "addFeature") {
5022
4234
  const { coordinates } = updatedData.features[0].geometry;
5023
- if (this.props.selectionType === SELECTION_TYPE2.RECTANGLE) {
4235
+ if (this.props.selectionType === SELECTION_TYPE.RECTANGLE) {
5024
4236
  this._selectRectangleObjects(coordinates);
5025
- } else if (this.props.selectionType === SELECTION_TYPE2.POLYGON) {
4237
+ } else if (this.props.selectionType === SELECTION_TYPE.POLYGON) {
5026
4238
  this._selectPolygonObjects(coordinates);
5027
4239
  }
5028
4240
  }
@@ -5032,7 +4244,7 @@ var SelectionLayer = class extends import_core4.CompositeLayer {
5032
4244
  ];
5033
4245
  if (pendingPolygonSelection) {
5034
4246
  const { bigPolygon } = pendingPolygonSelection;
5035
- layers.push(new import_layers7.PolygonLayer(this.getSubLayerProps({
4247
+ layers.push(new import_layers3.PolygonLayer(this.getSubLayerProps({
5036
4248
  id: LAYER_ID_BLOCKER,
5037
4249
  pickable: true,
5038
4250
  stroked: false,
@@ -5053,16 +4265,16 @@ __publicField(SelectionLayer, "layerName", "SelectionLayer");
5053
4265
  __publicField(SelectionLayer, "defaultProps", defaultProps4);
5054
4266
 
5055
4267
  // dist/editable-layers/elevated-edit-handle-layer.js
5056
- var import_core5 = require("@deck.gl/core");
5057
- var import_layers8 = require("@deck.gl/layers");
4268
+ var import_core3 = require("@deck.gl/core");
4269
+ var import_layers4 = require("@deck.gl/layers");
5058
4270
  var defaultProps5 = {};
5059
- var ElevatedEditHandleLayer = class extends import_core5.CompositeLayer {
4271
+ var ElevatedEditHandleLayer = class extends import_core3.CompositeLayer {
5060
4272
  renderLayers() {
5061
- const handles = new import_layers8.ScatterplotLayer(Object.assign({}, this.props, {
4273
+ const handles = new import_layers4.ScatterplotLayer(Object.assign({}, this.props, {
5062
4274
  id: `${this.props.id}-ScatterplotLayer`,
5063
4275
  data: this.props.data
5064
4276
  }));
5065
- const lines = new import_layers8.LineLayer(Object.assign({}, this.props, {
4277
+ const lines = new import_layers4.LineLayer(Object.assign({}, this.props, {
5066
4278
  id: `${this.props.id}-LineLayer`,
5067
4279
  data: this.props.data,
5068
4280
  pickable: false,
@@ -5080,7 +4292,7 @@ __publicField(ElevatedEditHandleLayer, "defaultProps", defaultProps5);
5080
4292
  // dist/widgets/edit-mode-tray-widget.js
5081
4293
  var import_jsx_runtime = require("preact/jsx-runtime");
5082
4294
  var import_preact = require("preact");
5083
- var import_core6 = require("@deck.gl/core");
4295
+ var import_core4 = require("@deck.gl/core");
5084
4296
  var ROOT_STYLE = {
5085
4297
  position: "absolute",
5086
4298
  display: "flex",
@@ -5124,7 +4336,7 @@ var BUTTON_LABEL_STYLE = {
5124
4336
  marginTop: "2px",
5125
4337
  lineHeight: "12px"
5126
4338
  };
5127
- var _EditModeTrayWidget = class extends import_core6.Widget {
4339
+ var _EditModeTrayWidget = class extends import_core4.Widget {
5128
4340
  placement = "top-left";
5129
4341
  className = "deck-widget-edit-mode-tray";
5130
4342
  layout = "vertical";
@@ -5295,11 +4507,54 @@ __publicField(EditModeTrayWidget, "defaultProps", {
5295
4507
  className: ""
5296
4508
  });
5297
4509
 
4510
+ // dist/editable-layers/junction-scatterplot-layer.js
4511
+ var import_core5 = require("@deck.gl/core");
4512
+ var import_layers5 = require("@deck.gl/layers");
4513
+ var JunctionScatterplotLayer = class extends import_core5.CompositeLayer {
4514
+ renderLayers() {
4515
+ const { id, getFillColor, getStrokeColor, getInnerRadius, updateTriggers } = this.props;
4516
+ return [
4517
+ // the full circles
4518
+ new import_layers5.ScatterplotLayer({
4519
+ ...this.props,
4520
+ id: `${id}-full`,
4521
+ data: this.props.data,
4522
+ getLineColor: getStrokeColor,
4523
+ updateTriggers: {
4524
+ ...updateTriggers,
4525
+ getStrokeColor: updateTriggers.getStrokeColor
4526
+ }
4527
+ }),
4528
+ // the inner part
4529
+ new import_layers5.ScatterplotLayer({
4530
+ ...this.props,
4531
+ id: `${id}-inner`,
4532
+ data: this.props.data,
4533
+ getFillColor,
4534
+ getRadius: getInnerRadius,
4535
+ pickable: false,
4536
+ updateTriggers: {
4537
+ ...updateTriggers,
4538
+ getFillColor: updateTriggers.getFillColor,
4539
+ getRadius: updateTriggers.getInnerRadius
4540
+ }
4541
+ })
4542
+ ];
4543
+ }
4544
+ };
4545
+ __publicField(JunctionScatterplotLayer, "layerName", "JunctionScatterplotLayer");
4546
+ __publicField(JunctionScatterplotLayer, "defaultProps", {
4547
+ ...import_layers5.ScatterplotLayer.defaultProps,
4548
+ getFillColor: (d) => [0, 0, 0, 255],
4549
+ getStrokeColor: (d) => [255, 255, 255, 255],
4550
+ getInnerRadius: (d) => 1
4551
+ });
4552
+
5298
4553
  // dist/edit-modes/resize-circle-mode.js
5299
4554
  var import_nearest_point_on_line2 = __toESM(require("@turf/nearest-point-on-line"), 1);
5300
4555
  var import_helpers17 = require("@turf/helpers");
5301
4556
  var import_circle3 = __toESM(require("@turf/circle"), 1);
5302
- var import_distance14 = __toESM(require("@turf/distance"), 1);
4557
+ var import_distance13 = __toESM(require("@turf/distance"), 1);
5303
4558
  var import_center2 = __toESM(require("@turf/center"), 1);
5304
4559
  var ResizeCircleMode = class extends GeoJsonEditMode {
5305
4560
  _selectedEditHandle;
@@ -5319,12 +4574,7 @@ var ResizeCircleMode = class extends GeoJsonEditMode {
5319
4574
  const referencePoint = (0, import_helpers17.point)(mapCoords2);
5320
4575
  recursivelyTraverseNestedArrays2(featureAsPick.object.geometry.coordinates, [], (lineString3, prefix) => {
5321
4576
  const lineStringFeature = (0, import_helpers17.lineString)(lineString3);
5322
- const candidateIntermediatePoint = this.getNearestPoint(
5323
- // @ts-expect-error turf types too wide
5324
- lineStringFeature,
5325
- referencePoint,
5326
- props.modeConfig && props.modeConfig.viewport
5327
- );
4577
+ const candidateIntermediatePoint = this.getNearestPoint(lineStringFeature, referencePoint, props.modeConfig && props.modeConfig.viewport);
5328
4578
  if (!intermediatePoint || candidateIntermediatePoint.properties.dist < intermediatePoint.properties.dist) {
5329
4579
  intermediatePoint = candidateIntermediatePoint;
5330
4580
  positionIndexPrefix = prefix;
@@ -5372,7 +4622,7 @@ var ResizeCircleMode = class extends GeoJsonEditMode {
5372
4622
  const feature = this.getSelectedFeature(props);
5373
4623
  const center = (0, import_center2.default)(feature).geometry.coordinates;
5374
4624
  const numberOfSteps = Object.entries(feature.geometry.coordinates[0]).length - 1;
5375
- const radius = Math.max((0, import_distance14.default)(center, event.mapCoords), 1e-3);
4625
+ const radius = Math.max((0, import_distance13.default)(center, event.mapCoords), 1e-3);
5376
4626
  const { steps = numberOfSteps } = {};
5377
4627
  const options = { steps };
5378
4628
  const updatedFeature = (0, import_circle3.default)(center, radius, options);
@@ -5488,7 +4738,7 @@ var ExtendLineStringMode = class extends GeoJsonEditMode {
5488
4738
  };
5489
4739
 
5490
4740
  // dist/edit-modes/measure-distance-mode.js
5491
- var import_distance15 = __toESM(require("@turf/distance"), 1);
4741
+ var import_distance14 = __toESM(require("@turf/distance"), 1);
5492
4742
  var import_midpoint = __toESM(require("@turf/midpoint"), 1);
5493
4743
  var MeasureDistanceMode = class extends GeoJsonEditMode {
5494
4744
  _isMeasuringSessionFinished = false;
@@ -5496,7 +4746,7 @@ var MeasureDistanceMode = class extends GeoJsonEditMode {
5496
4746
  _currentDistance = 0;
5497
4747
  _calculateDistanceForTooltip = ({ positionA, positionB, modeConfig }) => {
5498
4748
  const { turfOptions, measurementCallback } = modeConfig || {};
5499
- const distance7 = (0, import_distance15.default)(positionA, positionB, turfOptions);
4749
+ const distance7 = (0, import_distance14.default)(positionA, positionB, turfOptions);
5500
4750
  if (measurementCallback) {
5501
4751
  measurementCallback(distance7);
5502
4752
  }