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

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 (316) 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 +48 -52
  32. package/dist/edit-modes/draw-polygon-mode.js.map +1 -1
  33. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +2 -2
  34. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -1
  35. package/dist/edit-modes/draw-rectangle-from-center-mode.js +0 -1
  36. package/dist/edit-modes/draw-rectangle-from-center-mode.js.map +1 -1
  37. package/dist/edit-modes/draw-rectangle-mode.d.ts +2 -2
  38. package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -1
  39. package/dist/edit-modes/draw-rectangle-mode.js +0 -1
  40. package/dist/edit-modes/draw-rectangle-mode.js.map +1 -1
  41. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +2 -2
  42. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -1
  43. package/dist/edit-modes/draw-square-from-center-mode.d.ts +2 -2
  44. package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -1
  45. package/dist/edit-modes/draw-square-from-center-mode.js +0 -1
  46. package/dist/edit-modes/draw-square-from-center-mode.js.map +1 -1
  47. package/dist/edit-modes/draw-square-mode.d.ts +2 -2
  48. package/dist/edit-modes/draw-square-mode.d.ts.map +1 -1
  49. package/dist/edit-modes/draw-square-mode.js +0 -1
  50. package/dist/edit-modes/draw-square-mode.js.map +1 -1
  51. package/dist/edit-modes/duplicate-mode.d.ts +2 -2
  52. package/dist/edit-modes/duplicate-mode.d.ts.map +1 -1
  53. package/dist/edit-modes/duplicate-mode.js.map +1 -1
  54. package/dist/edit-modes/extend-line-string-mode.d.ts +4 -4
  55. package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -1
  56. package/dist/edit-modes/extend-line-string-mode.js.map +1 -1
  57. package/dist/edit-modes/extrude-mode.d.ts +7 -7
  58. package/dist/edit-modes/extrude-mode.d.ts.map +1 -1
  59. package/dist/edit-modes/extrude-mode.js.map +1 -1
  60. package/dist/edit-modes/geojson-edit-mode.d.ts +9 -9
  61. package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -1
  62. package/dist/edit-modes/geojson-edit-mode.js +4 -7
  63. package/dist/edit-modes/geojson-edit-mode.js.map +1 -1
  64. package/dist/edit-modes/immutable-feature-collection.d.ts +7 -7
  65. package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -1
  66. package/dist/edit-modes/immutable-feature-collection.js.map +1 -1
  67. package/dist/edit-modes/measure-area-mode.d.ts +3 -3
  68. package/dist/edit-modes/measure-area-mode.d.ts.map +1 -1
  69. package/dist/edit-modes/measure-area-mode.js.map +1 -1
  70. package/dist/edit-modes/modify-mode.d.ts +8 -8
  71. package/dist/edit-modes/modify-mode.d.ts.map +1 -1
  72. package/dist/edit-modes/modify-mode.js +25 -23
  73. package/dist/edit-modes/modify-mode.js.map +1 -1
  74. package/dist/edit-modes/resize-circle-mode.d.ts +3 -3
  75. package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -1
  76. package/dist/edit-modes/resize-circle-mode.js +1 -5
  77. package/dist/edit-modes/resize-circle-mode.js.map +1 -1
  78. package/dist/edit-modes/rotate-mode.d.ts +7 -7
  79. package/dist/edit-modes/rotate-mode.d.ts.map +1 -1
  80. package/dist/edit-modes/rotate-mode.js +2 -9
  81. package/dist/edit-modes/rotate-mode.js.map +1 -1
  82. package/dist/edit-modes/scale-mode.d.ts +11 -11
  83. package/dist/edit-modes/scale-mode.d.ts.map +1 -1
  84. package/dist/edit-modes/scale-mode.js +1 -6
  85. package/dist/edit-modes/scale-mode.js.map +1 -1
  86. package/dist/edit-modes/snappable-mode.d.ts +5 -5
  87. package/dist/edit-modes/snappable-mode.d.ts.map +1 -1
  88. package/dist/edit-modes/snappable-mode.js.map +1 -1
  89. package/dist/edit-modes/split-polygon-mode.d.ts +5 -5
  90. package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -1
  91. package/dist/edit-modes/split-polygon-mode.js +2 -5
  92. package/dist/edit-modes/split-polygon-mode.js.map +1 -1
  93. package/dist/edit-modes/three-click-polygon-mode.d.ts +3 -3
  94. package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -1
  95. package/dist/edit-modes/three-click-polygon-mode.js +14 -18
  96. package/dist/edit-modes/three-click-polygon-mode.js.map +1 -1
  97. package/dist/edit-modes/translate-mode.d.ts +6 -6
  98. package/dist/edit-modes/translate-mode.d.ts.map +1 -1
  99. package/dist/edit-modes/translate-mode.js +1 -2
  100. package/dist/edit-modes/translate-mode.js.map +1 -1
  101. package/dist/edit-modes/two-click-polygon-mode.d.ts +6 -6
  102. package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -1
  103. package/dist/edit-modes/two-click-polygon-mode.js.map +1 -1
  104. package/dist/edit-modes/types.d.ts +3 -3
  105. package/dist/edit-modes/types.d.ts.map +1 -1
  106. package/dist/edit-modes/utils.d.ts +7 -7
  107. package/dist/edit-modes/utils.d.ts.map +1 -1
  108. package/dist/edit-modes/utils.js +1 -4
  109. package/dist/edit-modes/utils.js.map +1 -1
  110. package/dist/editable-layers/editable-geojson-layer.d.ts +5 -13
  111. package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -1
  112. package/dist/editable-layers/editable-geojson-layer.js +20 -4
  113. package/dist/editable-layers/editable-geojson-layer.js.map +1 -1
  114. package/dist/editable-layers/selection-layer.d.ts +1 -2
  115. package/dist/editable-layers/selection-layer.d.ts.map +1 -1
  116. package/dist/editable-layers/selection-layer.js +2 -2
  117. package/dist/editable-layers/selection-layer.js.map +1 -1
  118. package/dist/index.cjs +430 -989
  119. package/dist/index.cjs.map +4 -4
  120. package/dist/index.d.ts +5 -11
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +2 -10
  123. package/dist/index.js.map +1 -1
  124. package/dist/mode-handlers/composite-mode-handler.d.ts +3 -3
  125. package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -1
  126. package/dist/mode-handlers/composite-mode-handler.js.map +1 -1
  127. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -1
  128. package/dist/mode-handlers/draw-90degree-polygon-handler.js +4 -2
  129. package/dist/mode-handlers/draw-90degree-polygon-handler.js.map +1 -1
  130. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -1
  131. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +0 -1
  132. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js.map +1 -1
  133. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -1
  134. package/dist/mode-handlers/draw-circle-from-center-handler.js +0 -1
  135. package/dist/mode-handlers/draw-circle-from-center-handler.js.map +1 -1
  136. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -1
  137. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +1 -2
  138. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js.map +1 -1
  139. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -1
  140. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +2 -2
  141. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js.map +1 -1
  142. package/dist/mode-handlers/draw-point-handler.js.map +1 -1
  143. package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -1
  144. package/dist/mode-handlers/draw-polygon-handler.js +4 -2
  145. package/dist/mode-handlers/draw-polygon-handler.js.map +1 -1
  146. package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -1
  147. package/dist/mode-handlers/draw-rectangle-handler.js +0 -1
  148. package/dist/mode-handlers/draw-rectangle-handler.js.map +1 -1
  149. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -1
  150. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +4 -2
  151. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js.map +1 -1
  152. package/dist/mode-handlers/mode-handler.d.ts +12 -12
  153. package/dist/mode-handlers/mode-handler.d.ts.map +1 -1
  154. package/dist/mode-handlers/mode-handler.js +6 -7
  155. package/dist/mode-handlers/mode-handler.js.map +1 -1
  156. package/dist/mode-handlers/modify-handler.d.ts +2 -2
  157. package/dist/mode-handlers/modify-handler.d.ts.map +1 -1
  158. package/dist/mode-handlers/modify-handler.js +1 -4
  159. package/dist/mode-handlers/modify-handler.js.map +1 -1
  160. package/dist/mode-handlers/rotate-handler.d.ts +2 -2
  161. package/dist/mode-handlers/rotate-handler.d.ts.map +1 -1
  162. package/dist/mode-handlers/rotate-handler.js +2 -7
  163. package/dist/mode-handlers/rotate-handler.js.map +1 -1
  164. package/dist/mode-handlers/scale-handler.d.ts +2 -2
  165. package/dist/mode-handlers/scale-handler.d.ts.map +1 -1
  166. package/dist/mode-handlers/scale-handler.js +2 -7
  167. package/dist/mode-handlers/scale-handler.js.map +1 -1
  168. package/dist/mode-handlers/snappable-handler.d.ts +3 -3
  169. package/dist/mode-handlers/snappable-handler.d.ts.map +1 -1
  170. package/dist/mode-handlers/snappable-handler.js.map +1 -1
  171. package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -1
  172. package/dist/mode-handlers/split-polygon-handler.js +4 -5
  173. package/dist/mode-handlers/split-polygon-handler.js.map +1 -1
  174. package/dist/mode-handlers/translate-handler.d.ts +2 -2
  175. package/dist/mode-handlers/translate-handler.d.ts.map +1 -1
  176. package/dist/mode-handlers/translate-handler.js +1 -4
  177. package/dist/mode-handlers/translate-handler.js.map +1 -1
  178. package/dist/utils/geojson-types.d.ts +13 -34
  179. package/dist/utils/geojson-types.d.ts.map +1 -1
  180. package/dist/utils/translate-from-center.d.ts +2 -4
  181. package/dist/utils/translate-from-center.d.ts.map +1 -1
  182. package/dist/utils/translate-from-center.js.map +1 -1
  183. package/dist/utils/utils.d.ts +3 -3
  184. package/dist/utils/utils.d.ts.map +1 -1
  185. package/dist/utils/utils.js +1 -1
  186. package/dist/utils/utils.js.map +1 -1
  187. package/dist/widgets/edit-mode-tray-widget.d.ts +1 -0
  188. package/dist/widgets/edit-mode-tray-widget.d.ts.map +1 -1
  189. package/dist/widgets/edit-mode-tray-widget.js +1 -0
  190. package/dist/widgets/edit-mode-tray-widget.js.map +1 -1
  191. package/dist/widgets/editor-toolbar-widget.d.ts +40 -0
  192. package/dist/widgets/editor-toolbar-widget.d.ts.map +1 -0
  193. package/dist/widgets/editor-toolbar-widget.js +170 -0
  194. package/dist/widgets/editor-toolbar-widget.js.map +1 -0
  195. package/package.json +47 -44
  196. package/src/edit-modes/draw-90degree-polygon-mode.ts +8 -2
  197. package/src/edit-modes/draw-circle-by-diameter-mode.ts +3 -3
  198. package/src/edit-modes/draw-circle-from-center-mode.ts +3 -3
  199. package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +4 -4
  200. package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +3 -4
  201. package/src/edit-modes/draw-line-string-mode.ts +10 -5
  202. package/src/edit-modes/draw-point-mode.ts +2 -2
  203. package/src/edit-modes/draw-polygon-by-dragging-mode.ts +8 -8
  204. package/src/edit-modes/draw-polygon-mode.ts +103 -124
  205. package/src/edit-modes/draw-rectangle-from-center-mode.ts +2 -3
  206. package/src/edit-modes/draw-rectangle-mode.ts +2 -3
  207. package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +2 -2
  208. package/src/edit-modes/draw-square-from-center-mode.ts +2 -3
  209. package/src/edit-modes/draw-square-mode.ts +2 -3
  210. package/src/edit-modes/duplicate-mode.ts +2 -2
  211. package/src/edit-modes/extend-line-string-mode.ts +11 -4
  212. package/src/edit-modes/extrude-mode.ts +7 -7
  213. package/src/edit-modes/geojson-edit-mode.ts +28 -19
  214. package/src/edit-modes/immutable-feature-collection.ts +10 -11
  215. package/src/edit-modes/measure-area-mode.ts +3 -3
  216. package/src/edit-modes/modify-mode.ts +42 -30
  217. package/src/edit-modes/resize-circle-mode.ts +10 -7
  218. package/src/edit-modes/rotate-mode.ts +11 -22
  219. package/src/edit-modes/scale-mode.ts +14 -19
  220. package/src/edit-modes/snappable-mode.ts +10 -5
  221. package/src/edit-modes/split-polygon-mode.ts +17 -15
  222. package/src/edit-modes/three-click-polygon-mode.ts +30 -33
  223. package/src/edit-modes/translate-mode.ts +15 -12
  224. package/src/edit-modes/two-click-polygon-mode.ts +13 -7
  225. package/src/edit-modes/types.ts +4 -4
  226. package/src/edit-modes/utils.ts +13 -17
  227. package/src/editable-layers/editable-geojson-layer.ts +35 -18
  228. package/src/editable-layers/selection-layer.ts +3 -3
  229. package/src/index.ts +11 -28
  230. package/src/mode-handlers/composite-mode-handler.ts +3 -3
  231. package/src/mode-handlers/draw-90degree-polygon-handler.ts +4 -2
  232. package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +0 -1
  233. package/src/mode-handlers/draw-circle-from-center-handler.ts +0 -1
  234. package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +1 -2
  235. package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +3 -2
  236. package/src/mode-handlers/draw-point-handler.ts +2 -2
  237. package/src/mode-handlers/draw-polygon-handler.ts +4 -2
  238. package/src/mode-handlers/draw-rectangle-handler.ts +0 -1
  239. package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +4 -2
  240. package/src/mode-handlers/mode-handler.ts +34 -20
  241. package/src/mode-handlers/modify-handler.ts +2 -4
  242. package/src/mode-handlers/rotate-handler.ts +5 -12
  243. package/src/mode-handlers/scale-handler.ts +6 -14
  244. package/src/mode-handlers/snappable-handler.ts +3 -3
  245. package/src/mode-handlers/split-polygon-handler.ts +8 -7
  246. package/src/mode-handlers/translate-handler.ts +3 -5
  247. package/src/utils/geojson-types.ts +31 -54
  248. package/src/utils/translate-from-center.ts +13 -31
  249. package/src/utils/utils.ts +5 -5
  250. package/src/widgets/edit-mode-tray-widget.tsx +2 -6
  251. package/src/widgets/editor-toolbar-widget.tsx +348 -0
  252. package/dist/lib/constants.d.ts +0 -7
  253. package/dist/lib/constants.d.ts.map +0 -1
  254. package/dist/lib/constants.js +0 -10
  255. package/dist/lib/constants.js.map +0 -1
  256. package/dist/lib/deck-renderer/deck-cache.d.ts +0 -15
  257. package/dist/lib/deck-renderer/deck-cache.d.ts.map +0 -1
  258. package/dist/lib/deck-renderer/deck-cache.js +0 -52
  259. package/dist/lib/deck-renderer/deck-cache.js.map +0 -1
  260. package/dist/lib/deck-renderer/deck-drawer.d.ts +0 -63
  261. package/dist/lib/deck-renderer/deck-drawer.d.ts.map +0 -1
  262. package/dist/lib/deck-renderer/deck-drawer.js +0 -233
  263. package/dist/lib/deck-renderer/deck-drawer.js.map +0 -1
  264. package/dist/lib/feature.d.ts +0 -11
  265. package/dist/lib/feature.d.ts.map +0 -1
  266. package/dist/lib/feature.js +0 -20
  267. package/dist/lib/feature.js.map +0 -1
  268. package/dist/lib/layer-mouse-event.d.ts +0 -12
  269. package/dist/lib/layer-mouse-event.d.ts.map +0 -1
  270. package/dist/lib/layer-mouse-event.js +0 -28
  271. package/dist/lib/layer-mouse-event.js.map +0 -1
  272. package/dist/lib/layers/junctions-layer.d.ts +0 -9
  273. package/dist/lib/layers/junctions-layer.d.ts.map +0 -1
  274. package/dist/lib/layers/junctions-layer.js +0 -37
  275. package/dist/lib/layers/junctions-layer.js.map +0 -1
  276. package/dist/lib/layers/segments-layer.d.ts +0 -19
  277. package/dist/lib/layers/segments-layer.d.ts.map +0 -1
  278. package/dist/lib/layers/segments-layer.js +0 -98
  279. package/dist/lib/layers/segments-layer.js.map +0 -1
  280. package/dist/lib/layers/texts-layer.d.ts +0 -9
  281. package/dist/lib/layers/texts-layer.d.ts.map +0 -1
  282. package/dist/lib/layers/texts-layer.js +0 -36
  283. package/dist/lib/layers/texts-layer.js.map +0 -1
  284. package/dist/lib/math.d.ts +0 -12
  285. package/dist/lib/math.d.ts.map +0 -1
  286. package/dist/lib/math.js +0 -26
  287. package/dist/lib/math.js.map +0 -1
  288. package/dist/lib/nebula-core.d.ts +0 -35
  289. package/dist/lib/nebula-core.d.ts.map +0 -1
  290. package/dist/lib/nebula-core.js +0 -258
  291. package/dist/lib/nebula-core.js.map +0 -1
  292. package/dist/lib/nebula-layer.d.ts +0 -14
  293. package/dist/lib/nebula-layer.d.ts.map +0 -1
  294. package/dist/lib/nebula-layer.js +0 -30
  295. package/dist/lib/nebula-layer.js.map +0 -1
  296. package/dist/lib/style.d.ts +0 -20
  297. package/dist/lib/style.d.ts.map +0 -1
  298. package/dist/lib/style.js +0 -24
  299. package/dist/lib/style.js.map +0 -1
  300. package/dist/utils/curve-utils.d.ts +0 -3
  301. package/dist/utils/curve-utils.d.ts.map +0 -1
  302. package/dist/utils/curve-utils.js +0 -65
  303. package/dist/utils/curve-utils.js.map +0 -1
  304. package/src/lib/constants.ts +0 -10
  305. package/src/lib/deck-renderer/deck-cache.ts +0 -61
  306. package/src/lib/deck-renderer/deck-drawer.ts +0 -263
  307. package/src/lib/feature.ts +0 -31
  308. package/src/lib/layer-mouse-event.ts +0 -33
  309. package/src/lib/layers/junctions-layer.ts +0 -44
  310. package/src/lib/layers/segments-layer.ts +0 -112
  311. package/src/lib/layers/texts-layer.ts +0 -47
  312. package/src/lib/math.ts +0 -30
  313. package/src/lib/nebula-core.ts +0 -327
  314. package/src/lib/nebula-layer.ts +0 -37
  315. package/src/lib/style.ts +0 -26
  316. package/src/utils/curve-utils.ts +0 -81
@@ -13,7 +13,8 @@ import {
13
13
  StopDraggingEvent,
14
14
  DraggingEvent,
15
15
  PointerMoveEvent,
16
- DoubleClickEvent
16
+ DoubleClickEvent,
17
+ ModeProps
17
18
  } from '../edit-modes/types';
18
19
 
19
20
  import {ViewMode} from '../edit-modes/view-mode';
@@ -119,7 +120,7 @@ export type EditableGeoJsonLayerProps<DataT = any> = EditableLayerProps & {
119
120
  mode?: any;
120
121
  modeConfig?: any;
121
122
  selectedFeatureIndexes?: number[];
122
- onEdit?: (updatedData?, editType?: string, featureIndexes?: number[], editContext?) => void;
123
+ onEdit?: (editAction: EditAction<DataT>) => void;
123
124
 
124
125
  pickable?: boolean;
125
126
  pickingRadius?: number;
@@ -141,8 +142,8 @@ export type EditableGeoJsonLayerProps<DataT = any> = EditableLayerProps & {
141
142
 
142
143
  getLineColor?: Color | ((feature, isSelected, mode) => Color);
143
144
  getFillColor?: Color | ((feature, isSelected, mode) => Color);
144
- getRadius?: number | ((f) => number);
145
- getLineWidth?: number | ((f) => number);
145
+ getRadius?: number | ((feature, isSelected, mode) => number);
146
+ getLineWidth?: number | ((feature, isSelected, mode) => number);
146
147
 
147
148
  getTentativeLineColor?: Color | ((feature, isSelected, mode) => Color);
148
149
  getTentativeFillColor?: Color | ((feature, isSelected, mode) => Color);
@@ -332,10 +333,26 @@ export class EditableGeoJsonLayer extends EditableLayer<
332
333
  },
333
334
 
334
335
  updateTriggers: {
335
- getLineColor: [this.props.selectedFeatureIndexes, this.props.mode],
336
- getFillColor: [this.props.selectedFeatureIndexes, this.props.mode],
337
- getPointRadius: [this.props.selectedFeatureIndexes, this.props.mode],
338
- getLineWidth: [this.props.selectedFeatureIndexes, this.props.mode]
336
+ getLineColor: [
337
+ this.props.updateTriggers.getLineColor,
338
+ this.props.selectedFeatureIndexes,
339
+ this.props.mode
340
+ ],
341
+ getFillColor: [
342
+ this.props.updateTriggers.getFillColor,
343
+ this.props.selectedFeatureIndexes,
344
+ this.props.mode
345
+ ],
346
+ getPointRadius: [
347
+ this.props.updateTriggers.getPointRadius,
348
+ this.props.selectedFeatureIndexes,
349
+ this.props.mode
350
+ ],
351
+ getLineWidth: [
352
+ this.props.updateTriggers.getLineWidth,
353
+ this.props.selectedFeatureIndexes,
354
+ this.props.mode
355
+ ]
339
356
  }
340
357
  });
341
358
 
@@ -414,14 +431,14 @@ export class EditableGeoJsonLayer extends EditableLayer<
414
431
  this.setState({selectedFeatures});
415
432
  }
416
433
 
417
- getModeProps(props: EditableGeoJsonLayerProps<any>) {
434
+ getModeProps<DataT>(props: EditableGeoJsonLayerProps<DataT>): ModeProps<DataT> {
418
435
  return {
419
436
  modeConfig: props.modeConfig,
420
437
  data: props.data,
421
438
  selectedIndexes: props.selectedFeatureIndexes,
422
439
  lastPointerMoveEvent: this.state.lastPointerMoveEvent,
423
440
  cursor: this.state.cursor,
424
- onEdit: (editAction: EditAction<FeatureCollection>) => {
441
+ onEdit: (editAction) => {
425
442
  // Force a re-render
426
443
  // This supports double-click where we need to ensure that there's a re-render between the two clicks
427
444
  // even though the data wasn't changed, just the internal tentative feature.
@@ -551,7 +568,7 @@ export class EditableGeoJsonLayer extends EditableLayer<
551
568
 
552
569
  createTooltipsLayers() {
553
570
  const mode = this.getActiveMode();
554
- const tooltips = mode.getTooltips(this.getModeProps(this.props) as any);
571
+ const tooltips = mode.getTooltips(this.getModeProps(this.props));
555
572
 
556
573
  const layer = new TextLayer({
557
574
  getSize: DEFAULT_TOOLTIP_FONT_SIZE,
@@ -565,34 +582,34 @@ export class EditableGeoJsonLayer extends EditableLayer<
565
582
  }
566
583
 
567
584
  onLayerClick(event: ClickEvent): void {
568
- this.getActiveMode().handleClick(event, this.getModeProps(this.props) as any);
585
+ this.getActiveMode().handleClick(event, this.getModeProps(this.props));
569
586
  }
570
587
 
571
588
  onLayerDoubleClick(event: DoubleClickEvent): void {
572
589
  if (this.getActiveMode().handleDoubleClick) {
573
- this.getActiveMode().handleDoubleClick(event, this.getModeProps(this.props) as any);
590
+ this.getActiveMode().handleDoubleClick(event, this.getModeProps(this.props));
574
591
  }
575
592
  }
576
593
 
577
594
  onLayerKeyUp(event: KeyboardEvent): void {
578
- this.getActiveMode().handleKeyUp(event, this.getModeProps(this.props) as any);
595
+ this.getActiveMode().handleKeyUp(event, this.getModeProps(this.props));
579
596
  }
580
597
 
581
598
  onStartDragging(event: StartDraggingEvent): void {
582
- this.getActiveMode().handleStartDragging(event, this.getModeProps(this.props) as any);
599
+ this.getActiveMode().handleStartDragging(event, this.getModeProps(this.props));
583
600
  }
584
601
 
585
602
  onDragging(event: DraggingEvent): void {
586
- this.getActiveMode().handleDragging(event, this.getModeProps(this.props) as any);
603
+ this.getActiveMode().handleDragging(event, this.getModeProps(this.props));
587
604
  }
588
605
 
589
606
  onStopDragging(event: StopDraggingEvent): void {
590
- this.getActiveMode().handleStopDragging(event, this.getModeProps(this.props) as any);
607
+ this.getActiveMode().handleStopDragging(event, this.getModeProps(this.props));
591
608
  }
592
609
 
593
610
  onPointerMove(event: PointerMoveEvent): void {
594
611
  this.setState({lastPointerMoveEvent: event});
595
- this.getActiveMode().handlePointerMove(event, this.getModeProps(this.props) as any);
612
+ this.getActiveMode().handlePointerMove(event, this.getModeProps(this.props));
596
613
  }
597
614
 
598
615
  getCursor({isDragging}: {isDragging: boolean}): null | 'grabbing' | 'grab' {
@@ -7,7 +7,7 @@
7
7
  import type {CompositeLayerProps, DefaultProps} from '@deck.gl/core';
8
8
  import {CompositeLayer} from '@deck.gl/core';
9
9
  import {PolygonLayer} from '@deck.gl/layers';
10
- import {polygon} from '@turf/helpers';
10
+ import {featureCollection, polygon} from '@turf/helpers';
11
11
  import turfBuffer from '@turf/buffer';
12
12
  import turfDifference from '@turf/difference';
13
13
 
@@ -32,7 +32,7 @@ const MODE_CONFIG_MAP = {
32
32
  };
33
33
 
34
34
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
- interface SelectionLayerProps<DataT> extends CompositeLayerProps {
35
+ export interface SelectionLayerProps<DataT> extends CompositeLayerProps {
36
36
  layerIds: any[];
37
37
  onSelect: (info: any) => any;
38
38
  selectionType: string | null;
@@ -121,7 +121,7 @@ export class SelectionLayer<DataT, ExtraPropsT> extends CompositeLayer<
121
121
  try {
122
122
  // turfDifference throws an exception if the polygon
123
123
  // intersects with itself (TODO: check if true in all versions)
124
- bigPolygon = turfDifference(bigBuffer, landPointsPoly);
124
+ bigPolygon = turfDifference(featureCollection([bigBuffer, landPointsPoly]));
125
125
  } catch (e) {
126
126
  // invalid selection polygon
127
127
  console.log('turfDifference() error', e); // eslint-disable-line
package/src/index.ts CHANGED
@@ -2,21 +2,6 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- export {ArrowStyles, DEFAULT_ARROWS, MAX_ARROWS} from './lib/style';
6
- export {SELECTION_TYPE} from './lib/deck-renderer/deck-drawer';
7
-
8
- export {Feature} from './lib/feature';
9
- export {LayerMouseEvent} from './lib/layer-mouse-event';
10
-
11
- export {NebulaLayer} from './lib/nebula-layer';
12
- export {JunctionsLayer} from './lib/layers/junctions-layer';
13
- export {TextsLayer} from './lib/layers/texts-layer';
14
- export {SegmentsLayer} from './lib/layers/segments-layer';
15
-
16
- export {NebulaCore} from './lib/nebula-core';
17
-
18
- export {PROJECTED_PIXEL_SIZE_MULTIPLIER} from './lib/constants';
19
-
20
5
  // Utils
21
6
  export {toDeckColor} from './utils/utils';
22
7
 
@@ -37,6 +22,9 @@ export type {
37
22
  EditModeTrayWidgetSelectEvent
38
23
  } from './widgets/edit-mode-tray-widget';
39
24
 
25
+ export {EditorToolbarWidget} from './widgets/editor-toolbar-widget';
26
+ export type {EditorToolbarWidgetProps, BooleanOperation} from './widgets/editor-toolbar-widget';
27
+
40
28
  // Layers move to deck.gl-community/layers?
41
29
  export {JunctionScatterplotLayer} from './editable-layers/junction-scatterplot-layer';
42
30
 
@@ -53,10 +41,12 @@ export type {GeoJsonEditModeType} from './edit-modes/geojson-edit-mode';
53
41
  export type {GeoJsonEditModeConstructor} from './edit-modes/geojson-edit-mode';
54
42
 
55
43
  export type {EditableGeoJsonLayerProps} from './editable-layers/editable-geojson-layer';
44
+ export type {SelectionLayerProps} from './editable-layers/selection-layer';
56
45
 
57
46
  export {GeoJsonEditMode} from './edit-modes/geojson-edit-mode';
58
47
 
59
48
  // Alter modes
49
+ export {DeleteMode} from './edit-modes/delete-mode';
60
50
  export {ModifyMode} from './edit-modes/modify-mode';
61
51
  export {ResizeCircleMode} from './edit-modes/resize-circle-mode';
62
52
  export {TranslateMode} from './edit-modes/translate-mode';
@@ -111,25 +101,18 @@ export type {
111
101
 
112
102
  export type {
113
103
  Position,
114
- PointCoordinates,
115
- LineStringCoordinates,
116
- PolygonCoordinates,
117
- MultiPointCoordinates,
118
- MultiLineStringCoordinates,
119
- MultiPolygonCoordinates,
120
- AnyCoordinates,
104
+ SimpleFeature,
105
+ SimpleFeatureCollection,
106
+ SimpleGeometry,
107
+ SimpleGeometryCoordinates,
121
108
  Point,
122
109
  LineString,
123
110
  Polygon,
124
111
  MultiPoint,
125
112
  MultiLineString,
126
113
  MultiPolygon,
127
- Geometry,
128
- Polygonal,
129
- BoundingBoxArray,
130
- FeatureOf,
131
- FeatureWithProps,
132
- // Feature,
114
+ PolygonGeometry,
115
+ Feature,
133
116
  FeatureCollection,
134
117
  AnyGeoJson
135
118
  } from './utils/geojson-types';
@@ -1,4 +1,4 @@
1
- import {FeatureCollection, Feature, Position} from '../utils/geojson-types';
1
+ import {SimpleFeature, SimpleFeatureCollection, Position} from '../utils/geojson-types';
2
2
  import {
3
3
  ClickEvent,
4
4
  PointerMoveEvent,
@@ -35,7 +35,7 @@ export class CompositeModeHandler extends ModeHandler {
35
35
  return result;
36
36
  }
37
37
 
38
- setFeatureCollection(featureCollection: FeatureCollection): void {
38
+ setFeatureCollection(featureCollection: SimpleFeatureCollection): void {
39
39
  this.handlers.forEach((handler) => handler.setFeatureCollection(featureCollection));
40
40
  }
41
41
 
@@ -69,7 +69,7 @@ export class CompositeModeHandler extends ModeHandler {
69
69
  return this._coalesce((handler) => handler.handleStopDragging(event));
70
70
  }
71
71
 
72
- getTentativeFeature(): Feature | null | undefined {
72
+ getTentativeFeature(): SimpleFeature | null | undefined {
73
73
  return this._coalesce((handler) => handler.getTentativeFeature());
74
74
  }
75
75
 
@@ -76,7 +76,8 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
76
76
  geometry: {
77
77
  type: 'LineString',
78
78
  coordinates: [...clickSequence, p3]
79
- }
79
+ },
80
+ properties: {}
80
81
  });
81
82
  } else {
82
83
  // Draw a Polygon connecting all the clicked points with the hovered point
@@ -85,7 +86,8 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
85
86
  geometry: {
86
87
  type: 'Polygon',
87
88
  coordinates: [[...clickSequence, p3, clickSequence[0]]]
88
- }
89
+ },
90
+ properties: {}
89
91
  });
90
92
  }
91
93
 
@@ -35,7 +35,6 @@ export class DrawCircleByBoundingBoxHandler extends TwoClickPolygonHandler {
35
35
  const firstClickedPoint = clickSequence[0];
36
36
  const centerCoordinates = getIntermediatePosition(firstClickedPoint, event.mapCoords);
37
37
  const radius = Math.max(distance(firstClickedPoint, centerCoordinates), 0.001);
38
- // @ts-expect-error turf types diff
39
38
  this._setTentativeFeature(circle(centerCoordinates, radius, options));
40
39
 
41
40
  return result;
@@ -34,7 +34,6 @@ export class DrawCircleFromCenterHandler extends TwoClickPolygonHandler {
34
34
 
35
35
  const centerCoordinates = clickSequence[0];
36
36
  const radius = Math.max(distance(centerCoordinates, event.mapCoords), 0.001);
37
- // @ts-expect-error turf types diff
38
37
  this._setTentativeFeature(circle(centerCoordinates, radius, options));
39
38
 
40
39
  return result;
@@ -37,8 +37,7 @@ export class DrawEllipseByBoundingBoxHandler extends TwoClickPolygonHandler {
37
37
 
38
38
  const xSemiAxis = Math.max(distance(point(polygonPoints[0]), point(polygonPoints[1])), 0.001);
39
39
  const ySemiAxis = Math.max(distance(point(polygonPoints[0]), point(polygonPoints[3])), 0.001);
40
- // @ts-expect-error turf types diff
41
- this._setTentativeFeature(ellipse(centerCoordinates, xSemiAxis, ySemiAxis));
40
+ this._setTentativeFeature(ellipse(centerCoordinates, xSemiAxis, ySemiAxis, {}));
42
41
 
43
42
  return result;
44
43
  }
@@ -32,7 +32,8 @@ export class DrawEllipseUsingThreePointsHandler extends ThreeClickPolygonHandler
32
32
  geometry: {
33
33
  type: 'LineString',
34
34
  coordinates: [clickSequence[0], mapCoords]
35
- }
35
+ },
36
+ properties: {}
36
37
  });
37
38
  } else if (clickSequence.length === 2) {
38
39
  const [p1, p2] = clickSequence;
@@ -41,7 +42,7 @@ export class DrawEllipseUsingThreePointsHandler extends ThreeClickPolygonHandler
41
42
  const xSemiAxis = Math.max(distance(centerCoordinates, point(mapCoords)), 0.001);
42
43
  const ySemiAxis = Math.max(distance(p1, p2), 0.001) / 2;
43
44
  const options = {angle: bearing(p1, p2)};
44
- // @ts-expect-error turf types diff
45
+
45
46
  this._setTentativeFeature(ellipse(centerCoordinates, xSemiAxis, ySemiAxis, options));
46
47
  }
47
48
 
@@ -2,14 +2,14 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import {Geometry} from '../utils/geojson-types';
5
+ import {SimpleGeometry} from '../utils/geojson-types';
6
6
  import {ClickEvent} from '../edit-modes/types';
7
7
  import {EditAction, ModeHandler} from './mode-handler';
8
8
 
9
9
  // TODO edit-modes: delete handlers once EditMode fully implemented
10
10
  export class DrawPointHandler extends ModeHandler {
11
11
  handleClick({mapCoords}: ClickEvent): EditAction | null | undefined {
12
- const geometry: Geometry = {
12
+ const geometry: SimpleGeometry = {
13
13
  type: 'Point',
14
14
  coordinates: mapCoords
15
15
  };
@@ -107,7 +107,8 @@ export class DrawPolygonHandler extends ModeHandler {
107
107
  geometry: {
108
108
  type: 'LineString',
109
109
  coordinates: [...clickSequence, mapCoords]
110
- }
110
+ },
111
+ properties: {}
111
112
  });
112
113
  } else {
113
114
  // Draw a Polygon connecting all the clicked points with the hovered point
@@ -116,7 +117,8 @@ export class DrawPolygonHandler extends ModeHandler {
116
117
  geometry: {
117
118
  type: 'Polygon',
118
119
  coordinates: [[...clickSequence, mapCoords, clickSequence[0]]]
119
- }
120
+ },
121
+ properties: {}
120
122
  });
121
123
  }
122
124
 
@@ -24,7 +24,6 @@ export class DrawRectangleHandler extends TwoClickPolygonHandler {
24
24
  const corner1 = clickSequence[0];
25
25
  const corner2 = event.mapCoords;
26
26
 
27
- // @ts-expect-error turf type diff
28
27
  this._setTentativeFeature(bboxPolygon([corner1[0], corner1[1], corner2[0], corner2[1]]));
29
28
 
30
29
  return result;
@@ -30,7 +30,8 @@ export class DrawRectangleUsingThreePointsHandler extends ThreeClickPolygonHandl
30
30
  geometry: {
31
31
  type: 'LineString',
32
32
  coordinates: [clickSequence[0], mapCoords]
33
- }
33
+ },
34
+ properties: {}
34
35
  });
35
36
  } else if (clickSequence.length === 2) {
36
37
  const lineString: LineString = {
@@ -55,7 +56,8 @@ export class DrawRectangleUsingThreePointsHandler extends ThreeClickPolygonHandl
55
56
  p1
56
57
  ]
57
58
  ]
58
- }
59
+ },
60
+ properties: {}
59
61
  });
60
62
  }
61
63
 
@@ -4,11 +4,21 @@
4
4
 
5
5
  // TODO edit-modes: delete handlers once EditMode fully implemented
6
6
 
7
+ import {featureCollection as turfFeatureCollection} from '@turf/helpers';
7
8
  import turfUnion from '@turf/union';
8
9
  import turfDifference from '@turf/difference';
9
10
  import turfIntersect from '@turf/intersect';
10
11
 
11
- import {FeatureCollection, Feature, Polygon, Geometry, Position} from '../utils/geojson-types';
12
+ import {
13
+ FeatureCollection,
14
+ Feature,
15
+ Polygon,
16
+ SimpleGeometry,
17
+ Position,
18
+ PolygonGeometry,
19
+ SimpleFeatureCollection,
20
+ SimpleFeature
21
+ } from '../utils/geojson-types';
12
22
 
13
23
  import {
14
24
  ClickEvent,
@@ -29,7 +39,7 @@ export type EditHandle = {
29
39
  };
30
40
 
31
41
  export type EditAction = {
32
- updatedData: FeatureCollection;
42
+ updatedData: SimpleFeatureCollection;
33
43
  editType: string;
34
44
  featureIndexes: number[];
35
45
  editContext: any;
@@ -38,12 +48,12 @@ export type EditAction = {
38
48
  export class ModeHandler {
39
49
  // TODO: add underscore
40
50
  featureCollection: ImmutableFeatureCollection = undefined!;
41
- _tentativeFeature: Feature | null | undefined;
51
+ _tentativeFeature: SimpleFeature | null | undefined;
42
52
  _modeConfig: any = null;
43
53
  _selectedFeatureIndexes: number[] = [];
44
54
  _clickSequence: Position[] = [];
45
55
 
46
- constructor(featureCollection?: FeatureCollection) {
56
+ constructor(featureCollection?: SimpleFeatureCollection) {
47
57
  if (featureCollection) {
48
58
  this.setFeatureCollection(featureCollection);
49
59
  }
@@ -57,14 +67,14 @@ export class ModeHandler {
57
67
  return this.featureCollection;
58
68
  }
59
69
 
60
- getSelectedFeature(): Feature | null | undefined {
70
+ getSelectedFeature(): SimpleFeature | null | undefined {
61
71
  if (this._selectedFeatureIndexes.length === 1) {
62
72
  return this.featureCollection.getObject().features[this._selectedFeatureIndexes[0]];
63
73
  }
64
74
  return null;
65
75
  }
66
76
 
67
- getSelectedGeometry(): Geometry | null | undefined {
77
+ getSelectedGeometry(): SimpleGeometry | null | undefined {
68
78
  const feature = this.getSelectedFeature();
69
79
  if (feature) {
70
80
  return feature.geometry;
@@ -72,7 +82,7 @@ export class ModeHandler {
72
82
  return null;
73
83
  }
74
84
 
75
- getSelectedFeaturesAsFeatureCollection(): FeatureCollection {
85
+ getSelectedFeaturesAsFeatureCollection(): SimpleFeatureCollection {
76
86
  const {features} = this.featureCollection.getObject();
77
87
  const selectedFeatures = this.getSelectedFeatureIndexes().map(
78
88
  (selectedIndex) => features[selectedIndex]
@@ -83,7 +93,7 @@ export class ModeHandler {
83
93
  };
84
94
  }
85
95
 
86
- setFeatureCollection(featureCollection: FeatureCollection): void {
96
+ setFeatureCollection(featureCollection: SimpleFeatureCollection): void {
87
97
  this.featureCollection = new ImmutableFeatureCollection(featureCollection);
88
98
  }
89
99
 
@@ -121,12 +131,12 @@ export class ModeHandler {
121
131
  this._clickSequence = [];
122
132
  }
123
133
 
124
- getTentativeFeature(): Feature | null | undefined {
134
+ getTentativeFeature(): SimpleFeature | null | undefined {
125
135
  return this._tentativeFeature;
126
136
  }
127
137
 
128
138
  // TODO: remove the underscore
129
- _setTentativeFeature(tentativeFeature: Feature | null | undefined): void {
139
+ _setTentativeFeature(tentativeFeature: SimpleFeature | null | undefined): void {
130
140
  this._tentativeFeature = tentativeFeature;
131
141
  if (!tentativeFeature) {
132
142
  // Reset the click sequence
@@ -154,7 +164,7 @@ export class ModeHandler {
154
164
  return selectedFeatureIndexes.some((index) => pickedIndexes.includes(index));
155
165
  }
156
166
 
157
- getAddFeatureAction(geometry: Geometry): EditAction {
167
+ getAddFeatureAction(geometry: SimpleGeometry): EditAction {
158
168
  // Unsure why flow can't deal with Geometry type, but there I fixed it
159
169
  const geometryAsAny: any = geometry;
160
170
 
@@ -218,21 +228,25 @@ export class ModeHandler {
218
228
  return null;
219
229
  }
220
230
 
221
- const feature = {
231
+ const feature: Feature<Polygon> = {
222
232
  type: 'Feature',
223
- geometry
233
+ geometry,
234
+ properties: {}
224
235
  };
225
236
 
226
237
  let updatedGeometry;
227
238
  if (modeConfig.booleanOperation === 'union') {
228
- // @ts-expect-error turf types diff
229
- updatedGeometry = turfUnion(selectedFeature, feature);
239
+ updatedGeometry = turfUnion(
240
+ turfFeatureCollection([selectedFeature as Feature<PolygonGeometry>, feature])
241
+ );
230
242
  } else if (modeConfig.booleanOperation === 'difference') {
231
- // @ts-expect-error turf type diff
232
- updatedGeometry = turfDifference(selectedFeature, feature);
243
+ updatedGeometry = turfDifference(
244
+ turfFeatureCollection([selectedFeature as Feature<PolygonGeometry>, feature])
245
+ );
233
246
  } else if (modeConfig.booleanOperation === 'intersection') {
234
- // @ts-expect-error turf type diff
235
- updatedGeometry = turfIntersect(selectedFeature, feature);
247
+ updatedGeometry = turfIntersect(
248
+ turfFeatureCollection([selectedFeature as Feature<PolygonGeometry>, feature])
249
+ );
236
250
  } else {
237
251
  // eslint-disable-next-line no-console,no-undef
238
252
  console.warn(`Invalid booleanOperation ${modeConfig.booleanOperation}`);
@@ -307,7 +321,7 @@ export function getIntermediatePosition(position1: Position, position2: Position
307
321
  }
308
322
 
309
323
  export function getEditHandlesForGeometry(
310
- geometry: Geometry,
324
+ geometry: SimpleGeometry,
311
325
  featureIndex: number,
312
326
  editHandleType: EditHandleType = 'existing'
313
327
  ): EditHandle[] {
@@ -4,7 +4,7 @@
4
4
 
5
5
  import nearestPointOnLine from '@turf/nearest-point-on-line';
6
6
  import {point, lineString as toLineString} from '@turf/helpers';
7
- import {Position, FeatureOf, Point, LineString} from '../utils/geojson-types';
7
+ import {Position, Feature, Point, LineString} from '../utils/geojson-types';
8
8
  import {
9
9
  recursivelyTraverseNestedArrays,
10
10
  nearestPointOnProjectedLine,
@@ -66,7 +66,6 @@ export class ModifyHandler extends ModeHandler {
66
66
  const lineStringFeature = toLineString(lineString);
67
67
 
68
68
  const candidateIntermediatePoint = this.nearestPointOnLine(
69
- // @ts-expect-error turf type diff
70
69
  lineStringFeature,
71
70
  referencePoint
72
71
  );
@@ -102,7 +101,7 @@ export class ModifyHandler extends ModeHandler {
102
101
  }
103
102
 
104
103
  // turf.js does not support elevation for nearestPointOnLine
105
- nearestPointOnLine(line: FeatureOf<LineString>, inPoint: FeatureOf<Point>): NearestPointType {
104
+ nearestPointOnLine(line: Feature<LineString>, inPoint: Feature<Point>): NearestPointType {
106
105
  const {coordinates} = line.geometry;
107
106
  if (coordinates.some((coord) => coord.length > 2)) {
108
107
  const modeConfig = this.getModeConfig();
@@ -115,7 +114,6 @@ export class ModifyHandler extends ModeHandler {
115
114
  'Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.'
116
115
  );
117
116
  }
118
- // @ts-expect-error geojson types diff
119
117
  return nearestPointOnLine(line, inPoint);
120
118
  }
121
119
 
@@ -5,14 +5,14 @@
5
5
  import turfCentroid from '@turf/centroid';
6
6
  import turfBearing from '@turf/bearing';
7
7
  import turfTransformRotate from '@turf/transform-rotate';
8
- import {FeatureCollection, Position} from '../utils/geojson-types';
8
+ import {SimpleFeatureCollection, Position} from '../utils/geojson-types';
9
9
  import {PointerMoveEvent, StartDraggingEvent, StopDraggingEvent} from '../edit-modes/types';
10
10
  import {EditAction, ModeHandler} from './mode-handler';
11
11
 
12
12
  // TODO edit-modes: delete handlers once EditMode fully implemented
13
13
  export class RotateHandler extends ModeHandler {
14
14
  _isRotatable: boolean = undefined!;
15
- _geometryBeingRotated: FeatureCollection | null | undefined;
15
+ _geometryBeingRotated: SimpleFeatureCollection | null | undefined;
16
16
 
17
17
  handlePointerMove(event: PointerMoveEvent): {
18
18
  editAction: EditAction | null | undefined;
@@ -66,17 +66,10 @@ export class RotateHandler extends ModeHandler {
66
66
 
67
67
  getRotateAction(startDragPoint: Position, currentPoint: Position, editType: string): EditAction {
68
68
  const startPosition = startDragPoint;
69
- // @ts-expect-error turf types diff
70
69
  const centroid = turfCentroid(this._geometryBeingRotated);
71
- // @ts-expect-error turf types diff
72
- const angle = getRotationAngle(centroid, startPosition, currentPoint);
73
-
74
- // @ts-expect-error turf type diff
75
- const rotatedFeatures: FeatureCollection = turfTransformRotate(
76
- // @ts-expect-error turf type diff
77
- this._geometryBeingRotated,
78
- angle
79
- );
70
+ const angle = getRotationAngle(centroid.geometry.coordinates, startPosition, currentPoint);
71
+
72
+ const rotatedFeatures = turfTransformRotate(this._geometryBeingRotated, angle);
80
73
 
81
74
  let updatedData = this.getImmutableFeatureCollection();
82
75
 
@@ -5,14 +5,14 @@
5
5
  import turfCentroid from '@turf/centroid';
6
6
  import turfDistance from '@turf/distance';
7
7
  import turfTransformScale from '@turf/transform-scale';
8
- import {FeatureCollection, Position} from '../utils/geojson-types';
8
+ import {SimpleFeatureCollection, Position, SimpleGeometry} from '../utils/geojson-types';
9
9
  import {PointerMoveEvent, StartDraggingEvent, StopDraggingEvent} from '../edit-modes/types';
10
10
  import {EditAction, ModeHandler} from './mode-handler';
11
11
 
12
12
  // TODO edit-modes: delete handlers once EditMode fully implemented
13
13
  export class ScaleHandler extends ModeHandler {
14
14
  _isScalable: boolean = undefined!;
15
- _geometryBeingScaled: FeatureCollection | null | undefined;
15
+ _geometryBeingScaled: SimpleFeatureCollection | null | undefined;
16
16
 
17
17
  handlePointerMove(event: PointerMoveEvent): {
18
18
  editAction: EditAction | null | undefined;
@@ -66,19 +66,11 @@ export class ScaleHandler extends ModeHandler {
66
66
 
67
67
  getScaleAction(startDragPoint: Position, currentPoint: Position, editType: string): EditAction {
68
68
  const startPosition = startDragPoint;
69
- // @ts-expect-error turf types diff
70
69
  const centroid = turfCentroid(this._geometryBeingScaled);
71
- // @ts-expect-error turf types diff
72
- const factor = getScaleFactor(centroid, startPosition, currentPoint);
73
- // @ts-expect-error turf type diff
74
- const scaledFeatures: FeatureCollection = turfTransformScale(
75
- // @ts-expect-error turf type diff
76
- this._geometryBeingScaled,
77
- factor,
78
- {
79
- origin: centroid
80
- }
81
- );
70
+ const factor = getScaleFactor(centroid.geometry.coordinates, startPosition, currentPoint);
71
+ const scaledFeatures = turfTransformScale(this._geometryBeingScaled, factor, {
72
+ origin: centroid
73
+ });
82
74
 
83
75
  let updatedData = this.getImmutableFeatureCollection();
84
76