terra-draw 0.0.1-alpha.68 → 0.0.1-alpha.69

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 (32) hide show
  1. package/dist/adapters/google-maps.adapter.d.ts +0 -1
  2. package/dist/common.d.ts +1 -0
  3. package/dist/geometry/measure/bearing.d.ts +2 -0
  4. package/dist/geometry/measure/destination.d.ts +2 -0
  5. package/dist/geometry/measure/slice-along.d.ts +2 -0
  6. package/dist/geometry/shape/create-bbox.d.ts +1 -1
  7. package/dist/geometry/shape/create-circle.d.ts +6 -0
  8. package/dist/geometry/shape/great-circle-coordinates.d.ts +2 -0
  9. package/dist/geometry/shape/web-mercator-distortion.d.ts +2 -0
  10. package/dist/modes/circle/circle.mode.d.ts +3 -1
  11. package/dist/modes/insert-coordinates.behavior.d.ts +9 -0
  12. package/dist/modes/linestring/linestring.mode.d.ts +15 -1
  13. package/dist/modes/static/static.mode.d.ts +5 -5
  14. package/dist/terra-draw.cjs +1 -1
  15. package/dist/terra-draw.cjs.map +1 -1
  16. package/dist/terra-draw.d.ts +1 -2
  17. package/dist/terra-draw.modern.js +1 -1
  18. package/dist/terra-draw.modern.js.map +1 -1
  19. package/dist/terra-draw.module.js +1 -1
  20. package/dist/terra-draw.module.js.map +1 -1
  21. package/dist/terra-draw.umd.js +1 -1
  22. package/dist/terra-draw.umd.js.map +1 -1
  23. package/dist/validations/max-size.validation.d.ts +1 -1
  24. package/e2e/package-lock.json +114 -72
  25. package/e2e/package.json +1 -1
  26. package/e2e/public/index.html +0 -1
  27. package/e2e/tests/leaflet.spec.ts +111 -45
  28. package/e2e/tests/setup.ts +9 -9
  29. package/package.json +9 -8
  30. package/dist/geometry/shape/great-circle-line.d.ts +0 -12
  31. package/dist/modes/great-circle-snapping.behavior.d.ts +0 -14
  32. package/dist/modes/greatcircle/great-circle.mode.d.ts +0 -64
@@ -1,4 +1,3 @@
1
- /// <reference types="google.maps" />
2
1
  import { TerraDrawChanges, SetCursor, TerraDrawStylingFunction, TerraDrawCallbacks } from "../common";
3
2
  import { BaseAdapterConfig, TerraDrawBaseAdapter } from "./common/base.adapter";
4
3
  export declare class TerraDrawGoogleMapsAdapter extends TerraDrawBaseAdapter {
package/dist/common.d.ts CHANGED
@@ -45,6 +45,7 @@ export type GetLngLatFromEvent = (event: PointerEvent | MouseEvent) => {
45
45
  lng: number;
46
46
  lat: number;
47
47
  } | null;
48
+ export type Projection = "web-mercator" | "globe";
48
49
  export type OnFinishContext = {
49
50
  mode: string;
50
51
  action: string;
@@ -0,0 +1,2 @@
1
+ import { Position } from "geojson";
2
+ export declare function bearing(start: Position, end: Position): number;
@@ -0,0 +1,2 @@
1
+ import { Position } from "geojson";
2
+ export declare function destination(origin: Position, distance: number, bearing: number): Position;
@@ -0,0 +1,2 @@
1
+ import { LineString, Position } from "geojson";
2
+ export declare function lineSliceAlong(coords: LineString["coordinates"], startDist: number, stopDist: number): Position[];
@@ -7,4 +7,4 @@ export declare function createBBoxFromPoint({ unproject, point, pointerDistance,
7
7
  };
8
8
  unproject: Unproject;
9
9
  pointerDistance: number;
10
- }): Feature<Polygon, import("geojson").GeoJsonProperties>;
10
+ }): Feature<Polygon>;
@@ -5,3 +5,9 @@ export declare function circle(options: {
5
5
  coordinatePrecision: number;
6
6
  steps?: number;
7
7
  }): Feature<Polygon>;
8
+ export declare function circleWebMercator(options: {
9
+ center: Position;
10
+ radiusKilometers: number;
11
+ coordinatePrecision: number;
12
+ steps?: number;
13
+ }): GeoJSON.Feature<GeoJSON.Polygon>;
@@ -0,0 +1,2 @@
1
+ import { Position } from "geojson";
2
+ export declare function generateGreatCircleCoordinates(start: Position, end: Position, numberOfPoints: number): Position[];
@@ -0,0 +1,2 @@
1
+ import { Position } from "geojson";
2
+ export declare function calculateWebMercatorDistortion(source: Position, target: Position): number;
@@ -1,4 +1,4 @@
1
- import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
1
+ import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, Projection } from "../../common";
2
2
  import { GeoJSONStoreFeatures } from "../../store/store";
3
3
  import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
4
4
  type TerraDrawCircleModeKeyEvents = {
@@ -18,9 +18,11 @@ interface TerraDrawCircleModeOptions<T extends CustomStyling> extends BaseModeOp
18
18
  keyEvents?: TerraDrawCircleModeKeyEvents | null;
19
19
  cursors?: Cursors;
20
20
  startingRadiusKilometers?: number;
21
+ projection?: Projection;
21
22
  }
22
23
  export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode<CirclePolygonStyling> {
23
24
  mode: string;
25
+ private projection;
24
26
  private center;
25
27
  private clickCount;
26
28
  private currentCircleId;
@@ -0,0 +1,9 @@
1
+ import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
2
+ import { Position } from "geojson";
3
+ export declare class InsertCoordinatesBehavior extends TerraDrawModeBehavior {
4
+ readonly config: BehaviorConfig;
5
+ constructor(config: BehaviorConfig);
6
+ generateInsertionCoordinates(coordinateOne: Position, coordinateTwo: Position, segmentLength: number): Position[];
7
+ generateInsertionGeodesicCoordinates(coordinateOne: Position, coordinateTwo: Position, segmentLength: number): Position[];
8
+ private limitCoordinates;
9
+ }
@@ -1,4 +1,4 @@
1
- import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
1
+ import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, Projection } from "../../common";
2
2
  import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
3
3
  import { BehaviorConfig } from "../base.behavior";
4
4
  import { GeoJSONStoreFeatures } from "../../store/store";
@@ -18,14 +18,21 @@ interface Cursors {
18
18
  start?: Cursor;
19
19
  close?: Cursor;
20
20
  }
21
+ interface InertCoordinates {
22
+ strategy: "amount";
23
+ value: number;
24
+ }
21
25
  interface TerraDrawLineStringModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
22
26
  snapping?: boolean;
23
27
  pointerDistance?: number;
24
28
  keyEvents?: TerraDrawLineStringModeKeyEvents | null;
25
29
  cursors?: Cursors;
30
+ insertCoordinates?: InertCoordinates;
31
+ projection?: Projection;
26
32
  }
27
33
  export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineStringStyling> {
28
34
  mode: string;
35
+ private projection;
29
36
  private currentCoordinate;
30
37
  private currentId;
31
38
  private closingPointId;
@@ -33,10 +40,17 @@ export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineS
33
40
  private snappingEnabled;
34
41
  private cursors;
35
42
  private mouseMove;
43
+ private insertCoordinates;
44
+ private lastCommitedCoordinates;
36
45
  private snapping;
46
+ private insertPoint;
37
47
  constructor(options?: TerraDrawLineStringModeOptions<LineStringStyling>);
38
48
  private close;
39
49
  private updateGeometries;
50
+ private generateInsertCoordinates;
51
+ private createLine;
52
+ private firstUpdateToLine;
53
+ private updateToLine;
40
54
  /** @internal */
41
55
  registerBehaviors(config: BehaviorConfig): void;
42
56
  /** @internal */
@@ -16,16 +16,16 @@ export declare class TerraDrawStaticMode extends TerraDrawBaseDrawMode<StaticMod
16
16
  onMouseMove(): void;
17
17
  cleanUp(): void;
18
18
  styleFeature(): {
19
- pointColor: `#${string}`;
19
+ pointColor: import("../../common").HexColor;
20
20
  pointWidth: number;
21
- pointOutlineColor: `#${string}`;
21
+ pointOutlineColor: import("../../common").HexColor;
22
22
  pointOutlineWidth: number;
23
- polygonFillColor: `#${string}`;
23
+ polygonFillColor: import("../../common").HexColor;
24
24
  polygonFillOpacity: number;
25
- polygonOutlineColor: `#${string}`;
25
+ polygonOutlineColor: import("../../common").HexColor;
26
26
  polygonOutlineWidth: number;
27
27
  lineStringWidth: number;
28
- lineStringColor: `#${string}`;
28
+ lineStringColor: import("../../common").HexColor;
29
29
  zIndex: number;
30
30
  };
31
31
  }