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

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 (279) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +2 -81
  3. package/dist/constants.js +4 -1
  4. package/dist/edit-modes/composite-mode.d.ts +1 -1
  5. package/dist/edit-modes/composite-mode.js +4 -1
  6. package/dist/edit-modes/draw-90degree-polygon-mode.d.ts +1 -1
  7. package/dist/edit-modes/draw-90degree-polygon-mode.js +29 -24
  8. package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +1 -1
  9. package/dist/edit-modes/draw-circle-by-diameter-mode.js +7 -4
  10. package/dist/edit-modes/draw-circle-from-center-mode.d.ts +1 -1
  11. package/dist/edit-modes/draw-circle-from-center-mode.js +7 -4
  12. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +1 -1
  13. package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +3 -0
  14. package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +1 -1
  15. package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +3 -0
  16. package/dist/edit-modes/draw-line-string-mode.d.ts +1 -1
  17. package/dist/edit-modes/draw-line-string-mode.js +19 -16
  18. package/dist/edit-modes/draw-point-mode.d.ts +1 -1
  19. package/dist/edit-modes/draw-point-mode.js +7 -4
  20. package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +1 -1
  21. package/dist/edit-modes/draw-polygon-by-dragging-mode.js +10 -5
  22. package/dist/edit-modes/draw-polygon-mode.d.ts +1 -1
  23. package/dist/edit-modes/draw-polygon-mode.js +20 -16
  24. package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +1 -1
  25. package/dist/edit-modes/draw-rectangle-from-center-mode.js +3 -0
  26. package/dist/edit-modes/draw-rectangle-mode.d.ts +1 -1
  27. package/dist/edit-modes/draw-rectangle-mode.js +3 -0
  28. package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +1 -1
  29. package/dist/edit-modes/draw-rectangle-using-three-points-mode.js +8 -5
  30. package/dist/edit-modes/draw-square-from-center-mode.d.ts +1 -1
  31. package/dist/edit-modes/draw-square-from-center-mode.js +3 -0
  32. package/dist/edit-modes/draw-square-mode.d.ts +1 -1
  33. package/dist/edit-modes/draw-square-mode.js +3 -0
  34. package/dist/edit-modes/duplicate-mode.d.ts +1 -1
  35. package/dist/edit-modes/duplicate-mode.js +3 -0
  36. package/dist/edit-modes/edit-mode.js +3 -1
  37. package/dist/edit-modes/elevation-mode.d.ts +2 -2
  38. package/dist/edit-modes/elevation-mode.js +8 -5
  39. package/dist/edit-modes/extend-line-string-mode.d.ts +1 -1
  40. package/dist/edit-modes/extend-line-string-mode.js +9 -6
  41. package/dist/edit-modes/extrude-mode.d.ts +1 -1
  42. package/dist/edit-modes/extrude-mode.js +10 -7
  43. package/dist/edit-modes/geojson-edit-mode.d.ts +1 -1
  44. package/dist/edit-modes/geojson-edit-mode.js +18 -15
  45. package/dist/edit-modes/immutable-feature-collection.d.ts +2 -1
  46. package/dist/edit-modes/immutable-feature-collection.js +25 -20
  47. package/dist/edit-modes/measure-angle-mode.d.ts +1 -1
  48. package/dist/edit-modes/measure-angle-mode.js +8 -8
  49. package/dist/edit-modes/measure-area-mode.d.ts +1 -1
  50. package/dist/edit-modes/measure-area-mode.js +7 -5
  51. package/dist/edit-modes/measure-distance-mode.d.ts +1 -1
  52. package/dist/edit-modes/measure-distance-mode.js +17 -14
  53. package/dist/edit-modes/modify-mode.d.ts +1 -1
  54. package/dist/edit-modes/modify-mode.js +17 -14
  55. package/dist/edit-modes/resize-circle-mode.d.ts +2 -2
  56. package/dist/edit-modes/resize-circle-mode.js +3 -1
  57. package/dist/edit-modes/rotate-mode.d.ts +1 -1
  58. package/dist/edit-modes/rotate-mode.js +8 -5
  59. package/dist/edit-modes/scale-mode.d.ts +1 -1
  60. package/dist/edit-modes/scale-mode.js +8 -5
  61. package/dist/edit-modes/snappable-mode.d.ts +1 -1
  62. package/dist/edit-modes/snappable-mode.js +8 -5
  63. package/dist/edit-modes/split-polygon-mode.d.ts +1 -1
  64. package/dist/edit-modes/split-polygon-mode.js +12 -9
  65. package/dist/edit-modes/three-click-polygon-mode.d.ts +1 -1
  66. package/dist/edit-modes/three-click-polygon-mode.js +9 -6
  67. package/dist/edit-modes/transform-mode.d.ts +1 -1
  68. package/dist/edit-modes/transform-mode.js +4 -1
  69. package/dist/edit-modes/translate-mode.d.ts +1 -1
  70. package/dist/edit-modes/translate-mode.js +7 -4
  71. package/dist/edit-modes/two-click-polygon-mode.d.ts +1 -1
  72. package/dist/edit-modes/two-click-polygon-mode.js +9 -6
  73. package/dist/edit-modes/types.d.ts +1 -1
  74. package/dist/edit-modes/types.js +3 -0
  75. package/dist/edit-modes/utils.d.ts +1 -1
  76. package/dist/edit-modes/utils.js +21 -19
  77. package/dist/edit-modes/view-mode.js +3 -0
  78. package/dist/editable-layers/editable-geojson-layer.d.ts +4 -4
  79. package/dist/editable-layers/editable-geojson-layer.js +27 -26
  80. package/dist/editable-layers/editable-h3-cluster-layer.d.ts +2 -2
  81. package/dist/editable-layers/editable-h3-cluster-layer.js +6 -3
  82. package/dist/editable-layers/editable-layer.d.ts +5 -5
  83. package/dist/editable-layers/editable-layer.js +18 -15
  84. package/dist/editable-layers/editable-path-layer.d.ts +1 -1
  85. package/dist/editable-layers/editable-path-layer.js +10 -7
  86. package/dist/editable-layers/elevated-edit-handle-layer.d.ts +1 -1
  87. package/dist/editable-layers/elevated-edit-handle-layer.js +6 -3
  88. package/dist/editable-layers/junction-scatterplot-layer.d.ts +2 -2
  89. package/dist/editable-layers/junction-scatterplot-layer.js +10 -7
  90. package/dist/editable-layers/selection-layer.d.ts +1 -1
  91. package/dist/editable-layers/selection-layer.js +5 -2
  92. package/dist/index.cjs +65 -537
  93. package/dist/index.cjs.map +4 -4
  94. package/dist/index.d.ts +19 -20
  95. package/dist/index.js +20 -18
  96. package/dist/lib/constants.js +3 -0
  97. package/dist/lib/deck-renderer/deck-cache.d.ts +1 -1
  98. package/dist/lib/deck-renderer/deck-cache.js +1 -1
  99. package/dist/lib/deck-renderer/deck-drawer.d.ts +2 -3
  100. package/dist/lib/deck-renderer/deck-drawer.js +12 -12
  101. package/dist/lib/feature.d.ts +4 -4
  102. package/dist/lib/feature.js +4 -1
  103. package/dist/lib/layer-mouse-event.d.ts +2 -2
  104. package/dist/lib/layer-mouse-event.js +4 -1
  105. package/dist/lib/layers/junctions-layer.d.ts +4 -4
  106. package/dist/lib/layers/junctions-layer.js +10 -7
  107. package/dist/lib/layers/segments-layer.d.ts +4 -4
  108. package/dist/lib/layers/segments-layer.js +11 -8
  109. package/dist/lib/layers/texts-layer.d.ts +3 -3
  110. package/dist/lib/layers/texts-layer.js +8 -5
  111. package/dist/lib/math.d.ts +1 -1
  112. package/dist/lib/math.js +3 -0
  113. package/dist/lib/{nebula.d.ts → nebula-core.d.ts} +2 -2
  114. package/dist/lib/{nebula.js → nebula-core.js} +7 -4
  115. package/dist/lib/nebula-layer.d.ts +2 -2
  116. package/dist/lib/nebula-layer.js +4 -1
  117. package/dist/lib/style.js +5 -2
  118. package/dist/mode-handlers/composite-mode-handler.d.ts +1 -1
  119. package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts +1 -1
  120. package/dist/mode-handlers/draw-90degree-polygon-handler.js +13 -10
  121. package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +3 -0
  122. package/dist/mode-handlers/draw-circle-from-center-handler.js +3 -0
  123. package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +3 -0
  124. package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +5 -2
  125. package/dist/mode-handlers/draw-line-string-handler.js +7 -4
  126. package/dist/mode-handlers/draw-point-handler.js +4 -1
  127. package/dist/mode-handlers/draw-polygon-handler.d.ts +1 -1
  128. package/dist/mode-handlers/draw-polygon-handler.js +10 -7
  129. package/dist/mode-handlers/draw-rectangle-handler.js +3 -0
  130. package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +11 -8
  131. package/dist/mode-handlers/duplicate-handler.js +3 -0
  132. package/dist/mode-handlers/elevation-handler.d.ts +2 -2
  133. package/dist/mode-handlers/elevation-handler.js +8 -5
  134. package/dist/mode-handlers/extrude-handler.js +10 -7
  135. package/dist/mode-handlers/mode-handler.d.ts +1 -1
  136. package/dist/mode-handlers/mode-handler.js +17 -14
  137. package/dist/mode-handlers/modify-handler.d.ts +2 -2
  138. package/dist/mode-handlers/modify-handler.js +18 -15
  139. package/dist/mode-handlers/rotate-handler.d.ts +1 -1
  140. package/dist/mode-handlers/rotate-handler.js +4 -1
  141. package/dist/mode-handlers/scale-handler.d.ts +1 -1
  142. package/dist/mode-handlers/scale-handler.js +5 -2
  143. package/dist/mode-handlers/snappable-handler.d.ts +1 -1
  144. package/dist/mode-handlers/snappable-handler.js +6 -3
  145. package/dist/mode-handlers/split-polygon-handler.js +11 -8
  146. package/dist/mode-handlers/three-click-polygon-handler.js +3 -0
  147. package/dist/mode-handlers/translate-handler.d.ts +1 -1
  148. package/dist/mode-handlers/translate-handler.js +4 -1
  149. package/dist/mode-handlers/two-click-polygon-handler.js +3 -0
  150. package/dist/mode-handlers/view-handler.d.ts +1 -1
  151. package/dist/mode-handlers/view-handler.js +3 -0
  152. package/dist/shaderlib/color/color.d.ts +7 -6
  153. package/dist/shaderlib/color/color.js +7 -4
  154. package/dist/shaderlib/utils/utils.d.ts +2 -2
  155. package/dist/shaderlib/utils/utils.js +5 -2
  156. package/dist/{curve-utils.js → utils/curve-utils.js} +7 -4
  157. package/dist/{geojson-types.d.ts → utils/geojson-types.d.ts} +2 -25
  158. package/dist/utils/geojson-types.js +4 -0
  159. package/dist/{memoize.d.ts → utils/memoize.d.ts} +1 -1
  160. package/dist/{memoize.js → utils/memoize.js} +4 -1
  161. package/dist/{translateFromCenter.js → utils/translate-from-center.js} +4 -1
  162. package/dist/utils/types.js +4 -0
  163. package/dist/{utils.js → utils/utils.js} +8 -6
  164. package/package.json +10 -10
  165. package/src/constants.ts +5 -1
  166. package/src/edit-modes/composite-mode.ts +9 -5
  167. package/src/edit-modes/draw-90degree-polygon-mode.ts +38 -34
  168. package/src/edit-modes/draw-circle-by-diameter-mode.ts +16 -12
  169. package/src/edit-modes/draw-circle-from-center-mode.ts +15 -11
  170. package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +8 -4
  171. package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +9 -5
  172. package/src/edit-modes/draw-line-string-mode.ts +29 -25
  173. package/src/edit-modes/draw-point-mode.ts +13 -9
  174. package/src/edit-modes/draw-polygon-by-dragging-mode.ts +16 -16
  175. package/src/edit-modes/draw-polygon-mode.ts +28 -23
  176. package/src/edit-modes/draw-rectangle-from-center-mode.ts +6 -2
  177. package/src/edit-modes/draw-rectangle-mode.ts +6 -2
  178. package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +12 -8
  179. package/src/edit-modes/draw-square-from-center-mode.ts +7 -3
  180. package/src/edit-modes/draw-square-mode.ts +7 -3
  181. package/src/edit-modes/duplicate-mode.ts +7 -3
  182. package/src/edit-modes/edit-mode.ts +5 -1
  183. package/src/edit-modes/elevation-mode.ts +13 -9
  184. package/src/edit-modes/extend-line-string-mode.ts +16 -12
  185. package/src/edit-modes/extrude-mode.ts +22 -18
  186. package/src/edit-modes/geojson-edit-mode.ts +37 -33
  187. package/src/edit-modes/immutable-feature-collection.ts +28 -22
  188. package/src/edit-modes/measure-angle-mode.ts +66 -59
  189. package/src/edit-modes/measure-area-mode.ts +13 -10
  190. package/src/edit-modes/measure-distance-mode.ts +37 -33
  191. package/src/edit-modes/modify-mode.ts +36 -32
  192. package/src/edit-modes/resize-circle-mode.ts +8 -5
  193. package/src/edit-modes/rotate-mode.ts +22 -18
  194. package/src/edit-modes/scale-mode.ts +29 -23
  195. package/src/edit-modes/snappable-mode.ts +19 -15
  196. package/src/edit-modes/split-polygon-mode.ts +25 -21
  197. package/src/edit-modes/three-click-polygon-mode.ts +15 -11
  198. package/src/edit-modes/transform-mode.ts +15 -11
  199. package/src/edit-modes/translate-mode.ts +15 -11
  200. package/src/edit-modes/two-click-polygon-mode.ts +15 -11
  201. package/src/edit-modes/types.ts +5 -1
  202. package/src/edit-modes/utils.ts +33 -30
  203. package/src/edit-modes/view-mode.ts +5 -1
  204. package/src/editable-layers/editable-geojson-layer.ts +44 -41
  205. package/src/editable-layers/editable-h3-cluster-layer.ts +17 -14
  206. package/src/editable-layers/editable-layer.ts +42 -32
  207. package/src/editable-layers/editable-path-layer.ts +12 -8
  208. package/src/editable-layers/elevated-edit-handle-layer.ts +11 -7
  209. package/src/editable-layers/junction-scatterplot-layer.ts +15 -11
  210. package/src/editable-layers/selection-layer.ts +11 -7
  211. package/src/index.ts +68 -65
  212. package/src/lib/constants.ts +4 -0
  213. package/src/lib/deck-renderer/deck-cache.ts +1 -1
  214. package/src/lib/deck-renderer/deck-drawer.ts +28 -28
  215. package/src/lib/feature.ts +7 -3
  216. package/src/lib/layer-mouse-event.ts +7 -6
  217. package/src/lib/layers/junctions-layer.ts +14 -10
  218. package/src/lib/layers/segments-layer.ts +24 -20
  219. package/src/lib/layers/texts-layer.ts +18 -14
  220. package/src/lib/math.ts +5 -1
  221. package/src/lib/{nebula.ts → nebula-core.ts} +8 -4
  222. package/src/lib/nebula-layer.ts +9 -5
  223. package/src/lib/style.ts +6 -2
  224. package/src/mode-handlers/composite-mode-handler.ts +6 -6
  225. package/src/mode-handlers/draw-90degree-polygon-handler.ts +22 -18
  226. package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +10 -6
  227. package/src/mode-handlers/draw-circle-from-center-handler.ts +10 -6
  228. package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +9 -5
  229. package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +12 -8
  230. package/src/mode-handlers/draw-line-string-handler.ts +12 -8
  231. package/src/mode-handlers/draw-point-handler.ts +9 -5
  232. package/src/mode-handlers/draw-polygon-handler.ts +16 -12
  233. package/src/mode-handlers/draw-rectangle-handler.ts +8 -4
  234. package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +17 -13
  235. package/src/mode-handlers/duplicate-handler.ts +8 -4
  236. package/src/mode-handlers/elevation-handler.ts +14 -10
  237. package/src/mode-handlers/extrude-handler.ts +15 -11
  238. package/src/mode-handlers/mode-handler.ts +26 -28
  239. package/src/mode-handlers/modify-handler.ts +29 -25
  240. package/src/mode-handlers/rotate-handler.ts +13 -17
  241. package/src/mode-handlers/scale-handler.ts +13 -13
  242. package/src/mode-handlers/snappable-handler.ts +28 -24
  243. package/src/mode-handlers/split-polygon-handler.ts +22 -18
  244. package/src/mode-handlers/three-click-polygon-handler.ts +6 -2
  245. package/src/mode-handlers/translate-handler.ts +12 -8
  246. package/src/mode-handlers/two-click-polygon-handler.ts +6 -2
  247. package/src/mode-handlers/view-handler.ts +7 -3
  248. package/src/shaderlib/color/color.ts +10 -5
  249. package/src/shaderlib/utils/utils.ts +6 -2
  250. package/src/{curve-utils.ts → utils/curve-utils.ts} +11 -7
  251. package/src/{geojson-types.ts → utils/geojson-types.ts} +16 -31
  252. package/src/{memoize.ts → utils/memoize.ts} +5 -1
  253. package/src/{translateFromCenter.ts → utils/translate-from-center.ts} +8 -4
  254. package/src/{types.ts → utils/types.ts} +4 -0
  255. package/src/{utils.ts → utils/utils.ts} +14 -11
  256. package/dist/editable-layers/path-marker-layer/arrow-2d-geometry.d.ts +0 -4
  257. package/dist/editable-layers/path-marker-layer/arrow-2d-geometry.js +0 -55
  258. package/dist/editable-layers/path-marker-layer/create-path-markers.d.ts +0 -16
  259. package/dist/editable-layers/path-marker-layer/create-path-markers.js +0 -75
  260. package/dist/editable-layers/path-marker-layer/path-marker-layer.d.ts +0 -40
  261. package/dist/editable-layers/path-marker-layer/path-marker-layer.js +0 -121
  262. package/dist/editable-layers/path-marker-layer/polyline.d.ts +0 -18
  263. package/dist/editable-layers/path-marker-layer/polyline.js +0 -37
  264. package/dist/editable-layers/path-outline-layer/path-outline-layer.d.ts +0 -26
  265. package/dist/editable-layers/path-outline-layer/path-outline-layer.js +0 -106
  266. package/dist/geojson-types.js +0 -2
  267. package/dist/shaderlib/outline/outline.d.ts +0 -8
  268. package/dist/shaderlib/outline/outline.js +0 -97
  269. package/dist/types.js +0 -1
  270. package/src/editable-layers/path-marker-layer/arrow-2d-geometry.ts +0 -61
  271. package/src/editable-layers/path-marker-layer/create-path-markers.ts +0 -107
  272. package/src/editable-layers/path-marker-layer/path-marker-layer.ts +0 -179
  273. package/src/editable-layers/path-marker-layer/polyline.ts +0 -40
  274. package/src/editable-layers/path-outline-layer/path-outline-layer.ts +0 -147
  275. package/src/shaderlib/outline/outline.ts +0 -101
  276. /package/dist/{curve-utils.d.ts → utils/curve-utils.d.ts} +0 -0
  277. /package/dist/{translateFromCenter.d.ts → utils/translate-from-center.d.ts} +0 -0
  278. /package/dist/{types.d.ts → utils/types.d.ts} +0 -0
  279. /package/dist/{utils.d.ts → utils/utils.d.ts} +0 -0
@@ -1,12 +1,12 @@
1
- import { PolygonLayer } from '@deck.gl/layers';
2
- import { point, polygon } from '@turf/helpers';
1
+ import {PolygonLayer} from '@deck.gl/layers';
2
+ import {point, polygon} from '@turf/helpers';
3
3
  import turfBbox from '@turf/bbox';
4
4
  import turfBboxPolygon from '@turf/bbox-polygon';
5
5
  import turfBuffer from '@turf/buffer';
6
6
  import turfDifference from '@turf/difference';
7
7
  import turfDistance from '@turf/distance';
8
8
 
9
- import { Color } from '../../types';
9
+ import {Color} from '../../utils/types';
10
10
 
11
11
  const POLYGON_LINE_COLOR = [0, 255, 0, 255];
12
12
  const POLYGON_FILL_COLOR = [255, 255, 255, 90];
@@ -20,10 +20,10 @@ const LAYER_ID_PICK = 'DeckDrawerPick';
20
20
  export const SELECTION_TYPE = {
21
21
  NONE: null,
22
22
  RECTANGLE: 'rectangle',
23
- POLYGON: 'polygon',
23
+ POLYGON: 'polygon'
24
24
  };
25
25
 
26
- export default class DeckDrawer {
26
+ export class DeckDrawer {
27
27
  nebula: Record<string, any>;
28
28
  usePolygon: boolean;
29
29
  validPolygon: boolean;
@@ -47,14 +47,14 @@ export default class DeckDrawer {
47
47
 
48
48
  _selectFromPickingInfos(pickingInfos: Record<string, any>[]) {
49
49
  const objects = pickingInfos.map(
50
- ({ layer, index, object }) =>
50
+ ({layer, index, object}) =>
51
51
  object.original || layer.props.nebulaLayer.deckCache.originals[index]
52
52
  );
53
53
  this.nebula.props.onSelection(objects);
54
54
  }
55
55
 
56
56
  _getBoundingBox(): Record<string, any> {
57
- const { mousePoints } = this;
57
+ const {mousePoints} = this;
58
58
  const allX = mousePoints.map((mousePoint) => mousePoint[0]);
59
59
  const allY = mousePoints.map((mousePoint) => mousePoint[1]);
60
60
  const x = Math.min(...allX);
@@ -62,7 +62,7 @@ export default class DeckDrawer {
62
62
  const maxX = Math.max(...allX);
63
63
  const maxY = Math.max(...allY);
64
64
 
65
- return { x, y, width: maxX - x, height: maxY - y };
65
+ return {x, y, width: maxX - x, height: maxY - y};
66
66
  }
67
67
 
68
68
  _selectRectangleObjects() {
@@ -75,7 +75,7 @@ export default class DeckDrawer {
75
75
  y: Math.min(y1, y2),
76
76
  width: Math.abs(x2 - x1),
77
77
  height: Math.abs(y2 - y1),
78
- layerIds: this._getLayerIds(),
78
+ layerIds: this._getLayerIds()
79
79
  });
80
80
 
81
81
  this._selectFromPickingInfos(pickingInfos);
@@ -84,14 +84,14 @@ export default class DeckDrawer {
84
84
  _selectPolygonObjects() {
85
85
  const pickingInfos = this.nebula.deckgl.pickObjects({
86
86
  ...this._getBoundingBox(),
87
- layerIds: [LAYER_ID_PICK, ...this._getLayerIds()],
87
+ layerIds: [LAYER_ID_PICK, ...this._getLayerIds()]
88
88
  });
89
89
 
90
90
  this._selectFromPickingInfos(pickingInfos.filter((item) => item.layer.id !== LAYER_ID_PICK));
91
91
  }
92
92
 
93
93
  _getMousePosFromEvent(event: Record<string, any>): [number, number] {
94
- const { offsetX, offsetY } = event;
94
+ const {offsetX, offsetY} = event;
95
95
  return [offsetX, offsetY];
96
96
  }
97
97
 
@@ -100,7 +100,7 @@ export default class DeckDrawer {
100
100
  event: Record<string, any>,
101
101
  lngLat: [number, number],
102
102
  selectionType: number
103
- ): { redraw: boolean; deactivate: boolean } {
103
+ ): {redraw: boolean; deactivate: boolean} {
104
104
  // capture all events (mouse-up is needed to prevent us stuck in moving map)
105
105
  if (event.type !== 'mouseup') event.stopPropagation();
106
106
 
@@ -110,7 +110,7 @@ export default class DeckDrawer {
110
110
  let redraw = false;
111
111
  let deactivate = false;
112
112
 
113
- const { usePolygon, landPoints, mousePoints } = this;
113
+ const {usePolygon, landPoints, mousePoints} = this;
114
114
 
115
115
  if (event.type === 'mousedown') {
116
116
  if (usePolygon && landPoints.length) {
@@ -153,7 +153,7 @@ export default class DeckDrawer {
153
153
  }
154
154
  }
155
155
 
156
- return { redraw, deactivate };
156
+ return {redraw, deactivate};
157
157
  }
158
158
 
159
159
  reset() {
@@ -180,18 +180,18 @@ export default class DeckDrawer {
180
180
  [x1, y2],
181
181
  [x2, y2],
182
182
  [x2, y1],
183
- [x1, y1],
183
+ [x1, y1]
184
184
  ].map((mousePos) => this.nebula.unprojectMousePosition(mousePos));
185
185
  data.push({
186
186
  polygon: selPolygon,
187
187
  lineColor: POLYGON_LINE_COLOR,
188
- fillColor: POLYGON_FILL_COLOR,
188
+ fillColor: POLYGON_FILL_COLOR
189
189
  });
190
190
  } else if (this.usePolygon && this.landPoints.length) {
191
191
  data.push({
192
192
  polygon: this.landPoints,
193
193
  lineColor: POLYGON_LINE_COLOR,
194
- fillColor: POLYGON_FILL_COLOR,
194
+ fillColor: POLYGON_FILL_COLOR
195
195
  });
196
196
 
197
197
  // Hack: use a polygon to hide the outside, because pickObjects()
@@ -206,7 +206,7 @@ export default class DeckDrawer {
206
206
  bigPolygon = turfDifference(bigBuffer, landPointsPoly);
207
207
  dataPick.push({
208
208
  polygon: bigPolygon.geometry.coordinates,
209
- fillColor: [0, 0, 0, 1],
209
+ fillColor: [0, 0, 0, 1]
210
210
  });
211
211
  this.validPolygon = true;
212
212
  } catch (e) {
@@ -221,15 +221,15 @@ export default class DeckDrawer {
221
221
  data.push({
222
222
  polygon: this._makeStartPointHighlight(this.landPoints[0]),
223
223
  lineColor: [0, 0, 0, 0],
224
- fillColor: POLYGON_LINE_COLOR,
224
+ fillColor: POLYGON_LINE_COLOR
225
225
  });
226
226
  }
227
227
 
228
228
  // Hack to make the PolygonLayer() stay active,
229
229
  // otherwise it takes 3 seconds (!) to init!
230
230
  // TODO: fix this
231
- data.push({ polygon: [[0, 0]] });
232
- dataPick.push({ polygon: [[0, 0]] });
231
+ data.push({polygon: [[0, 0]]});
232
+ dataPick.push({polygon: [[0, 0]]});
233
233
 
234
234
  return [
235
235
  new PolygonLayer({
@@ -243,21 +243,21 @@ export default class DeckDrawer {
243
243
  lineDashJustified: true,
244
244
  // TODO(v9) Add extension
245
245
  // getLineDashArray: (x) => POLYGON_DASHES,
246
- getLineColor: (obj: { lineColor?: Color }) => obj.lineColor || [0, 0, 0, 255],
247
- getFillColor: (obj: { fillColor?: Color }) => obj.fillColor || [0, 0, 0, 255],
248
- getPolygon: (o: { polygon?: any }) => o.polygon,
246
+ getLineColor: (obj: {lineColor?: Color}) => obj.lineColor || [0, 0, 0, 255],
247
+ getFillColor: (obj: {fillColor?: Color}) => obj.fillColor || [0, 0, 0, 255],
248
+ getPolygon: (o: {polygon?: any}) => o.polygon
249
249
  }),
250
250
  new PolygonLayer({
251
251
  id: LAYER_ID_PICK,
252
252
  data: dataPick,
253
- getLineColor: (obj: { lineColor?: Color }) => obj.lineColor || [0, 0, 0, 255],
254
- getFillColor: (obj: { fillColor?: Color }) => obj.fillColor || [0, 0, 0, 255],
253
+ getLineColor: (obj: {lineColor?: Color}) => obj.lineColor || [0, 0, 0, 255],
254
+ getFillColor: (obj: {fillColor?: Color}) => obj.fillColor || [0, 0, 0, 255],
255
255
  fp64: false,
256
256
  opacity: 1.0,
257
257
  stroked: false,
258
258
  pickable: true,
259
- getPolygon: (o: { polygon?: any }) => o.polygon,
260
- }),
259
+ getPolygon: (o: {polygon?: any}) => o.polygon
260
+ })
261
261
  ];
262
262
  }
263
263
  }
@@ -1,8 +1,12 @@
1
- import { Feature as GeoJson } from '../geojson-types';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
2
4
 
3
- import { Style } from '../types';
5
+ import {Feature as GeoJson} from '../utils/geojson-types';
4
6
 
5
- export default class Feature {
7
+ import {Style} from '../utils/types';
8
+
9
+ export class Feature {
6
10
  // geo json coordinates
7
11
  geoJson: GeoJson;
8
12
  style: Style;
@@ -1,6 +1,10 @@
1
- import { Position } from '../geojson-types';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
2
4
 
3
- export default class LayerMouseEvent {
5
+ import {Position} from '../utils/geojson-types';
6
+
7
+ export class LayerMouseEvent {
4
8
  canceled: boolean = false;
5
9
  // original item that this event is related to
6
10
  data: Record<string, any>;
@@ -13,10 +17,7 @@ export default class LayerMouseEvent {
13
17
  // reference to nebula
14
18
  nebula: Record<string, any>;
15
19
 
16
- constructor(
17
- nativeEvent: MouseEvent,
18
- { data, groundPoint, nebula, metadata }: Record<string, any>
19
- ) {
20
+ constructor(nativeEvent: MouseEvent, {data, groundPoint, nebula, metadata}: Record<string, any>) {
20
21
  this.nativeEvent = nativeEvent;
21
22
 
22
23
  this.data = data;
@@ -1,9 +1,13 @@
1
- import NebulaLayer from '../nebula-layer';
2
- import { toDeckColor } from '../../utils';
3
- import DeckCache from '../deck-renderer/deck-cache';
4
- import JunctionScatterplotLayer from '../../editable-layers/junction-scatterplot-layer';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
5
4
 
6
- export default class JunctionsLayer extends NebulaLayer {
5
+ import {NebulaLayer} from '../nebula-layer';
6
+ import {toDeckColor} from '../../utils/utils';
7
+ import {DeckCache} from '../deck-renderer/deck-cache';
8
+ import {JunctionScatterplotLayer} from '../../editable-layers/junction-scatterplot-layer';
9
+
10
+ export class JunctionsLayer extends NebulaLayer {
7
11
  deckCache: DeckCache<any, any>;
8
12
 
9
13
  constructor(config: Record<string, any>) {
@@ -12,9 +16,9 @@ export default class JunctionsLayer extends NebulaLayer {
12
16
  this.enablePicking = true;
13
17
  }
14
18
 
15
- render({ nebula }: Record<string, any>) {
19
+ render({nebula}: Record<string, any>) {
16
20
  const defaultColor: [number, number, number, number] = [0x0, 0x0, 0x0, 0xff];
17
- const { objects, updateTrigger } = this.deckCache;
21
+ const {objects, updateTrigger} = this.deckCache;
18
22
 
19
23
  return new JunctionScatterplotLayer({
20
24
  id: `junctions-${this.id}`,
@@ -31,10 +35,10 @@ export default class JunctionsLayer extends NebulaLayer {
31
35
  depthCompare: 'always'
32
36
  },
33
37
 
34
- updateTriggers: { all: updateTrigger },
38
+ updateTriggers: {all: updateTrigger},
35
39
 
36
- // @ts-ignore
37
- nebulaLayer: this,
40
+ // @ts-expect-error TODO
41
+ nebulaLayer: this
38
42
  });
39
43
  }
40
44
  }
@@ -1,17 +1,21 @@
1
- import { ArrowStyles, DEFAULT_STYLE, MAX_ARROWS } from '../style';
2
- import NebulaLayer from '../nebula-layer';
3
- import { toDeckColor } from '../../utils';
4
- import DeckCache from '../deck-renderer/deck-cache';
5
- import PathMarkerLayer from '../../editable-layers/path-marker-layer/path-marker-layer';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {ArrowStyles, DEFAULT_STYLE, MAX_ARROWS} from '../style';
6
+ import {NebulaLayer} from '../nebula-layer';
7
+ import {toDeckColor} from '../../utils/utils';
8
+ import {DeckCache} from '../deck-renderer/deck-cache';
9
+ import {PathMarkerLayer} from '@deck.gl-community/layers';
6
10
 
7
11
  const NEBULA_TO_DECK_DIRECTIONS = {
8
- [ArrowStyles.NONE]: { forward: false, backward: false },
9
- [ArrowStyles.FORWARD]: { forward: true, backward: false },
10
- [ArrowStyles.BACKWARD]: { forward: false, backward: true },
11
- [ArrowStyles.BOTH]: { forward: true, backward: true },
12
+ [ArrowStyles.NONE]: {forward: false, backward: false},
13
+ [ArrowStyles.FORWARD]: {forward: true, backward: false},
14
+ [ArrowStyles.BACKWARD]: {forward: false, backward: true},
15
+ [ArrowStyles.BOTH]: {forward: true, backward: true}
12
16
  };
13
17
 
14
- export default class SegmentsLayer extends NebulaLayer {
18
+ export class SegmentsLayer extends NebulaLayer {
15
19
  deckCache: DeckCache<any, any>;
16
20
  noBlend: boolean;
17
21
  highlightColor: [number, number, number, number];
@@ -41,7 +45,7 @@ export default class SegmentsLayer extends NebulaLayer {
41
45
  }
42
46
 
43
47
  _calcMarkerPercentages(nf: Record<string, any>): number[] {
44
- const { arrowPercentages } = nf.style;
48
+ const {arrowPercentages} = nf.style;
45
49
  if (arrowPercentages) {
46
50
  return arrowPercentages;
47
51
  }
@@ -53,10 +57,10 @@ export default class SegmentsLayer extends NebulaLayer {
53
57
  return [[0.5], [0.33, 0.66], [0.25, 0.5, 0.75]][arrowCount - 1];
54
58
  }
55
59
 
56
- _getHighlightedObjectIndex({ nebula }: Record<string, any>): number {
57
- const { deckglMouseOverInfo } = nebula;
60
+ _getHighlightedObjectIndex({nebula}: Record<string, any>): number {
61
+ const {deckglMouseOverInfo} = nebula;
58
62
  if (deckglMouseOverInfo) {
59
- const { originalLayer, index } = deckglMouseOverInfo;
63
+ const {originalLayer, index} = deckglMouseOverInfo;
60
64
  if (originalLayer === this) {
61
65
  return index;
62
66
  }
@@ -66,9 +70,9 @@ export default class SegmentsLayer extends NebulaLayer {
66
70
  return -1;
67
71
  }
68
72
 
69
- render({ nebula }: Record<string, any>) {
73
+ render({nebula}: Record<string, any>) {
70
74
  const defaultColor: [number, number, number, number] = [0x0, 0x0, 0x0, 0xff];
71
- const { objects, updateTrigger } = this.deckCache;
75
+ const {objects, updateTrigger} = this.deckCache;
72
76
 
73
77
  return new PathMarkerLayer<any>({
74
78
  id: `segments-${this.id}`,
@@ -81,7 +85,7 @@ export default class SegmentsLayer extends NebulaLayer {
81
85
  sizeScale: this.arrowSize || 6,
82
86
  parameters: {
83
87
  depthCompare: 'always',
84
- blendColorOperation: this.noBlend ? undefined : 'max',
88
+ blendColorOperation: this.noBlend ? undefined : 'max'
85
89
  },
86
90
  getPath: (nf: any) => nf.geoJson.geometry.coordinates,
87
91
  getColor: (nf: any) => toDeckColor(nf.style.lineColor, defaultColor),
@@ -91,9 +95,9 @@ export default class SegmentsLayer extends NebulaLayer {
91
95
  getMarkerColor: (nf: any) => toDeckColor(nf.style.arrowColor, defaultColor),
92
96
  // eslint-disable-next-line @typescript-eslint/unbound-method
93
97
  getMarkerPercentages: this._calcMarkerPercentages,
94
- updateTriggers: { all: updateTrigger },
98
+ updateTriggers: {all: updateTrigger},
95
99
 
96
- highlightedObjectIndex: this._getHighlightedObjectIndex({ nebula }),
100
+ highlightedObjectIndex: this._getHighlightedObjectIndex({nebula}),
97
101
  highlightColor: toDeckColor(this.highlightColor),
98
102
 
99
103
  dashJustified: this.dashed,
@@ -102,7 +106,7 @@ export default class SegmentsLayer extends NebulaLayer {
102
106
  this.markerLayerProps ||
103
107
  (PathMarkerLayer as Record<string, any>).defaultProps.markerLayerProps,
104
108
 
105
- nebulaLayer: this,
109
+ nebulaLayer: this
106
110
  });
107
111
  }
108
112
  }
@@ -1,11 +1,15 @@
1
- import { TextLayer } from '@deck.gl/layers';
2
- import NebulaLayer from '../nebula-layer';
3
- import { toDeckColor } from '../../utils';
4
- import { PROJECTED_PIXEL_SIZE_MULTIPLIER } from '../constants';
5
- import DeckCache from '../deck-renderer/deck-cache';
6
- import { Color } from '../../types';
7
-
8
- export default class TextsLayer extends NebulaLayer {
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {TextLayer} from '@deck.gl/layers';
6
+ import {NebulaLayer} from '../nebula-layer';
7
+ import {toDeckColor} from '../../utils/utils';
8
+ import {PROJECTED_PIXEL_SIZE_MULTIPLIER} from '../constants';
9
+ import {DeckCache} from '../deck-renderer/deck-cache';
10
+ import {Color} from '../../utils/types';
11
+
12
+ export class TextsLayer extends NebulaLayer {
9
13
  deckCache: DeckCache<any, any>;
10
14
 
11
15
  constructor(config: Record<string, any>) {
@@ -13,11 +17,11 @@ export default class TextsLayer extends NebulaLayer {
13
17
  this.deckCache = new DeckCache(config.getData, (data) => config.toNebulaFeature(data));
14
18
  }
15
19
 
16
- render({ nebula }: Record<string, any>): TextLayer {
20
+ render({nebula}: Record<string, any>): TextLayer {
17
21
  const defaultColor: Color = [0x0, 0x0, 0x0, 0xff];
18
- const { objects, updateTrigger } = this.deckCache;
22
+ const {objects, updateTrigger} = this.deckCache;
19
23
 
20
- const { zoom } = nebula.props.viewport;
24
+ const {zoom} = nebula.props.viewport;
21
25
 
22
26
  return new TextLayer({
23
27
  id: `texts-${this.id}`,
@@ -28,16 +32,16 @@ export default class TextsLayer extends NebulaLayer {
28
32
 
29
33
  getText: (nf: any) => nf.style.text,
30
34
  getPosition: (nf: any) => nf.geoJson.geometry.coordinates,
31
- getColor: (nf: { style: { fillColor: Color } }) =>
35
+ getColor: (nf: {style: {fillColor: Color}}) =>
32
36
  toDeckColor(nf.style.fillColor) || defaultColor,
33
37
 
34
38
  // TODO: layer should offer option to scale with zoom
35
39
  sizeScale: 1 / Math.pow(2, 20 - zoom),
36
40
  getSize: PROJECTED_PIXEL_SIZE_MULTIPLIER,
37
41
 
38
- updateTriggers: { all: updateTrigger },
42
+ updateTriggers: {all: updateTrigger},
39
43
 
40
- nebulaLayer: this,
44
+ nebulaLayer: this
41
45
  });
42
46
  }
43
47
  }
package/src/lib/math.ts CHANGED
@@ -1,4 +1,8 @@
1
- import { Position } from '../geojson-types';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {Position} from '../utils/geojson-types';
2
6
 
3
7
  export function toDegree(radian: number): number {
4
8
  return (radian * 180) / Math.PI;
@@ -1,13 +1,17 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {EventEmitter} from 'eventemitter3';
2
6
  import {WebMercatorViewport} from '@deck.gl/core';
3
7
 
4
- import DeckDrawer from './deck-renderer/deck-drawer';
5
- import LayerMouseEvent from './layer-mouse-event';
6
- import NebulaLayer from './nebula-layer';
8
+ import {DeckDrawer} from './deck-renderer/deck-drawer';
9
+ import {LayerMouseEvent} from './layer-mouse-event';
10
+ import {NebulaLayer} from './nebula-layer';
7
11
 
8
12
  const LOGGER_PREFIX = 'Nebula: ';
9
13
 
10
- export default class Nebula {
14
+ export class NebulaCore {
11
15
  init(props: Record<string, any>) {
12
16
  this.props = props;
13
17
  this.wmViewport = new WebMercatorViewport(this.props.viewport);
@@ -1,9 +1,13 @@
1
- import { EventEmitter } from 'eventemitter3';
2
- import { v4 } from 'uuid';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
3
4
 
4
- import Feature from './feature';
5
+ import {EventEmitter} from 'eventemitter3';
6
+ import {v4} from 'uuid';
5
7
 
6
- export default class NebulaLayer extends EventEmitter {
8
+ import {Feature} from './feature';
9
+
10
+ export class NebulaLayer extends EventEmitter {
7
11
  getData: () => Record<string, any>[];
8
12
  toNebulaFeature: (data: Record<string, any>) => Feature;
9
13
  id: string;
@@ -15,7 +19,7 @@ export default class NebulaLayer extends EventEmitter {
15
19
  enableSelection = false;
16
20
  //
17
21
 
18
- constructor({ getData, on, toNebulaFeature }: Record<string, any>) {
22
+ constructor({getData, on, toNebulaFeature}: Record<string, any>) {
19
23
  super();
20
24
  this.id = v4();
21
25
  this.getData = getData;
package/src/lib/style.ts CHANGED
@@ -1,9 +1,13 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  // Describes the arrow style of polylines
2
6
  export const ArrowStyles = {
3
7
  NONE: 0,
4
8
  FORWARD: 1,
5
9
  BACKWARD: 2,
6
- BOTH: 3,
10
+ BOTH: 3
7
11
  };
8
12
 
9
13
  export const DEFAULT_ARROWS = 1;
@@ -18,5 +22,5 @@ export const DEFAULT_STYLE = {
18
22
  lineWidthMeters: 5,
19
23
  outlineRadiusMeters: 0,
20
24
  opacity: 1,
21
- zLevel: 0,
25
+ zLevel: 0
22
26
  };
@@ -1,11 +1,11 @@
1
- import { FeatureCollection, Feature, Position } from '../geojson-types';
1
+ import {FeatureCollection, Feature, Position} from '../utils/geojson-types';
2
2
  import {
3
3
  ClickEvent,
4
4
  PointerMoveEvent,
5
5
  StartDraggingEvent,
6
- StopDraggingEvent,
6
+ StopDraggingEvent
7
7
  } from '../edit-modes/types';
8
- import { ModeHandler, EditAction, EditHandle } from './mode-handler';
8
+ import {ModeHandler, EditAction, EditHandle} from './mode-handler';
9
9
 
10
10
  // TODO edit-modes: delete handlers once EditMode fully implemented
11
11
  export class CompositeModeHandler extends ModeHandler {
@@ -32,7 +32,7 @@ export class CompositeModeHandler extends ModeHandler {
32
32
  }
33
33
  }
34
34
 
35
- return result as T;
35
+ return result;
36
36
  }
37
37
 
38
38
  setFeatureCollection(featureCollection: FeatureCollection): void {
@@ -83,7 +83,7 @@ export class CompositeModeHandler extends ModeHandler {
83
83
  ) as any; // TODO
84
84
  }
85
85
 
86
- getCursor({ isDragging }: { isDragging: boolean }): string {
87
- return this._coalesce((handler) => handler.getCursor({ isDragging })) as any; // TODO
86
+ getCursor({isDragging}: {isDragging: boolean}): string {
87
+ return this._coalesce((handler) => handler.getCursor({isDragging})) as any; // TODO
88
88
  }
89
89
  }
@@ -1,17 +1,21 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import destination from '@turf/destination';
2
6
  import bearing from '@turf/bearing';
3
7
  import lineIntersect from '@turf/line-intersect';
4
8
  import turfDistance from '@turf/distance';
5
- import { point, lineString } from '@turf/helpers';
6
- import { Polygon, Position } from '../geojson-types';
7
- import { generatePointsParallelToLinePoints } from '../utils';
8
- import { ClickEvent, PointerMoveEvent } from '../edit-modes/types';
9
+ import {point, lineString} from '@turf/helpers';
10
+ import {Polygon, Position} from '../utils/geojson-types';
11
+ import {generatePointsParallelToLinePoints} from '../utils/utils';
12
+ import {ClickEvent, PointerMoveEvent} from '../edit-modes/types';
9
13
  import {
10
14
  EditAction,
11
15
  EditHandle,
12
16
  ModeHandler,
13
17
  getPickedEditHandle,
14
- getEditHandlesForGeometry,
18
+ getEditHandlesForGeometry
15
19
  } from './mode-handler';
16
20
 
17
21
  // TODO edit-modes: delete handlers once EditMode fully implemented
@@ -35,12 +39,12 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
35
39
  return handles;
36
40
  }
37
41
 
38
- handlePointerMove({ mapCoords }: PointerMoveEvent): {
42
+ handlePointerMove({mapCoords}: PointerMoveEvent): {
39
43
  editAction: EditAction | null | undefined;
40
44
  cancelMapPan: boolean;
41
45
  } {
42
46
  const clickSequence = this.getClickSequence();
43
- const result = { editAction: null, cancelMapPan: false };
47
+ const result = {editAction: null, cancelMapPan: false};
44
48
 
45
49
  if (clickSequence.length === 0) {
46
50
  // nothing to do yet
@@ -71,8 +75,8 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
71
75
  type: 'Feature',
72
76
  geometry: {
73
77
  type: 'LineString',
74
- coordinates: [...clickSequence, p3],
75
- },
78
+ coordinates: [...clickSequence, p3]
79
+ }
76
80
  });
77
81
  } else {
78
82
  // Draw a Polygon connecting all the clicked points with the hovered point
@@ -80,8 +84,8 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
80
84
  type: 'Feature',
81
85
  geometry: {
82
86
  type: 'Polygon',
83
- coordinates: [[...clickSequence, p3, clickSequence[0]]],
84
- },
87
+ coordinates: [[...clickSequence, p3, clickSequence[0]]]
88
+ }
85
89
  });
86
90
  }
87
91
 
@@ -91,7 +95,7 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
91
95
  handleClick(event: ClickEvent): EditAction | null | undefined {
92
96
  super.handleClick(event);
93
97
 
94
- const { picks } = event;
98
+ const {picks} = event;
95
99
  const tentativeFeature = this.getTentativeFeature();
96
100
 
97
101
  let editAction: EditAction | null | undefined = null;
@@ -109,7 +113,7 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
109
113
  // They clicked the first or last point (or double-clicked), so complete the polygon
110
114
  const polygonToAdd: Polygon = {
111
115
  type: 'Polygon',
112
- coordinates: this.finalizedCoordinates([...polygon.coordinates[0]]),
116
+ coordinates: this.finalizedCoordinates([...polygon.coordinates[0]])
113
117
  };
114
118
 
115
119
  this.resetClickSequence();
@@ -127,7 +131,7 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
127
131
  pointerDownPicks: null,
128
132
  pointerDownScreenCoords: null,
129
133
  pointerDownMapCoords: null,
130
- sourceEvent: null,
134
+ sourceEvent: null
131
135
  } as unknown as PointerMoveEvent;
132
136
 
133
137
  this.handlePointerMove(fakePointerMoveEvent);
@@ -164,7 +168,7 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
164
168
  const p4 = coordinates[coordinates.length - 4];
165
169
  const angle2 = bearing(p3, p4);
166
170
 
167
- const angles = { first: [] as number[], second: [] as number[] };
171
+ const angles = {first: [] as number[], second: [] as number[]};
168
172
  // calculate 3 right angle points for first and last points in lineString
169
173
  [1, 2, 3].forEach((factor) => {
170
174
  const newAngle1 = angle1 + factor * 90;
@@ -180,17 +184,17 @@ export class Draw90DegreePolygonHandler extends ModeHandler {
180
184
  [0, 1, 2].forEach((indexFirst) => {
181
185
  const line1 = lineString([
182
186
  p1,
183
- destination(p1, distance, angles.first[indexFirst]).geometry.coordinates,
187
+ destination(p1, distance, angles.first[indexFirst]).geometry.coordinates
184
188
  ]);
185
189
  [0, 1, 2].forEach((indexSecond) => {
186
190
  const line2 = lineString([
187
191
  p3,
188
- destination(p3, distance, angles.second[indexSecond]).geometry.coordinates,
192
+ destination(p3, distance, angles.second[indexSecond]).geometry.coordinates
189
193
  ]);
190
194
  const fc = lineIntersect(line1, line2);
191
195
  if (fc && fc.features.length) {
192
196
  // found the intersect point
193
- pt = fc.features[0].geometry.coordinates as Position;
197
+ pt = fc.features[0].geometry.coordinates;
194
198
  }
195
199
  });
196
200
  });