terra-draw
Advanced tools
Comparing version 1.0.0-beta.0 to 1.0.0-beta.1
import { Position } from "geojson"; | ||
export declare function destination(origin: Position, distance: number, bearing: number): Position; | ||
export declare function webMercatorDestination({ x, y }: { | ||
x: number; | ||
y: number; | ||
}, distance: number, bearing: number): { | ||
x: number; | ||
y: number; | ||
}; |
@@ -1,2 +0,2 @@ | ||
export declare const pixelDistance: (pointOne: { | ||
export declare const cartesianDistance: (pointOne: { | ||
x: number; | ||
@@ -3,0 +3,0 @@ y: number; |
@@ -23,2 +23,3 @@ import { TerraDrawGoogleMapsAdapter } from "./adapters/google-maps.adapter"; | ||
import { ValidateNotSelfIntersecting } from "./validations/not-self-intersecting.validation"; | ||
import { TerraDrawAngledRectangleMode } from "./modes/angled-rectangle/angled-rectangle.mode"; | ||
type FinishListener = (id: FeatureId, context: OnFinishContext) => void; | ||
@@ -223,2 +224,2 @@ type ChangeListener = (ids: FeatureId[], type: string) => void; | ||
}; | ||
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, }; | ||
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, }; |
@@ -331,2 +331,84 @@ import { test, expect } from "@playwright/test"; | ||
test.describe("angled rectangle mode", () => { | ||
const mode = "angled-rectangle"; | ||
test("mode can set and can be used to create an angled rectangle (horizontal up)", async ({ | ||
page, | ||
}) => { | ||
const mapDiv = await setupMap({ page }); | ||
await changeMode({ page, mode }); | ||
await page.mouse.click(mapDiv.width / 2, mapDiv.height / 2); | ||
await page.mouse.move(mapDiv.width / 3, mapDiv.height / 2, { steps: 30 }); | ||
await page.mouse.click(mapDiv.width / 3, mapDiv.height / 2); | ||
await page.mouse.move(mapDiv.width / 3 + 50, mapDiv.height / 3 + 50, { | ||
steps: 30, | ||
}); | ||
await page.mouse.click(mapDiv.width / 3 + 50, mapDiv.height / 3 + 50); | ||
await expectPaths({ page, count: 1 }); | ||
await expectPathDimensions({ page, width: 217, height: 74 }); | ||
}); | ||
test("mode can set and can be used to create an angled rectangle (horizontal down)", async ({ | ||
page, | ||
}) => { | ||
const mapDiv = await setupMap({ page }); | ||
await changeMode({ page, mode }); | ||
await page.mouse.click(mapDiv.width / 2, mapDiv.height / 2); | ||
await page.mouse.move(mapDiv.width / 3, mapDiv.height / 2, { steps: 30 }); | ||
await page.mouse.click(mapDiv.width / 3, mapDiv.height / 2); | ||
await page.mouse.move(mapDiv.width / 3 + 50, mapDiv.height / 3 + 200, { | ||
steps: 30, | ||
}); | ||
await page.mouse.click(mapDiv.width / 3 + 50, mapDiv.height / 3 + 200); | ||
await expectPaths({ page, count: 1 }); | ||
await expectPathDimensions({ page, width: 217, height: 84 }); | ||
}); | ||
test("mode can set and can be used to create an angled (diagonal)", async ({ | ||
page, | ||
}) => { | ||
const mapDiv = await setupMap({ page }); | ||
await changeMode({ page, mode }); | ||
await page.mouse.click(mapDiv.width / 2, mapDiv.height / 2); | ||
await page.mouse.move(mapDiv.width / 3, mapDiv.height / 3, { steps: 30 }); | ||
await page.mouse.click(mapDiv.width / 3, mapDiv.height / 3); | ||
await page.mouse.move(mapDiv.width / 3 + 150, mapDiv.height / 3 + 150, { | ||
steps: 30, | ||
}); | ||
await page.mouse.click(mapDiv.width / 3 + 150, mapDiv.height / 3 + 150); | ||
await expectPaths({ page, count: 1 }); | ||
await expectPathDimensions({ page, width: 245, height: 174 }); | ||
}); | ||
test("mode can set and can be used to create an angled (diagonal 2)", async ({ | ||
page, | ||
}) => { | ||
const mapDiv = await setupMap({ page }); | ||
await changeMode({ page, mode }); | ||
await page.mouse.click(mapDiv.width / 1.8, mapDiv.height / 1.8); | ||
await page.mouse.move(mapDiv.width / 2.5, mapDiv.height / 1.3, { | ||
steps: 30, | ||
}); | ||
await page.mouse.click(mapDiv.width / 2.5, mapDiv.height / 1.3); | ||
await page.mouse.move(mapDiv.width / 2.5 + 50, mapDiv.height / 1.3 + 50, { | ||
steps: 30, | ||
}); | ||
await page.mouse.click(mapDiv.width / 2.5 + 50, mapDiv.height / 1.3 + 50); | ||
await expectPaths({ page, count: 1 }); | ||
await expectPathDimensions({ page, width: 246, height: 213 }); | ||
}); | ||
}); | ||
test.describe("circle mode", () => { | ||
@@ -333,0 +415,0 @@ const mode = "circle"; |
@@ -56,5 +56,22 @@ import { Page, expect } from "@playwright/test"; | ||
page: Page; | ||
mode: "point" | "polygon" | "linestring" | "select" | "rectangle" | "circle"; | ||
mode: | ||
| "point" | ||
| "polygon" | ||
| "linestring" | ||
| "select" | ||
| "rectangle" | ||
| "circle" | ||
| "angled-rectangle"; | ||
}) => { | ||
const modeText = mode.charAt(0).toUpperCase() + mode.slice(1); | ||
let modeText = mode.charAt(0).toUpperCase() + mode.slice(1); | ||
if (mode.includes("-")) { | ||
modeText = mode | ||
.split("-") | ||
.map((word) => word.charAt(0).toUpperCase() + word.slice(1)) | ||
.join(" "); | ||
} else { | ||
modeText = mode.charAt(0).toUpperCase() + mode.slice(1); | ||
} | ||
const buttons = page.getByTestId("buttons"); | ||
@@ -61,0 +78,0 @@ const button = buttons.getByText(modeText, { exact: true }); |
{ | ||
"name": "terra-draw", | ||
"version": "1.0.0-beta.0", | ||
"version": "1.0.0-beta.1", | ||
"description": "Frictionless map drawing across mapping provider", | ||
@@ -8,3 +8,2 @@ "scripts": { | ||
"docs:serve": "serve ./docs", | ||
"release:beta:major": "standard-version --prerelease beta --release-as major", | ||
"release:beta:increment": "standard-version --prerelease beta", | ||
@@ -79,3 +78,3 @@ "release:beta:changelog": "tsx ./scripts/changelog-valid.ts", | ||
"microbundle": "0.15.0", | ||
"ol": "7.1.0", | ||
"ol": "10.0.0", | ||
"serve": "14.1.2", | ||
@@ -82,0 +81,0 @@ "standard-version": "9.5.0", |
@@ -17,3 +17,3 @@ <img src="./logo.png" alt="Terra Draw Logo" width="400"/> | ||
- [Leaflet](https://leafletjs.com/) v1 | ||
- [OpenLayers](https://openlayers.org/) v7 | ||
- [OpenLayers](https://openlayers.org/) v10 | ||
- [Mapbox GL JS](https://www.mapbox.com/mapbox-gljs) v2 | ||
@@ -20,0 +20,0 @@ - [MapLibre](https://maplibre.org/maplibre-gl-js/docs/) v2/v3 |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4710977
103
9840