terra-draw 0.0.1-alpha.9 → 1.0.0-beta.1

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 (122) hide show
  1. package/.devcontainer/Dockerfile +8 -0
  2. package/.devcontainer/devcontainer.json +27 -0
  3. package/.devcontainer/post-create.sh +16 -0
  4. package/README.md +23 -13
  5. package/dist/adapters/arcgis-maps-sdk.adapter.d.ts +106 -0
  6. package/dist/adapters/google-maps.adapter.d.ts +90 -39
  7. package/dist/adapters/leaflet.adapter.d.ts +99 -33
  8. package/dist/adapters/mapbox-gl.adapter.d.ts +91 -37
  9. package/dist/adapters/maplibre-gl.adapter.d.ts +72 -0
  10. package/dist/adapters/openlayers.adapter.d.ts +120 -0
  11. package/dist/common.d.ts +118 -98
  12. package/dist/geometry/boolean/is-valid-coordinate.d.ts +4 -0
  13. package/dist/geometry/boolean/point-in-polygon.d.ts +2 -2
  14. package/dist/geometry/boolean/self-intersects.d.ts +2 -2
  15. package/dist/geometry/calculate-relative-angle.d.ts +17 -0
  16. package/dist/geometry/centroid.d.ts +2 -2
  17. package/dist/geometry/coordinates-identical.d.ts +2 -2
  18. package/dist/geometry/determine-halfplane.d.ts +10 -0
  19. package/dist/geometry/get-coordinates-as-points.d.ts +6 -6
  20. package/dist/geometry/get-midpoints.d.ts +14 -7
  21. package/dist/geometry/helpers.d.ts +4 -4
  22. package/dist/geometry/limit-decimal-precision.d.ts +1 -1
  23. package/dist/geometry/measure/area.d.ts +2 -0
  24. package/dist/geometry/measure/bearing.d.ts +9 -0
  25. package/dist/geometry/measure/destination.d.ts +9 -0
  26. package/dist/geometry/measure/haversine-distance.d.ts +2 -2
  27. package/dist/geometry/measure/pixel-distance-to-line.d.ts +10 -10
  28. package/dist/geometry/measure/pixel-distance.d.ts +7 -7
  29. package/dist/geometry/measure/rhumb-bearing.d.ts +2 -2
  30. package/dist/geometry/measure/rhumb-destination.d.ts +2 -2
  31. package/dist/geometry/measure/rhumb-distance.d.ts +2 -2
  32. package/dist/geometry/measure/slice-along.d.ts +2 -0
  33. package/dist/geometry/midpoint-coordinate.d.ts +4 -2
  34. package/dist/geometry/project/web-mercator.d.ts +20 -0
  35. package/dist/geometry/shape/create-bbox.d.ts +10 -0
  36. package/dist/geometry/shape/create-circle.d.ts +13 -7
  37. package/dist/geometry/shape/great-circle-coordinates.d.ts +2 -0
  38. package/dist/geometry/shape/web-mercator-distortion.d.ts +2 -0
  39. package/dist/geometry/transform/rotate.d.ts +9 -2
  40. package/dist/geometry/transform/scale.d.ts +9 -2
  41. package/dist/geometry/web-mercator-centroid.d.ts +11 -0
  42. package/dist/modes/angled-rectangle/angled-rectangle.mode.d.ts +62 -0
  43. package/dist/modes/base.behavior.d.ts +21 -19
  44. package/dist/modes/base.mode.d.ts +66 -33
  45. package/dist/modes/circle/circle.mode.d.ts +66 -37
  46. package/dist/modes/click-bounding-box.behavior.d.ts +6 -7
  47. package/dist/modes/freehand/freehand.mode.d.ts +63 -43
  48. package/dist/modes/insert-coordinates.behavior.d.ts +9 -0
  49. package/dist/modes/linestring/linestring.mode.d.ts +78 -47
  50. package/dist/modes/pixel-distance.behavior.d.ts +7 -7
  51. package/dist/modes/point/point.mode.d.ts +44 -26
  52. package/dist/modes/polygon/behaviors/closing-points.behavior.d.ts +19 -19
  53. package/dist/modes/polygon/polygon.mode.d.ts +69 -51
  54. package/dist/modes/rectangle/rectangle.mode.d.ts +55 -0
  55. package/dist/modes/render/render.mode.d.ts +52 -23
  56. package/dist/modes/select/behaviors/drag-coordinate-resize.behavior.d.ts +62 -0
  57. package/dist/modes/select/behaviors/drag-coordinate.behavior.d.ts +20 -13
  58. package/dist/modes/select/behaviors/drag-feature.behavior.d.ts +20 -17
  59. package/dist/modes/select/behaviors/{features-at-mouse-event.behavior.d.ts → feature-at-pointer-event.behavior.d.ts} +15 -15
  60. package/dist/modes/select/behaviors/midpoint.behavior.d.ts +19 -18
  61. package/dist/modes/select/behaviors/rotate-feature.behavior.d.ts +14 -13
  62. package/dist/modes/select/behaviors/scale-feature.behavior.d.ts +14 -13
  63. package/dist/modes/select/behaviors/selection-point.behavior.d.ts +19 -18
  64. package/dist/modes/select/select.mode.d.ts +119 -78
  65. package/dist/modes/snapping.behavior.d.ts +16 -13
  66. package/dist/modes/static/static.mode.d.ts +32 -30
  67. package/dist/store/spatial-index/quickselect.d.ts +2 -2
  68. package/dist/store/spatial-index/rbush.d.ts +35 -35
  69. package/dist/store/spatial-index/spatial-index.d.ts +18 -18
  70. package/dist/store/store-feature-validation.d.ts +16 -0
  71. package/dist/store/store.d.ts +59 -48
  72. package/dist/terra-draw.cjs +1 -1
  73. package/dist/terra-draw.cjs.map +1 -1
  74. package/dist/terra-draw.d.ts +223 -48
  75. package/dist/terra-draw.modern.js +1 -1
  76. package/dist/terra-draw.modern.js.map +1 -1
  77. package/dist/terra-draw.module.js +1 -1
  78. package/dist/terra-draw.module.js.map +1 -1
  79. package/dist/terra-draw.umd.js +1 -1
  80. package/dist/terra-draw.umd.js.map +1 -1
  81. package/dist/util/geoms.d.ts +3 -3
  82. package/dist/util/id.d.ts +1 -1
  83. package/dist/util/styling.d.ts +2 -2
  84. package/dist/validations/linestring.validation.d.ts +2 -0
  85. package/dist/validations/max-size.validation.d.ts +2 -0
  86. package/dist/validations/min-size.validation.d.ts +2 -0
  87. package/dist/validations/not-self-intersecting.validation.d.ts +2 -0
  88. package/dist/validations/point.validation.d.ts +2 -0
  89. package/dist/validations/polygon.validation.d.ts +3 -0
  90. package/e2e/README.md +29 -0
  91. package/e2e/package-lock.json +4274 -0
  92. package/e2e/package.json +26 -0
  93. package/e2e/playwright.config.ts +77 -0
  94. package/e2e/public/favicon.ico +0 -0
  95. package/e2e/public/index.html +53 -0
  96. package/e2e/tests/leaflet.spec.ts +739 -0
  97. package/e2e/tests/setup.ts +198 -0
  98. package/e2e/webpack.config.js +36 -0
  99. package/jest.nocheck.config.ts +17 -0
  100. package/package.json +158 -87
  101. package/readme.gif +0 -0
  102. package/tsconfig.json +25 -12
  103. package/CODE_OF_CONDUCT.md +0 -36
  104. package/CONTRIBUTING.md +0 -17
  105. package/DEVELOPMENT.md +0 -77
  106. package/dist/bundle.js +0 -6
  107. package/dist/bundle.js.LICENSE.txt +0 -4
  108. package/dist/geometry/create-circle.d.ts +0 -6
  109. package/dist/geometry/get-pixel-distance-to-line.d.ts +0 -10
  110. package/dist/geometry/get-pixel-distance.d.ts +0 -7
  111. package/dist/geometry/haversine-distance.d.ts +0 -1
  112. package/dist/geometry/point-in-polygon.d.ts +0 -1
  113. package/dist/geometry/self-intersects.d.ts +0 -2
  114. package/dist/modes/circle.mode.d.ts +0 -18
  115. package/dist/modes/freehand.mode.d.ts +0 -20
  116. package/dist/modes/line-string.mode.d.ts +0 -21
  117. package/dist/modes/point.mode.d.ts +0 -14
  118. package/dist/modes/polygon/behaviors/start-end-point.behavior.d.ts +0 -11
  119. package/dist/modes/polygon.mode.d.ts +0 -21
  120. package/dist/modes/select.mode.d.ts +0 -21
  121. package/dist/modes/static.mode.d.ts +0 -10
  122. package/jest.config.ts +0 -27
@@ -1,48 +1,59 @@
1
- import { Feature, Point, Polygon, LineString } from "geojson";
2
- declare type JSON = string | number | boolean | null | JSONArray | JSONObject;
3
- export interface JSONObject {
4
- [member: string]: JSON;
5
- }
6
- declare type JSONArray = Array<JSON>;
7
- declare type DefinedProperties = Record<string, JSON>;
8
- export declare type GeoJSONStoreGeometries = Polygon | LineString | Point;
9
- export declare type BBoxPolygon = Feature<Polygon, DefinedProperties>;
10
- export declare type GeoJSONStoreFeatures = Feature<GeoJSONStoreGeometries, DefinedProperties>;
11
- export declare type StoreChangeEvents = "delete" | "create" | "update";
12
- export declare type StoreChangeHandler = (ids: string[], change: StoreChangeEvents) => void;
13
- export declare type GeoJSONStoreConfig = {
14
- data?: GeoJSONStoreFeatures[];
15
- tracked?: boolean;
16
- validateFeature?: (feature: unknown, tracked?: boolean) => void;
17
- };
18
- export declare class GeoJSONStore {
19
- constructor(config?: GeoJSONStoreConfig);
20
- private tracked;
21
- private spatialIndex;
22
- private store;
23
- private _onChange;
24
- private getId;
25
- private clone;
26
- has(id: string): boolean;
27
- load(data: GeoJSONStoreFeatures[], featureValidation?: (feature: unknown, tracked?: boolean) => void): void;
28
- search(bbox: BBoxPolygon, filter?: (feature: GeoJSONStoreFeatures) => boolean): GeoJSONStoreFeatures[];
29
- registerOnChange(onChange: StoreChangeHandler): void;
30
- getGeometryCopy<T extends GeoJSONStoreGeometries>(id: string): T;
31
- getPropertiesCopy(id: string): DefinedProperties;
32
- updateProperty(propertiesToUpdate: {
33
- id: string;
34
- property: string;
35
- value: JSON;
36
- }[]): void;
37
- updateGeometry(geometriesToUpdate: {
38
- id: string;
39
- geometry: GeoJSONStoreGeometries;
40
- }[]): void;
41
- create(features: {
42
- geometry: GeoJSONStoreGeometries;
43
- properties?: JSONObject;
44
- }[]): string[];
45
- delete(ids: string[]): void;
46
- copyAll(): GeoJSONStoreFeatures[];
47
- }
48
- export {};
1
+ import { Feature, Point, Polygon, LineString } from "geojson";
2
+ type JSON = string | number | boolean | null | JSONArray | JSONObject;
3
+ export interface JSONObject {
4
+ [member: string]: JSON;
5
+ }
6
+ type JSONArray = Array<JSON>;
7
+ type DefinedProperties = Record<string, JSON>;
8
+ export type GeoJSONStoreGeometries = Polygon | LineString | Point;
9
+ export type BBoxPolygon = Feature<Polygon, DefinedProperties>;
10
+ export type GeoJSONStoreFeatures = Feature<GeoJSONStoreGeometries, DefinedProperties>;
11
+ export type StoreChangeEvents = "delete" | "create" | "update" | "styling";
12
+ export type StoreChangeHandler = (ids: FeatureId[], change: StoreChangeEvents) => void;
13
+ export type FeatureId = string | number;
14
+ export type IdStrategy<Id extends FeatureId> = {
15
+ isValidId: (id: Id) => boolean;
16
+ getId: () => Id;
17
+ };
18
+ export type GeoJSONStoreConfig<Id extends FeatureId> = {
19
+ idStrategy?: IdStrategy<Id>;
20
+ tracked?: boolean;
21
+ };
22
+ export declare const defaultIdStrategy: {
23
+ getId: <FeatureId>() => FeatureId;
24
+ isValidId: (id: FeatureId) => boolean;
25
+ };
26
+ export declare class GeoJSONStore<Id extends FeatureId = FeatureId> {
27
+ constructor(config?: GeoJSONStoreConfig<Id>);
28
+ idStrategy: IdStrategy<Id>;
29
+ private tracked;
30
+ private spatialIndex;
31
+ private store;
32
+ private _onChange;
33
+ private clone;
34
+ getId(): FeatureId;
35
+ has(id: FeatureId): boolean;
36
+ load(data: GeoJSONStoreFeatures[], featureValidation?: (feature: unknown, tracked?: boolean) => boolean): void;
37
+ search(bbox: BBoxPolygon, filter?: (feature: GeoJSONStoreFeatures) => boolean): GeoJSONStoreFeatures[];
38
+ registerOnChange(onChange: StoreChangeHandler): void;
39
+ getGeometryCopy<T extends GeoJSONStoreGeometries>(id: FeatureId): T;
40
+ getPropertiesCopy(id: FeatureId): DefinedProperties;
41
+ updateProperty(propertiesToUpdate: {
42
+ id: FeatureId;
43
+ property: string;
44
+ value: JSON;
45
+ }[]): void;
46
+ updateGeometry(geometriesToUpdate: {
47
+ id: FeatureId;
48
+ geometry: GeoJSONStoreGeometries;
49
+ }[]): void;
50
+ create<Id extends FeatureId>(features: {
51
+ geometry: GeoJSONStoreGeometries;
52
+ properties?: JSONObject;
53
+ }[]): Id[];
54
+ delete(ids: FeatureId[]): void;
55
+ copyAll(): GeoJSONStoreFeatures[];
56
+ clear(): void;
57
+ size(): number;
58
+ }
59
+ export {};