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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts +2 -2
  2. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts.map +1 -1
  3. package/dist/edit-modes/draw-90degree-polygon-mode.js.map +1 -1
  4. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +2 -2
  5. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts.map +1 -1
  6. package/dist/edit-modes/draw-circle-by-diameter-mode.js +0 -1
  7. package/dist/edit-modes/draw-circle-by-diameter-mode.js.map +1 -1
  8. package/dist/edit-modes/draw-circle-from-center-mode.d.ts +2 -2
  9. package/dist/edit-modes/draw-circle-from-center-mode.d.ts.map +1 -1
  10. package/dist/edit-modes/draw-circle-from-center-mode.js +0 -1
  11. package/dist/edit-modes/draw-circle-from-center-mode.js.map +1 -1
  12. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +2 -2
  13. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts.map +1 -1
  14. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +1 -2
  15. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js.map +1 -1
  16. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +2 -2
  17. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts.map +1 -1
  18. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +0 -2
  19. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js.map +1 -1
  20. package/dist/edit-modes/draw-line-string-mode.d.ts +5 -5
  21. package/dist/edit-modes/draw-line-string-mode.d.ts.map +1 -1
  22. package/dist/edit-modes/draw-line-string-mode.js.map +1 -1
  23. package/dist/edit-modes/draw-point-mode.d.ts +2 -2
  24. package/dist/edit-modes/draw-point-mode.d.ts.map +1 -1
  25. package/dist/edit-modes/draw-point-mode.js.map +1 -1
  26. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +8 -8
  27. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts.map +1 -1
  28. package/dist/edit-modes/draw-polygon-by-dragging-mode.js.map +1 -1
  29. package/dist/edit-modes/draw-polygon-mode.d.ts +5 -5
  30. package/dist/edit-modes/draw-polygon-mode.d.ts.map +1 -1
  31. package/dist/edit-modes/draw-polygon-mode.js +48 -52
  32. package/dist/edit-modes/draw-polygon-mode.js.map +1 -1
  33. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +2 -2
  34. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -1
  35. package/dist/edit-modes/draw-rectangle-from-center-mode.js +0 -1
  36. package/dist/edit-modes/draw-rectangle-from-center-mode.js.map +1 -1
  37. package/dist/edit-modes/draw-rectangle-mode.d.ts +2 -2
  38. package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -1
  39. package/dist/edit-modes/draw-rectangle-mode.js +0 -1
  40. package/dist/edit-modes/draw-rectangle-mode.js.map +1 -1
  41. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +2 -2
  42. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -1
  43. package/dist/edit-modes/draw-square-from-center-mode.d.ts +2 -2
  44. package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -1
  45. package/dist/edit-modes/draw-square-from-center-mode.js +0 -1
  46. package/dist/edit-modes/draw-square-from-center-mode.js.map +1 -1
  47. package/dist/edit-modes/draw-square-mode.d.ts +2 -2
  48. package/dist/edit-modes/draw-square-mode.d.ts.map +1 -1
  49. package/dist/edit-modes/draw-square-mode.js +0 -1
  50. package/dist/edit-modes/draw-square-mode.js.map +1 -1
  51. package/dist/edit-modes/duplicate-mode.d.ts +2 -2
  52. package/dist/edit-modes/duplicate-mode.d.ts.map +1 -1
  53. package/dist/edit-modes/duplicate-mode.js.map +1 -1
  54. package/dist/edit-modes/extend-line-string-mode.d.ts +4 -4
  55. package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -1
  56. package/dist/edit-modes/extend-line-string-mode.js.map +1 -1
  57. package/dist/edit-modes/extrude-mode.d.ts +7 -7
  58. package/dist/edit-modes/extrude-mode.d.ts.map +1 -1
  59. package/dist/edit-modes/extrude-mode.js.map +1 -1
  60. package/dist/edit-modes/geojson-edit-mode.d.ts +9 -9
  61. package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -1
  62. package/dist/edit-modes/geojson-edit-mode.js +4 -7
  63. package/dist/edit-modes/geojson-edit-mode.js.map +1 -1
  64. package/dist/edit-modes/immutable-feature-collection.d.ts +7 -7
  65. package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -1
  66. package/dist/edit-modes/immutable-feature-collection.js.map +1 -1
  67. package/dist/edit-modes/measure-area-mode.d.ts +3 -3
  68. package/dist/edit-modes/measure-area-mode.d.ts.map +1 -1
  69. package/dist/edit-modes/measure-area-mode.js.map +1 -1
  70. package/dist/edit-modes/modify-mode.d.ts +8 -8
  71. package/dist/edit-modes/modify-mode.d.ts.map +1 -1
  72. package/dist/edit-modes/modify-mode.js +25 -23
  73. package/dist/edit-modes/modify-mode.js.map +1 -1
  74. package/dist/edit-modes/resize-circle-mode.d.ts +3 -3
  75. package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -1
  76. package/dist/edit-modes/resize-circle-mode.js +1 -5
  77. package/dist/edit-modes/resize-circle-mode.js.map +1 -1
  78. package/dist/edit-modes/rotate-mode.d.ts +7 -7
  79. package/dist/edit-modes/rotate-mode.d.ts.map +1 -1
  80. package/dist/edit-modes/rotate-mode.js +2 -9
  81. package/dist/edit-modes/rotate-mode.js.map +1 -1
  82. package/dist/edit-modes/scale-mode.d.ts +11 -11
  83. package/dist/edit-modes/scale-mode.d.ts.map +1 -1
  84. package/dist/edit-modes/scale-mode.js +1 -6
  85. package/dist/edit-modes/scale-mode.js.map +1 -1
  86. package/dist/edit-modes/snappable-mode.d.ts +5 -5
  87. package/dist/edit-modes/snappable-mode.d.ts.map +1 -1
  88. package/dist/edit-modes/snappable-mode.js.map +1 -1
  89. package/dist/edit-modes/split-polygon-mode.d.ts +5 -5
  90. package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -1
  91. package/dist/edit-modes/split-polygon-mode.js +2 -5
  92. package/dist/edit-modes/split-polygon-mode.js.map +1 -1
  93. package/dist/edit-modes/three-click-polygon-mode.d.ts +3 -3
  94. package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -1
  95. package/dist/edit-modes/three-click-polygon-mode.js +14 -18
  96. package/dist/edit-modes/three-click-polygon-mode.js.map +1 -1
  97. package/dist/edit-modes/translate-mode.d.ts +6 -6
  98. package/dist/edit-modes/translate-mode.d.ts.map +1 -1
  99. package/dist/edit-modes/translate-mode.js +1 -2
  100. package/dist/edit-modes/translate-mode.js.map +1 -1
  101. package/dist/edit-modes/two-click-polygon-mode.d.ts +6 -6
  102. package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -1
  103. package/dist/edit-modes/two-click-polygon-mode.js.map +1 -1
  104. package/dist/edit-modes/types.d.ts +3 -3
  105. package/dist/edit-modes/types.d.ts.map +1 -1
  106. package/dist/edit-modes/utils.d.ts +7 -7
  107. package/dist/edit-modes/utils.d.ts.map +1 -1
  108. package/dist/edit-modes/utils.js +1 -4
  109. package/dist/edit-modes/utils.js.map +1 -1
  110. package/dist/editable-layers/editable-geojson-layer.d.ts +5 -13
  111. package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -1
  112. package/dist/editable-layers/editable-geojson-layer.js +20 -4
  113. package/dist/editable-layers/editable-geojson-layer.js.map +1 -1
  114. package/dist/editable-layers/selection-layer.d.ts +1 -2
  115. package/dist/editable-layers/selection-layer.d.ts.map +1 -1
  116. package/dist/editable-layers/selection-layer.js +2 -2
  117. package/dist/editable-layers/selection-layer.js.map +1 -1
  118. package/dist/index.cjs +430 -989
  119. package/dist/index.cjs.map +4 -4
  120. package/dist/index.d.ts +5 -11
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +2 -10
  123. package/dist/index.js.map +1 -1
  124. package/dist/mode-handlers/composite-mode-handler.d.ts +3 -3
  125. package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -1
  126. package/dist/mode-handlers/composite-mode-handler.js.map +1 -1
  127. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -1
  128. package/dist/mode-handlers/draw-90degree-polygon-handler.js +4 -2
  129. package/dist/mode-handlers/draw-90degree-polygon-handler.js.map +1 -1
  130. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -1
  131. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +0 -1
  132. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js.map +1 -1
  133. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -1
  134. package/dist/mode-handlers/draw-circle-from-center-handler.js +0 -1
  135. package/dist/mode-handlers/draw-circle-from-center-handler.js.map +1 -1
  136. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -1
  137. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +1 -2
  138. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js.map +1 -1
  139. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -1
  140. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +2 -2
  141. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js.map +1 -1
  142. package/dist/mode-handlers/draw-point-handler.js.map +1 -1
  143. package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -1
  144. package/dist/mode-handlers/draw-polygon-handler.js +4 -2
  145. package/dist/mode-handlers/draw-polygon-handler.js.map +1 -1
  146. package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -1
  147. package/dist/mode-handlers/draw-rectangle-handler.js +0 -1
  148. package/dist/mode-handlers/draw-rectangle-handler.js.map +1 -1
  149. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -1
  150. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +4 -2
  151. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js.map +1 -1
  152. package/dist/mode-handlers/mode-handler.d.ts +12 -12
  153. package/dist/mode-handlers/mode-handler.d.ts.map +1 -1
  154. package/dist/mode-handlers/mode-handler.js +6 -7
  155. package/dist/mode-handlers/mode-handler.js.map +1 -1
  156. package/dist/mode-handlers/modify-handler.d.ts +2 -2
  157. package/dist/mode-handlers/modify-handler.d.ts.map +1 -1
  158. package/dist/mode-handlers/modify-handler.js +1 -4
  159. package/dist/mode-handlers/modify-handler.js.map +1 -1
  160. package/dist/mode-handlers/rotate-handler.d.ts +2 -2
  161. package/dist/mode-handlers/rotate-handler.d.ts.map +1 -1
  162. package/dist/mode-handlers/rotate-handler.js +2 -7
  163. package/dist/mode-handlers/rotate-handler.js.map +1 -1
  164. package/dist/mode-handlers/scale-handler.d.ts +2 -2
  165. package/dist/mode-handlers/scale-handler.d.ts.map +1 -1
  166. package/dist/mode-handlers/scale-handler.js +2 -7
  167. package/dist/mode-handlers/scale-handler.js.map +1 -1
  168. package/dist/mode-handlers/snappable-handler.d.ts +3 -3
  169. package/dist/mode-handlers/snappable-handler.d.ts.map +1 -1
  170. package/dist/mode-handlers/snappable-handler.js.map +1 -1
  171. package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -1
  172. package/dist/mode-handlers/split-polygon-handler.js +4 -5
  173. package/dist/mode-handlers/split-polygon-handler.js.map +1 -1
  174. package/dist/mode-handlers/translate-handler.d.ts +2 -2
  175. package/dist/mode-handlers/translate-handler.d.ts.map +1 -1
  176. package/dist/mode-handlers/translate-handler.js +1 -4
  177. package/dist/mode-handlers/translate-handler.js.map +1 -1
  178. package/dist/utils/geojson-types.d.ts +13 -34
  179. package/dist/utils/geojson-types.d.ts.map +1 -1
  180. package/dist/utils/translate-from-center.d.ts +2 -4
  181. package/dist/utils/translate-from-center.d.ts.map +1 -1
  182. package/dist/utils/translate-from-center.js.map +1 -1
  183. package/dist/utils/utils.d.ts +3 -3
  184. package/dist/utils/utils.d.ts.map +1 -1
  185. package/dist/utils/utils.js +1 -1
  186. package/dist/utils/utils.js.map +1 -1
  187. package/dist/widgets/edit-mode-tray-widget.d.ts +1 -0
  188. package/dist/widgets/edit-mode-tray-widget.d.ts.map +1 -1
  189. package/dist/widgets/edit-mode-tray-widget.js +1 -0
  190. package/dist/widgets/edit-mode-tray-widget.js.map +1 -1
  191. package/dist/widgets/editor-toolbar-widget.d.ts +40 -0
  192. package/dist/widgets/editor-toolbar-widget.d.ts.map +1 -0
  193. package/dist/widgets/editor-toolbar-widget.js +170 -0
  194. package/dist/widgets/editor-toolbar-widget.js.map +1 -0
  195. package/package.json +47 -44
  196. package/src/edit-modes/draw-90degree-polygon-mode.ts +8 -2
  197. package/src/edit-modes/draw-circle-by-diameter-mode.ts +3 -3
  198. package/src/edit-modes/draw-circle-from-center-mode.ts +3 -3
  199. package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +4 -4
  200. package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +3 -4
  201. package/src/edit-modes/draw-line-string-mode.ts +10 -5
  202. package/src/edit-modes/draw-point-mode.ts +2 -2
  203. package/src/edit-modes/draw-polygon-by-dragging-mode.ts +8 -8
  204. package/src/edit-modes/draw-polygon-mode.ts +103 -124
  205. package/src/edit-modes/draw-rectangle-from-center-mode.ts +2 -3
  206. package/src/edit-modes/draw-rectangle-mode.ts +2 -3
  207. package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +2 -2
  208. package/src/edit-modes/draw-square-from-center-mode.ts +2 -3
  209. package/src/edit-modes/draw-square-mode.ts +2 -3
  210. package/src/edit-modes/duplicate-mode.ts +2 -2
  211. package/src/edit-modes/extend-line-string-mode.ts +11 -4
  212. package/src/edit-modes/extrude-mode.ts +7 -7
  213. package/src/edit-modes/geojson-edit-mode.ts +28 -19
  214. package/src/edit-modes/immutable-feature-collection.ts +10 -11
  215. package/src/edit-modes/measure-area-mode.ts +3 -3
  216. package/src/edit-modes/modify-mode.ts +42 -30
  217. package/src/edit-modes/resize-circle-mode.ts +10 -7
  218. package/src/edit-modes/rotate-mode.ts +11 -22
  219. package/src/edit-modes/scale-mode.ts +14 -19
  220. package/src/edit-modes/snappable-mode.ts +10 -5
  221. package/src/edit-modes/split-polygon-mode.ts +17 -15
  222. package/src/edit-modes/three-click-polygon-mode.ts +30 -33
  223. package/src/edit-modes/translate-mode.ts +15 -12
  224. package/src/edit-modes/two-click-polygon-mode.ts +13 -7
  225. package/src/edit-modes/types.ts +4 -4
  226. package/src/edit-modes/utils.ts +13 -17
  227. package/src/editable-layers/editable-geojson-layer.ts +35 -18
  228. package/src/editable-layers/selection-layer.ts +3 -3
  229. package/src/index.ts +11 -28
  230. package/src/mode-handlers/composite-mode-handler.ts +3 -3
  231. package/src/mode-handlers/draw-90degree-polygon-handler.ts +4 -2
  232. package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +0 -1
  233. package/src/mode-handlers/draw-circle-from-center-handler.ts +0 -1
  234. package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +1 -2
  235. package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +3 -2
  236. package/src/mode-handlers/draw-point-handler.ts +2 -2
  237. package/src/mode-handlers/draw-polygon-handler.ts +4 -2
  238. package/src/mode-handlers/draw-rectangle-handler.ts +0 -1
  239. package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +4 -2
  240. package/src/mode-handlers/mode-handler.ts +34 -20
  241. package/src/mode-handlers/modify-handler.ts +2 -4
  242. package/src/mode-handlers/rotate-handler.ts +5 -12
  243. package/src/mode-handlers/scale-handler.ts +6 -14
  244. package/src/mode-handlers/snappable-handler.ts +3 -3
  245. package/src/mode-handlers/split-polygon-handler.ts +8 -7
  246. package/src/mode-handlers/translate-handler.ts +3 -5
  247. package/src/utils/geojson-types.ts +31 -54
  248. package/src/utils/translate-from-center.ts +13 -31
  249. package/src/utils/utils.ts +5 -5
  250. package/src/widgets/edit-mode-tray-widget.tsx +2 -6
  251. package/src/widgets/editor-toolbar-widget.tsx +348 -0
  252. package/dist/lib/constants.d.ts +0 -7
  253. package/dist/lib/constants.d.ts.map +0 -1
  254. package/dist/lib/constants.js +0 -10
  255. package/dist/lib/constants.js.map +0 -1
  256. package/dist/lib/deck-renderer/deck-cache.d.ts +0 -15
  257. package/dist/lib/deck-renderer/deck-cache.d.ts.map +0 -1
  258. package/dist/lib/deck-renderer/deck-cache.js +0 -52
  259. package/dist/lib/deck-renderer/deck-cache.js.map +0 -1
  260. package/dist/lib/deck-renderer/deck-drawer.d.ts +0 -63
  261. package/dist/lib/deck-renderer/deck-drawer.d.ts.map +0 -1
  262. package/dist/lib/deck-renderer/deck-drawer.js +0 -233
  263. package/dist/lib/deck-renderer/deck-drawer.js.map +0 -1
  264. package/dist/lib/feature.d.ts +0 -11
  265. package/dist/lib/feature.d.ts.map +0 -1
  266. package/dist/lib/feature.js +0 -20
  267. package/dist/lib/feature.js.map +0 -1
  268. package/dist/lib/layer-mouse-event.d.ts +0 -12
  269. package/dist/lib/layer-mouse-event.d.ts.map +0 -1
  270. package/dist/lib/layer-mouse-event.js +0 -28
  271. package/dist/lib/layer-mouse-event.js.map +0 -1
  272. package/dist/lib/layers/junctions-layer.d.ts +0 -9
  273. package/dist/lib/layers/junctions-layer.d.ts.map +0 -1
  274. package/dist/lib/layers/junctions-layer.js +0 -37
  275. package/dist/lib/layers/junctions-layer.js.map +0 -1
  276. package/dist/lib/layers/segments-layer.d.ts +0 -19
  277. package/dist/lib/layers/segments-layer.d.ts.map +0 -1
  278. package/dist/lib/layers/segments-layer.js +0 -98
  279. package/dist/lib/layers/segments-layer.js.map +0 -1
  280. package/dist/lib/layers/texts-layer.d.ts +0 -9
  281. package/dist/lib/layers/texts-layer.d.ts.map +0 -1
  282. package/dist/lib/layers/texts-layer.js +0 -36
  283. package/dist/lib/layers/texts-layer.js.map +0 -1
  284. package/dist/lib/math.d.ts +0 -12
  285. package/dist/lib/math.d.ts.map +0 -1
  286. package/dist/lib/math.js +0 -26
  287. package/dist/lib/math.js.map +0 -1
  288. package/dist/lib/nebula-core.d.ts +0 -35
  289. package/dist/lib/nebula-core.d.ts.map +0 -1
  290. package/dist/lib/nebula-core.js +0 -258
  291. package/dist/lib/nebula-core.js.map +0 -1
  292. package/dist/lib/nebula-layer.d.ts +0 -14
  293. package/dist/lib/nebula-layer.d.ts.map +0 -1
  294. package/dist/lib/nebula-layer.js +0 -30
  295. package/dist/lib/nebula-layer.js.map +0 -1
  296. package/dist/lib/style.d.ts +0 -20
  297. package/dist/lib/style.d.ts.map +0 -1
  298. package/dist/lib/style.js +0 -24
  299. package/dist/lib/style.js.map +0 -1
  300. package/dist/utils/curve-utils.d.ts +0 -3
  301. package/dist/utils/curve-utils.d.ts.map +0 -1
  302. package/dist/utils/curve-utils.js +0 -65
  303. package/dist/utils/curve-utils.js.map +0 -1
  304. package/src/lib/constants.ts +0 -10
  305. package/src/lib/deck-renderer/deck-cache.ts +0 -61
  306. package/src/lib/deck-renderer/deck-drawer.ts +0 -263
  307. package/src/lib/feature.ts +0 -31
  308. package/src/lib/layer-mouse-event.ts +0 -33
  309. package/src/lib/layers/junctions-layer.ts +0 -44
  310. package/src/lib/layers/segments-layer.ts +0 -112
  311. package/src/lib/layers/texts-layer.ts +0 -47
  312. package/src/lib/math.ts +0 -30
  313. package/src/lib/nebula-core.ts +0 -327
  314. package/src/lib/nebula-layer.ts +0 -37
  315. package/src/lib/style.ts +0 -26
  316. package/src/utils/curve-utils.ts +0 -81
package/src/lib/math.ts DELETED
@@ -1,30 +0,0 @@
1
- // deck.gl-community
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import {Position} from '../utils/geojson-types';
6
-
7
- export function toDegree(radian: number): number {
8
- return (radian * 180) / Math.PI;
9
- }
10
-
11
- export function toRadian(angle: number): number {
12
- return (angle * Math.PI) / 180;
13
- }
14
-
15
- /**
16
- * Converts an array of latitudes, longitudes in E7 format to a list of points in degrees.
17
- *
18
- * @param {[]} array: An E7 array [lat_e7, lng_e7, lat_e7, lng_e7, ...]
19
- * @return {[]} An array of points in degrees
20
- * [ [lng_degrees, lat_degrees], [lng_degrees, lat_degrees], ...]
21
- */
22
- export function convertE7Array(array: number[]): Position[] {
23
- const points: Position[] = [];
24
- for (let i = 0; i < array.length; i += 2) {
25
- const lat = array[i] * 1e-7;
26
- const lng = array[i + 1] * 1e-7;
27
- points.push([lng, lat]);
28
- }
29
- return points;
30
- }
@@ -1,327 +0,0 @@
1
- // deck.gl-community
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import {EventEmitter} from 'eventemitter3';
6
- import {WebMercatorViewport} from '@deck.gl/core';
7
-
8
- import {DeckDrawer} from './deck-renderer/deck-drawer';
9
- import {LayerMouseEvent} from './layer-mouse-event';
10
- import {NebulaLayer} from './nebula-layer';
11
-
12
- const LOGGER_PREFIX = 'Nebula: ';
13
-
14
- export class NebulaCore {
15
- init(props: Record<string, any>) {
16
- this.props = props;
17
- this.wmViewport = new WebMercatorViewport(this.props.viewport);
18
-
19
- // TODO: Properly use pointer events: ['click', 'pointermove', 'pointerup', 'pointerdown']
20
- ['click', 'mousemove', 'mouseup', 'mousedown'].forEach((name) =>
21
- document.addEventListener(name, this._onMouseEvent as any, true)
22
- );
23
- }
24
-
25
- detach() {
26
- // TODO: Properly use pointer events: ['click', 'pointermove', 'pointerup', 'pointerdown']
27
- ['click', 'mousemove', 'mouseup', 'mousedown'].forEach((name) =>
28
- document.removeEventListener(name, this._onMouseEvent as any, true)
29
- );
30
- }
31
-
32
- updateProps(newProps: Record<string, any>) {
33
- this.props = newProps;
34
- const {viewport} = this.props;
35
-
36
- this.wmViewport = new WebMercatorViewport(viewport);
37
- }
38
-
39
- props: Record<string, any> = null!;
40
- deckgl: Record<string, any> | null = null;
41
- mainContainer: Record<string, any> | null = null;
42
- deckglMouseOverInfo: Record<string, any> | null | undefined = null;
43
- _deckDrawer: DeckDrawer = null!;
44
- _mouseWasDown: boolean = null!;
45
- wmViewport: WebMercatorViewport = null!;
46
- queryObjectEvents = new EventEmitter();
47
- forceUpdate: () => any = null!;
48
- inited: boolean = null!;
49
-
50
- log(message: string) {
51
- const {logger} = this.props;
52
- if (logger && logger.info) {
53
- logger.info(LOGGER_PREFIX + message);
54
- }
55
- }
56
-
57
- updateAllDeckObjects() {
58
- this.getAllLayers().forEach((layer) => {
59
- if (layer && layer.deckCache) {
60
- layer.deckCache.updateAllDeckObjects();
61
- }
62
- });
63
- this.forceUpdate();
64
- }
65
-
66
- updateDeckObjectsByIds(ids: string[]) {
67
- this.getAllLayers().forEach((layer) => {
68
- if (layer && layer.deckCache) {
69
- layer.deckCache.updateDeckObjectsByIds(ids);
70
- }
71
- });
72
- this.forceUpdate();
73
- }
74
-
75
- rerenderLayers() {
76
- this.updateAllDeckObjects();
77
- }
78
-
79
- _isNebulaEvent({buttons, target, type}: Record<string, any>) {
80
- const {viewport} = this.props;
81
-
82
- // allow mouseup event aggressively to cancel drag properly
83
- // TODO: use pointer capture setPointerCapture() to capture mouseup properly after deckgl
84
- if (this._mouseWasDown && type === 'mouseup') {
85
- this._mouseWasDown = false;
86
- return true;
87
- }
88
-
89
- // allow mousemove event while dragging
90
- if (type === 'mousemove' && buttons > 0) {
91
- return true;
92
- }
93
-
94
- if (!target.getBoundingClientRect) {
95
- return false;
96
- }
97
-
98
- const rect = target.getBoundingClientRect();
99
- // Only listen to events coming from the basemap
100
- // identified by the canvas of the same size as viewport.
101
- // Need to round the rect dimension as some monitors
102
- // have some sub-pixel difference with viewport.
103
- return (
104
- Math.round(rect.width) === Math.round(viewport.width) &&
105
- Math.round(rect.height) === Math.round(viewport.height)
106
- );
107
- }
108
-
109
- _onMouseEvent = (event: MouseEvent) => {
110
- if (!this._isNebulaEvent(event)) {
111
- return;
112
- }
113
-
114
- if (event.type === 'mousedown') {
115
- this._mouseWasDown = true;
116
- }
117
-
118
- // offsetX/Y of the MouseEvent provides the offset in the X/Y coordinate
119
- // of the mouse pointer between that event and the padding edge of the target node.
120
- // We set our listener to document so we need to adjust offsetX/Y
121
- // in case the target is not be our WebGL canvas.
122
- const {top = 0, left = 0} = this.mainContainer
123
- ? this.mainContainer.getBoundingClientRect()
124
- : {};
125
- const proxyEvent = new Proxy(event, {
126
- get: (original: any, propertyName: string) => {
127
- if (propertyName === 'offsetX') {
128
- return original.pageX - left;
129
- }
130
-
131
- if (propertyName === 'offsetY') {
132
- return original.pageY - top;
133
- }
134
-
135
- // TODO: Properly use pointer events
136
- if (propertyName === 'type') {
137
- return original.type.replace('pointer', 'mouse');
138
- }
139
-
140
- const result = original[propertyName];
141
- if (typeof result === 'function') {
142
- return result.bind(original);
143
- }
144
- return result;
145
- }
146
- });
147
-
148
- this._handleDeckGLEvent(proxyEvent);
149
- };
150
-
151
- getMouseGroundPosition(event: Record<string, any>) {
152
- return this.wmViewport.unproject([event.offsetX, event.offsetY]) as [number, number];
153
- }
154
-
155
- unprojectMousePosition(mousePosition: [number, number]): [number, number] {
156
- return this.wmViewport.unproject(mousePosition) as [number, number];
157
- }
158
-
159
- // eslint-disable-next-line max-statements, complexity
160
- _handleDeckGLEvent(event: Record<string, any>) {
161
- const {
162
- deckgl,
163
- props: {onMapMouseEvent, selectionType, eventFilter}
164
- } = this;
165
- let sendMapEvent = true;
166
- let cursor = 'auto';
167
-
168
- if (event && deckgl && selectionType) {
169
- if (!this._deckDrawer) this._deckDrawer = new DeckDrawer(this);
170
-
171
- const lngLat = this.getMouseGroundPosition(event);
172
- if (eventFilter && !eventFilter(lngLat, event)) return;
173
- const drawerResult = this._deckDrawer.handleEvent(event, lngLat, selectionType);
174
- if (drawerResult.redraw) this.forceUpdate();
175
- return;
176
- }
177
-
178
- if (event && deckgl && (!event.buttons || event.type !== 'mousemove')) {
179
- // TODO: sort by mouse priority
180
- const layerIds = deckgl.props.layers
181
- .filter(
182
- (l: any) => l && l.props && l.props.nebulaLayer && l.props.nebulaLayer.enablePicking
183
- )
184
- .map((l: any) => l.id);
185
-
186
- const pickingInfo = deckgl.pickObject({
187
- x: event.offsetX,
188
- y: event.offsetY,
189
- radius: 5,
190
- layerIds
191
- });
192
- this.queryObjectEvents.emit('pick', {event, pickingInfo});
193
- if (pickingInfo) {
194
- sendMapEvent = false;
195
-
196
- const {index, lngLat} = pickingInfo;
197
- if (eventFilter && !eventFilter(lngLat, event)) return;
198
-
199
- const {layer: deckLayer, object} = pickingInfo;
200
-
201
- if (
202
- deckLayer &&
203
- deckLayer.props &&
204
- deckLayer.props.nebulaLayer &&
205
- deckLayer.props.nebulaLayer.eventHandler
206
- ) {
207
- deckLayer.props.nebulaLayer.eventHandler(event, pickingInfo);
208
- }
209
-
210
- const original =
211
- object.original ||
212
- (deckLayer.props.nebulaLayer &&
213
- deckLayer.props.nebulaLayer.deckCache &&
214
- deckLayer.props.nebulaLayer.deckCache.originals[index]);
215
-
216
- if (original) {
217
- this.deckglMouseOverInfo = {originalLayer: deckLayer.props.nebulaLayer, index};
218
- // @ts-expect-error narrow event type
219
- const nebulaMouseEvent = new LayerMouseEvent(event, {
220
- data: original,
221
- metadata: object.metadata,
222
- groundPoint: lngLat,
223
- nebula: this
224
- });
225
- deckLayer.props.nebulaLayer.emit(event.type, nebulaMouseEvent);
226
- this.forceUpdate();
227
- }
228
-
229
- cursor = 'pointer';
230
- }
231
- }
232
-
233
- if (document.documentElement) {
234
- document.documentElement.style.cursor = cursor;
235
- }
236
-
237
- if (sendMapEvent) {
238
- this.deckglMouseOverInfo = null;
239
-
240
- const lngLat = this.getMouseGroundPosition(event);
241
- if (eventFilter && !eventFilter(lngLat, event)) return;
242
-
243
- // send to layers first
244
- // @ts-expect-error narrow event type
245
- const nebulaMouseEvent = new LayerMouseEvent(event, {
246
- groundPoint: lngLat,
247
- nebula: this
248
- });
249
- this.getAllLayers()
250
- .filter((layer) => layer && layer.usesMapEvents)
251
- .forEach((layer) => layer.emit('mapMouseEvent', nebulaMouseEvent));
252
-
253
- this.getAllLayers()
254
- .filter(
255
- (layer) =>
256
- layer && layer.props && layer.props.nebulaLayer && layer.props.nebulaLayer.mapMouseEvent
257
- )
258
- .forEach((layer) => layer.props.nebulaLayer.mapMouseEvent(nebulaMouseEvent, layer));
259
-
260
- if (onMapMouseEvent) {
261
- onMapMouseEvent(event, lngLat);
262
- }
263
- }
264
- }
265
-
266
- getExtraDeckLayers(): Record<string, any>[] {
267
- const result: Record<string, any>[] = [];
268
-
269
- if (this._deckDrawer) result.push(...this._deckDrawer.render());
270
-
271
- return result;
272
- }
273
-
274
- renderDeckLayers() {
275
- return this.getAllLayers()
276
- .map((layer) => (layer instanceof NebulaLayer ? layer.render({nebula: this}) : layer))
277
- .filter(Boolean);
278
- }
279
-
280
- getAllLayers() {
281
- const result: Record<string, any>[] = [];
282
-
283
- this.props.layers.filter(Boolean).forEach((layer) => {
284
- result.push(layer);
285
- // Only NebulaLayers have helpers, Deck GL layers don't.
286
- if (layer instanceof NebulaLayer) {
287
- result.push(...layer.helperLayers);
288
- }
289
- });
290
-
291
- return result.filter(Boolean);
292
- }
293
-
294
- getRenderedLayers() {
295
- return [...this.renderDeckLayers(), ...this.getExtraDeckLayers()];
296
- }
297
-
298
- updateAndGetRenderedLayers(
299
- layers: Record<string, any>[],
300
- viewport: WebMercatorViewport,
301
- container: Record<string, any>
302
- ) {
303
- if (this.inited) {
304
- this.updateProps({layers, viewport});
305
- this.forceUpdate = () => container.forceUpdate();
306
- } else {
307
- this.inited = true;
308
- this.init({layers, viewport});
309
- this.forceUpdate = () => container.forceUpdate();
310
- this.updateAllDeckObjects();
311
- }
312
-
313
- return this.getRenderedLayers();
314
- }
315
-
316
- setDeck(deckgl: Record<string, any> | null) {
317
- if (deckgl) {
318
- this.deckgl = deckgl;
319
- }
320
- }
321
-
322
- setMainContainer(mainContainer: Record<string, any> | null) {
323
- if (mainContainer) {
324
- this.mainContainer = mainContainer;
325
- }
326
- }
327
- }
@@ -1,37 +0,0 @@
1
- // deck.gl-community
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import {EventEmitter} from 'eventemitter3';
6
- import {v4} from 'uuid';
7
-
8
- import {Feature} from './feature';
9
-
10
- export class NebulaLayer extends EventEmitter {
11
- getData: () => Record<string, any>[];
12
- toNebulaFeature: (data: Record<string, any>) => Feature;
13
- id: string;
14
- helperLayers: Record<string, any>[];
15
-
16
- // flags
17
- usesMapEvents = false;
18
- enablePicking = false;
19
- enableSelection = false;
20
- //
21
-
22
- constructor({getData, on, toNebulaFeature}: Record<string, any>) {
23
- super();
24
- this.id = v4();
25
- this.getData = getData;
26
- this.toNebulaFeature = toNebulaFeature;
27
- this.helperLayers = [];
28
-
29
- if (on) {
30
- Object.keys(on).forEach((key) => this.on(key, on[key]));
31
- }
32
- }
33
-
34
- render(config: Record<string, any>): unknown {
35
- return null;
36
- }
37
- }
package/src/lib/style.ts DELETED
@@ -1,26 +0,0 @@
1
- // deck.gl-community
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- // Describes the arrow style of polylines
6
- export const ArrowStyles = {
7
- NONE: 0,
8
- FORWARD: 1,
9
- BACKWARD: 2,
10
- BOTH: 3
11
- };
12
-
13
- export const DEFAULT_ARROWS = 1;
14
- export const MAX_ARROWS = 3;
15
-
16
- export const DEFAULT_STYLE = {
17
- arrowColor: [0, 0, 0, 1],
18
- arrowCount: DEFAULT_ARROWS,
19
- arrowStyle: ArrowStyles.NONE,
20
- fillColor: [0, 0, 0, 1],
21
- lineColor: [0, 0, 0, 1],
22
- lineWidthMeters: 5,
23
- outlineRadiusMeters: 0,
24
- opacity: 1,
25
- zLevel: 0
26
- };
@@ -1,81 +0,0 @@
1
- // deck.gl-community
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import hermite from 'cubic-hermite-spline';
6
- import turfDistance from '@turf/distance';
7
- import {lineString} from '@turf/helpers';
8
- import type {Feature, MultiLineString, LineString, Position} from '@turf/helpers';
9
-
10
- const INTERPOLATION_INTERVAL = 0.005;
11
- const INTERPOLATION_THRESHOLD = 0.001;
12
-
13
- function calculateSingleTangent(p0: [number, number], p1: [number, number], d: number): number[] {
14
- const x = (p1[0] - p0[0]) / d;
15
- const y = (p1[1] - p0[1]) / d;
16
- return [x, y];
17
- }
18
-
19
- // eslint-disable-next-line max-statements
20
- export function generateCurveFromControlPoints(
21
- line: Feature<MultiLineString>
22
- ): Feature<LineString> {
23
- // calculate knots
24
- const knots = [0];
25
- let prev: Position[] | null = null;
26
- let totalDistance = 0;
27
-
28
- const {coordinates: coords} = line.geometry;
29
-
30
- for (let i = 0; i < coords.length; i++) {
31
- const cur = coords[i];
32
- if (prev !== null) {
33
- // @ts-expect-error turf types diff
34
- totalDistance += turfDistance(prev, cur);
35
- knots.push(totalDistance);
36
- }
37
- prev = cur;
38
- }
39
-
40
- // calculate tangents
41
- const tangents: number[][] = [];
42
-
43
- // first tangent
44
- // @ts-expect-error TODO
45
- tangents.push(calculateSingleTangent(coords[0], coords[1], knots[1] - knots[0]));
46
-
47
- // second to before last
48
- for (let i = 1; i < coords.length - 1; i++) {
49
- // @ts-expect-error TODO
50
- const A = calculateSingleTangent(coords[i], coords[i + 1], knots[i + 1] - knots[i]);
51
- // @ts-expect-error TODO
52
- const B = calculateSingleTangent(coords[i - 1], coords[i], knots[i] - knots[i - 1]);
53
- const x = (A[0] + B[0]) / 2.0;
54
- const y = (A[1] + B[1]) / 2.0;
55
- tangents.push([x, y]);
56
- }
57
-
58
- // last tangent
59
- const last = coords.length - 1;
60
- tangents.push(
61
- // @ts-expect-error TODO
62
- calculateSingleTangent(coords[last - 1], coords[last], knots[last] - knots[last - 1])
63
- );
64
-
65
- // generate curve
66
- const result: any[] = [];
67
- for (let i = 0; i < coords.length; i++) {
68
- // add control point
69
- result.push(coords[i]);
70
-
71
- // add interpolated values
72
- for (let t = knots[i] + INTERPOLATION_INTERVAL; t < knots[i + 1]; t += INTERPOLATION_INTERVAL) {
73
- if (knots[i + 1] - t > INTERPOLATION_THRESHOLD) {
74
- // Only add if not too close to a control point (knot = control point)
75
- result.push(hermite(t, coords, tangents, knots));
76
- }
77
- }
78
- }
79
-
80
- return lineString(result);
81
- }