terra-draw 1.0.0 → 1.2.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.
- package/README.md +33 -4
- package/dist/common.d.ts +1 -0
- package/dist/geometry/boolean/right-hand-rule.d.ts +7 -0
- package/dist/geometry/boolean/right-hand-rule.spec.d.ts +1 -0
- package/dist/geometry/ensure-right-hand-rule.d.ts +2 -0
- package/dist/geometry/ensure-right-hand-rule.spec.d.ts +1 -0
- package/dist/geometry/point-on-line.d.ts +1 -0
- package/dist/geometry/web-mercator-point-on-line.d.ts +1 -0
- package/dist/modes/angled-rectangle/angled-rectangle.mode.d.ts +2 -1
- package/dist/modes/base.mode.d.ts +10 -9
- package/dist/modes/circle/circle.mode.d.ts +2 -1
- package/dist/modes/coordinate-snapping.behavior.d.ts +7 -2
- package/dist/modes/freehand/freehand.mode.d.ts +2 -1
- package/dist/modes/line-snapping.behavior.d.ts +7 -2
- package/dist/modes/linestring/linestring.mode.d.ts +19 -4
- package/dist/modes/point/point.mode.d.ts +21 -5
- package/dist/modes/polygon/polygon.mode.d.ts +23 -7
- package/dist/modes/rectangle/rectangle.mode.d.ts +2 -1
- package/dist/modes/render/render.mode.d.ts +2 -1
- package/dist/modes/sector/sector.mode.d.ts +2 -1
- package/dist/modes/select/select.mode.d.ts +4 -3
- package/dist/modes/sensor/sensor.mode.d.ts +2 -1
- package/dist/modes/static/static.mode.d.ts +1 -1
- package/dist/store/store.d.ts +1 -0
- package/dist/terra-draw.cjs +1 -1
- package/dist/terra-draw.cjs.map +1 -1
- package/dist/terra-draw.d.ts +25 -40
- package/dist/terra-draw.modern.js +1 -1
- package/dist/terra-draw.modern.js.map +1 -1
- package/dist/terra-draw.module.js +1 -1
- package/dist/terra-draw.module.js.map +1 -1
- package/dist/terra-draw.umd.js +1 -1
- package/dist/terra-draw.umd.js.map +1 -1
- package/package.json +3 -3
- package/dist/test/jest.matchers.d.ts +0 -1
- package/dist/test/mock-callbacks.d.ts +0 -2
- package/dist/test/mock-pointer-event.d.ts +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
<picture>
|
|
2
|
+
<source media="(prefers-color-scheme: dark)" srcset="./assets/logo-dark-mode.png">
|
|
3
|
+
<source media="(prefers-color-scheme: light)" srcset="./assets/logo.png">
|
|
4
|
+
<img alt="Terra Draw logo" src="./assets/logo.png" width="400px">
|
|
5
|
+
</picture>
|
|
2
6
|
|
|
3
|
-
|
|
7
|
+
<p></p>
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+

|
|
10
|
+
[](https://badge.fury.io/js/terra-draw)
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
Frictionless map drawing across mapping libraries.
|
|
13
|
+
|
|
14
|
+
Terra Draw centralizes map drawing logic and provides a host of out-of-the-box drawing modes that work across different JavaScript mapping libraries. It also allows you to bring your own modes!
|
|
15
|
+
|
|
16
|
+
### Supported Mapping Libraries
|
|
17
|
+
|
|
18
|
+
Terra Draw works with your mapping library of choice via adapters. Please pick the adapter for the mapping library you are working with:
|
|
19
|
+
|
|
20
|
+
* [terra-draw-maplibre-gl-js-adapter](https://www.npmjs.com/package/terra-draw-maplibre-gl-js-adapter)
|
|
21
|
+
* [terra-draw-leaflet-adapter](https://www.npmjs.com/package/terra-draw-leaflet-adapter)
|
|
22
|
+
* [terra-draw-google-maps-adapter](https://www.npmjs.com/package/terra-draw-googl-emaps-adapter)
|
|
23
|
+
* [terra-draw-mapbox-gl-js-adapter](https://www.npmjs.com/package/terra-draw-mapbox-gl-js-adapter)
|
|
24
|
+
* [terra-draw-google-maps-adapter](https://www.npmjs.com/package/terra-draw-google-maps-adapter)
|
|
25
|
+
* [terra-draw-arcgis-adapter](https://www.npmjs.com/package/terra-draw-arcgis-adapter)
|
|
26
|
+
|
|
27
|
+
### Getting Started
|
|
28
|
+
|
|
29
|
+
* [Getting started guide](https://github.com/JamesLMilner/terra-draw/blob/main/guides/1.GETTING_STARTED.md)
|
|
30
|
+
* [API Docs](https://terradraw.io/#/api)
|
|
31
|
+
* [Repository](https://www.github.com/JamesLMilner/terra-draw)
|
|
32
|
+
* [Website](https://www.terradraw.io)
|
|
33
|
+
|
|
34
|
+
### License
|
|
35
|
+
|
|
36
|
+
MIT
|
package/dist/common.d.ts
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Polygon } from "geojson";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a GeoJSON Polygon follows the right-hand rule.
|
|
4
|
+
* @param polygon - The GeoJSON Polygon to check.
|
|
5
|
+
* @returns {boolean} - True if the polygon follows the right-hand rule (counterclockwise outer ring), otherwise false.
|
|
6
|
+
*/
|
|
7
|
+
export declare function followsRightHandRule(polygon: Polygon): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -21,13 +21,14 @@ interface TerraDrawPolygonModeOptions<T extends CustomStyling> extends BaseModeO
|
|
|
21
21
|
cursors?: Cursors;
|
|
22
22
|
}
|
|
23
23
|
export declare class TerraDrawAngledRectangleMode extends TerraDrawBaseDrawMode<PolygonStyling> {
|
|
24
|
-
mode:
|
|
24
|
+
mode: "angled-rectangle";
|
|
25
25
|
private currentCoordinate;
|
|
26
26
|
private currentId;
|
|
27
27
|
private keyEvents;
|
|
28
28
|
private cursors;
|
|
29
29
|
private mouseMove;
|
|
30
30
|
constructor(options?: TerraDrawPolygonModeOptions<PolygonStyling>);
|
|
31
|
+
updateOptions(options?: TerraDrawPolygonModeOptions<PolygonStyling>): void;
|
|
31
32
|
private close;
|
|
32
33
|
/** @internal */
|
|
33
34
|
start(): void;
|
|
@@ -8,32 +8,33 @@ export declare enum ModeTypes {
|
|
|
8
8
|
Static = "static",
|
|
9
9
|
Render = "render"
|
|
10
10
|
}
|
|
11
|
-
export type BaseModeOptions<
|
|
12
|
-
styles?: Partial<
|
|
11
|
+
export type BaseModeOptions<Styling extends CustomStyling> = {
|
|
12
|
+
styles?: Partial<Styling>;
|
|
13
13
|
pointerDistance?: number;
|
|
14
14
|
validation?: Validation;
|
|
15
15
|
projection?: Projection;
|
|
16
16
|
};
|
|
17
|
-
export declare abstract class TerraDrawBaseDrawMode<
|
|
17
|
+
export declare abstract class TerraDrawBaseDrawMode<Styling extends CustomStyling> {
|
|
18
18
|
protected _state: TerraDrawModeState;
|
|
19
19
|
get state(): TerraDrawModeState;
|
|
20
20
|
set state(_: TerraDrawModeState);
|
|
21
|
-
protected _styles: Partial<
|
|
22
|
-
get styles(): Partial<
|
|
23
|
-
set styles(styling: Partial<
|
|
21
|
+
protected _styles: Partial<Styling>;
|
|
22
|
+
get styles(): Partial<Styling>;
|
|
23
|
+
set styles(styling: Partial<Styling>);
|
|
24
24
|
protected behaviors: TerraDrawModeBehavior[];
|
|
25
25
|
protected validate: Validation | undefined;
|
|
26
26
|
protected pointerDistance: number;
|
|
27
27
|
protected coordinatePrecision: number;
|
|
28
28
|
protected onStyleChange: StoreChangeHandler;
|
|
29
29
|
protected store: GeoJSONStore;
|
|
30
|
+
protected projection: Projection;
|
|
30
31
|
protected setDoubleClickToZoom: TerraDrawModeRegisterConfig["setDoubleClickToZoom"];
|
|
31
32
|
protected unproject: TerraDrawModeRegisterConfig["unproject"];
|
|
32
33
|
protected project: TerraDrawModeRegisterConfig["project"];
|
|
33
34
|
protected setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
34
35
|
protected registerBehaviors(behaviorConfig: BehaviorConfig): void;
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
constructor(options?: BaseModeOptions<Styling>, willCallUpdateOptionsInParentClass?: boolean);
|
|
37
|
+
updateOptions(options?: BaseModeOptions<Styling>): void;
|
|
37
38
|
type: ModeTypes;
|
|
38
39
|
mode: string;
|
|
39
40
|
protected setDrawing(): void;
|
|
@@ -61,7 +62,7 @@ export declare abstract class TerraDrawBaseDrawMode<T extends CustomStyling> {
|
|
|
61
62
|
protected getNumericStylingValue(value: number | ((feature: GeoJSONStoreFeatures) => number) | undefined, defaultValue: number, feature: GeoJSONStoreFeatures): number;
|
|
62
63
|
private getStylingValue;
|
|
63
64
|
}
|
|
64
|
-
export declare abstract class TerraDrawBaseSelectMode<
|
|
65
|
+
export declare abstract class TerraDrawBaseSelectMode<Styling extends CustomStyling> extends TerraDrawBaseDrawMode<Styling> {
|
|
65
66
|
type: ModeTypes;
|
|
66
67
|
abstract selectFeature(featureId: FeatureId): void;
|
|
67
68
|
abstract deselectFeature(featureId: FeatureId): void;
|
|
@@ -21,7 +21,7 @@ interface TerraDrawCircleModeOptions<T extends CustomStyling> extends BaseModeOp
|
|
|
21
21
|
projection?: Projection;
|
|
22
22
|
}
|
|
23
23
|
export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode<CirclePolygonStyling> {
|
|
24
|
-
mode:
|
|
24
|
+
mode: "circle";
|
|
25
25
|
private center;
|
|
26
26
|
private clickCount;
|
|
27
27
|
private currentCircleId;
|
|
@@ -38,6 +38,7 @@ export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode<CirclePol
|
|
|
38
38
|
* @param options.pointerDistance - Distance in pixels to consider a pointer close to a vertex
|
|
39
39
|
*/
|
|
40
40
|
constructor(options?: TerraDrawCircleModeOptions<CirclePolygonStyling>);
|
|
41
|
+
updateOptions(options?: TerraDrawCircleModeOptions<CirclePolygonStyling>): void;
|
|
41
42
|
private close;
|
|
42
43
|
/** @internal */
|
|
43
44
|
start(): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
2
|
import { TerraDrawMouseEvent } from "../common";
|
|
3
|
-
import { Position } from "geojson";
|
|
3
|
+
import { Feature, Position } from "geojson";
|
|
4
4
|
import { ClickBoundingBoxBehavior } from "./click-bounding-box.behavior";
|
|
5
5
|
import { FeatureId } from "../store/store";
|
|
6
6
|
import { PixelDistanceBehavior } from "./pixel-distance.behavior";
|
|
@@ -12,5 +12,10 @@ export declare class CoordinateSnappingBehavior extends TerraDrawModeBehavior {
|
|
|
12
12
|
/** Returns the nearest snappable coordinate - on first click there is no currentId so no need to provide */
|
|
13
13
|
getSnappableCoordinateFirstClick: (event: TerraDrawMouseEvent) => Position | undefined;
|
|
14
14
|
getSnappableCoordinate: (event: TerraDrawMouseEvent, currentFeatureId: FeatureId) => Position | undefined;
|
|
15
|
-
|
|
15
|
+
getSnappable(event: TerraDrawMouseEvent, filter?: (feature: Feature) => boolean): {
|
|
16
|
+
coordinate: undefined | Position;
|
|
17
|
+
minDist: number;
|
|
18
|
+
featureId: undefined | FeatureId;
|
|
19
|
+
featureCoordinateIndex: undefined | number;
|
|
20
|
+
};
|
|
16
21
|
}
|
|
@@ -28,7 +28,7 @@ interface TerraDrawFreehandModeOptions<T extends CustomStyling> extends BaseMode
|
|
|
28
28
|
cursors?: Cursors;
|
|
29
29
|
}
|
|
30
30
|
export declare class TerraDrawFreehandMode extends TerraDrawBaseDrawMode<FreehandPolygonStyling> {
|
|
31
|
-
mode:
|
|
31
|
+
mode: "freehand";
|
|
32
32
|
private startingClick;
|
|
33
33
|
private currentId;
|
|
34
34
|
private closingPointId;
|
|
@@ -41,6 +41,7 @@ export declare class TerraDrawFreehandMode extends TerraDrawBaseDrawMode<Freehan
|
|
|
41
41
|
private hasLeftStartingPoint;
|
|
42
42
|
private preventNewFeature;
|
|
43
43
|
constructor(options?: TerraDrawFreehandModeOptions<FreehandPolygonStyling>);
|
|
44
|
+
updateOptions(options?: TerraDrawFreehandModeOptions<FreehandPolygonStyling> | undefined): void;
|
|
44
45
|
private close;
|
|
45
46
|
/** @internal */
|
|
46
47
|
start(): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
2
|
import { TerraDrawMouseEvent } from "../common";
|
|
3
|
-
import { Position } from "geojson";
|
|
3
|
+
import { Feature, Position } from "geojson";
|
|
4
4
|
import { ClickBoundingBoxBehavior } from "./click-bounding-box.behavior";
|
|
5
5
|
import { FeatureId } from "../store/store";
|
|
6
6
|
import { PixelDistanceBehavior } from "./pixel-distance.behavior";
|
|
@@ -12,5 +12,10 @@ export declare class LineSnappingBehavior extends TerraDrawModeBehavior {
|
|
|
12
12
|
/** Returns the nearest snappable coordinate - on first click there is no currentId so no need to provide */
|
|
13
13
|
getSnappableCoordinateFirstClick: (event: TerraDrawMouseEvent) => Position | undefined;
|
|
14
14
|
getSnappableCoordinate: (event: TerraDrawMouseEvent, currentFeatureId: FeatureId) => Position | undefined;
|
|
15
|
-
|
|
15
|
+
getSnappable(event: TerraDrawMouseEvent, filter?: (feature: Feature) => boolean): {
|
|
16
|
+
coordinate: undefined | Position;
|
|
17
|
+
minDistance: number;
|
|
18
|
+
featureId: undefined | FeatureId;
|
|
19
|
+
featureCoordinateIndex: undefined | number;
|
|
20
|
+
};
|
|
16
21
|
}
|
|
@@ -22,6 +22,8 @@ type LineStringStyling = {
|
|
|
22
22
|
interface Cursors {
|
|
23
23
|
start?: Cursor;
|
|
24
24
|
close?: Cursor;
|
|
25
|
+
dragStart?: Cursor;
|
|
26
|
+
dragEnd?: Cursor;
|
|
25
27
|
}
|
|
26
28
|
interface InertCoordinates {
|
|
27
29
|
strategy: "amount";
|
|
@@ -37,9 +39,10 @@ interface TerraDrawLineStringModeOptions<T extends CustomStyling> extends BaseMo
|
|
|
37
39
|
keyEvents?: TerraDrawLineStringModeKeyEvents | null;
|
|
38
40
|
cursors?: Cursors;
|
|
39
41
|
insertCoordinates?: InertCoordinates;
|
|
42
|
+
editable?: boolean;
|
|
40
43
|
}
|
|
41
44
|
export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineStringStyling> {
|
|
42
|
-
mode:
|
|
45
|
+
mode: "linestring";
|
|
43
46
|
private currentCoordinate;
|
|
44
47
|
private currentId;
|
|
45
48
|
private closingPointId;
|
|
@@ -50,9 +53,19 @@ export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineS
|
|
|
50
53
|
private insertCoordinates;
|
|
51
54
|
private lastCommitedCoordinates;
|
|
52
55
|
private snappedPointId;
|
|
56
|
+
private editable;
|
|
57
|
+
private editedFeatureId;
|
|
58
|
+
private editedFeatureCoordinateIndex;
|
|
59
|
+
private editedSnapType;
|
|
60
|
+
private editedInsertIndex;
|
|
61
|
+
private editedPointId;
|
|
53
62
|
private coordinateSnapping;
|
|
54
63
|
private insertPoint;
|
|
64
|
+
private lineSnapping;
|
|
65
|
+
private pixelDistance;
|
|
66
|
+
private clickBoundingBox;
|
|
55
67
|
constructor(options?: TerraDrawLineStringModeOptions<LineStringStyling>);
|
|
68
|
+
updateOptions(options?: TerraDrawLineStringModeOptions<LineStringStyling> | undefined): void;
|
|
56
69
|
private close;
|
|
57
70
|
private updateGeometries;
|
|
58
71
|
private generateInsertCoordinates;
|
|
@@ -67,6 +80,8 @@ export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineS
|
|
|
67
80
|
stop(): void;
|
|
68
81
|
/** @internal */
|
|
69
82
|
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
83
|
+
private onRightClick;
|
|
84
|
+
private onLeftClick;
|
|
70
85
|
/** @internal */
|
|
71
86
|
onClick(event: TerraDrawMouseEvent): void;
|
|
72
87
|
/** @internal */
|
|
@@ -74,11 +89,11 @@ export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineS
|
|
|
74
89
|
/** @internal */
|
|
75
90
|
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
76
91
|
/** @internal */
|
|
77
|
-
onDragStart(): void;
|
|
92
|
+
onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
78
93
|
/** @internal */
|
|
79
|
-
onDrag(): void;
|
|
94
|
+
onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
80
95
|
/** @internal */
|
|
81
|
-
onDragEnd(): void;
|
|
96
|
+
onDragEnd(_: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
82
97
|
/** @internal */
|
|
83
98
|
cleanUp(): void;
|
|
84
99
|
/** @internal */
|
|
@@ -1,22 +1,35 @@
|
|
|
1
1
|
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, NumericStyling, HexColorStyling, Cursor } from "../../common";
|
|
2
2
|
import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
|
|
3
3
|
import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
|
|
4
|
+
import { BehaviorConfig } from "../base.behavior";
|
|
4
5
|
type PointModeStyling = {
|
|
5
6
|
pointWidth: NumericStyling;
|
|
6
7
|
pointColor: HexColorStyling;
|
|
7
8
|
pointOutlineColor: HexColorStyling;
|
|
8
9
|
pointOutlineWidth: NumericStyling;
|
|
10
|
+
editedPointColor: HexColorStyling;
|
|
11
|
+
editedPointWidth: NumericStyling;
|
|
12
|
+
editedPointOutlineColor: HexColorStyling;
|
|
13
|
+
editedPointOutlineWidth: NumericStyling;
|
|
9
14
|
};
|
|
10
15
|
interface Cursors {
|
|
11
16
|
create?: Cursor;
|
|
17
|
+
dragStart?: Cursor;
|
|
18
|
+
dragEnd?: Cursor;
|
|
12
19
|
}
|
|
13
20
|
interface TerraDrawPointModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
|
|
14
21
|
cursors?: Cursors;
|
|
22
|
+
editable?: boolean;
|
|
15
23
|
}
|
|
16
24
|
export declare class TerraDrawPointMode extends TerraDrawBaseDrawMode<PointModeStyling> {
|
|
17
|
-
mode:
|
|
25
|
+
mode: "point";
|
|
18
26
|
private cursors;
|
|
27
|
+
private editable;
|
|
28
|
+
private editedFeatureId;
|
|
29
|
+
private pixelDistance;
|
|
30
|
+
private clickBoundingBox;
|
|
19
31
|
constructor(options?: TerraDrawPointModeOptions<PointModeStyling>);
|
|
32
|
+
updateOptions(options?: TerraDrawPointModeOptions<PointModeStyling> | undefined): void;
|
|
20
33
|
/** @internal */
|
|
21
34
|
start(): void;
|
|
22
35
|
/** @internal */
|
|
@@ -31,14 +44,17 @@ export declare class TerraDrawPointMode extends TerraDrawBaseDrawMode<PointModeS
|
|
|
31
44
|
onKeyUp(): void;
|
|
32
45
|
/** @internal */
|
|
33
46
|
cleanUp(): void;
|
|
47
|
+
onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
34
48
|
/** @internal */
|
|
35
|
-
|
|
49
|
+
onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
36
50
|
/** @internal */
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
onDragEnd(): void;
|
|
51
|
+
onDragEnd(_: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
52
|
+
registerBehaviors(config: BehaviorConfig): void;
|
|
40
53
|
/** @internal */
|
|
41
54
|
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
42
55
|
validateFeature(feature: unknown): StoreValidation;
|
|
56
|
+
private onLeftClick;
|
|
57
|
+
private onRightClick;
|
|
58
|
+
private getNearestPointFeature;
|
|
43
59
|
}
|
|
44
60
|
export {};
|
|
@@ -20,10 +20,16 @@ type PolygonStyling = {
|
|
|
20
20
|
snappingPointColor: HexColorStyling;
|
|
21
21
|
snappingPointOutlineWidth: NumericStyling;
|
|
22
22
|
snappingPointOutlineColor: HexColorStyling;
|
|
23
|
+
editedPointWidth: NumericStyling;
|
|
24
|
+
editedPointColor: HexColorStyling;
|
|
25
|
+
editedPointOutlineWidth: NumericStyling;
|
|
26
|
+
editedPointOutlineColor: HexColorStyling;
|
|
23
27
|
};
|
|
24
28
|
interface Cursors {
|
|
25
29
|
start?: Cursor;
|
|
26
30
|
close?: Cursor;
|
|
31
|
+
dragStart?: Cursor;
|
|
32
|
+
dragEnd?: Cursor;
|
|
27
33
|
}
|
|
28
34
|
interface Snapping {
|
|
29
35
|
toLine?: boolean;
|
|
@@ -35,21 +41,30 @@ interface TerraDrawPolygonModeOptions<T extends CustomStyling> extends BaseModeO
|
|
|
35
41
|
pointerDistance?: number;
|
|
36
42
|
keyEvents?: TerraDrawPolygonModeKeyEvents | null;
|
|
37
43
|
cursors?: Cursors;
|
|
44
|
+
editable?: boolean;
|
|
38
45
|
}
|
|
39
46
|
export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode<PolygonStyling> {
|
|
40
|
-
mode:
|
|
47
|
+
mode: "polygon";
|
|
41
48
|
private currentCoordinate;
|
|
42
49
|
private currentId;
|
|
43
50
|
private keyEvents;
|
|
51
|
+
private cursors;
|
|
52
|
+
private mouseMove;
|
|
44
53
|
private snapping;
|
|
45
54
|
private snappedPointId;
|
|
55
|
+
private editable;
|
|
56
|
+
private editedFeatureId;
|
|
57
|
+
private editedFeatureCoordinateIndex;
|
|
58
|
+
private editedSnapType;
|
|
59
|
+
private editedInsertIndex;
|
|
60
|
+
private editedPointId;
|
|
46
61
|
private lineSnapping;
|
|
47
62
|
private coordinateSnapping;
|
|
48
63
|
private pixelDistance;
|
|
49
64
|
private closingPoints;
|
|
50
|
-
private
|
|
51
|
-
private mouseMove;
|
|
65
|
+
private clickBoundingBox;
|
|
52
66
|
constructor(options?: TerraDrawPolygonModeOptions<PolygonStyling>);
|
|
67
|
+
updateOptions(options?: TerraDrawPolygonModeOptions<PolygonStyling>): void;
|
|
53
68
|
private close;
|
|
54
69
|
/** @internal */
|
|
55
70
|
registerBehaviors(config: BehaviorConfig): void;
|
|
@@ -61,18 +76,19 @@ export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode<PolygonS
|
|
|
61
76
|
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
62
77
|
private updatePolygonGeometry;
|
|
63
78
|
private snapCoordinate;
|
|
79
|
+
private onRightClick;
|
|
80
|
+
private onLeftClick;
|
|
64
81
|
/** @internal */
|
|
65
82
|
onClick(event: TerraDrawMouseEvent): void;
|
|
66
83
|
/** @internal */
|
|
67
84
|
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
68
85
|
/** @internal */
|
|
69
86
|
onKeyDown(): void;
|
|
87
|
+
onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
70
88
|
/** @internal */
|
|
71
|
-
|
|
72
|
-
/** @internal */
|
|
73
|
-
onDrag(): void;
|
|
89
|
+
onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
74
90
|
/** @internal */
|
|
75
|
-
onDragEnd(): void;
|
|
91
|
+
onDragEnd(_: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
76
92
|
/** @internal */
|
|
77
93
|
cleanUp(): void;
|
|
78
94
|
/** @internal */
|
|
@@ -19,13 +19,14 @@ interface TerraDrawRectangleModeOptions<T extends CustomStyling> extends BaseMod
|
|
|
19
19
|
cursors?: Cursors;
|
|
20
20
|
}
|
|
21
21
|
export declare class TerraDrawRectangleMode extends TerraDrawBaseDrawMode<RectanglePolygonStyling> {
|
|
22
|
-
mode:
|
|
22
|
+
mode: "rectangle";
|
|
23
23
|
private center;
|
|
24
24
|
private clickCount;
|
|
25
25
|
private currentRectangleId;
|
|
26
26
|
private keyEvents;
|
|
27
27
|
private cursors;
|
|
28
28
|
constructor(options?: TerraDrawRectangleModeOptions<RectanglePolygonStyling>);
|
|
29
|
+
updateOptions(options?: TerraDrawRectangleModeOptions<RectanglePolygonStyling>): void;
|
|
29
30
|
private updateRectangle;
|
|
30
31
|
private close;
|
|
31
32
|
/** @internal */
|
|
@@ -17,13 +17,14 @@ type RenderModeStyling = {
|
|
|
17
17
|
zIndex: NumericStyling;
|
|
18
18
|
};
|
|
19
19
|
interface TerraDrawRenderModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
|
|
20
|
-
modeName
|
|
20
|
+
modeName?: string;
|
|
21
21
|
styles: Partial<T>;
|
|
22
22
|
}
|
|
23
23
|
export declare class TerraDrawRenderMode extends TerraDrawBaseDrawMode<RenderModeStyling> {
|
|
24
24
|
type: ModeTypes;
|
|
25
25
|
mode: string;
|
|
26
26
|
constructor(options: TerraDrawRenderModeOptions<RenderModeStyling>);
|
|
27
|
+
updateOptions(options?: TerraDrawRenderModeOptions<RenderModeStyling> | undefined): void;
|
|
27
28
|
/** @internal */
|
|
28
29
|
registerBehaviors(behaviorConfig: BehaviorConfig): void;
|
|
29
30
|
/** @internal */
|
|
@@ -22,7 +22,7 @@ interface TerraDrawSectorModeOptions<T extends CustomStyling> extends BaseModeOp
|
|
|
22
22
|
cursors?: Cursors;
|
|
23
23
|
}
|
|
24
24
|
export declare class TerraDrawSectorMode extends TerraDrawBaseDrawMode<SectorPolygonStyling> {
|
|
25
|
-
mode:
|
|
25
|
+
mode: "sector";
|
|
26
26
|
private currentCoordinate;
|
|
27
27
|
private currentId;
|
|
28
28
|
private keyEvents;
|
|
@@ -31,6 +31,7 @@ export declare class TerraDrawSectorMode extends TerraDrawBaseDrawMode<SectorPol
|
|
|
31
31
|
private cursors;
|
|
32
32
|
private mouseMove;
|
|
33
33
|
constructor(options?: TerraDrawSectorModeOptions<SectorPolygonStyling>);
|
|
34
|
+
updateOptions(options?: TerraDrawSectorModeOptions<SectorPolygonStyling>): void;
|
|
34
35
|
private close;
|
|
35
36
|
/** @internal */
|
|
36
37
|
start(): void;
|
|
@@ -61,13 +61,15 @@ interface TerraDrawSelectModeOptions<T extends CustomStyling> extends BaseModeOp
|
|
|
61
61
|
allowManualDeselection?: boolean;
|
|
62
62
|
}
|
|
63
63
|
export declare class TerraDrawSelectMode extends TerraDrawBaseSelectMode<SelectionStyling> {
|
|
64
|
-
mode:
|
|
64
|
+
mode: "select";
|
|
65
65
|
private allowManualDeselection;
|
|
66
66
|
private dragEventThrottle;
|
|
67
67
|
private dragEventCount;
|
|
68
68
|
private selected;
|
|
69
69
|
private flags;
|
|
70
70
|
private keyEvents;
|
|
71
|
+
private cursors;
|
|
72
|
+
private validations;
|
|
71
73
|
private selectionPoints;
|
|
72
74
|
private midPoints;
|
|
73
75
|
private featuresAtMouseEvent;
|
|
@@ -78,9 +80,8 @@ export declare class TerraDrawSelectMode extends TerraDrawBaseSelectMode<Selecti
|
|
|
78
80
|
private rotateFeature;
|
|
79
81
|
private scaleFeature;
|
|
80
82
|
private dragCoordinateResizeFeature;
|
|
81
|
-
private cursors;
|
|
82
|
-
private validations;
|
|
83
83
|
constructor(options?: TerraDrawSelectModeOptions<SelectionStyling>);
|
|
84
|
+
updateOptions(options?: TerraDrawSelectModeOptions<SelectionStyling>): void;
|
|
84
85
|
selectFeature(featureId: FeatureId): void;
|
|
85
86
|
setSelecting(): void;
|
|
86
87
|
registerBehaviors(config: BehaviorConfig): void;
|
|
@@ -26,7 +26,7 @@ interface TerraDrawSensorModeOptions<T extends CustomStyling> extends BaseModeOp
|
|
|
26
26
|
cursors?: Cursors;
|
|
27
27
|
}
|
|
28
28
|
export declare class TerraDrawSensorMode extends TerraDrawBaseDrawMode<SensorPolygonStyling> {
|
|
29
|
-
mode:
|
|
29
|
+
mode: "sensor";
|
|
30
30
|
private currentCoordinate;
|
|
31
31
|
private currentId;
|
|
32
32
|
private currentInitialArcId;
|
|
@@ -37,6 +37,7 @@ export declare class TerraDrawSensorMode extends TerraDrawBaseDrawMode<SensorPol
|
|
|
37
37
|
private cursors;
|
|
38
38
|
private mouseMove;
|
|
39
39
|
constructor(options?: TerraDrawSensorModeOptions<SensorPolygonStyling>);
|
|
40
|
+
updateOptions(options?: TerraDrawSensorModeOptions<SensorPolygonStyling>): void;
|
|
40
41
|
private close;
|
|
41
42
|
/** @internal */
|
|
42
43
|
start(): void;
|
|
@@ -4,7 +4,7 @@ type StaticModeStylingExt<T extends TerraDrawAdapterStyling> = {};
|
|
|
4
4
|
type StaticModeStyling = StaticModeStylingExt<TerraDrawAdapterStyling>;
|
|
5
5
|
export declare class TerraDrawStaticMode extends TerraDrawBaseDrawMode<StaticModeStyling> {
|
|
6
6
|
type: ModeTypes;
|
|
7
|
-
mode:
|
|
7
|
+
mode: "static";
|
|
8
8
|
start(): void;
|
|
9
9
|
stop(): void;
|
|
10
10
|
onKeyUp(): void;
|
package/dist/store/store.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export declare class GeoJSONStore<Id extends FeatureId = FeatureId> {
|
|
|
56
56
|
properties?: JSONObject;
|
|
57
57
|
}[]): Id[];
|
|
58
58
|
delete(ids: FeatureId[]): void;
|
|
59
|
+
copy(id: FeatureId): GeoJSONStoreFeatures;
|
|
59
60
|
copyAll(): GeoJSONStoreFeatures[];
|
|
60
61
|
clear(): void;
|
|
61
62
|
size(): number;
|