@deck.gl-community/editable-layers 9.0.0-alpha.1 → 9.0.3

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 (389) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +2 -81
  3. package/dist/constants.d.ts +1 -0
  4. package/dist/constants.d.ts.map +1 -0
  5. package/dist/constants.js +4 -1
  6. package/dist/edit-modes/composite-mode.d.ts +4 -3
  7. package/dist/edit-modes/composite-mode.d.ts.map +1 -0
  8. package/dist/edit-modes/composite-mode.js +5 -2
  9. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts +4 -3
  10. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts.map +1 -0
  11. package/dist/edit-modes/draw-90degree-polygon-mode.js +30 -25
  12. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +4 -3
  13. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts.map +1 -0
  14. package/dist/edit-modes/draw-circle-by-diameter-mode.js +9 -6
  15. package/dist/edit-modes/draw-circle-from-center-mode.d.ts +4 -3
  16. package/dist/edit-modes/draw-circle-from-center-mode.d.ts.map +1 -0
  17. package/dist/edit-modes/draw-circle-from-center-mode.js +8 -5
  18. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +3 -2
  19. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts.map +1 -0
  20. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +5 -2
  21. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +3 -2
  22. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts.map +1 -0
  23. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +5 -2
  24. package/dist/edit-modes/draw-line-string-mode.d.ts +4 -3
  25. package/dist/edit-modes/draw-line-string-mode.d.ts.map +1 -0
  26. package/dist/edit-modes/draw-line-string-mode.js +21 -18
  27. package/dist/edit-modes/draw-point-mode.d.ts +4 -3
  28. package/dist/edit-modes/draw-point-mode.d.ts.map +1 -0
  29. package/dist/edit-modes/draw-point-mode.js +8 -5
  30. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +4 -3
  31. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts.map +1 -0
  32. package/dist/edit-modes/draw-polygon-by-dragging-mode.js +12 -7
  33. package/dist/edit-modes/draw-polygon-mode.d.ts +4 -3
  34. package/dist/edit-modes/draw-polygon-mode.d.ts.map +1 -0
  35. package/dist/edit-modes/draw-polygon-mode.js +22 -18
  36. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +3 -2
  37. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -0
  38. package/dist/edit-modes/draw-rectangle-from-center-mode.js +4 -1
  39. package/dist/edit-modes/draw-rectangle-mode.d.ts +3 -2
  40. package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -0
  41. package/dist/edit-modes/draw-rectangle-mode.js +4 -1
  42. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +3 -2
  43. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -0
  44. package/dist/edit-modes/draw-rectangle-using-three-points-mode.js +10 -7
  45. package/dist/edit-modes/draw-square-from-center-mode.d.ts +3 -2
  46. package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -0
  47. package/dist/edit-modes/draw-square-from-center-mode.js +4 -1
  48. package/dist/edit-modes/draw-square-mode.d.ts +3 -2
  49. package/dist/edit-modes/draw-square-mode.d.ts.map +1 -0
  50. package/dist/edit-modes/draw-square-mode.js +4 -1
  51. package/dist/edit-modes/duplicate-mode.d.ts +4 -3
  52. package/dist/edit-modes/duplicate-mode.d.ts.map +1 -0
  53. package/dist/edit-modes/duplicate-mode.js +4 -1
  54. package/dist/edit-modes/edit-mode.d.ts +2 -1
  55. package/dist/edit-modes/edit-mode.d.ts.map +1 -0
  56. package/dist/edit-modes/edit-mode.js +3 -1
  57. package/dist/edit-modes/elevation-mode.d.ts +5 -4
  58. package/dist/edit-modes/elevation-mode.d.ts.map +1 -0
  59. package/dist/edit-modes/elevation-mode.js +10 -7
  60. package/dist/edit-modes/extend-line-string-mode.d.ts +4 -3
  61. package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -0
  62. package/dist/edit-modes/extend-line-string-mode.js +11 -8
  63. package/dist/edit-modes/extrude-mode.d.ts +4 -3
  64. package/dist/edit-modes/extrude-mode.d.ts.map +1 -0
  65. package/dist/edit-modes/extrude-mode.js +12 -9
  66. package/dist/edit-modes/geojson-edit-mode.d.ts +4 -3
  67. package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -0
  68. package/dist/edit-modes/geojson-edit-mode.js +20 -17
  69. package/dist/edit-modes/immutable-feature-collection.d.ts +3 -1
  70. package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -0
  71. package/dist/edit-modes/immutable-feature-collection.js +25 -20
  72. package/dist/edit-modes/measure-angle-mode.d.ts +4 -3
  73. package/dist/edit-modes/measure-angle-mode.d.ts.map +1 -0
  74. package/dist/edit-modes/measure-angle-mode.js +9 -9
  75. package/dist/edit-modes/measure-area-mode.d.ts +4 -3
  76. package/dist/edit-modes/measure-area-mode.d.ts.map +1 -0
  77. package/dist/edit-modes/measure-area-mode.js +8 -6
  78. package/dist/edit-modes/measure-distance-mode.d.ts +4 -3
  79. package/dist/edit-modes/measure-distance-mode.d.ts.map +1 -0
  80. package/dist/edit-modes/measure-distance-mode.js +19 -16
  81. package/dist/edit-modes/modify-mode.d.ts +5 -4
  82. package/dist/edit-modes/modify-mode.d.ts.map +1 -0
  83. package/dist/edit-modes/modify-mode.js +19 -16
  84. package/dist/edit-modes/resize-circle-mode.d.ts +6 -5
  85. package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -0
  86. package/dist/edit-modes/resize-circle-mode.js +6 -4
  87. package/dist/edit-modes/rotate-mode.d.ts +4 -3
  88. package/dist/edit-modes/rotate-mode.d.ts.map +1 -0
  89. package/dist/edit-modes/rotate-mode.js +11 -8
  90. package/dist/edit-modes/scale-mode.d.ts +4 -3
  91. package/dist/edit-modes/scale-mode.d.ts.map +1 -0
  92. package/dist/edit-modes/scale-mode.js +11 -8
  93. package/dist/edit-modes/snappable-mode.d.ts +4 -3
  94. package/dist/edit-modes/snappable-mode.d.ts.map +1 -0
  95. package/dist/edit-modes/snappable-mode.js +9 -6
  96. package/dist/edit-modes/split-polygon-mode.d.ts +4 -3
  97. package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -0
  98. package/dist/edit-modes/split-polygon-mode.js +15 -12
  99. package/dist/edit-modes/three-click-polygon-mode.d.ts +4 -3
  100. package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -0
  101. package/dist/edit-modes/three-click-polygon-mode.js +10 -7
  102. package/dist/edit-modes/transform-mode.d.ts +4 -3
  103. package/dist/edit-modes/transform-mode.d.ts.map +1 -0
  104. package/dist/edit-modes/transform-mode.js +8 -5
  105. package/dist/edit-modes/translate-mode.d.ts +4 -3
  106. package/dist/edit-modes/translate-mode.d.ts.map +1 -0
  107. package/dist/edit-modes/translate-mode.js +10 -7
  108. package/dist/edit-modes/two-click-polygon-mode.d.ts +4 -3
  109. package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -0
  110. package/dist/edit-modes/two-click-polygon-mode.js +10 -7
  111. package/dist/edit-modes/types.d.ts +2 -1
  112. package/dist/edit-modes/types.d.ts.map +1 -0
  113. package/dist/edit-modes/types.js +3 -0
  114. package/dist/edit-modes/utils.d.ts +3 -2
  115. package/dist/edit-modes/utils.d.ts.map +1 -0
  116. package/dist/edit-modes/utils.js +22 -19
  117. package/dist/edit-modes/view-mode.d.ts +2 -1
  118. package/dist/edit-modes/view-mode.d.ts.map +1 -0
  119. package/dist/edit-modes/view-mode.js +4 -1
  120. package/dist/editable-layers/editable-geojson-layer.d.ts +7 -6
  121. package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -0
  122. package/dist/editable-layers/editable-geojson-layer.js +53 -52
  123. package/dist/editable-layers/editable-h3-cluster-layer.d.ts +3 -2
  124. package/dist/editable-layers/editable-h3-cluster-layer.d.ts.map +1 -0
  125. package/dist/editable-layers/editable-h3-cluster-layer.js +8 -5
  126. package/dist/editable-layers/editable-layer.d.ts +7 -6
  127. package/dist/editable-layers/editable-layer.d.ts.map +1 -0
  128. package/dist/editable-layers/editable-layer.js +18 -15
  129. package/dist/editable-layers/editable-path-layer.d.ts +2 -1
  130. package/dist/editable-layers/editable-path-layer.d.ts.map +1 -0
  131. package/dist/editable-layers/editable-path-layer.js +10 -7
  132. package/dist/editable-layers/elevated-edit-handle-layer.d.ts +2 -1
  133. package/dist/editable-layers/elevated-edit-handle-layer.d.ts.map +1 -0
  134. package/dist/editable-layers/elevated-edit-handle-layer.js +6 -3
  135. package/dist/editable-layers/junction-scatterplot-layer.d.ts +3 -2
  136. package/dist/editable-layers/junction-scatterplot-layer.d.ts.map +1 -0
  137. package/dist/editable-layers/junction-scatterplot-layer.js +10 -7
  138. package/dist/editable-layers/selection-layer.d.ts +2 -1
  139. package/dist/editable-layers/selection-layer.d.ts.map +1 -0
  140. package/dist/editable-layers/selection-layer.js +8 -5
  141. package/dist/index.cjs +70 -542
  142. package/dist/index.cjs.map +4 -4
  143. package/dist/index.d.ts +59 -59
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +56 -54
  146. package/dist/lib/constants.d.ts +1 -0
  147. package/dist/lib/constants.d.ts.map +1 -0
  148. package/dist/lib/constants.js +3 -0
  149. package/dist/lib/deck-renderer/deck-cache.d.ts +2 -1
  150. package/dist/lib/deck-renderer/deck-cache.d.ts.map +1 -0
  151. package/dist/lib/deck-renderer/deck-cache.js +1 -1
  152. package/dist/lib/deck-renderer/deck-drawer.d.ts +3 -3
  153. package/dist/lib/deck-renderer/deck-drawer.d.ts.map +1 -0
  154. package/dist/lib/deck-renderer/deck-drawer.js +12 -12
  155. package/dist/lib/feature.d.ts +5 -4
  156. package/dist/lib/feature.d.ts.map +1 -0
  157. package/dist/lib/feature.js +4 -1
  158. package/dist/lib/layer-mouse-event.d.ts +3 -2
  159. package/dist/lib/layer-mouse-event.d.ts.map +1 -0
  160. package/dist/lib/layer-mouse-event.js +4 -1
  161. package/dist/lib/layers/junctions-layer.d.ts +5 -4
  162. package/dist/lib/layers/junctions-layer.d.ts.map +1 -0
  163. package/dist/lib/layers/junctions-layer.js +10 -7
  164. package/dist/lib/layers/segments-layer.d.ts +5 -4
  165. package/dist/lib/layers/segments-layer.d.ts.map +1 -0
  166. package/dist/lib/layers/segments-layer.js +12 -9
  167. package/dist/lib/layers/texts-layer.d.ts +4 -3
  168. package/dist/lib/layers/texts-layer.d.ts.map +1 -0
  169. package/dist/lib/layers/texts-layer.js +9 -6
  170. package/dist/lib/math.d.ts +2 -1
  171. package/dist/lib/math.d.ts.map +1 -0
  172. package/dist/lib/math.js +3 -0
  173. package/dist/lib/{nebula.d.ts → nebula-core.d.ts} +3 -2
  174. package/dist/lib/nebula-core.d.ts.map +1 -0
  175. package/dist/lib/{nebula.js → nebula-core.js} +7 -4
  176. package/dist/lib/nebula-layer.d.ts +3 -2
  177. package/dist/lib/nebula-layer.d.ts.map +1 -0
  178. package/dist/lib/nebula-layer.js +4 -1
  179. package/dist/lib/style.d.ts +1 -0
  180. package/dist/lib/style.d.ts.map +1 -0
  181. package/dist/lib/style.js +5 -2
  182. package/dist/mode-handlers/composite-mode-handler.d.ts +4 -3
  183. package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -0
  184. package/dist/mode-handlers/composite-mode-handler.js +1 -1
  185. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts +4 -3
  186. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -0
  187. package/dist/mode-handlers/draw-90degree-polygon-handler.js +13 -10
  188. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts +4 -3
  189. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -0
  190. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +5 -2
  191. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts +4 -3
  192. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -0
  193. package/dist/mode-handlers/draw-circle-from-center-handler.js +4 -1
  194. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts +4 -3
  195. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -0
  196. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +5 -2
  197. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts +4 -3
  198. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -0
  199. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +7 -4
  200. package/dist/mode-handlers/draw-line-string-handler.d.ts +3 -2
  201. package/dist/mode-handlers/draw-line-string-handler.d.ts.map +1 -0
  202. package/dist/mode-handlers/draw-line-string-handler.js +8 -5
  203. package/dist/mode-handlers/draw-point-handler.d.ts +3 -2
  204. package/dist/mode-handlers/draw-point-handler.d.ts.map +1 -0
  205. package/dist/mode-handlers/draw-point-handler.js +5 -2
  206. package/dist/mode-handlers/draw-polygon-handler.d.ts +4 -3
  207. package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -0
  208. package/dist/mode-handlers/draw-polygon-handler.js +10 -7
  209. package/dist/mode-handlers/draw-rectangle-handler.d.ts +4 -3
  210. package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -0
  211. package/dist/mode-handlers/draw-rectangle-handler.js +4 -1
  212. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts +4 -3
  213. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -0
  214. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +12 -9
  215. package/dist/mode-handlers/duplicate-handler.d.ts +4 -3
  216. package/dist/mode-handlers/duplicate-handler.d.ts.map +1 -0
  217. package/dist/mode-handlers/duplicate-handler.js +4 -1
  218. package/dist/mode-handlers/elevation-handler.d.ts +6 -5
  219. package/dist/mode-handlers/elevation-handler.d.ts.map +1 -0
  220. package/dist/mode-handlers/elevation-handler.js +10 -7
  221. package/dist/mode-handlers/extrude-handler.d.ts +4 -3
  222. package/dist/mode-handlers/extrude-handler.d.ts.map +1 -0
  223. package/dist/mode-handlers/extrude-handler.js +12 -9
  224. package/dist/mode-handlers/mode-handler.d.ts +4 -3
  225. package/dist/mode-handlers/mode-handler.d.ts.map +1 -0
  226. package/dist/mode-handlers/mode-handler.js +18 -15
  227. package/dist/mode-handlers/modify-handler.d.ts +5 -4
  228. package/dist/mode-handlers/modify-handler.d.ts.map +1 -0
  229. package/dist/mode-handlers/modify-handler.js +18 -15
  230. package/dist/mode-handlers/rotate-handler.d.ts +4 -3
  231. package/dist/mode-handlers/rotate-handler.d.ts.map +1 -0
  232. package/dist/mode-handlers/rotate-handler.js +5 -2
  233. package/dist/mode-handlers/scale-handler.d.ts +4 -3
  234. package/dist/mode-handlers/scale-handler.d.ts.map +1 -0
  235. package/dist/mode-handlers/scale-handler.js +6 -3
  236. package/dist/mode-handlers/snappable-handler.d.ts +4 -3
  237. package/dist/mode-handlers/snappable-handler.d.ts.map +1 -0
  238. package/dist/mode-handlers/snappable-handler.js +6 -3
  239. package/dist/mode-handlers/split-polygon-handler.d.ts +3 -2
  240. package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -0
  241. package/dist/mode-handlers/split-polygon-handler.js +12 -9
  242. package/dist/mode-handlers/three-click-polygon-handler.d.ts +3 -2
  243. package/dist/mode-handlers/three-click-polygon-handler.d.ts.map +1 -0
  244. package/dist/mode-handlers/three-click-polygon-handler.js +4 -1
  245. package/dist/mode-handlers/translate-handler.d.ts +4 -3
  246. package/dist/mode-handlers/translate-handler.d.ts.map +1 -0
  247. package/dist/mode-handlers/translate-handler.js +5 -2
  248. package/dist/mode-handlers/two-click-polygon-handler.d.ts +3 -2
  249. package/dist/mode-handlers/two-click-polygon-handler.d.ts.map +1 -0
  250. package/dist/mode-handlers/two-click-polygon-handler.js +4 -1
  251. package/dist/mode-handlers/view-handler.d.ts +3 -2
  252. package/dist/mode-handlers/view-handler.d.ts.map +1 -0
  253. package/dist/mode-handlers/view-handler.js +4 -1
  254. package/dist/shaderlib/color/color.d.ts +8 -6
  255. package/dist/shaderlib/color/color.d.ts.map +1 -0
  256. package/dist/shaderlib/color/color.js +7 -4
  257. package/dist/shaderlib/utils/utils.d.ts +3 -2
  258. package/dist/shaderlib/utils/utils.d.ts.map +1 -0
  259. package/dist/shaderlib/utils/utils.js +5 -2
  260. package/dist/{curve-utils.d.ts → utils/curve-utils.d.ts} +1 -0
  261. package/dist/utils/curve-utils.d.ts.map +1 -0
  262. package/dist/{curve-utils.js → utils/curve-utils.js} +7 -4
  263. package/dist/{geojson-types.d.ts → utils/geojson-types.d.ts} +3 -25
  264. package/dist/utils/geojson-types.d.ts.map +1 -0
  265. package/dist/utils/geojson-types.js +4 -0
  266. package/dist/{memoize.d.ts → utils/memoize.d.ts} +2 -1
  267. package/dist/utils/memoize.d.ts.map +1 -0
  268. package/dist/{memoize.js → utils/memoize.js} +4 -1
  269. package/dist/{translateFromCenter.d.ts → utils/translate-from-center.d.ts} +1 -0
  270. package/dist/utils/translate-from-center.d.ts.map +1 -0
  271. package/dist/{translateFromCenter.js → utils/translate-from-center.js} +7 -4
  272. package/dist/{types.d.ts → utils/types.d.ts} +1 -0
  273. package/dist/utils/types.d.ts.map +1 -0
  274. package/dist/utils/types.js +4 -0
  275. package/dist/{utils.d.ts → utils/utils.d.ts} +5 -4
  276. package/dist/utils/utils.d.ts.map +1 -0
  277. package/dist/{utils.js → utils/utils.js} +11 -9
  278. package/package.json +11 -10
  279. package/src/constants.ts +5 -1
  280. package/src/edit-modes/composite-mode.ts +9 -5
  281. package/src/edit-modes/draw-90degree-polygon-mode.ts +38 -34
  282. package/src/edit-modes/draw-circle-by-diameter-mode.ts +16 -12
  283. package/src/edit-modes/draw-circle-from-center-mode.ts +15 -11
  284. package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +8 -4
  285. package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +9 -5
  286. package/src/edit-modes/draw-line-string-mode.ts +29 -25
  287. package/src/edit-modes/draw-point-mode.ts +13 -9
  288. package/src/edit-modes/draw-polygon-by-dragging-mode.ts +16 -16
  289. package/src/edit-modes/draw-polygon-mode.ts +28 -23
  290. package/src/edit-modes/draw-rectangle-from-center-mode.ts +6 -2
  291. package/src/edit-modes/draw-rectangle-mode.ts +6 -2
  292. package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +12 -8
  293. package/src/edit-modes/draw-square-from-center-mode.ts +7 -3
  294. package/src/edit-modes/draw-square-mode.ts +7 -3
  295. package/src/edit-modes/duplicate-mode.ts +7 -3
  296. package/src/edit-modes/edit-mode.ts +5 -1
  297. package/src/edit-modes/elevation-mode.ts +13 -9
  298. package/src/edit-modes/extend-line-string-mode.ts +16 -12
  299. package/src/edit-modes/extrude-mode.ts +22 -18
  300. package/src/edit-modes/geojson-edit-mode.ts +37 -33
  301. package/src/edit-modes/immutable-feature-collection.ts +28 -22
  302. package/src/edit-modes/measure-angle-mode.ts +66 -59
  303. package/src/edit-modes/measure-area-mode.ts +13 -10
  304. package/src/edit-modes/measure-distance-mode.ts +37 -33
  305. package/src/edit-modes/modify-mode.ts +36 -32
  306. package/src/edit-modes/resize-circle-mode.ts +8 -5
  307. package/src/edit-modes/rotate-mode.ts +22 -18
  308. package/src/edit-modes/scale-mode.ts +29 -23
  309. package/src/edit-modes/snappable-mode.ts +19 -15
  310. package/src/edit-modes/split-polygon-mode.ts +25 -21
  311. package/src/edit-modes/three-click-polygon-mode.ts +15 -11
  312. package/src/edit-modes/transform-mode.ts +15 -11
  313. package/src/edit-modes/translate-mode.ts +15 -11
  314. package/src/edit-modes/two-click-polygon-mode.ts +15 -11
  315. package/src/edit-modes/types.ts +5 -1
  316. package/src/edit-modes/utils.ts +35 -30
  317. package/src/edit-modes/view-mode.ts +5 -1
  318. package/src/editable-layers/editable-geojson-layer.ts +44 -41
  319. package/src/editable-layers/editable-h3-cluster-layer.ts +17 -14
  320. package/src/editable-layers/editable-layer.ts +42 -32
  321. package/src/editable-layers/editable-path-layer.ts +12 -8
  322. package/src/editable-layers/elevated-edit-handle-layer.ts +11 -7
  323. package/src/editable-layers/junction-scatterplot-layer.ts +15 -11
  324. package/src/editable-layers/selection-layer.ts +11 -7
  325. package/src/index.ts +68 -65
  326. package/src/lib/constants.ts +4 -0
  327. package/src/lib/deck-renderer/deck-cache.ts +1 -1
  328. package/src/lib/deck-renderer/deck-drawer.ts +28 -28
  329. package/src/lib/feature.ts +7 -3
  330. package/src/lib/layer-mouse-event.ts +7 -6
  331. package/src/lib/layers/junctions-layer.ts +14 -10
  332. package/src/lib/layers/segments-layer.ts +24 -20
  333. package/src/lib/layers/texts-layer.ts +18 -14
  334. package/src/lib/math.ts +5 -1
  335. package/src/lib/{nebula.ts → nebula-core.ts} +8 -4
  336. package/src/lib/nebula-layer.ts +9 -5
  337. package/src/lib/style.ts +6 -2
  338. package/src/mode-handlers/composite-mode-handler.ts +6 -6
  339. package/src/mode-handlers/draw-90degree-polygon-handler.ts +22 -18
  340. package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +10 -6
  341. package/src/mode-handlers/draw-circle-from-center-handler.ts +10 -6
  342. package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +9 -5
  343. package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +12 -8
  344. package/src/mode-handlers/draw-line-string-handler.ts +12 -8
  345. package/src/mode-handlers/draw-point-handler.ts +9 -5
  346. package/src/mode-handlers/draw-polygon-handler.ts +16 -12
  347. package/src/mode-handlers/draw-rectangle-handler.ts +8 -4
  348. package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +17 -13
  349. package/src/mode-handlers/duplicate-handler.ts +8 -4
  350. package/src/mode-handlers/elevation-handler.ts +14 -10
  351. package/src/mode-handlers/extrude-handler.ts +15 -11
  352. package/src/mode-handlers/mode-handler.ts +26 -28
  353. package/src/mode-handlers/modify-handler.ts +29 -25
  354. package/src/mode-handlers/rotate-handler.ts +13 -17
  355. package/src/mode-handlers/scale-handler.ts +13 -13
  356. package/src/mode-handlers/snappable-handler.ts +28 -24
  357. package/src/mode-handlers/split-polygon-handler.ts +22 -18
  358. package/src/mode-handlers/three-click-polygon-handler.ts +6 -2
  359. package/src/mode-handlers/translate-handler.ts +12 -8
  360. package/src/mode-handlers/two-click-polygon-handler.ts +6 -2
  361. package/src/mode-handlers/view-handler.ts +7 -3
  362. package/src/shaderlib/color/color.ts +10 -5
  363. package/src/shaderlib/utils/utils.ts +6 -2
  364. package/src/{curve-utils.ts → utils/curve-utils.ts} +11 -7
  365. package/src/{geojson-types.ts → utils/geojson-types.ts} +16 -31
  366. package/src/{memoize.ts → utils/memoize.ts} +5 -1
  367. package/src/{translateFromCenter.ts → utils/translate-from-center.ts} +12 -8
  368. package/src/{types.ts → utils/types.ts} +4 -0
  369. package/src/{utils.ts → utils/utils.ts} +17 -14
  370. package/dist/editable-layers/path-marker-layer/arrow-2d-geometry.d.ts +0 -4
  371. package/dist/editable-layers/path-marker-layer/arrow-2d-geometry.js +0 -55
  372. package/dist/editable-layers/path-marker-layer/create-path-markers.d.ts +0 -16
  373. package/dist/editable-layers/path-marker-layer/create-path-markers.js +0 -75
  374. package/dist/editable-layers/path-marker-layer/path-marker-layer.d.ts +0 -40
  375. package/dist/editable-layers/path-marker-layer/path-marker-layer.js +0 -121
  376. package/dist/editable-layers/path-marker-layer/polyline.d.ts +0 -18
  377. package/dist/editable-layers/path-marker-layer/polyline.js +0 -37
  378. package/dist/editable-layers/path-outline-layer/path-outline-layer.d.ts +0 -26
  379. package/dist/editable-layers/path-outline-layer/path-outline-layer.js +0 -106
  380. package/dist/geojson-types.js +0 -2
  381. package/dist/shaderlib/outline/outline.d.ts +0 -8
  382. package/dist/shaderlib/outline/outline.js +0 -97
  383. package/dist/types.js +0 -1
  384. package/src/editable-layers/path-marker-layer/arrow-2d-geometry.ts +0 -61
  385. package/src/editable-layers/path-marker-layer/create-path-markers.ts +0 -107
  386. package/src/editable-layers/path-marker-layer/path-marker-layer.ts +0 -179
  387. package/src/editable-layers/path-marker-layer/polyline.ts +0 -40
  388. package/src/editable-layers/path-outline-layer/path-outline-layer.ts +0 -147
  389. package/src/shaderlib/outline/outline.ts +0 -101
@@ -1,4 +1,8 @@
1
- import { Position, Feature, FeatureCollection } from '../geojson-types';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {Position, Feature, FeatureCollection} from '../utils/geojson-types';
2
6
  import {
3
7
  PointerMoveEvent,
4
8
  StartDraggingEvent,
@@ -7,14 +11,14 @@ import {
7
11
  ModeProps,
8
12
  Pick,
9
13
  GuideFeatureCollection,
10
- EditHandleFeature,
14
+ EditHandleFeature
11
15
  } from './types';
12
16
  import {
13
17
  getPickedSnapSourceEditHandle,
14
18
  getPickedEditHandles,
15
- getEditHandlesForGeometry,
19
+ getEditHandlesForGeometry
16
20
  } from './utils';
17
- import { GeoJsonEditMode } from './geojson-edit-mode';
21
+ import {GeoJsonEditMode} from './geojson-edit-mode';
18
22
 
19
23
  type MovementTypeEvent = PointerMoveEvent | StartDraggingEvent | StopDraggingEvent | DraggingEvent;
20
24
 
@@ -33,7 +37,7 @@ export class SnappableMode extends GeoJsonEditMode {
33
37
  ): T {
34
38
  return Object.assign(event, {
35
39
  mapCoords: snapTarget.geometry.coordinates,
36
- pointerDownMapCoords: snapSource && snapSource.geometry.coordinates,
40
+ pointerDownMapCoords: snapSource && snapSource.geometry.coordinates
37
41
  });
38
42
  }
39
43
 
@@ -53,7 +57,7 @@ export class SnappableMode extends GeoJsonEditMode {
53
57
  snapSourceHandle: EditHandleFeature,
54
58
  data: FeatureCollection
55
59
  ): EditHandleFeature {
56
- const { featureIndex, positionIndexes } = snapSourceHandle.properties;
60
+ const {featureIndex, positionIndexes} = snapSourceHandle.properties;
57
61
  if (!Array.isArray(positionIndexes)) {
58
62
  return snapSourceHandle;
59
63
  }
@@ -69,8 +73,8 @@ export class SnappableMode extends GeoJsonEditMode {
69
73
  ...snapSourceHandle,
70
74
  geometry: {
71
75
  type: 'Point',
72
- coordinates: snapSourceCoordinates,
73
- },
76
+ coordinates: snapSourceCoordinates
77
+ }
74
78
  };
75
79
  }
76
80
 
@@ -79,7 +83,7 @@ export class SnappableMode extends GeoJsonEditMode {
79
83
  // that live in the current layer. Otherwise, this method will simply return the
80
84
  // features from the current layer
81
85
  _getSnapTargets(props: ModeProps<FeatureCollection>): Feature[] {
82
- let { additionalSnapTargets } = props.modeConfig || {};
86
+ let {additionalSnapTargets} = props.modeConfig || {};
83
87
  additionalSnapTargets = additionalSnapTargets || [];
84
88
 
85
89
  const features = [...props.data.features, ...additionalSnapTargets];
@@ -95,7 +99,7 @@ export class SnappableMode extends GeoJsonEditMode {
95
99
  const isCurrentIndexFeatureNotSelected = !props.selectedIndexes.includes(i);
96
100
 
97
101
  if (isCurrentIndexFeatureNotSelected) {
98
- const { geometry } = features[i];
102
+ const {geometry} = features[i];
99
103
  handles.push(...getEditHandlesForGeometry(geometry, i, 'snap-target'));
100
104
  }
101
105
  }
@@ -106,12 +110,12 @@ export class SnappableMode extends GeoJsonEditMode {
106
110
  // selected feature. If a snap handle has been picked, display said snap handle
107
111
  // along with all snappable points on all non-selected features.
108
112
  getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {
109
- const { modeConfig, lastPointerMoveEvent } = props;
110
- const { enableSnapping } = modeConfig || {};
113
+ const {modeConfig, lastPointerMoveEvent} = props;
114
+ const {enableSnapping} = modeConfig || {};
111
115
 
112
116
  const guides: GuideFeatureCollection = {
113
117
  type: 'FeatureCollection',
114
- features: [...this._handler.getGuides(props).features],
118
+ features: [...this._handler.getGuides(props).features]
115
119
  };
116
120
 
117
121
  if (!enableSnapping) {
@@ -133,10 +137,10 @@ export class SnappableMode extends GeoJsonEditMode {
133
137
  }
134
138
 
135
139
  // Render the possible snap source handles
136
- const { features } = props.data;
140
+ const {features} = props.data;
137
141
  for (const index of props.selectedIndexes) {
138
142
  if (index < features.length) {
139
- const { geometry } = features[index];
143
+ const {geometry} = features[index];
140
144
  guides.features.push(...getEditHandlesForGeometry(geometry, index, 'snap-source'));
141
145
  }
142
146
  }
@@ -1,24 +1,28 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import booleanPointInPolygon from '@turf/boolean-point-in-polygon';
2
6
  import turfDifference from '@turf/difference';
3
7
  import turfBuffer from '@turf/buffer';
4
8
  import lineIntersect from '@turf/line-intersect';
5
- import { lineString, Point } from '@turf/helpers';
9
+ import {lineString, Point} from '@turf/helpers';
6
10
  import turfBearing from '@turf/bearing';
7
11
  import turfDistance from '@turf/distance';
8
12
  import turfDestination from '@turf/destination';
9
13
  import turfPolygonToLine from '@turf/polygon-to-line';
10
- import nearestPointOnLine, { NearestPointOnLine } from '@turf/nearest-point-on-line';
11
- import { generatePointsParallelToLinePoints } from './utils';
12
- import { FeatureCollection } from '../geojson-types';
14
+ import nearestPointOnLine, {NearestPointOnLine} from '@turf/nearest-point-on-line';
15
+ import {generatePointsParallelToLinePoints} from './utils';
16
+ import {FeatureCollection} from '../utils/geojson-types';
13
17
  import {
14
18
  ClickEvent,
15
19
  PointerMoveEvent,
16
20
  ModeProps,
17
21
  GuideFeatureCollection,
18
- TentativeFeature,
22
+ TentativeFeature
19
23
  } from './types';
20
- import { GeoJsonEditMode, GeoJsonEditAction } from './geojson-edit-mode';
21
- import { ImmutableFeatureCollection } from './immutable-feature-collection';
24
+ import {GeoJsonEditMode, GeoJsonEditAction} from './geojson-edit-mode';
25
+ import {ImmutableFeatureCollection} from './immutable-feature-collection';
22
26
 
23
27
  export class SplitPolygonMode extends GeoJsonEditMode {
24
28
  calculateMapCoords(clickSequence: any, mapCoords: any, props: ModeProps<FeatureCollection>) {
@@ -49,9 +53,9 @@ export class SplitPolygonMode extends GeoJsonEditMode {
49
53
  if (closestPoint) {
50
54
  // closest point is used as 90degree entry to the polygon
51
55
  const lastBearing = turfBearing(firstPoint, closestPoint);
52
- const currentDistance = turfDistance(firstPoint, mapCoords, { units: 'meters' });
56
+ const currentDistance = turfDistance(firstPoint, mapCoords, {units: 'meters'});
53
57
  return turfDestination(firstPoint, currentDistance, lastBearing, {
54
- units: 'meters',
58
+ units: 'meters'
55
59
  }).geometry.coordinates;
56
60
  }
57
61
  return mapCoords;
@@ -74,7 +78,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
74
78
 
75
79
  const guides: GuideFeatureCollection = {
76
80
  type: 'FeatureCollection',
77
- features: [],
81
+ features: []
78
82
  };
79
83
 
80
84
  if (clickSequence.length === 0 || !props.lastPointerMoveEvent) {
@@ -82,17 +86,17 @@ export class SplitPolygonMode extends GeoJsonEditMode {
82
86
  return guides;
83
87
  }
84
88
 
85
- const { mapCoords } = props.lastPointerMoveEvent;
89
+ const {mapCoords} = props.lastPointerMoveEvent;
86
90
 
87
91
  guides.features.push({
88
92
  type: 'Feature',
89
93
  properties: {
90
- guideType: 'tentative',
94
+ guideType: 'tentative'
91
95
  },
92
96
  geometry: {
93
97
  type: 'LineString',
94
- coordinates: [...clickSequence, this.calculateMapCoords(clickSequence, mapCoords, props)],
95
- },
98
+ coordinates: [...clickSequence, this.calculateMapCoords(clickSequence, mapCoords, props)]
99
+ }
96
100
  });
97
101
 
98
102
  return guides;
@@ -120,7 +124,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
120
124
 
121
125
  const pt: Point = {
122
126
  type: 'Point',
123
- coordinates: clickSequence[clickSequence.length - 1],
127
+ coordinates: clickSequence[clickSequence.length - 1]
124
128
  };
125
129
 
126
130
  // @ts-expect-error turf types diff
@@ -151,13 +155,13 @@ export class SplitPolygonMode extends GeoJsonEditMode {
151
155
  const modeConfig = props.modeConfig || {};
152
156
 
153
157
  // Default gap in between the polygon
154
- let { gap = 0.1, units = 'centimeters' } = modeConfig;
158
+ let {gap = 0.1, units = 'centimeters'} = modeConfig;
155
159
  if (gap === 0) {
156
160
  gap = 0.1;
157
161
  units = 'centimeters';
158
162
  }
159
163
 
160
- const buffer = turfBuffer(tentativeFeature, gap, { units });
164
+ const buffer = turfBuffer(tentativeFeature, gap, {units});
161
165
  // @ts-expect-error turf types diff
162
166
  const updatedGeometry = turfDifference(selectedGeometry, buffer);
163
167
  if (!updatedGeometry) {
@@ -166,7 +170,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
166
170
  return null;
167
171
  }
168
172
 
169
- const { type, coordinates } = updatedGeometry.geometry;
173
+ const {type, coordinates} = updatedGeometry.geometry;
170
174
  let updatedCoordinates: any[] = []; // TODO
171
175
  if (type === 'Polygon') {
172
176
  // Update the coordinates as per Multipolygon
@@ -185,15 +189,15 @@ export class SplitPolygonMode extends GeoJsonEditMode {
185
189
  // Update the type to Mulitpolygon
186
190
  const updatedData = new ImmutableFeatureCollection(props.data).replaceGeometry(featureIndex, {
187
191
  type: 'MultiPolygon',
188
- coordinates: updatedCoordinates,
192
+ coordinates: updatedCoordinates
189
193
  });
190
194
 
191
195
  const editAction: GeoJsonEditAction = {
192
196
  updatedData: updatedData.getObject(),
193
197
  editType: 'split',
194
198
  editContext: {
195
- featureIndexes: [featureIndex],
196
- },
199
+ featureIndexes: [featureIndex]
200
+ }
197
201
  };
198
202
 
199
203
  return editAction;
@@ -1,12 +1,16 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {
2
6
  ClickEvent,
3
7
  PointerMoveEvent,
4
8
  ModeProps,
5
9
  GuideFeatureCollection,
6
- TentativeFeature,
10
+ TentativeFeature
7
11
  } from './types';
8
- import { Position, Polygon, FeatureOf, FeatureCollection } from '../geojson-types';
9
- import { GeoJsonEditMode } from './geojson-edit-mode';
12
+ import {Position, Polygon, FeatureOf, FeatureCollection} from '../utils/geojson-types';
13
+ import {GeoJsonEditMode} from './geojson-edit-mode';
10
14
 
11
15
  export class ThreeClickPolygonMode extends GeoJsonEditMode {
12
16
  handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
@@ -29,12 +33,12 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
29
33
  }
30
34
 
31
35
  getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {
32
- const { lastPointerMoveEvent, modeConfig } = props;
36
+ const {lastPointerMoveEvent, modeConfig} = props;
33
37
  const clickSequence = this.getClickSequence();
34
38
 
35
39
  const guides: GuideFeatureCollection = {
36
40
  type: 'FeatureCollection',
37
- features: [],
41
+ features: []
38
42
  };
39
43
 
40
44
  if (clickSequence.length === 0) {
@@ -48,12 +52,12 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
48
52
  guides.features.push({
49
53
  type: 'Feature',
50
54
  properties: {
51
- guideType: 'tentative',
55
+ guideType: 'tentative'
52
56
  },
53
57
  geometry: {
54
58
  type: 'LineString',
55
- coordinates: [clickSequence[0], hoveredCoord],
56
- },
59
+ coordinates: [clickSequence[0], hoveredCoord]
60
+ }
57
61
  });
58
62
  } else {
59
63
  const polygon = this.getThreeClickPolygon(
@@ -66,9 +70,9 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
66
70
  guides.features.push({
67
71
  type: 'Feature',
68
72
  properties: {
69
- guideType: 'tentative',
73
+ guideType: 'tentative'
70
74
  },
71
- geometry: polygon.geometry,
75
+ geometry: polygon.geometry
72
76
  });
73
77
  }
74
78
  }
@@ -91,7 +95,7 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
91
95
  }
92
96
 
93
97
  createTentativeFeature(props: ModeProps<FeatureCollection>): TentativeFeature {
94
- const { lastPointerMoveEvent } = props;
98
+ const {lastPointerMoveEvent} = props;
95
99
  const clickSequence = this.getClickSequence();
96
100
 
97
101
  const lastCoords = lastPointerMoveEvent ? [lastPointerMoveEvent.mapCoords] : [];
@@ -1,12 +1,16 @@
1
- import { featureCollection } from '@turf/helpers';
2
- import { PointerMoveEvent, ModeProps, StartDraggingEvent } from './types';
3
- import { FeatureCollection } from '../geojson-types';
4
- import { TranslateMode } from './translate-mode';
5
- import { ScaleMode } from './scale-mode';
6
- import { RotateMode } from './rotate-mode';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
7
4
 
8
- import { CompositeMode } from './composite-mode';
9
- import { GeoJsonEditMode } from './geojson-edit-mode';
5
+ import {featureCollection} from '@turf/helpers';
6
+ import {PointerMoveEvent, ModeProps, StartDraggingEvent} from './types';
7
+ import {FeatureCollection} from '../utils/geojson-types';
8
+ import {TranslateMode} from './translate-mode';
9
+ import {ScaleMode} from './scale-mode';
10
+ import {RotateMode} from './rotate-mode';
11
+
12
+ import {CompositeMode} from './composite-mode';
13
+ import {GeoJsonEditMode} from './geojson-edit-mode';
10
14
 
11
15
  export class TransformMode extends CompositeMode {
12
16
  constructor() {
@@ -19,7 +23,7 @@ export class TransformMode extends CompositeMode {
19
23
  ...props,
20
24
  onUpdateCursor: (cursor) => {
21
25
  updatedCursor = cursor || updatedCursor;
22
- },
26
+ }
23
27
  });
24
28
  props.onUpdateCursor(updatedCursor);
25
29
  }
@@ -45,7 +49,7 @@ export class TransformMode extends CompositeMode {
45
49
  });
46
50
 
47
51
  if (scaleMode instanceof ScaleMode && !scaleMode.isEditHandleSelected()) {
48
- filteredModes.push(translateMode!);
52
+ filteredModes.push(translateMode);
49
53
  }
50
54
 
51
55
  filteredModes.filter(Boolean).forEach((mode) => mode.handleStartDragging(event, props));
@@ -57,7 +61,7 @@ export class TransformMode extends CompositeMode {
57
61
 
58
62
  if (rotateMode instanceof RotateMode) {
59
63
  const nonEnvelopeGuides = compositeGuides.features.filter((guide) => {
60
- const { editHandleType, mode } = (guide.properties as any) || {};
64
+ const {editHandleType, mode} = (guide.properties as any) || {};
61
65
  // Both scale and rotate modes have the same enveloping box as a guide - only need one
62
66
  const guidesToFilterOut = [mode];
63
67
  // Do not render scaling edit handles if rotating
@@ -1,20 +1,24 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import turfBearing from '@turf/bearing';
2
6
  import turfDistance from '@turf/distance';
3
7
  import clone from '@turf/clone';
4
- import { point, Feature as TurfFeature, Geometry as TurfGeometry } from '@turf/helpers';
8
+ import {point, Feature as TurfFeature, Geometry as TurfGeometry} from '@turf/helpers';
5
9
  import WebMercatorViewport from 'viewport-mercator-project';
6
- import { FeatureCollection, Position, Geometry } from '../geojson-types';
10
+ import {FeatureCollection, Position, Geometry} from '../utils/geojson-types';
7
11
  import {
8
12
  PointerMoveEvent,
9
13
  StartDraggingEvent,
10
14
  StopDraggingEvent,
11
15
  DraggingEvent,
12
- ModeProps,
16
+ ModeProps
13
17
  } from './types';
14
- import { mapCoords } from './utils';
15
- import { translateFromCenter } from '../translateFromCenter';
16
- import { GeoJsonEditMode, GeoJsonEditAction } from './geojson-edit-mode';
17
- import { ImmutableFeatureCollection } from './immutable-feature-collection';
18
+ import {mapCoords} from './utils';
19
+ import {translateFromCenter} from '../utils/translate-from-center';
20
+ import {GeoJsonEditMode, GeoJsonEditAction} from './geojson-edit-mode';
21
+ import {ImmutableFeatureCollection} from './immutable-feature-collection';
18
22
 
19
23
  export class TranslateMode extends GeoJsonEditMode {
20
24
  _geometryBeforeTranslate: FeatureCollection | null | undefined;
@@ -98,7 +102,7 @@ export class TranslateMode extends GeoJsonEditMode {
98
102
  let updatedData = new ImmutableFeatureCollection(props.data);
99
103
  const selectedIndexes = props.selectedIndexes;
100
104
 
101
- const { viewport: viewportDesc, screenSpace } = props.modeConfig || {};
105
+ const {viewport: viewportDesc, screenSpace} = props.modeConfig || {};
102
106
 
103
107
  // move features without adapting to mercator projection
104
108
  if (viewportDesc && screenSpace) {
@@ -128,7 +132,7 @@ export class TranslateMode extends GeoJsonEditMode {
128
132
  // @ts-expect-error turf types
129
133
  updatedData = updatedData.replaceGeometry(selectedIndex, {
130
134
  type: feature.geometry.type,
131
- coordinates,
135
+ coordinates
132
136
  });
133
137
  }
134
138
  }
@@ -154,8 +158,8 @@ export class TranslateMode extends GeoJsonEditMode {
154
158
  updatedData: updatedData.getObject(),
155
159
  editType,
156
160
  editContext: {
157
- featureIndexes: selectedIndexes,
158
- },
161
+ featureIndexes: selectedIndexes
162
+ }
159
163
  };
160
164
  }
161
165
  }
@@ -1,3 +1,7 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {
2
6
  ClickEvent,
3
7
  StartDraggingEvent,
@@ -5,10 +9,10 @@ import {
5
9
  PointerMoveEvent,
6
10
  ModeProps,
7
11
  GuideFeatureCollection,
8
- TentativeFeature,
12
+ TentativeFeature
9
13
  } from './types';
10
- import { Polygon, FeatureCollection, FeatureOf, Position } from '../geojson-types';
11
- import { GeoJsonEditMode } from './geojson-edit-mode';
14
+ import {Polygon, FeatureCollection, FeatureOf, Position} from '../utils/geojson-types';
15
+ import {GeoJsonEditMode} from './geojson-edit-mode';
12
16
 
13
17
  export class TwoClickPolygonMode extends GeoJsonEditMode {
14
18
  handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
@@ -54,12 +58,12 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
54
58
  const feature: FeatureOf<Polygon> = {
55
59
  type: 'Feature',
56
60
  properties: {
57
- shape: tentativeFeature.properties.shape,
61
+ shape: tentativeFeature.properties.shape
58
62
  },
59
63
  geometry: {
60
64
  type: 'Polygon',
61
- coordinates: tentativeFeature.geometry.coordinates,
62
- },
65
+ coordinates: tentativeFeature.geometry.coordinates
66
+ }
63
67
  };
64
68
  const editAction = this.getAddFeatureOrBooleanPolygonAction(feature, props);
65
69
 
@@ -72,12 +76,12 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
72
76
  }
73
77
 
74
78
  getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {
75
- const { lastPointerMoveEvent, modeConfig } = props;
79
+ const {lastPointerMoveEvent, modeConfig} = props;
76
80
  const clickSequence = this.getClickSequence();
77
81
 
78
82
  const guides: GuideFeatureCollection = {
79
83
  type: 'FeatureCollection',
80
- features: [],
84
+ features: []
81
85
  };
82
86
 
83
87
  if (clickSequence.length === 0 || !lastPointerMoveEvent) {
@@ -94,9 +98,9 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
94
98
  type: 'Feature',
95
99
  properties: {
96
100
  shape: polygon.properties && polygon.properties.shape,
97
- guideType: 'tentative',
101
+ guideType: 'tentative'
98
102
  },
99
- geometry: polygon.geometry,
103
+ geometry: polygon.geometry
100
104
  });
101
105
  }
102
106
 
@@ -117,7 +121,7 @@ export class TwoClickPolygonMode extends GeoJsonEditMode {
117
121
  }
118
122
 
119
123
  createTentativeFeature(props: ModeProps<FeatureCollection>): TentativeFeature {
120
- const { lastPointerMoveEvent } = props;
124
+ const {lastPointerMoveEvent} = props;
121
125
  const clickSequence = this.getClickSequence();
122
126
 
123
127
  const lastCoords = lastPointerMoveEvent ? [lastPointerMoveEvent.mapCoords] : [];
@@ -1,4 +1,8 @@
1
- import { Position, Point, Geometry, FeatureWithProps } from '../geojson-types';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {Position, Point, Geometry, FeatureWithProps} from '../utils/geojson-types';
2
6
 
3
7
  export type ScreenCoordinates = [number, number];
4
8
 
@@ -1,11 +1,17 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ /* eslint-disable no-shadow */
6
+
1
7
  import destination from '@turf/destination';
2
8
  import bearing from '@turf/bearing';
3
9
  import pointToLineDistance from '@turf/point-to-line-distance';
4
- import { flattenEach } from '@turf/meta';
5
- import { point, MultiLineString } from '@turf/helpers';
6
- import { getCoords } from '@turf/invariant';
10
+ import {flattenEach} from '@turf/meta';
11
+ import {point, MultiLineString} from '@turf/helpers';
12
+ import {getCoords} from '@turf/invariant';
7
13
  import WebMercatorViewport from 'viewport-mercator-project';
8
- import { Viewport, Pick, EditHandleFeature, EditHandleType } from './types';
14
+ import {Viewport, Pick, EditHandleFeature, EditHandleType} from './types';
9
15
  import {
10
16
  Geometry,
11
17
  Position,
@@ -14,10 +20,10 @@ import {
14
20
  Polygon,
15
21
  FeatureOf,
16
22
  FeatureWithProps,
17
- AnyCoordinates,
18
- } from '../geojson-types';
23
+ AnyCoordinates
24
+ } from '../utils/geojson-types';
19
25
 
20
- export type NearestPointType = FeatureWithProps<Point, { dist: number; index: number }>;
26
+ export type NearestPointType = FeatureWithProps<Point, {dist: number; index: number}>;
21
27
 
22
28
  export function toDeckColor(
23
29
  color?: [number, number, number, number] | number,
@@ -78,7 +84,7 @@ export function generatePointsParallelToLinePoints(
78
84
  ): Position[] {
79
85
  const lineString: LineString = {
80
86
  type: 'LineString',
81
- coordinates: [p1, p2],
87
+ coordinates: [p1, p2]
82
88
  };
83
89
  const pt = point(mapCoords);
84
90
  const ddistance = pointToLineDistance(pt, lineString);
@@ -150,12 +156,12 @@ export function nearestPointOnProjectedLine(
150
156
  minPointInfo = {
151
157
  index,
152
158
  x0: (B * (B * x - A * y) - A * C) / div,
153
- y0: (A * (-B * x + A * y) - B * C) / div,
159
+ y0: (A * (-B * x + A * y) - B * C) / div
154
160
  };
155
161
  }
156
162
  });
157
- // @ts-ignore
158
- const { index, x0, y0 } = minPointInfo;
163
+ // @ts-expect-error TODO
164
+ const {index, x0, y0} = minPointInfo;
159
165
  const [x1, y1, z1 = 0] = projectedCoords[index - 1];
160
166
  const [x2, y2, z2 = 0] = projectedCoords[index];
161
167
 
@@ -169,14 +175,13 @@ export function nearestPointOnProjectedLine(
169
175
  type: 'Feature',
170
176
  geometry: {
171
177
  type: 'Point',
172
- // @ts-expect-error
173
- coordinates: wmViewport.unproject([x0, y0, z0]),
178
+ coordinates: wmViewport.unproject([x0, y0, z0])
174
179
  },
175
180
  properties: {
176
181
  // TODO: calculate the distance in proper units
177
182
  dist: minDistance,
178
- index: index - 1,
179
- },
183
+ index: index - 1
184
+ }
180
185
  };
181
186
  }
182
187
 
@@ -191,18 +196,18 @@ export function nearestPointOnLine<G extends LineString | MultiLineString>(
191
196
  mercator = new WebMercatorViewport(viewport);
192
197
  }
193
198
  let closestPoint: any = point([Infinity, Infinity], {
194
- dist: Infinity,
199
+ dist: Infinity
195
200
  });
196
201
 
197
202
  if (!lines.geometry?.coordinates.length || lines.geometry?.coordinates.length < 2) {
198
203
  return closestPoint;
199
204
  }
200
205
 
201
- // @ts-ignore
206
+ // @ts-expect-error TODO
202
207
  // eslint-disable-next-line max-statements, complexity
203
208
  flattenEach(lines, (line: any) => {
204
209
  const coords: any = getCoords(line);
205
- // @ts-ignore
210
+ // @ts-expect-error TODO
206
211
  const pointCoords: any = getCoords(inPoint);
207
212
 
208
213
  let minDist;
@@ -293,7 +298,7 @@ export function nearestPointOnLine<G extends LineString | MultiLineString>(
293
298
  }
294
299
 
295
300
  // index needs to be -1 because we have to account for the shift from initial backscan
296
- let snapPoint = { x, y, idx: segmentIdx - 1, to, from };
301
+ let snapPoint = {x, y, idx: segmentIdx - 1, to, from};
297
302
 
298
303
  if (mercator) {
299
304
  const pixelToLatLong = mercator.unproject([snapPoint.x, snapPoint.y]);
@@ -302,13 +307,13 @@ export function nearestPointOnLine<G extends LineString | MultiLineString>(
302
307
  y: pixelToLatLong[1],
303
308
  idx: segmentIdx - 1,
304
309
  to,
305
- from,
310
+ from
306
311
  };
307
312
  }
308
313
 
309
314
  closestPoint = point([snapPoint.x, snapPoint.y], {
310
315
  dist: Math.abs(snapPoint.from - snapPoint.to),
311
- index: snapPoint.idx,
316
+ index: snapPoint.idx
312
317
  });
313
318
  });
314
319
 
@@ -338,7 +343,7 @@ export function getPickedExistingEditHandle(
338
343
  ): EditHandleFeature | null | undefined {
339
344
  const handles = getPickedEditHandles(picks);
340
345
  return handles.find(
341
- ({ properties }) => properties.featureIndex >= 0 && properties.editHandleType === 'existing'
346
+ ({properties}) => properties.featureIndex >= 0 && properties.editHandleType === 'existing'
342
347
  );
343
348
  }
344
349
 
@@ -347,7 +352,7 @@ export function getPickedIntermediateEditHandle(
347
352
  ): EditHandleFeature | null | undefined {
348
353
  const handles = getPickedEditHandles(picks);
349
354
  return handles.find(
350
- ({ properties }) => properties.featureIndex >= 0 && properties.editHandleType === 'intermediate'
355
+ ({properties}) => properties.featureIndex >= 0 && properties.editHandleType === 'intermediate'
351
356
  );
352
357
  }
353
358
 
@@ -379,13 +384,13 @@ export function getEditHandlesForGeometry(
379
384
  guideType: 'editHandle',
380
385
  editHandleType,
381
386
  positionIndexes: [],
382
- featureIndex,
387
+ featureIndex
383
388
  },
384
389
  geometry: {
385
390
  type: 'Point',
386
- coordinates: geometry.coordinates,
387
- },
388
- },
391
+ coordinates: geometry.coordinates
392
+ }
393
+ }
389
394
  ];
390
395
  break;
391
396
  case 'MultiPoint':
@@ -449,12 +454,12 @@ function getEditHandlesForCoordinates(
449
454
  guideType: 'editHandle',
450
455
  positionIndexes: [...positionIndexPrefix, i],
451
456
  featureIndex,
452
- editHandleType,
457
+ editHandleType
453
458
  },
454
459
  geometry: {
455
460
  type: 'Point',
456
- coordinates: position,
457
- },
461
+ coordinates: position
462
+ }
458
463
  });
459
464
  }
460
465
  return editHandles;