From 7f6fd83f04bfb9e2300a352ca7f14b0203cd48c8 Mon Sep 17 00:00:00 2001 From: Anvesh Arrabochu Date: Tue, 16 Apr 2019 19:07:55 +0530 Subject: [PATCH 1/9] Added CircleMode to MODES.md (#882) --- docs/MODES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/MODES.md b/docs/MODES.md index 27acac85a..58bc68e24 100644 --- a/docs/MODES.md +++ b/docs/MODES.md @@ -71,6 +71,7 @@ _please feel free to add your own modes to this list via a PR_ - [Rotate Mode](https://github.com/mapstertech/mapbox-gl-draw-rotate-mode): Add ability to Rotate GL Draw features - [Radius Mode](https://gist.github.com/chriswhong/694779bc1f1e5d926e47bab7205fa559): Draws a polygon circle based on a center vertex and radius line - [Rectangle Mode](https://github.com/edgespatial/mapbox-gl-draw-rectangle-mode) +- [Circle Mode](https://github.com/iamanvesh/mapbox-gl-draw-circle) ## Life Cycle Functions From bf2b3bf7497001f0ceedeaf8d6952caaba6b771c Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Wed, 22 May 2019 18:18:27 -0400 Subject: [PATCH 2/9] update peer dependency --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 29fb6bb13..1def0c9dc 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "unassertify": "^2.0.3" }, "peerDependencies": { - "mapbox-gl": ">=0.27.0 <=0.51.0" + "mapbox-gl": ">=0.27.0 <2.0.0" }, "dependencies": { "@mapbox/geojson-area": "^0.2.1", From 881b9563c9d5d6a8d903037675247409dd96f614 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Wed, 22 May 2019 18:26:44 -0400 Subject: [PATCH 3/9] update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f34770f1c..9f82331fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Changelog +## 1.1.2 + +- update mapbox-gl peer dependency + ## 1.1.1 - update mapbox-gl peer dependency From 9c79441045fbbbfa2696efdb9989d712ffa0a4b2 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Wed, 22 May 2019 18:26:52 -0400 Subject: [PATCH 4/9] 1.1.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1def0c9dc..c7b8cfd5b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mapbox/mapbox-gl-draw", - "version": "1.1.1", + "version": "1.1.2", "description": "A drawing component for Mapbox GL JS", "homepage": "https://github.com/mapbox/mapbox-gl-draw", "author": "mapbox", From ae0dbccc685e36a71c9966eaf05ae518f73aff0e Mon Sep 17 00:00:00 2001 From: GeoStart Date: Tue, 4 Jun 2019 14:24:59 +0200 Subject: [PATCH 5/9] Add Assisted Rectangle Mode reference to MODES.md (#892) --- docs/MODES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/MODES.md b/docs/MODES.md index 58bc68e24..7fe175c94 100644 --- a/docs/MODES.md +++ b/docs/MODES.md @@ -72,6 +72,7 @@ _please feel free to add your own modes to this list via a PR_ - [Radius Mode](https://gist.github.com/chriswhong/694779bc1f1e5d926e47bab7205fa559): Draws a polygon circle based on a center vertex and radius line - [Rectangle Mode](https://github.com/edgespatial/mapbox-gl-draw-rectangle-mode) - [Circle Mode](https://github.com/iamanvesh/mapbox-gl-draw-circle) +- [Assisted Rectangle Mode](https://github.com/geostarters/mapbox-gl-draw-assisted-rectangle-mode) ## Life Cycle Functions From 39c85b3dda4c4289554a068d559963d359751b10 Mon Sep 17 00:00:00 2001 From: Andrew Harvey Date: Fri, 26 Jul 2019 04:10:47 +0800 Subject: [PATCH 6/9] fix link to example source in publishing instructions (#873) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9d8cf54ad..6e12be08a 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ git push npm publish ``` -Update the version number in [the GL JS example](https://github.com/mapbox/mapbox-gl-js/blob/mb-pages/docs/pages/example/mapbox-gl-draw.html). +Update the version number in [the GL JS example](https://github.com/mapbox/mapbox-gl-js/blob/publisher-production/docs/pages/example/mapbox-gl-draw.html). ### Naming actions From af26cc41d215e17929edcfb852050516889a1e60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20St=C3=BCckler?= Date: Tue, 1 Oct 2019 20:31:47 +0200 Subject: [PATCH 7/9] fix: dead links (#919) --- docs/MODES.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/MODES.md b/docs/MODES.md index 7fe175c94..de645f81c 100644 --- a/docs/MODES.md +++ b/docs/MODES.md @@ -206,7 +206,7 @@ Triggered when the mode is being exited, to be used for cleaning up artifacts su ### MODE.onTrash -Triggered when [draw.trash()](https://github.com/mapbox/mapbox-gl-draw/blob/master/API.md#trash-draw) is called. +Triggered when [draw.trash()](https://github.com/mapbox/mapbox-gl-draw/blob/master/docs/API.md#trash-draw) is called. **Parameters** @@ -214,7 +214,7 @@ Triggered when [draw.trash()](https://github.com/mapbox/mapbox-gl-draw/blob/mast ### MODE.onCombineFeature -Triggered when [draw.combineFeatures()](https://github.com/mapbox/mapbox-gl-draw/blob/master/API.md#combinefeatures-draw) is called. +Triggered when [draw.combineFeatures()](https://github.com/mapbox/mapbox-gl-draw/blob/master/docs/API.md#combinefeatures-draw) is called. **Parameters** @@ -222,7 +222,7 @@ Triggered when [draw.combineFeatures()](https://github.com/mapbox/mapbox-gl-draw ### MODE.onUncombineFeature -Triggered when [draw.uncombineFeatures()](https://github.com/mapbox/mapbox-gl-draw/blob/master/API.md#uncombinefeatures-draw) is called. +Triggered when [draw.uncombineFeatures()](https://github.com/mapbox/mapbox-gl-draw/blob/master/docs/API.md#uncombinefeatures-draw) is called. **Parameters** @@ -231,7 +231,7 @@ Triggered when [draw.uncombineFeatures()](https://github.com/mapbox/mapbox-gl-dr ### MODE.toDisplayFeatures Triggered per feature on render to convert raw features into set of features for display on the map -See [styling draw](https://github.com/mapbox/mapbox-gl-draw/blob/master/API.md#styling-draw) for information about what geojson properties Draw uses as part of rendering. +See [styling draw](https://github.com/mapbox/mapbox-gl-draw/blob/master/docs/API.md#styling-draw) for information about what geojson properties Draw uses as part of rendering. **Parameters** @@ -337,7 +337,7 @@ Clear all selected coordinates ### this.setActionableState Indicate if the different actions are currently possible with your mode -See [draw.actionalbe](https://github.com/mapbox/mapbox-gl-draw/blob/master/API.md#drawactionable) for a list of possible actions. All undefined actions are set to **false** by default +See [draw.actionalbe](https://github.com/mapbox/mapbox-gl-draw/blob/master/docs/API.md#drawactionable) for a list of possible actions. All undefined actions are set to **false** by default **Parameters** From 04529e51d901f297080a73456c35ac267246dd1f Mon Sep 17 00:00:00 2001 From: huarui Date: Mon, 25 Feb 2019 12:58:22 -0800 Subject: [PATCH 8/9] draw buttons should cancel on toggle --- src/ui.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ui.js b/src/ui.js index 5bc756b08..1ce0ea010 100644 --- a/src/ui.js +++ b/src/ui.js @@ -69,6 +69,7 @@ module.exports = function(ctx) { const clickedButton = e.target; if (clickedButton === activeButton) { deactivateButtons(); + options.onDeactivate(); return; } @@ -109,7 +110,8 @@ module.exports = function(ctx) { container: controlGroup, className: Constants.classes.CONTROL_BUTTON_LINE, title: `LineString tool ${ctx.options.keybindings ? '(l)' : ''}`, - onActivate: () => ctx.events.changeMode(Constants.modes.DRAW_LINE_STRING) + onActivate: () => ctx.events.changeMode(Constants.modes.DRAW_LINE_STRING), + onDeactivate: () => ctx.events.trash() }); } @@ -118,7 +120,8 @@ module.exports = function(ctx) { container: controlGroup, className: Constants.classes.CONTROL_BUTTON_POLYGON, title: `Polygon tool ${ctx.options.keybindings ? '(p)' : ''}`, - onActivate: () => ctx.events.changeMode(Constants.modes.DRAW_POLYGON) + onActivate: () => ctx.events.changeMode(Constants.modes.DRAW_POLYGON), + onDeactivate: () => ctx.events.trash() }); } @@ -127,7 +130,8 @@ module.exports = function(ctx) { container: controlGroup, className: Constants.classes.CONTROL_BUTTON_POINT, title: `Marker tool ${ctx.options.keybindings ? '(m)' : ''}`, - onActivate: () => ctx.events.changeMode(Constants.modes.DRAW_POINT) + onActivate: () => ctx.events.changeMode(Constants.modes.DRAW_POINT), + onDeactivate: () => ctx.events.trash() }); } From dbeffa687c40465d4e80d8dce4cf49b2d1327710 Mon Sep 17 00:00:00 2001 From: Sebastien Bousquet Date: Fri, 12 Apr 2019 09:33:12 +0200 Subject: [PATCH 9/9] Emit less times the mouseover event --- package.json | 4 ++-- src/events.js | 4 ++-- src/lib/mode_handler.js | 8 +++++--- test/mode_handler.test.js | 10 +++++----- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index c7b8cfd5b..e5607589e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@mapbox/mapbox-gl-draw", - "version": "1.1.2", + "name": "@gisaia-team/mapbox-gl-draw", + "version": "1.1.3", "description": "A drawing component for Mapbox GL JS", "homepage": "https://github.com/mapbox/mapbox-gl-draw", "author": "mapbox", diff --git a/src/events.js b/src/events.js index bd98eaacd..557ee4a3e 100644 --- a/src/events.js +++ b/src/events.js @@ -174,7 +174,7 @@ module.exports = function(ctx) { } currentModeName = modename; const mode = modebuilder(ctx, nextModeOptions); - currentMode = setupModeHandler(mode, ctx); + currentMode = setupModeHandler(mode, currentModeName, ctx); if (!eventOptions.silent) { ctx.map.fire(Constants.events.MODE_CHANGE, { mode: modename}); @@ -203,7 +203,7 @@ module.exports = function(ctx) { const api = { start: function() { currentModeName = ctx.options.defaultMode; - currentMode = setupModeHandler(modes[currentModeName](ctx), ctx); + currentMode = setupModeHandler(modes[currentModeName](ctx), currentModeName, ctx); }, changeMode, actionable, diff --git a/src/lib/mode_handler.js b/src/lib/mode_handler.js index 22c163b16..32e7c8a10 100644 --- a/src/lib/mode_handler.js +++ b/src/lib/mode_handler.js @@ -1,5 +1,5 @@ -const ModeHandler = function(mode, DrawContext) { +const ModeHandler = function(mode, modename, DrawContext) { const handlers = { drag: [], @@ -38,7 +38,7 @@ const ModeHandler = function(mode, DrawContext) { const handle = handles[iHandle]; if (handle.selector(event)) { handle.fn.call(ctx, event); - DrawContext.store.render(); + if (handle.fn.render !== false) DrawContext.store.render(); DrawContext.ui.updateMapClasses(); // ensure an event is only handled once @@ -79,7 +79,9 @@ const ModeHandler = function(mode, DrawContext) { delegate('click', event); }, mousemove: function(event) { - delegate('mousemove', event); + if (modename !== 'simple_select' && modename !== 'direct_select' && modename !== 'limit_vertex') { + delegate('mousemove', event); + } }, mousedown: function(event) { delegate('mousedown', event); diff --git a/test/mode_handler.test.js b/test/mode_handler.test.js index 679a2c09f..815880128 100644 --- a/test/mode_handler.test.js +++ b/test/mode_handler.test.js @@ -39,7 +39,7 @@ test('ModeHandler calling mode.start with context, and delegation functionality' }); const drawContext = createMockModeHandlerContext(); - const mh = modeHandler(mode, drawContext); + const mh = modeHandler(mode, 'mode.start', drawContext); t.equal(handleStartSpy.callCount, 1, 'start was called on mode handler creation'); t.equal(typeof startContext.on, 'function', 'start context has on()'); t.equal(typeof startContext.render, 'function', 'start context has render()'); @@ -137,7 +137,7 @@ test('ModeHandler calling mode.start with context, and delegation functionality' test('ModeHandler#stop calling mode.stop', t => { const mode = createMockMode(); - const mh = modeHandler(mode, createMockModeHandlerContext()); + const mh = modeHandler(mode, 'mode.stop', createMockModeHandlerContext()); mh.stop(); t.equal(mode.stop.callCount, 1, 'mode.stop called'); @@ -148,7 +148,7 @@ test('ModeHandler#stop calling mode.stop', t => { test('ModeHandler#stop not calling nonexistent mode.stop', t => { const mode = createMockMode(); delete mode.stop; - const mh = modeHandler(mode, createMockModeHandlerContext()); + const mh = modeHandler(mode, 'mode.stop', createMockModeHandlerContext()); t.doesNotThrow(() => { mh.stop(); @@ -160,7 +160,7 @@ test('ModeHandler#stop not calling nonexistent mode.stop', t => { test('Modehandler#trash', t => { const mode = createMockMode(); const drawContext = createMockModeHandlerContext(); - const mh = modeHandler(mode, drawContext); + const mh = modeHandler(mode, 'mode.trash', drawContext); mh.trash(); t.equal(mode.trash.callCount, 1, 'mode.trash called'); @@ -173,7 +173,7 @@ test('Modehandler#trash without a mode.trash', t => { const mode = createMockMode(); delete mode.trash; const drawContext = createMockModeHandlerContext(); - const mh = modeHandler(mode, drawContext); + const mh = modeHandler(mode, 'mode.trash', drawContext); t.doesNotThrow(() => { mh.trash();