terra-draw 0.0.1-alpha.20 → 0.0.1-alpha.22
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 +19 -0
- package/dist/adapters/common/base-adapter.d.ts +31 -0
- package/dist/adapters/leaflet.adapter.d.ts +17 -12
- package/dist/common.d.ts +5 -5
- package/dist/modes/base.mode.d.ts +1 -0
- package/dist/modes/point/point.mode.d.ts +1 -0
- package/dist/terra-draw.cjs +1 -1
- package/dist/terra-draw.cjs.map +1 -1
- 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 +1 -1
- package/scratch/release.sh +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
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
4
|
|
|
5
|
+
### [0.0.1-alpha.22](https://github.com/JamesLMilner/terra-draw/compare/v0.0.1-alpha.21...v0.0.1-alpha.22) (2023-03-26)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add custom event pointer event handling system, use in leaflet adapter ([68c551b](https://github.com/JamesLMilner/terra-draw/commit/68c551bf99f0ca37053456a3815cee8fad0c1108))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Chore
|
|
14
|
+
|
|
15
|
+
* update docs ([a8a91c3](https://github.com/JamesLMilner/terra-draw/commit/a8a91c39a899b5715d74875da63735360b9129f8))
|
|
16
|
+
|
|
17
|
+
### [0.0.1-alpha.21](https://github.com/JamesLMilner/terra-draw/compare/v0.0.1-alpha.20...v0.0.1-alpha.21) (2023-03-24)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* remove scratch folder ([6c671d6](https://github.com/JamesLMilner/terra-draw/commit/6c671d67ac9fec88e00774095beeb0d17738b563))
|
|
23
|
+
|
|
5
24
|
### [0.0.1-alpha.20](https://github.com/JamesLMilner/terra-draw/compare/v0.0.1-alpha.19...v0.0.1-alpha.20) (2023-03-24)
|
|
6
25
|
|
|
7
26
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Project, Unproject, TerraDrawCallbacks, TerraDrawChanges, TerraDrawMouseEvent, SetCursor, TerraDrawStylingFunction } from "../../common";
|
|
2
|
+
import { AdapterListener } from "./adapter-listener";
|
|
3
|
+
export declare abstract class TerraDrawAdapterBase {
|
|
4
|
+
constructor(config: {
|
|
5
|
+
coordinatePrecision?: number;
|
|
6
|
+
minPixelDragDistance?: number;
|
|
7
|
+
});
|
|
8
|
+
protected dragConter: number;
|
|
9
|
+
protected _minPixelDragDistance: number;
|
|
10
|
+
protected _lastDrawEvent: TerraDrawMouseEvent | undefined;
|
|
11
|
+
protected _coordinatePrecision: number;
|
|
12
|
+
protected _heldKeys: Set<string>;
|
|
13
|
+
protected listeners: AdapterListener[];
|
|
14
|
+
protected dragState: "not-dragging" | "pre-dragging" | "dragging";
|
|
15
|
+
protected currentModeCallbacks: TerraDrawCallbacks | undefined;
|
|
16
|
+
protected getButton(event: PointerEvent): "neither" | "left" | "middle" | "right";
|
|
17
|
+
protected getDrawEventFromPointerEvent(event: PointerEvent): TerraDrawMouseEvent;
|
|
18
|
+
abstract project(...args: Parameters<Project>): ReturnType<Project>;
|
|
19
|
+
abstract unproject(...args: Parameters<Unproject>): ReturnType<Unproject>;
|
|
20
|
+
abstract setCursor(...args: Parameters<SetCursor>): ReturnType<SetCursor>;
|
|
21
|
+
abstract getLngLatFromPointerEvent(event: PointerEvent): {
|
|
22
|
+
lng: number;
|
|
23
|
+
lat: number;
|
|
24
|
+
};
|
|
25
|
+
abstract setDraggability(enabled: boolean): void;
|
|
26
|
+
abstract setDoubleClickToZoom(enabled: boolean): void;
|
|
27
|
+
abstract getMapContainer(): HTMLElement;
|
|
28
|
+
abstract register(callbacks: TerraDrawCallbacks): void;
|
|
29
|
+
abstract unregister(): void;
|
|
30
|
+
abstract render(changes: TerraDrawChanges, styling: TerraDrawStylingFunction): void;
|
|
31
|
+
}
|
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
import { TerraDrawCallbacks,
|
|
1
|
+
import { TerraDrawCallbacks, TerraDrawAdapterStyling, TerraDrawChanges, SetCursor } from "../common";
|
|
2
2
|
import L from "leaflet";
|
|
3
3
|
import { GeoJSONStoreFeatures } from "../store/store";
|
|
4
|
-
|
|
4
|
+
import { TerraDrawAdapterBase } from "./common/base-adapter";
|
|
5
|
+
export declare class TerraDrawLeafletAdapter extends TerraDrawAdapterBase {
|
|
5
6
|
constructor(config: {
|
|
6
7
|
lib: typeof L;
|
|
7
8
|
map: L.Map;
|
|
8
9
|
coordinatePrecision?: number;
|
|
10
|
+
minPixelDragDistance?: number;
|
|
9
11
|
});
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
getLngLatFromPointerEvent(event: PointerEvent): L.LatLng;
|
|
13
|
+
getMapContainer(): HTMLElement;
|
|
14
|
+
setDraggability(enabled: boolean): void;
|
|
15
|
+
unproject(x: number, y: number): {
|
|
16
|
+
lng: number;
|
|
17
|
+
lat: number;
|
|
18
|
+
};
|
|
19
|
+
setCursor(cursor: Parameters<SetCursor>[0]): void;
|
|
20
|
+
setDoubleClickToZoom(enabled: boolean): void;
|
|
21
|
+
project(lng: number, lat: number): {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
};
|
|
12
25
|
private _lib;
|
|
13
|
-
private _coordinatePrecision;
|
|
14
26
|
private _map;
|
|
15
27
|
private _layer;
|
|
16
28
|
private _panes;
|
|
17
|
-
private dragState;
|
|
18
|
-
private currentModeCallbacks;
|
|
19
|
-
setDoubleClickToZoom: TerraDrawModeRegisterConfig["setDoubleClickToZoom"];
|
|
20
|
-
project: TerraDrawModeRegisterConfig["project"];
|
|
21
|
-
unproject: TerraDrawModeRegisterConfig["unproject"];
|
|
22
|
-
setCursor: TerraDrawModeRegisterConfig["setCursor"];
|
|
23
|
-
getMapContainer: () => HTMLElement;
|
|
24
29
|
private createPaneStyleSheet;
|
|
25
30
|
register(callbacks: TerraDrawCallbacks): void;
|
|
26
31
|
unregister(): void;
|
package/dist/common.d.ts
CHANGED
|
@@ -18,13 +18,13 @@ export interface TerraDrawMouseEvent {
|
|
|
18
18
|
lat: number;
|
|
19
19
|
containerX: number;
|
|
20
20
|
containerY: number;
|
|
21
|
-
button: "left" | "
|
|
21
|
+
button: "neither" | "left" | "middle" | "right";
|
|
22
22
|
heldKeys: string[];
|
|
23
23
|
}
|
|
24
24
|
export interface TerraDrawKeyboardEvent {
|
|
25
25
|
key: string;
|
|
26
26
|
}
|
|
27
|
-
type SetCursor = (cursor: "unset" | "grab" | "grabbing" | "crosshair" | "pointer") => void;
|
|
27
|
+
export type SetCursor = (cursor: "unset" | "grab" | "grabbing" | "crosshair" | "pointer") => void;
|
|
28
28
|
export type Project = (lng: number, lat: number) => {
|
|
29
29
|
x: number;
|
|
30
30
|
y: number;
|
|
@@ -44,7 +44,7 @@ export interface TerraDrawModeRegisterConfig {
|
|
|
44
44
|
project: Project;
|
|
45
45
|
unproject: Unproject;
|
|
46
46
|
}
|
|
47
|
-
export type TerraDrawModeState = "unregistered" | "registered" | "started" | "stopped";
|
|
47
|
+
export type TerraDrawModeState = "unregistered" | "registered" | "started" | "drawing" | "selected" | "stopped";
|
|
48
48
|
export interface TerraDrawMode {
|
|
49
49
|
mode: string;
|
|
50
50
|
styleFeature: (feature: GeoJSONStoreFeatures) => TerraDrawAdapterStyling;
|
|
@@ -62,6 +62,7 @@ export interface TerraDrawMode {
|
|
|
62
62
|
onDragEnd: (event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void) => void;
|
|
63
63
|
}
|
|
64
64
|
export interface TerraDrawCallbacks {
|
|
65
|
+
getState: () => TerraDrawModeState;
|
|
65
66
|
onKeyUp: (event: TerraDrawKeyboardEvent) => void;
|
|
66
67
|
onKeyDown: (event: TerraDrawKeyboardEvent) => void;
|
|
67
68
|
onClick: (event: TerraDrawMouseEvent) => void;
|
|
@@ -76,7 +77,7 @@ export interface TerraDrawChanges {
|
|
|
76
77
|
unchanged: GeoJSONStoreFeatures[];
|
|
77
78
|
deletedIds: string[];
|
|
78
79
|
}
|
|
79
|
-
type TerraDrawStylingFunction = {
|
|
80
|
+
export type TerraDrawStylingFunction = {
|
|
80
81
|
[mode: string]: (feature: GeoJSONStoreFeatures) => TerraDrawAdapterStyling;
|
|
81
82
|
};
|
|
82
83
|
export interface TerraDrawAdapter {
|
|
@@ -97,4 +98,3 @@ export declare const SELECT_PROPERTIES: {
|
|
|
97
98
|
export declare const POLYGON_PROPERTIES: {
|
|
98
99
|
CLOSING_POINT: string;
|
|
99
100
|
};
|
|
100
|
-
export {};
|
|
@@ -24,6 +24,7 @@ export declare abstract class TerraDrawBaseDrawMode<T extends CustomStyling> {
|
|
|
24
24
|
pointerDistance?: number;
|
|
25
25
|
coordinatePrecision?: number;
|
|
26
26
|
});
|
|
27
|
+
protected setDrawing(): void;
|
|
27
28
|
protected setStarted(): void;
|
|
28
29
|
protected setStopped(): void;
|
|
29
30
|
register(config: TerraDrawModeRegisterConfig): void;
|