From af9f8f9678c7bc49ebec43346d87679fd7cf935c Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 25 Oct 2017 19:08:17 -0400 Subject: [PATCH 1/5] move layer: above shapes and images to toppaper --- src/plot_api/plot_api.js | 19 +++++++++---------- test/image/baselines/pie_style.png | Bin 26499 -> 27766 bytes test/image/mocks/pie_style.json | 25 ++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 75f6b092529..cc77e696ff1 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -2830,24 +2830,23 @@ function makePlotFramework(gd) { // single geo layer for the whole plot fullLayout._geolayer = fullLayout._paper.append('g').classed('geolayer', true); - // upper shape layer - // (only for shapes to be drawn above the whole plot, including subplots) - var layerAbove = fullLayout._paper.append('g') - .classed('layer-above', true); - fullLayout._imageUpperLayer = layerAbove.append('g') - .classed('imagelayer', true); - fullLayout._shapeUpperLayer = layerAbove.append('g') - .classed('shapelayer', true); - // single pie layer for the whole plot fullLayout._pielayer = fullLayout._paper.append('g').classed('pielayer', true); // fill in image server scrape-svg fullLayout._glimages = fullLayout._paper.append('g').classed('glimages', true); - // lastly info (legend, annotations) and hover layers go on top + // lastly upper shapes, info (legend, annotations) and hover layers go on top // these are in a different svg element normally, but get collapsed into a single // svg when exporting (after inserting 3D) + // upper shapes/images are only those drawn above the whole plot, including subplots + var layerAbove = fullLayout._toppaper.append('g') + .classed('layer-above', true); + fullLayout._imageUpperLayer = layerAbove.append('g') + .classed('imagelayer', true); + fullLayout._shapeUpperLayer = layerAbove.append('g') + .classed('shapelayer', true); + fullLayout._infolayer = fullLayout._toppaper.append('g').classed('infolayer', true); fullLayout._zoomlayer = fullLayout._toppaper.append('g').classed('zoomlayer', true); fullLayout._hoverlayer = fullLayout._toppaper.append('g').classed('hoverlayer', true); diff --git a/test/image/baselines/pie_style.png b/test/image/baselines/pie_style.png index a0ff83a138a9435f51e6ea1f1b2416765fe431f8..14a7aca811d3e4786162f11fbbefc0798d2e54d3 100644 GIT binary patch literal 27766 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�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 diff --git a/test/image/mocks/pie_style.json b/test/image/mocks/pie_style.json index d27a8b61f4b..e88a658322f 100644 --- a/test/image/mocks/pie_style.json +++ b/test/image/mocks/pie_style.json @@ -30,6 +30,29 @@ "height": 400, "width": 500, "paper_bgcolor": "#ddd", - "showlegend": false + "showlegend": false, + "shapes": [{ + "type": "rect", + "xref": "paper", + "yref": "paper", + "x0": 0, + "y0": 0.4, + "x1": 1, + "y1": 0.6, + "fillcolor": "rgba(128, 0, 0, 0.5)", + "line": {"width": 0}, + "layer": "below" + }, { + "type": "rect", + "xref": "paper", + "yref": "paper", + "x0": 0.4, + "y0": 0, + "x1": 0.6, + "y1": 1, + "fillcolor": "rgba(0, 0, 128, 0.5)", + "line": {"width": 0}, + "layer": "above" + }] } } From 016279760371911039e5c316496a34881a63e59e Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 25 Oct 2017 19:41:06 -0400 Subject: [PATCH 2/5] move updatemenus to their own layer above infolayer --- src/components/updatemenus/draw.js | 2 +- src/plot_api/plot_api.js | 1 + test/image/baselines/updatemenus.png | Bin 29417 -> 34688 bytes test/image/mocks/updatemenus.json | 20 +++++++++++++++++--- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/components/updatemenus/draw.js b/src/components/updatemenus/draw.js index 39efaf73cdd..c8739f601c2 100644 --- a/src/components/updatemenus/draw.js +++ b/src/components/updatemenus/draw.js @@ -54,7 +54,7 @@ module.exports = function draw(gd) { */ // draw update menu container - var menus = fullLayout._infolayer + var menus = fullLayout._menulayer .selectAll('g.' + constants.containerClassName) .data(menuData.length > 0 ? [0] : []); diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index cc77e696ff1..e4a1e83d9bb 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -2848,6 +2848,7 @@ function makePlotFramework(gd) { .classed('shapelayer', true); fullLayout._infolayer = fullLayout._toppaper.append('g').classed('infolayer', true); + fullLayout._menulayer = fullLayout._toppaper.append('g').classed('menulayer', true); fullLayout._zoomlayer = fullLayout._toppaper.append('g').classed('zoomlayer', true); fullLayout._hoverlayer = fullLayout._toppaper.append('g').classed('hoverlayer', true); diff --git a/test/image/baselines/updatemenus.png b/test/image/baselines/updatemenus.png index 616f19ebe79014e0a4a22d7b61e04cccad686633..4cd63cf3296d47c5e17650030d1cdd571de583a7 100644 GIT binary patch literal 34688 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�(CsA=k3v2GbJin)E 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 W?Ynn8>yN;HH&nG%O0M61_P+q6u$iL( literal 29417 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 diff --git a/test/image/mocks/updatemenus.json b/test/image/mocks/updatemenus.json index 32cd7e55e7d..7cfb9ca9ed9 100644 --- a/test/image/mocks/updatemenus.json +++ b/test/image/mocks/updatemenus.json @@ -79,6 +79,16 @@ }, "visible": false, "name": "Data set 3" + }, + { + "x": [2, 3, 4], + "y": [0.4, 0.6, 0.8], + "z": [[1, 2], [3, 4]], + "type": "heatmap", + "colorbar": { + "x": -0.2, + "y": 0.6 + } } ], "layout": { @@ -123,7 +133,8 @@ true, false, false, - false + false, + true ] ], "label": "Data set 0" @@ -136,7 +147,8 @@ false, true, false, - false + false, + true ] ], "label": "Data set 1" @@ -149,7 +161,8 @@ false, false, true, - false + false, + true ] ], "label": "Data set 2" @@ -162,6 +175,7 @@ false, false, false, + true, true ] ], From 5039aa51a21312770d14df85dd75eb8798f78460 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 25 Oct 2017 21:26:59 -0400 Subject: [PATCH 3/5] fix shape editing --- src/components/shapes/draw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/shapes/draw.js b/src/components/shapes/draw.js index 6b51ce15461..bfcd58944d8 100644 --- a/src/components/shapes/draw.js +++ b/src/components/shapes/draw.js @@ -57,7 +57,7 @@ function draw(gd) { function drawOne(gd, index) { // remove the existing shape if there is one. // because indices can change, we need to look in all shape layers - gd._fullLayout._paper + gd._fullLayout._paperdiv .selectAll('.shapelayer [data-index="' + index + '"]') .remove(); From 4e627d9accae479e0a9dad50aeed2204a3fe5bff Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 25 Oct 2017 21:27:20 -0400 Subject: [PATCH 4/5] fix updatemenu test --- test/jasmine/tests/updatemenus_test.js | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/test/jasmine/tests/updatemenus_test.js b/test/jasmine/tests/updatemenus_test.js index 523a2d6f5e4..ed475f9614a 100644 --- a/test/jasmine/tests/updatemenus_test.js +++ b/test/jasmine/tests/updatemenus_test.js @@ -826,7 +826,7 @@ describe('update menus interaction with other components:', function() { afterEach(destroyGraphDiv); - it('buttons show be drawn above sliders', function(done) { + it('draws buttons above sliders', function(done) { Plotly.plot(createGraphDiv(), [{ x: [1, 2, 3], @@ -869,19 +869,12 @@ describe('update menus interaction with other components:', function() { }) .then(function() { var infoLayer = d3.select('g.infolayer'); - var containerClassNames = ['slider-container', 'updatemenu-container']; - var list = []; - - infoLayer.selectAll('*').each(function() { - var className = d3.select(this).attr('class'); - - if(containerClassNames.indexOf(className) !== -1) { - list.push(className); - } - }); - - expect(list).toEqual(containerClassNames); + var menuLayer = d3.select('g.menulayer'); + expect(infoLayer.selectAll('.slider-container').size()).toBe(1); + expect(menuLayer.selectAll('.updatemenu-container').size()).toBe(1); + expect(infoLayer.node().nextSibling).toBe(menuLayer.node()); }) + .catch(fail) .then(done); }); }); From e0a10af575aa864365248a1e210961fb02bf8092 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Fri, 27 Oct 2017 00:09:30 -0400 Subject: [PATCH 5/5] keep dropdown button container on top when new menus are added --- src/components/updatemenus/draw.js | 16 +++++++++------- test/jasmine/tests/updatemenus_test.js | 4 ++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/updatemenus/draw.js b/src/components/updatemenus/draw.js index c8739f601c2..6c6a470fecf 100644 --- a/src/components/updatemenus/draw.js +++ b/src/components/updatemenus/draw.js @@ -97,6 +97,9 @@ module.exports = function draw(gd) { // remove exiting header, remove dropped buttons and reset margins if(headerGroups.enter().size()) { + // make sure gButton is on top of all headers + gButton.node().parentNode.appendChild(gButton.node()); + gButton .call(removeAllButtons) .attr(constants.menuIndexAttrName, '-1'); @@ -135,13 +138,12 @@ module.exports = function draw(gd) { }); }; +/** + * get only visible menus for display + */ function makeMenuData(fullLayout) { - var contOpts = fullLayout[constants.name], - menuData = []; - - // Filter visible dropdowns and attach '_index' to each - // fullLayout options object to be used for 'object constancy' - // in the data join key function. + var contOpts = fullLayout[constants.name]; + var menuData = []; for(var i = 0; i < contOpts.length; i++) { var item = contOpts[i]; @@ -154,7 +156,7 @@ function makeMenuData(fullLayout) { // Note that '_index' is set at the default step, // it corresponds to the menu index in the user layout update menu container. -// Because a menu can b set invisible, +// Because a menu can be set invisible, // this is a more 'consistent' field than the index in the menuData. function keyFunction(menuOpts) { return menuOpts._index; diff --git a/test/jasmine/tests/updatemenus_test.js b/test/jasmine/tests/updatemenus_test.js index ed475f9614a..4e90579475d 100644 --- a/test/jasmine/tests/updatemenus_test.js +++ b/test/jasmine/tests/updatemenus_test.js @@ -671,6 +671,10 @@ describe('update menus interactions', function() { // fold up buttons whenever new menus are added assertMenus([0, 0]); + // dropdown buttons container should still be on top of headers (and non-dropdown buttons) + var gButton = d3.select('.updatemenu-dropdown-button-group'); + expect(gButton.node().nextSibling).toBe(null); + return Plotly.relayout(gd, { 'updatemenus[0].bgcolor': null, 'paper_bgcolor': 'black'