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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts +2 -2
  2. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts.map +1 -1
  3. package/dist/edit-modes/draw-90degree-polygon-mode.js.map +1 -1
  4. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +2 -2
  5. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts.map +1 -1
  6. package/dist/edit-modes/draw-circle-by-diameter-mode.js +0 -1
  7. package/dist/edit-modes/draw-circle-by-diameter-mode.js.map +1 -1
  8. package/dist/edit-modes/draw-circle-from-center-mode.d.ts +2 -2
  9. package/dist/edit-modes/draw-circle-from-center-mode.d.ts.map +1 -1
  10. package/dist/edit-modes/draw-circle-from-center-mode.js +0 -1
  11. package/dist/edit-modes/draw-circle-from-center-mode.js.map +1 -1
  12. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +2 -2
  13. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts.map +1 -1
  14. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +1 -2
  15. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js.map +1 -1
  16. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +2 -2
  17. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts.map +1 -1
  18. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +0 -2
  19. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js.map +1 -1
  20. package/dist/edit-modes/draw-line-string-mode.d.ts +5 -5
  21. package/dist/edit-modes/draw-line-string-mode.d.ts.map +1 -1
  22. package/dist/edit-modes/draw-line-string-mode.js.map +1 -1
  23. package/dist/edit-modes/draw-point-mode.d.ts +2 -2
  24. package/dist/edit-modes/draw-point-mode.d.ts.map +1 -1
  25. package/dist/edit-modes/draw-point-mode.js.map +1 -1
  26. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +8 -8
  27. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts.map +1 -1
  28. package/dist/edit-modes/draw-polygon-by-dragging-mode.js.map +1 -1
  29. package/dist/edit-modes/draw-polygon-mode.d.ts +5 -5
  30. package/dist/edit-modes/draw-polygon-mode.d.ts.map +1 -1
  31. package/dist/edit-modes/draw-polygon-mode.js.map +1 -1
  32. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +2 -2
  33. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -1
  34. package/dist/edit-modes/draw-rectangle-from-center-mode.js +0 -1
  35. package/dist/edit-modes/draw-rectangle-from-center-mode.js.map +1 -1
  36. package/dist/edit-modes/draw-rectangle-mode.d.ts +2 -2
  37. package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -1
  38. package/dist/edit-modes/draw-rectangle-mode.js +0 -1
  39. package/dist/edit-modes/draw-rectangle-mode.js.map +1 -1
  40. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +2 -2
  41. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -1
  42. package/dist/edit-modes/draw-square-from-center-mode.d.ts +2 -2
  43. package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -1
  44. package/dist/edit-modes/draw-square-from-center-mode.js +0 -1
  45. package/dist/edit-modes/draw-square-from-center-mode.js.map +1 -1
  46. package/dist/edit-modes/draw-square-mode.d.ts +2 -2
  47. package/dist/edit-modes/draw-square-mode.d.ts.map +1 -1
  48. package/dist/edit-modes/draw-square-mode.js +0 -1
  49. package/dist/edit-modes/draw-square-mode.js.map +1 -1
  50. package/dist/edit-modes/duplicate-mode.d.ts +2 -2
  51. package/dist/edit-modes/duplicate-mode.d.ts.map +1 -1
  52. package/dist/edit-modes/duplicate-mode.js.map +1 -1
  53. package/dist/edit-modes/extend-line-string-mode.d.ts +4 -4
  54. package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -1
  55. package/dist/edit-modes/extend-line-string-mode.js.map +1 -1
  56. package/dist/edit-modes/extrude-mode.d.ts +7 -7
  57. package/dist/edit-modes/extrude-mode.d.ts.map +1 -1
  58. package/dist/edit-modes/extrude-mode.js.map +1 -1
  59. package/dist/edit-modes/geojson-edit-mode.d.ts +9 -9
  60. package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -1
  61. package/dist/edit-modes/geojson-edit-mode.js +4 -7
  62. package/dist/edit-modes/geojson-edit-mode.js.map +1 -1
  63. package/dist/edit-modes/immutable-feature-collection.d.ts +7 -7
  64. package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -1
  65. package/dist/edit-modes/immutable-feature-collection.js.map +1 -1
  66. package/dist/edit-modes/measure-area-mode.d.ts +3 -3
  67. package/dist/edit-modes/measure-area-mode.d.ts.map +1 -1
  68. package/dist/edit-modes/measure-area-mode.js.map +1 -1
  69. package/dist/edit-modes/modify-mode.d.ts +8 -8
  70. package/dist/edit-modes/modify-mode.d.ts.map +1 -1
  71. package/dist/edit-modes/modify-mode.js +2 -4
  72. package/dist/edit-modes/modify-mode.js.map +1 -1
  73. package/dist/edit-modes/resize-circle-mode.d.ts +3 -3
  74. package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -1
  75. package/dist/edit-modes/resize-circle-mode.js +1 -5
  76. package/dist/edit-modes/resize-circle-mode.js.map +1 -1
  77. package/dist/edit-modes/rotate-mode.d.ts +7 -7
  78. package/dist/edit-modes/rotate-mode.d.ts.map +1 -1
  79. package/dist/edit-modes/rotate-mode.js +2 -9
  80. package/dist/edit-modes/rotate-mode.js.map +1 -1
  81. package/dist/edit-modes/scale-mode.d.ts +11 -11
  82. package/dist/edit-modes/scale-mode.d.ts.map +1 -1
  83. package/dist/edit-modes/scale-mode.js +1 -6
  84. package/dist/edit-modes/scale-mode.js.map +1 -1
  85. package/dist/edit-modes/snappable-mode.d.ts +5 -5
  86. package/dist/edit-modes/snappable-mode.d.ts.map +1 -1
  87. package/dist/edit-modes/snappable-mode.js.map +1 -1
  88. package/dist/edit-modes/split-polygon-mode.d.ts +5 -5
  89. package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -1
  90. package/dist/edit-modes/split-polygon-mode.js +2 -5
  91. package/dist/edit-modes/split-polygon-mode.js.map +1 -1
  92. package/dist/edit-modes/three-click-polygon-mode.d.ts +3 -3
  93. package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -1
  94. package/dist/edit-modes/three-click-polygon-mode.js.map +1 -1
  95. package/dist/edit-modes/translate-mode.d.ts +6 -6
  96. package/dist/edit-modes/translate-mode.d.ts.map +1 -1
  97. package/dist/edit-modes/translate-mode.js +1 -2
  98. package/dist/edit-modes/translate-mode.js.map +1 -1
  99. package/dist/edit-modes/two-click-polygon-mode.d.ts +6 -6
  100. package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -1
  101. package/dist/edit-modes/two-click-polygon-mode.js.map +1 -1
  102. package/dist/edit-modes/types.d.ts +3 -3
  103. package/dist/edit-modes/types.d.ts.map +1 -1
  104. package/dist/edit-modes/utils.d.ts +7 -7
  105. package/dist/edit-modes/utils.d.ts.map +1 -1
  106. package/dist/edit-modes/utils.js +0 -3
  107. package/dist/edit-modes/utils.js.map +1 -1
  108. package/dist/editable-layers/editable-geojson-layer.d.ts +5 -13
  109. package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -1
  110. package/dist/editable-layers/editable-geojson-layer.js +4 -4
  111. package/dist/editable-layers/editable-geojson-layer.js.map +1 -1
  112. package/dist/editable-layers/selection-layer.d.ts +1 -2
  113. package/dist/editable-layers/selection-layer.d.ts.map +1 -1
  114. package/dist/editable-layers/selection-layer.js +2 -2
  115. package/dist/editable-layers/selection-layer.js.map +1 -1
  116. package/dist/index.cjs +192 -942
  117. package/dist/index.cjs.map +4 -4
  118. package/dist/index.d.ts +3 -11
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +1 -10
  121. package/dist/index.js.map +1 -1
  122. package/dist/mode-handlers/composite-mode-handler.d.ts +3 -3
  123. package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -1
  124. package/dist/mode-handlers/composite-mode-handler.js.map +1 -1
  125. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -1
  126. package/dist/mode-handlers/draw-90degree-polygon-handler.js +4 -2
  127. package/dist/mode-handlers/draw-90degree-polygon-handler.js.map +1 -1
  128. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -1
  129. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +0 -1
  130. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js.map +1 -1
  131. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -1
  132. package/dist/mode-handlers/draw-circle-from-center-handler.js +0 -1
  133. package/dist/mode-handlers/draw-circle-from-center-handler.js.map +1 -1
  134. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -1
  135. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +1 -2
  136. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js.map +1 -1
  137. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -1
  138. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +2 -2
  139. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js.map +1 -1
  140. package/dist/mode-handlers/draw-point-handler.js.map +1 -1
  141. package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -1
  142. package/dist/mode-handlers/draw-polygon-handler.js +4 -2
  143. package/dist/mode-handlers/draw-polygon-handler.js.map +1 -1
  144. package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -1
  145. package/dist/mode-handlers/draw-rectangle-handler.js +0 -1
  146. package/dist/mode-handlers/draw-rectangle-handler.js.map +1 -1
  147. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -1
  148. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +4 -2
  149. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js.map +1 -1
  150. package/dist/mode-handlers/mode-handler.d.ts +12 -12
  151. package/dist/mode-handlers/mode-handler.d.ts.map +1 -1
  152. package/dist/mode-handlers/mode-handler.js +6 -7
  153. package/dist/mode-handlers/mode-handler.js.map +1 -1
  154. package/dist/mode-handlers/modify-handler.d.ts +2 -2
  155. package/dist/mode-handlers/modify-handler.d.ts.map +1 -1
  156. package/dist/mode-handlers/modify-handler.js +1 -4
  157. package/dist/mode-handlers/modify-handler.js.map +1 -1
  158. package/dist/mode-handlers/rotate-handler.d.ts +2 -2
  159. package/dist/mode-handlers/rotate-handler.d.ts.map +1 -1
  160. package/dist/mode-handlers/rotate-handler.js +2 -7
  161. package/dist/mode-handlers/rotate-handler.js.map +1 -1
  162. package/dist/mode-handlers/scale-handler.d.ts +2 -2
  163. package/dist/mode-handlers/scale-handler.d.ts.map +1 -1
  164. package/dist/mode-handlers/scale-handler.js +2 -7
  165. package/dist/mode-handlers/scale-handler.js.map +1 -1
  166. package/dist/mode-handlers/snappable-handler.d.ts +3 -3
  167. package/dist/mode-handlers/snappable-handler.d.ts.map +1 -1
  168. package/dist/mode-handlers/snappable-handler.js.map +1 -1
  169. package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -1
  170. package/dist/mode-handlers/split-polygon-handler.js +4 -5
  171. package/dist/mode-handlers/split-polygon-handler.js.map +1 -1
  172. package/dist/mode-handlers/translate-handler.d.ts +2 -2
  173. package/dist/mode-handlers/translate-handler.d.ts.map +1 -1
  174. package/dist/mode-handlers/translate-handler.js +1 -4
  175. package/dist/mode-handlers/translate-handler.js.map +1 -1
  176. package/dist/utils/geojson-types.d.ts +13 -34
  177. package/dist/utils/geojson-types.d.ts.map +1 -1
  178. package/dist/utils/translate-from-center.d.ts +2 -4
  179. package/dist/utils/translate-from-center.d.ts.map +1 -1
  180. package/dist/utils/translate-from-center.js.map +1 -1
  181. package/dist/utils/utils.d.ts +3 -3
  182. package/dist/utils/utils.d.ts.map +1 -1
  183. package/dist/utils/utils.js.map +1 -1
  184. package/package.json +33 -34
  185. package/src/edit-modes/draw-90degree-polygon-mode.ts +2 -2
  186. package/src/edit-modes/draw-circle-by-diameter-mode.ts +3 -3
  187. package/src/edit-modes/draw-circle-from-center-mode.ts +3 -3
  188. package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +4 -4
  189. package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +3 -4
  190. package/src/edit-modes/draw-line-string-mode.ts +5 -5
  191. package/src/edit-modes/draw-point-mode.ts +2 -2
  192. package/src/edit-modes/draw-polygon-by-dragging-mode.ts +8 -8
  193. package/src/edit-modes/draw-polygon-mode.ts +8 -8
  194. package/src/edit-modes/draw-rectangle-from-center-mode.ts +2 -3
  195. package/src/edit-modes/draw-rectangle-mode.ts +2 -3
  196. package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +2 -2
  197. package/src/edit-modes/draw-square-from-center-mode.ts +2 -3
  198. package/src/edit-modes/draw-square-mode.ts +3 -3
  199. package/src/edit-modes/duplicate-mode.ts +2 -2
  200. package/src/edit-modes/extend-line-string-mode.ts +4 -4
  201. package/src/edit-modes/extrude-mode.ts +7 -7
  202. package/src/edit-modes/geojson-edit-mode.ts +16 -19
  203. package/src/edit-modes/immutable-feature-collection.ts +10 -11
  204. package/src/edit-modes/measure-area-mode.ts +3 -3
  205. package/src/edit-modes/modify-mode.ts +13 -13
  206. package/src/edit-modes/resize-circle-mode.ts +6 -8
  207. package/src/edit-modes/rotate-mode.ts +9 -15
  208. package/src/edit-modes/scale-mode.ts +11 -15
  209. package/src/edit-modes/snappable-mode.ts +5 -5
  210. package/src/edit-modes/split-polygon-mode.ts +12 -16
  211. package/src/edit-modes/three-click-polygon-mode.ts +3 -3
  212. package/src/edit-modes/translate-mode.ts +10 -12
  213. package/src/edit-modes/two-click-polygon-mode.ts +7 -7
  214. package/src/edit-modes/types.ts +4 -4
  215. package/src/edit-modes/utils.ts +12 -16
  216. package/src/editable-layers/editable-geojson-layer.ts +19 -18
  217. package/src/editable-layers/selection-layer.ts +3 -3
  218. package/src/index.ts +8 -28
  219. package/src/mode-handlers/composite-mode-handler.ts +3 -3
  220. package/src/mode-handlers/draw-90degree-polygon-handler.ts +4 -2
  221. package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +0 -1
  222. package/src/mode-handlers/draw-circle-from-center-handler.ts +0 -1
  223. package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +1 -2
  224. package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +3 -2
  225. package/src/mode-handlers/draw-point-handler.ts +2 -2
  226. package/src/mode-handlers/draw-polygon-handler.ts +4 -2
  227. package/src/mode-handlers/draw-rectangle-handler.ts +0 -1
  228. package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +4 -2
  229. package/src/mode-handlers/mode-handler.ts +20 -21
  230. package/src/mode-handlers/modify-handler.ts +2 -4
  231. package/src/mode-handlers/rotate-handler.ts +4 -8
  232. package/src/mode-handlers/scale-handler.ts +4 -8
  233. package/src/mode-handlers/snappable-handler.ts +3 -3
  234. package/src/mode-handlers/split-polygon-handler.ts +6 -7
  235. package/src/mode-handlers/translate-handler.ts +3 -5
  236. package/src/utils/geojson-types.ts +15 -54
  237. package/src/utils/translate-from-center.ts +6 -11
  238. package/src/utils/utils.ts +4 -4
  239. package/dist/lib/constants.d.ts +0 -7
  240. package/dist/lib/constants.d.ts.map +0 -1
  241. package/dist/lib/constants.js +0 -10
  242. package/dist/lib/constants.js.map +0 -1
  243. package/dist/lib/deck-renderer/deck-cache.d.ts +0 -15
  244. package/dist/lib/deck-renderer/deck-cache.d.ts.map +0 -1
  245. package/dist/lib/deck-renderer/deck-cache.js +0 -52
  246. package/dist/lib/deck-renderer/deck-cache.js.map +0 -1
  247. package/dist/lib/deck-renderer/deck-drawer.d.ts +0 -63
  248. package/dist/lib/deck-renderer/deck-drawer.d.ts.map +0 -1
  249. package/dist/lib/deck-renderer/deck-drawer.js +0 -233
  250. package/dist/lib/deck-renderer/deck-drawer.js.map +0 -1
  251. package/dist/lib/feature.d.ts +0 -11
  252. package/dist/lib/feature.d.ts.map +0 -1
  253. package/dist/lib/feature.js +0 -20
  254. package/dist/lib/feature.js.map +0 -1
  255. package/dist/lib/layer-mouse-event.d.ts +0 -12
  256. package/dist/lib/layer-mouse-event.d.ts.map +0 -1
  257. package/dist/lib/layer-mouse-event.js +0 -28
  258. package/dist/lib/layer-mouse-event.js.map +0 -1
  259. package/dist/lib/layers/junctions-layer.d.ts +0 -9
  260. package/dist/lib/layers/junctions-layer.d.ts.map +0 -1
  261. package/dist/lib/layers/junctions-layer.js +0 -37
  262. package/dist/lib/layers/junctions-layer.js.map +0 -1
  263. package/dist/lib/layers/segments-layer.d.ts +0 -19
  264. package/dist/lib/layers/segments-layer.d.ts.map +0 -1
  265. package/dist/lib/layers/segments-layer.js +0 -98
  266. package/dist/lib/layers/segments-layer.js.map +0 -1
  267. package/dist/lib/layers/texts-layer.d.ts +0 -9
  268. package/dist/lib/layers/texts-layer.d.ts.map +0 -1
  269. package/dist/lib/layers/texts-layer.js +0 -36
  270. package/dist/lib/layers/texts-layer.js.map +0 -1
  271. package/dist/lib/math.d.ts +0 -12
  272. package/dist/lib/math.d.ts.map +0 -1
  273. package/dist/lib/math.js +0 -26
  274. package/dist/lib/math.js.map +0 -1
  275. package/dist/lib/nebula-core.d.ts +0 -35
  276. package/dist/lib/nebula-core.d.ts.map +0 -1
  277. package/dist/lib/nebula-core.js +0 -258
  278. package/dist/lib/nebula-core.js.map +0 -1
  279. package/dist/lib/nebula-layer.d.ts +0 -14
  280. package/dist/lib/nebula-layer.d.ts.map +0 -1
  281. package/dist/lib/nebula-layer.js +0 -30
  282. package/dist/lib/nebula-layer.js.map +0 -1
  283. package/dist/lib/style.d.ts +0 -20
  284. package/dist/lib/style.d.ts.map +0 -1
  285. package/dist/lib/style.js +0 -24
  286. package/dist/lib/style.js.map +0 -1
  287. package/dist/utils/curve-utils.d.ts +0 -3
  288. package/dist/utils/curve-utils.d.ts.map +0 -1
  289. package/dist/utils/curve-utils.js +0 -65
  290. package/dist/utils/curve-utils.js.map +0 -1
  291. package/src/lib/constants.ts +0 -10
  292. package/src/lib/deck-renderer/deck-cache.ts +0 -61
  293. package/src/lib/deck-renderer/deck-drawer.ts +0 -263
  294. package/src/lib/feature.ts +0 -31
  295. package/src/lib/layer-mouse-event.ts +0 -33
  296. package/src/lib/layers/junctions-layer.ts +0 -44
  297. package/src/lib/layers/segments-layer.ts +0 -112
  298. package/src/lib/layers/texts-layer.ts +0 -47
  299. package/src/lib/math.ts +0 -30
  300. package/src/lib/nebula-core.ts +0 -327
  301. package/src/lib/nebula-layer.ts +0 -37
  302. package/src/lib/style.ts +0 -26
  303. package/src/utils/curve-utils.ts +0 -81
@@ -6,16 +6,15 @@ import booleanPointInPolygon from '@turf/boolean-point-in-polygon';
6
6
  import turfDifference from '@turf/difference';
7
7
  import turfBuffer from '@turf/buffer';
8
8
  import lineIntersect from '@turf/line-intersect';
9
- import type {Point} from '@turf/helpers';
10
- import {lineString} from '@turf/helpers';
9
+ import type {Point} from 'geojson';
10
+ import {feature as turfFeature, featureCollection, lineString} from '@turf/helpers';
11
11
  import turfBearing from '@turf/bearing';
12
12
  import turfDistance from '@turf/distance';
13
13
  import turfDestination from '@turf/destination';
14
14
  import turfPolygonToLine from '@turf/polygon-to-line';
15
- import type {NearestPointOnLine} from '@turf/nearest-point-on-line';
16
15
  import nearestPointOnLine from '@turf/nearest-point-on-line';
17
16
  import {generatePointsParallelToLinePoints} from './utils';
18
- import {FeatureCollection} from '../utils/geojson-types';
17
+ import {FeatureCollection, PolygonGeometry, SimpleFeatureCollection} from '../utils/geojson-types';
19
18
  import {
20
19
  ClickEvent,
21
20
  PointerMoveEvent,
@@ -27,7 +26,7 @@ import {GeoJsonEditMode, GeoJsonEditAction} from './geojson-edit-mode';
27
26
  import {ImmutableFeatureCollection} from './immutable-feature-collection';
28
27
 
29
28
  export class SplitPolygonMode extends GeoJsonEditMode {
30
- calculateMapCoords(clickSequence: any, mapCoords: any, props: ModeProps<FeatureCollection>) {
29
+ calculateMapCoords(clickSequence: any, mapCoords: any, props: ModeProps<SimpleFeatureCollection>) {
31
30
  const modeConfig = props.modeConfig;
32
31
  if (!modeConfig || !modeConfig.lock90Degree || !clickSequence.length) {
33
32
  return mapCoords;
@@ -36,12 +35,11 @@ export class SplitPolygonMode extends GeoJsonEditMode {
36
35
  // if first point is clicked, then find closest polygon point and build ~90deg vector
37
36
  const firstPoint = clickSequence[0];
38
37
  const selectedGeometry = this.getSelectedGeometry(props);
39
- // @ts-expect-error turf types diff
40
- const feature = turfPolygonToLine(selectedGeometry);
38
+ const feature = turfPolygonToLine(selectedGeometry as PolygonGeometry);
41
39
 
42
40
  const lines = feature.type === 'FeatureCollection' ? feature.features : [feature];
43
41
  let minDistance = Number.MAX_SAFE_INTEGER;
44
- let closestPoint: NearestPointOnLine | null = null;
42
+ let closestPoint: ReturnType<typeof nearestPointOnLine> | null = null;
45
43
  // If Multipolygon, then we should find nearest polygon line and stick split to it.
46
44
  lines.forEach((line) => {
47
45
  const snapPoint = nearestPointOnLine(line, firstPoint);
@@ -55,7 +53,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
55
53
  if (closestPoint) {
56
54
  // closest point is used as 90degree entry to the polygon
57
55
  const lastBearing = turfBearing(firstPoint, closestPoint);
58
- const currentDistance = turfDistance(firstPoint, mapCoords, {units: 'meters'});
56
+ const currentDistance = turfDistance(firstPoint, mapCoords, { units: 'meters' });
59
57
  return turfDestination(firstPoint, currentDistance, lastBearing, {
60
58
  units: 'meters'
61
59
  }).geometry.coordinates;
@@ -75,7 +73,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
75
73
  return nearestPt;
76
74
  }
77
75
 
78
- getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {
76
+ getGuides(props: ModeProps<SimpleFeatureCollection>): GuideFeatureCollection {
79
77
  const clickSequence = this.getClickSequence();
80
78
 
81
79
  const guides: GuideFeatureCollection = {
@@ -104,7 +102,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
104
102
  return guides;
105
103
  }
106
104
 
107
- handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
105
+ handleClick(event: ClickEvent, props: ModeProps<SimpleFeatureCollection>) {
108
106
  const tentativeFeature = this.getTentativeGuide(props);
109
107
 
110
108
  const selectedGeometry = this.getSelectedGeometry(props);
@@ -129,8 +127,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
129
127
  coordinates: clickSequence[clickSequence.length - 1]
130
128
  };
131
129
 
132
- // @ts-expect-error turf types diff
133
- const isPointInPolygon = booleanPointInPolygon(pt, selectedGeometry);
130
+ const isPointInPolygon = booleanPointInPolygon(pt, selectedGeometry as PolygonGeometry);
134
131
  if (clickSequence.length > 1 && tentativeFeature && !isPointInPolygon) {
135
132
  this.resetClickSequence();
136
133
  // @ts-expect-error narrow type
@@ -151,7 +148,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
151
148
  props.onUpdateCursor('cell');
152
149
  }
153
150
 
154
- splitPolygon(tentativeFeature: TentativeFeature, props: ModeProps<FeatureCollection>) {
151
+ splitPolygon(tentativeFeature: TentativeFeature, props: ModeProps<SimpleFeatureCollection>) {
155
152
  const selectedGeometry = this.getSelectedGeometry(props);
156
153
  const featureIndex = props.selectedIndexes[0];
157
154
  const modeConfig = props.modeConfig || {};
@@ -164,8 +161,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
164
161
  }
165
162
 
166
163
  const buffer = turfBuffer(tentativeFeature, gap, {units});
167
- // @ts-expect-error turf types diff
168
- const updatedGeometry = turfDifference(selectedGeometry, buffer);
164
+ const updatedGeometry = turfDifference(featureCollection([turfFeature(selectedGeometry as PolygonGeometry), buffer]));
169
165
  if (!updatedGeometry) {
170
166
  // eslint-disable-next-line no-console,no-undef
171
167
  console.warn('Canceling edit. Split Polygon erased');
@@ -9,12 +9,12 @@ import {
9
9
  GuideFeatureCollection,
10
10
  TentativeFeature
11
11
  } from './types';
12
- import {Position, Polygon, FeatureOf, FeatureCollection} from '../utils/geojson-types';
12
+ import {Position, Polygon, Feature, FeatureCollection, SimpleFeatureCollection} from '../utils/geojson-types';
13
13
  import {GeoJsonEditMode} from './geojson-edit-mode';
14
14
  import omit from 'lodash.omit';
15
15
 
16
16
  export class ThreeClickPolygonMode extends GeoJsonEditMode {
17
- handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
17
+ handleClick(event: ClickEvent, props: ModeProps<SimpleFeatureCollection>) {
18
18
  this.addClickSequence(event);
19
19
  const clickSequence = this.getClickSequence();
20
20
  const tentativeFeature = this.getTentativeGuide(props);
@@ -91,7 +91,7 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
91
91
  coord2: Position,
92
92
  coord3: Position,
93
93
  modeConfig: any
94
- ): FeatureOf<Polygon> | null | undefined {
94
+ ): Feature<Polygon> | null | undefined {
95
95
  return null;
96
96
  }
97
97
 
@@ -5,10 +5,9 @@
5
5
  import turfBearing from '@turf/bearing';
6
6
  import turfDistance from '@turf/distance';
7
7
  import clone from '@turf/clone';
8
- import type {Feature as TurfFeature, Geometry as TurfGeometry} from '@turf/helpers';
9
8
  import {point} from '@turf/helpers';
10
9
  import {WebMercatorViewport} from 'viewport-mercator-project';
11
- import {FeatureCollection, Position, Geometry} from '../utils/geojson-types';
10
+ import {FeatureCollection, Position, SimpleGeometry, SimpleFeatureCollection} from '../utils/geojson-types';
12
11
  import {
13
12
  PointerMoveEvent,
14
13
  StartDraggingEvent,
@@ -22,10 +21,10 @@ import {GeoJsonEditMode, GeoJsonEditAction} from './geojson-edit-mode';
22
21
  import {ImmutableFeatureCollection} from './immutable-feature-collection';
23
22
 
24
23
  export class TranslateMode extends GeoJsonEditMode {
25
- _geometryBeforeTranslate: FeatureCollection | null | undefined;
24
+ _geometryBeforeTranslate: SimpleFeatureCollection | null | undefined;
26
25
  _isTranslatable: boolean = undefined!;
27
26
 
28
- handleDragging(event: DraggingEvent, props: ModeProps<FeatureCollection>) {
27
+ handleDragging(event: DraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
29
28
  if (!this._isTranslatable) {
30
29
  // Nothing to do
31
30
  return;
@@ -55,7 +54,7 @@ export class TranslateMode extends GeoJsonEditMode {
55
54
  this.updateCursor(props);
56
55
  }
57
56
 
58
- handleStartDragging(event: StartDraggingEvent, props: ModeProps<FeatureCollection>) {
57
+ handleStartDragging(event: StartDraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
59
58
  if (!this._isTranslatable) {
60
59
  return;
61
60
  }
@@ -64,7 +63,7 @@ export class TranslateMode extends GeoJsonEditMode {
64
63
  this._geometryBeforeTranslate = this.getSelectedFeaturesAsFeatureCollection(props);
65
64
  }
66
65
 
67
- handleStopDragging(event: StopDraggingEvent, props: ModeProps<FeatureCollection>) {
66
+ handleStopDragging(event: StopDraggingEvent, props: ModeProps<SimpleFeatureCollection>) {
68
67
  if (this._geometryBeforeTranslate) {
69
68
  // Translate the geometry
70
69
  const editAction = this.getTranslateAction(
@@ -95,7 +94,7 @@ export class TranslateMode extends GeoJsonEditMode {
95
94
  startDragPoint: Position,
96
95
  currentPoint: Position,
97
96
  editType: string,
98
- props: ModeProps<FeatureCollection>
97
+ props: ModeProps<SimpleFeatureCollection>
99
98
  ): GeoJsonEditAction | null | undefined {
100
99
  if (!this._geometryBeforeTranslate) {
101
100
  return null;
@@ -131,11 +130,10 @@ export class TranslateMode extends GeoJsonEditMode {
131
130
  return null;
132
131
  });
133
132
 
134
- // @ts-expect-error turf types
135
133
  updatedData = updatedData.replaceGeometry(selectedIndex, {
136
134
  type: feature.geometry.type,
137
- coordinates
138
- });
135
+ coordinates,
136
+ } as SimpleGeometry);
139
137
  }
140
138
  }
141
139
  } else {
@@ -146,13 +144,13 @@ export class TranslateMode extends GeoJsonEditMode {
146
144
  const direction = turfBearing(p1, p2);
147
145
 
148
146
  const movedFeatures = this._geometryBeforeTranslate.features.map((feature) =>
149
- translateFromCenter(clone(feature as TurfFeature<TurfGeometry>), distanceMoved, direction)
147
+ translateFromCenter(clone(feature), distanceMoved, direction)
150
148
  );
151
149
 
152
150
  for (let i = 0; i < selectedIndexes.length; i++) {
153
151
  const selectedIndex = selectedIndexes[i];
154
152
  const movedFeature = movedFeatures[i];
155
- updatedData = updatedData.replaceGeometry(selectedIndex, movedFeature.geometry as Geometry);
153
+ updatedData = updatedData.replaceGeometry(selectedIndex, movedFeature.geometry);
156
154
  }
157
155
  }
158
156
 
@@ -11,12 +11,12 @@ import {
11
11
  GuideFeatureCollection,
12
12
  TentativeFeature
13
13
  } from './types';
14
- import {Polygon, FeatureCollection, FeatureOf, Position} from '../utils/geojson-types';
14
+ import {Polygon, FeatureCollection, Feature, Position, SimpleFeatureCollection} from '../utils/geojson-types';
15
15
  import {GeoJsonEditMode} from './geojson-edit-mode';
16
16
  import omit from 'lodash.omit';
17
17
 
18
18
  export class TwoClickPolygonMode extends GeoJsonEditMode {
19
- handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
19
+ handleClick(event: ClickEvent, props: ModeProps<SimpleFeatureCollection>) {
20
20
  if (props.modeConfig && props.modeConfig.dragToDraw) {
21
21
  // handled in drag handlers
22
22
  return;
@@ -27,7 +27,7 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
27
27
  this.checkAndFinishPolygon(props);
28
28
  }
29
29
 
30
- handleStartDragging(event: StartDraggingEvent, props: ModeProps<FeatureCollection>): void {
30
+ handleStartDragging(event: StartDraggingEvent, props: ModeProps<SimpleFeatureCollection>): void {
31
31
  if (!props.modeConfig || !props.modeConfig.dragToDraw) {
32
32
  // handled in click handlers
33
33
  return;
@@ -37,7 +37,7 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
37
37
  event.cancelPan();
38
38
  }
39
39
 
40
- handleStopDragging(event: StopDraggingEvent, props: ModeProps<FeatureCollection>): void {
40
+ handleStopDragging(event: StopDraggingEvent, props: ModeProps<SimpleFeatureCollection>): void {
41
41
  if (!props.modeConfig || !props.modeConfig.dragToDraw) {
42
42
  // handled in click handlers
43
43
  return;
@@ -47,7 +47,7 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
47
47
  this.checkAndFinishPolygon(props);
48
48
  }
49
49
 
50
- checkAndFinishPolygon(props: ModeProps<FeatureCollection>) {
50
+ checkAndFinishPolygon(props: ModeProps<SimpleFeatureCollection>) {
51
51
  const clickSequence = this.getClickSequence();
52
52
  const tentativeFeature = this.getTentativeGuide(props);
53
53
 
@@ -56,7 +56,7 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
56
56
  tentativeFeature &&
57
57
  tentativeFeature.geometry.type === 'Polygon'
58
58
  ) {
59
- const feature: FeatureOf<Polygon> = {
59
+ const feature: Feature<Polygon> = {
60
60
  type: 'Feature',
61
61
  properties: omit(tentativeFeature.properties, 'guideType'),
62
62
  geometry: {
@@ -110,7 +110,7 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
110
110
  coord1: Position,
111
111
  coord2: Position,
112
112
  modeConfig: any
113
- ): FeatureOf<Polygon> | null | undefined {
113
+ ): Feature<Polygon> | null | undefined {
114
114
  return null;
115
115
  }
116
116
 
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import {Position, Point, Geometry, FeatureWithProps} from '../utils/geojson-types';
5
+ import {Position, Point, SimpleGeometry, Feature} from '../utils/geojson-types';
6
6
 
7
7
  export type ScreenCoordinates = [number, number];
8
8
 
@@ -92,7 +92,7 @@ export type EditHandleType =
92
92
  | 'scale'
93
93
  | 'rotate';
94
94
 
95
- export type EditHandleFeature = FeatureWithProps<
95
+ export type EditHandleFeature = Feature<
96
96
  Point,
97
97
  {
98
98
  guideType: 'editHandle';
@@ -103,8 +103,8 @@ export type EditHandleFeature = FeatureWithProps<
103
103
  }
104
104
  >;
105
105
 
106
- export type TentativeFeature = FeatureWithProps<
107
- Geometry,
106
+ export type TentativeFeature = Feature<
107
+ SimpleGeometry,
108
108
  {
109
109
  guideType: 'tentative';
110
110
  shape?: string;
@@ -8,23 +8,21 @@ import destination from '@turf/destination';
8
8
  import bearing from '@turf/bearing';
9
9
  import pointToLineDistance from '@turf/point-to-line-distance';
10
10
  import {flattenEach} from '@turf/meta';
11
- // import type {MultiLineString} from '@turf/helpers';
12
11
  import {point} from '@turf/helpers';
13
12
  import {getCoords} from '@turf/invariant';
14
13
  import {WebMercatorViewport} from 'viewport-mercator-project';
15
14
  import {Viewport, Pick, EditHandleFeature, EditHandleType, StartDraggingEvent} from './types';
16
15
  import {
17
- Geometry,
16
+ SimpleGeometry,
18
17
  Position,
19
18
  Point,
20
19
  LineString,
21
20
  Polygon,
22
- FeatureOf,
23
- FeatureWithProps,
24
- AnyCoordinates
21
+ Feature,
22
+ SimpleGeometryCoordinates
25
23
  } from '../utils/geojson-types';
26
24
 
27
- export type NearestPointType = FeatureWithProps<Point, {dist: number; index: number}>;
25
+ export type NearestPointType = Feature<Point, {dist: number; index: number}>;
28
26
 
29
27
  export function toDeckColor(
30
28
  color?: [number, number, number, number] | number,
@@ -119,8 +117,8 @@ export function mix(a: number, b: number, ratio: number): number {
119
117
  }
120
118
 
121
119
  export function nearestPointOnProjectedLine(
122
- line: FeatureOf<LineString>,
123
- inPoint: FeatureOf<Point>,
120
+ line: Feature<LineString>,
121
+ inPoint: Feature<Point>,
124
122
  viewport: Viewport
125
123
  ): NearestPointType {
126
124
  const wmViewport = new WebMercatorViewport(viewport);
@@ -187,8 +185,8 @@ export function nearestPointOnProjectedLine(
187
185
  }
188
186
 
189
187
  export function nearestPointOnLine( // <G extends LineString | MultiLineString>(
190
- lines: FeatureOf<LineString>,
191
- inPoint: FeatureOf<Point>,
188
+ lines: Feature<LineString>,
189
+ inPoint: Feature<Point>,
192
190
  viewport?: Viewport
193
191
  ): NearestPointType {
194
192
  let mercator;
@@ -204,11 +202,9 @@ export function nearestPointOnLine( // <G extends LineString | MultiLineString>(
204
202
  return closestPoint;
205
203
  }
206
204
 
207
- // @ts-expect-error TODO
208
205
  // eslint-disable-next-line max-statements, complexity
209
206
  flattenEach(lines, (line: any) => {
210
207
  const coords: any = getCoords(line);
211
- // @ts-expect-error TODO
212
208
  const pointCoords: any = getCoords(inPoint);
213
209
 
214
210
  let minDist;
@@ -369,7 +365,7 @@ export function getPickedEditHandles(picks: Pick[] | null | undefined): EditHand
369
365
  }
370
366
 
371
367
  export function getEditHandlesForGeometry(
372
- geometry: Geometry,
368
+ geometry: SimpleGeometry,
373
369
  featureIndex: number,
374
370
  editHandleType: EditHandleType = 'existing'
375
371
  ): EditHandleFeature[] {
@@ -474,7 +470,7 @@ function getEditHandlesForCoordinates(
474
470
  * @returns Updated coordinates.
475
471
  */
476
472
  export function updateRectanglePosition(
477
- feature: FeatureOf<Polygon>,
473
+ feature: Feature<Polygon>,
478
474
  editHandleIndex: number,
479
475
  coords: Position
480
476
  ): Position[][] | null {
@@ -501,9 +497,9 @@ export function updateRectanglePosition(
501
497
  * @retuns Transformed coordinates.
502
498
  */
503
499
  export function mapCoords(
504
- coords: AnyCoordinates,
500
+ coords: SimpleGeometryCoordinates,
505
501
  callback: (coords: Position) => Position
506
- ): AnyCoordinates {
502
+ ): SimpleGeometryCoordinates {
507
503
  if (typeof coords[0] === 'number') {
508
504
  if (!isNaN(coords[0]) && isFinite(coords[0])) {
509
505
  return callback(coords as Position);
@@ -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,10 @@ 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: [this.props.updateTriggers.getLineColor, this.props.selectedFeatureIndexes, this.props.mode],
337
+ getFillColor: [this.props.updateTriggers.getFillColor, this.props.selectedFeatureIndexes, this.props.mode],
338
+ getPointRadius: [this.props.updateTriggers.getPointRadius, this.props.selectedFeatureIndexes, this.props.mode],
339
+ getLineWidth: [this.props.updateTriggers.getLineWidth, this.props.selectedFeatureIndexes, this.props.mode]
339
340
  }
340
341
  });
341
342
 
@@ -414,14 +415,14 @@ export class EditableGeoJsonLayer extends EditableLayer<
414
415
  this.setState({selectedFeatures});
415
416
  }
416
417
 
417
- getModeProps(props: EditableGeoJsonLayerProps<any>) {
418
+ getModeProps<DataT>(props: EditableGeoJsonLayerProps<DataT>): ModeProps<DataT> {
418
419
  return {
419
420
  modeConfig: props.modeConfig,
420
421
  data: props.data,
421
422
  selectedIndexes: props.selectedFeatureIndexes,
422
423
  lastPointerMoveEvent: this.state.lastPointerMoveEvent,
423
424
  cursor: this.state.cursor,
424
- onEdit: (editAction: EditAction<FeatureCollection>) => {
425
+ onEdit: (editAction) => {
425
426
  // Force a re-render
426
427
  // This supports double-click where we need to ensure that there's a re-render between the two clicks
427
428
  // even though the data wasn't changed, just the internal tentative feature.
@@ -551,7 +552,7 @@ export class EditableGeoJsonLayer extends EditableLayer<
551
552
 
552
553
  createTooltipsLayers() {
553
554
  const mode = this.getActiveMode();
554
- const tooltips = mode.getTooltips(this.getModeProps(this.props) as any);
555
+ const tooltips = mode.getTooltips(this.getModeProps(this.props));
555
556
 
556
557
  const layer = new TextLayer({
557
558
  getSize: DEFAULT_TOOLTIP_FONT_SIZE,
@@ -565,34 +566,34 @@ export class EditableGeoJsonLayer extends EditableLayer<
565
566
  }
566
567
 
567
568
  onLayerClick(event: ClickEvent): void {
568
- this.getActiveMode().handleClick(event, this.getModeProps(this.props) as any);
569
+ this.getActiveMode().handleClick(event, this.getModeProps(this.props));
569
570
  }
570
571
 
571
572
  onLayerDoubleClick(event: DoubleClickEvent): void {
572
573
  if (this.getActiveMode().handleDoubleClick) {
573
- this.getActiveMode().handleDoubleClick(event, this.getModeProps(this.props) as any);
574
+ this.getActiveMode().handleDoubleClick(event, this.getModeProps(this.props));
574
575
  }
575
576
  }
576
577
 
577
578
  onLayerKeyUp(event: KeyboardEvent): void {
578
- this.getActiveMode().handleKeyUp(event, this.getModeProps(this.props) as any);
579
+ this.getActiveMode().handleKeyUp(event, this.getModeProps(this.props));
579
580
  }
580
581
 
581
582
  onStartDragging(event: StartDraggingEvent): void {
582
- this.getActiveMode().handleStartDragging(event, this.getModeProps(this.props) as any);
583
+ this.getActiveMode().handleStartDragging(event, this.getModeProps(this.props));
583
584
  }
584
585
 
585
586
  onDragging(event: DraggingEvent): void {
586
- this.getActiveMode().handleDragging(event, this.getModeProps(this.props) as any);
587
+ this.getActiveMode().handleDragging(event, this.getModeProps(this.props));
587
588
  }
588
589
 
589
590
  onStopDragging(event: StopDraggingEvent): void {
590
- this.getActiveMode().handleStopDragging(event, this.getModeProps(this.props) as any);
591
+ this.getActiveMode().handleStopDragging(event, this.getModeProps(this.props));
591
592
  }
592
593
 
593
594
  onPointerMove(event: PointerMoveEvent): void {
594
595
  this.setState({lastPointerMoveEvent: event});
595
- this.getActiveMode().handlePointerMove(event, this.getModeProps(this.props) as any);
596
+ this.getActiveMode().handlePointerMove(event, this.getModeProps(this.props));
596
597
  }
597
598
 
598
599
  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
 
@@ -53,10 +38,12 @@ export type {GeoJsonEditModeType} from './edit-modes/geojson-edit-mode';
53
38
  export type {GeoJsonEditModeConstructor} from './edit-modes/geojson-edit-mode';
54
39
 
55
40
  export type {EditableGeoJsonLayerProps} from './editable-layers/editable-geojson-layer';
41
+ export type {SelectionLayerProps} from './editable-layers/selection-layer';
56
42
 
57
43
  export {GeoJsonEditMode} from './edit-modes/geojson-edit-mode';
58
44
 
59
45
  // Alter modes
46
+ export {DeleteMode} from './edit-modes/delete-mode';
60
47
  export {ModifyMode} from './edit-modes/modify-mode';
61
48
  export {ResizeCircleMode} from './edit-modes/resize-circle-mode';
62
49
  export {TranslateMode} from './edit-modes/translate-mode';
@@ -111,25 +98,18 @@ export type {
111
98
 
112
99
  export type {
113
100
  Position,
114
- PointCoordinates,
115
- LineStringCoordinates,
116
- PolygonCoordinates,
117
- MultiPointCoordinates,
118
- MultiLineStringCoordinates,
119
- MultiPolygonCoordinates,
120
- AnyCoordinates,
101
+ SimpleFeature,
102
+ SimpleFeatureCollection,
103
+ SimpleGeometry,
104
+ SimpleGeometryCoordinates,
121
105
  Point,
122
106
  LineString,
123
107
  Polygon,
124
108
  MultiPoint,
125
109
  MultiLineString,
126
110
  MultiPolygon,
127
- Geometry,
128
- Polygonal,
129
- BoundingBoxArray,
130
- FeatureOf,
131
- FeatureWithProps,
132
- // Feature,
111
+ PolygonGeometry,
112
+ Feature,
133
113
  FeatureCollection,
134
114
  AnyGeoJson
135
115
  } 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
  }