terra-draw 1.0.0-beta.9 → 1.1.0

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 (133) hide show
  1. package/.versionrc.cjs +9 -0
  2. package/README.md +12 -26
  3. package/dist/common/adapter-listener.spec.d.ts +1 -0
  4. package/dist/{adapters/common → common}/base.adapter.d.ts +1 -1
  5. package/dist/common.d.ts +8 -5
  6. package/dist/extend.d.ts +4 -3
  7. package/dist/geometry/boolean/is-valid-coordinate.spec.d.ts +1 -0
  8. package/dist/geometry/boolean/point-in-polygon.spec.d.ts +1 -0
  9. package/dist/geometry/boolean/self-intersects.spec.d.ts +1 -0
  10. package/dist/geometry/calculate-relative-angle.d.ts +2 -10
  11. package/dist/geometry/calculate-relative-angle.spec.d.ts +1 -0
  12. package/dist/geometry/centroid.spec.d.ts +1 -0
  13. package/dist/geometry/clockwise.d.ts +2 -10
  14. package/dist/geometry/clockwise.spec.d.ts +1 -0
  15. package/dist/geometry/coordinates-identical.spec.d.ts +1 -0
  16. package/dist/geometry/determine-halfplane.d.ts +2 -10
  17. package/dist/geometry/determine-halfplane.spec.d.ts +1 -0
  18. package/dist/geometry/get-coordinates-as-points.spec.d.ts +1 -0
  19. package/dist/geometry/get-midpoint.spec.d.ts +1 -0
  20. package/dist/geometry/limit-decimal-precision.spec.d.ts +1 -0
  21. package/dist/geometry/measure/bearing.d.ts +2 -7
  22. package/dist/geometry/measure/bearing.spec.d.ts +1 -0
  23. package/dist/geometry/measure/desination.spec.d.ts +1 -0
  24. package/dist/geometry/measure/destination.d.ts +2 -7
  25. package/dist/geometry/measure/haversine-distance.spec.d.ts +1 -0
  26. package/dist/geometry/measure/pixel-distance-to-line.d.ts +2 -10
  27. package/dist/geometry/measure/pixel-distance-to-line.spec.d.ts +1 -0
  28. package/dist/geometry/measure/pixel-distance.d.ts +2 -7
  29. package/dist/geometry/measure/pixel-distance.spec.d.ts +1 -0
  30. package/dist/geometry/measure/rhumb-bearing.spec.d.ts +1 -0
  31. package/dist/geometry/measure/rhumb-destination.spec.d.ts +1 -0
  32. package/dist/geometry/measure/rhumb-distance.spec.d.ts +1 -0
  33. package/dist/geometry/point-on-line.d.ts +6 -0
  34. package/dist/geometry/point-on-line.spec.d.ts +1 -0
  35. package/dist/geometry/project/web-mercator.d.ts +2 -4
  36. package/dist/geometry/project/web-mercator.spec.d.ts +1 -0
  37. package/dist/geometry/shape/create-bbox.spec.d.ts +1 -0
  38. package/dist/geometry/shape/create-circle.spec.d.ts +1 -0
  39. package/dist/geometry/shape/great-circle-coordinates.spec.d.ts +1 -0
  40. package/dist/geometry/shape/web-mercator-distortion.spec.d.ts +1 -0
  41. package/dist/geometry/transform/rotate.spec.d.ts +1 -0
  42. package/dist/geometry/transform/scale.spec.d.ts +1 -0
  43. package/dist/geometry/web-mercator-centroid.d.ts +2 -4
  44. package/dist/geometry/web-mercator-centroid.spec.d.ts +1 -0
  45. package/dist/geometry/web-mercator-point-on-line.d.ts +12 -0
  46. package/dist/geometry/web-mercator-point-on-line.spec.d.ts +1 -0
  47. package/dist/modes/angled-rectangle/angled-rectangle.mode.d.ts +0 -1
  48. package/dist/modes/angled-rectangle/angled-rectangle.mode.spec.d.ts +1 -0
  49. package/dist/modes/circle/circle.mode.spec.d.ts +1 -0
  50. package/dist/modes/click-bounding-box.behavior.spec.d.ts +1 -0
  51. package/dist/modes/coordinate-snapping.behavior.d.ts +21 -0
  52. package/dist/modes/coordinate-snapping.behavior.spec.d.ts +1 -0
  53. package/dist/modes/freehand/freehand.mode.spec.d.ts +1 -0
  54. package/dist/modes/insert-coordinates.behavior.spec.d.ts +1 -0
  55. package/dist/modes/{snapping.behavior.d.ts → line-snapping.behavior.d.ts} +8 -3
  56. package/dist/modes/line-snapping.behavior.spec.d.ts +1 -0
  57. package/dist/modes/linestring/linestring.mode.d.ts +14 -3
  58. package/dist/modes/linestring/linestring.mode.spec.d.ts +1 -0
  59. package/dist/modes/pixel-distance.behavior.spec.d.ts +1 -0
  60. package/dist/modes/point/point.mode.d.ts +16 -4
  61. package/dist/modes/point/point.mode.spec.d.ts +1 -0
  62. package/dist/modes/polygon/behaviors/closing-points.behavior.spec.d.ts +1 -0
  63. package/dist/modes/polygon/polygon.mode.d.ts +32 -6
  64. package/dist/modes/polygon/polygon.mode.spec.d.ts +1 -0
  65. package/dist/modes/rectangle/rectangle.mode.spec.d.ts +1 -0
  66. package/dist/modes/render/render.mode.spec.d.ts +1 -0
  67. package/dist/modes/sector/sector.mode.spec.d.ts +1 -0
  68. package/dist/modes/select/behaviors/drag-coordinate-resize.behavior.spec.d.ts +1 -0
  69. package/dist/modes/select/behaviors/drag-coordinate.behavior.spec.d.ts +1 -0
  70. package/dist/modes/select/behaviors/drag-feature.behavior.spec.d.ts +1 -0
  71. package/dist/modes/select/behaviors/feature-at-pointer-event.behavior.spec.d.ts +1 -0
  72. package/dist/modes/select/behaviors/midpoint.behavior.spec.d.ts +1 -0
  73. package/dist/modes/select/behaviors/rotate-feature.behavior.spec.d.ts +1 -0
  74. package/dist/modes/select/behaviors/scale-feature.behavior.spec.d.ts +1 -0
  75. package/dist/modes/select/behaviors/selection-point.behavior.spec.d.ts +1 -0
  76. package/dist/modes/select/select.mode.spec.d.ts +1 -0
  77. package/dist/modes/sensor/sensor.mode.spec.d.ts +1 -0
  78. package/dist/modes/static/static.mode.spec.d.ts +1 -0
  79. package/dist/store/spatial-index/quickselect.spec.d.ts +1 -0
  80. package/dist/store/spatial-index/rbush.spec.d.ts +1 -0
  81. package/dist/store/spatial-index/spatial-index.spec.d.ts +1 -0
  82. package/dist/store/store-validation.spec.d.ts +1 -0
  83. package/dist/store/store.spec.d.ts +1 -0
  84. package/dist/terra-draw.cjs +1 -1
  85. package/dist/terra-draw.cjs.map +1 -1
  86. package/dist/terra-draw.d.ts +9 -46
  87. package/dist/terra-draw.extensions.spec.d.ts +28 -0
  88. package/dist/terra-draw.modern.js +1 -1
  89. package/dist/terra-draw.modern.js.map +1 -1
  90. package/dist/terra-draw.module.js +1 -1
  91. package/dist/terra-draw.module.js.map +1 -1
  92. package/dist/terra-draw.spec.d.ts +1 -0
  93. package/dist/terra-draw.umd.js +1 -1
  94. package/dist/terra-draw.umd.js.map +1 -1
  95. package/dist/test/create-store-features.d.ts +6 -0
  96. package/dist/test/mock-behavior-config.d.ts +2 -0
  97. package/dist/test/mock-cursor-event.d.ts +6 -0
  98. package/dist/test/mock-features.d.ts +4 -0
  99. package/dist/test/mock-keyboard-event.d.ts +5 -0
  100. package/dist/test/mock-mode-config.d.ts +21 -0
  101. package/dist/util/geom.spec.d.ts +1 -0
  102. package/dist/util/id.spec.d.ts +1 -0
  103. package/dist/util/styling.spec.d.ts +1 -0
  104. package/dist/validations/linestring.validation.spec.d.ts +1 -0
  105. package/dist/validations/max-size.validation.spec.d.ts +1 -0
  106. package/dist/validations/min-size.validation.spec.d.ts +1 -0
  107. package/dist/validations/not-self-intersecting.validation.spec.d.ts +1 -0
  108. package/dist/validations/point.validation.spec.d.ts +1 -0
  109. package/dist/validations/polygon.validation.spec.d.ts +1 -0
  110. package/jest.nocheck.config.ts +5 -14
  111. package/package.json +8 -119
  112. package/tsconfig.json +6 -25
  113. package/.devcontainer/Dockerfile +0 -8
  114. package/.devcontainer/devcontainer.json +0 -27
  115. package/.devcontainer/post-create.sh +0 -16
  116. package/LICENSE +0 -8
  117. package/dist/adapters/arcgis-maps-sdk.adapter.d.ts +0 -106
  118. package/dist/adapters/google-maps.adapter.d.ts +0 -90
  119. package/dist/adapters/leaflet.adapter.d.ts +0 -99
  120. package/dist/adapters/mapbox-gl.adapter.d.ts +0 -90
  121. package/dist/adapters/maplibre-gl.adapter.d.ts +0 -72
  122. package/dist/adapters/openlayers.adapter.d.ts +0 -121
  123. package/e2e/README.md +0 -29
  124. package/e2e/package-lock.json +0 -4275
  125. package/e2e/package.json +0 -26
  126. package/e2e/playwright.config.ts +0 -77
  127. package/e2e/public/favicon.ico +0 -0
  128. package/e2e/public/index.html +0 -55
  129. package/e2e/tests/leaflet.spec.ts +0 -1040
  130. package/e2e/tests/setup.ts +0 -208
  131. package/e2e/webpack.config.js +0 -36
  132. package/eslint.config.js +0 -31
  133. /package/dist/{adapters/common → common}/adapter-listener.d.ts +0 -0
@@ -1,4 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
2
+ import { Position } from "geojson";
2
3
  import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling } from "../base.mode";
3
4
  import { BehaviorConfig } from "../base.behavior";
4
5
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
@@ -15,26 +16,51 @@ type PolygonStyling = {
15
16
  closingPointColor: HexColorStyling;
16
17
  closingPointOutlineWidth: NumericStyling;
17
18
  closingPointOutlineColor: HexColorStyling;
19
+ snappingPointWidth: NumericStyling;
20
+ snappingPointColor: HexColorStyling;
21
+ snappingPointOutlineWidth: NumericStyling;
22
+ snappingPointOutlineColor: HexColorStyling;
23
+ editedPointWidth: NumericStyling;
24
+ editedPointColor: HexColorStyling;
25
+ editedPointOutlineWidth: NumericStyling;
26
+ editedPointOutlineColor: HexColorStyling;
18
27
  };
19
28
  interface Cursors {
20
29
  start?: Cursor;
21
30
  close?: Cursor;
31
+ dragStart?: Cursor;
32
+ dragEnd?: Cursor;
33
+ }
34
+ interface Snapping {
35
+ toLine?: boolean;
36
+ toCoordinate?: boolean;
37
+ toCustom?: (event: TerraDrawMouseEvent) => Position | undefined;
22
38
  }
23
39
  interface TerraDrawPolygonModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
24
- snapping?: boolean;
40
+ snapping?: Snapping;
25
41
  pointerDistance?: number;
26
42
  keyEvents?: TerraDrawPolygonModeKeyEvents | null;
27
43
  cursors?: Cursors;
44
+ editable?: boolean;
28
45
  }
29
46
  export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode<PolygonStyling> {
30
47
  mode: string;
31
48
  private currentCoordinate;
32
49
  private currentId;
33
50
  private keyEvents;
34
- private snappingEnabled;
35
51
  private snapping;
52
+ private editable;
53
+ private snappedPointId;
54
+ private editedFeatureId;
55
+ private editedFeatureCoordinateIndex;
56
+ private editedSnapType;
57
+ private editedInsertIndex;
58
+ private editedPointId;
59
+ private lineSnapping;
60
+ private coordinateSnapping;
36
61
  private pixelDistance;
37
62
  private closingPoints;
63
+ private clickBoundingBox;
38
64
  private cursors;
39
65
  private mouseMove;
40
66
  constructor(options?: TerraDrawPolygonModeOptions<PolygonStyling>);
@@ -48,18 +74,18 @@ export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode<PolygonS
48
74
  /** @internal */
49
75
  onMouseMove(event: TerraDrawMouseEvent): void;
50
76
  private updatePolygonGeometry;
77
+ private snapCoordinate;
51
78
  /** @internal */
52
79
  onClick(event: TerraDrawMouseEvent): void;
53
80
  /** @internal */
54
81
  onKeyUp(event: TerraDrawKeyboardEvent): void;
55
82
  /** @internal */
56
83
  onKeyDown(): void;
84
+ onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
57
85
  /** @internal */
58
- onDragStart(): void;
59
- /** @internal */
60
- onDrag(): void;
86
+ onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
61
87
  /** @internal */
62
- onDragEnd(): void;
88
+ onDragEnd(_: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
63
89
  /** @internal */
64
90
  cleanUp(): void;
65
91
  /** @internal */
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};