terra-draw 1.18.1 → 1.20.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/dist/common.d.ts CHANGED
@@ -54,16 +54,19 @@ export type OnFinishContext = {
54
54
  mode: string;
55
55
  action: string;
56
56
  };
57
- export type OnChangeContext = {
57
+ export type TerraDrawOnChangeContext = {
58
58
  origin: "api";
59
+ target?: "geometry" | "properties";
60
+ } | {
61
+ target?: "geometry" | "properties";
59
62
  };
60
- export type TerraDrawGeoJSONStore = GeoJSONStore<OnChangeContext | undefined, FeatureId>;
63
+ export type TerraDrawGeoJSONStore = GeoJSONStore<TerraDrawOnChangeContext | undefined, FeatureId>;
61
64
  export interface TerraDrawModeRegisterConfig {
62
65
  mode: string;
63
66
  store: TerraDrawGeoJSONStore;
64
67
  setDoubleClickToZoom: (enabled: boolean) => void;
65
68
  setCursor: SetCursor;
66
- onChange: StoreChangeHandler<OnChangeContext | undefined>;
69
+ onChange: StoreChangeHandler<TerraDrawOnChangeContext | undefined>;
67
70
  onSelect: (selectedId: string) => void;
68
71
  onDeselect: (deselectedId: string) => void;
69
72
  onFinish: (finishedId: string, context: OnFinishContext) => void;
@@ -1,5 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
2
- import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling } from "../base.mode";
2
+ import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling, ModeUpdateOptions } from "../base.mode";
3
3
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
4
4
  type TerraDrawPolygonModeKeyEvents = {
5
5
  cancel?: KeyboardEvent["key"] | null;
@@ -15,20 +15,20 @@ interface Cursors {
15
15
  start?: Cursor;
16
16
  close?: Cursor;
17
17
  }
18
- interface TerraDrawPolygonModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
18
+ interface TerraDrawAngledRectangleModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
19
19
  pointerDistance?: number;
20
20
  keyEvents?: TerraDrawPolygonModeKeyEvents | null;
21
21
  cursors?: Cursors;
22
22
  }
23
23
  export declare class TerraDrawAngledRectangleMode extends TerraDrawBaseDrawMode<PolygonStyling> {
24
- mode: "angled-rectangle";
24
+ mode: string;
25
25
  private currentCoordinate;
26
26
  private currentId;
27
27
  private keyEvents;
28
28
  private cursors;
29
29
  private mouseMove;
30
- constructor(options?: TerraDrawPolygonModeOptions<PolygonStyling>);
31
- updateOptions(options?: TerraDrawPolygonModeOptions<PolygonStyling>): void;
30
+ constructor(options?: TerraDrawAngledRectangleModeOptions<PolygonStyling>);
31
+ updateOptions(options?: ModeUpdateOptions<TerraDrawAngledRectangleModeOptions<PolygonStyling>>): void;
32
32
  private close;
33
33
  /** @internal */
34
34
  start(): void;
@@ -1,5 +1,5 @@
1
1
  import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
2
- import { OnChangeContext, HexColor, OnFinishContext, Projection, TerraDrawAdapterStyling, TerraDrawGeoJSONStore, TerraDrawKeyboardEvent, TerraDrawModeRegisterConfig, TerraDrawModeState, TerraDrawMouseEvent, Validation, HexColorStyling, NumericStyling, UrlStyling } from "../common";
2
+ import { TerraDrawOnChangeContext, HexColor, OnFinishContext, Projection, TerraDrawAdapterStyling, TerraDrawGeoJSONStore, TerraDrawKeyboardEvent, TerraDrawModeRegisterConfig, TerraDrawModeState, TerraDrawMouseEvent, Validation, HexColorStyling, NumericStyling, UrlStyling } from "../common";
3
3
  import { FeatureId, GeoJSONStoreFeatures, StoreChangeHandler } from "../store/store";
4
4
  export type CustomStyling = Record<string, string | number | HexColorStyling | NumericStyling | UrlStyling>;
5
5
  export declare enum ModeTypes {
@@ -17,6 +17,7 @@ export declare const DefaultPointerEvents: {
17
17
  readonly onDragEnd: true;
18
18
  };
19
19
  type AllowPointerEvent = boolean | ((event: TerraDrawMouseEvent) => boolean);
20
+ export type ModeUpdateOptions<Mode> = Omit<Mode, "modeName">;
20
21
  export interface PointerEvents {
21
22
  leftClick: AllowPointerEvent;
22
23
  rightClick: AllowPointerEvent;
@@ -26,6 +27,7 @@ export interface PointerEvents {
26
27
  onDragEnd: AllowPointerEvent;
27
28
  }
28
29
  export type BaseModeOptions<Styling extends CustomStyling> = {
30
+ modeName?: string;
29
31
  styles?: Partial<Styling>;
30
32
  pointerDistance?: number;
31
33
  validation?: Validation;
@@ -44,7 +46,7 @@ export declare abstract class TerraDrawBaseDrawMode<Styling extends CustomStylin
44
46
  protected validate: Validation | undefined;
45
47
  protected pointerDistance: number;
46
48
  protected coordinatePrecision: number;
47
- protected onStyleChange: StoreChangeHandler<OnChangeContext | undefined>;
49
+ protected onStyleChange: StoreChangeHandler<TerraDrawOnChangeContext | undefined>;
48
50
  protected store: TerraDrawGeoJSONStore;
49
51
  protected projection: Projection;
50
52
  protected setDoubleClickToZoom: TerraDrawModeRegisterConfig["setDoubleClickToZoom"];
@@ -52,6 +54,7 @@ export declare abstract class TerraDrawBaseDrawMode<Styling extends CustomStylin
52
54
  protected project: TerraDrawModeRegisterConfig["project"];
53
55
  protected setCursor: TerraDrawModeRegisterConfig["setCursor"];
54
56
  protected registerBehaviors(behaviorConfig: BehaviorConfig): void;
57
+ private isInitialUpdate;
55
58
  constructor(options?: BaseModeOptions<Styling>, willCallUpdateOptionsInParentClass?: boolean);
56
59
  updateOptions(options?: BaseModeOptions<Styling>): void;
57
60
  protected allowPointerEvent(pointerEvent: AllowPointerEvent, event: TerraDrawMouseEvent): boolean;
@@ -1,6 +1,6 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, Projection } from "../../common";
2
2
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
3
- import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
3
+ import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
4
4
  type TerraDrawCircleModeKeyEvents = {
5
5
  cancel: KeyboardEvent["key"] | null;
6
6
  finish: KeyboardEvent["key"] | null;
@@ -21,7 +21,7 @@ interface TerraDrawCircleModeOptions<T extends CustomStyling> extends BaseModeOp
21
21
  projection?: Projection;
22
22
  }
23
23
  export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode<CirclePolygonStyling> {
24
- mode: "circle";
24
+ mode: string;
25
25
  private center;
26
26
  private clickCount;
27
27
  private currentCircleId;
@@ -38,7 +38,7 @@ export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode<CirclePol
38
38
  * @param options.pointerDistance - Distance in pixels to consider a pointer close to a vertex
39
39
  */
40
40
  constructor(options?: TerraDrawCircleModeOptions<CirclePolygonStyling>);
41
- updateOptions(options?: TerraDrawCircleModeOptions<CirclePolygonStyling>): void;
41
+ updateOptions(options?: ModeUpdateOptions<TerraDrawCircleModeOptions<CirclePolygonStyling>>): void;
42
42
  private close;
43
43
  /** @internal */
44
44
  start(): void;
@@ -1,5 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
2
- import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
2
+ import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
3
3
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
4
4
  type TerraDrawFreehandModeKeyEvents = {
5
5
  cancel: KeyboardEvent["key"] | null;
@@ -28,7 +28,7 @@ interface TerraDrawFreehandModeOptions<T extends CustomStyling> extends BaseMode
28
28
  cursors?: Cursors;
29
29
  }
30
30
  export declare class TerraDrawFreehandMode extends TerraDrawBaseDrawMode<FreehandPolygonStyling> {
31
- mode: "freehand";
31
+ mode: string;
32
32
  private startingClick;
33
33
  private currentId;
34
34
  private closingPointId;
@@ -41,7 +41,7 @@ export declare class TerraDrawFreehandMode extends TerraDrawBaseDrawMode<Freehan
41
41
  private hasLeftStartingPoint;
42
42
  private preventNewFeature;
43
43
  constructor(options?: TerraDrawFreehandModeOptions<FreehandPolygonStyling>);
44
- updateOptions(options?: TerraDrawFreehandModeOptions<FreehandPolygonStyling> | undefined): void;
44
+ updateOptions(options?: ModeUpdateOptions<TerraDrawFreehandModeOptions<FreehandPolygonStyling>>): void;
45
45
  private close;
46
46
  /** @internal */
47
47
  start(): void;
@@ -1,5 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
2
- import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
2
+ import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
3
3
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
4
4
  type TerraDrawFreehandLineStringModeKeyEvents = {
5
5
  cancel: KeyboardEvent["key"] | null;
@@ -23,7 +23,7 @@ interface TerraDrawFreehandLineStringModeOptions<T extends CustomStyling> extend
23
23
  cursors?: Cursors;
24
24
  }
25
25
  export declare class TerraDrawFreehandLineStringMode extends TerraDrawBaseDrawMode<FreehandLineStringStyling> {
26
- mode: "freehand-linestring";
26
+ mode: string;
27
27
  private startingClick;
28
28
  private currentId;
29
29
  private closingPointId;
@@ -32,7 +32,7 @@ export declare class TerraDrawFreehandLineStringMode extends TerraDrawBaseDrawMo
32
32
  private cursors;
33
33
  private preventNewFeature;
34
34
  constructor(options?: TerraDrawFreehandLineStringModeOptions<FreehandLineStringStyling>);
35
- updateOptions(options?: TerraDrawFreehandLineStringModeOptions<FreehandLineStringStyling> | undefined): void;
35
+ updateOptions(options?: ModeUpdateOptions<TerraDrawFreehandLineStringModeOptions<FreehandLineStringStyling>>): void;
36
36
  private close;
37
37
  /** @internal */
38
38
  start(): void;
@@ -1,5 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, Snapping } from "../../common";
2
- import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
2
+ import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
3
3
  import { BehaviorConfig } from "../base.behavior";
4
4
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
5
5
  type TerraDrawLineStringModeKeyEvents = {
@@ -37,7 +37,7 @@ interface TerraDrawLineStringModeOptions<T extends CustomStyling> extends BaseMo
37
37
  editable?: boolean;
38
38
  }
39
39
  export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineStringStyling> {
40
- mode: "linestring";
40
+ mode: string;
41
41
  private currentCoordinate;
42
42
  private currentId;
43
43
  private closingPointId;
@@ -61,7 +61,7 @@ export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode<LineS
61
61
  private pixelDistance;
62
62
  private clickBoundingBox;
63
63
  constructor(options?: TerraDrawLineStringModeOptions<LineStringStyling>);
64
- updateOptions(options?: TerraDrawLineStringModeOptions<LineStringStyling> | undefined): void;
64
+ updateOptions(options?: ModeUpdateOptions<TerraDrawLineStringModeOptions<LineStringStyling>>): void;
65
65
  private updateSnappedCoordinate;
66
66
  private close;
67
67
  private updateGeometries;
@@ -1,6 +1,6 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, NumericStyling, Cursor, UrlStyling } from "../../common";
2
2
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
3
- import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
3
+ import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
4
4
  import { BehaviorConfig } from "../base.behavior";
5
5
  type MarkerModeStyling = {
6
6
  /** Marker must be a PNG or JPG */
@@ -28,7 +28,7 @@ export declare class TerraDrawMarkerMode extends TerraDrawBaseDrawMode<MarkerMod
28
28
  private pixelDistance;
29
29
  private clickBoundingBox;
30
30
  constructor(options?: TerraDrawMarkerModeOptions<MarkerModeStyling>);
31
- updateOptions(options?: TerraDrawMarkerModeOptions<MarkerModeStyling> | undefined): void;
31
+ updateOptions(options?: ModeUpdateOptions<TerraDrawMarkerModeOptions<MarkerModeStyling>>): void;
32
32
  /** @internal */
33
33
  start(): void;
34
34
  /** @internal */
@@ -1,6 +1,6 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, NumericStyling, HexColorStyling, Cursor } from "../../common";
2
2
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
3
- import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
3
+ import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
4
4
  import { BehaviorConfig } from "../base.behavior";
5
5
  type PointModeStyling = {
6
6
  pointWidth: NumericStyling;
@@ -22,14 +22,14 @@ interface TerraDrawPointModeOptions<T extends CustomStyling> extends BaseModeOpt
22
22
  editable?: boolean;
23
23
  }
24
24
  export declare class TerraDrawPointMode extends TerraDrawBaseDrawMode<PointModeStyling> {
25
- mode: "point";
25
+ mode: string;
26
26
  private cursors;
27
27
  private editable;
28
28
  private editedFeatureId;
29
29
  private pixelDistance;
30
30
  private clickBoundingBox;
31
31
  constructor(options?: TerraDrawPointModeOptions<PointModeStyling>);
32
- updateOptions(options?: TerraDrawPointModeOptions<PointModeStyling> | undefined): void;
32
+ updateOptions(options?: ModeUpdateOptions<TerraDrawPointModeOptions<PointModeStyling>>): void;
33
33
  /** @internal */
34
34
  start(): void;
35
35
  /** @internal */
@@ -1,5 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, Snapping } from "../../common";
2
- import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling, PointerEvents } from "../base.mode";
2
+ import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling, PointerEvents, ModeUpdateOptions } from "../base.mode";
3
3
  import { BehaviorConfig } from "../base.behavior";
4
4
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
5
5
  type TerraDrawPolygonModeKeyEvents = {
@@ -44,7 +44,7 @@ interface TerraDrawPolygonModeOptions<T extends CustomStyling> extends BaseModeO
44
44
  showCoordinatePoints?: boolean;
45
45
  }
46
46
  export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode<PolygonStyling> {
47
- mode: "polygon";
47
+ mode: string;
48
48
  private currentCoordinate;
49
49
  private currentId;
50
50
  private keyEvents;
@@ -67,7 +67,7 @@ export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode<PolygonS
67
67
  private closingPoints;
68
68
  private clickBoundingBox;
69
69
  constructor(options?: TerraDrawPolygonModeOptions<PolygonStyling>);
70
- updateOptions(options?: TerraDrawPolygonModeOptions<PolygonStyling>): void;
70
+ updateOptions(options?: ModeUpdateOptions<TerraDrawPolygonModeOptions<PolygonStyling>>): void;
71
71
  private close;
72
72
  /** @internal */
73
73
  registerBehaviors(config: BehaviorConfig): void;
@@ -1,6 +1,6 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
2
2
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
3
- import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
3
+ import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
4
4
  type TerraDrawRectangleModeKeyEvents = {
5
5
  cancel: KeyboardEvent["key"] | null;
6
6
  finish: KeyboardEvent["key"] | null;
@@ -17,18 +17,26 @@ interface Cursors {
17
17
  interface TerraDrawRectangleModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
18
18
  keyEvents?: TerraDrawRectangleModeKeyEvents | null;
19
19
  cursors?: Cursors;
20
+ drawInteraction?: "click-move" | "click-drag" | "click-move-or-drag";
20
21
  }
21
22
  export declare class TerraDrawRectangleMode extends TerraDrawBaseDrawMode<RectanglePolygonStyling> {
22
- mode: "rectangle";
23
+ mode: string;
23
24
  private center;
24
25
  private clickCount;
25
26
  private currentRectangleId;
26
27
  private keyEvents;
27
28
  private cursors;
29
+ private drawInteraction;
30
+ private drawType;
28
31
  constructor(options?: TerraDrawRectangleModeOptions<RectanglePolygonStyling>);
29
- updateOptions(options?: TerraDrawRectangleModeOptions<RectanglePolygonStyling>): void;
32
+ updateOptions(options?: ModeUpdateOptions<TerraDrawRectangleModeOptions<RectanglePolygonStyling>>): void;
30
33
  private updateRectangle;
31
34
  private close;
35
+ private beginDrawing;
36
+ /** @internal */
37
+ moveDrawAllowed(): boolean;
38
+ /** @internal */
39
+ dragDrawAllowed(): boolean;
32
40
  /** @internal */
33
41
  start(): void;
34
42
  /** @internal */
@@ -42,11 +50,11 @@ export declare class TerraDrawRectangleMode extends TerraDrawBaseDrawMode<Rectan
42
50
  /** @internal */
43
51
  onKeyUp(event: TerraDrawKeyboardEvent): void;
44
52
  /** @internal */
45
- onDragStart(): void;
53
+ onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
46
54
  /** @internal */
47
- onDrag(): void;
55
+ onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
48
56
  /** @internal */
49
- onDragEnd(): void;
57
+ onDragEnd(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void;
50
58
  /** @internal */
51
59
  cleanUp(): void;
52
60
  /** @internal */
@@ -1,5 +1,5 @@
1
1
  import { HexColorStyling, NumericStyling, TerraDrawAdapterStyling } from "../../common";
2
- import { BaseModeOptions, CustomStyling, ModeTypes, TerraDrawBaseDrawMode } from "../base.mode";
2
+ import { BaseModeOptions, CustomStyling, ModeTypes, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
3
3
  import { BehaviorConfig } from "../base.behavior";
4
4
  import { GeoJSONStoreFeatures } from "../../terra-draw";
5
5
  import { StoreValidation } from "../../store/store";
@@ -17,14 +17,13 @@ type RenderModeStyling = {
17
17
  zIndex: NumericStyling;
18
18
  };
19
19
  interface TerraDrawRenderModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
20
- modeName?: string;
21
20
  styles: Partial<T>;
22
21
  }
23
22
  export declare class TerraDrawRenderMode extends TerraDrawBaseDrawMode<RenderModeStyling> {
24
23
  type: ModeTypes;
25
24
  mode: string;
26
25
  constructor(options: TerraDrawRenderModeOptions<RenderModeStyling>);
27
- updateOptions(options?: TerraDrawRenderModeOptions<RenderModeStyling> | undefined): void;
26
+ updateOptions(options?: ModeUpdateOptions<TerraDrawRenderModeOptions<RenderModeStyling>>): void;
28
27
  /** @internal */
29
28
  registerBehaviors(behaviorConfig: BehaviorConfig): void;
30
29
  /** @internal */
@@ -1,5 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
2
- import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling } from "../base.mode";
2
+ import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling, ModeUpdateOptions } from "../base.mode";
3
3
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
4
4
  type TerraDrawSectorModeKeyEvents = {
5
5
  cancel?: KeyboardEvent["key"] | null;
@@ -22,7 +22,7 @@ interface TerraDrawSectorModeOptions<T extends CustomStyling> extends BaseModeOp
22
22
  cursors?: Cursors;
23
23
  }
24
24
  export declare class TerraDrawSectorMode extends TerraDrawBaseDrawMode<SectorPolygonStyling> {
25
- mode: "sector";
25
+ mode: string;
26
26
  private currentCoordinate;
27
27
  private currentId;
28
28
  private keyEvents;
@@ -31,7 +31,7 @@ export declare class TerraDrawSectorMode extends TerraDrawBaseDrawMode<SectorPol
31
31
  private cursors;
32
32
  private mouseMove;
33
33
  constructor(options?: TerraDrawSectorModeOptions<SectorPolygonStyling>);
34
- updateOptions(options?: TerraDrawSectorModeOptions<SectorPolygonStyling>): void;
34
+ updateOptions(options?: ModeUpdateOptions<TerraDrawSectorModeOptions<SectorPolygonStyling>>): void;
35
35
  private close;
36
36
  /** @internal */
37
37
  start(): void;
@@ -1,5 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawKeyboardEvent, TerraDrawAdapterStyling, HexColorStyling, NumericStyling, Cursor, Validation, Snapping, UrlStyling } from "../../common";
2
- import { BaseModeOptions, CustomStyling, TerraDrawBaseSelectMode } from "../base.mode";
2
+ import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseSelectMode } from "../base.mode";
3
3
  import { BehaviorConfig } from "../base.behavior";
4
4
  import { FeatureId, GeoJSONStoreFeatures } from "../../store/store";
5
5
  import { ResizeOptions } from "./behaviors/drag-coordinate-resize.behavior";
@@ -67,7 +67,7 @@ interface TerraDrawSelectModeOptions<T extends CustomStyling> extends BaseModeOp
67
67
  allowManualDeselection?: boolean;
68
68
  }
69
69
  export declare class TerraDrawSelectMode extends TerraDrawBaseSelectMode<SelectionStyling> {
70
- mode: "select";
70
+ mode: string;
71
71
  private allowManualDeselection;
72
72
  private dragEventThrottle;
73
73
  private dragEventCount;
@@ -90,7 +90,7 @@ export declare class TerraDrawSelectMode extends TerraDrawBaseSelectMode<Selecti
90
90
  private coordinatePoints;
91
91
  private lineSnap;
92
92
  constructor(options?: TerraDrawSelectModeOptions<SelectionStyling>);
93
- updateOptions(options?: TerraDrawSelectModeOptions<SelectionStyling>): void;
93
+ updateOptions(options?: ModeUpdateOptions<TerraDrawSelectModeOptions<SelectionStyling>>): void;
94
94
  selectFeature(featureId: FeatureId): void;
95
95
  setSelecting(): void;
96
96
  registerBehaviors(config: BehaviorConfig): void;
@@ -1,5 +1,5 @@
1
1
  import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
2
- import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling } from "../base.mode";
2
+ import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling, ModeUpdateOptions } from "../base.mode";
3
3
  import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
4
4
  type TerraDrawSensorModeKeyEvents = {
5
5
  cancel?: KeyboardEvent["key"] | null;
@@ -26,7 +26,7 @@ interface TerraDrawSensorModeOptions<T extends CustomStyling> extends BaseModeOp
26
26
  cursors?: Cursors;
27
27
  }
28
28
  export declare class TerraDrawSensorMode extends TerraDrawBaseDrawMode<SensorPolygonStyling> {
29
- mode: "sensor";
29
+ mode: string;
30
30
  private currentCoordinate;
31
31
  private currentId;
32
32
  private currentInitialArcId;
@@ -37,7 +37,7 @@ export declare class TerraDrawSensorMode extends TerraDrawBaseDrawMode<SensorPol
37
37
  private cursors;
38
38
  private mouseMove;
39
39
  constructor(options?: TerraDrawSensorModeOptions<SensorPolygonStyling>);
40
- updateOptions(options?: TerraDrawSensorModeOptions<SensorPolygonStyling>): void;
40
+ updateOptions(options?: ModeUpdateOptions<TerraDrawSensorModeOptions<SensorPolygonStyling>>): void;
41
41
  private close;
42
42
  /** @internal */
43
43
  start(): void;
@@ -27,7 +27,7 @@ export declare const defaultIdStrategy: {
27
27
  getId: <FeatureId>() => FeatureId;
28
28
  isValidId: (id: FeatureId) => boolean;
29
29
  };
30
- export declare class GeoJSONStore<OnChangeContext extends Record<string, JSON> | undefined, Id extends FeatureId = FeatureId> {
30
+ export declare class GeoJSONStore<OnChangeContext extends JSONObject | undefined, Id extends FeatureId = FeatureId> {
31
31
  constructor(config?: GeoJSONStoreConfig<Id>);
32
32
  idStrategy: IdStrategy<Id>;
33
33
  private tracked;