terra-draw 1.0.0-beta.9 → 1.1.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/.versionrc.cjs +9 -0
- package/README.md +12 -26
- package/dist/common/adapter-listener.spec.d.ts +1 -0
- package/dist/{adapters/common → common}/base.adapter.d.ts +1 -1
- package/dist/common.d.ts +8 -5
- package/dist/extend.d.ts +4 -3
- package/dist/geometry/boolean/is-valid-coordinate.spec.d.ts +1 -0
- package/dist/geometry/boolean/point-in-polygon.spec.d.ts +1 -0
- package/dist/geometry/boolean/self-intersects.spec.d.ts +1 -0
- package/dist/geometry/calculate-relative-angle.d.ts +2 -10
- package/dist/geometry/calculate-relative-angle.spec.d.ts +1 -0
- package/dist/geometry/centroid.spec.d.ts +1 -0
- package/dist/geometry/clockwise.d.ts +2 -10
- package/dist/geometry/clockwise.spec.d.ts +1 -0
- package/dist/geometry/coordinates-identical.spec.d.ts +1 -0
- package/dist/geometry/determine-halfplane.d.ts +2 -10
- package/dist/geometry/determine-halfplane.spec.d.ts +1 -0
- package/dist/geometry/get-coordinates-as-points.spec.d.ts +1 -0
- package/dist/geometry/get-midpoint.spec.d.ts +1 -0
- package/dist/geometry/limit-decimal-precision.spec.d.ts +1 -0
- package/dist/geometry/measure/bearing.d.ts +2 -7
- package/dist/geometry/measure/bearing.spec.d.ts +1 -0
- package/dist/geometry/measure/desination.spec.d.ts +1 -0
- package/dist/geometry/measure/destination.d.ts +2 -7
- package/dist/geometry/measure/haversine-distance.spec.d.ts +1 -0
- package/dist/geometry/measure/pixel-distance-to-line.d.ts +2 -10
- package/dist/geometry/measure/pixel-distance-to-line.spec.d.ts +1 -0
- package/dist/geometry/measure/pixel-distance.d.ts +2 -7
- package/dist/geometry/measure/pixel-distance.spec.d.ts +1 -0
- package/dist/geometry/measure/rhumb-bearing.spec.d.ts +1 -0
- package/dist/geometry/measure/rhumb-destination.spec.d.ts +1 -0
- package/dist/geometry/measure/rhumb-distance.spec.d.ts +1 -0
- package/dist/geometry/point-on-line.d.ts +6 -0
- package/dist/geometry/point-on-line.spec.d.ts +1 -0
- package/dist/geometry/project/web-mercator.d.ts +2 -4
- package/dist/geometry/project/web-mercator.spec.d.ts +1 -0
- package/dist/geometry/shape/create-bbox.spec.d.ts +1 -0
- package/dist/geometry/shape/create-circle.spec.d.ts +1 -0
- package/dist/geometry/shape/great-circle-coordinates.spec.d.ts +1 -0
- package/dist/geometry/shape/web-mercator-distortion.spec.d.ts +1 -0
- package/dist/geometry/transform/rotate.spec.d.ts +1 -0
- package/dist/geometry/transform/scale.spec.d.ts +1 -0
- package/dist/geometry/web-mercator-centroid.d.ts +2 -4
- package/dist/geometry/web-mercator-centroid.spec.d.ts +1 -0
- package/dist/geometry/web-mercator-point-on-line.d.ts +12 -0
- package/dist/geometry/web-mercator-point-on-line.spec.d.ts +1 -0
- package/dist/modes/angled-rectangle/angled-rectangle.mode.d.ts +0 -1
- package/dist/modes/angled-rectangle/angled-rectangle.mode.spec.d.ts +1 -0
- package/dist/modes/circle/circle.mode.spec.d.ts +1 -0
- package/dist/modes/click-bounding-box.behavior.spec.d.ts +1 -0
- package/dist/modes/coordinate-snapping.behavior.d.ts +21 -0
- package/dist/modes/coordinate-snapping.behavior.spec.d.ts +1 -0
- package/dist/modes/freehand/freehand.mode.spec.d.ts +1 -0
- package/dist/modes/insert-coordinates.behavior.spec.d.ts +1 -0
- package/dist/modes/{snapping.behavior.d.ts → line-snapping.behavior.d.ts} +8 -3
- package/dist/modes/line-snapping.behavior.spec.d.ts +1 -0
- package/dist/modes/linestring/linestring.mode.d.ts +14 -3
- package/dist/modes/linestring/linestring.mode.spec.d.ts +1 -0
- package/dist/modes/pixel-distance.behavior.spec.d.ts +1 -0
- package/dist/modes/point/point.mode.d.ts +16 -4
- package/dist/modes/point/point.mode.spec.d.ts +1 -0
- package/dist/modes/polygon/behaviors/closing-points.behavior.spec.d.ts +1 -0
- package/dist/modes/polygon/polygon.mode.d.ts +32 -6
- package/dist/modes/polygon/polygon.mode.spec.d.ts +1 -0
- package/dist/modes/rectangle/rectangle.mode.spec.d.ts +1 -0
- package/dist/modes/render/render.mode.spec.d.ts +1 -0
- package/dist/modes/sector/sector.mode.spec.d.ts +1 -0
- package/dist/modes/select/behaviors/drag-coordinate-resize.behavior.spec.d.ts +1 -0
- package/dist/modes/select/behaviors/drag-coordinate.behavior.spec.d.ts +1 -0
- package/dist/modes/select/behaviors/drag-feature.behavior.spec.d.ts +1 -0
- package/dist/modes/select/behaviors/feature-at-pointer-event.behavior.spec.d.ts +1 -0
- package/dist/modes/select/behaviors/midpoint.behavior.spec.d.ts +1 -0
- package/dist/modes/select/behaviors/rotate-feature.behavior.spec.d.ts +1 -0
- package/dist/modes/select/behaviors/scale-feature.behavior.spec.d.ts +1 -0
- package/dist/modes/select/behaviors/selection-point.behavior.spec.d.ts +1 -0
- package/dist/modes/select/select.mode.spec.d.ts +1 -0
- package/dist/modes/sensor/sensor.mode.spec.d.ts +1 -0
- package/dist/modes/static/static.mode.spec.d.ts +1 -0
- package/dist/store/spatial-index/quickselect.spec.d.ts +1 -0
- package/dist/store/spatial-index/rbush.spec.d.ts +1 -0
- package/dist/store/spatial-index/spatial-index.spec.d.ts +1 -0
- package/dist/store/store-validation.spec.d.ts +1 -0
- package/dist/store/store.spec.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 +9 -46
- package/dist/terra-draw.extensions.spec.d.ts +28 -0
- 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.spec.d.ts +1 -0
- package/dist/terra-draw.umd.js +1 -1
- package/dist/terra-draw.umd.js.map +1 -1
- package/dist/test/create-store-features.d.ts +6 -0
- package/dist/test/mock-behavior-config.d.ts +2 -0
- package/dist/test/mock-cursor-event.d.ts +6 -0
- package/dist/test/mock-features.d.ts +4 -0
- package/dist/test/mock-keyboard-event.d.ts +5 -0
- package/dist/test/mock-mode-config.d.ts +21 -0
- package/dist/util/geom.spec.d.ts +1 -0
- package/dist/util/id.spec.d.ts +1 -0
- package/dist/util/styling.spec.d.ts +1 -0
- package/dist/validations/linestring.validation.spec.d.ts +1 -0
- package/dist/validations/max-size.validation.spec.d.ts +1 -0
- package/dist/validations/min-size.validation.spec.d.ts +1 -0
- package/dist/validations/not-self-intersecting.validation.spec.d.ts +1 -0
- package/dist/validations/point.validation.spec.d.ts +1 -0
- package/dist/validations/polygon.validation.spec.d.ts +1 -0
- package/jest.nocheck.config.ts +5 -14
- package/package.json +8 -119
- package/tsconfig.json +6 -25
- package/.devcontainer/Dockerfile +0 -8
- package/.devcontainer/devcontainer.json +0 -27
- package/.devcontainer/post-create.sh +0 -16
- package/LICENSE +0 -8
- package/dist/adapters/arcgis-maps-sdk.adapter.d.ts +0 -106
- package/dist/adapters/google-maps.adapter.d.ts +0 -90
- package/dist/adapters/leaflet.adapter.d.ts +0 -99
- package/dist/adapters/mapbox-gl.adapter.d.ts +0 -90
- package/dist/adapters/maplibre-gl.adapter.d.ts +0 -72
- package/dist/adapters/openlayers.adapter.d.ts +0 -121
- package/e2e/README.md +0 -29
- package/e2e/package-lock.json +0 -4275
- package/e2e/package.json +0 -26
- package/e2e/playwright.config.ts +0 -77
- package/e2e/public/favicon.ico +0 -0
- package/e2e/public/index.html +0 -55
- package/e2e/tests/leaflet.spec.ts +0 -1040
- package/e2e/tests/setup.ts +0 -208
- package/e2e/webpack.config.js +0 -36
- package/eslint.config.js +0 -31
- /package/dist/{adapters/common → common}/adapter-listener.d.ts +0 -0
package/dist/terra-draw.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { TerraDrawMapLibreGLAdapter } from "./adapters/maplibre-gl.adapter";
|
|
5
|
-
import { TerraDrawOpenLayersAdapter } from "./adapters/openlayers.adapter";
|
|
6
|
-
import { TerraDrawArcGISMapsSDKAdapter } from "./adapters/arcgis-maps-sdk.adapter";
|
|
1
|
+
/**
|
|
2
|
+
* @module terra-draw
|
|
3
|
+
*/
|
|
7
4
|
import { TerraDrawAdapter, TerraDrawAdapterStyling, GetLngLatFromEvent, Project, SetCursor, TerraDrawChanges, TerraDrawStylingFunction, Unproject, HexColor, TerraDrawKeyboardEvent, TerraDrawMouseEvent, OnFinishContext } from "./common";
|
|
8
5
|
import { TerraDrawBaseDrawMode } from "./modes/base.mode";
|
|
9
6
|
import { TerraDrawCircleMode } from "./modes/circle/circle.mode";
|
|
@@ -14,7 +11,7 @@ import { TerraDrawPolygonMode } from "./modes/polygon/polygon.mode";
|
|
|
14
11
|
import { TerraDrawRectangleMode } from "./modes/rectangle/rectangle.mode";
|
|
15
12
|
import { TerraDrawRenderMode } from "./modes/render/render.mode";
|
|
16
13
|
import { TerraDrawSelectMode } from "./modes/select/select.mode";
|
|
17
|
-
import { FeatureId, GeoJSONStoreFeatures, IdStrategy, StoreValidation } from "./store/store";
|
|
14
|
+
import { FeatureId, GeoJSONStoreFeatures, GeoJSONStoreGeometries, IdStrategy, StoreValidation } from "./store/store";
|
|
18
15
|
import { BehaviorConfig } from "./modes/base.behavior";
|
|
19
16
|
import { ValidateMinAreaSquareMeters } from "./validations/min-size.validation";
|
|
20
17
|
import { ValidateMaxAreaSquareMeters } from "./validations/max-size.validation";
|
|
@@ -60,23 +57,17 @@ declare class TerraDraw {
|
|
|
60
57
|
* @param mode - The mode you wish to set a style for
|
|
61
58
|
* @param styles - The styles you wish to set for the mode - this is
|
|
62
59
|
* the same as the initialisation style schema
|
|
63
|
-
*
|
|
64
|
-
* @beta
|
|
65
60
|
*/
|
|
66
61
|
setModeStyles<Styling extends Record<string, number | HexColor>>(mode: string, styles: Styling): void;
|
|
67
62
|
/**
|
|
68
63
|
* Allows the user to get a snapshot (copy) of all given features
|
|
69
64
|
*
|
|
70
65
|
* @returns An array of all given Feature Geometries in the instances store
|
|
71
|
-
*
|
|
72
|
-
* @beta
|
|
73
66
|
*/
|
|
74
67
|
getSnapshot(): GeoJSONStoreFeatures[];
|
|
75
68
|
/**
|
|
76
69
|
* Removes all data from the current store and removes any rendered layers
|
|
77
70
|
* via the registering the adapter.
|
|
78
|
-
*
|
|
79
|
-
* @beta
|
|
80
71
|
*/
|
|
81
72
|
clear(): void;
|
|
82
73
|
/**
|
|
@@ -86,37 +77,27 @@ declare class TerraDraw {
|
|
|
86
77
|
*
|
|
87
78
|
* @return true or false depending on if the instance is stopped or started
|
|
88
79
|
* @readonly
|
|
89
|
-
* @beta
|
|
90
80
|
*/
|
|
91
81
|
get enabled(): boolean;
|
|
92
82
|
/**
|
|
93
83
|
* enabled is a read only property and will throw and error if you try and set it.
|
|
94
|
-
*
|
|
95
|
-
* @beta
|
|
96
84
|
*/
|
|
97
85
|
set enabled(_: boolean);
|
|
98
86
|
/**
|
|
99
87
|
* A method for getting the current mode name
|
|
100
|
-
*
|
|
101
88
|
* @return the current mode name
|
|
102
|
-
*
|
|
103
|
-
* @beta
|
|
104
89
|
*/
|
|
105
90
|
getMode(): string;
|
|
106
91
|
/**
|
|
107
92
|
* A method for setting the current mode by name. Under the hood this will stop
|
|
108
93
|
* the previous mode and start the new one.
|
|
109
94
|
* @param mode - The mode name you wish to start
|
|
110
|
-
*
|
|
111
|
-
* @beta
|
|
112
95
|
*/
|
|
113
96
|
setMode(mode: string): void;
|
|
114
97
|
/**
|
|
115
98
|
* A method for removing features to the store
|
|
116
99
|
* @param ids
|
|
117
100
|
* @returns
|
|
118
|
-
*
|
|
119
|
-
* @beta
|
|
120
101
|
*/
|
|
121
102
|
removeFeatures(ids: FeatureId[]): void;
|
|
122
103
|
/**
|
|
@@ -124,7 +105,6 @@ declare class TerraDraw {
|
|
|
124
105
|
* If not select mode is provided in the instance, an error will be thrown. If the instance is not currently
|
|
125
106
|
* in the select mode, it will switch to it.
|
|
126
107
|
* @param id - the id of the feature to select
|
|
127
|
-
* @beta
|
|
128
108
|
*/
|
|
129
109
|
selectFeature(id: FeatureId): void;
|
|
130
110
|
/**
|
|
@@ -132,7 +112,6 @@ declare class TerraDraw {
|
|
|
132
112
|
* If not select mode is provided in the instance, an error will be thrown. If the instance is not currently
|
|
133
113
|
* in the select mode, it will switch to it.
|
|
134
114
|
* @param id - the id of the feature to deselect
|
|
135
|
-
* @beta
|
|
136
115
|
*/
|
|
137
116
|
deselectFeature(id: FeatureId): void;
|
|
138
117
|
/**
|
|
@@ -141,14 +120,11 @@ declare class TerraDraw {
|
|
|
141
120
|
* outside of the Terra Draw instance but want to add them in to the store.
|
|
142
121
|
* @returns a id, either number of string based on whatever the configured idStrategy is
|
|
143
122
|
*
|
|
144
|
-
* @beta
|
|
145
123
|
*/
|
|
146
124
|
getFeatureId(): FeatureId;
|
|
147
125
|
/**
|
|
148
126
|
* Returns true or false depending on if the Terra Draw instance has a feature with a given id
|
|
149
127
|
* @returns a boolean determining if the instance has a feature with the given id
|
|
150
|
-
*
|
|
151
|
-
* @beta
|
|
152
128
|
*/
|
|
153
129
|
hasFeature(id: FeatureId): boolean;
|
|
154
130
|
/**
|
|
@@ -157,23 +133,17 @@ declare class TerraDraw {
|
|
|
157
133
|
* in the instance.
|
|
158
134
|
* @param features - an array of GeoJSON features
|
|
159
135
|
* @returns an array of validation results
|
|
160
|
-
*
|
|
161
|
-
* @beta
|
|
162
136
|
*/
|
|
163
137
|
addFeatures(features: GeoJSONStoreFeatures[]): StoreValidation[];
|
|
164
138
|
/**
|
|
165
139
|
* A method starting Terra Draw. It put the instance into a started state, and
|
|
166
140
|
* in registers the passed adapter giving it all the callbacks required to operate.
|
|
167
|
-
*
|
|
168
|
-
* @beta
|
|
169
141
|
*/
|
|
170
142
|
start(): void;
|
|
171
143
|
/**
|
|
172
144
|
* Gets the features at a given longitude and latitude.
|
|
173
145
|
* Will return point and linestrings that are a given pixel distance
|
|
174
146
|
* away from the lng/lat and any polygons which contain it.
|
|
175
|
-
*
|
|
176
|
-
* @beta
|
|
177
147
|
*/
|
|
178
148
|
getFeaturesAtLngLat(lngLat: {
|
|
179
149
|
lng: number;
|
|
@@ -183,21 +153,16 @@ declare class TerraDraw {
|
|
|
183
153
|
ignoreSelectFeatures: boolean;
|
|
184
154
|
}): GeoJSONStoreFeatures[];
|
|
185
155
|
/**
|
|
186
|
-
* Takes a given pointer event and
|
|
187
|
-
*
|
|
188
|
-
* away from the lng/lat and any polygons which contain it.
|
|
189
|
-
*
|
|
190
|
-
* @beta
|
|
156
|
+
* Takes a given pointer event and will return point and linestrings that are
|
|
157
|
+
* a given pixel distance away from the longitude/latitude, and any polygons which contain it.
|
|
191
158
|
*/
|
|
192
159
|
getFeaturesAtPointerEvent(event: PointerEvent | MouseEvent, options?: {
|
|
193
|
-
pointerDistance
|
|
194
|
-
ignoreSelectFeatures
|
|
160
|
+
pointerDistance?: number;
|
|
161
|
+
ignoreSelectFeatures?: boolean;
|
|
195
162
|
}): GeoJSONStoreFeatures[];
|
|
196
163
|
/**
|
|
197
164
|
* A method for stopping Terra Draw. Will clear the store, deregister the adapter and
|
|
198
165
|
* remove any rendered layers in the process.
|
|
199
|
-
*
|
|
200
|
-
* @beta
|
|
201
166
|
*/
|
|
202
167
|
stop(): void;
|
|
203
168
|
/**
|
|
@@ -206,7 +171,6 @@ declare class TerraDraw {
|
|
|
206
171
|
* @param event - The name of the event you wish to listen for
|
|
207
172
|
* @param callback - The callback with you wish to be called when this event occurs
|
|
208
173
|
*
|
|
209
|
-
* @beta
|
|
210
174
|
*/
|
|
211
175
|
on<T extends TerraDrawEvents>(event: T, callback: TerraDrawEventListeners[T]): void;
|
|
212
176
|
/**
|
|
@@ -215,8 +179,7 @@ declare class TerraDraw {
|
|
|
215
179
|
* @param event - The name of the event you wish to unregister
|
|
216
180
|
* @param callback - The callback you originally provided to the 'on' method
|
|
217
181
|
*
|
|
218
|
-
* @beta
|
|
219
182
|
*/
|
|
220
183
|
off<T extends TerraDrawEvents>(event: TerraDrawEvents, callback: TerraDrawEventListeners[T]): void;
|
|
221
184
|
}
|
|
222
|
-
export { TerraDraw, TerraDrawSelectMode, TerraDrawPointMode, TerraDrawLineStringMode, TerraDrawPolygonMode, TerraDrawCircleMode, TerraDrawFreehandMode, TerraDrawRenderMode, TerraDrawRectangleMode, TerraDrawAngledRectangleMode, TerraDrawSectorMode, TerraDrawSensorMode,
|
|
185
|
+
export { TerraDraw, TerraDrawSelectMode, TerraDrawPointMode, TerraDrawLineStringMode, TerraDrawPolygonMode, TerraDrawCircleMode, TerraDrawFreehandMode, TerraDrawRenderMode, TerraDrawRectangleMode, TerraDrawAngledRectangleMode, TerraDrawSectorMode, TerraDrawSensorMode, TerraDrawExtend, BehaviorConfig, GeoJSONStoreFeatures, GeoJSONStoreGeometries, HexColor, TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, TerraDrawChanges, TerraDrawStylingFunction, Project, Unproject, SetCursor, GetLngLatFromEvent, ValidateMinAreaSquareMeters, ValidateMaxAreaSquareMeters, ValidateNotSelfIntersecting, ValidationReasons, };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* For this specific test suite we should only ever import from the Terra Draw
|
|
3
|
+
* public API, and not from the internal library code. This is to ensure that
|
|
4
|
+
* a developer can write a custom adapter exclusively from the publicly exposed base
|
|
5
|
+
* classes and types of the library.
|
|
6
|
+
*/
|
|
7
|
+
import { GetLngLatFromEvent, Project, SetCursor, TerraDrawChanges, TerraDrawExtend, TerraDrawStylingFunction, Unproject } from "./terra-draw";
|
|
8
|
+
declare const TerraDrawBaseAdapter: typeof TerraDrawExtend.TerraDrawBaseAdapter;
|
|
9
|
+
/**
|
|
10
|
+
* A mock implementation of a custom adapter - this is to ensure that it is possible to write
|
|
11
|
+
* custom adapters for Terra Draw exclusively relying on the public API of the library.
|
|
12
|
+
*/
|
|
13
|
+
export declare class TerraDrawTestAdapter extends TerraDrawBaseAdapter {
|
|
14
|
+
constructor(config: {
|
|
15
|
+
lib: Record<string, unknown>;
|
|
16
|
+
} & TerraDrawExtend.BaseAdapterConfig);
|
|
17
|
+
getMapEventElement(): HTMLElement;
|
|
18
|
+
clear(): void;
|
|
19
|
+
project(lng: number, lat: number): ReturnType<Project>;
|
|
20
|
+
unproject(x: number, y: number): ReturnType<Unproject>;
|
|
21
|
+
setCursor(_: "move" | "unset" | "grab" | "grabbing" | "crosshair" | "pointer" | "wait"): ReturnType<SetCursor>;
|
|
22
|
+
getLngLatFromEvent(_: PointerEvent | MouseEvent): ReturnType<GetLngLatFromEvent>;
|
|
23
|
+
setDraggability(_: boolean): void;
|
|
24
|
+
setDoubleClickToZoom(_: boolean): void;
|
|
25
|
+
render(_1: TerraDrawChanges, _2: TerraDrawStylingFunction): void;
|
|
26
|
+
register(callbacks: TerraDrawExtend.TerraDrawCallbacks): void;
|
|
27
|
+
}
|
|
28
|
+
export {};
|