@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,3 +1,7 @@
1
- import { GeoJsonEditMode } from './geojson-edit-mode';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {GeoJsonEditMode} from './geojson-edit-mode';
2
6
 
3
7
  export class ViewMode extends GeoJsonEditMode {}
@@ -1,14 +1,18 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  /* eslint-env browser */
2
6
 
3
- import type { UpdateParameters, DefaultProps } from '@deck.gl/core';
4
- import { GeoJsonLayer, ScatterplotLayer, IconLayer, TextLayer } from '@deck.gl/layers';
7
+ import type {UpdateParameters, DefaultProps} from '@deck.gl/core';
8
+ import {GeoJsonLayer, ScatterplotLayer, IconLayer, TextLayer} from '@deck.gl/layers';
5
9
  import {
6
10
  EditAction,
7
11
  ClickEvent,
8
12
  StartDraggingEvent,
9
13
  StopDraggingEvent,
10
14
  DraggingEvent,
11
- PointerMoveEvent,
15
+ PointerMoveEvent
12
16
  } from '../edit-modes/types';
13
17
 
14
18
  import {ViewMode} from '../edit-modes/view-mode';
@@ -38,12 +42,12 @@ import {SnappableMode} from '../edit-modes/snappable-mode';
38
42
  import {TransformMode} from '../edit-modes/transform-mode';
39
43
  import {GeoJsonEditModeType} from '../edit-modes/geojson-edit-mode';
40
44
 
41
- import { Color } from '../types';
42
- import { PROJECTED_PIXEL_SIZE_MULTIPLIER } from '../constants';
45
+ import {Color} from '../utils/types';
46
+ import {PROJECTED_PIXEL_SIZE_MULTIPLIER} from '../constants';
43
47
 
44
- import EditableLayer, { EditableLayerProps } from './editable-layer';
45
- import EditablePathLayer from './editable-path-layer';
46
- import { Feature, FeatureCollection } from '../geojson-types';
48
+ import {EditableLayer, EditableLayerProps} from './editable-layer';
49
+ import {EditablePathLayer} from './editable-path-layer';
50
+ import {Feature, FeatureCollection} from '../utils/geojson-types';
47
51
 
48
52
  const DEFAULT_LINE_COLOR: Color = [0x0, 0x0, 0x0, 0x99];
49
53
  const DEFAULT_FILL_COLOR: Color = [0x0, 0x0, 0x0, 0x90];
@@ -228,7 +232,7 @@ const defaultProps: DefaultProps<EditableGeojsonLayerProps<any>> = {
228
232
  getEditHandleIconAngle: 0,
229
233
 
230
234
  // misc
231
- billboard: true,
235
+ billboard: true
232
236
  };
233
237
 
234
238
  // Mapping of mode name to mode class (for legacy purposes)
@@ -261,10 +265,10 @@ const modeNameMapping = {
261
265
  drawRectangleUsing3Points: DrawRectangleUsingThreePointsMode,
262
266
  drawEllipseUsing3Points: DrawEllipseUsingThreePointsMode,
263
267
  draw90DegreePolygon: Draw90DegreePolygonMode,
264
- drawPolygonByDragging: DrawPolygonByDraggingMode,
268
+ drawPolygonByDragging: DrawPolygonByDraggingMode
265
269
  };
266
270
 
267
- export default class EditableGeoJsonLayer extends EditableLayer<
271
+ export class EditableGeoJsonLayer extends EditableLayer<
268
272
  FeatureCollection,
269
273
  EditableGeojsonLayerProps<FeatureCollection>
270
274
  > {
@@ -310,8 +314,8 @@ export default class EditableGeoJsonLayer extends EditableLayer<
310
314
  billboard: this.props.billboard,
311
315
  updateTriggers: {
312
316
  // required to update dashed array attribute
313
- all: [this.props.selectedFeatureIndexes, this.props.mode],
314
- },
317
+ all: [this.props.selectedFeatureIndexes, this.props.mode]
318
+ }
315
319
  },
316
320
  'polygons-stroke': {
317
321
  billboard: this.props.billboard,
@@ -319,17 +323,17 @@ export default class EditableGeoJsonLayer extends EditableLayer<
319
323
  type: EditablePathLayer,
320
324
  updateTriggers: {
321
325
  // required to update dashed array attribute
322
- all: [this.props.selectedFeatureIndexes, this.props.mode],
323
- },
324
- },
326
+ all: [this.props.selectedFeatureIndexes, this.props.mode]
327
+ }
328
+ }
325
329
  },
326
330
 
327
331
  updateTriggers: {
328
332
  getLineColor: [this.props.selectedFeatureIndexes, this.props.mode],
329
333
  getFillColor: [this.props.selectedFeatureIndexes, this.props.mode],
330
334
  getPointRadius: [this.props.selectedFeatureIndexes, this.props.mode],
331
- getLineWidth: [this.props.selectedFeatureIndexes, this.props.mode],
332
- },
335
+ getLineWidth: [this.props.selectedFeatureIndexes, this.props.mode]
336
+ }
333
337
  });
334
338
 
335
339
  let layers: any = [new GeoJsonLayer(subLayerProps)];
@@ -344,7 +348,7 @@ export default class EditableGeoJsonLayer extends EditableLayer<
344
348
 
345
349
  this.setState({
346
350
  selectedFeatures: [],
347
- editHandles: [],
351
+ editHandles: []
348
352
  });
349
353
  }
350
354
 
@@ -358,8 +362,8 @@ export default class EditableGeoJsonLayer extends EditableLayer<
358
362
  return super.shouldUpdateState(opts) || opts.changeFlags.stateChanged;
359
363
  }
360
364
 
361
- updateState({ props, oldProps, changeFlags, context }: UpdateParameters<this>) {
362
- super.updateState({ oldProps, props, changeFlags, context });
365
+ updateState({props, oldProps, changeFlags, context}: UpdateParameters<this>) {
366
+ super.updateState({oldProps, props, changeFlags, context});
363
367
 
364
368
  if (changeFlags.propsOrDataChanged) {
365
369
  const modePropChanged = Object.keys(oldProps).length === 0 || props.mode !== oldProps.mode;
@@ -374,7 +378,7 @@ export default class EditableGeoJsonLayer extends EditableLayer<
374
378
  mode = modeNameMapping[props.mode];
375
379
  // eslint-disable-next-line no-console
376
380
  console.warn(
377
- 'Deprecated use of passing `mode` as a string. Pass the mode\'s class constructor instead.'
381
+ "Deprecated use of passing `mode` as a string. Pass the mode's class constructor instead."
378
382
  );
379
383
  } else {
380
384
  // Should be an instance of EditMode in this case
@@ -388,7 +392,7 @@ export default class EditableGeoJsonLayer extends EditableLayer<
388
392
  }
389
393
 
390
394
  if (mode !== this.state.mode) {
391
- this.setState({ mode, cursor: null });
395
+ this.setState({mode, cursor: null});
392
396
  }
393
397
  }
394
398
  }
@@ -401,11 +405,10 @@ export default class EditableGeoJsonLayer extends EditableLayer<
401
405
  ) {
402
406
  // TODO: needs improved testing, i.e. checking for duplicates, NaNs, out of range numbers, ...
403
407
  const propsData = props.data;
404
- // @ts-ignore error TS2339: Property 'features' does not exist on type 'never'
405
408
  selectedFeatures = props.selectedFeatureIndexes.map((elem) => propsData.features[elem]);
406
409
  }
407
410
 
408
- this.setState({ selectedFeatures });
411
+ this.setState({selectedFeatures});
409
412
  }
410
413
 
411
414
  getModeProps(props: EditableGeojsonLayerProps<any>) {
@@ -420,11 +423,11 @@ export default class EditableGeoJsonLayer extends EditableLayer<
420
423
  // This supports double-click where we need to ensure that there's a re-render between the two clicks
421
424
  // even though the data wasn't changed, just the internal tentative feature.
422
425
  this.setNeedsUpdate();
423
- props.onEdit!(editAction);
426
+ props.onEdit(editAction);
424
427
  },
425
428
  onUpdateCursor: (cursor: string | null | undefined) => {
426
- this.setState({ cursor });
427
- },
429
+ this.setState({cursor});
430
+ }
428
431
  };
429
432
  }
430
433
 
@@ -447,7 +450,7 @@ export default class EditableGeoJsonLayer extends EditableLayer<
447
450
  return this.state.selectedFeatures.includes(feature);
448
451
  }
449
452
 
450
- getPickingInfo({ info, sourceLayer }: Record<string, any>) {
453
+ getPickingInfo({info, sourceLayer}: Record<string, any>) {
451
454
  if (sourceLayer.id.endsWith('guides')) {
452
455
  // If user is picking an editing handle, add additional data to the info
453
456
  info.isGuide = true;
@@ -480,14 +483,14 @@ export default class EditableGeoJsonLayer extends EditableLayer<
480
483
  const subLayerProps = {
481
484
  linestrings: {
482
485
  billboard: this.props.billboard,
483
- autoHighlight: false,
486
+ autoHighlight: false
484
487
  },
485
488
  'polygons-fill': {
486
- autoHighlight: false,
489
+ autoHighlight: false
487
490
  },
488
491
  'polygons-stroke': {
489
- billboard: this.props.billboard,
490
- },
492
+ billboard: this.props.billboard
493
+ }
491
494
  };
492
495
 
493
496
  if (this.props.editHandleType === 'icon') {
@@ -501,7 +504,7 @@ export default class EditableGeoJsonLayer extends EditableLayer<
501
504
  getSize: guideAccessor(this.props.getEditHandleIconSize),
502
505
  getColor: guideAccessor(this.props.getEditHandleIconColor),
503
506
  getAngle: guideAccessor(this.props.getEditHandleIconAngle),
504
- billboard: this.props.billboard,
507
+ billboard: this.props.billboard
505
508
  };
506
509
  } else {
507
510
  subLayerProps['points-circle'] = {
@@ -515,7 +518,7 @@ export default class EditableGeoJsonLayer extends EditableLayer<
515
518
  getRadius: guideAccessor(this.props.getEditHandlePointRadius),
516
519
  getFillColor: guideAccessor(this.props.getEditHandlePointColor),
517
520
  getLineColor: guideAccessor(this.props.getEditHandlePointOutlineColor),
518
- billboard: this.props.billboard,
521
+ billboard: this.props.billboard
519
522
  };
520
523
  }
521
524
 
@@ -536,7 +539,7 @@ export default class EditableGeoJsonLayer extends EditableLayer<
536
539
  getLineWidth: guideAccessor(this.props.getTentativeLineWidth),
537
540
  getFillColor: guideAccessor(this.props.getTentativeFillColor),
538
541
  pointType: this.props.editHandleType === 'icon' ? 'icon' : 'circle',
539
- iconAtlas: this.props.editHandleIconAtlas,
542
+ iconAtlas: this.props.editHandleIconAtlas
540
543
  })
541
544
  );
542
545
 
@@ -551,8 +554,8 @@ export default class EditableGeoJsonLayer extends EditableLayer<
551
554
  getSize: DEFAULT_TOOLTIP_FONT_SIZE,
552
555
  ...this.getSubLayerProps({
553
556
  id: 'tooltips',
554
- data: tooltips,
555
- }),
557
+ data: tooltips
558
+ })
556
559
  });
557
560
 
558
561
  return [layer];
@@ -579,17 +582,17 @@ export default class EditableGeoJsonLayer extends EditableLayer<
579
582
  }
580
583
 
581
584
  onPointerMove(event: PointerMoveEvent): void {
582
- this.setState({ lastPointerMoveEvent: event });
585
+ this.setState({lastPointerMoveEvent: event});
583
586
  this.getActiveMode().handlePointerMove(event, this.getModeProps(this.props) as any);
584
587
  }
585
588
 
586
- getCursor({ isDragging }: { isDragging: boolean }): null | 'grabbing' | 'grab' {
589
+ getCursor({isDragging}: {isDragging: boolean}): null | 'grabbing' | 'grab' {
587
590
  if (this.state === null || this.state === undefined) {
588
591
  // Layer in 'Awaiting state'
589
592
  return null;
590
593
  }
591
594
 
592
- let { cursor } = this.state;
595
+ let {cursor} = this.state;
593
596
  if (!cursor) {
594
597
  // default cursor
595
598
  cursor = isDragging ? 'grabbing' : 'grab';
@@ -1,3 +1,7 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  /* eslint-env browser */
2
6
 
3
7
  import {H3ClusterLayer} from '@deck.gl/geo-layers';
@@ -5,8 +9,8 @@ import {DefaultProps} from '@deck.gl/core';
5
9
  // TODO: Fix H3 support.
6
10
  // import { polyfill, geoToH3 } from 'h3-js';
7
11
  import {PROJECTED_PIXEL_SIZE_MULTIPLIER} from '../constants';
8
- import EditableGeoJsonLayer from './editable-geojson-layer';
9
- import EditableLayer, {EditableLayerProps} from './editable-layer';
12
+ import {EditableGeoJsonLayer} from './editable-geojson-layer';
13
+ import {EditableLayer, EditableLayerProps} from './editable-layer';
10
14
  import {ViewMode} from '../edit-modes/view-mode';
11
15
 
12
16
  const DEFAULT_EDIT_MODE = ViewMode;
@@ -62,10 +66,7 @@ const defaultProps: DefaultProps<EditableH3ClusterLayerProps<any>> = {
62
66
  resolution: DEFAULT_H3_RESOLUTION
63
67
  };
64
68
 
65
- export default class EditableH3ClusterLayer extends EditableLayer<
66
- any,
67
- EditableH3ClusterLayerProps<any>
68
- > {
69
+ export class EditableH3ClusterLayer extends EditableLayer<any, EditableH3ClusterLayerProps<any>> {
69
70
  static layerName = 'EditableH3ClusterLayer';
70
71
  static defaultProps = defaultProps;
71
72
 
@@ -129,16 +130,18 @@ export default class EditableH3ClusterLayer extends EditableLayer<
129
130
  if (!modeConfig || !modeConfig.booleanOperation) {
130
131
  // add new h3 cluster
131
132
  updatedData.push(
132
- this.props.getEditedCluster!(this.state.tentativeHexagonIDs, null)
133
+ this.props.getEditedCluster(this.state.tentativeHexagonIDs, null)
133
134
  );
134
- } else if (this.props.selectedIndexes!.length !== 1) {
135
+ } else if (this.props.selectedIndexes.length !== 1) {
135
136
  // eslint-disable-next-line no-console,no-undef
136
137
  console.warn('booleanOperation only supported for single cluster selection');
137
138
  } else {
138
139
  // they're affecting a selected cluster
139
140
  let finalHexagonIDs: (string | number)[];
140
141
  const committedHexagonIDs = new Set<string | number>(this.getSelectedHexIDs());
141
- const tentativeHexagonIDs = new Set<string | number>(this.state.tentativeHexagonIDs);
142
+ const tentativeHexagonIDs = new Set<string | number>(
143
+ this.state.tentativeHexagonIDs
144
+ );
142
145
 
143
146
  switch (modeConfig.booleanOperation) {
144
147
  case 'union':
@@ -159,9 +162,9 @@ export default class EditableH3ClusterLayer extends EditableLayer<
159
162
  break;
160
163
  }
161
164
 
162
- const selectedIndex = this.props.selectedIndexes![0];
165
+ const selectedIndex = this.props.selectedIndexes[0];
163
166
  const existingCluster = this.props.data[selectedIndex];
164
- updatedData[selectedIndex] = this.props.getEditedCluster!(
167
+ updatedData[selectedIndex] = this.props.getEditedCluster(
165
168
  finalHexagonIDs,
166
169
  existingCluster
167
170
  );
@@ -171,7 +174,7 @@ export default class EditableH3ClusterLayer extends EditableLayer<
171
174
  tentativeHexagonIDs: []
172
175
  });
173
176
 
174
- this.props.onEdit!({updatedData});
177
+ this.props.onEdit({updatedData});
175
178
 
176
179
  break;
177
180
  default:
@@ -207,9 +210,9 @@ export default class EditableH3ClusterLayer extends EditableLayer<
207
210
  // using props.getHexagons to support multiple data types
208
211
  getSelectedHexIDs() {
209
212
  let cumulativeHexIDs: number[] = [];
210
- this.props.selectedIndexes!.forEach((index) => {
213
+ this.props.selectedIndexes.forEach((index) => {
211
214
  const selectedCluster = this.props.data[index];
212
- const hexIDs = this.props.getHexagons!(selectedCluster);
215
+ const hexIDs = this.props.getHexagons(selectedCluster);
213
216
  cumulativeHexIDs = cumulativeHexIDs.concat(hexIDs);
214
217
  });
215
218
  return cumulativeHexIDs;
@@ -1,8 +1,18 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  /* eslint-env browser */
2
6
 
3
- import { CompositeLayer, CompositeLayerProps } from '@deck.gl/core';
4
- import { DraggingEvent, ClickEvent, StartDraggingEvent, StopDraggingEvent, PointerMoveEvent } from '../edit-modes/types';
5
- import { Position } from '../geojson-types';
7
+ import {CompositeLayer, CompositeLayerProps} from '@deck.gl/core';
8
+ import {
9
+ DraggingEvent,
10
+ ClickEvent,
11
+ StartDraggingEvent,
12
+ StopDraggingEvent,
13
+ PointerMoveEvent
14
+ } from '../edit-modes/types';
15
+ import {Position} from '../utils/geojson-types';
6
16
 
7
17
  const EVENT_TYPES = ['anyclick', 'pointermove', 'panstart', 'panmove', 'panend', 'keyup'];
8
18
 
@@ -12,7 +22,7 @@ export type EditableLayerProps<DataType = any> = CompositeLayerProps & {
12
22
  pickingDepth?: number;
13
23
  };
14
24
 
15
- export default abstract class EditableLayer<
25
+ export abstract class EditableLayer<
16
26
  DataT = any,
17
27
  ExtraPropsT = Record<string, unknown>
18
28
  > extends CompositeLayer<ExtraPropsT & Required<EditableLayerProps<DataT>>> {
@@ -57,8 +67,8 @@ export default abstract class EditableLayer<
57
67
  pointerDownMapCoords: null,
58
68
 
59
69
  // Keep track of the mjolnir.js event handler so it can be deregistered
60
- eventHandler: this._forwardEventToCurrentLayer.bind(this),
61
- },
70
+ eventHandler: this._forwardEventToCurrentLayer.bind(this)
71
+ }
62
72
  });
63
73
 
64
74
  this._addEventHandlers();
@@ -70,21 +80,21 @@ export default abstract class EditableLayer<
70
80
 
71
81
  _addEventHandlers() {
72
82
  // @ts-expect-error accessing protected props
73
- const { eventManager } = this.context.deck;
74
- const { eventHandler } = this.state._editableLayerState;
83
+ const {eventManager} = this.context.deck;
84
+ const {eventHandler} = this.state._editableLayerState;
75
85
 
76
86
  for (const eventType of EVENT_TYPES) {
77
87
  eventManager.on(eventType as any, eventHandler, {
78
88
  // give nebula a higher priority so that it can stop propagation to deck.gl's map panning handlers
79
- priority: 100,
89
+ priority: 100
80
90
  });
81
91
  }
82
92
  }
83
93
 
84
94
  _removeEventHandlers() {
85
95
  // @ts-expect-error accessing protected props
86
- const { eventManager } = this.context.deck;
87
- const { eventHandler } = this.state._editableLayerState;
96
+ const {eventManager} = this.context.deck;
97
+ const {eventHandler} = this.state._editableLayerState;
88
98
 
89
99
  for (const eventType of EVENT_TYPES) {
90
100
  eventManager.off(eventType as any, eventHandler);
@@ -95,7 +105,7 @@ export default abstract class EditableLayer<
95
105
  // This means that the first layer instance will stick around to be the event listener, but will forward the event
96
106
  // to the latest layer instance.
97
107
  _forwardEventToCurrentLayer(event: any) {
98
- const currentLayer = this.getCurrentLayer()!;
108
+ const currentLayer = this.getCurrentLayer();
99
109
 
100
110
  // Use a naming convention to find the event handling function for this event type
101
111
  const func = currentLayer[`_on${event.type}`].bind(currentLayer);
@@ -106,7 +116,7 @@ export default abstract class EditableLayer<
106
116
  func(event);
107
117
  }
108
118
 
109
- _onanyclick({ srcEvent }: any) {
119
+ _onanyclick({srcEvent}: any) {
110
120
  const screenCoords = this.getScreenCoords(srcEvent) as [number, number];
111
121
  const mapCoords = this.getMapCoords(screenCoords);
112
122
 
@@ -116,11 +126,11 @@ export default abstract class EditableLayer<
116
126
  mapCoords,
117
127
  screenCoords,
118
128
  picks,
119
- sourceEvent: srcEvent,
129
+ sourceEvent: srcEvent
120
130
  });
121
131
  }
122
132
 
123
- _onkeyup({ srcEvent }: { srcEvent: KeyboardEvent }) {
133
+ _onkeyup({srcEvent}: {srcEvent: KeyboardEvent}) {
124
134
  this.onLayerKeyUp(srcEvent);
125
135
  }
126
136
 
@@ -134,8 +144,8 @@ export default abstract class EditableLayer<
134
144
  ...this.state._editableLayerState,
135
145
  pointerDownScreenCoords: screenCoords,
136
146
  pointerDownMapCoords: mapCoords,
137
- pointerDownPicks: picks,
138
- },
147
+ pointerDownPicks: picks
148
+ }
139
149
  });
140
150
 
141
151
  this.onStartDragging({
@@ -145,16 +155,16 @@ export default abstract class EditableLayer<
145
155
  pointerDownScreenCoords: screenCoords,
146
156
  pointerDownMapCoords: mapCoords,
147
157
  cancelPan: event.stopImmediatePropagation,
148
- sourceEvent: event.srcEvent,
158
+ sourceEvent: event.srcEvent
149
159
  });
150
160
  }
151
161
 
152
162
  _onpanmove(event: any) {
153
- const { srcEvent } = event;
163
+ const {srcEvent} = event;
154
164
  const screenCoords = this.getScreenCoords(srcEvent) as [number, number];
155
165
  const mapCoords = this.getMapCoords(screenCoords);
156
166
 
157
- const { pointerDownPicks, pointerDownScreenCoords, pointerDownMapCoords } =
167
+ const {pointerDownPicks, pointerDownScreenCoords, pointerDownMapCoords} =
158
168
  this.state._editableLayerState;
159
169
 
160
170
  const picks = this.getPicks(screenCoords);
@@ -167,7 +177,7 @@ export default abstract class EditableLayer<
167
177
  pointerDownScreenCoords,
168
178
  pointerDownMapCoords,
169
179
  sourceEvent: srcEvent,
170
- cancelPan: event.stopImmediatePropagation,
180
+ cancelPan: event.stopImmediatePropagation
171
181
  // another (hacky) approach for cancelling map panning
172
182
  // const controller = this.context.deck.viewManager.controllers[
173
183
  // Object.keys(this.context.deck.viewManager.controllers)[0]
@@ -176,11 +186,11 @@ export default abstract class EditableLayer<
176
186
  });
177
187
  }
178
188
 
179
- _onpanend({ srcEvent }: any) {
189
+ _onpanend({srcEvent}: any) {
180
190
  const screenCoords = this.getScreenCoords(srcEvent) as [number, number];
181
191
  const mapCoords = this.getMapCoords(screenCoords);
182
192
 
183
- const { pointerDownPicks, pointerDownScreenCoords, pointerDownMapCoords } =
193
+ const {pointerDownPicks, pointerDownScreenCoords, pointerDownMapCoords} =
184
194
  this.state._editableLayerState;
185
195
 
186
196
  const picks = this.getPicks(screenCoords);
@@ -192,7 +202,7 @@ export default abstract class EditableLayer<
192
202
  pointerDownPicks,
193
203
  pointerDownScreenCoords,
194
204
  pointerDownMapCoords,
195
- sourceEvent: srcEvent,
205
+ sourceEvent: srcEvent
196
206
  });
197
207
 
198
208
  this.setState({
@@ -200,17 +210,17 @@ export default abstract class EditableLayer<
200
210
  ...this.state._editableLayerState,
201
211
  pointerDownScreenCoords: null,
202
212
  pointerDownMapCoords: null,
203
- pointerDownPicks: null,
204
- },
213
+ pointerDownPicks: null
214
+ }
205
215
  });
206
216
  }
207
217
 
208
218
  _onpointermove(event: any) {
209
- const { srcEvent } = event;
219
+ const {srcEvent} = event;
210
220
  const screenCoords = this.getScreenCoords(srcEvent) as [number, number];
211
221
  const mapCoords = this.getMapCoords(screenCoords);
212
222
 
213
- const { pointerDownPicks, pointerDownScreenCoords, pointerDownMapCoords } =
223
+ const {pointerDownPicks, pointerDownScreenCoords, pointerDownMapCoords} =
214
224
  this.state._editableLayerState;
215
225
 
216
226
  const picks = this.getPicks(screenCoords);
@@ -223,17 +233,17 @@ export default abstract class EditableLayer<
223
233
  pointerDownScreenCoords,
224
234
  pointerDownMapCoords,
225
235
  sourceEvent: srcEvent,
226
- cancelPan: event.stopImmediatePropagation,
236
+ cancelPan: event.stopImmediatePropagation
227
237
  });
228
238
  }
229
239
 
230
240
  getPicks(screenCoords: [number, number]) {
231
- return this.context.deck!.pickMultipleObjects({
241
+ return this.context.deck.pickMultipleObjects({
232
242
  x: screenCoords[0],
233
243
  y: screenCoords[1],
234
244
  layerIds: [this.props.id],
235
245
  radius: this.props.pickingRadius,
236
- depth: this.props.pickingDepth,
246
+ depth: this.props.pickingDepth
237
247
  });
238
248
  }
239
249
 
@@ -242,7 +252,7 @@ export default abstract class EditableLayer<
242
252
  pointerEvent.clientX -
243
253
  (this.context.gl.canvas as HTMLCanvasElement).getBoundingClientRect().left,
244
254
  pointerEvent.clientY -
245
- (this.context.gl.canvas as HTMLCanvasElement).getBoundingClientRect().top,
255
+ (this.context.gl.canvas as HTMLCanvasElement).getBoundingClientRect().top
246
256
  ];
247
257
  }
248
258
 
@@ -1,6 +1,10 @@
1
- import { PathLayer, PathLayerProps } from '@deck.gl/layers';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
2
4
 
3
- import { insertBefore } from '../utils';
5
+ import {PathLayer, PathLayerProps} from '@deck.gl/layers';
6
+
7
+ import {insertBefore} from '../utils/utils';
4
8
 
5
9
  interface EditablePathLayerProps extends PathLayerProps<any> {
6
10
  pickingLineWidthExtraPixels?: number;
@@ -8,10 +12,10 @@ interface EditablePathLayerProps extends PathLayerProps<any> {
8
12
 
9
13
  const defaultProps = {
10
14
  ...PathLayer.defaultProps,
11
- pickingLineWidthExtraPixels: { type: 'number', min: 0, value: Number.MAX_SAFE_INTEGER },
15
+ pickingLineWidthExtraPixels: {type: 'number', min: 0, value: Number.MAX_SAFE_INTEGER}
12
16
  };
13
17
 
14
- export default class EditablePathLayer extends PathLayer<any, EditablePathLayerProps> {
18
+ export class EditablePathLayer extends PathLayer<any, EditablePathLayerProps> {
15
19
  getShaders() {
16
20
  const shaders = super.getShaders();
17
21
 
@@ -31,8 +35,8 @@ export default class EditablePathLayer extends PathLayer<any, EditablePathLayerP
31
35
  ...(shaders.inject || {}),
32
36
  'vs:#decl': (shaders.inject?.['vs:#decl'] || '').concat(
33
37
  'uniform float pickingLineWidthExtraPixels;'
34
- ),
35
- },
38
+ )
39
+ }
36
40
  };
37
41
  }
38
42
 
@@ -41,8 +45,8 @@ export default class EditablePathLayer extends PathLayer<any, EditablePathLayerP
41
45
  ...props,
42
46
  uniforms: {
43
47
  ...props.uniforms,
44
- pickingLineWidthExtraPixels: this.props.pickingLineWidthExtraPixels,
45
- },
48
+ pickingLineWidthExtraPixels: this.props.pickingLineWidthExtraPixels
49
+ }
46
50
  });
47
51
  }
48
52
  }
@@ -1,18 +1,22 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  /* eslint-env browser */
2
6
 
3
- import { CompositeLayer } from '@deck.gl/core';
4
- import { ScatterplotLayer, LineLayer } from '@deck.gl/layers';
7
+ import {CompositeLayer} from '@deck.gl/core';
8
+ import {ScatterplotLayer, LineLayer} from '@deck.gl/layers';
5
9
 
6
10
  const defaultProps = {};
7
11
 
8
- export default class ElevatedEditHandleLayer extends CompositeLayer<any> {
12
+ export class ElevatedEditHandleLayer extends CompositeLayer<any> {
9
13
  static layerName = 'ElevatedEditHandleLayer';
10
14
  static defaultProps = defaultProps;
11
15
  renderLayers() {
12
16
  const handles = new ScatterplotLayer(
13
17
  Object.assign({}, this.props, {
14
18
  id: `${this.props.id}-ScatterplotLayer`,
15
- data: this.props.data,
19
+ data: this.props.data
16
20
  })
17
21
  );
18
22
 
@@ -21,10 +25,10 @@ export default class ElevatedEditHandleLayer extends CompositeLayer<any> {
21
25
  id: `${this.props.id}-LineLayer`,
22
26
  data: this.props.data,
23
27
  pickable: false,
24
- getSourcePosition: ({ position }) => [position[0], position[1], 0],
25
- getTargetPosition: ({ position }) => [position[0], position[1], position[2] || 0],
28
+ getSourcePosition: ({position}) => [position[0], position[1], 0],
29
+ getTargetPosition: ({position}) => [position[0], position[1], position[2] || 0],
26
30
  getColor: [150, 150, 150, 200],
27
- getStrokeWidth: 3,
31
+ getStrokeWidth: 3
28
32
  })
29
33
  );
30
34