terra-draw 0.0.1-alpha.35 → 0.0.1-alpha.37

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.1-alpha.37](https://github.com/JamesLMilner/terra-draw/compare/v0.0.1-alpha.36...v0.0.1-alpha.37) (2023-07-01)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * enable/disable drag rotations in MapboxGL/MapLibre adapters when calling setDraggability ([8c62512](https://github.com/JamesLMilner/terra-draw/commit/8c6251227215aa9cb966aca040d6e8a2d46c28da))
11
+ * handle errors in unproject in openlayers adapter ([bc117fa](https://github.com/JamesLMilner/terra-draw/commit/bc117fa95b87452578e2edaf6f0b6bb79ff428af))
12
+ * resolve several issues with selection ([820f7a6](https://github.com/JamesLMilner/terra-draw/commit/820f7a60d909d64945b3c2b7e8649ef0fc95c920))
13
+
14
+
15
+ ### Chore
16
+
17
+ * increase test coverage ([514be2f](https://github.com/JamesLMilner/terra-draw/commit/514be2f0bc71a12e919c37d25e8d308940366b73))
18
+
19
+ ### [0.0.1-alpha.36](https://github.com/JamesLMilner/terra-draw/compare/v0.0.1-alpha.35...v0.0.1-alpha.36) (2023-06-20)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * ensure that preventDefault is only called when necessary for keyboard inputs ([108e20d](https://github.com/JamesLMilner/terra-draw/commit/108e20d8e6048cf7d1145c53e3bc4c7c227c8a19))
25
+
5
26
  ### [0.0.1-alpha.35](https://github.com/JamesLMilner/terra-draw/compare/v0.0.1-alpha.34...v0.0.1-alpha.35) (2023-06-13)
6
27
 
7
28
 
@@ -69,7 +69,7 @@ export declare class TerraDrawMapboxGLAdapter extends TerraDrawBaseAdapter {
69
69
  * Sets the cursor style for the map container.
70
70
  * @param cursor The CSS cursor style to apply, or 'unset' to remove any previously applied cursor style.
71
71
  */
72
- setCursor(style: Parameters<SetCursor>[0]): void;
72
+ setCursor(cursor: Parameters<SetCursor>[0]): void;
73
73
  /**
74
74
  * Enables or disables the double-click to zoom functionality on the map.
75
75
  * @param enabled Set to true to enable double-click to zoom, or false to disable it.
@@ -61,7 +61,7 @@ export declare class TerraDrawOpenLayersAdapter extends TerraDrawBaseAdapter {
61
61
  getLngLatFromEvent(event: PointerEvent | MouseEvent): {
62
62
  lng: number;
63
63
  lat: number;
64
- };
64
+ } | null;
65
65
  /**
66
66
  * Retrieves the HTML container element of the Leaflet map.
67
67
  * @returns The HTMLElement representing the map container.
package/dist/common.d.ts CHANGED
@@ -23,6 +23,8 @@ export interface TerraDrawMouseEvent {
23
23
  }
24
24
  export interface TerraDrawKeyboardEvent {
25
25
  key: string;
26
+ heldKeys: string[];
27
+ preventDefault: () => void;
26
28
  }
27
29
  export type SetCursor = (cursor: "unset" | "grab" | "grabbing" | "crosshair" | "pointer" | "wait") => void;
28
30
  export type Project = (lng: number, lat: number) => {
@@ -57,7 +59,7 @@ export interface TerraDrawCallbacks {
57
59
  onClick: (event: TerraDrawMouseEvent) => void;
58
60
  onMouseMove: (event: TerraDrawMouseEvent) => void;
59
61
  onDragStart: (event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void) => void;
60
- onDrag: (event: TerraDrawMouseEvent) => void;
62
+ onDrag: (event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void) => void;
61
63
  onDragEnd: (event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void) => void;
62
64
  onClear: () => void;
63
65
  }
@@ -1,5 +1,4 @@
1
1
  import { Feature, Polygon, Position } from "geojson";
2
- export declare function destination(origin: Position, distance: number, bearing: number): Position;
3
2
  export declare function circle(options: {
4
3
  center: Position;
5
4
  radiusKilometers: number;
@@ -42,7 +42,7 @@ export declare abstract class TerraDrawBaseDrawMode<T extends CustomStyling> {
42
42
  onMouseMove(event: TerraDrawMouseEvent): void;
43
43
  onClick(event: TerraDrawMouseEvent): void;
44
44
  onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
45
- onDrag(event: TerraDrawMouseEvent): void;
45
+ onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
46
46
  onDragEnd(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
47
47
  }
48
48
  export {};
@@ -9,5 +9,11 @@ export declare class DragCoordinateBehavior extends TerraDrawModeBehavior {
9
9
  private readonly selectionPoints;
10
10
  private readonly midPoints;
11
11
  constructor(config: BehaviorConfig, pixelDistance: PixelDistanceBehavior, selectionPoints: SelectionPointBehavior, midPoints: MidPointBehavior);
12
- drag(event: TerraDrawMouseEvent, selectedId: string): boolean;
12
+ private draggedCoordinate;
13
+ private getClosestCoordinate;
14
+ getDraggableIndex(event: TerraDrawMouseEvent, selectedId: string): number;
15
+ drag(event: TerraDrawMouseEvent): boolean;
16
+ isDragging(): boolean;
17
+ startDragging(id: string, index: number): void;
18
+ stopDragging(): void;
13
19
  }
@@ -1,7 +1,6 @@
1
1
  import { TerraDrawMouseEvent } from "../../../common";
2
2
  import { BehaviorConfig, TerraDrawModeBehavior } from "../../base.behavior";
3
3
  import { FeaturesAtMouseEventBehavior } from "./features-at-mouse-event.behavior";
4
- import { Position } from "geojson";
5
4
  import { SelectionPointBehavior } from "./selection-point.behavior";
6
5
  import { MidPointBehavior } from "./midpoint.behavior";
7
6
  export declare class DragFeatureBehavior extends TerraDrawModeBehavior {
@@ -10,9 +9,11 @@ export declare class DragFeatureBehavior extends TerraDrawModeBehavior {
10
9
  private readonly selectionPoints;
11
10
  private readonly midPoints;
12
11
  constructor(config: BehaviorConfig, featuresAtMouseEvent: FeaturesAtMouseEventBehavior, selectionPoints: SelectionPointBehavior, midPoints: MidPointBehavior);
12
+ private draggedFeatureId;
13
13
  private dragPosition;
14
- get position(): undefined | Position;
15
- set position(newPosition: undefined | Position);
16
- checkCanDrag(event: TerraDrawMouseEvent, selectedId: string): boolean | undefined;
17
- drag(event: TerraDrawMouseEvent, selectedId: string): false | undefined;
14
+ startDragging(event: TerraDrawMouseEvent, id: string): void;
15
+ stopDragging(): void;
16
+ isDragging(): boolean;
17
+ canDrag(event: TerraDrawMouseEvent, selectedId: string): boolean;
18
+ drag(event: TerraDrawMouseEvent): false | undefined;
18
19
  }
@@ -5,8 +5,8 @@ import { GeoJSONStoreFeatures } from "../../store/store";
5
5
  type TerraDrawSelectModeKeyEvents = {
6
6
  deselect: KeyboardEvent["key"] | null;
7
7
  delete: KeyboardEvent["key"] | null;
8
- rotate: KeyboardEvent["key"] | null;
9
- scale: KeyboardEvent["key"] | null;
8
+ rotate: KeyboardEvent["key"][] | null;
9
+ scale: KeyboardEvent["key"][] | null;
10
10
  };
11
11
  type ModeFlags = {
12
12
  feature?: {
@@ -69,8 +69,11 @@ export declare class TerraDrawSelectMode extends TerraDrawBaseDrawMode<Selection
69
69
  stop(): void;
70
70
  /** @internal */
71
71
  onClick(event: TerraDrawMouseEvent): void;
72
+ private canScale;
73
+ private canRotate;
74
+ private preventDefaultKeyEvent;
72
75
  /** @internal */
73
- onKeyDown(): void;
76
+ onKeyDown(event: TerraDrawKeyboardEvent): void;
74
77
  /** @internal */
75
78
  onKeyUp(event: TerraDrawKeyboardEvent): void;
76
79
  /** @internal */
@@ -78,7 +81,7 @@ export declare class TerraDrawSelectMode extends TerraDrawBaseDrawMode<Selection
78
81
  /** @internal */
79
82
  onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
80
83
  /** @internal */
81
- onDrag(event: TerraDrawMouseEvent): void;
84
+ onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
82
85
  /** @internal */
83
86
  onDragEnd(_: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
84
87
  /** @internal */