terra-draw 1.0.0-beta.1 → 1.0.0-beta.11

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.
Files changed (60) hide show
  1. package/README.md +9 -2
  2. package/dist/adapters/common/adapter-listener.d.ts +22 -0
  3. package/dist/adapters/common/base.adapter.d.ts +59 -0
  4. package/dist/adapters/mapbox-gl.adapter.d.ts +0 -1
  5. package/dist/adapters/openlayers.adapter.d.ts +14 -13
  6. package/dist/common.d.ts +11 -9
  7. package/dist/extend.d.ts +4 -0
  8. package/dist/geometry/calculate-relative-angle.d.ts +2 -10
  9. package/dist/geometry/clockwise.d.ts +2 -0
  10. package/dist/geometry/determine-halfplane.d.ts +2 -10
  11. package/dist/geometry/measure/bearing.d.ts +3 -7
  12. package/dist/geometry/measure/destination.d.ts +2 -7
  13. package/dist/geometry/measure/pixel-distance-to-line.d.ts +2 -10
  14. package/dist/geometry/measure/pixel-distance.d.ts +2 -7
  15. package/dist/geometry/point-on-line.d.ts +5 -0
  16. package/dist/geometry/project/web-mercator.d.ts +2 -4
  17. package/dist/geometry/web-mercator-centroid.d.ts +2 -4
  18. package/dist/geometry/web-mercator-point-on-line.d.ts +11 -0
  19. package/dist/modes/angled-rectangle/angled-rectangle.mode.d.ts +2 -7
  20. package/dist/modes/base.mode.d.ts +3 -1
  21. package/dist/modes/circle/circle.mode.d.ts +3 -2
  22. package/dist/modes/coordinate-snapping.behavior.d.ts +16 -0
  23. package/dist/modes/freehand/freehand.mode.d.ts +8 -2
  24. package/dist/modes/{snapping.behavior.d.ts → line-snapping.behavior.d.ts} +1 -1
  25. package/dist/modes/linestring/linestring.mode.d.ts +16 -5
  26. package/dist/modes/point/point.mode.d.ts +2 -2
  27. package/dist/modes/polygon/polygon.mode.d.ts +17 -4
  28. package/dist/modes/rectangle/rectangle.mode.d.ts +2 -2
  29. package/dist/modes/render/render.mode.d.ts +2 -1
  30. package/dist/modes/sector/sector.mode.d.ts +60 -0
  31. package/dist/modes/select/behaviors/drag-feature.behavior.d.ts +2 -2
  32. package/dist/modes/sensor/sensor.mode.d.ts +69 -0
  33. package/dist/store/store-feature-validation.d.ts +8 -2
  34. package/dist/store/store.d.ts +7 -3
  35. package/dist/terra-draw.cjs +1 -1
  36. package/dist/terra-draw.cjs.map +1 -1
  37. package/dist/terra-draw.d.ts +12 -13
  38. package/dist/terra-draw.modern.js +1 -1
  39. package/dist/terra-draw.modern.js.map +1 -1
  40. package/dist/terra-draw.module.js +1 -1
  41. package/dist/terra-draw.module.js.map +1 -1
  42. package/dist/terra-draw.umd.js +1 -1
  43. package/dist/terra-draw.umd.js.map +1 -1
  44. package/dist/validation-reasons.d.ts +13 -0
  45. package/dist/validations/common-validations.d.ts +2 -0
  46. package/dist/validations/linestring.validation.d.ts +4 -1
  47. package/dist/validations/max-size.validation.d.ts +3 -1
  48. package/dist/validations/min-size.validation.d.ts +3 -1
  49. package/dist/validations/not-self-intersecting.validation.d.ts +4 -1
  50. package/dist/validations/point.validation.d.ts +4 -1
  51. package/dist/validations/polygon.validation.d.ts +8 -2
  52. package/e2e/package-lock.json +5 -4
  53. package/e2e/package.json +1 -1
  54. package/e2e/public/index.html +2 -0
  55. package/e2e/tests/leaflet.spec.ts +414 -18
  56. package/e2e/tests/setup.ts +16 -5
  57. package/eslint.config.js +32 -0
  58. package/package.json +29 -28
  59. package/tsconfig.json +2 -1
  60. package/readme.gif +0 -0
@@ -5,7 +5,6 @@ import { TerraDrawMapLibreGLAdapter } from "./adapters/maplibre-gl.adapter";
5
5
  import { TerraDrawOpenLayersAdapter } from "./adapters/openlayers.adapter";
6
6
  import { TerraDrawArcGISMapsSDKAdapter } from "./adapters/arcgis-maps-sdk.adapter";
7
7
  import { TerraDrawAdapter, TerraDrawAdapterStyling, GetLngLatFromEvent, Project, SetCursor, TerraDrawChanges, TerraDrawStylingFunction, Unproject, HexColor, TerraDrawKeyboardEvent, TerraDrawMouseEvent, OnFinishContext } from "./common";
8
- import { TerraDrawBaseAdapter } from "./adapters/common/base.adapter";
9
8
  import { TerraDrawBaseDrawMode } from "./modes/base.mode";
10
9
  import { TerraDrawCircleMode } from "./modes/circle/circle.mode";
11
10
  import { TerraDrawFreehandMode } from "./modes/freehand/freehand.mode";
@@ -15,12 +14,16 @@ import { TerraDrawPolygonMode } from "./modes/polygon/polygon.mode";
15
14
  import { TerraDrawRectangleMode } from "./modes/rectangle/rectangle.mode";
16
15
  import { TerraDrawRenderMode } from "./modes/render/render.mode";
17
16
  import { TerraDrawSelectMode } from "./modes/select/select.mode";
18
- import { FeatureId, GeoJSONStoreFeatures, IdStrategy } from "./store/store";
17
+ import { FeatureId, GeoJSONStoreFeatures, IdStrategy, StoreValidation } from "./store/store";
19
18
  import { BehaviorConfig } from "./modes/base.behavior";
20
19
  import { ValidateMinAreaSquareMeters } from "./validations/min-size.validation";
21
20
  import { ValidateMaxAreaSquareMeters } from "./validations/max-size.validation";
22
21
  import { ValidateNotSelfIntersecting } from "./validations/not-self-intersecting.validation";
23
22
  import { TerraDrawAngledRectangleMode } from "./modes/angled-rectangle/angled-rectangle.mode";
23
+ import { TerraDrawSectorMode } from "./modes/sector/sector.mode";
24
+ import { TerraDrawSensorMode } from "./modes/sensor/sensor.mode";
25
+ import * as TerraDrawExtend from "./extend";
26
+ import { ValidationReasons } from "./validation-reasons";
24
27
  type FinishListener = (id: FeatureId, context: OnFinishContext) => void;
25
28
  type ChangeListener = (ids: FeatureId[], type: string) => void;
26
29
  type SelectListener = (id: FeatureId) => void;
@@ -149,15 +152,15 @@ declare class TerraDraw {
149
152
  */
150
153
  hasFeature(id: FeatureId): boolean;
151
154
  /**
152
- * A method for adding features to the store. This method will validate the features.
153
- * Features must match one of the modes enabled in the instance.
154
- * @param mode
155
- * @param features
156
- * @returns
155
+ * A method for adding features to the store. This method will validate the features
156
+ * returning an array of validation results. Features must match one of the modes enabled
157
+ * in the instance.
158
+ * @param features - an array of GeoJSON features
159
+ * @returns an array of validation results
157
160
  *
158
161
  * @beta
159
162
  */
160
- addFeatures(features: GeoJSONStoreFeatures[]): void;
163
+ addFeatures(features: GeoJSONStoreFeatures[]): StoreValidation[];
161
164
  /**
162
165
  * A method starting Terra Draw. It put the instance into a started state, and
163
166
  * in registers the passed adapter giving it all the callbacks required to operate.
@@ -216,8 +219,4 @@ declare class TerraDraw {
216
219
  */
217
220
  off<T extends TerraDrawEvents>(event: TerraDrawEvents, callback: TerraDrawEventListeners[T]): void;
218
221
  }
219
- declare const TerraDrawExtend: {
220
- TerraDrawBaseDrawMode: typeof TerraDrawBaseDrawMode;
221
- TerraDrawBaseAdapter: typeof TerraDrawBaseAdapter;
222
- };
223
- export { TerraDraw, TerraDrawSelectMode, TerraDrawPointMode, TerraDrawLineStringMode, TerraDrawPolygonMode, TerraDrawCircleMode, TerraDrawFreehandMode, TerraDrawRenderMode, TerraDrawRectangleMode, TerraDrawAngledRectangleMode, TerraDrawGoogleMapsAdapter, TerraDrawMapboxGLAdapter, TerraDrawLeafletAdapter, TerraDrawMapLibreGLAdapter, TerraDrawOpenLayersAdapter, TerraDrawArcGISMapsSDKAdapter, TerraDrawExtend, BehaviorConfig, GeoJSONStoreFeatures, HexColor, TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, TerraDrawChanges, TerraDrawStylingFunction, Project, Unproject, SetCursor, GetLngLatFromEvent, ValidateMinAreaSquareMeters, ValidateMaxAreaSquareMeters, ValidateNotSelfIntersecting, };
222
+ export { TerraDraw, TerraDrawSelectMode, TerraDrawPointMode, TerraDrawLineStringMode, TerraDrawPolygonMode, TerraDrawCircleMode, TerraDrawFreehandMode, TerraDrawRenderMode, TerraDrawRectangleMode, TerraDrawAngledRectangleMode, TerraDrawSectorMode, TerraDrawSensorMode, TerraDrawGoogleMapsAdapter, TerraDrawMapboxGLAdapter, TerraDrawLeafletAdapter, TerraDrawMapLibreGLAdapter, TerraDrawOpenLayersAdapter, TerraDrawArcGISMapsSDKAdapter, TerraDrawExtend, BehaviorConfig, GeoJSONStoreFeatures, HexColor, TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, TerraDrawChanges, TerraDrawStylingFunction, Project, Unproject, SetCursor, GetLngLatFromEvent, ValidateMinAreaSquareMeters, ValidateMaxAreaSquareMeters, ValidateNotSelfIntersecting, ValidationReasons, };