terra-draw 1.4.2 → 1.5.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
@@ -48,12 +48,16 @@ export type OnFinishContext = {
48
48
  mode: string;
49
49
  action: string;
50
50
  };
51
+ export type OnChangeContext = {
52
+ origin: "api";
53
+ };
54
+ export type TerraDrawGeoJSONStore = GeoJSONStore<OnChangeContext | undefined, FeatureId>;
51
55
  export interface TerraDrawModeRegisterConfig {
52
56
  mode: string;
53
- store: GeoJSONStore;
57
+ store: TerraDrawGeoJSONStore;
54
58
  setDoubleClickToZoom: (enabled: boolean) => void;
55
59
  setCursor: SetCursor;
56
- onChange: StoreChangeHandler;
60
+ onChange: StoreChangeHandler<OnChangeContext | undefined>;
57
61
  onSelect: (selectedId: string) => void;
58
62
  onDeselect: (deselectedId: string) => void;
59
63
  onFinish: (finishedId: string, context: OnFinishContext) => void;
package/dist/extend.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { TerraDrawBaseAdapter, BaseAdapterConfig } from "./common/base.adapter";
2
- import { HexColorStyling, NumericStyling, SELECT_PROPERTIES, TerraDrawCallbacks } from "./common";
3
- import { BaseModeOptions, TerraDrawBaseDrawMode } from "./modes/base.mode";
2
+ import { Cursor, HexColorStyling, NumericStyling, SELECT_PROPERTIES, TerraDrawCallbacks } from "./common";
3
+ import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode, TerraDrawBaseSelectMode } from "./modes/base.mode";
4
4
  import { FeatureId, GeoJSONStore } from "./store/store";
5
- export { GeoJSONStore, TerraDrawBaseDrawMode, TerraDrawBaseAdapter, BaseAdapterConfig, NumericStyling, HexColorStyling, BaseModeOptions, TerraDrawCallbacks, FeatureId, SELECT_PROPERTIES, };
5
+ import { getDefaultStyling } from "./util/styling";
6
+ export { GeoJSONStore, TerraDrawBaseDrawMode, TerraDrawBaseSelectMode, TerraDrawBaseAdapter, getDefaultStyling, SELECT_PROPERTIES, FeatureId, Cursor, BaseModeOptions, CustomStyling, NumericStyling, HexColorStyling, TerraDrawCallbacks, BaseAdapterConfig, };
@@ -1,7 +1,6 @@
1
- import { Project, Projection, Unproject } from "../common";
2
- import { GeoJSONStore } from "../store/store";
1
+ import { Project, Projection, TerraDrawGeoJSONStore, Unproject } from "../common";
3
2
  export type BehaviorConfig = {
4
- store: GeoJSONStore;
3
+ store: TerraDrawGeoJSONStore;
5
4
  mode: string;
6
5
  project: Project;
7
6
  unproject: Unproject;
@@ -10,7 +9,7 @@ export type BehaviorConfig = {
10
9
  projection: Projection;
11
10
  };
12
11
  export declare class TerraDrawModeBehavior {
13
- protected store: GeoJSONStore;
12
+ protected store: TerraDrawGeoJSONStore;
14
13
  protected mode: string;
15
14
  protected project: Project;
16
15
  protected unproject: Unproject;
@@ -1,6 +1,6 @@
1
1
  import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
2
- import { HexColor, OnFinishContext, Projection, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, TerraDrawModeRegisterConfig, TerraDrawModeState, TerraDrawMouseEvent, Validation } from "../common";
3
- import { FeatureId, GeoJSONStore, GeoJSONStoreFeatures, StoreChangeHandler } from "../store/store";
2
+ import { OnChangeContext, HexColor, OnFinishContext, Projection, TerraDrawAdapterStyling, TerraDrawGeoJSONStore, TerraDrawKeyboardEvent, TerraDrawModeRegisterConfig, TerraDrawModeState, TerraDrawMouseEvent, Validation } from "../common";
3
+ import { FeatureId, GeoJSONStoreFeatures, StoreChangeHandler } from "../store/store";
4
4
  export type CustomStyling = Record<string, string | number | ((feature: GeoJSONStoreFeatures) => HexColor) | ((feature: GeoJSONStoreFeatures) => number)>;
5
5
  export declare enum ModeTypes {
6
6
  Drawing = "drawing",
@@ -25,8 +25,8 @@ export declare abstract class TerraDrawBaseDrawMode<Styling extends CustomStylin
25
25
  protected validate: Validation | undefined;
26
26
  protected pointerDistance: number;
27
27
  protected coordinatePrecision: number;
28
- protected onStyleChange: StoreChangeHandler;
29
- protected store: GeoJSONStore;
28
+ protected onStyleChange: StoreChangeHandler<OnChangeContext | undefined>;
29
+ protected store: TerraDrawGeoJSONStore;
30
30
  protected projection: Projection;
31
31
  protected setDoubleClickToZoom: TerraDrawModeRegisterConfig["setDoubleClickToZoom"];
32
32
  protected unproject: TerraDrawModeRegisterConfig["unproject"];
@@ -13,7 +13,7 @@ export type StoreValidation = {
13
13
  id?: FeatureId;
14
14
  } & ReturnType<Validation>;
15
15
  type StoreChangeEvents = "delete" | "create" | "update" | "styling";
16
- export type StoreChangeHandler = (ids: FeatureId[], change: StoreChangeEvents) => void;
16
+ export type StoreChangeHandler<OnChangeContext> = (ids: FeatureId[], change: StoreChangeEvents, context?: OnChangeContext) => void;
17
17
  export type FeatureId = string | number;
18
18
  export type IdStrategy<Id extends FeatureId> = {
19
19
  isValidId: (id: Id) => boolean;
@@ -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<Id extends FeatureId = FeatureId> {
30
+ export declare class GeoJSONStore<OnChangeContext extends Record<string, JSON> | undefined, Id extends FeatureId = FeatureId> {
31
31
  constructor(config?: GeoJSONStoreConfig<Id>);
32
32
  idStrategy: IdStrategy<Id>;
33
33
  private tracked;
@@ -37,25 +37,25 @@ export declare class GeoJSONStore<Id extends FeatureId = FeatureId> {
37
37
  private clone;
38
38
  getId(): FeatureId;
39
39
  has(id: FeatureId): boolean;
40
- load(data: GeoJSONStoreFeatures[], featureValidation?: (feature: unknown, tracked?: boolean) => StoreValidation, afterFeatureAdded?: (feature: GeoJSONStoreFeatures) => void): StoreValidation[];
40
+ load(data: GeoJSONStoreFeatures[], featureValidation?: (feature: unknown, tracked?: boolean) => StoreValidation, afterFeatureAdded?: (feature: GeoJSONStoreFeatures) => void, context?: OnChangeContext): StoreValidation[];
41
41
  search(bbox: BBoxPolygon, filter?: (feature: GeoJSONStoreFeatures) => boolean): GeoJSONStoreFeatures[];
42
- registerOnChange(onChange: StoreChangeHandler): void;
42
+ registerOnChange(onChange: StoreChangeHandler<OnChangeContext | undefined>): void;
43
43
  getGeometryCopy<T extends GeoJSONStoreGeometries>(id: FeatureId): T;
44
44
  getPropertiesCopy(id: FeatureId): DefinedProperties;
45
45
  updateProperty(propertiesToUpdate: {
46
46
  id: FeatureId;
47
47
  property: string;
48
48
  value: JSON;
49
- }[]): void;
49
+ }[], context?: OnChangeContext): void;
50
50
  updateGeometry(geometriesToUpdate: {
51
51
  id: FeatureId;
52
52
  geometry: GeoJSONStoreGeometries;
53
- }[]): void;
53
+ }[], context?: OnChangeContext): void;
54
54
  create<Id extends FeatureId>(features: {
55
55
  geometry: GeoJSONStoreGeometries;
56
56
  properties?: JSONObject;
57
- }[]): Id[];
58
- delete(ids: FeatureId[]): void;
57
+ }[], context?: OnChangeContext): Id[];
58
+ delete(ids: FeatureId[], context?: OnChangeContext): void;
59
59
  copy(id: FeatureId): GeoJSONStoreFeatures;
60
60
  copyAll(): GeoJSONStoreFeatures[];
61
61
  copyAllWhere(equals: (properties: JSONObject) => boolean): GeoJSONStoreFeatures[];