All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
1.0.0-beta.11 (2024-12-26)
1.0.0-beta.10 (2024-12-24)
- provide snapping to line as well as feature coordinates for polygon mode (#384) (4b61c82)
- visualise snapping point and allow it to be styled (#385) (5d80719)
1.0.0-beta.9 (2024-12-21)
- allow freehand features to be automatically closed with the autoClose option (#377) (2ebe71f)
- expose the validation failure reasons for developers to check against (#382) (c9e7711)
- no longer throw error on validation failures in addFeatures and return validation status (#380) (7dc2160)
- normalise validations across the codebase so that they return valid and reason properties (#381) (775315f)
- create circle with minimum starting radius if there is no cursor movement (#370) (0d47e32)
- ensure that closingPoint property exists on closingPoint of freehand mode (#373) (f5c5953)
- ensure that features are dragged in the projection set in TerraDrawSelectMode (#360) (e9e8fc6)
- export TerraDrawCallbacks for custom adapters (#378) (e1b475f)
- move GitHub actions and guidance to Node.js version 22 (current LTS) (#371) (8520e24)
- update TypeScript to 5.6 (#366) (544eb66)
- upgrade prettier to version 9 (#376) (93436bb)
1.0.0-beta.8 (2024-10-26)
- massively reduce LoC and complexity by simplifying approach to project/unproject in test files (#356) (b40f970)
1.0.0-beta.7 (2024-10-16)
1.0.0-beta.6 (2024-10-14)
- improve the extension object to make it easier to extend Terra Draw base adapters and modes (#349) (e8a189d)
1.0.0-beta.5 (2024-10-12)
- ensure TerraDrawSensorMode line arc can be styled correctly (#346) (1639015)
- provide smoother transition of sensor depth when cursor goes into inner radius (#347) (1255432)
1.0.0-beta.4 (2024-10-12)
1.0.0-beta.3 (2024-09-29)
- add in new TerraDrawSectorMode for drawing sectors, complete with tests (#339) (f89f351)
- add/read features by user projection in OpenLayers (#332) (6168265), closes /github.com/JamesLMilner/terra-draw/pull/332#issuecomment-2356404467
- improved error message for store feature validation (c76049a)
- remove unused code from TerraDrawAngledRectangleMode (#338) (89383c6)
- simplify the render function in TerraDrawMapboxAdapter (#331) (4b8a95a)
- add examples page to the guides (#320) (03b04e6)
- add maplibre-gl-terradraw as an example (#321) (2f2792d)
- corrected typos in guides (#298) (60f5277)
- add unused code export check with knip (#335) (46c4789)
- clarify turf.js adapted code in code comments in appropriate files (#334) (fda4c65)
- updated adapter docs (#330) (b6809e5)
- upgrade github actions to the latest versions (#322) (9770068)
- add leaflet adapter unit tests (#327) (c16d056)
- add Mapbox adapter unit tests (#328) (ec067c9)
- add MapLibre unit tests (#329) (37cf404)
- add OpenLayers adapter unit tests (#333) (8436939)
- improve unit test coverage for terra-draw.ts and set unit test coverage threshold to 80% (#336) (6ec784e)
1.0.0-beta.2 (2024-08-30)
- add margin to bottom of logo to avoid overcrowding in readme (#316) (aeece63)
- update to the new Terra Draw logo (#315) (f56ac8a)
- use linebreak under logo as margin does not work on github readme (#317) (3c94434)
- update CODE_OF_CONDUCT.md email (#314) (4449de9)
- update the API documentation to open links in a new tab (#318) (e554b4e)
1.0.0-beta.1 (2024-08-14)
- ensure handling of containerPointToLatLng returning invalid values is handled correctly (#301) (d22a698)
- remove unnecessary logs from the codebase (#309) (548f53d)
- when clearing ensure ids are reset first before updating store as it may trigger events (#308) (35e6b4e)
- add openlayers example to adapters guide (#297) (b4ca302)
- Create FUNDING.yml (#305) (4ad8474)
- improve guiide to create a watching build (#294) (eb8d60c)
- update Getting Started and Modes guide to say which modes are available in mobile mode (#296) (582c5c4)
- bump supported version of OpenLayersAdapter to version 10 (#303) (b434b63)
- fix release script to ensure that beta releases pass changelog check (#311) (49cfe90)
- log out changes in release check script (#310) (2dad763)
- update docs to reflect correct beta verison, remove beta major script (#293) (e54965d)
1.0.0-beta.0 (2024-07-29)
- remove check for changelog as layout is markdown different for major release (#292) (07a25bd)
- rewrite beta release scripts (#290) (3e06954)
- update npm scripts to be correct for beta release (#291) (fefc0f3)
0.0.1-alpha.72 (2024-07-28)
0.0.1-alpha.71 (2024-07-28)
0.0.1-alpha.70 (2024-07-28)
- add [Chore] automatically to chore issues created from template (#279) (6ad29d6)
- add script for creating beta release (#287) (f218a93)
- allow configuration of loaded mapping libraries on the development page (#282) (0dfabaf)
0.0.1-alpha.69 (2024-07-06)
- add projection property for circle mode to allow globe and web mercator circle drawing (#276) (03365b6)
- remove TerraDrawGreatCircleMode, replace with insert midpoints (#263) (f5f5d04)
- add a action for ensuring conventional commits (#278) (4504ab9)
- add sideEffects: false to package.json (#273) (a5edd98)
- bump to Typescript 5.5 (#264) (ae991c5)
- move all deprecated jest toBeCalled -> toHaveBeenCalled (#265) (390e805)
- rename minSize to maxSize in ValidateMaxAreaSquareMeters. (#269) (40d7357)
0.0.1-alpha.68 (2024-06-04)
- add validate to all built in modes (#257) (22006ea)
- context object for onFinish to allow more control for developers (#261) (b760255)
- actively exclude folders from tsc to keep IDEs happy (#252) (c85acec)
- remove all carats from package.json file (#260) (e95fc6c)
0.0.1-alpha.67 (2024-05-16)
0.0.1-alpha.66 (2024-05-12)
- update documentation improvement issue template (364963b)
- update issue templates to add chore and documentation improvement options (749ebd5)
0.0.1-alpha.65 (2024-05-03)
0.0.1-alpha.64 (2024-04-24)
- move to using Node 20 and npm 10 for development (#235) (a4e58d7)
- update various development packages to latest versions (#236) (cfbed7e)
0.0.1-alpha.63 (2024-03-27)
- completely refactor resizable (9573164)
0.0.1-alpha.62 (2024-03-12)
- for circle mode provide minimum radius config and store radius in circle properties (#223) (ca301ef)
- update issue templates (#224) (76476d7)
- update issue templates, include Feature request (#225) (e843529)
0.0.1-alpha.61 (2024-03-10)
- ensure that project returns valid lat/lng when using resizable (#216) (57f126c)
- ensure that when using resizable you cannot resize after crossing origin axis (#219) (4a9fbf0)
- resizeable dragging should now track the cursor much more accurately (#217) (71272b2)
0.0.1-alpha.60 (2024-03-07)
- ensure 'finish' event is called for selected polygons with resizeable option (#212) (2cb6fc3)
- make it so resizeable no longer requires draggable to be true to work (#213) (9bb227c)
0.0.1-alpha.59 (2024-03-05)
- add opposite resizeable option for select mode (#204) (0ce778f)
- add planar options, opposite-planar and center-planar for resizeable in select mode (#207) (2a75186)
0.0.1-alpha.58 (2024-02-25)
- create ready event which can be used by the Google Maps Adapter to avoid async issues (#201) (81a010f)
0.0.1-alpha.57 (2024-02-11)
0.0.1-alpha.56 (2024-02-07)
0.0.1-alpha.55 (2024-01-28)
- clarify the requiremnts for google maps and throw error if element id is not set (#178) (aab4761)
- improve documentation around changing mode (#173) (9a74ef8)
0.0.1-alpha.54 (2024-01-15)
0.0.1-alpha.53 (2023-12-30)
- add TerraDrawArcGISMapsSDKAdapter to terra-draw exports (#126) (a2cb2ba), closes #58
- ensure circle mode works on touch devices (#152) (ebdaed6)
- ensure coordinate precision is set via the config to the adapter (#141) (0407295)
- ensure cursors are respected properly for the Google Maps API (#134) (360981a)
- ensure full commit history is fetched for releasing so changelog is populated correctly (#158) (12c375f)
- ensure that rendered layers are removed properly on clear for MapboxGL/MapLibreGL (#140) (3aa95b5)
- fix another test after Google Maps API keyboard fix (7214528)
- fix tests for Google Maps API after keyboard fix (af40901)
- handle coordinate precision at the adapter level and make sure modes respect it (47555a8)
- add basic tests for Rectangle, Circle, Great Circle and Select modes (#151) (4825301)
- fix unit tests for arcgis adapter (2d40699)
- add better documentation on selecting features (#154) (6691ae8)
- add store documentation to the guides (#155) (0a25d0e)
- expanded guide pages and other small improvements (#123) (b550669)
- guides overhaul (#128) (6eb26c3)
- update docs to reflect TerraDrawArcGISMapsSDKAdapter export (79cfb56)
- add assurances to release script to prevent invalid changelog (#157) (df04e5a)
- add clarification around E2E README (#149) (f18a2aa)
- add e2e testing suite using Playwright (#144) (05c00d9)
- add linting as a step on CI (#146) (a690ba7)
- allow release from GitHub actions by using PAT (#159) (a791968)
- attempt push to main first before pushing tags incase push to main fails (#160) (935f472)
- cache playwright browser (#148) (e017e15)
- release: 0.0.1-alpha.52 (5abd9e8)
0.0.1-alpha.52 (2023-12-26)
- add TerraDrawArcGISMapsSDKAdapter to terra-draw exports (#126) (a2cb2ba), closes #58
- ensure circle mode works on touch devices (#152) (ebdaed6)
- ensure coordinate precision is set via the config to the adapter (#141) (0407295)
- ensure cursors are respected properly for the Google Maps API (#134) (360981a)
- ensure that rendered layers are removed properly on clear for MapboxGL/MapLibreGL (#140) (3aa95b5)
- fix another test after Google Maps API keyboard fix (7214528)
- fix tests for Google Maps API after keyboard fix (af40901)
- handle coordinate precision at the adapter level and make sure modes respect it (47555a8)
- expanded guide pages and other small improvements (#123) (b550669)
- update docs to reflect TerraDrawArcGISMapsSDKAdapter export (79cfb56)
- add clarification around E2E README (#149) (f18a2aa)
- add e2e testing suite using Playwright (#144) (05c00d9)
- add linting as a step on CI (#146) (a690ba7)
- cache playwright browser (#148) (e017e15)
- add basic tests for Rectangle, Circle, Great Circle and Select modes (#151) (4825301)
- fix unit tests for arcgis adapter (2d40699)
0.0.1-alpha.51 (2023-11-29)
- remove specific check for map event element to fix interacting with all controls (ab7853a)
0.0.1-alpha.50 (2023-11-28)
- ensure the event element is the map surface to fix clicking on controls (9190738)
0.0.1-alpha.49 (2023-11-27)
- add devcontainer configuration (dcd6886)
- change default minPixelDragDistanceSelecting to 1 (027f63c)
- ensure post-create runs in codespaces (ea354a9)
- ensure that google maps cursor changing work across different language settings (cb8431e)
- ignore input events not on the map surface (#121) (2a8a176)
- improve test coverage of Google Maps adapter (814fc17)
- move Adapter event listener init and small convention improvements (252c9ef), closes /github.com/JamesLMilner/terra-draw/pull/98#discussion_r1359947432 /github.com/JamesLMilner/terra-draw/pull/103#issuecomment-1773853793
- fix eslint error in circle unit test (a131686)
- fix nocheck testing on windows (a7ad32a)
- prevent dev server from reloading unnecessarily (89843cf)
- remove style.type setting for style sheets as it is deprecated (321d438)
- update eslint plugins to get commit hooks working (fa054f4)
- update github actions to use Node v18 (74e78e6)
- update typescript from version 5.0.3 to 5.2.2 (25bbb26)
- added getting started code for MapLibre (#119) (fa47aa1)
- updated DEVELOPMENT to reference Node 18 (96fc5d4)
0.0.1-alpha.48 (2023-09-20)
- prevent creating points around closing point (d28b076)
- corrected project/unproject when tilting/rotating a google vector map (25fe7a2)
- fire an onFinish event when finished dragging a coordinate or feature (5336035)
- document how to use terra draw with a script tag (1e069b4)
- remove env file (e3f4422)
- remove ts-node from dependencies list (531d0d1)
0.0.1-alpha.47 (2023-09-01)
- add getFeaturesAtLngLat and getFeaturesAtPointerEvent methods to terra draw API (f5f824f)
- add self intersection prevention as a configuration option for select mode (a975295)
- allow custom limits of microdrags whilst selecting (c02a067)
- resolve issue for polygon snapping where first click does not snap (e13c4e6)
0.0.1-alpha.46 (2023-09-01)
- add getFeaturesAtLngLat and getFeaturesAtPointerEvent methods to terra draw API (f5f824f)
- add self intersection prevention as a configuration option for select mode (a975295)
- allow custom limits of microdrags whilst selecting (c02a067)
- resolve issue for polygon snapping where first click does not snap (e13c4e6)
- update npmignore file (d827213)
0.0.1-alpha.45 (2023-08-08)
- add basic tests for arcgis maps sdk adapter (7fe12a3)
- add Esri ArcGIS Maps SDK adapter (0fece22)
- add tests for render method (14a3733)
- adjust styling to equal other map adapters (2d07973)
- allow cursors to be configured for built in modes (57a5db2)
- better registration of selections by ignoring microdrags even when not drawing (cd7a8ea)
- pass modes as array rather than object (80885cc)
- add ArcGIS JavaScript SDK to the README (1801e50)
- split out common patterns guide to its own file (ef721cf)
- update docs (f1d1832)
0.0.1-alpha.44 (2023-07-25)
- ensure that coordinate precision is limited when dragging a feature (b7da22a)
- naive handling of antimeridian crossing for dragging coordinates (8cdb7ab)
0.0.1-alpha.43 (2023-07-24)
- add unit tests for function styling for circle, freehand and great circle (78252d7)
- manually update CHANGELOG (sigh) (8ce3dd8)
0.0.1-alpha.42 (2023-07-24)
- add function based styling for all modes and styles (11d6c17)
- update alpha release script (d1a0bf5)
0.0.1-alpha.41 (2023-07-16)
0.0.1-alpha.40 (2023-07-15)
- more robust handling of select mode styling (b5350cc)
- add instructions on how to style selected data to getting started guide (c012773)
0.0.1-alpha.39 (2023-07-15)
- ensure projection is available in google maps adapter to prevent errors (3d0a60d)
- make sure points in point mode that are selected are visibly different (8016a2e)
0.0.1-alpha.38 (2023-07-02)
- ensure styling is updated for MapboxGL/MapLibreGL style only updates (baa63da)
- ensure terra draw instance is enabled on event callback (bdc22f8)
- handle select mode dragging features out of lat/lng bounds (52bd009)
- update docs (6229136)
0.0.1-alpha.37 (2023-07-01)
- enable/disable drag rotations in MapboxGL/MapLibre adapters when calling setDraggability (8c62512)
- handle errors in unproject in openlayers adapter (bc117fa)
- resolve several issues with selection (820f7a6)
- increase test coverage (514be2f)
0.0.1-alpha.36 (2023-06-20)
- ensure that preventDefault is only called when necessary for keyboard inputs (108e20d)
0.0.1-alpha.35 (2023-06-13)
- fix clearLayers not working correctly for mapbox/maplibre adapters (f80db0e)
- fix failing polygon mode unit test (65ba076)
- fix styling issues for polygon and select modes (d8e852c)
0.0.1-alpha.34 (2023-06-11)
- add removeFeatures method to terra draw API (b0999d2)
- don't update closing points on mouse move (c2b7ce8)
- fix issue with mapboxgl adapter where geometry renders were lost (bc1a937)
- for mapbox/maplibre adapter, only update data for layers that have changes (a3f5c8a)
- update docs (701a66a)
0.0.1-alpha.33 (2023-06-04)
- improve performance of mapbox gl/maplibre gl adapter (67082af)
0.0.1-alpha.32 (2023-06-04)
- add the addFeatures method to allow adding of external data (b6e0043)
- update docs (36997cc)
0.0.1-alpha.31 (2023-05-22)
- add onFinish event to terra draw (fb36988)
- update docs (ed78e25)
0.0.1-alpha.30 (2023-05-21)
- allow wait as a setCursor parameter (839bb90)
- clear now removes all rendered layers (fd7a208)
- correctly name styling typings for rectangle mode (a460a3a)
- update docs (ea4f52c)
0.0.1-alpha.29 (2023-05-14)
- prefer top level types for easier importing (5570bb2)
0.0.1-alpha.28 (2023-05-14)
- export necessary types for proper 3rd party extension (843fe2f)
0.0.1-alpha.27 (2023-05-06)
- address potential issue with spreading Sets for the held keys (7fdf0b0)
- ensure that container coordinates are correct when they are nested (13aef09)
0.0.1-alpha.26 (2023-04-10)
- avoid mass creation and deletion of geometries in leaflet adapter render (773208a)
0.0.1-alpha.25 (2023-04-07)
- allow zIndexing of linestrings and polygons for TerraDrawLeafletAdapter (17a4441)
0.0.1-alpha.24 (2023-04-07)
- export base adapter and mode so that 3rd party developers can extend (1662960)
- add example drawing gif image to readme (edde444)
- crop gif to make it a bit cleaner (6fc4adf)
- update docs (75c0848)
0.0.1-alpha.23 (2023-04-04)
- cache container for all adapters to avoid refetching it (d0e3332)
- google maps adapter now uses base pointer based event system (03b131d)
- move google maps to use base adapter (5e52f4d)
- move mapbox adapter to use the base adapter (08ddb8e)
- move openlayers adapter to use base event adapter (92213f8)
- turn off tolerance on geojson layers for mapbox/maplibre adapters (fb1e7a2)
- add better comments around the getting started example (811d5b6)
- add getting started guide (c926568)
- add useful comments to adapter listener (e882911)
- better typescript typing for onStyleChange (476fe3c)
- bump typedoc (be457de)
- bump typescript to version 5 (0dedc54)
- create start and stop as abstract methods on base.mode (bb1d330)
- fix polygon.mode.spec test for offset change (23ef0ab)
- improve guides with additional information for new users (ec785d5)
- minor tidy up to all adapters (e644459)
- remove logs (a7c00c2)
- remove uncessary override of point mode setStarted (e8bebca)
- rename base-adapter.ts to base.adapter.ts for consistency (753c77c)
- swap leaflet and openlayers ordering in development app (4ebf3c8)
- update docs (29ff37a)
- update wording around getting started guide (f6bc21e)
0.0.1-alpha.22 (2023-03-26)
- add custom event pointer event handling system, use in leaflet adapter (68c551b)
- update docs (a8a91c3)
0.0.1-alpha.21 (2023-03-24)
- remove scratch folder (6c671d6)
0.0.1-alpha.20 (2023-03-24)
- reuse draw even in leaflet adapter to prevent runtime error (d7f6f34)
0.0.1-alpha.19 (2023-03-23)
- remove mousemove event listener from leaflet adapter and replace with pointermove (b7baa4c)
- update docs folder (62b80dc)
0.0.1-alpha.18 (2023-03-19)
- better parity between mouse and pointer experiences (00c219d)
- ensure that closing points for polygons are update on click (25c0886)
- fix issues with prettier conflicting with eslint (9849bce)
0.0.1-alpha.17 (2023-03-12)
- fix unit test for great-circle-snapping.behavior (c90cd86)
- use project/unproject to get midpoints that are visually centered (3581da2)
- add better test coverage for great circle mode (4073553)
- husk precommit only readd linted files (2eb6138)
- make sure all mode tests are labelled correctly (a5dfe4b)
- make sure test files are no covered in jest coverage when type checking disabled (0b271b6)
- remove unused import from static.mode.spec.ts (e2bf578)
0.0.1-alpha.16 (2023-02-19)
- add great circle line mode (72136a0)
- add local scratch folder to allow for experimentation (828e1dd)
- fix scratch pad folder location for local development (107db58)
0.0.1-alpha.15 (2023-02-05)
- allow keyEvents to be set to null to prevent keyboard interactions on modes (6af865c)
- better handle event listening in adapters by creating AdapterListener abstraction (7f0cac6)
- readd precommit git add command (bc57234)
- update docs (d0c9454)
0.0.1-alpha.14 (2023-01-08)
- add clear to the public API (6a8fa72)
- ensure that terra draw is enabled before calling setMode (deff0fb)
- make sure circle mode respects configured coordinate precision (cba0aa7)
- add npm badge to README, shorten CI badge text (e9d7b66)
- bump dependency packages (a7a2bcf)
- fix the README logo (b48d6d7)
0.0.1-alpha.13 (2022-12-20)
- add initial tests feature styling tests for circle, freehand and polygon (066967c)
- add TerraDrawMapLibreGLAdapter and TerraDrawOpenLayersAdapter to docs (6b78c01)
- add TerraDrawOpenLayersAdapter to terra-draw exports (c5f3ade)
- remove default controls from all maps (6ffde55)
- remove outdated list of adapters in README introduction (21a6aca)
0.0.1-alpha.12 (2022-12-11)
- add openlayers adapter (1454086)
- add rectangle mode as a builtin mode (ca9a12b)
- disable double click when a drawing mode is enabled (ba02ac6)
- add keywords to package.json (1270f26)
- add openlayers to development example (0d24796)
- do not use git add . with husky pre-commit hook (032d002)
- update list of supported libraries in README (2825d6c)
0.0.1-alpha.11 (2022-11-29)
- add MapLibre adapter (464dce4)
- add automated documentation to the project (0bbefbb)
- add closing point to linestring ot make easier to close for users (e14b276)
- add keybinding to allow finishing of geometries on keypress (9b2b88e)
- adding closing points for drawing polygons (c569ed6)
- use minimum distance approach instead of nth event for freehand (240952d)
- add better unit test coverage for select mode (46f3e3c)
- add development to .npmignore (8fa412f)
- add docs to .npmignore (df907c3)
- add documentaiton for development and contributing (4148d3e)
- add links and licenses where appropriate (7e5aa62)
- add logo to README (149a519)
- add npm install instructions to README (2094716)
- add precommit hooks (752c2f8)
- add src to .npmignore (0d769b8)
- add TerraDrawRenderMode as an export (8f7fd60)
- add types property at top level of package.json (2b53b63)
- add types to exports in package.json (94f5b5c)
- bump to 0.0.1-alpha.9 (a4bb461)
- bump to 0.1-alpha.2 (003ddb2)
- bump to 0.1-alpha.3 (f56c5d8)
- bump to 0.1-alpha.4 (198b281)
- bump to 0.1-alpha.5 (daa6630)
- bump to 0.1-alpha.6 (86f17d6)
- bump to 0.1-alpha.7 (0e98f38)
- bump to 0.1-alpha.8 (5065f83)
- change styling API to work on a per feature level (ef43294)
- clean up website section of README (214b39f)
- ensure default comes last in exports object of package.json (1b7c849)
- fix typescript typings location (756586a)
- more select unit tests (e440db8)
- polygon closing snapping, identical coord protection (27eceaf)
- readd logo (63ee2dc)
- remove docs folder (2f74921)
- remove futher files from publish (b71ea63)
- remove styling experiment from development (808dfbb)
- remove top level files (ed39533)
- remove unused imports (a2ba004)
- use webpack-dev-server for development folder (7783e6a)