terra-draw 1.0.0-beta.0 → 1.0.0-beta.10

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 +10 -3
  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 +9 -0
  9. package/dist/geometry/clockwise.d.ts +2 -0
  10. package/dist/geometry/determine-halfplane.d.ts +2 -0
  11. package/dist/geometry/measure/bearing.d.ts +3 -7
  12. package/dist/geometry/measure/destination.d.ts +2 -0
  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 +57 -0
  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 +11 -4
  26. package/dist/modes/point/point.mode.d.ts +2 -2
  27. package/dist/modes/polygon/polygon.mode.d.ts +14 -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 +13 -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 +3 -0
  55. package/e2e/tests/leaflet.spec.ts +490 -14
  56. package/e2e/tests/setup.ts +34 -6
  57. package/eslint.config.js +31 -0
  58. package/package.json +30 -30
  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,11 +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";
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";
23
27
  type FinishListener = (id: FeatureId, context: OnFinishContext) => void;
24
28
  type ChangeListener = (ids: FeatureId[], type: string) => void;
25
29
  type SelectListener = (id: FeatureId) => void;
@@ -148,15 +152,15 @@ declare class TerraDraw {
148
152
  */
149
153
  hasFeature(id: FeatureId): boolean;
150
154
  /**
151
- * A method for adding features to the store. This method will validate the features.
152
- * Features must match one of the modes enabled in the instance.
153
- * @param mode
154
- * @param features
155
- * @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
156
160
  *
157
161
  * @beta
158
162
  */
159
- addFeatures(features: GeoJSONStoreFeatures[]): void;
163
+ addFeatures(features: GeoJSONStoreFeatures[]): StoreValidation[];
160
164
  /**
161
165
  * A method starting Terra Draw. It put the instance into a started state, and
162
166
  * in registers the passed adapter giving it all the callbacks required to operate.
@@ -215,8 +219,4 @@ declare class TerraDraw {
215
219
  */
216
220
  off<T extends TerraDrawEvents>(event: TerraDrawEvents, callback: TerraDrawEventListeners[T]): void;
217
221
  }
218
- declare const TerraDrawExtend: {
219
- TerraDrawBaseDrawMode: typeof TerraDrawBaseDrawMode;
220
- TerraDrawBaseAdapter: typeof TerraDrawBaseAdapter;
221
- };
222
- export { TerraDraw, TerraDrawSelectMode, TerraDrawPointMode, TerraDrawLineStringMode, TerraDrawPolygonMode, TerraDrawCircleMode, TerraDrawFreehandMode, TerraDrawRenderMode, TerraDrawRectangleMode, 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, };