terra-draw 0.0.1-alpha.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/.github/workflows/ci.yml +27 -0
- package/.husky/commit-msg +4 -0
- package/.husky/pre-commit +5 -0
- package/CODE_OF_CONDUCT.md +36 -0
- package/CONTRIBUTING.md +17 -0
- package/DEVELOPMENT.md +77 -0
- package/LICENSE +8 -0
- package/README.md +19 -0
- package/ROADMAP.md +63 -0
- package/common/addModeChangeHandler.ts +26 -0
- package/data/sample.ts +10126 -0
- package/dist/adapters/google-maps.adapter.d.ts +38 -0
- package/dist/adapters/leaflet.adapter.d.ts +35 -0
- package/dist/adapters/mapbox-gl.adapter.d.ts +36 -0
- package/dist/bundle.js +6 -0
- package/dist/bundle.js.LICENSE.txt +4 -0
- package/dist/common.d.ts +99 -0
- package/dist/geometry/boolean/point-in-polygon.d.ts +2 -0
- package/dist/geometry/boolean/self-intersects.d.ts +2 -0
- package/dist/geometry/centroid.d.ts +2 -0
- package/dist/geometry/coordinates-identical.d.ts +2 -0
- package/dist/geometry/create-circle.d.ts +6 -0
- package/dist/geometry/get-coordinates-as-points.d.ts +6 -0
- package/dist/geometry/get-midpoints.d.ts +7 -0
- package/dist/geometry/get-pixel-distance-to-line.d.ts +10 -0
- package/dist/geometry/get-pixel-distance.d.ts +7 -0
- package/dist/geometry/haversine-distance.d.ts +1 -0
- package/dist/geometry/helpers.d.ts +4 -0
- package/dist/geometry/limit-decimal-precision.d.ts +1 -0
- package/dist/geometry/measure/haversine-distance.d.ts +2 -0
- package/dist/geometry/measure/pixel-distance-to-line.d.ts +10 -0
- package/dist/geometry/measure/pixel-distance.d.ts +7 -0
- package/dist/geometry/measure/rhumb-bearing.d.ts +2 -0
- package/dist/geometry/measure/rhumb-destination.d.ts +2 -0
- package/dist/geometry/measure/rhumb-distance.d.ts +2 -0
- package/dist/geometry/midpoint-coordinate.d.ts +2 -0
- package/dist/geometry/point-in-polygon.d.ts +1 -0
- package/dist/geometry/self-intersects.d.ts +2 -0
- package/dist/geometry/shape/create-circle.d.ts +7 -0
- package/dist/geometry/transform/rotate.d.ts +2 -0
- package/dist/geometry/transform/scale.d.ts +2 -0
- package/dist/modes/base.behavior.d.ts +19 -0
- package/dist/modes/base.mode.d.ts +30 -0
- package/dist/modes/circle/circle.mode.d.ts +27 -0
- package/dist/modes/circle.mode.d.ts +18 -0
- package/dist/modes/click-bounding-box.behavior.d.ts +7 -0
- package/dist/modes/freehand/freehand.mode.d.ts +29 -0
- package/dist/modes/freehand.mode.d.ts +20 -0
- package/dist/modes/line-string.mode.d.ts +21 -0
- package/dist/modes/linestring/linestring.mode.d.ts +34 -0
- package/dist/modes/pixel-distance.behavior.d.ts +7 -0
- package/dist/modes/point/point.mode.d.ts +18 -0
- package/dist/modes/point.mode.d.ts +14 -0
- package/dist/modes/polygon/behaviors/start-end-point.behavior.d.ts +11 -0
- package/dist/modes/polygon/polygon.mode.d.ts +37 -0
- package/dist/modes/polygon.mode.d.ts +21 -0
- package/dist/modes/select/behaviors/drag-coordinate.behavior.d.ts +13 -0
- package/dist/modes/select/behaviors/drag-feature.behavior.d.ts +17 -0
- package/dist/modes/select/behaviors/features-at-mouse-event.behavior.d.ts +15 -0
- package/dist/modes/select/behaviors/midpoint.behavior.d.ts +18 -0
- package/dist/modes/select/behaviors/rotate-feature.behavior.d.ts +13 -0
- package/dist/modes/select/behaviors/scale-feature.behavior.d.ts +13 -0
- package/dist/modes/select/behaviors/selection-point.behavior.d.ts +18 -0
- package/dist/modes/select/select.mode.d.ts +62 -0
- package/dist/modes/select.mode.d.ts +21 -0
- package/dist/modes/snapping.behavior.d.ts +13 -0
- package/dist/modes/static/static.mode.d.ts +13 -0
- package/dist/modes/static.mode.d.ts +10 -0
- package/dist/store/spatial-index/quickselect.d.ts +2 -0
- package/dist/store/spatial-index/rbush.d.ts +35 -0
- package/dist/store/spatial-index/spatial-index.d.ts +18 -0
- package/dist/store/store.d.ts +48 -0
- package/dist/terra-draw.cjs +2 -0
- package/dist/terra-draw.cjs.map +1 -0
- package/dist/terra-draw.d.ts +47 -0
- package/dist/terra-draw.modern.js +2 -0
- package/dist/terra-draw.modern.js.map +1 -0
- package/dist/terra-draw.module.js +2 -0
- package/dist/terra-draw.module.js.map +1 -0
- package/dist/terra-draw.umd.js +2 -0
- package/dist/terra-draw.umd.js.map +1 -0
- package/dist/util/geoms.d.ts +3 -0
- package/dist/util/id.d.ts +1 -0
- package/dist/util/styling.d.ts +2 -0
- package/jest.config.ts +27 -0
- package/package.json +86 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/// <reference types="google.maps" />
|
|
2
|
+
import { TerraDrawCallbacks, TerraDrawAdapter, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawChanges } from "../common";
|
|
3
|
+
export declare class TerraDrawGoogleMapsAdapter implements TerraDrawAdapter {
|
|
4
|
+
constructor(config: {
|
|
5
|
+
lib: typeof google.maps;
|
|
6
|
+
map: google.maps.Map;
|
|
7
|
+
coordinatePrecision?: number;
|
|
8
|
+
});
|
|
9
|
+
private _heldKeys;
|
|
10
|
+
private _cursor;
|
|
11
|
+
private _cursorStyleSheet;
|
|
12
|
+
private _coordinatePrecision;
|
|
13
|
+
private _lib;
|
|
14
|
+
private _map;
|
|
15
|
+
private _onMouseMoveListener;
|
|
16
|
+
private _onMouseMoveCallback;
|
|
17
|
+
private _onClickListener;
|
|
18
|
+
private _onRightClickListener;
|
|
19
|
+
private _onClickCallback;
|
|
20
|
+
private _onKeyUpListener;
|
|
21
|
+
private _onDragStartListener;
|
|
22
|
+
private _onDragListener;
|
|
23
|
+
private _onDragEndListener;
|
|
24
|
+
private _layers;
|
|
25
|
+
getMapContainer: () => HTMLElement;
|
|
26
|
+
unproject: (x: number, y: number) => {
|
|
27
|
+
lng: number;
|
|
28
|
+
lat: number;
|
|
29
|
+
};
|
|
30
|
+
project: TerraDrawModeRegisterConfig["project"];
|
|
31
|
+
setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
32
|
+
private circlePath;
|
|
33
|
+
register(callbacks: TerraDrawCallbacks): void;
|
|
34
|
+
unregister(): void;
|
|
35
|
+
render(changes: TerraDrawChanges, styling: {
|
|
36
|
+
[mode: string]: TerraDrawAdapterStyling;
|
|
37
|
+
}): void;
|
|
38
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TerraDrawCallbacks, TerraDrawAdapter, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawChanges } from "../common";
|
|
2
|
+
import L from "leaflet";
|
|
3
|
+
export declare class TerraDrawLeafletAdapter implements TerraDrawAdapter {
|
|
4
|
+
constructor(config: {
|
|
5
|
+
lib: typeof L;
|
|
6
|
+
map: L.Map;
|
|
7
|
+
coordinatePrecision?: number;
|
|
8
|
+
});
|
|
9
|
+
private _heldKeys;
|
|
10
|
+
private _lib;
|
|
11
|
+
private _coordinatePrecision;
|
|
12
|
+
private _map;
|
|
13
|
+
private _onMouseMoveListener;
|
|
14
|
+
private _onClickListener;
|
|
15
|
+
private _onKeyUpListener;
|
|
16
|
+
private _onKeyDownListener;
|
|
17
|
+
private _onDragStartListener;
|
|
18
|
+
private _onDragListener;
|
|
19
|
+
private _onDragEndListener;
|
|
20
|
+
private _layer;
|
|
21
|
+
private _midPointPaneZIndexStyleSheet;
|
|
22
|
+
private _midPointPane;
|
|
23
|
+
private _selectionPaneZIndexStyleSheet;
|
|
24
|
+
private _selectedPane;
|
|
25
|
+
project: TerraDrawModeRegisterConfig["project"];
|
|
26
|
+
unproject: TerraDrawModeRegisterConfig["unproject"];
|
|
27
|
+
setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
28
|
+
getMapContainer: () => HTMLElement;
|
|
29
|
+
private createPaneStyleSheet;
|
|
30
|
+
register(callbacks: TerraDrawCallbacks): void;
|
|
31
|
+
unregister(): void;
|
|
32
|
+
render(changes: TerraDrawChanges, styling: {
|
|
33
|
+
[mode: string]: TerraDrawAdapterStyling;
|
|
34
|
+
}): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { TerraDrawCallbacks, TerraDrawAdapter, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawChanges } from "../common";
|
|
2
|
+
import mapboxgl from "mapbox-gl";
|
|
3
|
+
export declare class TerraDrawMapboxGLAdapter implements TerraDrawAdapter {
|
|
4
|
+
constructor(config: {
|
|
5
|
+
map: mapboxgl.Map;
|
|
6
|
+
coordinatePrecision: number;
|
|
7
|
+
});
|
|
8
|
+
unproject: TerraDrawModeRegisterConfig["unproject"];
|
|
9
|
+
project: TerraDrawModeRegisterConfig["project"];
|
|
10
|
+
setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
11
|
+
getMapContainer: () => HTMLElement;
|
|
12
|
+
private _heldKeys;
|
|
13
|
+
private _coordinatePrecision;
|
|
14
|
+
private _map;
|
|
15
|
+
private _onMouseMoveListener;
|
|
16
|
+
private _onClickListener;
|
|
17
|
+
private _onDragStartListener;
|
|
18
|
+
private _onDragListener;
|
|
19
|
+
private _onDragEndListener;
|
|
20
|
+
private _onKeyDownListener;
|
|
21
|
+
private _onKeyUpListener;
|
|
22
|
+
private _rendered;
|
|
23
|
+
private _addGeoJSONSource;
|
|
24
|
+
private _addFillLayer;
|
|
25
|
+
private _addFillOutlineLayer;
|
|
26
|
+
private _addLineLayer;
|
|
27
|
+
private _addPointLayer;
|
|
28
|
+
private _addLayer;
|
|
29
|
+
private _addGeoJSONLayer;
|
|
30
|
+
private _setGeoJSONLayerData;
|
|
31
|
+
register(callbacks: TerraDrawCallbacks): void;
|
|
32
|
+
unregister(): void;
|
|
33
|
+
render(changes: TerraDrawChanges, styling: {
|
|
34
|
+
[mode: string]: TerraDrawAdapterStyling;
|
|
35
|
+
}): void;
|
|
36
|
+
}
|
package/dist/bundle.js
ADDED
package/dist/common.d.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { StoreChangeHandler, GeoJSONStore, GeoJSONStoreFeatures } from "./store/store";
|
|
2
|
+
export interface TerraDrawAdapterStyling {
|
|
3
|
+
pointColor: string;
|
|
4
|
+
pointWidth: number;
|
|
5
|
+
pointOutlineColor: string;
|
|
6
|
+
polygonFillColor: string;
|
|
7
|
+
polygonFillOpacity: number;
|
|
8
|
+
polygonOutlineColor: string;
|
|
9
|
+
polygonOutlineWidth: number;
|
|
10
|
+
lineStringWidth: number;
|
|
11
|
+
lineStringColor: string;
|
|
12
|
+
selectedColor: string;
|
|
13
|
+
selectionPointWidth: number;
|
|
14
|
+
selectedPointOutlineColor: string;
|
|
15
|
+
midPointColor: string;
|
|
16
|
+
midPointWidth: number;
|
|
17
|
+
midPointOutlineColor: string;
|
|
18
|
+
closingPointColor: string;
|
|
19
|
+
closingPointOutlineColor: string;
|
|
20
|
+
closingPointWidth: number;
|
|
21
|
+
}
|
|
22
|
+
export interface TerraDrawMouseEvent {
|
|
23
|
+
lng: number;
|
|
24
|
+
lat: number;
|
|
25
|
+
containerX: number;
|
|
26
|
+
containerY: number;
|
|
27
|
+
button: "left" | "right" | "pointer";
|
|
28
|
+
heldKeys: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface TerraDrawKeyboardEvent {
|
|
31
|
+
key: string;
|
|
32
|
+
}
|
|
33
|
+
declare type SetCursor = (cursor: "unset" | "grab" | "grabbing" | "crosshair" | "pointer") => void;
|
|
34
|
+
export declare type Project = (lng: number, lat: number) => {
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
};
|
|
38
|
+
export declare type Unproject = (x: number, y: number) => {
|
|
39
|
+
lat: number;
|
|
40
|
+
lng: number;
|
|
41
|
+
};
|
|
42
|
+
export interface TerraDrawModeRegisterConfig {
|
|
43
|
+
mode: string;
|
|
44
|
+
store: GeoJSONStore;
|
|
45
|
+
setCursor: SetCursor;
|
|
46
|
+
onChange: StoreChangeHandler;
|
|
47
|
+
onSelect: (selectedId: string) => void;
|
|
48
|
+
onDeselect: (deselectedId: string) => void;
|
|
49
|
+
project: Project;
|
|
50
|
+
unproject: Unproject;
|
|
51
|
+
}
|
|
52
|
+
export declare type TerraDrawModeState = "unregistered" | "registered" | "started" | "stopped";
|
|
53
|
+
export interface TerraDrawMode {
|
|
54
|
+
mode: string;
|
|
55
|
+
styling: TerraDrawAdapterStyling;
|
|
56
|
+
state: TerraDrawModeState;
|
|
57
|
+
start: () => void;
|
|
58
|
+
stop: () => void;
|
|
59
|
+
register: (config: TerraDrawModeRegisterConfig) => void;
|
|
60
|
+
onKeyDown: (event: TerraDrawKeyboardEvent) => void;
|
|
61
|
+
onKeyUp: (event: TerraDrawKeyboardEvent) => void;
|
|
62
|
+
onMouseMove: (event: TerraDrawMouseEvent) => void;
|
|
63
|
+
onClick: (event: TerraDrawMouseEvent) => void;
|
|
64
|
+
onDragStart: (event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void) => void;
|
|
65
|
+
onDrag: (event: TerraDrawMouseEvent) => void;
|
|
66
|
+
onDragEnd: (event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void) => void;
|
|
67
|
+
}
|
|
68
|
+
export interface TerraDrawCallbacks {
|
|
69
|
+
onKeyUp: (event: TerraDrawKeyboardEvent) => void;
|
|
70
|
+
onKeyDown: (event: TerraDrawKeyboardEvent) => void;
|
|
71
|
+
onClick: (event: TerraDrawMouseEvent) => void;
|
|
72
|
+
onMouseMove: (event: TerraDrawMouseEvent) => void;
|
|
73
|
+
onDragStart: (event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void) => void;
|
|
74
|
+
onDrag: (event: TerraDrawMouseEvent) => void;
|
|
75
|
+
onDragEnd: (event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void) => void;
|
|
76
|
+
}
|
|
77
|
+
export interface TerraDrawChanges {
|
|
78
|
+
created: GeoJSONStoreFeatures[];
|
|
79
|
+
updated: GeoJSONStoreFeatures[];
|
|
80
|
+
unchanged: GeoJSONStoreFeatures[];
|
|
81
|
+
deletedIds: string[];
|
|
82
|
+
}
|
|
83
|
+
export interface TerraDrawAdapter {
|
|
84
|
+
project: Project;
|
|
85
|
+
unproject: Unproject;
|
|
86
|
+
setCursor: SetCursor;
|
|
87
|
+
getMapContainer: () => HTMLElement;
|
|
88
|
+
register(callbacks: TerraDrawCallbacks): void;
|
|
89
|
+
unregister(): void;
|
|
90
|
+
render(changes: TerraDrawChanges, styling: {
|
|
91
|
+
[mode: string]: TerraDrawAdapterStyling;
|
|
92
|
+
}): void;
|
|
93
|
+
}
|
|
94
|
+
export declare const SELECT_PROPERTIES: {
|
|
95
|
+
readonly SELECTED: "selected";
|
|
96
|
+
readonly MID_POINT: "midPoint";
|
|
97
|
+
readonly SELECTION_POINT: "selectionPoint";
|
|
98
|
+
};
|
|
99
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Point, Position } from "geojson";
|
|
2
|
+
import { JSONObject } from "../store/store";
|
|
3
|
+
export declare function getCoordinatesAsPoints(selectedCoords: Position[], geometryType: "Polygon" | "LineString", properties: (index: number) => JSONObject): {
|
|
4
|
+
geometry: Point;
|
|
5
|
+
properties: JSONObject;
|
|
6
|
+
}[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Point, Position } from "geojson";
|
|
2
|
+
import { JSONObject } from "../store/store";
|
|
3
|
+
export declare function getMidPointCoordinates(featureCoords: Position[], precision: number): Position[];
|
|
4
|
+
export declare function getMidPoints(selectedCoords: Position[], properties: (index: number) => JSONObject, precision: number): {
|
|
5
|
+
geometry: Point;
|
|
6
|
+
properties: JSONObject;
|
|
7
|
+
}[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function haversineDistanceKilometers(pointOne: [lng: number, lat: number], pointTwo: [lng: number, lat: number]): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function limitPrecision(num: number, decimalLimit?: number): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function pointInPolygon(point: [number, number], rings: [number, number][][]): boolean;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Feature, Polygon, Position } from "geojson";
|
|
2
|
+
export declare function destination(origin: Position, distance: number, bearing: number): Position;
|
|
3
|
+
export declare function circle(options: {
|
|
4
|
+
center: Position;
|
|
5
|
+
radiusKilometers: number;
|
|
6
|
+
steps?: number;
|
|
7
|
+
}): Feature<Polygon>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Project, Unproject } from "../common";
|
|
2
|
+
import { GeoJSONStore } from "../store/store";
|
|
3
|
+
export declare type BehaviorConfig = {
|
|
4
|
+
store: GeoJSONStore;
|
|
5
|
+
mode: string;
|
|
6
|
+
project: Project;
|
|
7
|
+
unproject: Unproject;
|
|
8
|
+
pointerDistance: number;
|
|
9
|
+
coordinatePrecision: number;
|
|
10
|
+
};
|
|
11
|
+
export declare class TerraDrawModeBehavior {
|
|
12
|
+
protected store: GeoJSONStore;
|
|
13
|
+
protected mode: string;
|
|
14
|
+
protected project: Project;
|
|
15
|
+
protected unproject: Unproject;
|
|
16
|
+
protected pointerDistance: number;
|
|
17
|
+
protected coordinatePrecision: number;
|
|
18
|
+
constructor({ store, mode, project, unproject, pointerDistance, coordinatePrecision, }: BehaviorConfig);
|
|
19
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
|
+
import { TerraDrawAdapterStyling, TerraDrawModeRegisterConfig, TerraDrawModeState } from "../common";
|
|
3
|
+
import { GeoJSONStore } from "../store/store";
|
|
4
|
+
export declare abstract class TerraDrawBaseDrawMode {
|
|
5
|
+
_state: TerraDrawModeState;
|
|
6
|
+
_styling: TerraDrawAdapterStyling;
|
|
7
|
+
get state(): TerraDrawModeState;
|
|
8
|
+
set state(_: TerraDrawModeState);
|
|
9
|
+
get styling(): TerraDrawAdapterStyling;
|
|
10
|
+
set styling(styling: TerraDrawAdapterStyling);
|
|
11
|
+
protected behaviors: TerraDrawModeBehavior[];
|
|
12
|
+
protected pointerDistance: number;
|
|
13
|
+
protected coordinatePrecision: number;
|
|
14
|
+
protected onStyleChange: any;
|
|
15
|
+
protected store: GeoJSONStore;
|
|
16
|
+
protected unproject: TerraDrawModeRegisterConfig["unproject"];
|
|
17
|
+
protected project: TerraDrawModeRegisterConfig["project"];
|
|
18
|
+
protected setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
19
|
+
protected registerBehaviors(behaviorConfig: BehaviorConfig): void;
|
|
20
|
+
constructor(options?: {
|
|
21
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
22
|
+
pointerDistance?: number;
|
|
23
|
+
coordinatePrecision?: number;
|
|
24
|
+
});
|
|
25
|
+
protected setStarted(): void;
|
|
26
|
+
protected setStopped(): void;
|
|
27
|
+
register(config: TerraDrawModeRegisterConfig): void;
|
|
28
|
+
onDeselect(deselectedId: string): void;
|
|
29
|
+
onSelect(selectedId: string): void;
|
|
30
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../../common";
|
|
2
|
+
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
declare type TerraDrawCircleModeKeyEvents = {
|
|
4
|
+
cancel: KeyboardEvent["key"];
|
|
5
|
+
};
|
|
6
|
+
export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode {
|
|
7
|
+
mode: string;
|
|
8
|
+
private center;
|
|
9
|
+
private clickCount;
|
|
10
|
+
private currentCircleId;
|
|
11
|
+
private keyEvents;
|
|
12
|
+
constructor(options?: {
|
|
13
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
14
|
+
keyEvents?: TerraDrawCircleModeKeyEvents;
|
|
15
|
+
});
|
|
16
|
+
start(): void;
|
|
17
|
+
stop(): void;
|
|
18
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
19
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
20
|
+
onKeyDown(): void;
|
|
21
|
+
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
22
|
+
onDragStart(): void;
|
|
23
|
+
onDrag(): void;
|
|
24
|
+
onDragEnd(): void;
|
|
25
|
+
cleanUp(): void;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawMode, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../common";
|
|
2
|
+
export declare class TerraDrawCircleMode implements TerraDrawMode {
|
|
3
|
+
mode: string;
|
|
4
|
+
private store;
|
|
5
|
+
private project;
|
|
6
|
+
private center;
|
|
7
|
+
private clickCount;
|
|
8
|
+
private currentCircleId;
|
|
9
|
+
constructor(options?: {
|
|
10
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
11
|
+
});
|
|
12
|
+
styling: TerraDrawAdapterStyling;
|
|
13
|
+
register(config: TerraDrawModeRegisterConfig): void;
|
|
14
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
15
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
16
|
+
onKeyPress(event: TerraDrawKeyboardEvent): void;
|
|
17
|
+
cleanUp(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Feature, Polygon } from "geojson";
|
|
2
|
+
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
3
|
+
import { TerraDrawMouseEvent } from "../common";
|
|
4
|
+
export declare class ClickBoundingBoxBehavior extends TerraDrawModeBehavior {
|
|
5
|
+
constructor(config: BehaviorConfig);
|
|
6
|
+
create(event: TerraDrawMouseEvent): Feature<Polygon, import("geojson").GeoJsonProperties>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../../common";
|
|
2
|
+
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
declare type TerraDrawFreehandModeKeyEvents = {
|
|
4
|
+
cancel: KeyboardEvent["key"];
|
|
5
|
+
};
|
|
6
|
+
export declare class TerraDrawFreehandMode extends TerraDrawBaseDrawMode {
|
|
7
|
+
mode: string;
|
|
8
|
+
private startingClick;
|
|
9
|
+
private currentId;
|
|
10
|
+
private skip;
|
|
11
|
+
private everyNthMouseEvent;
|
|
12
|
+
private keyEvents;
|
|
13
|
+
constructor(options?: {
|
|
14
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
15
|
+
everyNthMouseEvent?: number;
|
|
16
|
+
keyEvents?: TerraDrawFreehandModeKeyEvents;
|
|
17
|
+
});
|
|
18
|
+
start(): void;
|
|
19
|
+
stop(): void;
|
|
20
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
21
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
22
|
+
onKeyDown(): void;
|
|
23
|
+
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
24
|
+
onDragStart(): void;
|
|
25
|
+
onDrag(): void;
|
|
26
|
+
onDragEnd(): void;
|
|
27
|
+
cleanUp(): void;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawMode, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../common";
|
|
2
|
+
export declare class TerraDrawFreehandMode implements TerraDrawMode {
|
|
3
|
+
mode: string;
|
|
4
|
+
private store;
|
|
5
|
+
private project;
|
|
6
|
+
private startingClick;
|
|
7
|
+
private currentId;
|
|
8
|
+
private skip;
|
|
9
|
+
private everyNthMouseEvent;
|
|
10
|
+
constructor(options?: {
|
|
11
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
12
|
+
everyNthMouseEvent?: number;
|
|
13
|
+
});
|
|
14
|
+
styling: TerraDrawAdapterStyling;
|
|
15
|
+
register(config: TerraDrawModeRegisterConfig): void;
|
|
16
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
17
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
18
|
+
onKeyPress(event: TerraDrawKeyboardEvent): void;
|
|
19
|
+
cleanUp(): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawMode, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../common";
|
|
2
|
+
export declare class TerraDrawLineStringMode implements TerraDrawMode {
|
|
3
|
+
mode: string;
|
|
4
|
+
private store;
|
|
5
|
+
private project;
|
|
6
|
+
private pointerDistance;
|
|
7
|
+
private currentCoordinate;
|
|
8
|
+
private currentId;
|
|
9
|
+
private allowSelfIntersections;
|
|
10
|
+
constructor(options?: {
|
|
11
|
+
allowSelfIntersections?: boolean;
|
|
12
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
13
|
+
pointerDistance?: number;
|
|
14
|
+
});
|
|
15
|
+
styling: TerraDrawAdapterStyling;
|
|
16
|
+
register(config: TerraDrawModeRegisterConfig): void;
|
|
17
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
18
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
19
|
+
onKeyPress(event: TerraDrawKeyboardEvent): void;
|
|
20
|
+
cleanUp(): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../../common";
|
|
2
|
+
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
import { BehaviorConfig } from "../base.behavior";
|
|
4
|
+
declare type TerraDrawLineStringModeKeyEvents = {
|
|
5
|
+
cancel: KeyboardEvent["key"];
|
|
6
|
+
};
|
|
7
|
+
export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode {
|
|
8
|
+
mode: string;
|
|
9
|
+
private currentCoordinate;
|
|
10
|
+
private currentId;
|
|
11
|
+
private allowSelfIntersections;
|
|
12
|
+
private keyEvents;
|
|
13
|
+
private snappingEnabled;
|
|
14
|
+
private snapping;
|
|
15
|
+
constructor(options?: {
|
|
16
|
+
snapping?: boolean;
|
|
17
|
+
allowSelfIntersections?: boolean;
|
|
18
|
+
pointerDistance?: number;
|
|
19
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
20
|
+
keyEvents?: TerraDrawLineStringModeKeyEvents;
|
|
21
|
+
});
|
|
22
|
+
registerBehaviors(config: BehaviorConfig): void;
|
|
23
|
+
start(): void;
|
|
24
|
+
stop(): void;
|
|
25
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
26
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
27
|
+
onKeyDown(): void;
|
|
28
|
+
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
29
|
+
onDragStart(): void;
|
|
30
|
+
onDrag(): void;
|
|
31
|
+
onDragEnd(): void;
|
|
32
|
+
cleanUp(): void;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
|
+
import { TerraDrawMouseEvent } from "../common";
|
|
3
|
+
import { Position } from "geojson";
|
|
4
|
+
export declare class PixelDistanceBehavior extends TerraDrawModeBehavior {
|
|
5
|
+
constructor(config: BehaviorConfig);
|
|
6
|
+
measure(clickEvent: TerraDrawMouseEvent, secondCoordinate: Position): number;
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling } from "../../common";
|
|
2
|
+
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
export declare class TerraDrawPointMode extends TerraDrawBaseDrawMode {
|
|
4
|
+
mode: string;
|
|
5
|
+
constructor(options?: {
|
|
6
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
7
|
+
});
|
|
8
|
+
start(): void;
|
|
9
|
+
stop(): void;
|
|
10
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
11
|
+
onMouseMove(): void;
|
|
12
|
+
onKeyDown(): void;
|
|
13
|
+
onKeyUp(): void;
|
|
14
|
+
cleanUp(): void;
|
|
15
|
+
onDragStart(): void;
|
|
16
|
+
onDrag(): void;
|
|
17
|
+
onDragEnd(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawMode, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling } from "../common";
|
|
2
|
+
export declare class TerraDrawPointMode implements TerraDrawMode {
|
|
3
|
+
mode: string;
|
|
4
|
+
private store;
|
|
5
|
+
constructor(options?: {
|
|
6
|
+
styling?: Partial<TerraDrawAdapterStyling>;
|
|
7
|
+
});
|
|
8
|
+
styling: TerraDrawAdapterStyling;
|
|
9
|
+
register(config: TerraDrawModeRegisterConfig): void;
|
|
10
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
11
|
+
onMouseMove(): void;
|
|
12
|
+
onKeyPress(): void;
|
|
13
|
+
cleanUp(): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Position } from "geojson";
|
|
2
|
+
import { BehaviorConfig, TerraDrawModeBehavior } from "../../base.behavior";
|
|
3
|
+
export declare class StartEndPointBehavior extends TerraDrawModeBehavior {
|
|
4
|
+
constructor(config: BehaviorConfig);
|
|
5
|
+
private _startEndPoints;
|
|
6
|
+
get ids(): string[];
|
|
7
|
+
set ids(_: string[]);
|
|
8
|
+
create(selectedCoords: Position[], mode: string): void;
|
|
9
|
+
delete(): void;
|
|
10
|
+
update(updatedCoordinates: Position[]): void;
|
|
11
|
+
}
|