@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
@@ -9,7 +9,7 @@ import {
9
9
  getPickedIntermediateEditHandle,
10
10
  shouldCancelPan
11
11
  } from './utils';
12
- import {FeatureCollection} from '../utils/geojson-types';
12
+ import {SimpleFeatureCollection} from '../utils/geojson-types';
13
13
  import {ModeProps, StartDraggingEvent, StopDraggingEvent, DraggingEvent} from './types';
14
14
  import {ModifyMode} from './modify-mode';
15
15
  import {ImmutableFeatureCollection} from './immutable-feature-collection';
@@ -19,7 +19,7 @@ export class ExtrudeMode extends ModifyMode {
19
19
 
20
20
  isPointAdded = false;
21
21
 
22
- handleDragging(event: DraggingEvent, props: ModeProps<FeatureCollection>): void {
22
+ handleDragging(event: DraggingEvent, props: ModeProps<SimpleFeatureCollection>): void {
23
23
  const editHandle = getPickedEditHandle(event.pointerDownPicks);
24
24
 
25
25
  if (editHandle) {
@@ -61,7 +61,7 @@ export class ExtrudeMode extends ModifyMode {
61
61
  }
62
62
  }
63
63
 
64
- handleStartDragging(event: StartDraggingEvent, props: ModeProps<FeatureCollection>) {
64
+ handleStartDragging(event: StartDraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
65
65
  if (shouldCancelPan(event)) {
66
66
  event.cancelPan();
67
67
  }
@@ -111,7 +111,7 @@ export class ExtrudeMode extends ModifyMode {
111
111
  }
112
112
  }
113
113
 
114
- handleStopDragging(event: StopDraggingEvent, props: ModeProps<FeatureCollection>) {
114
+ handleStopDragging(event: StopDraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
115
115
  const selectedFeatureIndexes = props.selectedIndexes;
116
116
  const editHandle = getPickedEditHandle(event.pointerDownPicks);
117
117
  if (selectedFeatureIndexes.length && editHandle) {
@@ -156,7 +156,7 @@ export class ExtrudeMode extends ModifyMode {
156
156
  coordinatesSize(
157
157
  positionIndexes: number[] | null | undefined,
158
158
  featureIndex: number,
159
- {features}: FeatureCollection
159
+ {features}: SimpleFeatureCollection
160
160
  ) {
161
161
  let size = 0;
162
162
  if (Array.isArray(positionIndexes)) {
@@ -190,7 +190,7 @@ export class ExtrudeMode extends ModifyMode {
190
190
  positionIndexes: number[] | null | undefined,
191
191
  featureIndex: number,
192
192
  size: number,
193
- features: FeatureCollection
193
+ features: SimpleFeatureCollection
194
194
  ) {
195
195
  if (!Array.isArray(positionIndexes)) {
196
196
  return false;
@@ -239,7 +239,7 @@ export class ExtrudeMode extends ModifyMode {
239
239
  getPointForPositionIndexes(
240
240
  positionIndexes: number[] | null | undefined,
241
241
  featureIndex: number,
242
- {features}: FeatureCollection
242
+ {features}: SimpleFeatureCollection
243
243
  ) {
244
244
  let p1;
245
245
  if (Array.isArray(positionIndexes)) {
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
+ import {featureCollection} from '@turf/helpers';
5
6
  import turfUnion from '@turf/union';
6
7
  import turfDifference from '@turf/difference';
7
8
  import turfIntersect from '@turf/intersect';
@@ -20,12 +21,20 @@ import {
20
21
  GuideFeatureCollection,
21
22
  TentativeFeature
22
23
  } from './types';
23
- import {FeatureCollection, Feature, Polygon, Geometry, Position} from '../utils/geojson-types';
24
+ import {
25
+ FeatureCollection,
26
+ Feature,
27
+ Polygon,
28
+ SimpleGeometry,
29
+ Position,
30
+ SimpleFeatureCollection,
31
+ SimpleFeature
32
+ } from '../utils/geojson-types';
24
33
  import {getPickedEditHandles, getNonGuidePicks} from './utils';
25
34
  import {EditMode} from './edit-mode';
26
35
  import {ImmutableFeatureCollection} from './immutable-feature-collection';
27
36
 
28
- export type GeoJsonEditAction = EditAction<FeatureCollection>;
37
+ export type GeoJsonEditAction = EditAction<SimpleFeatureCollection>;
29
38
 
30
39
  const DEFAULT_GUIDES: GuideFeatureCollection = {
31
40
  type: 'FeatureCollection',
@@ -51,14 +60,16 @@ export class GeoJsonEditMode implements EditMode<FeatureCollection, GuideFeature
51
60
  return DEFAULT_TOOLTIPS;
52
61
  }
53
62
 
54
- getSelectedFeature(props: ModeProps<FeatureCollection>): Feature | null | undefined {
63
+ getSelectedFeature(props: ModeProps<SimpleFeatureCollection>): SimpleFeature | null | undefined {
55
64
  if (props.selectedIndexes.length === 1) {
56
65
  return props.data.features[props.selectedIndexes[0]];
57
66
  }
58
67
  return null;
59
68
  }
60
69
 
61
- getSelectedGeometry(props: ModeProps<FeatureCollection>): Geometry | null | undefined {
70
+ getSelectedGeometry(
71
+ props: ModeProps<SimpleFeatureCollection>
72
+ ): SimpleGeometry | null | undefined {
62
73
  const feature = this.getSelectedFeature(props);
63
74
  if (feature) {
64
75
  return feature.geometry;
@@ -66,7 +77,9 @@ export class GeoJsonEditMode implements EditMode<FeatureCollection, GuideFeature
66
77
  return null;
67
78
  }
68
79
 
69
- getSelectedFeaturesAsFeatureCollection(props: ModeProps<FeatureCollection>): FeatureCollection {
80
+ getSelectedFeaturesAsFeatureCollection(
81
+ props: ModeProps<SimpleFeatureCollection>
82
+ ): SimpleFeatureCollection {
70
83
  const {features} = props.data;
71
84
  const selectedFeatures = props.selectedIndexes.map((selectedIndex) => features[selectedIndex]);
72
85
  return {
@@ -104,21 +117,20 @@ export class GeoJsonEditMode implements EditMode<FeatureCollection, GuideFeature
104
117
  return props.selectedIndexes.some((index) => pickedIndexes.has(index));
105
118
  }
106
119
 
107
- rewindPolygon(feature: Feature): Feature {
120
+ rewindPolygon(feature: SimpleFeature): SimpleFeature {
108
121
  const {geometry} = feature;
109
122
 
110
123
  const isPolygonal = geometry.type === 'Polygon' || geometry.type === 'MultiPolygon';
111
124
  if (isPolygonal) {
112
- // @ts-expect-error turf type too wide
113
- return rewind(feature);
125
+ return rewind(feature) as SimpleFeature;
114
126
  }
115
127
 
116
128
  return feature;
117
129
  }
118
130
 
119
131
  getAddFeatureAction(
120
- featureOrGeometry: Geometry | Feature,
121
- features: FeatureCollection,
132
+ featureOrGeometry: SimpleGeometry | Feature,
133
+ features: SimpleFeatureCollection,
122
134
  featureProperties?: {}
123
135
  ): GeoJsonEditAction {
124
136
  // Unsure why flow can't deal with Geometry type, but there I fixed it
@@ -149,8 +161,8 @@ export class GeoJsonEditMode implements EditMode<FeatureCollection, GuideFeature
149
161
  }
150
162
 
151
163
  getAddManyFeaturesAction(
152
- {features: featuresToAdd}: FeatureCollection,
153
- features: FeatureCollection
164
+ {features: featuresToAdd}: SimpleFeatureCollection,
165
+ features: SimpleFeatureCollection
154
166
  ): GeoJsonEditAction {
155
167
  let updatedData = new ImmutableFeatureCollection(features);
156
168
  const initialIndex = updatedData.getObject().features.length;
@@ -178,7 +190,7 @@ export class GeoJsonEditMode implements EditMode<FeatureCollection, GuideFeature
178
190
  // eslint-disable-next-line complexity
179
191
  getAddFeatureOrBooleanPolygonAction(
180
192
  featureOrGeometry: Polygon | Feature,
181
- props: ModeProps<FeatureCollection>,
193
+ props: ModeProps<SimpleFeatureCollection>,
182
194
  featureProperties?: {}
183
195
  ): GeoJsonEditAction | null | undefined {
184
196
  const featureOrGeometryAsAny: any = featureOrGeometry;
@@ -209,14 +221,11 @@ export class GeoJsonEditMode implements EditMode<FeatureCollection, GuideFeature
209
221
 
210
222
  let updatedGeometry;
211
223
  if (modeConfig.booleanOperation === 'union') {
212
- // @ts-expect-error selectedFeature type too wide
213
- updatedGeometry = turfUnion(selectedFeature, feature);
224
+ updatedGeometry = turfUnion(featureCollection([selectedFeature, feature]));
214
225
  } else if (modeConfig.booleanOperation === 'difference') {
215
- // @ts-expect-error selectedFeature type too wide
216
- updatedGeometry = turfDifference(selectedFeature, feature);
226
+ updatedGeometry = turfDifference(featureCollection([selectedFeature, feature]));
217
227
  } else if (modeConfig.booleanOperation === 'intersection') {
218
- // @ts-expect-error selectedFeature type too wide
219
- updatedGeometry = turfIntersect(selectedFeature, feature);
228
+ updatedGeometry = turfIntersect(featureCollection([selectedFeature, feature]));
220
229
  } else {
221
230
  // eslint-disable-next-line no-console,no-undef
222
231
  console.warn(`Invalid booleanOperation ${modeConfig.booleanOperation}`);
@@ -3,20 +3,19 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import {
6
- Feature,
7
- FeatureCollection,
8
- Geometry,
6
+ SimpleFeatureCollection,
7
+ SimpleGeometry,
9
8
  Polygon,
10
9
  MultiLineString,
11
10
  MultiPolygon,
12
11
  Position,
13
- PolygonCoordinates
12
+ SimpleFeature
14
13
  } from '../utils/geojson-types';
15
14
 
16
15
  export class ImmutableFeatureCollection {
17
- featureCollection: FeatureCollection;
16
+ featureCollection: Readonly<SimpleFeatureCollection>;
18
17
 
19
- constructor(featureCollection: FeatureCollection) {
18
+ constructor(featureCollection: SimpleFeatureCollection) {
20
19
  this.featureCollection = featureCollection;
21
20
  }
22
21
 
@@ -162,7 +161,7 @@ export class ImmutableFeatureCollection {
162
161
  return this.replaceGeometry(featureIndex, updatedGeometry);
163
162
  }
164
163
 
165
- replaceGeometry(featureIndex: number, geometry: Geometry): ImmutableFeatureCollection {
164
+ replaceGeometry(featureIndex: number, geometry: SimpleGeometry): ImmutableFeatureCollection {
166
165
  const updatedFeature: any = {
167
166
  ...this.featureCollection.features[featureIndex],
168
167
  geometry
@@ -180,11 +179,11 @@ export class ImmutableFeatureCollection {
180
179
  return new ImmutableFeatureCollection(updatedFeatureCollection);
181
180
  }
182
181
 
183
- addFeature(feature: Feature): ImmutableFeatureCollection {
182
+ addFeature(feature: SimpleFeature): ImmutableFeatureCollection {
184
183
  return this.addFeatures([feature]);
185
184
  }
186
185
 
187
- addFeatures(features: Feature[]): ImmutableFeatureCollection {
186
+ addFeatures(features: SimpleFeature[]): ImmutableFeatureCollection {
188
187
  const updatedFeatureCollection = {
189
188
  ...this.featureCollection,
190
189
  features: [...this.featureCollection.features, ...features]
@@ -351,7 +350,7 @@ function immutablyAddPosition(
351
350
  ];
352
351
  }
353
352
 
354
- function pruneGeometryIfNecessary(geometry: Geometry) {
353
+ function pruneGeometryIfNecessary(geometry: SimpleGeometry) {
355
354
  switch (geometry.type) {
356
355
  case 'Polygon':
357
356
  prunePolygonIfNecessary(geometry);
@@ -413,7 +412,7 @@ function pruneMultiPolygonIfNecessary(geometry: MultiPolygon) {
413
412
  }
414
413
  }
415
414
 
416
- function removeHoleIfNecessary(polygon: PolygonCoordinates, holeIndex: number) {
415
+ function removeHoleIfNecessary(polygon: Polygon['coordinates'], holeIndex: number) {
417
416
  const hole = polygon[holeIndex];
418
417
  if (hole.length <= 3) {
419
418
  polygon.splice(holeIndex, 1);
@@ -5,13 +5,13 @@
5
5
  import turfArea from '@turf/area';
6
6
  import turfCentroid from '@turf/centroid';
7
7
  import {ClickEvent, Tooltip, ModeProps} from './types';
8
- import {FeatureCollection} from '../utils/geojson-types';
8
+ import {FeatureCollection, SimpleFeatureCollection} from '../utils/geojson-types';
9
9
  import {DrawPolygonMode} from './draw-polygon-mode';
10
10
 
11
11
  const DEFAULT_TOOLTIPS = [];
12
12
 
13
13
  export class MeasureAreaMode extends DrawPolygonMode {
14
- handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
14
+ handleClick(event: ClickEvent, props: ModeProps<SimpleFeatureCollection>) {
15
15
  const propsWithoutEdit = {
16
16
  ...props,
17
17
  onEdit: () => {}
@@ -20,7 +20,7 @@ export class MeasureAreaMode extends DrawPolygonMode {
20
20
  super.handleClick(event, propsWithoutEdit);
21
21
  }
22
22
 
23
- handleKeyUp(event: KeyboardEvent, props: ModeProps<FeatureCollection>): void {
23
+ handleKeyUp(event: KeyboardEvent, props: ModeProps<SimpleFeatureCollection>): void {
24
24
  const propsWithoutEdit = {
25
25
  ...props,
26
26
  onEdit: () => {}
@@ -16,7 +16,14 @@ import {
16
16
  NearestPointType,
17
17
  shouldCancelPan
18
18
  } from './utils';
19
- import {LineString, Point, Polygon, FeatureCollection, FeatureOf} from '../utils/geojson-types';
19
+ import {
20
+ LineString,
21
+ Point,
22
+ Polygon,
23
+ FeatureCollection,
24
+ Feature,
25
+ SimpleFeatureCollection
26
+ } from '../utils/geojson-types';
20
27
  import {
21
28
  ModeProps,
22
29
  ClickEvent,
@@ -34,7 +41,7 @@ import {ImmutableFeatureCollection} from './immutable-feature-collection';
34
41
 
35
42
  export class ModifyMode extends GeoJsonEditMode {
36
43
  // eslint-disable-next-line complexity
37
- getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {
44
+ getGuides(props: ModeProps<SimpleFeatureCollection>): GuideFeatureCollection {
38
45
  const handles: GuideFeature[] = [];
39
46
 
40
47
  const {data, lastPointerMoveEvent} = props;
@@ -76,7 +83,6 @@ export class ModifyMode extends GeoJsonEditMode {
76
83
  (lineString, prefix) => {
77
84
  const lineStringFeature = toLineString(lineString);
78
85
  const candidateIntermediatePoint = this.getNearestPoint(
79
- // @ts-expect-error turf types too wide
80
86
  lineStringFeature,
81
87
  referencePoint,
82
88
  props.modeConfig && props.modeConfig.viewport
@@ -121,8 +127,8 @@ export class ModifyMode extends GeoJsonEditMode {
121
127
 
122
128
  // turf.js does not support elevation for nearestPointOnLine
123
129
  getNearestPoint(
124
- line: FeatureOf<LineString>,
125
- inPoint: FeatureOf<Point>,
130
+ line: Feature<LineString>,
131
+ inPoint: Feature<Point>,
126
132
  viewport: Viewport | null | undefined
127
133
  ): NearestPointType {
128
134
  const {coordinates} = line.geometry;
@@ -139,32 +145,38 @@ export class ModifyMode extends GeoJsonEditMode {
139
145
  return nearestPointOnLine(line, inPoint, viewport);
140
146
  }
141
147
 
142
- handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
148
+ handleClick(event: ClickEvent, props: ModeProps<SimpleFeatureCollection>) {
143
149
  const pickedExistingHandle = getPickedExistingEditHandle(event.picks);
144
150
  const pickedIntermediateHandle = getPickedIntermediateEditHandle(event.picks);
145
151
 
146
152
  if (pickedExistingHandle) {
147
153
  const {featureIndex, positionIndexes} = pickedExistingHandle.properties;
148
154
 
149
- let updatedData;
150
- try {
151
- updatedData = new ImmutableFeatureCollection(props.data)
152
- .removePosition(featureIndex, positionIndexes)
153
- .getObject();
154
- } catch (ignored) {
155
- // This happens if user attempts to remove the last point
156
- }
155
+ const feature = props.data.features[featureIndex];
156
+ const canRemovePosition = !(
157
+ props.modeConfig?.lockRectangles && feature?.properties.shape === 'Rectangle'
158
+ );
159
+ if (canRemovePosition) {
160
+ let updatedData;
161
+ try {
162
+ updatedData = new ImmutableFeatureCollection(props.data)
163
+ .removePosition(featureIndex, positionIndexes)
164
+ .getObject();
165
+ } catch (ignored) {
166
+ // This happens if user attempts to remove the last point
167
+ }
157
168
 
158
- if (updatedData) {
159
- props.onEdit({
160
- updatedData,
161
- editType: 'removePosition',
162
- editContext: {
163
- featureIndexes: [featureIndex],
164
- positionIndexes,
165
- position: pickedExistingHandle.geometry.coordinates
166
- }
167
- });
169
+ if (updatedData) {
170
+ props.onEdit({
171
+ updatedData,
172
+ editType: 'removePosition',
173
+ editContext: {
174
+ featureIndexes: [featureIndex],
175
+ positionIndexes,
176
+ position: pickedExistingHandle.geometry.coordinates
177
+ }
178
+ });
179
+ }
168
180
  }
169
181
  } else if (pickedIntermediateHandle) {
170
182
  const {featureIndex, positionIndexes} = pickedIntermediateHandle.properties;
@@ -194,7 +206,7 @@ export class ModifyMode extends GeoJsonEditMode {
194
206
  }
195
207
  }
196
208
 
197
- handleDragging(event: DraggingEvent, props: ModeProps<FeatureCollection>): void {
209
+ handleDragging(event: DraggingEvent, props: ModeProps<SimpleFeatureCollection>): void {
198
210
  const editHandle = getPickedEditHandle(event.pointerDownPicks);
199
211
 
200
212
  if (editHandle) {
@@ -207,7 +219,7 @@ export class ModifyMode extends GeoJsonEditMode {
207
219
 
208
220
  _dragEditHandle(
209
221
  editType: string,
210
- props: ModeProps<FeatureCollection>,
222
+ props: ModeProps<SimpleFeatureCollection>,
211
223
  editHandle: EditHandleFeature,
212
224
  event: StopDraggingEvent | DraggingEvent
213
225
  ) {
@@ -217,7 +229,7 @@ export class ModifyMode extends GeoJsonEditMode {
217
229
  let updatedData;
218
230
  if (props.modeConfig?.lockRectangles && editedFeature.properties.shape === 'Rectangle') {
219
231
  const coordinates = updateRectanglePosition(
220
- editedFeature as FeatureOf<Polygon>,
232
+ editedFeature as Feature<Polygon>,
221
233
  editHandleProperties.positionIndexes[1],
222
234
  event.mapCoords
223
235
  ) as any; // TODO
@@ -251,7 +263,7 @@ export class ModifyMode extends GeoJsonEditMode {
251
263
  props.onUpdateCursor(cursor);
252
264
  }
253
265
 
254
- handleStartDragging(event: StartDraggingEvent, props: ModeProps<FeatureCollection>) {
266
+ handleStartDragging(event: StartDraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
255
267
  if (shouldCancelPan(event)) {
256
268
  event.cancelPan();
257
269
  }
@@ -282,9 +294,9 @@ export class ModifyMode extends GeoJsonEditMode {
282
294
  }
283
295
  }
284
296
 
285
- handleStopDragging(event: StopDraggingEvent, props: ModeProps<FeatureCollection>) {
297
+ handleStopDragging(event: StopDraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
286
298
  const selectedFeatureIndexes = props.selectedIndexes;
287
- const editHandle = getPickedEditHandle(event.picks);
299
+ const editHandle = getPickedEditHandle(event.pointerDownPicks);
288
300
  if (selectedFeatureIndexes.length && editHandle) {
289
301
  this._dragEditHandle('finishMovePosition', props, editHandle, event);
290
302
  }
@@ -14,7 +14,13 @@ import {
14
14
  getPickedEditHandle,
15
15
  NearestPointType
16
16
  } from './utils';
17
- import {LineString, Point, FeatureCollection, FeatureOf} from '../utils/geojson-types';
17
+ import {
18
+ LineString,
19
+ Point,
20
+ FeatureCollection,
21
+ Feature,
22
+ SimpleFeatureCollection
23
+ } from '../utils/geojson-types';
18
24
  import {Viewport} from '../utils/types';
19
25
  import {
20
26
  ModeProps,
@@ -69,7 +75,6 @@ export class ResizeCircleMode extends GeoJsonEditMode {
69
75
  (lineString, prefix) => {
70
76
  const lineStringFeature = toLineString(lineString);
71
77
  const candidateIntermediatePoint = this.getNearestPoint(
72
- // @ts-expect-error turf types too wide
73
78
  lineStringFeature,
74
79
  referencePoint,
75
80
  props.modeConfig && props.modeConfig.viewport
@@ -114,8 +119,8 @@ export class ResizeCircleMode extends GeoJsonEditMode {
114
119
 
115
120
  // turf.js does not support elevation for nearestPointOnLine
116
121
  getNearestPoint(
117
- line: FeatureOf<LineString>,
118
- inPoint: FeatureOf<Point>,
122
+ line: Feature<LineString>,
123
+ inPoint: Feature<Point>,
119
124
  viewport: Viewport | null | undefined
120
125
  ): NearestPointType {
121
126
  const {coordinates} = line.geometry;
@@ -129,11 +134,10 @@ export class ResizeCircleMode extends GeoJsonEditMode {
129
134
  'Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.'
130
135
  );
131
136
  }
132
- // @ts-expect-error turf types diff
133
137
  return nearestPointOnLine(line, inPoint);
134
138
  }
135
139
 
136
- handleDragging(event: DraggingEvent, props: ModeProps<FeatureCollection>): void {
140
+ handleDragging(event: DraggingEvent, props: ModeProps<SimpleFeatureCollection>): void {
137
141
  const editHandle = getPickedEditHandle(event.pointerDownPicks);
138
142
 
139
143
  if (editHandle) {
@@ -143,7 +147,6 @@ export class ResizeCircleMode extends GeoJsonEditMode {
143
147
  const editHandleProperties = editHandle.properties;
144
148
 
145
149
  const feature = this.getSelectedFeature(props);
146
- // @ts-expect-error turf types diff
147
150
  const center = turfCenter(feature).geometry.coordinates;
148
151
  const numberOfSteps = Object.entries(feature.geometry.coordinates[0]).length - 1;
149
152
  const radius = Math.max(distance(center, event.mapCoords), 0.001);
@@ -22,19 +22,18 @@ import {
22
22
  GuideFeatureCollection
23
23
  } from './types';
24
24
  import {getPickedEditHandle} from './utils';
25
- import {FeatureCollection, Position} from '../utils/geojson-types';
25
+ import {FeatureCollection, Position, SimpleFeatureCollection} from '../utils/geojson-types';
26
26
  import {GeoJsonEditMode, GeoJsonEditAction, getIntermediatePosition} from './geojson-edit-mode';
27
27
  import {ImmutableFeatureCollection} from './immutable-feature-collection';
28
28
 
29
29
  export class RotateMode extends GeoJsonEditMode {
30
30
  _selectedEditHandle: EditHandleFeature | null | undefined;
31
- _geometryBeingRotated: FeatureCollection | null | undefined;
31
+ _geometryBeingRotated: SimpleFeatureCollection | null | undefined;
32
32
  _isRotating = false;
33
33
 
34
34
  _isSinglePointGeometrySelected = (geometry: FeatureCollection | null | undefined): boolean => {
35
35
  const {features} = geometry || {};
36
36
  if (Array.isArray(features) && features.length === 1) {
37
- // @ts-expect-error turf type diff
38
37
  const {type}: {type: string} = getGeom(features[0]);
39
38
  return type === 'Point';
40
39
  }
@@ -43,7 +42,7 @@ export class RotateMode extends GeoJsonEditMode {
43
42
 
44
43
  getIsRotating = () => this._isRotating;
45
44
 
46
- getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {
45
+ getGuides(props: ModeProps<SimpleFeatureCollection>): GuideFeatureCollection {
47
46
  const selectedGeometry =
48
47
  this._geometryBeingRotated || this.getSelectedFeaturesAsFeatureCollection(props);
49
48
 
@@ -53,7 +52,6 @@ export class RotateMode extends GeoJsonEditMode {
53
52
 
54
53
  if (this._isRotating) {
55
54
  // Display rotate pivot
56
- // @ts-expect-error turf types diff
57
55
  return featureCollection([turfCentroid(selectedGeometry)]) as GuideFeatureCollection;
58
56
  }
59
57
 
@@ -96,7 +94,7 @@ export class RotateMode extends GeoJsonEditMode {
96
94
  return featureCollection(outFeatures);
97
95
  }
98
96
 
99
- handleDragging(event: DraggingEvent, props: ModeProps<FeatureCollection>) {
97
+ handleDragging(event: DraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
100
98
  if (!this._isRotating) {
101
99
  return;
102
100
  }
@@ -126,7 +124,7 @@ export class RotateMode extends GeoJsonEditMode {
126
124
  this.updateCursor(props);
127
125
  }
128
126
 
129
- handleStartDragging(event: StartDraggingEvent, props: ModeProps<FeatureCollection>) {
127
+ handleStartDragging(event: StartDraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
130
128
  if (this._selectedEditHandle) {
131
129
  event.cancelPan();
132
130
  this._isRotating = true;
@@ -134,7 +132,7 @@ export class RotateMode extends GeoJsonEditMode {
134
132
  }
135
133
  }
136
134
 
137
- handleStopDragging(event: StopDraggingEvent, props: ModeProps<FeatureCollection>) {
135
+ handleStopDragging(event: StopDraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
138
136
  if (this._isRotating) {
139
137
  // Rotate the geometry
140
138
  const rotateAction = this.getRotateAction(
@@ -167,25 +165,16 @@ export class RotateMode extends GeoJsonEditMode {
167
165
  startDragPoint: Position,
168
166
  currentPoint: Position,
169
167
  editType: string,
170
- props: ModeProps<FeatureCollection>
168
+ props: ModeProps<SimpleFeatureCollection>
171
169
  ): GeoJsonEditAction | null | undefined {
172
170
  if (!this._geometryBeingRotated) {
173
171
  return null;
174
172
  }
175
- // @ts-expect-error turf types diff
176
173
  const centroid = turfCentroid(this._geometryBeingRotated);
177
- // @ts-expect-error turf types diff
178
- const angle = getRotationAngle(centroid, startDragPoint, currentPoint);
179
-
180
- // @ts-expect-error turf types too wide
181
- const rotatedFeatures: FeatureCollection = turfTransformRotate(
182
- // @ts-expect-error turf types too wide
183
- this._geometryBeingRotated,
184
- angle,
185
- {
186
- pivot: centroid
187
- }
188
- );
174
+ const angle = getRotationAngle(centroid.geometry.coordinates, startDragPoint, currentPoint);
175
+ const rotatedFeatures = turfTransformRotate(this._geometryBeingRotated, angle, {
176
+ pivot: centroid
177
+ });
189
178
 
190
179
  let updatedData = new ImmutableFeatureCollection(props.data);
191
180