terra-draw 1.19.0 → 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 { 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 {
@@ -46,7 +46,7 @@ export declare abstract class TerraDrawBaseDrawMode<Styling extends CustomStylin
46
46
  protected validate: Validation | undefined;
47
47
  protected pointerDistance: number;
48
48
  protected coordinatePrecision: number;
49
- protected onStyleChange: StoreChangeHandler<OnChangeContext | undefined>;
49
+ protected onStyleChange: StoreChangeHandler<TerraDrawOnChangeContext | undefined>;
50
50
  protected store: TerraDrawGeoJSONStore;
51
51
  protected projection: Projection;
52
52
  protected setDoubleClickToZoom: TerraDrawModeRegisterConfig["setDoubleClickToZoom"];
@@ -17,6 +17,7 @@ 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
23
  mode: string;
@@ -25,10 +26,17 @@ export declare class TerraDrawRectangleMode extends TerraDrawBaseDrawMode<Rectan
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
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 */
@@ -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;