terra-draw 0.0.1-alpha.6 → 0.0.1-alpha.61
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/.devcontainer/Dockerfile +8 -0
- package/.devcontainer/devcontainer.json +21 -0
- package/.devcontainer/post-create.sh +16 -0
- package/README.md +30 -6
- package/dist/adapters/arcgis-maps-sdk.adapter.d.ts +105 -0
- package/dist/adapters/common/adapter-listener.d.ts +22 -0
- package/dist/adapters/common/base.adapter.d.ts +59 -0
- package/dist/adapters/google-maps.adapter.d.ts +90 -39
- package/dist/adapters/leaflet.adapter.d.ts +97 -33
- package/dist/adapters/mapbox-gl.adapter.d.ts +89 -37
- package/dist/adapters/maplibre-gl.adapter.d.ts +71 -0
- package/dist/adapters/openlayers.adapter.d.ts +118 -0
- package/dist/common.d.ts +103 -98
- package/dist/geometry/boolean/is-valid-coordinate.d.ts +4 -0
- package/dist/geometry/boolean/is-valid-linestring-feature.d.ts +2 -0
- package/dist/geometry/boolean/is-valid-point.d.ts +2 -0
- package/dist/geometry/boolean/is-valid-polygon-feature.d.ts +3 -0
- package/dist/geometry/boolean/point-in-polygon.d.ts +2 -2
- package/dist/geometry/boolean/self-intersects.d.ts +2 -2
- package/dist/geometry/centroid.d.ts +2 -2
- package/dist/geometry/coordinates-identical.d.ts +2 -2
- package/dist/geometry/get-coordinates-as-points.d.ts +6 -6
- package/dist/geometry/get-midpoints.d.ts +8 -7
- package/dist/geometry/helpers.d.ts +4 -4
- package/dist/geometry/limit-decimal-precision.d.ts +1 -1
- package/dist/geometry/measure/haversine-distance.d.ts +2 -2
- package/dist/geometry/measure/pixel-distance-to-line.d.ts +10 -10
- package/dist/geometry/measure/pixel-distance.d.ts +7 -7
- package/dist/geometry/measure/rhumb-bearing.d.ts +2 -2
- package/dist/geometry/measure/rhumb-destination.d.ts +2 -2
- package/dist/geometry/measure/rhumb-distance.d.ts +2 -2
- package/dist/geometry/midpoint-coordinate.d.ts +3 -2
- package/dist/geometry/shape/create-bbox.d.ts +10 -0
- package/dist/geometry/shape/create-circle.d.ts +7 -7
- package/dist/geometry/shape/great-circle-line.d.ts +12 -0
- package/dist/geometry/transform/rotate.d.ts +2 -2
- package/dist/geometry/transform/scale.d.ts +2 -2
- package/dist/modes/base.behavior.d.ts +19 -19
- package/dist/modes/base.mode.d.ts +62 -33
- package/dist/modes/circle/circle.mode.d.ts +55 -35
- package/dist/modes/click-bounding-box.behavior.d.ts +6 -7
- package/dist/modes/freehand/freehand.mode.d.ts +63 -37
- package/dist/modes/great-circle-snapping.behavior.d.ts +14 -0
- package/dist/modes/greatcircle/great-circle.mode.d.ts +64 -0
- package/dist/modes/linestring/linestring.mode.d.ts +67 -40
- package/dist/modes/pixel-distance.behavior.d.ts +7 -7
- package/dist/modes/point/point.mode.d.ts +44 -26
- package/dist/modes/polygon/behaviors/closing-points.behavior.d.ts +19 -19
- package/dist/modes/polygon/polygon.mode.d.ts +70 -49
- package/dist/modes/rectangle/rectangle.mode.d.ts +55 -0
- package/dist/modes/render/render.mode.d.ts +52 -23
- package/dist/modes/select/behaviors/drag-coordinate-resize.behavior.d.ts +28 -0
- package/dist/modes/select/behaviors/drag-coordinate.behavior.d.ts +20 -13
- package/dist/modes/select/behaviors/drag-feature.behavior.d.ts +20 -17
- package/dist/modes/select/behaviors/{features-at-mouse-event.behavior.d.ts → feature-at-pointer-event.behavior.d.ts} +15 -15
- package/dist/modes/select/behaviors/midpoint.behavior.d.ts +19 -18
- package/dist/modes/select/behaviors/rotate-feature.behavior.d.ts +14 -13
- package/dist/modes/select/behaviors/scale-feature.behavior.d.ts +14 -13
- package/dist/modes/select/behaviors/selection-point.behavior.d.ts +19 -18
- package/dist/modes/select/select.mode.d.ts +117 -78
- package/dist/modes/snapping.behavior.d.ts +16 -13
- package/dist/modes/static/static.mode.d.ts +32 -30
- package/dist/store/spatial-index/quickselect.d.ts +2 -2
- package/dist/store/spatial-index/rbush.d.ts +35 -35
- package/dist/store/spatial-index/spatial-index.d.ts +18 -18
- package/dist/store/store-feature-validation.d.ts +16 -0
- package/dist/store/store.d.ts +59 -48
- package/dist/terra-draw.cjs +1 -1
- package/dist/terra-draw.cjs.map +1 -1
- package/dist/terra-draw.d.ts +220 -48
- 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/dist/util/geoms.d.ts +3 -3
- package/dist/util/id.d.ts +1 -1
- package/dist/util/styling.d.ts +2 -2
- package/e2e/README.md +29 -0
- package/e2e/package-lock.json +4249 -0
- package/e2e/package.json +26 -0
- package/e2e/playwright.config.ts +77 -0
- package/e2e/public/index.html +53 -0
- package/e2e/src/index.ts +165 -0
- package/e2e/tests/leaflet.spec.ts +413 -0
- package/e2e/tests/setup.ts +164 -0
- package/e2e/webpack.config.js +36 -0
- package/jest.nocheck.config.ts +17 -0
- package/package.json +157 -87
- package/readme.gif +0 -0
- package/tsconfig.json +17 -12
- package/CODE_OF_CONDUCT.md +0 -36
- package/CONTRIBUTING.md +0 -17
- package/DEVELOPMENT.md +0 -77
- package/dist/bundle.js +0 -6
- package/dist/bundle.js.LICENSE.txt +0 -4
- package/dist/geometry/create-circle.d.ts +0 -6
- package/dist/geometry/get-pixel-distance-to-line.d.ts +0 -10
- package/dist/geometry/get-pixel-distance.d.ts +0 -7
- package/dist/geometry/haversine-distance.d.ts +0 -1
- package/dist/geometry/point-in-polygon.d.ts +0 -1
- package/dist/geometry/self-intersects.d.ts +0 -2
- package/dist/modes/circle.mode.d.ts +0 -18
- package/dist/modes/freehand.mode.d.ts +0 -20
- package/dist/modes/line-string.mode.d.ts +0 -21
- package/dist/modes/point.mode.d.ts +0 -14
- package/dist/modes/polygon/behaviors/start-end-point.behavior.d.ts +0 -11
- package/dist/modes/polygon.mode.d.ts +0 -21
- package/dist/modes/select.mode.d.ts +0 -21
- package/dist/modes/static.mode.d.ts +0 -10
- package/jest.config.ts +0 -27
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const pixelDistance: (pointOne: {
|
|
2
|
-
x: number;
|
|
3
|
-
y: number;
|
|
4
|
-
}, pointTwo: {
|
|
5
|
-
x: number;
|
|
6
|
-
y: number;
|
|
7
|
-
}) => number;
|
|
1
|
+
export declare const pixelDistance: (pointOne: {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}, pointTwo: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
}) => number;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Position } from "geojson";
|
|
2
|
-
export declare function rhumbBearing(start: Position, end: Position): number;
|
|
1
|
+
import { Position } from "geojson";
|
|
2
|
+
export declare function rhumbBearing(start: Position, end: Position): number;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Position } from "geojson";
|
|
2
|
-
export declare function rhumbDestination(origin: Position, distanceMeters: number, bearing: number): Position;
|
|
1
|
+
import { Position } from "geojson";
|
|
2
|
+
export declare function rhumbDestination(origin: Position, distanceMeters: number, bearing: number): Position;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Position } from "geojson";
|
|
2
|
-
export declare function rhumbDistance(destination: Position, origin: Position): number;
|
|
1
|
+
import { Position } from "geojson";
|
|
2
|
+
export declare function rhumbDistance(destination: Position, origin: Position): number;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { Position } from "geojson";
|
|
2
|
-
|
|
1
|
+
import { Position } from "geojson";
|
|
2
|
+
import { Project, Unproject } from "../common";
|
|
3
|
+
export declare function midpointCoordinate(coordinates1: Position, coordinates2: Position, precision: number, project: Project, unproject: Unproject): number[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Feature, Polygon } from "geojson";
|
|
2
|
+
import { Unproject } from "../../common";
|
|
3
|
+
export declare function createBBoxFromPoint({ unproject, point, pointerDistance, }: {
|
|
4
|
+
point: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
};
|
|
8
|
+
unproject: Unproject;
|
|
9
|
+
pointerDistance: number;
|
|
10
|
+
}): Feature<Polygon, import("geojson").GeoJsonProperties>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Feature, Polygon, Position } from "geojson";
|
|
2
|
-
export declare function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
steps?: number;
|
|
7
|
-
}): Feature<Polygon>;
|
|
1
|
+
import { Feature, Polygon, Position } from "geojson";
|
|
2
|
+
export declare function circle(options: {
|
|
3
|
+
center: Position;
|
|
4
|
+
radiusKilometers: number;
|
|
5
|
+
coordinatePrecision: number;
|
|
6
|
+
steps?: number;
|
|
7
|
+
}): Feature<Polygon>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Feature, LineString, Position } from "geojson";
|
|
2
|
+
import { JSONObject } from "../../store/store";
|
|
3
|
+
export declare function greatCircleLine<Properties extends JSONObject>({ start, end, options, }: {
|
|
4
|
+
start: Position;
|
|
5
|
+
end: Position;
|
|
6
|
+
options?: {
|
|
7
|
+
numberOfPoints?: number;
|
|
8
|
+
offset?: number;
|
|
9
|
+
properties?: Properties;
|
|
10
|
+
coordinatePrecision?: number;
|
|
11
|
+
};
|
|
12
|
+
}): Feature<LineString, import("geojson").GeoJsonProperties> | null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Feature, LineString, Polygon } from "geojson";
|
|
2
|
-
export declare function transformRotate(geojson: Feature<Polygon | LineString>, angle: number): Feature<Polygon | LineString, import("geojson").GeoJsonProperties>;
|
|
1
|
+
import { Feature, LineString, Polygon } from "geojson";
|
|
2
|
+
export declare function transformRotate(geojson: Feature<Polygon | LineString>, angle: number): Feature<Polygon | LineString, import("geojson").GeoJsonProperties>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Feature, LineString, Polygon } from "geojson";
|
|
2
|
-
export declare function transformScale(feature: Feature<Polygon | LineString>, factor: number): Feature<Polygon | LineString, import("geojson").GeoJsonProperties>;
|
|
1
|
+
import { Feature, LineString, Polygon, Position } from "geojson";
|
|
2
|
+
export declare function transformScale(feature: Feature<Polygon | LineString>, factor: number, origin: Position, axis?: "x" | "y" | "xy"): Feature<Polygon | LineString, import("geojson").GeoJsonProperties>;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Project, Unproject } from "../common";
|
|
2
|
-
import { GeoJSONStore } from "../store/store";
|
|
3
|
-
export
|
|
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
|
-
}
|
|
1
|
+
import { Project, Unproject } from "../common";
|
|
2
|
+
import { GeoJSONStore } from "../store/store";
|
|
3
|
+
export 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
|
+
}
|
|
@@ -1,33 +1,62 @@
|
|
|
1
|
-
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
|
-
import { TerraDrawModeRegisterConfig, TerraDrawModeState } from "../common";
|
|
3
|
-
import { GeoJSONStore, GeoJSONStoreFeatures } from "../store/store";
|
|
4
|
-
|
|
5
|
-
export declare
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
protected
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
protected
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
protected
|
|
27
|
-
protected
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
|
+
import { HexColor, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, TerraDrawModeRegisterConfig, TerraDrawModeState, TerraDrawMouseEvent } from "../common";
|
|
3
|
+
import { FeatureId, GeoJSONStore, GeoJSONStoreFeatures, StoreChangeHandler } from "../store/store";
|
|
4
|
+
export type CustomStyling = Record<string, string | number | ((feature: GeoJSONStoreFeatures) => HexColor) | ((feature: GeoJSONStoreFeatures) => number)>;
|
|
5
|
+
export declare enum ModeTypes {
|
|
6
|
+
Drawing = "drawing",
|
|
7
|
+
Select = "select",
|
|
8
|
+
Static = "static",
|
|
9
|
+
Render = "render"
|
|
10
|
+
}
|
|
11
|
+
export type BaseModeOptions<T extends CustomStyling> = {
|
|
12
|
+
styles?: Partial<T>;
|
|
13
|
+
pointerDistance?: number;
|
|
14
|
+
};
|
|
15
|
+
export declare abstract class TerraDrawBaseDrawMode<T extends CustomStyling> {
|
|
16
|
+
protected _state: TerraDrawModeState;
|
|
17
|
+
get state(): TerraDrawModeState;
|
|
18
|
+
set state(_: TerraDrawModeState);
|
|
19
|
+
protected _styles: Partial<T>;
|
|
20
|
+
get styles(): Partial<T>;
|
|
21
|
+
set styles(styling: Partial<T>);
|
|
22
|
+
protected behaviors: TerraDrawModeBehavior[];
|
|
23
|
+
protected pointerDistance: number;
|
|
24
|
+
protected coordinatePrecision: number;
|
|
25
|
+
protected onStyleChange: StoreChangeHandler;
|
|
26
|
+
protected store: GeoJSONStore;
|
|
27
|
+
protected setDoubleClickToZoom: TerraDrawModeRegisterConfig["setDoubleClickToZoom"];
|
|
28
|
+
protected unproject: TerraDrawModeRegisterConfig["unproject"];
|
|
29
|
+
protected project: TerraDrawModeRegisterConfig["project"];
|
|
30
|
+
protected setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
31
|
+
protected registerBehaviors(behaviorConfig: BehaviorConfig): void;
|
|
32
|
+
constructor(options?: BaseModeOptions<T>);
|
|
33
|
+
type: ModeTypes;
|
|
34
|
+
mode: string;
|
|
35
|
+
protected setDrawing(): void;
|
|
36
|
+
protected setStarted(): void;
|
|
37
|
+
protected setStopped(): void;
|
|
38
|
+
register(config: TerraDrawModeRegisterConfig): void;
|
|
39
|
+
validateFeature(feature: unknown): feature is GeoJSONStoreFeatures;
|
|
40
|
+
abstract start(): void;
|
|
41
|
+
abstract stop(): void;
|
|
42
|
+
abstract cleanUp(): void;
|
|
43
|
+
abstract styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
44
|
+
onFinish(finishedId: FeatureId): void;
|
|
45
|
+
onDeselect(deselectedId: FeatureId): void;
|
|
46
|
+
onSelect(selectedId: FeatureId): void;
|
|
47
|
+
onKeyDown(event: TerraDrawKeyboardEvent): void;
|
|
48
|
+
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
49
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
50
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
51
|
+
onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
52
|
+
onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
53
|
+
onDragEnd(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
54
|
+
protected getHexColorStylingValue(value: HexColor | ((feature: GeoJSONStoreFeatures) => HexColor) | undefined, defaultValue: HexColor, feature: GeoJSONStoreFeatures): HexColor;
|
|
55
|
+
protected getNumericStylingValue(value: number | ((feature: GeoJSONStoreFeatures) => number) | undefined, defaultValue: number, feature: GeoJSONStoreFeatures): number;
|
|
56
|
+
private getStylingValue;
|
|
57
|
+
}
|
|
58
|
+
export declare abstract class TerraDrawBaseSelectMode<T extends CustomStyling> extends TerraDrawBaseDrawMode<T> {
|
|
59
|
+
type: ModeTypes;
|
|
60
|
+
abstract selectFeature(featureId: FeatureId): void;
|
|
61
|
+
abstract deselectFeature(featureId: FeatureId): void;
|
|
62
|
+
}
|
|
@@ -1,35 +1,55 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent,
|
|
2
|
-
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
3
|
-
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
4
|
-
|
|
5
|
-
cancel: KeyboardEvent["key"];
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
|
|
2
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
3
|
+
import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
|
|
4
|
+
type TerraDrawCircleModeKeyEvents = {
|
|
5
|
+
cancel: KeyboardEvent["key"] | null;
|
|
6
|
+
finish: KeyboardEvent["key"] | null;
|
|
7
|
+
};
|
|
8
|
+
type CirclePolygonStyling = {
|
|
9
|
+
fillColor: HexColorStyling;
|
|
10
|
+
outlineColor: HexColorStyling;
|
|
11
|
+
outlineWidth: NumericStyling;
|
|
12
|
+
fillOpacity: NumericStyling;
|
|
13
|
+
};
|
|
14
|
+
interface Cursors {
|
|
15
|
+
start?: Cursor;
|
|
16
|
+
}
|
|
17
|
+
interface TerraDrawCircleModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
|
|
18
|
+
keyEvents?: TerraDrawCircleModeKeyEvents | null;
|
|
19
|
+
cursors?: Cursors;
|
|
20
|
+
}
|
|
21
|
+
export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode<CirclePolygonStyling> {
|
|
22
|
+
mode: string;
|
|
23
|
+
private center;
|
|
24
|
+
private clickCount;
|
|
25
|
+
private currentCircleId;
|
|
26
|
+
private keyEvents;
|
|
27
|
+
private cursors;
|
|
28
|
+
constructor(options?: TerraDrawCircleModeOptions<CirclePolygonStyling>);
|
|
29
|
+
private close;
|
|
30
|
+
/** @internal */
|
|
31
|
+
start(): void;
|
|
32
|
+
/** @internal */
|
|
33
|
+
stop(): void;
|
|
34
|
+
/** @internal */
|
|
35
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
36
|
+
/** @internal */
|
|
37
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
38
|
+
/** @internal */
|
|
39
|
+
onKeyDown(): void;
|
|
40
|
+
/** @internal */
|
|
41
|
+
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
42
|
+
/** @internal */
|
|
43
|
+
onDragStart(): void;
|
|
44
|
+
/** @internal */
|
|
45
|
+
onDrag(): void;
|
|
46
|
+
/** @internal */
|
|
47
|
+
onDragEnd(): void;
|
|
48
|
+
/** @internal */
|
|
49
|
+
cleanUp(): void;
|
|
50
|
+
/** @internal */
|
|
51
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
52
|
+
validateFeature(feature: unknown): feature is GeoJSONStoreFeatures;
|
|
53
|
+
private createCircle;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
1
|
+
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
|
+
import { TerraDrawMouseEvent } from "../common";
|
|
3
|
+
export declare class ClickBoundingBoxBehavior extends TerraDrawModeBehavior {
|
|
4
|
+
constructor(config: BehaviorConfig);
|
|
5
|
+
create(event: TerraDrawMouseEvent): import("geojson").Feature<import("geojson").Polygon, import("geojson").GeoJsonProperties>;
|
|
6
|
+
}
|
|
@@ -1,37 +1,63 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent,
|
|
2
|
-
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
-
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
4
|
-
|
|
5
|
-
cancel: KeyboardEvent["key"];
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
|
|
2
|
+
import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
4
|
+
type TerraDrawFreehandModeKeyEvents = {
|
|
5
|
+
cancel: KeyboardEvent["key"] | null;
|
|
6
|
+
finish: KeyboardEvent["key"] | null;
|
|
7
|
+
};
|
|
8
|
+
type FreehandPolygonStyling = {
|
|
9
|
+
fillColor: HexColorStyling;
|
|
10
|
+
outlineColor: HexColorStyling;
|
|
11
|
+
outlineWidth: NumericStyling;
|
|
12
|
+
fillOpacity: NumericStyling;
|
|
13
|
+
closingPointColor: HexColorStyling;
|
|
14
|
+
closingPointWidth: NumericStyling;
|
|
15
|
+
closingPointOutlineColor: HexColorStyling;
|
|
16
|
+
closingPointOutlineWidth: NumericStyling;
|
|
17
|
+
};
|
|
18
|
+
interface Cursors {
|
|
19
|
+
start?: Cursor;
|
|
20
|
+
close?: Cursor;
|
|
21
|
+
}
|
|
22
|
+
interface TerraDrawFreehandModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
|
|
23
|
+
minDistance?: number;
|
|
24
|
+
preventPointsNearClose?: boolean;
|
|
25
|
+
keyEvents?: TerraDrawFreehandModeKeyEvents | null;
|
|
26
|
+
cursors?: Cursors;
|
|
27
|
+
}
|
|
28
|
+
export declare class TerraDrawFreehandMode extends TerraDrawBaseDrawMode<FreehandPolygonStyling> {
|
|
29
|
+
mode: string;
|
|
30
|
+
private startingClick;
|
|
31
|
+
private currentId;
|
|
32
|
+
private closingPointId;
|
|
33
|
+
private minDistance;
|
|
34
|
+
private keyEvents;
|
|
35
|
+
private cursors;
|
|
36
|
+
private preventPointsNearClose;
|
|
37
|
+
constructor(options?: TerraDrawFreehandModeOptions<FreehandPolygonStyling>);
|
|
38
|
+
private close;
|
|
39
|
+
/** @internal */
|
|
40
|
+
start(): void;
|
|
41
|
+
/** @internal */
|
|
42
|
+
stop(): void;
|
|
43
|
+
/** @internal */
|
|
44
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
45
|
+
/** @internal */
|
|
46
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
47
|
+
/** @internal */
|
|
48
|
+
onKeyDown(): void;
|
|
49
|
+
/** @internal */
|
|
50
|
+
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
51
|
+
/** @internal */
|
|
52
|
+
onDragStart(): void;
|
|
53
|
+
/** @internal */
|
|
54
|
+
onDrag(): void;
|
|
55
|
+
/** @internal */
|
|
56
|
+
onDragEnd(): void;
|
|
57
|
+
/** @internal */
|
|
58
|
+
cleanUp(): void;
|
|
59
|
+
/** @internal */
|
|
60
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
61
|
+
validateFeature(feature: unknown): feature is GeoJSONStoreFeatures;
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
|
+
import { TerraDrawMouseEvent } from "../common";
|
|
3
|
+
import { Position } from "geojson";
|
|
4
|
+
import { ClickBoundingBoxBehavior } from "./click-bounding-box.behavior";
|
|
5
|
+
import { FeatureId } from "../store/store";
|
|
6
|
+
import { PixelDistanceBehavior } from "./pixel-distance.behavior";
|
|
7
|
+
export declare class GreatCircleSnappingBehavior extends TerraDrawModeBehavior {
|
|
8
|
+
readonly config: BehaviorConfig;
|
|
9
|
+
private readonly pixelDistance;
|
|
10
|
+
private readonly clickBoundingBox;
|
|
11
|
+
constructor(config: BehaviorConfig, pixelDistance: PixelDistanceBehavior, clickBoundingBox: ClickBoundingBoxBehavior);
|
|
12
|
+
getSnappableCoordinate: (event: TerraDrawMouseEvent, currentFeatureId?: FeatureId) => Position | undefined;
|
|
13
|
+
private getSnappableEnds;
|
|
14
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
|
|
2
|
+
import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
import { BehaviorConfig } from "../base.behavior";
|
|
4
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
5
|
+
type TerraDrawGreateCircleModeKeyEvents = {
|
|
6
|
+
cancel: KeyboardEvent["key"] | null;
|
|
7
|
+
finish: KeyboardEvent["key"] | null;
|
|
8
|
+
};
|
|
9
|
+
type GreateCircleStyling = {
|
|
10
|
+
lineStringWidth: NumericStyling;
|
|
11
|
+
lineStringColor: HexColorStyling;
|
|
12
|
+
closingPointColor: HexColorStyling;
|
|
13
|
+
closingPointWidth: NumericStyling;
|
|
14
|
+
closingPointOutlineColor: HexColorStyling;
|
|
15
|
+
closingPointOutlineWidth: NumericStyling;
|
|
16
|
+
};
|
|
17
|
+
interface Cursors {
|
|
18
|
+
start?: Cursor;
|
|
19
|
+
close?: Cursor;
|
|
20
|
+
}
|
|
21
|
+
interface TerraDrawGreatCircleModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
|
|
22
|
+
snapping?: boolean;
|
|
23
|
+
pointerDistance?: number;
|
|
24
|
+
keyEvents?: TerraDrawGreateCircleModeKeyEvents | null;
|
|
25
|
+
cursors?: Cursors;
|
|
26
|
+
}
|
|
27
|
+
export declare class TerraDrawGreatCircleMode extends TerraDrawBaseDrawMode<GreateCircleStyling> {
|
|
28
|
+
mode: string;
|
|
29
|
+
private currentCoordinate;
|
|
30
|
+
private currentId;
|
|
31
|
+
private closingPointId;
|
|
32
|
+
private keyEvents;
|
|
33
|
+
private snappingEnabled;
|
|
34
|
+
private cursors;
|
|
35
|
+
private snapping;
|
|
36
|
+
constructor(options?: TerraDrawGreatCircleModeOptions<GreateCircleStyling>);
|
|
37
|
+
private close;
|
|
38
|
+
/** @internal */
|
|
39
|
+
registerBehaviors(config: BehaviorConfig): void;
|
|
40
|
+
/** @internal */
|
|
41
|
+
start(): void;
|
|
42
|
+
/** @internal */
|
|
43
|
+
stop(): void;
|
|
44
|
+
/** @internal */
|
|
45
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
46
|
+
/** @internal */
|
|
47
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
48
|
+
/** @internal */
|
|
49
|
+
onKeyDown(): void;
|
|
50
|
+
/** @internal */
|
|
51
|
+
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
52
|
+
/** @internal */
|
|
53
|
+
onDragStart(): void;
|
|
54
|
+
/** @internal */
|
|
55
|
+
onDrag(): void;
|
|
56
|
+
/** @internal */
|
|
57
|
+
onDragEnd(): void;
|
|
58
|
+
/** @internal */
|
|
59
|
+
cleanUp(): void;
|
|
60
|
+
/** @internal */
|
|
61
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
62
|
+
validateFeature(feature: unknown): feature is GeoJSONStoreFeatures;
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
@@ -1,40 +1,67 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent,
|
|
2
|
-
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
-
import { BehaviorConfig } from "../base.behavior";
|
|
4
|
-
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
5
|
-
|
|
6
|
-
cancel: KeyboardEvent["key"];
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
|
|
2
|
+
import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
import { BehaviorConfig } from "../base.behavior";
|
|
4
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
5
|
+
type TerraDrawLineStringModeKeyEvents = {
|
|
6
|
+
cancel: KeyboardEvent["key"] | null;
|
|
7
|
+
finish: KeyboardEvent["key"] | null;
|
|
8
|
+
};
|
|
9
|
+
type LineStringStyling = {
|
|
10
|
+
lineStringWidth: NumericStyling;
|
|
11
|
+
lineStringColor: HexColorStyling;
|
|
12
|
+
closingPointColor: HexColorStyling;
|
|
13
|
+
closingPointWidth: NumericStyling;
|
|
14
|
+
closingPointOutlineColor: HexColorStyling;
|
|
15
|
+
closingPointOutlineWidth: NumericStyling;
|
|
16
|
+
};
|
|
17
|
+
interface Cursors {
|
|
18
|
+
start?: Cursor;
|
|
19
|
+
close?: Cursor;
|
|
20
|
+
}
|
|
21
|
+
interface TerraDrawLineStringModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
|
|
22
|
+
snapping?: boolean;
|
|
23
|
+
allowSelfIntersections?: boolean;
|
|
24
|
+
pointerDistance?: number;
|
|
25
|
+
keyEvents?: TerraDrawLineStringModeKeyEvents | null;
|
|
26
|
+
cursors?: Cursors;
|
|
27
|
+
}
|
|
28
|
+
export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineStringStyling> {
|
|
29
|
+
mode: string;
|
|
30
|
+
private currentCoordinate;
|
|
31
|
+
private currentId;
|
|
32
|
+
private closingPointId;
|
|
33
|
+
private allowSelfIntersections;
|
|
34
|
+
private keyEvents;
|
|
35
|
+
private snappingEnabled;
|
|
36
|
+
private cursors;
|
|
37
|
+
private mouseMove;
|
|
38
|
+
private snapping;
|
|
39
|
+
constructor(options?: TerraDrawLineStringModeOptions<LineStringStyling>);
|
|
40
|
+
private close;
|
|
41
|
+
/** @internal */
|
|
42
|
+
registerBehaviors(config: BehaviorConfig): void;
|
|
43
|
+
/** @internal */
|
|
44
|
+
start(): void;
|
|
45
|
+
/** @internal */
|
|
46
|
+
stop(): void;
|
|
47
|
+
/** @internal */
|
|
48
|
+
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
49
|
+
/** @internal */
|
|
50
|
+
onClick(event: TerraDrawMouseEvent): void;
|
|
51
|
+
/** @internal */
|
|
52
|
+
onKeyDown(): void;
|
|
53
|
+
/** @internal */
|
|
54
|
+
onKeyUp(event: TerraDrawKeyboardEvent): void;
|
|
55
|
+
/** @internal */
|
|
56
|
+
onDragStart(): void;
|
|
57
|
+
/** @internal */
|
|
58
|
+
onDrag(): void;
|
|
59
|
+
/** @internal */
|
|
60
|
+
onDragEnd(): void;
|
|
61
|
+
/** @internal */
|
|
62
|
+
cleanUp(): void;
|
|
63
|
+
/** @internal */
|
|
64
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
65
|
+
validateFeature(feature: unknown): feature is GeoJSONStoreFeatures;
|
|
66
|
+
}
|
|
67
|
+
export {};
|