From 8403bbe310bc0cd083f6ac4e467cafda81e0d814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Mon, 18 Feb 2019 18:17:50 -0500 Subject: [PATCH 1/2] fix #3552 - adapt Colorscale.crossTraceDefaults to [] _module.colorbar --- .../colorscale/cross_trace_defaults.js | 12 ++++++-- test/jasmine/tests/colorscale_test.js | 29 ++++++++++++++++++- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/components/colorscale/cross_trace_defaults.js b/src/components/colorscale/cross_trace_defaults.js index acc551a113b..5933b669166 100644 --- a/src/components/colorscale/cross_trace_defaults.js +++ b/src/components/colorscale/cross_trace_defaults.js @@ -43,10 +43,16 @@ module.exports = function crossTraceDefaults(fullData) { for(var i = 0; i < fullData.length; i++) { var trace = fullData[i]; - var _module = trace._module; + var colorbar = trace._module.colorbar; - if(_module.colorbar) { - relinkColorAtts(trace, _module.colorbar); + if(colorbar) { + if(Array.isArray(colorbar)) { + for(var j = 0; j < colorbar.length; j++) { + relinkColorAtts(trace, colorbar[j]); + } + } else { + relinkColorAtts(trace, colorbar); + } } // TODO could generalize _module.colorscale and use it here? diff --git a/test/jasmine/tests/colorscale_test.js b/test/jasmine/tests/colorscale_test.js index 75f6a61ad36..70714d4c58b 100644 --- a/test/jasmine/tests/colorscale_test.js +++ b/test/jasmine/tests/colorscale_test.js @@ -586,7 +586,10 @@ describe('Test colorscale restyle calls:', function() { gd = createGraphDiv(); }); - afterEach(destroyGraphDiv); + afterEach(function() { + Plotly.purge(gd); + destroyGraphDiv(); + }); function getFill(q) { return d3.select(q).node().style.fill; @@ -902,4 +905,28 @@ describe('Test colorscale restyle calls:', function() { .catch(failTest) .then(done); }); + + it('@gl should work with scatter3d', function(done) { + Plotly.plot(gd, [{ + type: 'scatter3d', + x: [1, 2, 3], + y: [1, 2, 3], + z: [1, 2, 1], + marker: {color: [1, 2, 1], showscale: true} + }]) + .then(function() { + expect(gd._fullData[0].marker.cmin).toBe(1); + expect(gd._fullData[0].marker.cmax).toBe(2); + }) + .then(function() { + // some non-calc edit + return Plotly.relayout(gd, 'scene.dragmode', 'pab'); + }) + .then(function() { + expect(gd._fullData[0].marker.cmin).toBe(1); + expect(gd._fullData[0].marker.cmax).toBe(2); + }) + .catch(failTest) + .then(done); + }); }); From 8ad3e45215ed80e023c27dfafee0ec2ceb82a45d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 19 Feb 2019 11:00:51 -0500 Subject: [PATCH 2/2] fix typo 'pab' -> 'pan' --- test/jasmine/tests/colorscale_test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/jasmine/tests/colorscale_test.js b/test/jasmine/tests/colorscale_test.js index 70714d4c58b..9dd75653cb7 100644 --- a/test/jasmine/tests/colorscale_test.js +++ b/test/jasmine/tests/colorscale_test.js @@ -920,7 +920,7 @@ describe('Test colorscale restyle calls:', function() { }) .then(function() { // some non-calc edit - return Plotly.relayout(gd, 'scene.dragmode', 'pab'); + return Plotly.relayout(gd, 'scene.dragmode', 'pan'); }) .then(function() { expect(gd._fullData[0].marker.cmin).toBe(1);