terra-draw 0.0.1-alpha.0 → 0.0.1-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -0
- package/README.md +15 -1
- package/dist/adapters/google-maps.adapter.d.ts +2 -1
- package/dist/adapters/leaflet.adapter.d.ts +3 -5
- package/dist/adapters/mapbox-gl.adapter.d.ts +2 -1
- package/dist/common.d.ts +17 -18
- package/dist/modes/base.mode.d.ts +11 -8
- package/dist/modes/circle/circle.mode.d.ts +13 -3
- package/dist/modes/freehand/freehand.mode.d.ts +20 -6
- package/dist/modes/linestring/linestring.mode.d.ts +16 -3
- package/dist/modes/point/point.mode.d.ts +11 -3
- package/dist/modes/polygon/behaviors/closing-points.behavior.d.ts +19 -0
- package/dist/modes/polygon/polygon.mode.d.ts +18 -4
- package/dist/modes/render/render.mode.d.ts +23 -0
- package/dist/modes/select/select.mode.d.ts +18 -2
- package/dist/modes/static/static.mode.d.ts +18 -1
- package/dist/terra-draw.cjs +1 -1
- package/dist/terra-draw.cjs.map +1 -1
- package/dist/terra-draw.d.ts +3 -2
- 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 +58 -2
- package/.github/workflows/ci.yml +0 -27
- package/.husky/commit-msg +0 -4
- package/.husky/pre-commit +0 -5
- package/ROADMAP.md +0 -63
- package/common/addModeChangeHandler.ts +0 -26
- package/data/sample.ts +0 -10126
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
### [0.0.1-alpha.11](https://github.com/JamesLMilner/terra-draw/compare/v0.0.1-alpha.10...v0.0.1-alpha.11) (2022-11-29)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add MapLibre adapter ([464dce4](https://github.com/JamesLMilner/terra-draw/commit/464dce418bd6f18f3043d9072f3636d051ad900a))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Chore
|
|
14
|
+
|
|
15
|
+
* add automated documentation to the project ([0bbefbb](https://github.com/JamesLMilner/terra-draw/commit/0bbefbb8b69a18d73159b73ccdff5f79c7c0b843))
|
|
16
|
+
|
|
17
|
+
### 0.0.1-alpha.10 (2022-11-24)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* add closing point to linestring ot make easier to close for users ([e14b276](https://github.com/JamesLMilner/terra-draw/commit/e14b2769f3eb00faea55f30a24ebd4beabae92fe))
|
|
23
|
+
* add keybinding to allow finishing of geometries on keypress ([9b2b88e](https://github.com/JamesLMilner/terra-draw/commit/9b2b88ef4df94b8fdb5f16ded22cab6315d59cc6))
|
|
24
|
+
* adding closing points for drawing polygons ([c569ed6](https://github.com/JamesLMilner/terra-draw/commit/c569ed6c000683c2c9cba8fc8bec7ab5f5779a8c))
|
|
25
|
+
* use minimum distance approach instead of nth event for freehand ([240952d](https://github.com/JamesLMilner/terra-draw/commit/240952d2360568cba1f46340fa37360860125eed))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Chore
|
|
29
|
+
|
|
30
|
+
* add better unit test coverage for select mode ([46f3e3c](https://github.com/JamesLMilner/terra-draw/commit/46f3e3c7dc01d8d03261af762434c296f438d2e3))
|
|
31
|
+
* add development to .npmignore ([8fa412f](https://github.com/JamesLMilner/terra-draw/commit/8fa412fcaef0f39d584ef6a1190391478ad12bb7))
|
|
32
|
+
* add docs to .npmignore ([df907c3](https://github.com/JamesLMilner/terra-draw/commit/df907c3448385d24eb2afee3ec3f083a48c14325))
|
|
33
|
+
* add documentaiton for development and contributing ([4148d3e](https://github.com/JamesLMilner/terra-draw/commit/4148d3e22ffce5558278e148ea569d49f63ad8a7))
|
|
34
|
+
* add links and licenses where appropriate ([7e5aa62](https://github.com/JamesLMilner/terra-draw/commit/7e5aa621c64e1124b9a40dc5b8570ad3247a8ba2))
|
|
35
|
+
* add logo to README ([149a519](https://github.com/JamesLMilner/terra-draw/commit/149a5196b37e3263fa4246c78214725f861e38be))
|
|
36
|
+
* add npm install instructions to README ([2094716](https://github.com/JamesLMilner/terra-draw/commit/209471665318dc9fbd4fbd31e0ba17c7843bab72))
|
|
37
|
+
* add precommit hooks ([752c2f8](https://github.com/JamesLMilner/terra-draw/commit/752c2f850d5db7f0d3f4a0b4f6580a1b578ca167))
|
|
38
|
+
* add src to .npmignore ([0d769b8](https://github.com/JamesLMilner/terra-draw/commit/0d769b8618837c2f0672034654d7a91bc1183649))
|
|
39
|
+
* add TerraDrawRenderMode as an export ([8f7fd60](https://github.com/JamesLMilner/terra-draw/commit/8f7fd60697ed17a2bacd7d6eddc85aced46e6fad))
|
|
40
|
+
* add types property at top level of package.json ([2b53b63](https://github.com/JamesLMilner/terra-draw/commit/2b53b636f5688d3bfd45b02139e61a0474739abf))
|
|
41
|
+
* add types to exports in package.json ([94f5b5c](https://github.com/JamesLMilner/terra-draw/commit/94f5b5c4e83124b11a2c991c7948189f53d9d865))
|
|
42
|
+
* bump to 0.0.1-alpha.9 ([a4bb461](https://github.com/JamesLMilner/terra-draw/commit/a4bb46192cd80199f943a9e05e1808409a75b859))
|
|
43
|
+
* bump to 0.1-alpha.2 ([003ddb2](https://github.com/JamesLMilner/terra-draw/commit/003ddb2055ffad92121b9c71db115466575c4378))
|
|
44
|
+
* bump to 0.1-alpha.3 ([f56c5d8](https://github.com/JamesLMilner/terra-draw/commit/f56c5d85d3f6eaef0ba50de9741327f5db777ad7))
|
|
45
|
+
* bump to 0.1-alpha.4 ([198b281](https://github.com/JamesLMilner/terra-draw/commit/198b281891dcd19c5f7396c4dcad033fec93265c))
|
|
46
|
+
* bump to 0.1-alpha.5 ([daa6630](https://github.com/JamesLMilner/terra-draw/commit/daa6630070452cf633e67f64c61408cb7e215a86))
|
|
47
|
+
* bump to 0.1-alpha.6 ([86f17d6](https://github.com/JamesLMilner/terra-draw/commit/86f17d61eb1fe59e3b9ffcb0e84ef616ccab6d84))
|
|
48
|
+
* bump to 0.1-alpha.7 ([0e98f38](https://github.com/JamesLMilner/terra-draw/commit/0e98f384a8813097626cec13fa0f17ffc8d5e5b9))
|
|
49
|
+
* bump to 0.1-alpha.8 ([5065f83](https://github.com/JamesLMilner/terra-draw/commit/5065f833534f8e117cfddebb93f164bee3c6fcd8))
|
|
50
|
+
* change styling API to work on a per feature level ([ef43294](https://github.com/JamesLMilner/terra-draw/commit/ef4329449f20399425c7212e50eb730e760a9dda))
|
|
51
|
+
* clean up website section of README ([214b39f](https://github.com/JamesLMilner/terra-draw/commit/214b39f25096f4928637c93386861d73fbe99955))
|
|
52
|
+
* ensure default comes last in exports object of package.json ([1b7c849](https://github.com/JamesLMilner/terra-draw/commit/1b7c8498e14db4c83d7d5c52912532379e59d114))
|
|
53
|
+
* fix typescript typings location ([756586a](https://github.com/JamesLMilner/terra-draw/commit/756586a8dfb283b11372ecd9df6381d375e7939a))
|
|
54
|
+
* more select unit tests ([e440db8](https://github.com/JamesLMilner/terra-draw/commit/e440db8328a4be85e1c4f95646c5fb447d0060a9))
|
|
55
|
+
* polygon closing snapping, identical coord protection ([27eceaf](https://github.com/JamesLMilner/terra-draw/commit/27eceaf102ffa1a4f57b739f061106cbd2345df2))
|
|
56
|
+
* readd logo ([63ee2dc](https://github.com/JamesLMilner/terra-draw/commit/63ee2dc58d544949edff61336d93996fe61424e9))
|
|
57
|
+
* remove docs folder ([2f74921](https://github.com/JamesLMilner/terra-draw/commit/2f749215af2854c22f61293752bac6de24e30467))
|
|
58
|
+
* remove futher files from publish ([b71ea63](https://github.com/JamesLMilner/terra-draw/commit/b71ea63819fd68acbc577ed79b2a4a7e81fb9ceb))
|
|
59
|
+
* remove styling experiment from development ([808dfbb](https://github.com/JamesLMilner/terra-draw/commit/808dfbb18fa697511a3c96595106d28046398b91))
|
|
60
|
+
* remove top level files ([ed39533](https://github.com/JamesLMilner/terra-draw/commit/ed3953365dbc5d1ed06f655967fac523cd33eddb))
|
|
61
|
+
* remove unused imports ([a2ba004](https://github.com/JamesLMilner/terra-draw/commit/a2ba004a1f4b95b83d2aefecf83fab60237a477b))
|
|
62
|
+
* use webpack-dev-server for development folder ([7783e6a](https://github.com/JamesLMilner/terra-draw/commit/7783e6ad79137323e9d3aceab062f62e258590e6))
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<img src="
|
|
1
|
+
<img src="https://terradraw.io/imgs/logo.png" alt="Terra Draw Logo" width="400"/>
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
@@ -6,6 +6,16 @@ Frictionless map drawing across mapping libraries.
|
|
|
6
6
|
|
|
7
7
|
TerraDraw centralises map drawing logic and provides a host of out the box drawing modes that work across map providers (currently Leaflet, Mapbox, Google) via adapters.
|
|
8
8
|
|
|
9
|
+
### Install
|
|
10
|
+
|
|
11
|
+
You can install the Terra Draw into your project like so:
|
|
12
|
+
|
|
13
|
+
```shell
|
|
14
|
+
npm install terra-draw
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Be aware Terra Draw is currently in alpha, the initial API is still being finalised
|
|
18
|
+
|
|
9
19
|
### Development
|
|
10
20
|
|
|
11
21
|
Please see the [the development documentation](./DEVELOPMENT.md)
|
|
@@ -14,6 +24,10 @@ Please see the [the development documentation](./DEVELOPMENT.md)
|
|
|
14
24
|
|
|
15
25
|
Please see the [the contributing documentation](./CONTRIBUTING.md)
|
|
16
26
|
|
|
27
|
+
### Project Website
|
|
28
|
+
|
|
29
|
+
You can checkout the offical Terra Draw website at [terradraw.io](https://www.terradraw.io). If you are interested in contributing to the website please see [this repository](https://www.github.com/JamesLMilner/terra-draw-website).
|
|
30
|
+
|
|
17
31
|
### License
|
|
18
32
|
|
|
19
33
|
MIT
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="google.maps" />
|
|
2
2
|
import { TerraDrawCallbacks, TerraDrawAdapter, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawChanges } from "../common";
|
|
3
|
+
import { GeoJSONStoreFeatures } from "../store/store";
|
|
3
4
|
export declare class TerraDrawGoogleMapsAdapter implements TerraDrawAdapter {
|
|
4
5
|
constructor(config: {
|
|
5
6
|
lib: typeof google.maps;
|
|
@@ -33,6 +34,6 @@ export declare class TerraDrawGoogleMapsAdapter implements TerraDrawAdapter {
|
|
|
33
34
|
register(callbacks: TerraDrawCallbacks): void;
|
|
34
35
|
unregister(): void;
|
|
35
36
|
render(changes: TerraDrawChanges, styling: {
|
|
36
|
-
[mode: string]: TerraDrawAdapterStyling;
|
|
37
|
+
[mode: string]: (feature: GeoJSONStoreFeatures) => TerraDrawAdapterStyling;
|
|
37
38
|
}): void;
|
|
38
39
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TerraDrawCallbacks, TerraDrawAdapter, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawChanges } from "../common";
|
|
2
2
|
import L from "leaflet";
|
|
3
|
+
import { GeoJSONStoreFeatures } from "../store/store";
|
|
3
4
|
export declare class TerraDrawLeafletAdapter implements TerraDrawAdapter {
|
|
4
5
|
constructor(config: {
|
|
5
6
|
lib: typeof L;
|
|
@@ -18,10 +19,7 @@ export declare class TerraDrawLeafletAdapter implements TerraDrawAdapter {
|
|
|
18
19
|
private _onDragListener;
|
|
19
20
|
private _onDragEndListener;
|
|
20
21
|
private _layer;
|
|
21
|
-
private
|
|
22
|
-
private _midPointPane;
|
|
23
|
-
private _selectionPaneZIndexStyleSheet;
|
|
24
|
-
private _selectedPane;
|
|
22
|
+
private _panes;
|
|
25
23
|
project: TerraDrawModeRegisterConfig["project"];
|
|
26
24
|
unproject: TerraDrawModeRegisterConfig["unproject"];
|
|
27
25
|
setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
@@ -30,6 +28,6 @@ export declare class TerraDrawLeafletAdapter implements TerraDrawAdapter {
|
|
|
30
28
|
register(callbacks: TerraDrawCallbacks): void;
|
|
31
29
|
unregister(): void;
|
|
32
30
|
render(changes: TerraDrawChanges, styling: {
|
|
33
|
-
[mode: string]: TerraDrawAdapterStyling;
|
|
31
|
+
[mode: string]: (feature: GeoJSONStoreFeatures) => TerraDrawAdapterStyling;
|
|
34
32
|
}): void;
|
|
35
33
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TerraDrawCallbacks, TerraDrawAdapter, TerraDrawModeRegisterConfig, TerraDrawAdapterStyling, TerraDrawChanges } from "../common";
|
|
2
2
|
import mapboxgl from "mapbox-gl";
|
|
3
|
+
import { GeoJSONStoreFeatures } from "../store/store";
|
|
3
4
|
export declare class TerraDrawMapboxGLAdapter implements TerraDrawAdapter {
|
|
4
5
|
constructor(config: {
|
|
5
6
|
map: mapboxgl.Map;
|
|
@@ -31,6 +32,6 @@ export declare class TerraDrawMapboxGLAdapter implements TerraDrawAdapter {
|
|
|
31
32
|
register(callbacks: TerraDrawCallbacks): void;
|
|
32
33
|
unregister(): void;
|
|
33
34
|
render(changes: TerraDrawChanges, styling: {
|
|
34
|
-
[mode: string]: TerraDrawAdapterStyling;
|
|
35
|
+
[mode: string]: (feature: GeoJSONStoreFeatures) => TerraDrawAdapterStyling;
|
|
35
36
|
}): void;
|
|
36
37
|
}
|
package/dist/common.d.ts
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
import { StoreChangeHandler, GeoJSONStore, GeoJSONStoreFeatures } from "./store/store";
|
|
2
|
+
export declare type HexColor = `#${string}`;
|
|
2
3
|
export interface TerraDrawAdapterStyling {
|
|
3
|
-
pointColor:
|
|
4
|
+
pointColor: HexColor;
|
|
4
5
|
pointWidth: number;
|
|
5
|
-
pointOutlineColor:
|
|
6
|
-
|
|
6
|
+
pointOutlineColor: HexColor;
|
|
7
|
+
pointOutlineWidth: number;
|
|
8
|
+
polygonFillColor: HexColor;
|
|
7
9
|
polygonFillOpacity: number;
|
|
8
|
-
polygonOutlineColor:
|
|
10
|
+
polygonOutlineColor: HexColor;
|
|
9
11
|
polygonOutlineWidth: number;
|
|
10
12
|
lineStringWidth: number;
|
|
11
|
-
lineStringColor:
|
|
12
|
-
|
|
13
|
-
selectionPointWidth: number;
|
|
14
|
-
selectedPointOutlineColor: string;
|
|
15
|
-
midPointColor: string;
|
|
16
|
-
midPointWidth: number;
|
|
17
|
-
midPointOutlineColor: string;
|
|
18
|
-
closingPointColor: string;
|
|
19
|
-
closingPointOutlineColor: string;
|
|
20
|
-
closingPointWidth: number;
|
|
13
|
+
lineStringColor: HexColor;
|
|
14
|
+
zIndex: number;
|
|
21
15
|
}
|
|
22
16
|
export interface TerraDrawMouseEvent {
|
|
23
17
|
lng: number;
|
|
@@ -52,7 +46,8 @@ export interface TerraDrawModeRegisterConfig {
|
|
|
52
46
|
export declare type TerraDrawModeState = "unregistered" | "registered" | "started" | "stopped";
|
|
53
47
|
export interface TerraDrawMode {
|
|
54
48
|
mode: string;
|
|
55
|
-
|
|
49
|
+
styleFeature: (feature: GeoJSONStoreFeatures) => TerraDrawAdapterStyling;
|
|
50
|
+
styles: any;
|
|
56
51
|
state: TerraDrawModeState;
|
|
57
52
|
start: () => void;
|
|
58
53
|
stop: () => void;
|
|
@@ -80,6 +75,9 @@ export interface TerraDrawChanges {
|
|
|
80
75
|
unchanged: GeoJSONStoreFeatures[];
|
|
81
76
|
deletedIds: string[];
|
|
82
77
|
}
|
|
78
|
+
declare type TerraDrawStylingFunction = {
|
|
79
|
+
[mode: string]: (feature: GeoJSONStoreFeatures) => TerraDrawAdapterStyling;
|
|
80
|
+
};
|
|
83
81
|
export interface TerraDrawAdapter {
|
|
84
82
|
project: Project;
|
|
85
83
|
unproject: Unproject;
|
|
@@ -87,13 +85,14 @@ export interface TerraDrawAdapter {
|
|
|
87
85
|
getMapContainer: () => HTMLElement;
|
|
88
86
|
register(callbacks: TerraDrawCallbacks): void;
|
|
89
87
|
unregister(): void;
|
|
90
|
-
render(changes: TerraDrawChanges, styling:
|
|
91
|
-
[mode: string]: TerraDrawAdapterStyling;
|
|
92
|
-
}): void;
|
|
88
|
+
render(changes: TerraDrawChanges, styling: TerraDrawStylingFunction): void;
|
|
93
89
|
}
|
|
94
90
|
export declare const SELECT_PROPERTIES: {
|
|
95
91
|
readonly SELECTED: "selected";
|
|
96
92
|
readonly MID_POINT: "midPoint";
|
|
97
93
|
readonly SELECTION_POINT: "selectionPoint";
|
|
98
94
|
};
|
|
95
|
+
export declare const POLYGON_PROPERTIES: {
|
|
96
|
+
CLOSING_POINT: string;
|
|
97
|
+
};
|
|
99
98
|
export {};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
|
|
2
|
-
import {
|
|
3
|
-
import { GeoJSONStore } from "../store/store";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import { TerraDrawModeRegisterConfig, TerraDrawModeState } from "../common";
|
|
3
|
+
import { GeoJSONStore, GeoJSONStoreFeatures } from "../store/store";
|
|
4
|
+
declare type CustomStyling = Record<string, string | number>;
|
|
5
|
+
export declare abstract class TerraDrawBaseDrawMode<T extends CustomStyling> {
|
|
6
|
+
protected _state: TerraDrawModeState;
|
|
7
7
|
get state(): TerraDrawModeState;
|
|
8
8
|
set state(_: TerraDrawModeState);
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
protected _styles: Partial<T>;
|
|
10
|
+
get styles(): Partial<T>;
|
|
11
|
+
set styles(styling: Partial<T>);
|
|
11
12
|
protected behaviors: TerraDrawModeBehavior[];
|
|
12
13
|
protected pointerDistance: number;
|
|
13
14
|
protected coordinatePrecision: number;
|
|
@@ -18,7 +19,7 @@ export declare abstract class TerraDrawBaseDrawMode {
|
|
|
18
19
|
protected setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
19
20
|
protected registerBehaviors(behaviorConfig: BehaviorConfig): void;
|
|
20
21
|
constructor(options?: {
|
|
21
|
-
|
|
22
|
+
styles?: Partial<T>;
|
|
22
23
|
pointerDistance?: number;
|
|
23
24
|
coordinatePrecision?: number;
|
|
24
25
|
});
|
|
@@ -27,4 +28,6 @@ export declare abstract class TerraDrawBaseDrawMode {
|
|
|
27
28
|
register(config: TerraDrawModeRegisterConfig): void;
|
|
28
29
|
onDeselect(deselectedId: string): void;
|
|
29
30
|
onSelect(selectedId: string): void;
|
|
31
|
+
styleFeature(feature: GeoJSONStoreFeatures): void;
|
|
30
32
|
}
|
|
33
|
+
export {};
|
|
@@ -1,18 +1,27 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../../common";
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColor } from "../../common";
|
|
2
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
2
3
|
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
4
|
declare type TerraDrawCircleModeKeyEvents = {
|
|
4
5
|
cancel: KeyboardEvent["key"];
|
|
6
|
+
finish: KeyboardEvent["key"];
|
|
5
7
|
};
|
|
6
|
-
|
|
8
|
+
declare type FreehandPolygonStyling = {
|
|
9
|
+
fillColor: HexColor;
|
|
10
|
+
outlineColor: HexColor;
|
|
11
|
+
outlineWidth: number;
|
|
12
|
+
fillOpacity: number;
|
|
13
|
+
};
|
|
14
|
+
export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode<FreehandPolygonStyling> {
|
|
7
15
|
mode: string;
|
|
8
16
|
private center;
|
|
9
17
|
private clickCount;
|
|
10
18
|
private currentCircleId;
|
|
11
19
|
private keyEvents;
|
|
12
20
|
constructor(options?: {
|
|
13
|
-
|
|
21
|
+
styles?: Partial<FreehandPolygonStyling>;
|
|
14
22
|
keyEvents?: TerraDrawCircleModeKeyEvents;
|
|
15
23
|
});
|
|
24
|
+
private close;
|
|
16
25
|
start(): void;
|
|
17
26
|
stop(): void;
|
|
18
27
|
onClick(event: TerraDrawMouseEvent): void;
|
|
@@ -23,5 +32,6 @@ export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode {
|
|
|
23
32
|
onDrag(): void;
|
|
24
33
|
onDragEnd(): void;
|
|
25
34
|
cleanUp(): void;
|
|
35
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
26
36
|
}
|
|
27
37
|
export {};
|
|
@@ -1,20 +1,33 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../../common";
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColor } from "../../common";
|
|
2
2
|
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
3
4
|
declare type TerraDrawFreehandModeKeyEvents = {
|
|
4
5
|
cancel: KeyboardEvent["key"];
|
|
6
|
+
finish: KeyboardEvent["key"];
|
|
5
7
|
};
|
|
6
|
-
|
|
8
|
+
declare type FreehandPolygonStyling = {
|
|
9
|
+
fillColor: HexColor;
|
|
10
|
+
outlineColor: HexColor;
|
|
11
|
+
outlineWidth: number;
|
|
12
|
+
fillOpacity: number;
|
|
13
|
+
closingPointColor: HexColor;
|
|
14
|
+
closingPointWidth: number;
|
|
15
|
+
closingPointOutlineColor: HexColor;
|
|
16
|
+
closingPointOutlineWidth: number;
|
|
17
|
+
};
|
|
18
|
+
export declare class TerraDrawFreehandMode extends TerraDrawBaseDrawMode<FreehandPolygonStyling> {
|
|
7
19
|
mode: string;
|
|
8
20
|
private startingClick;
|
|
9
21
|
private currentId;
|
|
10
|
-
private
|
|
11
|
-
private
|
|
22
|
+
private closingPointId;
|
|
23
|
+
private minDistance;
|
|
12
24
|
private keyEvents;
|
|
13
25
|
constructor(options?: {
|
|
14
|
-
|
|
15
|
-
|
|
26
|
+
styles?: Partial<FreehandPolygonStyling>;
|
|
27
|
+
minDistance?: number;
|
|
16
28
|
keyEvents?: TerraDrawFreehandModeKeyEvents;
|
|
17
29
|
});
|
|
30
|
+
private close;
|
|
18
31
|
start(): void;
|
|
19
32
|
stop(): void;
|
|
20
33
|
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
@@ -25,5 +38,6 @@ export declare class TerraDrawFreehandMode extends TerraDrawBaseDrawMode {
|
|
|
25
38
|
onDrag(): void;
|
|
26
39
|
onDragEnd(): void;
|
|
27
40
|
cleanUp(): void;
|
|
41
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
28
42
|
}
|
|
29
43
|
export {};
|
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../../common";
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColor } from "../../common";
|
|
2
2
|
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
3
|
import { BehaviorConfig } from "../base.behavior";
|
|
4
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
4
5
|
declare type TerraDrawLineStringModeKeyEvents = {
|
|
5
6
|
cancel: KeyboardEvent["key"];
|
|
7
|
+
finish: KeyboardEvent["key"];
|
|
6
8
|
};
|
|
7
|
-
|
|
9
|
+
declare type LineStringStyling = {
|
|
10
|
+
lineStringWidth: number;
|
|
11
|
+
lineStringColor: HexColor;
|
|
12
|
+
closingPointColor: HexColor;
|
|
13
|
+
closingPointWidth: number;
|
|
14
|
+
closingPointOutlineColor: HexColor;
|
|
15
|
+
closingPointOutlineWidth: number;
|
|
16
|
+
};
|
|
17
|
+
export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineStringStyling> {
|
|
8
18
|
mode: string;
|
|
9
19
|
private currentCoordinate;
|
|
10
20
|
private currentId;
|
|
21
|
+
private closingPointId;
|
|
11
22
|
private allowSelfIntersections;
|
|
12
23
|
private keyEvents;
|
|
13
24
|
private snappingEnabled;
|
|
@@ -16,9 +27,10 @@ export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode {
|
|
|
16
27
|
snapping?: boolean;
|
|
17
28
|
allowSelfIntersections?: boolean;
|
|
18
29
|
pointerDistance?: number;
|
|
19
|
-
|
|
30
|
+
styles?: Partial<LineStringStyling>;
|
|
20
31
|
keyEvents?: TerraDrawLineStringModeKeyEvents;
|
|
21
32
|
});
|
|
33
|
+
private close;
|
|
22
34
|
registerBehaviors(config: BehaviorConfig): void;
|
|
23
35
|
start(): void;
|
|
24
36
|
stop(): void;
|
|
@@ -30,5 +42,6 @@ export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode {
|
|
|
30
42
|
onDrag(): void;
|
|
31
43
|
onDragEnd(): void;
|
|
32
44
|
cleanUp(): void;
|
|
45
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
33
46
|
}
|
|
34
47
|
export {};
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawAdapterStyling } from "../../common";
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, HexColor } from "../../common";
|
|
2
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
2
3
|
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
-
|
|
4
|
+
declare type PointModeStyling = {
|
|
5
|
+
pointWidth: number;
|
|
6
|
+
pointColor: HexColor;
|
|
7
|
+
pointOutlineColor: HexColor;
|
|
8
|
+
};
|
|
9
|
+
export declare class TerraDrawPointMode extends TerraDrawBaseDrawMode<PointModeStyling> {
|
|
4
10
|
mode: string;
|
|
5
11
|
constructor(options?: {
|
|
6
|
-
|
|
12
|
+
styles?: Partial<PointModeStyling>;
|
|
7
13
|
});
|
|
8
14
|
start(): void;
|
|
9
15
|
stop(): void;
|
|
@@ -15,4 +21,6 @@ export declare class TerraDrawPointMode extends TerraDrawBaseDrawMode {
|
|
|
15
21
|
onDragStart(): void;
|
|
16
22
|
onDrag(): void;
|
|
17
23
|
onDragEnd(): void;
|
|
24
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
18
25
|
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Position } from "geojson";
|
|
2
|
+
import { BehaviorConfig, TerraDrawModeBehavior } from "../../base.behavior";
|
|
3
|
+
import { TerraDrawMouseEvent } from "../../../common";
|
|
4
|
+
import { PixelDistanceBehavior } from "../../pixel-distance.behavior";
|
|
5
|
+
export declare class ClosingPointsBehavior extends TerraDrawModeBehavior {
|
|
6
|
+
readonly config: BehaviorConfig;
|
|
7
|
+
private readonly pixelDistance;
|
|
8
|
+
constructor(config: BehaviorConfig, pixelDistance: PixelDistanceBehavior);
|
|
9
|
+
private _startEndPoints;
|
|
10
|
+
get ids(): string[];
|
|
11
|
+
set ids(_: string[]);
|
|
12
|
+
create(selectedCoords: Position[], mode: string): void;
|
|
13
|
+
delete(): void;
|
|
14
|
+
update(updatedCoordinates: Position[]): void;
|
|
15
|
+
isClosingPoint(event: TerraDrawMouseEvent): {
|
|
16
|
+
isClosing: boolean;
|
|
17
|
+
isPreviousClosing: boolean;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent } from "../../common";
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColor } from "../../common";
|
|
2
2
|
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
3
|
import { BehaviorConfig } from "../base.behavior";
|
|
4
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
4
5
|
declare type TerraDrawPolygonModeKeyEvents = {
|
|
5
6
|
cancel: KeyboardEvent["key"];
|
|
7
|
+
finish: KeyboardEvent["key"];
|
|
6
8
|
};
|
|
7
|
-
|
|
9
|
+
declare type PolygonStyling = {
|
|
10
|
+
fillColor: HexColor;
|
|
11
|
+
outlineColor: HexColor;
|
|
12
|
+
outlineWidth: number;
|
|
13
|
+
fillOpacity: number;
|
|
14
|
+
closingPointWidth: number;
|
|
15
|
+
closingPointColor: HexColor;
|
|
16
|
+
closingPointOutlineWidth: number;
|
|
17
|
+
closingPointOutlineColor: HexColor;
|
|
18
|
+
};
|
|
19
|
+
export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode<PolygonStyling> {
|
|
8
20
|
mode: string;
|
|
9
21
|
private currentCoordinate;
|
|
10
22
|
private currentId;
|
|
@@ -14,14 +26,15 @@ export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode {
|
|
|
14
26
|
private isClosed;
|
|
15
27
|
private snapping;
|
|
16
28
|
private pixelDistance;
|
|
17
|
-
private
|
|
29
|
+
private closingPoints;
|
|
18
30
|
constructor(options?: {
|
|
19
31
|
allowSelfIntersections?: boolean;
|
|
20
32
|
snapping?: boolean;
|
|
21
|
-
styling?: Partial<TerraDrawAdapterStyling>;
|
|
22
33
|
pointerDistance?: number;
|
|
34
|
+
styles?: Partial<PolygonStyling>;
|
|
23
35
|
keyEvents?: TerraDrawPolygonModeKeyEvents;
|
|
24
36
|
});
|
|
37
|
+
private close;
|
|
25
38
|
registerBehaviors(config: BehaviorConfig): void;
|
|
26
39
|
start(): void;
|
|
27
40
|
stop(): void;
|
|
@@ -33,5 +46,6 @@ export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode {
|
|
|
33
46
|
onDrag(): void;
|
|
34
47
|
onDragEnd(): void;
|
|
35
48
|
cleanUp(): void;
|
|
49
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
36
50
|
}
|
|
37
51
|
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TerraDrawAdapterStyling } from "../../common";
|
|
2
|
+
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
|
+
import { BehaviorConfig } from "../base.behavior";
|
|
4
|
+
declare type RenderModeStylingExt<T extends TerraDrawAdapterStyling> = {};
|
|
5
|
+
declare type RenderModeStyling = RenderModeStylingExt<TerraDrawAdapterStyling>;
|
|
6
|
+
export declare class TerraDrawRenderMode extends TerraDrawBaseDrawMode<RenderModeStyling> {
|
|
7
|
+
mode: string;
|
|
8
|
+
constructor(options: {
|
|
9
|
+
styles: Partial<TerraDrawAdapterStyling>;
|
|
10
|
+
});
|
|
11
|
+
registerBehaviors(behaviorConfig: BehaviorConfig): void;
|
|
12
|
+
start(): void;
|
|
13
|
+
stop(): void;
|
|
14
|
+
onKeyUp(): void;
|
|
15
|
+
onKeyDown(): void;
|
|
16
|
+
onClick(): void;
|
|
17
|
+
onDragStart(): void;
|
|
18
|
+
onDrag(): void;
|
|
19
|
+
onDragEnd(): void;
|
|
20
|
+
onMouseMove(): void;
|
|
21
|
+
styleFeature(): TerraDrawAdapterStyling;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { TerraDrawMouseEvent, TerraDrawKeyboardEvent } from "../../common";
|
|
1
|
+
import { TerraDrawMouseEvent, TerraDrawKeyboardEvent, HexColor, TerraDrawAdapterStyling } from "../../common";
|
|
2
2
|
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
3
3
|
import { BehaviorConfig } from "../base.behavior";
|
|
4
|
+
import { GeoJSONStoreFeatures } from "../../store/store";
|
|
4
5
|
declare type TerraDrawSelectModeKeyEvents = {
|
|
5
6
|
deselect: KeyboardEvent["key"];
|
|
6
7
|
delete: KeyboardEvent["key"];
|
|
@@ -19,7 +20,20 @@ declare type ModeFlags = {
|
|
|
19
20
|
};
|
|
20
21
|
};
|
|
21
22
|
};
|
|
22
|
-
|
|
23
|
+
declare type SelectionStyling = {
|
|
24
|
+
selectedColor: HexColor;
|
|
25
|
+
selectedPointOutlineColor: HexColor;
|
|
26
|
+
selectPointOutlineWidth: number;
|
|
27
|
+
selectionPointWidth: number;
|
|
28
|
+
selectionPointColor: HexColor;
|
|
29
|
+
selectionPointOutlineColor: HexColor;
|
|
30
|
+
selectionPointOutlineWidth: number;
|
|
31
|
+
midPointColor: HexColor;
|
|
32
|
+
midPointOutlineColor: HexColor;
|
|
33
|
+
midPointWidth: number;
|
|
34
|
+
midPointOutlineWidth: number;
|
|
35
|
+
};
|
|
36
|
+
export declare class TerraDrawSelectMode extends TerraDrawBaseDrawMode<SelectionStyling> {
|
|
23
37
|
mode: string;
|
|
24
38
|
private dragEventThrottle;
|
|
25
39
|
private dragEventCount;
|
|
@@ -36,6 +50,7 @@ export declare class TerraDrawSelectMode extends TerraDrawBaseDrawMode {
|
|
|
36
50
|
private rotateFeature;
|
|
37
51
|
private scaleFeature;
|
|
38
52
|
constructor(options?: {
|
|
53
|
+
styles?: Partial<SelectionStyling>;
|
|
39
54
|
pointerDistance?: number;
|
|
40
55
|
flags?: {
|
|
41
56
|
[mode: string]: ModeFlags;
|
|
@@ -58,5 +73,6 @@ export declare class TerraDrawSelectMode extends TerraDrawBaseDrawMode {
|
|
|
58
73
|
onDrag(event: TerraDrawMouseEvent): void;
|
|
59
74
|
onDragEnd(_: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
|
|
60
75
|
onMouseMove(event: TerraDrawMouseEvent): void;
|
|
76
|
+
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
|
|
61
77
|
}
|
|
62
78
|
export {};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { TerraDrawAdapterStyling } from "../../common";
|
|
1
2
|
import { TerraDrawBaseDrawMode } from "../base.mode";
|
|
2
|
-
|
|
3
|
+
declare type StaticModeStylingExt<T extends TerraDrawAdapterStyling> = {};
|
|
4
|
+
declare type StaticModeStyling = StaticModeStylingExt<TerraDrawAdapterStyling>;
|
|
5
|
+
export declare class TerraDrawStaticMode extends TerraDrawBaseDrawMode<StaticModeStyling> {
|
|
3
6
|
mode: string;
|
|
4
7
|
start(): void;
|
|
5
8
|
stop(): void;
|
|
@@ -10,4 +13,18 @@ export declare class TerraDrawStaticMode extends TerraDrawBaseDrawMode {
|
|
|
10
13
|
onDrag(): void;
|
|
11
14
|
onDragEnd(): void;
|
|
12
15
|
onMouseMove(): void;
|
|
16
|
+
styleFeature(): {
|
|
17
|
+
pointColor: `#${string}`;
|
|
18
|
+
pointWidth: number;
|
|
19
|
+
pointOutlineColor: `#${string}`;
|
|
20
|
+
pointOutlineWidth: number;
|
|
21
|
+
polygonFillColor: `#${string}`;
|
|
22
|
+
polygonFillOpacity: number;
|
|
23
|
+
polygonOutlineColor: `#${string}`;
|
|
24
|
+
polygonOutlineWidth: number;
|
|
25
|
+
lineStringWidth: number;
|
|
26
|
+
lineStringColor: `#${string}`;
|
|
27
|
+
zIndex: number;
|
|
28
|
+
};
|
|
13
29
|
}
|
|
30
|
+
export {};
|