@deck.gl-community/editable-layers 9.0.2 → 9.1.0-beta.2

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 (291) hide show
  1. package/dist/constants.d.ts +1 -0
  2. package/dist/constants.d.ts.map +1 -0
  3. package/dist/edit-modes/composite-mode.d.ts +4 -3
  4. package/dist/edit-modes/composite-mode.d.ts.map +1 -0
  5. package/dist/edit-modes/composite-mode.js +1 -1
  6. package/dist/edit-modes/delete-mode.d.ts +7 -0
  7. package/dist/edit-modes/delete-mode.d.ts.map +1 -0
  8. package/dist/edit-modes/delete-mode.js +22 -0
  9. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts +4 -3
  10. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts.map +1 -0
  11. package/dist/edit-modes/draw-90degree-polygon-mode.js +2 -2
  12. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +4 -3
  13. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts.map +1 -0
  14. package/dist/edit-modes/draw-circle-by-diameter-mode.js +7 -3
  15. package/dist/edit-modes/draw-circle-from-center-mode.d.ts +4 -3
  16. package/dist/edit-modes/draw-circle-from-center-mode.d.ts.map +1 -0
  17. package/dist/edit-modes/draw-circle-from-center-mode.js +6 -2
  18. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +3 -2
  19. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts.map +1 -0
  20. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +11 -3
  21. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +3 -2
  22. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts.map +1 -0
  23. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +12 -3
  24. package/dist/edit-modes/draw-line-string-mode.d.ts +4 -3
  25. package/dist/edit-modes/draw-line-string-mode.d.ts.map +1 -0
  26. package/dist/edit-modes/draw-line-string-mode.js +3 -3
  27. package/dist/edit-modes/draw-point-mode.d.ts +4 -3
  28. package/dist/edit-modes/draw-point-mode.d.ts.map +1 -0
  29. package/dist/edit-modes/draw-point-mode.js +1 -1
  30. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +4 -3
  31. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts.map +1 -0
  32. package/dist/edit-modes/draw-polygon-by-dragging-mode.js +2 -2
  33. package/dist/edit-modes/draw-polygon-mode.d.ts +4 -3
  34. package/dist/edit-modes/draw-polygon-mode.d.ts.map +1 -0
  35. package/dist/edit-modes/draw-polygon-mode.js +2 -2
  36. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +3 -2
  37. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -0
  38. package/dist/edit-modes/draw-rectangle-from-center-mode.js +1 -1
  39. package/dist/edit-modes/draw-rectangle-mode.d.ts +3 -2
  40. package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -0
  41. package/dist/edit-modes/draw-rectangle-mode.js +1 -1
  42. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +3 -2
  43. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -0
  44. package/dist/edit-modes/draw-rectangle-using-three-points-mode.js +2 -2
  45. package/dist/edit-modes/draw-square-from-center-mode.d.ts +3 -2
  46. package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -0
  47. package/dist/edit-modes/draw-square-from-center-mode.js +1 -1
  48. package/dist/edit-modes/draw-square-mode.d.ts +3 -2
  49. package/dist/edit-modes/draw-square-mode.d.ts.map +1 -0
  50. package/dist/edit-modes/draw-square-mode.js +1 -1
  51. package/dist/edit-modes/duplicate-mode.d.ts +4 -3
  52. package/dist/edit-modes/duplicate-mode.d.ts.map +1 -0
  53. package/dist/edit-modes/duplicate-mode.js +1 -1
  54. package/dist/edit-modes/edit-mode.d.ts +2 -1
  55. package/dist/edit-modes/edit-mode.d.ts.map +1 -0
  56. package/dist/edit-modes/elevation-mode.d.ts +4 -3
  57. package/dist/edit-modes/elevation-mode.d.ts.map +1 -0
  58. package/dist/edit-modes/elevation-mode.js +2 -2
  59. package/dist/edit-modes/extend-line-string-mode.d.ts +4 -3
  60. package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -0
  61. package/dist/edit-modes/extend-line-string-mode.js +5 -2
  62. package/dist/edit-modes/extrude-mode.d.ts +4 -3
  63. package/dist/edit-modes/extrude-mode.d.ts.map +1 -0
  64. package/dist/edit-modes/extrude-mode.js +6 -3
  65. package/dist/edit-modes/geojson-edit-mode.d.ts +6 -5
  66. package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -0
  67. package/dist/edit-modes/geojson-edit-mode.js +9 -6
  68. package/dist/edit-modes/immutable-feature-collection.d.ts +2 -1
  69. package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -0
  70. package/dist/edit-modes/measure-angle-mode.d.ts +4 -3
  71. package/dist/edit-modes/measure-angle-mode.d.ts.map +1 -0
  72. package/dist/edit-modes/measure-angle-mode.js +2 -2
  73. package/dist/edit-modes/measure-area-mode.d.ts +4 -3
  74. package/dist/edit-modes/measure-area-mode.d.ts.map +1 -0
  75. package/dist/edit-modes/measure-area-mode.js +1 -1
  76. package/dist/edit-modes/measure-distance-mode.d.ts +4 -3
  77. package/dist/edit-modes/measure-distance-mode.d.ts.map +1 -0
  78. package/dist/edit-modes/measure-distance-mode.js +2 -2
  79. package/dist/edit-modes/modify-mode.d.ts +5 -4
  80. package/dist/edit-modes/modify-mode.d.ts.map +1 -0
  81. package/dist/edit-modes/modify-mode.js +6 -3
  82. package/dist/edit-modes/resize-circle-mode.d.ts +6 -5
  83. package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -0
  84. package/dist/edit-modes/resize-circle-mode.js +4 -3
  85. package/dist/edit-modes/rotate-mode.d.ts +4 -3
  86. package/dist/edit-modes/rotate-mode.d.ts.map +1 -0
  87. package/dist/edit-modes/rotate-mode.js +5 -4
  88. package/dist/edit-modes/scale-mode.d.ts +4 -3
  89. package/dist/edit-modes/scale-mode.d.ts.map +1 -0
  90. package/dist/edit-modes/scale-mode.js +5 -4
  91. package/dist/edit-modes/snappable-mode.d.ts +4 -3
  92. package/dist/edit-modes/snappable-mode.d.ts.map +1 -0
  93. package/dist/edit-modes/snappable-mode.js +2 -2
  94. package/dist/edit-modes/split-polygon-mode.d.ts +4 -3
  95. package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -0
  96. package/dist/edit-modes/split-polygon-mode.js +3 -3
  97. package/dist/edit-modes/three-click-polygon-mode.d.ts +4 -3
  98. package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -0
  99. package/dist/edit-modes/three-click-polygon-mode.js +4 -2
  100. package/dist/edit-modes/transform-mode.d.ts +4 -3
  101. package/dist/edit-modes/transform-mode.d.ts.map +1 -0
  102. package/dist/edit-modes/transform-mode.js +7 -4
  103. package/dist/edit-modes/translate-mode.d.ts +4 -3
  104. package/dist/edit-modes/translate-mode.d.ts.map +1 -0
  105. package/dist/edit-modes/translate-mode.js +6 -5
  106. package/dist/edit-modes/two-click-polygon-mode.d.ts +4 -3
  107. package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -0
  108. package/dist/edit-modes/two-click-polygon-mode.js +4 -5
  109. package/dist/edit-modes/types.d.ts +3 -1
  110. package/dist/edit-modes/types.d.ts.map +1 -0
  111. package/dist/edit-modes/utils.d.ts +5 -3
  112. package/dist/edit-modes/utils.d.ts.map +1 -0
  113. package/dist/edit-modes/utils.js +5 -1
  114. package/dist/edit-modes/view-mode.d.ts +2 -1
  115. package/dist/edit-modes/view-mode.d.ts.map +1 -0
  116. package/dist/edit-modes/view-mode.js +1 -1
  117. package/dist/editable-layers/editable-geojson-layer.d.ts +10 -9
  118. package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -0
  119. package/dist/editable-layers/editable-geojson-layer.js +30 -28
  120. package/dist/editable-layers/editable-h3-cluster-layer.d.ts +3 -2
  121. package/dist/editable-layers/editable-h3-cluster-layer.d.ts.map +1 -0
  122. package/dist/editable-layers/editable-h3-cluster-layer.js +4 -5
  123. package/dist/editable-layers/editable-layer.d.ts +7 -4
  124. package/dist/editable-layers/editable-layer.d.ts.map +1 -0
  125. package/dist/editable-layers/editable-layer.js +8 -4
  126. package/dist/editable-layers/editable-path-layer.d.ts +14 -1
  127. package/dist/editable-layers/editable-path-layer.d.ts.map +1 -0
  128. package/dist/editable-layers/editable-path-layer.js +21 -13
  129. package/dist/editable-layers/elevated-edit-handle-layer.d.ts +1 -0
  130. package/dist/editable-layers/elevated-edit-handle-layer.d.ts.map +1 -0
  131. package/dist/editable-layers/junction-scatterplot-layer.d.ts +6 -3
  132. package/dist/editable-layers/junction-scatterplot-layer.d.ts.map +1 -0
  133. package/dist/editable-layers/selection-layer.d.ts +3 -1
  134. package/dist/editable-layers/selection-layer.d.ts.map +1 -0
  135. package/dist/editable-layers/selection-layer.js +4 -5
  136. package/dist/index.cjs +127 -45
  137. package/dist/index.cjs.map +4 -4
  138. package/dist/index.d.ts +60 -58
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +52 -52
  141. package/dist/lib/constants.d.ts +1 -0
  142. package/dist/lib/constants.d.ts.map +1 -0
  143. package/dist/lib/deck-renderer/deck-cache.d.ts +1 -0
  144. package/dist/lib/deck-renderer/deck-cache.d.ts.map +1 -0
  145. package/dist/lib/deck-renderer/deck-drawer.d.ts +2 -1
  146. package/dist/lib/deck-renderer/deck-drawer.d.ts.map +1 -0
  147. package/dist/lib/feature.d.ts +3 -2
  148. package/dist/lib/feature.d.ts.map +1 -0
  149. package/dist/lib/layer-mouse-event.d.ts +2 -1
  150. package/dist/lib/layer-mouse-event.d.ts.map +1 -0
  151. package/dist/lib/layers/junctions-layer.d.ts +4 -3
  152. package/dist/lib/layers/junctions-layer.d.ts.map +1 -0
  153. package/dist/lib/layers/junctions-layer.js +4 -4
  154. package/dist/lib/layers/segments-layer.d.ts +3 -2
  155. package/dist/lib/layers/segments-layer.d.ts.map +1 -0
  156. package/dist/lib/layers/segments-layer.js +4 -4
  157. package/dist/lib/layers/texts-layer.d.ts +3 -2
  158. package/dist/lib/layers/texts-layer.d.ts.map +1 -0
  159. package/dist/lib/layers/texts-layer.js +4 -4
  160. package/dist/lib/math.d.ts +2 -1
  161. package/dist/lib/math.d.ts.map +1 -0
  162. package/dist/lib/nebula-core.d.ts +2 -1
  163. package/dist/lib/nebula-core.d.ts.map +1 -0
  164. package/dist/lib/nebula-core.js +3 -3
  165. package/dist/lib/nebula-layer.d.ts +2 -1
  166. package/dist/lib/nebula-layer.d.ts.map +1 -0
  167. package/dist/lib/style.d.ts +1 -0
  168. package/dist/lib/style.d.ts.map +1 -0
  169. package/dist/mode-handlers/composite-mode-handler.d.ts +4 -3
  170. package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -0
  171. package/dist/mode-handlers/composite-mode-handler.js +1 -1
  172. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts +4 -3
  173. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -0
  174. package/dist/mode-handlers/draw-90degree-polygon-handler.js +2 -2
  175. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts +4 -3
  176. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -0
  177. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +2 -2
  178. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts +4 -3
  179. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -0
  180. package/dist/mode-handlers/draw-circle-from-center-handler.js +1 -1
  181. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts +4 -3
  182. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -0
  183. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +2 -2
  184. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts +4 -3
  185. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -0
  186. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +2 -2
  187. package/dist/mode-handlers/draw-line-string-handler.d.ts +3 -2
  188. package/dist/mode-handlers/draw-line-string-handler.d.ts.map +1 -0
  189. package/dist/mode-handlers/draw-line-string-handler.js +1 -1
  190. package/dist/mode-handlers/draw-point-handler.d.ts +3 -2
  191. package/dist/mode-handlers/draw-point-handler.d.ts.map +1 -0
  192. package/dist/mode-handlers/draw-point-handler.js +1 -1
  193. package/dist/mode-handlers/draw-polygon-handler.d.ts +4 -3
  194. package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -0
  195. package/dist/mode-handlers/draw-polygon-handler.js +1 -1
  196. package/dist/mode-handlers/draw-rectangle-handler.d.ts +4 -3
  197. package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -0
  198. package/dist/mode-handlers/draw-rectangle-handler.js +1 -1
  199. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts +4 -3
  200. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -0
  201. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +2 -2
  202. package/dist/mode-handlers/duplicate-handler.d.ts +4 -3
  203. package/dist/mode-handlers/duplicate-handler.d.ts.map +1 -0
  204. package/dist/mode-handlers/duplicate-handler.js +1 -1
  205. package/dist/mode-handlers/elevation-handler.d.ts +5 -4
  206. package/dist/mode-handlers/elevation-handler.d.ts.map +1 -0
  207. package/dist/mode-handlers/elevation-handler.js +2 -2
  208. package/dist/mode-handlers/extrude-handler.d.ts +4 -3
  209. package/dist/mode-handlers/extrude-handler.d.ts.map +1 -0
  210. package/dist/mode-handlers/extrude-handler.js +3 -3
  211. package/dist/mode-handlers/mode-handler.d.ts +4 -3
  212. package/dist/mode-handlers/mode-handler.d.ts.map +1 -0
  213. package/dist/mode-handlers/mode-handler.js +1 -1
  214. package/dist/mode-handlers/modify-handler.d.ts +5 -4
  215. package/dist/mode-handlers/modify-handler.d.ts.map +1 -0
  216. package/dist/mode-handlers/modify-handler.js +2 -2
  217. package/dist/mode-handlers/rotate-handler.d.ts +4 -3
  218. package/dist/mode-handlers/rotate-handler.d.ts.map +1 -0
  219. package/dist/mode-handlers/rotate-handler.js +1 -1
  220. package/dist/mode-handlers/scale-handler.d.ts +4 -3
  221. package/dist/mode-handlers/scale-handler.d.ts.map +1 -0
  222. package/dist/mode-handlers/scale-handler.js +1 -1
  223. package/dist/mode-handlers/snappable-handler.d.ts +4 -3
  224. package/dist/mode-handlers/snappable-handler.d.ts.map +1 -0
  225. package/dist/mode-handlers/snappable-handler.js +1 -1
  226. package/dist/mode-handlers/split-polygon-handler.d.ts +3 -2
  227. package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -0
  228. package/dist/mode-handlers/split-polygon-handler.js +2 -2
  229. package/dist/mode-handlers/three-click-polygon-handler.d.ts +3 -2
  230. package/dist/mode-handlers/three-click-polygon-handler.d.ts.map +1 -0
  231. package/dist/mode-handlers/three-click-polygon-handler.js +1 -1
  232. package/dist/mode-handlers/translate-handler.d.ts +4 -3
  233. package/dist/mode-handlers/translate-handler.d.ts.map +1 -0
  234. package/dist/mode-handlers/translate-handler.js +1 -1
  235. package/dist/mode-handlers/two-click-polygon-handler.d.ts +3 -2
  236. package/dist/mode-handlers/two-click-polygon-handler.d.ts.map +1 -0
  237. package/dist/mode-handlers/two-click-polygon-handler.js +1 -1
  238. package/dist/mode-handlers/view-handler.d.ts +3 -2
  239. package/dist/mode-handlers/view-handler.d.ts.map +1 -0
  240. package/dist/mode-handlers/view-handler.js +1 -1
  241. package/dist/shaderlib/color/color.d.ts +13 -2
  242. package/dist/shaderlib/color/color.d.ts.map +1 -0
  243. package/dist/shaderlib/color/color.js +25 -18
  244. package/dist/shaderlib/utils/utils.d.ts +1 -0
  245. package/dist/shaderlib/utils/utils.d.ts.map +1 -0
  246. package/dist/utils/curve-utils.d.ts +1 -0
  247. package/dist/utils/curve-utils.d.ts.map +1 -0
  248. package/dist/utils/geojson-types.d.ts +1 -0
  249. package/dist/utils/geojson-types.d.ts.map +1 -0
  250. package/dist/utils/memoize.d.ts +1 -0
  251. package/dist/utils/memoize.d.ts.map +1 -0
  252. package/dist/utils/translate-from-center.d.ts +1 -0
  253. package/dist/utils/translate-from-center.d.ts.map +1 -0
  254. package/dist/utils/translate-from-center.js +4 -4
  255. package/dist/utils/types.d.ts +1 -0
  256. package/dist/utils/types.d.ts.map +1 -0
  257. package/dist/utils/utils.d.ts +5 -4
  258. package/dist/utils/utils.d.ts.map +1 -0
  259. package/dist/utils/utils.js +4 -4
  260. package/package.json +11 -10
  261. package/src/edit-modes/delete-mode.ts +28 -0
  262. package/src/edit-modes/draw-circle-by-diameter-mode.ts +4 -0
  263. package/src/edit-modes/draw-circle-from-center-mode.ts +4 -0
  264. package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +10 -1
  265. package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +11 -1
  266. package/src/edit-modes/extend-line-string-mode.ts +4 -0
  267. package/src/edit-modes/extrude-mode.ts +6 -1
  268. package/src/edit-modes/geojson-edit-mode.ts +9 -4
  269. package/src/edit-modes/measure-distance-mode.ts +1 -1
  270. package/src/edit-modes/modify-mode.ts +6 -1
  271. package/src/edit-modes/resize-circle-mode.ts +1 -0
  272. package/src/edit-modes/rotate-mode.ts +2 -1
  273. package/src/edit-modes/scale-mode.ts +2 -1
  274. package/src/edit-modes/split-polygon-mode.ts +4 -2
  275. package/src/edit-modes/three-click-polygon-mode.ts +7 -1
  276. package/src/edit-modes/transform-mode.ts +4 -0
  277. package/src/edit-modes/translate-mode.ts +4 -2
  278. package/src/edit-modes/two-click-polygon-mode.ts +3 -4
  279. package/src/edit-modes/types.ts +1 -0
  280. package/src/edit-modes/utils.ts +10 -3
  281. package/src/editable-layers/editable-geojson-layer.ts +6 -4
  282. package/src/editable-layers/editable-h3-cluster-layer.ts +1 -1
  283. package/src/editable-layers/editable-layer.ts +12 -4
  284. package/src/editable-layers/editable-path-layer.ts +29 -15
  285. package/src/editable-layers/junction-scatterplot-layer.ts +4 -2
  286. package/src/editable-layers/selection-layer.ts +2 -1
  287. package/src/index.ts +2 -0
  288. package/src/mode-handlers/split-polygon-handler.ts +2 -1
  289. package/src/shaderlib/color/color.ts +34 -20
  290. package/src/utils/translate-from-center.ts +5 -5
  291. package/src/utils/utils.ts +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"junction-scatterplot-layer.d.ts","sourceRoot":"","sources":["../../src/editable-layers/junction-scatterplot-layer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,mBAAmB,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAC,KAAK,EAAC,0BAAuB;AAErC,KAAK,6BAA6B,GAAG,mBAAmB,GACtD,IAAI,CAAC,qBAAqB,EAAE,cAAc,CAAC,GAAG;IAC5C,YAAY,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAA,KAAK,KAAK,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAA,KAAK,KAAK,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,KAAA,KAAK,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEJ,qBAAa,wBAAyB,SAAQ,cAAc,CAAC,6BAA6B,CAAC;IACzF,MAAM,CAAC,SAAS,SAA8B;IAC9C,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,6BAA6B,CAAC,CAK9D;IAEF,YAAY;CA+Bb"}
@@ -1,4 +1,5 @@
1
- import { CompositeLayer, CompositeLayerProps, DefaultProps } from '@deck.gl/core';
1
+ import type { CompositeLayerProps, DefaultProps } from '@deck.gl/core';
2
+ import { CompositeLayer } from '@deck.gl/core';
2
3
  import turfDifference from '@turf/difference';
3
4
  export declare const SELECTION_TYPE: {
4
5
  NONE: any;
@@ -24,3 +25,4 @@ export declare class SelectionLayer<DataT, ExtraPropsT> extends CompositeLayer<E
24
25
  shouldUpdateState({ changeFlags: { stateChanged, propsOrDataChanged } }: Record<string, any>): any;
25
26
  }
26
27
  export {};
28
+ //# sourceMappingURL=selection-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-layer.d.ts","sourceRoot":"","sources":["../../src/editable-layers/selection-layer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,mBAAmB,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAI7C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAO9C,eAAO,MAAM,cAAc;;;;CAI1B,CAAC;AAWF,UAAU,mBAAmB,CAAC,KAAK,CAAE,SAAQ,mBAAmB;IAC9D,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAuCD,qBAAa,cAAc,CAAC,KAAK,EAAE,WAAW,CAAE,SAAQ,cAAc,CACpE,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CACnD;IACC,MAAM,CAAC,SAAS,SAAoB;IACpC,MAAM,CAAC,YAAY,yCAAgB;IAEnC,KAAK,EAAE;QACL,uBAAuB,EAAE;YACvB,UAAU,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;SAC/C,CAAC;KACH,CAAc;IAEf,uBAAuB,CAAC,WAAW,EAAE,GAAG;IAexC,qBAAqB,CAAC,WAAW,EAAE,GAAG;IAkDtC,YAAY;IAyDZ,iBAAiB,CAAC,EAAC,WAAW,EAAE,EAAC,YAAY,EAAE,kBAAkB,EAAC,EAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGzF"}
@@ -1,16 +1,15 @@
1
1
  // deck.gl-community
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- /* eslint-env browser */
5
4
  import { CompositeLayer } from '@deck.gl/core';
6
5
  import { PolygonLayer } from '@deck.gl/layers';
7
6
  import { polygon } from '@turf/helpers';
8
7
  import turfBuffer from '@turf/buffer';
9
8
  import turfDifference from '@turf/difference';
10
- import { EditableGeoJsonLayer } from './editable-geojson-layer';
11
- import { DrawRectangleMode } from '../edit-modes/draw-rectangle-mode';
12
- import { DrawPolygonMode } from '../edit-modes/draw-polygon-mode';
13
- import { ViewMode } from '../edit-modes/view-mode';
9
+ import { EditableGeoJsonLayer } from "./editable-geojson-layer.js";
10
+ import { DrawRectangleMode } from "../edit-modes/draw-rectangle-mode.js";
11
+ import { DrawPolygonMode } from "../edit-modes/draw-polygon-mode.js";
12
+ import { ViewMode } from "../edit-modes/view-mode.js";
14
13
  export const SELECTION_TYPE = {
15
14
  NONE: null,
16
15
  RECTANGLE: 'rectangle',
package/dist/index.cjs CHANGED
@@ -403,7 +403,7 @@ var import_destination = __toESM(require("@turf/destination"), 1);
403
403
  var import_bearing = __toESM(require("@turf/bearing"), 1);
404
404
  var import_point_to_line_distance = __toESM(require("@turf/point-to-line-distance"), 1);
405
405
  var import_helpers2 = require("@turf/helpers");
406
- var import_viewport_mercator_project = __toESM(require("viewport-mercator-project"), 1);
406
+ var import_viewport_mercator_project = require("viewport-mercator-project");
407
407
  function toDeckColor(color, defaultColor = [255, 0, 0, 255]) {
408
408
  if (!Array.isArray(color)) {
409
409
  return defaultColor;
@@ -445,7 +445,7 @@ function mix(a, b, ratio) {
445
445
  return b * ratio + a * (1 - ratio);
446
446
  }
447
447
  function nearestPointOnProjectedLine(line, inPoint, viewport) {
448
- const wmViewport = new import_viewport_mercator_project.default(viewport);
448
+ const wmViewport = new import_viewport_mercator_project.WebMercatorViewport(viewport);
449
449
  const coordinates = line.geometry.coordinates;
450
450
  const projectedCoords = coordinates.map(([x3, y3, z = 0]) => wmViewport.project([x3, y3, z]));
451
451
  const [x, y] = wmViewport.project(inPoint.geometry.coordinates);
@@ -490,8 +490,8 @@ function nearestPointOnProjectedLine(line, inPoint, viewport) {
490
490
  }
491
491
  };
492
492
  }
493
- function insertBefore(base, insertBefore2, toInsert) {
494
- const at = base.indexOf(insertBefore2);
493
+ function insertBefore(base, insertBeforeText, toInsert) {
494
+ const at = base.indexOf(insertBeforeText);
495
495
  if (at < 0) {
496
496
  return base;
497
497
  }
@@ -981,7 +981,7 @@ var import_point_to_line_distance2 = __toESM(require("@turf/point-to-line-distan
981
981
  var import_meta = require("@turf/meta");
982
982
  var import_helpers3 = require("@turf/helpers");
983
983
  var import_invariant = require("@turf/invariant");
984
- var import_viewport_mercator_project2 = __toESM(require("viewport-mercator-project"), 1);
984
+ var import_viewport_mercator_project2 = require("viewport-mercator-project");
985
985
  function recursivelyTraverseNestedArrays2(array, prefix, fn) {
986
986
  if (!Array.isArray(array[0])) {
987
987
  return true;
@@ -1017,7 +1017,7 @@ function mix2(a, b, ratio) {
1017
1017
  return b * ratio + a * (1 - ratio);
1018
1018
  }
1019
1019
  function nearestPointOnProjectedLine2(line, inPoint, viewport) {
1020
- const wmViewport = new import_viewport_mercator_project2.default(viewport);
1020
+ const wmViewport = new import_viewport_mercator_project2.WebMercatorViewport(viewport);
1021
1021
  const coordinates = line.geometry.coordinates;
1022
1022
  const projectedCoords = coordinates.map(([x3, y3, z = 0]) => wmViewport.project([x3, y3, z]));
1023
1023
  const [x, y] = wmViewport.project(inPoint.geometry.coordinates);
@@ -1066,7 +1066,7 @@ function nearestPointOnLine(lines, inPoint, viewport) {
1066
1066
  var _a, _b;
1067
1067
  let mercator;
1068
1068
  if (viewport) {
1069
- mercator = new import_viewport_mercator_project2.default(viewport);
1069
+ mercator = new import_viewport_mercator_project2.WebMercatorViewport(viewport);
1070
1070
  }
1071
1071
  let closestPoint = (0, import_helpers3.point)([Infinity, Infinity], {
1072
1072
  dist: Infinity
@@ -1262,6 +1262,9 @@ function mapCoords(coords, callback) {
1262
1262
  return mapCoords(coord, callback);
1263
1263
  }).filter(Boolean);
1264
1264
  }
1265
+ function shouldCancelPan(event) {
1266
+ return event.picks.length && event.picks.find((p) => p.featureType === "points");
1267
+ }
1265
1268
 
1266
1269
  // dist/edit-modes/immutable-feature-collection.js
1267
1270
  var ImmutableFeatureCollection = class {
@@ -1606,11 +1609,12 @@ var GeoJsonEditMode = class {
1606
1609
  }
1607
1610
  return feature;
1608
1611
  }
1609
- getAddFeatureAction(featureOrGeometry, features) {
1612
+ getAddFeatureAction(featureOrGeometry, features, featureProperties) {
1610
1613
  const featureOrGeometryAsAny = featureOrGeometry;
1614
+ featureProperties = featureProperties || {};
1611
1615
  const feature = featureOrGeometryAsAny.type === "Feature" ? featureOrGeometryAsAny : {
1612
1616
  type: "Feature",
1613
- properties: {},
1617
+ properties: featureProperties,
1614
1618
  geometry: featureOrGeometryAsAny
1615
1619
  };
1616
1620
  const rewindFeature = this.rewindPolygon(feature);
@@ -1645,8 +1649,10 @@ var GeoJsonEditMode = class {
1645
1649
  }
1646
1650
  };
1647
1651
  }
1648
- getAddFeatureOrBooleanPolygonAction(featureOrGeometry, props) {
1652
+ // eslint-disable-next-line complexity
1653
+ getAddFeatureOrBooleanPolygonAction(featureOrGeometry, props, featureProperties) {
1649
1654
  const featureOrGeometryAsAny = featureOrGeometry;
1655
+ featureProperties = featureProperties || {};
1650
1656
  const selectedFeature = this.getSelectedFeature(props);
1651
1657
  const { modeConfig } = props;
1652
1658
  if (modeConfig && modeConfig.booleanOperation) {
@@ -1684,7 +1690,7 @@ var GeoJsonEditMode = class {
1684
1690
  };
1685
1691
  return editAction;
1686
1692
  }
1687
- return this.getAddFeatureAction(featureOrGeometry, props.data);
1693
+ return this.getAddFeatureAction(featureOrGeometry, props.data, featureProperties);
1688
1694
  }
1689
1695
  createTentativeFeature(props) {
1690
1696
  return null;
@@ -1738,7 +1744,7 @@ var import_bearing3 = __toESM(require("@turf/bearing"), 1);
1738
1744
  var import_distance2 = __toESM(require("@turf/distance"), 1);
1739
1745
  var import_clone = __toESM(require("@turf/clone"), 1);
1740
1746
  var import_helpers4 = require("@turf/helpers");
1741
- var import_viewport_mercator_project3 = __toESM(require("viewport-mercator-project"), 1);
1747
+ var import_viewport_mercator_project3 = require("viewport-mercator-project");
1742
1748
 
1743
1749
  // dist/utils/translate-from-center.js
1744
1750
  var import_center = __toESM(require("@turf/center"), 1);
@@ -1749,9 +1755,9 @@ function translateFromCenter(feature, distance7, direction) {
1749
1755
  const initialCenterPoint = (0, import_center.default)(feature);
1750
1756
  const movedCenterPoint = (0, import_rhumb_destination.default)(initialCenterPoint, distance7, direction);
1751
1757
  const movedCoordinates = mapCoords(feature.geometry.coordinates, (coordinate) => {
1752
- const distance8 = (0, import_rhumb_distance.default)(initialCenterPoint.geometry.coordinates, coordinate);
1753
- const direction2 = (0, import_rhumb_bearing.default)(initialCenterPoint.geometry.coordinates, coordinate);
1754
- const movedPosition = (0, import_rhumb_destination.default)(movedCenterPoint.geometry.coordinates, distance8, direction2).geometry.coordinates;
1758
+ const rhumbDistance = (0, import_rhumb_distance.default)(initialCenterPoint.geometry.coordinates, coordinate);
1759
+ const rhumbDirection = (0, import_rhumb_bearing.default)(initialCenterPoint.geometry.coordinates, coordinate);
1760
+ const movedPosition = (0, import_rhumb_destination.default)(movedCenterPoint.geometry.coordinates, rhumbDistance, rhumbDirection).geometry.coordinates;
1755
1761
  return movedPosition;
1756
1762
  });
1757
1763
  feature.geometry.coordinates = movedCoordinates;
@@ -1782,6 +1788,7 @@ var TranslateMode = class extends GeoJsonEditMode {
1782
1788
  if (!this._isTranslatable) {
1783
1789
  return;
1784
1790
  }
1791
+ event.cancelPan();
1785
1792
  this._geometryBeforeTranslate = this.getSelectedFeaturesAsFeatureCollection(props);
1786
1793
  }
1787
1794
  handleStopDragging(event, props) {
@@ -1809,7 +1816,7 @@ var TranslateMode = class extends GeoJsonEditMode {
1809
1816
  const selectedIndexes = props.selectedIndexes;
1810
1817
  const { viewport: viewportDesc, screenSpace } = props.modeConfig || {};
1811
1818
  if (viewportDesc && screenSpace) {
1812
- const viewport = viewportDesc.project ? viewportDesc : new import_viewport_mercator_project3.default(viewportDesc);
1819
+ const viewport = viewportDesc.project ? viewportDesc : new import_viewport_mercator_project3.WebMercatorViewport(viewportDesc);
1813
1820
  const from = viewport.project(startDragPoint);
1814
1821
  const to = viewport.project(currentPoint);
1815
1822
  const dx = to[0] - from[0];
@@ -2004,6 +2011,9 @@ var ModifyMode = class extends GeoJsonEditMode {
2004
2011
  props.onUpdateCursor(cursor);
2005
2012
  }
2006
2013
  handleStartDragging(event, props) {
2014
+ if (shouldCancelPan(event)) {
2015
+ event.cancelPan();
2016
+ }
2007
2017
  const selectedFeatureIndexes = props.selectedIndexes;
2008
2018
  const editHandle = getPickedIntermediateEditHandle(event.picks);
2009
2019
  if (selectedFeatureIndexes.length && editHandle) {
@@ -2043,7 +2053,7 @@ var import_centroid = __toESM(require("@turf/centroid"), 1);
2043
2053
  var import_bearing4 = __toESM(require("@turf/bearing"), 1);
2044
2054
  var import_bbox_polygon2 = __toESM(require("@turf/bbox-polygon"), 1);
2045
2055
  var import_helpers6 = require("@turf/helpers");
2046
- var import_polygon_to_line = __toESM(require("@turf/polygon-to-line"), 1);
2056
+ var import_polygon_to_line = require("@turf/polygon-to-line");
2047
2057
  var import_meta2 = require("@turf/meta");
2048
2058
  var import_distance3 = __toESM(require("@turf/distance"), 1);
2049
2059
  var import_transform_scale = __toESM(require("@turf/transform-scale"), 1);
@@ -2138,6 +2148,7 @@ var ScaleMode = class extends GeoJsonEditMode {
2138
2148
  }
2139
2149
  handleStartDragging(event, props) {
2140
2150
  if (this._selectedEditHandle) {
2151
+ event.cancelPan();
2141
2152
  this._isScaling = true;
2142
2153
  this._geometryBeingScaled = this.getSelectedFeaturesAsFeatureCollection(props);
2143
2154
  }
@@ -2186,7 +2197,7 @@ var ScaleMode = class extends GeoJsonEditMode {
2186
2197
  }
2187
2198
  });
2188
2199
  this._cornerGuidePoints = cornerGuidePoints;
2189
- return (0, import_helpers6.featureCollection)([(0, import_polygon_to_line.default)(boundingBox), ...this._cornerGuidePoints]);
2200
+ return (0, import_helpers6.featureCollection)([(0, import_polygon_to_line.polygonToLine)(boundingBox), ...this._cornerGuidePoints]);
2190
2201
  }
2191
2202
  };
2192
2203
  function getScaleFactor(centroid, startDragPoint, currentPoint) {
@@ -2205,7 +2216,7 @@ var import_meta3 = require("@turf/meta");
2205
2216
  var import_invariant3 = require("@turf/invariant");
2206
2217
  var import_helpers7 = require("@turf/helpers");
2207
2218
  var import_transform_rotate = __toESM(require("@turf/transform-rotate"), 1);
2208
- var import_polygon_to_line2 = __toESM(require("@turf/polygon-to-line"), 1);
2219
+ var import_polygon_to_line2 = require("@turf/polygon-to-line");
2209
2220
  var RotateMode = class extends GeoJsonEditMode {
2210
2221
  _selectedEditHandle;
2211
2222
  _geometryBeingRotated;
@@ -2251,7 +2262,7 @@ var RotateMode = class extends GeoJsonEditMode {
2251
2262
  guideType: "editHandle",
2252
2263
  editHandleType: "rotate"
2253
2264
  });
2254
- const outFeatures = [(0, import_polygon_to_line2.default)(boundingBox), rotateHandle, lineFromEnvelopeToRotateHandle];
2265
+ const outFeatures = [(0, import_polygon_to_line2.polygonToLine)(boundingBox), rotateHandle, lineFromEnvelopeToRotateHandle];
2255
2266
  return (0, import_helpers7.featureCollection)(outFeatures);
2256
2267
  }
2257
2268
  handleDragging(event, props) {
@@ -2273,6 +2284,7 @@ var RotateMode = class extends GeoJsonEditMode {
2273
2284
  }
2274
2285
  handleStartDragging(event, props) {
2275
2286
  if (this._selectedEditHandle) {
2287
+ event.cancelPan();
2276
2288
  this._isRotating = true;
2277
2289
  this._geometryBeingRotated = this.getSelectedFeaturesAsFeatureCollection(props);
2278
2290
  }
@@ -2522,6 +2534,9 @@ var ExtrudeMode = class extends ModifyMode {
2522
2534
  }
2523
2535
  }
2524
2536
  handleStartDragging(event, props) {
2537
+ if (shouldCancelPan(event)) {
2538
+ event.cancelPan();
2539
+ }
2525
2540
  const selectedFeatureIndexes = props.selectedIndexes;
2526
2541
  const editHandle = getPickedIntermediateEditHandle(event.picks);
2527
2542
  if (selectedFeatureIndexes.length && editHandle) {
@@ -3056,6 +3071,7 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
3056
3071
  var import_bbox_polygon4 = __toESM(require("@turf/bbox-polygon"), 1);
3057
3072
 
3058
3073
  // dist/edit-modes/two-click-polygon-mode.js
3074
+ var import_lodash = require("lodash");
3059
3075
  var TwoClickPolygonMode = class extends GeoJsonEditMode {
3060
3076
  handleClick(event, props) {
3061
3077
  if (props.modeConfig && props.modeConfig.dragToDraw) {
@@ -3084,9 +3100,7 @@ var TwoClickPolygonMode = class extends GeoJsonEditMode {
3084
3100
  if (clickSequence.length > 1 && tentativeFeature && tentativeFeature.geometry.type === "Polygon") {
3085
3101
  const feature = {
3086
3102
  type: "Feature",
3087
- properties: {
3088
- shape: tentativeFeature.properties.shape
3089
- },
3103
+ properties: (0, import_lodash.omit)(tentativeFeature.properties, "guideType"),
3090
3104
  geometry: {
3091
3105
  type: "Polygon",
3092
3106
  coordinates: tentativeFeature.geometry.coordinates
@@ -3116,7 +3130,7 @@ var TwoClickPolygonMode = class extends GeoJsonEditMode {
3116
3130
  guides.features.push({
3117
3131
  type: "Feature",
3118
3132
  properties: {
3119
- shape: polygon3.properties && polygon3.properties.shape,
3133
+ ...polygon3.properties,
3120
3134
  guideType: "tentative"
3121
3135
  },
3122
3136
  geometry: polygon3.geometry
@@ -3234,6 +3248,10 @@ var DrawCircleFromCenterMode = class extends TwoClickPolygonMode {
3234
3248
  const geometry = (0, import_circle.default)(coord1, this.radius, options);
3235
3249
  geometry.properties = geometry.properties || {};
3236
3250
  geometry.properties.shape = "Circle";
3251
+ geometry.properties.editProperties = geometry.properties.editProperties || {};
3252
+ geometry.properties.editProperties.shape = "Circle";
3253
+ geometry.properties.editProperties.radius = { value: this.radius, unit: "kilometers" };
3254
+ geometry.properties.editProperties.center = coord1;
3237
3255
  this.areaCircle = (0, import_area.default)(geometry);
3238
3256
  return geometry;
3239
3257
  }
@@ -3301,6 +3319,10 @@ var DrawCircleByDiameterMode = class extends TwoClickPolygonMode {
3301
3319
  const geometry = (0, import_circle2.default)(centerCoordinates, this.radius, options);
3302
3320
  geometry.properties = geometry.properties || {};
3303
3321
  geometry.properties.shape = "Circle";
3322
+ geometry.properties.editProperties = geometry.properties.editProperties || {};
3323
+ geometry.properties.editProperties.shape = "Circle";
3324
+ geometry.properties.editProperties.radius = { value: this.radius, unit: "kilometers" };
3325
+ geometry.properties.editProperties.center = centerCoordinates;
3304
3326
  this.areaCircle = (0, import_area2.default)(geometry);
3305
3327
  return geometry;
3306
3328
  }
@@ -3364,18 +3386,27 @@ var DrawEllipseByBoundingBoxMode = class extends TwoClickPolygonMode {
3364
3386
  const centerCoordinates = getIntermediatePosition(coord1, coord2);
3365
3387
  const xSemiAxis = Math.max((0, import_distance11.default)((0, import_helpers12.point)(polygonPoints[0]), (0, import_helpers12.point)(polygonPoints[1])), 1e-3);
3366
3388
  const ySemiAxis = Math.max((0, import_distance11.default)((0, import_helpers12.point)(polygonPoints[0]), (0, import_helpers12.point)(polygonPoints[3])), 1e-3);
3367
- return (0, import_ellipse.default)(centerCoordinates, xSemiAxis, ySemiAxis);
3389
+ const geometry = (0, import_ellipse.default)(centerCoordinates, xSemiAxis, ySemiAxis);
3390
+ geometry.properties = geometry.properties || {};
3391
+ geometry.properties.editProperties = geometry.properties.editProperties || {};
3392
+ geometry.properties.editProperties.shape = "Ellipse";
3393
+ geometry.properties.editProperties.xSemiAxis = { value: xSemiAxis, unit: "kilometers" };
3394
+ geometry.properties.editProperties.ySemiAxis = { value: ySemiAxis, unit: "kilometers" };
3395
+ geometry.properties.editProperties.angle = 0;
3396
+ geometry.properties.editProperties.center = centerCoordinates;
3397
+ return geometry;
3368
3398
  }
3369
3399
  };
3370
3400
 
3371
3401
  // dist/edit-modes/three-click-polygon-mode.js
3402
+ var import_lodash2 = require("lodash");
3372
3403
  var ThreeClickPolygonMode = class extends GeoJsonEditMode {
3373
3404
  handleClick(event, props) {
3374
3405
  this.addClickSequence(event);
3375
3406
  const clickSequence = this.getClickSequence();
3376
3407
  const tentativeFeature = this.getTentativeGuide(props);
3377
3408
  if (clickSequence.length > 2 && tentativeFeature && tentativeFeature.geometry.type === "Polygon") {
3378
- const editAction = this.getAddFeatureOrBooleanPolygonAction(tentativeFeature.geometry, props);
3409
+ const editAction = this.getAddFeatureOrBooleanPolygonAction(tentativeFeature.geometry, props, (0, import_lodash2.omit)(tentativeFeature.properties, "guideType"));
3379
3410
  this.resetClickSequence();
3380
3411
  if (editAction) {
3381
3412
  props.onEdit(editAction);
@@ -3410,6 +3441,7 @@ var ThreeClickPolygonMode = class extends GeoJsonEditMode {
3410
3441
  guides.features.push({
3411
3442
  type: "Feature",
3412
3443
  properties: {
3444
+ ...polygon3.properties,
3413
3445
  guideType: "tentative"
3414
3446
  },
3415
3447
  geometry: polygon3.geometry
@@ -3476,7 +3508,15 @@ var DrawEllipseUsingThreePointsMode = class extends ThreeClickPolygonMode {
3476
3508
  const xSemiAxis = Math.max((0, import_distance12.default)(centerCoordinates, (0, import_helpers13.point)(coord3)), 1e-3);
3477
3509
  const ySemiAxis = Math.max((0, import_distance12.default)(coord1, coord2), 1e-3) / 2;
3478
3510
  const options = { angle: (0, import_bearing8.default)(coord1, coord2) };
3479
- return (0, import_ellipse2.default)(centerCoordinates, xSemiAxis, ySemiAxis, options);
3511
+ const geometry = (0, import_ellipse2.default)(centerCoordinates, xSemiAxis, ySemiAxis, options);
3512
+ geometry.properties = geometry.properties || {};
3513
+ geometry.properties.editProperties = geometry.properties.editProperties || {};
3514
+ geometry.properties.editProperties.shape = "Ellipse";
3515
+ geometry.properties.editProperties.xSemiAxis = { value: xSemiAxis, unit: "kilometers" };
3516
+ geometry.properties.editProperties.ySemiAxis = { value: ySemiAxis, unit: "kilometers" };
3517
+ geometry.properties.editProperties.angle = options.angle;
3518
+ geometry.properties.editProperties.center = centerCoordinates;
3519
+ return geometry;
3480
3520
  }
3481
3521
  };
3482
3522
 
@@ -3637,7 +3677,7 @@ var Draw90DegreePolygonMode = class extends GeoJsonEditMode {
3637
3677
  };
3638
3678
 
3639
3679
  // dist/edit-modes/draw-polygon-by-dragging-mode.js
3640
- var import_lodash = __toESM(require("lodash.throttle"), 1);
3680
+ var import_lodash3 = __toESM(require("lodash.throttle"), 1);
3641
3681
  var DrawPolygonByDraggingMode = class extends DrawPolygonMode {
3642
3682
  handleDraggingThrottled = null;
3643
3683
  handleClick(event, props) {
@@ -3645,7 +3685,7 @@ var DrawPolygonByDraggingMode = class extends DrawPolygonMode {
3645
3685
  handleStartDragging(event, props) {
3646
3686
  event.cancelPan();
3647
3687
  if (props.modeConfig && props.modeConfig.throttleMs) {
3648
- this.handleDraggingThrottled = (0, import_lodash.default)(this.handleDraggingAux, props.modeConfig.throttleMs);
3688
+ this.handleDraggingThrottled = (0, import_lodash3.default)(this.handleDraggingAux, props.modeConfig.throttleMs);
3649
3689
  } else {
3650
3690
  this.handleDraggingThrottled = this.handleDraggingAux;
3651
3691
  }
@@ -3884,6 +3924,9 @@ var TransformMode = class extends CompositeMode {
3884
3924
  let scaleMode = null;
3885
3925
  let translateMode = null;
3886
3926
  const filteredModes = [];
3927
+ if (event.picks.length) {
3928
+ event.cancelPan();
3929
+ }
3887
3930
  this._modes.forEach((mode) => {
3888
3931
  if (mode instanceof TranslateMode) {
3889
3932
  translateMode = mode;
@@ -3917,12 +3960,35 @@ var TransformMode = class extends CompositeMode {
3917
3960
  }
3918
3961
  };
3919
3962
 
3963
+ // dist/edit-modes/delete-mode.js
3964
+ var DeleteMode = class extends GeoJsonEditMode {
3965
+ handleClick(_event, props) {
3966
+ const selectedFeatureIndexes = props.lastPointerMoveEvent.picks.map((pick) => pick.index);
3967
+ if (selectedFeatureIndexes.length > 0) {
3968
+ const indexToDelete = selectedFeatureIndexes[0];
3969
+ const features = props.data.features.filter((_, index) => index !== indexToDelete);
3970
+ const updatedData = {
3971
+ ...props.data,
3972
+ features
3973
+ };
3974
+ const editAction = {
3975
+ updatedData,
3976
+ editType: "deleteFeature",
3977
+ editContext: {
3978
+ featureIndexes: selectedFeatureIndexes
3979
+ }
3980
+ };
3981
+ props.onEdit(editAction);
3982
+ }
3983
+ }
3984
+ };
3985
+
3920
3986
  // dist/constants.js
3921
3987
  var PROJECTED_PIXEL_SIZE_MULTIPLIER2 = 2 / 3;
3922
3988
 
3923
3989
  // dist/editable-layers/editable-layer.js
3924
3990
  var import_core3 = require("@deck.gl/core");
3925
- var EVENT_TYPES = ["anyclick", "pointermove", "panstart", "panmove", "panend", "keyup"];
3991
+ var EVENT_TYPES = ["click", "pointermove", "panstart", "panmove", "panend", "keyup"];
3926
3992
  var EditableLayer = class extends import_core3.CompositeLayer {
3927
3993
  state = void 0;
3928
3994
  // Overridable interaction event handlers
@@ -3986,7 +4052,7 @@ var EditableLayer = class extends import_core3.CompositeLayer {
3986
4052
  }
3987
4053
  func(event);
3988
4054
  }
3989
- _onanyclick({ srcEvent }) {
4055
+ _onclick({ srcEvent }) {
3990
4056
  const screenCoords = this.getScreenCoords(srcEvent);
3991
4057
  const mapCoords2 = this.getMapCoords(screenCoords);
3992
4058
  const picks = this.getPicks(screenCoords);
@@ -4018,7 +4084,12 @@ var EditableLayer = class extends import_core3.CompositeLayer {
4018
4084
  mapCoords: mapCoords2,
4019
4085
  pointerDownScreenCoords: screenCoords,
4020
4086
  pointerDownMapCoords: mapCoords2,
4021
- cancelPan: event.stopImmediatePropagation,
4087
+ cancelPan: () => {
4088
+ if (this.props.onCancelPan) {
4089
+ this.props.onCancelPan();
4090
+ }
4091
+ event.stopImmediatePropagation();
4092
+ },
4022
4093
  sourceEvent: event.srcEvent
4023
4094
  });
4024
4095
  }
@@ -4107,35 +4178,41 @@ __publicField(EditableLayer, "layerName", "EditableLayer");
4107
4178
 
4108
4179
  // dist/editable-layers/editable-path-layer.js
4109
4180
  var import_layers5 = require("@deck.gl/layers");
4181
+ var uniformBlock = `uniform pickingLineWidthUniforms {
4182
+ float extraPixels;
4183
+ } pickingLineWidth;
4184
+ `;
4185
+ var pickingUniforms = {
4186
+ name: "pickingLineWidth",
4187
+ vs: uniformBlock,
4188
+ fs: uniformBlock,
4189
+ uniformTypes: {
4190
+ extraPixels: "f32"
4191
+ }
4192
+ };
4110
4193
  var defaultProps = {
4111
4194
  ...import_layers5.PathLayer.defaultProps,
4112
4195
  pickingLineWidthExtraPixels: { type: "number", min: 0, value: Number.MAX_SAFE_INTEGER }
4113
4196
  };
4114
4197
  var EditablePathLayer = class extends import_layers5.PathLayer {
4115
4198
  getShaders() {
4116
- var _a;
4117
4199
  const shaders = super.getShaders();
4118
4200
  shaders.vs = insertBefore(shaders.vs, "vec3 width;", `
4119
4201
  if(bool(picking.isActive)){
4120
- widthPixels.xy += pickingLineWidthExtraPixels;
4202
+ widthPixels.xy += pickingLineWidth.extraPixels;
4121
4203
  }
4122
4204
  `);
4123
4205
  return {
4124
4206
  ...shaders,
4125
- inject: {
4126
- ...shaders.inject || {},
4127
- "vs:#decl": (((_a = shaders.inject) == null ? void 0 : _a["vs:#decl"]) || "").concat("uniform float pickingLineWidthExtraPixels;")
4128
- }
4207
+ modules: [...shaders.modules, pickingUniforms]
4129
4208
  };
4130
4209
  }
4131
4210
  draw(props) {
4132
- super.draw({
4133
- ...props,
4134
- uniforms: {
4135
- ...props.uniforms,
4136
- pickingLineWidthExtraPixels: this.props.pickingLineWidthExtraPixels
4137
- }
4138
- });
4211
+ const { pickingLineWidthExtraPixels } = this.props;
4212
+ const pickingProps = { extraPixels: pickingLineWidthExtraPixels };
4213
+ const model = this.state.model;
4214
+ model.shaderInputs.setProps({ pickingLineWidth: pickingProps });
4215
+ super.draw(props);
4139
4216
  }
4140
4217
  };
4141
4218
  EditablePathLayer.defaultProps = defaultProps;
@@ -4261,6 +4338,7 @@ var modeNameMapping = {
4261
4338
  split: SplitPolygonMode,
4262
4339
  extrude: ExtrudeMode,
4263
4340
  elevation: ElevationMode,
4341
+ delete: DeleteMode,
4264
4342
  // Draw modes
4265
4343
  drawPoint: DrawPointMode,
4266
4344
  drawLineString: DrawLineStringMode,
@@ -4968,6 +5046,7 @@ var ResizeCircleMode = class extends GeoJsonEditMode {
4968
5046
  }
4969
5047
  handleStartDragging(event, props) {
4970
5048
  if (this._selectedEditHandle) {
5049
+ event.cancelPan();
4971
5050
  this._isResizing = true;
4972
5051
  }
4973
5052
  }
@@ -5030,6 +5109,9 @@ var ExtendLineStringMode = class extends GeoJsonEditMode {
5030
5109
  return guides;
5031
5110
  }
5032
5111
  const mapCoords2 = props.lastPointerMoveEvent && props.lastPointerMoveEvent.mapCoords;
5112
+ if (!mapCoords2) {
5113
+ return guides;
5114
+ }
5033
5115
  let startPosition = null;
5034
5116
  const { modeConfig } = props;
5035
5117
  if (modeConfig && modeConfig.drawAtFront) {