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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts +2 -2
  2. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts.map +1 -1
  3. package/dist/edit-modes/draw-90degree-polygon-mode.js.map +1 -1
  4. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +2 -2
  5. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts.map +1 -1
  6. package/dist/edit-modes/draw-circle-by-diameter-mode.js +0 -1
  7. package/dist/edit-modes/draw-circle-by-diameter-mode.js.map +1 -1
  8. package/dist/edit-modes/draw-circle-from-center-mode.d.ts +2 -2
  9. package/dist/edit-modes/draw-circle-from-center-mode.d.ts.map +1 -1
  10. package/dist/edit-modes/draw-circle-from-center-mode.js +0 -1
  11. package/dist/edit-modes/draw-circle-from-center-mode.js.map +1 -1
  12. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +2 -2
  13. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts.map +1 -1
  14. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +1 -2
  15. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js.map +1 -1
  16. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +2 -2
  17. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts.map +1 -1
  18. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +0 -2
  19. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js.map +1 -1
  20. package/dist/edit-modes/draw-line-string-mode.d.ts +5 -5
  21. package/dist/edit-modes/draw-line-string-mode.d.ts.map +1 -1
  22. package/dist/edit-modes/draw-line-string-mode.js.map +1 -1
  23. package/dist/edit-modes/draw-point-mode.d.ts +2 -2
  24. package/dist/edit-modes/draw-point-mode.d.ts.map +1 -1
  25. package/dist/edit-modes/draw-point-mode.js.map +1 -1
  26. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +8 -8
  27. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts.map +1 -1
  28. package/dist/edit-modes/draw-polygon-by-dragging-mode.js.map +1 -1
  29. package/dist/edit-modes/draw-polygon-mode.d.ts +5 -5
  30. package/dist/edit-modes/draw-polygon-mode.d.ts.map +1 -1
  31. package/dist/edit-modes/draw-polygon-mode.js.map +1 -1
  32. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +2 -2
  33. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -1
  34. package/dist/edit-modes/draw-rectangle-from-center-mode.js +0 -1
  35. package/dist/edit-modes/draw-rectangle-from-center-mode.js.map +1 -1
  36. package/dist/edit-modes/draw-rectangle-mode.d.ts +2 -2
  37. package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -1
  38. package/dist/edit-modes/draw-rectangle-mode.js +0 -1
  39. package/dist/edit-modes/draw-rectangle-mode.js.map +1 -1
  40. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +2 -2
  41. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -1
  42. package/dist/edit-modes/draw-square-from-center-mode.d.ts +2 -2
  43. package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -1
  44. package/dist/edit-modes/draw-square-from-center-mode.js +0 -1
  45. package/dist/edit-modes/draw-square-from-center-mode.js.map +1 -1
  46. package/dist/edit-modes/draw-square-mode.d.ts +2 -2
  47. package/dist/edit-modes/draw-square-mode.d.ts.map +1 -1
  48. package/dist/edit-modes/draw-square-mode.js +0 -1
  49. package/dist/edit-modes/draw-square-mode.js.map +1 -1
  50. package/dist/edit-modes/duplicate-mode.d.ts +2 -2
  51. package/dist/edit-modes/duplicate-mode.d.ts.map +1 -1
  52. package/dist/edit-modes/duplicate-mode.js.map +1 -1
  53. package/dist/edit-modes/extend-line-string-mode.d.ts +4 -4
  54. package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -1
  55. package/dist/edit-modes/extend-line-string-mode.js.map +1 -1
  56. package/dist/edit-modes/extrude-mode.d.ts +7 -7
  57. package/dist/edit-modes/extrude-mode.d.ts.map +1 -1
  58. package/dist/edit-modes/extrude-mode.js.map +1 -1
  59. package/dist/edit-modes/geojson-edit-mode.d.ts +9 -9
  60. package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -1
  61. package/dist/edit-modes/geojson-edit-mode.js +4 -7
  62. package/dist/edit-modes/geojson-edit-mode.js.map +1 -1
  63. package/dist/edit-modes/immutable-feature-collection.d.ts +7 -7
  64. package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -1
  65. package/dist/edit-modes/immutable-feature-collection.js.map +1 -1
  66. package/dist/edit-modes/measure-area-mode.d.ts +3 -3
  67. package/dist/edit-modes/measure-area-mode.d.ts.map +1 -1
  68. package/dist/edit-modes/measure-area-mode.js.map +1 -1
  69. package/dist/edit-modes/modify-mode.d.ts +8 -8
  70. package/dist/edit-modes/modify-mode.d.ts.map +1 -1
  71. package/dist/edit-modes/modify-mode.js +2 -4
  72. package/dist/edit-modes/modify-mode.js.map +1 -1
  73. package/dist/edit-modes/resize-circle-mode.d.ts +3 -3
  74. package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -1
  75. package/dist/edit-modes/resize-circle-mode.js +1 -5
  76. package/dist/edit-modes/resize-circle-mode.js.map +1 -1
  77. package/dist/edit-modes/rotate-mode.d.ts +7 -7
  78. package/dist/edit-modes/rotate-mode.d.ts.map +1 -1
  79. package/dist/edit-modes/rotate-mode.js +2 -9
  80. package/dist/edit-modes/rotate-mode.js.map +1 -1
  81. package/dist/edit-modes/scale-mode.d.ts +11 -11
  82. package/dist/edit-modes/scale-mode.d.ts.map +1 -1
  83. package/dist/edit-modes/scale-mode.js +1 -6
  84. package/dist/edit-modes/scale-mode.js.map +1 -1
  85. package/dist/edit-modes/snappable-mode.d.ts +5 -5
  86. package/dist/edit-modes/snappable-mode.d.ts.map +1 -1
  87. package/dist/edit-modes/snappable-mode.js.map +1 -1
  88. package/dist/edit-modes/split-polygon-mode.d.ts +5 -5
  89. package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -1
  90. package/dist/edit-modes/split-polygon-mode.js +2 -5
  91. package/dist/edit-modes/split-polygon-mode.js.map +1 -1
  92. package/dist/edit-modes/three-click-polygon-mode.d.ts +3 -3
  93. package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -1
  94. package/dist/edit-modes/three-click-polygon-mode.js.map +1 -1
  95. package/dist/edit-modes/translate-mode.d.ts +6 -6
  96. package/dist/edit-modes/translate-mode.d.ts.map +1 -1
  97. package/dist/edit-modes/translate-mode.js +1 -2
  98. package/dist/edit-modes/translate-mode.js.map +1 -1
  99. package/dist/edit-modes/two-click-polygon-mode.d.ts +6 -6
  100. package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -1
  101. package/dist/edit-modes/two-click-polygon-mode.js.map +1 -1
  102. package/dist/edit-modes/types.d.ts +3 -3
  103. package/dist/edit-modes/types.d.ts.map +1 -1
  104. package/dist/edit-modes/utils.d.ts +7 -7
  105. package/dist/edit-modes/utils.d.ts.map +1 -1
  106. package/dist/edit-modes/utils.js +0 -3
  107. package/dist/edit-modes/utils.js.map +1 -1
  108. package/dist/editable-layers/editable-geojson-layer.d.ts +5 -13
  109. package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -1
  110. package/dist/editable-layers/editable-geojson-layer.js +4 -4
  111. package/dist/editable-layers/editable-geojson-layer.js.map +1 -1
  112. package/dist/editable-layers/selection-layer.d.ts +1 -2
  113. package/dist/editable-layers/selection-layer.d.ts.map +1 -1
  114. package/dist/editable-layers/selection-layer.js +2 -2
  115. package/dist/editable-layers/selection-layer.js.map +1 -1
  116. package/dist/index.cjs +192 -942
  117. package/dist/index.cjs.map +4 -4
  118. package/dist/index.d.ts +3 -11
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +1 -10
  121. package/dist/index.js.map +1 -1
  122. package/dist/mode-handlers/composite-mode-handler.d.ts +3 -3
  123. package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -1
  124. package/dist/mode-handlers/composite-mode-handler.js.map +1 -1
  125. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -1
  126. package/dist/mode-handlers/draw-90degree-polygon-handler.js +4 -2
  127. package/dist/mode-handlers/draw-90degree-polygon-handler.js.map +1 -1
  128. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -1
  129. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +0 -1
  130. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js.map +1 -1
  131. package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -1
  132. package/dist/mode-handlers/draw-circle-from-center-handler.js +0 -1
  133. package/dist/mode-handlers/draw-circle-from-center-handler.js.map +1 -1
  134. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -1
  135. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +1 -2
  136. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js.map +1 -1
  137. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -1
  138. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +2 -2
  139. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js.map +1 -1
  140. package/dist/mode-handlers/draw-point-handler.js.map +1 -1
  141. package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -1
  142. package/dist/mode-handlers/draw-polygon-handler.js +4 -2
  143. package/dist/mode-handlers/draw-polygon-handler.js.map +1 -1
  144. package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -1
  145. package/dist/mode-handlers/draw-rectangle-handler.js +0 -1
  146. package/dist/mode-handlers/draw-rectangle-handler.js.map +1 -1
  147. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -1
  148. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +4 -2
  149. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js.map +1 -1
  150. package/dist/mode-handlers/mode-handler.d.ts +12 -12
  151. package/dist/mode-handlers/mode-handler.d.ts.map +1 -1
  152. package/dist/mode-handlers/mode-handler.js +6 -7
  153. package/dist/mode-handlers/mode-handler.js.map +1 -1
  154. package/dist/mode-handlers/modify-handler.d.ts +2 -2
  155. package/dist/mode-handlers/modify-handler.d.ts.map +1 -1
  156. package/dist/mode-handlers/modify-handler.js +1 -4
  157. package/dist/mode-handlers/modify-handler.js.map +1 -1
  158. package/dist/mode-handlers/rotate-handler.d.ts +2 -2
  159. package/dist/mode-handlers/rotate-handler.d.ts.map +1 -1
  160. package/dist/mode-handlers/rotate-handler.js +2 -7
  161. package/dist/mode-handlers/rotate-handler.js.map +1 -1
  162. package/dist/mode-handlers/scale-handler.d.ts +2 -2
  163. package/dist/mode-handlers/scale-handler.d.ts.map +1 -1
  164. package/dist/mode-handlers/scale-handler.js +2 -7
  165. package/dist/mode-handlers/scale-handler.js.map +1 -1
  166. package/dist/mode-handlers/snappable-handler.d.ts +3 -3
  167. package/dist/mode-handlers/snappable-handler.d.ts.map +1 -1
  168. package/dist/mode-handlers/snappable-handler.js.map +1 -1
  169. package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -1
  170. package/dist/mode-handlers/split-polygon-handler.js +4 -5
  171. package/dist/mode-handlers/split-polygon-handler.js.map +1 -1
  172. package/dist/mode-handlers/translate-handler.d.ts +2 -2
  173. package/dist/mode-handlers/translate-handler.d.ts.map +1 -1
  174. package/dist/mode-handlers/translate-handler.js +1 -4
  175. package/dist/mode-handlers/translate-handler.js.map +1 -1
  176. package/dist/utils/geojson-types.d.ts +13 -34
  177. package/dist/utils/geojson-types.d.ts.map +1 -1
  178. package/dist/utils/translate-from-center.d.ts +2 -4
  179. package/dist/utils/translate-from-center.d.ts.map +1 -1
  180. package/dist/utils/translate-from-center.js.map +1 -1
  181. package/dist/utils/utils.d.ts +3 -3
  182. package/dist/utils/utils.d.ts.map +1 -1
  183. package/dist/utils/utils.js.map +1 -1
  184. package/package.json +33 -34
  185. package/src/edit-modes/draw-90degree-polygon-mode.ts +2 -2
  186. package/src/edit-modes/draw-circle-by-diameter-mode.ts +3 -3
  187. package/src/edit-modes/draw-circle-from-center-mode.ts +3 -3
  188. package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +4 -4
  189. package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +3 -4
  190. package/src/edit-modes/draw-line-string-mode.ts +5 -5
  191. package/src/edit-modes/draw-point-mode.ts +2 -2
  192. package/src/edit-modes/draw-polygon-by-dragging-mode.ts +8 -8
  193. package/src/edit-modes/draw-polygon-mode.ts +8 -8
  194. package/src/edit-modes/draw-rectangle-from-center-mode.ts +2 -3
  195. package/src/edit-modes/draw-rectangle-mode.ts +2 -3
  196. package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +2 -2
  197. package/src/edit-modes/draw-square-from-center-mode.ts +2 -3
  198. package/src/edit-modes/draw-square-mode.ts +3 -3
  199. package/src/edit-modes/duplicate-mode.ts +2 -2
  200. package/src/edit-modes/extend-line-string-mode.ts +4 -4
  201. package/src/edit-modes/extrude-mode.ts +7 -7
  202. package/src/edit-modes/geojson-edit-mode.ts +16 -19
  203. package/src/edit-modes/immutable-feature-collection.ts +10 -11
  204. package/src/edit-modes/measure-area-mode.ts +3 -3
  205. package/src/edit-modes/modify-mode.ts +13 -13
  206. package/src/edit-modes/resize-circle-mode.ts +6 -8
  207. package/src/edit-modes/rotate-mode.ts +9 -15
  208. package/src/edit-modes/scale-mode.ts +11 -15
  209. package/src/edit-modes/snappable-mode.ts +5 -5
  210. package/src/edit-modes/split-polygon-mode.ts +12 -16
  211. package/src/edit-modes/three-click-polygon-mode.ts +3 -3
  212. package/src/edit-modes/translate-mode.ts +10 -12
  213. package/src/edit-modes/two-click-polygon-mode.ts +7 -7
  214. package/src/edit-modes/types.ts +4 -4
  215. package/src/edit-modes/utils.ts +12 -16
  216. package/src/editable-layers/editable-geojson-layer.ts +19 -18
  217. package/src/editable-layers/selection-layer.ts +3 -3
  218. package/src/index.ts +8 -28
  219. package/src/mode-handlers/composite-mode-handler.ts +3 -3
  220. package/src/mode-handlers/draw-90degree-polygon-handler.ts +4 -2
  221. package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +0 -1
  222. package/src/mode-handlers/draw-circle-from-center-handler.ts +0 -1
  223. package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +1 -2
  224. package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +3 -2
  225. package/src/mode-handlers/draw-point-handler.ts +2 -2
  226. package/src/mode-handlers/draw-polygon-handler.ts +4 -2
  227. package/src/mode-handlers/draw-rectangle-handler.ts +0 -1
  228. package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +4 -2
  229. package/src/mode-handlers/mode-handler.ts +20 -21
  230. package/src/mode-handlers/modify-handler.ts +2 -4
  231. package/src/mode-handlers/rotate-handler.ts +4 -8
  232. package/src/mode-handlers/scale-handler.ts +4 -8
  233. package/src/mode-handlers/snappable-handler.ts +3 -3
  234. package/src/mode-handlers/split-polygon-handler.ts +6 -7
  235. package/src/mode-handlers/translate-handler.ts +3 -5
  236. package/src/utils/geojson-types.ts +15 -54
  237. package/src/utils/translate-from-center.ts +6 -11
  238. package/src/utils/utils.ts +4 -4
  239. package/dist/lib/constants.d.ts +0 -7
  240. package/dist/lib/constants.d.ts.map +0 -1
  241. package/dist/lib/constants.js +0 -10
  242. package/dist/lib/constants.js.map +0 -1
  243. package/dist/lib/deck-renderer/deck-cache.d.ts +0 -15
  244. package/dist/lib/deck-renderer/deck-cache.d.ts.map +0 -1
  245. package/dist/lib/deck-renderer/deck-cache.js +0 -52
  246. package/dist/lib/deck-renderer/deck-cache.js.map +0 -1
  247. package/dist/lib/deck-renderer/deck-drawer.d.ts +0 -63
  248. package/dist/lib/deck-renderer/deck-drawer.d.ts.map +0 -1
  249. package/dist/lib/deck-renderer/deck-drawer.js +0 -233
  250. package/dist/lib/deck-renderer/deck-drawer.js.map +0 -1
  251. package/dist/lib/feature.d.ts +0 -11
  252. package/dist/lib/feature.d.ts.map +0 -1
  253. package/dist/lib/feature.js +0 -20
  254. package/dist/lib/feature.js.map +0 -1
  255. package/dist/lib/layer-mouse-event.d.ts +0 -12
  256. package/dist/lib/layer-mouse-event.d.ts.map +0 -1
  257. package/dist/lib/layer-mouse-event.js +0 -28
  258. package/dist/lib/layer-mouse-event.js.map +0 -1
  259. package/dist/lib/layers/junctions-layer.d.ts +0 -9
  260. package/dist/lib/layers/junctions-layer.d.ts.map +0 -1
  261. package/dist/lib/layers/junctions-layer.js +0 -37
  262. package/dist/lib/layers/junctions-layer.js.map +0 -1
  263. package/dist/lib/layers/segments-layer.d.ts +0 -19
  264. package/dist/lib/layers/segments-layer.d.ts.map +0 -1
  265. package/dist/lib/layers/segments-layer.js +0 -98
  266. package/dist/lib/layers/segments-layer.js.map +0 -1
  267. package/dist/lib/layers/texts-layer.d.ts +0 -9
  268. package/dist/lib/layers/texts-layer.d.ts.map +0 -1
  269. package/dist/lib/layers/texts-layer.js +0 -36
  270. package/dist/lib/layers/texts-layer.js.map +0 -1
  271. package/dist/lib/math.d.ts +0 -12
  272. package/dist/lib/math.d.ts.map +0 -1
  273. package/dist/lib/math.js +0 -26
  274. package/dist/lib/math.js.map +0 -1
  275. package/dist/lib/nebula-core.d.ts +0 -35
  276. package/dist/lib/nebula-core.d.ts.map +0 -1
  277. package/dist/lib/nebula-core.js +0 -258
  278. package/dist/lib/nebula-core.js.map +0 -1
  279. package/dist/lib/nebula-layer.d.ts +0 -14
  280. package/dist/lib/nebula-layer.d.ts.map +0 -1
  281. package/dist/lib/nebula-layer.js +0 -30
  282. package/dist/lib/nebula-layer.js.map +0 -1
  283. package/dist/lib/style.d.ts +0 -20
  284. package/dist/lib/style.d.ts.map +0 -1
  285. package/dist/lib/style.js +0 -24
  286. package/dist/lib/style.js.map +0 -1
  287. package/dist/utils/curve-utils.d.ts +0 -3
  288. package/dist/utils/curve-utils.d.ts.map +0 -1
  289. package/dist/utils/curve-utils.js +0 -65
  290. package/dist/utils/curve-utils.js.map +0 -1
  291. package/src/lib/constants.ts +0 -10
  292. package/src/lib/deck-renderer/deck-cache.ts +0 -61
  293. package/src/lib/deck-renderer/deck-drawer.ts +0 -263
  294. package/src/lib/feature.ts +0 -31
  295. package/src/lib/layer-mouse-event.ts +0 -33
  296. package/src/lib/layers/junctions-layer.ts +0 -44
  297. package/src/lib/layers/segments-layer.ts +0 -112
  298. package/src/lib/layers/texts-layer.ts +0 -47
  299. package/src/lib/math.ts +0 -30
  300. package/src/lib/nebula-core.ts +0 -327
  301. package/src/lib/nebula-layer.ts +0 -37
  302. package/src/lib/style.ts +0 -26
  303. package/src/utils/curve-utils.ts +0 -81
@@ -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
- }