@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,11 +1,15 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import bbox from '@turf/bbox';
2
6
  import turfCentroid from '@turf/centroid';
3
7
  import turfBearing from '@turf/bearing';
4
8
  import bboxPolygon from '@turf/bbox-polygon';
5
9
  import turfDistance from '@turf/distance';
6
- import { coordEach } from '@turf/meta';
7
- import { getGeom } from '@turf/invariant';
8
- import { point, featureCollection, lineString } from '@turf/helpers';
10
+ import {coordEach} from '@turf/meta';
11
+ import {getGeom} from '@turf/invariant';
12
+ import {point, featureCollection, lineString} from '@turf/helpers';
9
13
  import turfTransformRotate from '@turf/transform-rotate';
10
14
  import polygonToLine from '@turf/polygon-to-line';
11
15
  import {
@@ -15,12 +19,12 @@ import {
15
19
  DraggingEvent,
16
20
  ModeProps,
17
21
  EditHandleFeature,
18
- GuideFeatureCollection,
22
+ GuideFeatureCollection
19
23
  } from './types';
20
- import { getPickedEditHandle } from './utils';
21
- import { FeatureCollection, Position } from '../geojson-types';
22
- import { GeoJsonEditMode, GeoJsonEditAction, getIntermediatePosition } from './geojson-edit-mode';
23
- import { ImmutableFeatureCollection } from './immutable-feature-collection';
24
+ import {getPickedEditHandle} from './utils';
25
+ import {FeatureCollection, Position} from '../utils/geojson-types';
26
+ import {GeoJsonEditMode, GeoJsonEditAction, getIntermediatePosition} from './geojson-edit-mode';
27
+ import {ImmutableFeatureCollection} from './immutable-feature-collection';
24
28
 
25
29
  export class RotateMode extends GeoJsonEditMode {
26
30
  _selectedEditHandle: EditHandleFeature | null | undefined;
@@ -28,10 +32,10 @@ export class RotateMode extends GeoJsonEditMode {
28
32
  _isRotating = false;
29
33
 
30
34
  _isSinglePointGeometrySelected = (geometry: FeatureCollection | null | undefined): boolean => {
31
- const { features } = geometry || {};
35
+ const {features} = geometry || {};
32
36
  if (Array.isArray(features) && features.length === 1) {
33
37
  // @ts-expect-error turf type diff
34
- const { type }: { type: string } = getGeom(features[0]);
38
+ const {type}: {type: string} = getGeom(features[0]);
35
39
  return type === 'Point';
36
40
  }
37
41
  return false;
@@ -44,7 +48,7 @@ export class RotateMode extends GeoJsonEditMode {
44
48
  this._geometryBeingRotated || this.getSelectedFeaturesAsFeatureCollection(props);
45
49
 
46
50
  if (this._isSinglePointGeometrySelected(selectedGeometry)) {
47
- return { type: 'FeatureCollection', features: [] };
51
+ return {type: 'FeatureCollection', features: []};
48
52
  }
49
53
 
50
54
  if (this._isRotating) {
@@ -77,13 +81,13 @@ export class RotateMode extends GeoJsonEditMode {
77
81
  // relative to the length of the longest edge of the enveloping box
78
82
  const rotateHandleCoords = topEdgeMidpointCoords && [
79
83
  topEdgeMidpointCoords[0],
80
- topEdgeMidpointCoords[1] + longestEdgeLength / 1000,
84
+ topEdgeMidpointCoords[1] + longestEdgeLength / 1000
81
85
  ];
82
86
 
83
- const lineFromEnvelopeToRotateHandle = lineString([topEdgeMidpointCoords!, rotateHandleCoords!]);
84
- const rotateHandle = point(rotateHandleCoords!, {
87
+ const lineFromEnvelopeToRotateHandle = lineString([topEdgeMidpointCoords, rotateHandleCoords]);
88
+ const rotateHandle = point(rotateHandleCoords, {
85
89
  guideType: 'editHandle',
86
- editHandleType: 'rotate',
90
+ editHandleType: 'rotate'
87
91
  });
88
92
 
89
93
  const outFeatures = [polygonToLine(boundingBox), rotateHandle, lineFromEnvelopeToRotateHandle];
@@ -178,7 +182,7 @@ export class RotateMode extends GeoJsonEditMode {
178
182
  this._geometryBeingRotated,
179
183
  angle,
180
184
  {
181
- pivot: centroid,
185
+ pivot: centroid
182
186
  }
183
187
  );
184
188
 
@@ -195,8 +199,8 @@ export class RotateMode extends GeoJsonEditMode {
195
199
  updatedData: updatedData.getObject(),
196
200
  editType,
197
201
  editContext: {
198
- featureIndexes: selectedIndexes,
199
- },
202
+ featureIndexes: selectedIndexes
203
+ }
200
204
  };
201
205
  }
202
206
  }
@@ -1,14 +1,18 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import bbox from '@turf/bbox';
2
6
  import turfCentroid from '@turf/centroid';
3
7
  import turfBearing from '@turf/bearing';
4
8
  import bboxPolygon from '@turf/bbox-polygon';
5
- import { point, featureCollection } from '@turf/helpers';
9
+ import {point, featureCollection} from '@turf/helpers';
6
10
  import polygonToLine from '@turf/polygon-to-line';
7
- import { coordEach } from '@turf/meta';
11
+ import {coordEach} from '@turf/meta';
8
12
  import turfDistance from '@turf/distance';
9
13
  import turfTransformScale from '@turf/transform-scale';
10
- import { getCoord, getGeom } from '@turf/invariant';
11
- import { FeatureCollection, Position } from '../geojson-types';
14
+ import {getCoord, getGeom} from '@turf/invariant';
15
+ import {FeatureCollection, Position} from '../utils/geojson-types';
12
16
  import {
13
17
  ModeProps,
14
18
  PointerMoveEvent,
@@ -16,11 +20,11 @@ import {
16
20
  StopDraggingEvent,
17
21
  DraggingEvent,
18
22
  EditHandleFeature,
19
- GuideFeatureCollection,
23
+ GuideFeatureCollection
20
24
  } from './types';
21
- import { getPickedEditHandle } from './utils';
22
- import { GeoJsonEditMode } from './geojson-edit-mode';
23
- import { ImmutableFeatureCollection } from './immutable-feature-collection';
25
+ import {getPickedEditHandle} from './utils';
26
+ import {GeoJsonEditMode} from './geojson-edit-mode';
27
+ import {ImmutableFeatureCollection} from './immutable-feature-collection';
24
28
 
25
29
  export class ScaleMode extends GeoJsonEditMode {
26
30
  _geometryBeingScaled: FeatureCollection | null | undefined;
@@ -30,10 +34,10 @@ export class ScaleMode extends GeoJsonEditMode {
30
34
  _isScaling = false;
31
35
 
32
36
  _isSinglePointGeometrySelected = (geometry: FeatureCollection | null | undefined): boolean => {
33
- const { features } = geometry || {};
37
+ const {features} = geometry || {};
34
38
  if (Array.isArray(features) && features.length === 1) {
35
39
  // @ts-expect-error turf types diff
36
- const { type }: { type: string } = getGeom(features[0]);
40
+ const {type}: {type: string} = getGeom(features[0]);
37
41
  return type === 'Point';
38
42
  }
39
43
  return false;
@@ -51,12 +55,14 @@ export class ScaleMode extends GeoJsonEditMode {
51
55
  }
52
56
  const guidePointCount = this._cornerGuidePoints.length;
53
57
  const oppositeIndex = (selectedHandleIndex + guidePointCount / 2) % guidePointCount;
54
- return this._cornerGuidePoints.find((p) => {
55
- if (!Array.isArray(p.properties.positionIndexes)) {
56
- return false;
57
- }
58
- return p.properties.positionIndexes[0] === oppositeIndex;
59
- }) || null;
58
+ return (
59
+ this._cornerGuidePoints.find((p) => {
60
+ if (!Array.isArray(p.properties.positionIndexes)) {
61
+ return false;
62
+ }
63
+ return p.properties.positionIndexes[0] === oppositeIndex;
64
+ }) || null
65
+ );
60
66
  };
61
67
 
62
68
  _getUpdatedData = (props: ModeProps<FeatureCollection>, editedData: FeatureCollection) => {
@@ -83,7 +89,7 @@ export class ScaleMode extends GeoJsonEditMode {
83
89
  }
84
90
 
85
91
  const oppositeHandle = this._getOppositeScaleHandle(this._selectedEditHandle);
86
- const origin = getCoord(oppositeHandle!) as Position;
92
+ const origin = getCoord(oppositeHandle) as Position;
87
93
 
88
94
  const scaleFactor = getScaleFactor(origin, startDragPoint, currentPoint);
89
95
 
@@ -92,15 +98,15 @@ export class ScaleMode extends GeoJsonEditMode {
92
98
  // @ts-expect-error turf types diff
93
99
  this._geometryBeingScaled,
94
100
  scaleFactor,
95
- { origin }
101
+ {origin}
96
102
  );
97
103
 
98
104
  return {
99
105
  updatedData: this._getUpdatedData(props, scaledFeatures),
100
106
  editType,
101
107
  editContext: {
102
- featureIndexes: props.selectedIndexes,
103
- },
108
+ featureIndexes: props.selectedIndexes
109
+ }
104
110
  };
105
111
  };
106
112
 
@@ -199,11 +205,11 @@ export class ScaleMode extends GeoJsonEditMode {
199
205
 
200
206
  // Add buffer to the enveloping box if a single Point feature is selected
201
207
  if (this._isSinglePointGeometrySelected(selectedGeometry)) {
202
- return { type: 'FeatureCollection', features: [] };
208
+ return {type: 'FeatureCollection', features: []};
203
209
  }
204
210
 
205
211
  const boundingBox = bboxPolygon(bbox(selectedGeometry));
206
- boundingBox.properties!.mode = 'scale';
212
+ boundingBox.properties.mode = 'scale';
207
213
  const cornerGuidePoints: EditHandleFeature[] = [];
208
214
 
209
215
  coordEach(boundingBox, (coord, coordIndex) => {
@@ -212,7 +218,7 @@ export class ScaleMode extends GeoJsonEditMode {
212
218
  const cornerPoint = point(coord, {
213
219
  guideType: 'editHandle',
214
220
  editHandleType: 'scale',
215
- positionIndexes: [coordIndex],
221
+ positionIndexes: [coordIndex]
216
222
  });
217
223
  cornerGuidePoints.push(cornerPoint as EditHandleFeature);
218
224
  }
@@ -1,4 +1,8 @@
1
- import { Position, Feature, FeatureCollection } from '../geojson-types';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {Position, Feature, FeatureCollection} from '../utils/geojson-types';
2
6
  import {
3
7
  PointerMoveEvent,
4
8
  StartDraggingEvent,
@@ -7,14 +11,14 @@ import {
7
11
  ModeProps,
8
12
  Pick,
9
13
  GuideFeatureCollection,
10
- EditHandleFeature,
14
+ EditHandleFeature
11
15
  } from './types';
12
16
  import {
13
17
  getPickedSnapSourceEditHandle,
14
18
  getPickedEditHandles,
15
- getEditHandlesForGeometry,
19
+ getEditHandlesForGeometry
16
20
  } from './utils';
17
- import { GeoJsonEditMode } from './geojson-edit-mode';
21
+ import {GeoJsonEditMode} from './geojson-edit-mode';
18
22
 
19
23
  type MovementTypeEvent = PointerMoveEvent | StartDraggingEvent | StopDraggingEvent | DraggingEvent;
20
24
 
@@ -33,7 +37,7 @@ export class SnappableMode extends GeoJsonEditMode {
33
37
  ): T {
34
38
  return Object.assign(event, {
35
39
  mapCoords: snapTarget.geometry.coordinates,
36
- pointerDownMapCoords: snapSource && snapSource.geometry.coordinates,
40
+ pointerDownMapCoords: snapSource && snapSource.geometry.coordinates
37
41
  });
38
42
  }
39
43
 
@@ -53,7 +57,7 @@ export class SnappableMode extends GeoJsonEditMode {
53
57
  snapSourceHandle: EditHandleFeature,
54
58
  data: FeatureCollection
55
59
  ): EditHandleFeature {
56
- const { featureIndex, positionIndexes } = snapSourceHandle.properties;
60
+ const {featureIndex, positionIndexes} = snapSourceHandle.properties;
57
61
  if (!Array.isArray(positionIndexes)) {
58
62
  return snapSourceHandle;
59
63
  }
@@ -69,8 +73,8 @@ export class SnappableMode extends GeoJsonEditMode {
69
73
  ...snapSourceHandle,
70
74
  geometry: {
71
75
  type: 'Point',
72
- coordinates: snapSourceCoordinates,
73
- },
76
+ coordinates: snapSourceCoordinates
77
+ }
74
78
  };
75
79
  }
76
80
 
@@ -79,7 +83,7 @@ export class SnappableMode extends GeoJsonEditMode {
79
83
  // that live in the current layer. Otherwise, this method will simply return the
80
84
  // features from the current layer
81
85
  _getSnapTargets(props: ModeProps<FeatureCollection>): Feature[] {
82
- let { additionalSnapTargets } = props.modeConfig || {};
86
+ let {additionalSnapTargets} = props.modeConfig || {};
83
87
  additionalSnapTargets = additionalSnapTargets || [];
84
88
 
85
89
  const features = [...props.data.features, ...additionalSnapTargets];
@@ -95,7 +99,7 @@ export class SnappableMode extends GeoJsonEditMode {
95
99
  const isCurrentIndexFeatureNotSelected = !props.selectedIndexes.includes(i);
96
100
 
97
101
  if (isCurrentIndexFeatureNotSelected) {
98
- const { geometry } = features[i];
102
+ const {geometry} = features[i];
99
103
  handles.push(...getEditHandlesForGeometry(geometry, i, 'snap-target'));
100
104
  }
101
105
  }
@@ -106,12 +110,12 @@ export class SnappableMode extends GeoJsonEditMode {
106
110
  // selected feature. If a snap handle has been picked, display said snap handle
107
111
  // along with all snappable points on all non-selected features.
108
112
  getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {
109
- const { modeConfig, lastPointerMoveEvent } = props;
110
- const { enableSnapping } = modeConfig || {};
113
+ const {modeConfig, lastPointerMoveEvent} = props;
114
+ const {enableSnapping} = modeConfig || {};
111
115
 
112
116
  const guides: GuideFeatureCollection = {
113
117
  type: 'FeatureCollection',
114
- features: [...this._handler.getGuides(props).features],
118
+ features: [...this._handler.getGuides(props).features]
115
119
  };
116
120
 
117
121
  if (!enableSnapping) {
@@ -133,10 +137,10 @@ export class SnappableMode extends GeoJsonEditMode {
133
137
  }
134
138
 
135
139
  // Render the possible snap source handles
136
- const { features } = props.data;
140
+ const {features} = props.data;
137
141
  for (const index of props.selectedIndexes) {
138
142
  if (index < features.length) {
139
- const { geometry } = features[index];
143
+ const {geometry} = features[index];
140
144
  guides.features.push(...getEditHandlesForGeometry(geometry, index, 'snap-source'));
141
145
  }
142
146
  }
@@ -1,24 +1,28 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import booleanPointInPolygon from '@turf/boolean-point-in-polygon';
2
6
  import turfDifference from '@turf/difference';
3
7
  import turfBuffer from '@turf/buffer';
4
8
  import lineIntersect from '@turf/line-intersect';
5
- import { lineString, Point } from '@turf/helpers';
9
+ import {lineString, Point} from '@turf/helpers';
6
10
  import turfBearing from '@turf/bearing';
7
11
  import turfDistance from '@turf/distance';
8
12
  import turfDestination from '@turf/destination';
9
13
  import turfPolygonToLine from '@turf/polygon-to-line';
10
- import nearestPointOnLine, { NearestPointOnLine } from '@turf/nearest-point-on-line';
11
- import { generatePointsParallelToLinePoints } from './utils';
12
- import { FeatureCollection } from '../geojson-types';
14
+ import nearestPointOnLine, {NearestPointOnLine} from '@turf/nearest-point-on-line';
15
+ import {generatePointsParallelToLinePoints} from './utils';
16
+ import {FeatureCollection} from '../utils/geojson-types';
13
17
  import {
14
18
  ClickEvent,
15
19
  PointerMoveEvent,
16
20
  ModeProps,
17
21
  GuideFeatureCollection,
18
- TentativeFeature,
22
+ TentativeFeature
19
23
  } from './types';
20
- import { GeoJsonEditMode, GeoJsonEditAction } from './geojson-edit-mode';
21
- import { ImmutableFeatureCollection } from './immutable-feature-collection';
24
+ import {GeoJsonEditMode, GeoJsonEditAction} from './geojson-edit-mode';
25
+ import {ImmutableFeatureCollection} from './immutable-feature-collection';
22
26
 
23
27
  export class SplitPolygonMode extends GeoJsonEditMode {
24
28
  calculateMapCoords(clickSequence: any, mapCoords: any, props: ModeProps<FeatureCollection>) {
@@ -49,9 +53,9 @@ export class SplitPolygonMode extends GeoJsonEditMode {
49
53
  if (closestPoint) {
50
54
  // closest point is used as 90degree entry to the polygon
51
55
  const lastBearing = turfBearing(firstPoint, closestPoint);
52
- const currentDistance = turfDistance(firstPoint, mapCoords, { units: 'meters' });
56
+ const currentDistance = turfDistance(firstPoint, mapCoords, {units: 'meters'});
53
57
  return turfDestination(firstPoint, currentDistance, lastBearing, {
54
- units: 'meters',
58
+ units: 'meters'
55
59
  }).geometry.coordinates;
56
60
  }
57
61
  return mapCoords;
@@ -74,7 +78,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
74
78
 
75
79
  const guides: GuideFeatureCollection = {
76
80
  type: 'FeatureCollection',
77
- features: [],
81
+ features: []
78
82
  };
79
83
 
80
84
  if (clickSequence.length === 0 || !props.lastPointerMoveEvent) {
@@ -82,17 +86,17 @@ export class SplitPolygonMode extends GeoJsonEditMode {
82
86
  return guides;
83
87
  }
84
88
 
85
- const { mapCoords } = props.lastPointerMoveEvent;
89
+ const {mapCoords} = props.lastPointerMoveEvent;
86
90
 
87
91
  guides.features.push({
88
92
  type: 'Feature',
89
93
  properties: {
90
- guideType: 'tentative',
94
+ guideType: 'tentative'
91
95
  },
92
96
  geometry: {
93
97
  type: 'LineString',
94
- coordinates: [...clickSequence, this.calculateMapCoords(clickSequence, mapCoords, props)],
95
- },
98
+ coordinates: [...clickSequence, this.calculateMapCoords(clickSequence, mapCoords, props)]
99
+ }
96
100
  });
97
101
 
98
102
  return guides;
@@ -120,7 +124,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
120
124
 
121
125
  const pt: Point = {
122
126
  type: 'Point',
123
- coordinates: clickSequence[clickSequence.length - 1],
127
+ coordinates: clickSequence[clickSequence.length - 1]
124
128
  };
125
129
 
126
130
  // @ts-expect-error turf types diff
@@ -151,13 +155,13 @@ export class SplitPolygonMode extends GeoJsonEditMode {
151
155
  const modeConfig = props.modeConfig || {};
152
156
 
153
157
  // Default gap in between the polygon
154
- let { gap = 0.1, units = 'centimeters' } = modeConfig;
158
+ let {gap = 0.1, units = 'centimeters'} = modeConfig;
155
159
  if (gap === 0) {
156
160
  gap = 0.1;
157
161
  units = 'centimeters';
158
162
  }
159
163
 
160
- const buffer = turfBuffer(tentativeFeature, gap, { units });
164
+ const buffer = turfBuffer(tentativeFeature, gap, {units});
161
165
  // @ts-expect-error turf types diff
162
166
  const updatedGeometry = turfDifference(selectedGeometry, buffer);
163
167
  if (!updatedGeometry) {
@@ -166,7 +170,7 @@ export class SplitPolygonMode extends GeoJsonEditMode {
166
170
  return null;
167
171
  }
168
172
 
169
- const { type, coordinates } = updatedGeometry.geometry;
173
+ const {type, coordinates} = updatedGeometry.geometry;
170
174
  let updatedCoordinates: any[] = []; // TODO
171
175
  if (type === 'Polygon') {
172
176
  // Update the coordinates as per Multipolygon
@@ -185,15 +189,15 @@ export class SplitPolygonMode extends GeoJsonEditMode {
185
189
  // Update the type to Mulitpolygon
186
190
  const updatedData = new ImmutableFeatureCollection(props.data).replaceGeometry(featureIndex, {
187
191
  type: 'MultiPolygon',
188
- coordinates: updatedCoordinates,
192
+ coordinates: updatedCoordinates
189
193
  });
190
194
 
191
195
  const editAction: GeoJsonEditAction = {
192
196
  updatedData: updatedData.getObject(),
193
197
  editType: 'split',
194
198
  editContext: {
195
- featureIndexes: [featureIndex],
196
- },
199
+ featureIndexes: [featureIndex]
200
+ }
197
201
  };
198
202
 
199
203
  return editAction;
@@ -1,12 +1,16 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import {
2
6
  ClickEvent,
3
7
  PointerMoveEvent,
4
8
  ModeProps,
5
9
  GuideFeatureCollection,
6
- TentativeFeature,
10
+ TentativeFeature
7
11
  } from './types';
8
- import { Position, Polygon, FeatureOf, FeatureCollection } from '../geojson-types';
9
- import { GeoJsonEditMode } from './geojson-edit-mode';
12
+ import {Position, Polygon, FeatureOf, FeatureCollection} from '../utils/geojson-types';
13
+ import {GeoJsonEditMode} from './geojson-edit-mode';
10
14
 
11
15
  export class ThreeClickPolygonMode extends GeoJsonEditMode {
12
16
  handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
@@ -29,12 +33,12 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
29
33
  }
30
34
 
31
35
  getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {
32
- const { lastPointerMoveEvent, modeConfig } = props;
36
+ const {lastPointerMoveEvent, modeConfig} = props;
33
37
  const clickSequence = this.getClickSequence();
34
38
 
35
39
  const guides: GuideFeatureCollection = {
36
40
  type: 'FeatureCollection',
37
- features: [],
41
+ features: []
38
42
  };
39
43
 
40
44
  if (clickSequence.length === 0) {
@@ -48,12 +52,12 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
48
52
  guides.features.push({
49
53
  type: 'Feature',
50
54
  properties: {
51
- guideType: 'tentative',
55
+ guideType: 'tentative'
52
56
  },
53
57
  geometry: {
54
58
  type: 'LineString',
55
- coordinates: [clickSequence[0], hoveredCoord],
56
- },
59
+ coordinates: [clickSequence[0], hoveredCoord]
60
+ }
57
61
  });
58
62
  } else {
59
63
  const polygon = this.getThreeClickPolygon(
@@ -66,9 +70,9 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
66
70
  guides.features.push({
67
71
  type: 'Feature',
68
72
  properties: {
69
- guideType: 'tentative',
73
+ guideType: 'tentative'
70
74
  },
71
- geometry: polygon.geometry,
75
+ geometry: polygon.geometry
72
76
  });
73
77
  }
74
78
  }
@@ -91,7 +95,7 @@ export class ThreeClickPolygonMode extends GeoJsonEditMode {
91
95
  }
92
96
 
93
97
  createTentativeFeature(props: ModeProps<FeatureCollection>): TentativeFeature {
94
- const { lastPointerMoveEvent } = props;
98
+ const {lastPointerMoveEvent} = props;
95
99
  const clickSequence = this.getClickSequence();
96
100
 
97
101
  const lastCoords = lastPointerMoveEvent ? [lastPointerMoveEvent.mapCoords] : [];
@@ -1,12 +1,16 @@
1
- import { featureCollection } from '@turf/helpers';
2
- import { PointerMoveEvent, ModeProps, StartDraggingEvent } from './types';
3
- import { FeatureCollection } from '../geojson-types';
4
- import { TranslateMode } from './translate-mode';
5
- import { ScaleMode } from './scale-mode';
6
- import { RotateMode } from './rotate-mode';
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
7
4
 
8
- import { CompositeMode } from './composite-mode';
9
- import { GeoJsonEditMode } from './geojson-edit-mode';
5
+ import {featureCollection} from '@turf/helpers';
6
+ import {PointerMoveEvent, ModeProps, StartDraggingEvent} from './types';
7
+ import {FeatureCollection} from '../utils/geojson-types';
8
+ import {TranslateMode} from './translate-mode';
9
+ import {ScaleMode} from './scale-mode';
10
+ import {RotateMode} from './rotate-mode';
11
+
12
+ import {CompositeMode} from './composite-mode';
13
+ import {GeoJsonEditMode} from './geojson-edit-mode';
10
14
 
11
15
  export class TransformMode extends CompositeMode {
12
16
  constructor() {
@@ -19,7 +23,7 @@ export class TransformMode extends CompositeMode {
19
23
  ...props,
20
24
  onUpdateCursor: (cursor) => {
21
25
  updatedCursor = cursor || updatedCursor;
22
- },
26
+ }
23
27
  });
24
28
  props.onUpdateCursor(updatedCursor);
25
29
  }
@@ -45,7 +49,7 @@ export class TransformMode extends CompositeMode {
45
49
  });
46
50
 
47
51
  if (scaleMode instanceof ScaleMode && !scaleMode.isEditHandleSelected()) {
48
- filteredModes.push(translateMode!);
52
+ filteredModes.push(translateMode);
49
53
  }
50
54
 
51
55
  filteredModes.filter(Boolean).forEach((mode) => mode.handleStartDragging(event, props));
@@ -57,7 +61,7 @@ export class TransformMode extends CompositeMode {
57
61
 
58
62
  if (rotateMode instanceof RotateMode) {
59
63
  const nonEnvelopeGuides = compositeGuides.features.filter((guide) => {
60
- const { editHandleType, mode } = (guide.properties as any) || {};
64
+ const {editHandleType, mode} = (guide.properties as any) || {};
61
65
  // Both scale and rotate modes have the same enveloping box as a guide - only need one
62
66
  const guidesToFilterOut = [mode];
63
67
  // Do not render scaling edit handles if rotating
@@ -1,20 +1,24 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import turfBearing from '@turf/bearing';
2
6
  import turfDistance from '@turf/distance';
3
7
  import clone from '@turf/clone';
4
- import { point, Feature as TurfFeature, Geometry as TurfGeometry } from '@turf/helpers';
8
+ import {point, Feature as TurfFeature, Geometry as TurfGeometry} from '@turf/helpers';
5
9
  import WebMercatorViewport from 'viewport-mercator-project';
6
- import { FeatureCollection, Position, Geometry } from '../geojson-types';
10
+ import {FeatureCollection, Position, Geometry} from '../utils/geojson-types';
7
11
  import {
8
12
  PointerMoveEvent,
9
13
  StartDraggingEvent,
10
14
  StopDraggingEvent,
11
15
  DraggingEvent,
12
- ModeProps,
16
+ ModeProps
13
17
  } from './types';
14
- import { mapCoords } from './utils';
15
- import { translateFromCenter } from '../translateFromCenter';
16
- import { GeoJsonEditMode, GeoJsonEditAction } from './geojson-edit-mode';
17
- import { ImmutableFeatureCollection } from './immutable-feature-collection';
18
+ import {mapCoords} from './utils';
19
+ import {translateFromCenter} from '../utils/translate-from-center';
20
+ import {GeoJsonEditMode, GeoJsonEditAction} from './geojson-edit-mode';
21
+ import {ImmutableFeatureCollection} from './immutable-feature-collection';
18
22
 
19
23
  export class TranslateMode extends GeoJsonEditMode {
20
24
  _geometryBeforeTranslate: FeatureCollection | null | undefined;
@@ -98,7 +102,7 @@ export class TranslateMode extends GeoJsonEditMode {
98
102
  let updatedData = new ImmutableFeatureCollection(props.data);
99
103
  const selectedIndexes = props.selectedIndexes;
100
104
 
101
- const { viewport: viewportDesc, screenSpace } = props.modeConfig || {};
105
+ const {viewport: viewportDesc, screenSpace} = props.modeConfig || {};
102
106
 
103
107
  // move features without adapting to mercator projection
104
108
  if (viewportDesc && screenSpace) {
@@ -128,7 +132,7 @@ export class TranslateMode extends GeoJsonEditMode {
128
132
  // @ts-expect-error turf types
129
133
  updatedData = updatedData.replaceGeometry(selectedIndex, {
130
134
  type: feature.geometry.type,
131
- coordinates,
135
+ coordinates
132
136
  });
133
137
  }
134
138
  }
@@ -154,8 +158,8 @@ export class TranslateMode extends GeoJsonEditMode {
154
158
  updatedData: updatedData.getObject(),
155
159
  editType,
156
160
  editContext: {
157
- featureIndexes: selectedIndexes,
158
- },
161
+ featureIndexes: selectedIndexes
162
+ }
159
163
  };
160
164
  }
161
165
  }