diff --git a/src/traces/sankey/defaults.js b/src/traces/sankey/defaults.js index f4ffcad4cfa..5e33b9322a4 100644 --- a/src/traces/sankey/defaults.js +++ b/src/traces/sankey/defaults.js @@ -10,7 +10,6 @@ var Lib = require('../../lib'); var attributes = require('./attributes'); -var colors = require('../../components/color/attributes').defaults; var Color = require('../../components/color'); var tinycolor = require('tinycolor2'); @@ -25,6 +24,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('node.line.color'); coerce('node.line.width'); + var colors = layout.colorway; + var defaultNodePalette = function(i) {return colors[i % colors.length];}; coerce('node.color', traceOut.node.label.map(function(d, i) { diff --git a/test/image/baselines/sankey_energy_dark.png b/test/image/baselines/sankey_energy_dark.png index 794016ca7b3..b2feea2325f 100644 Binary files a/test/image/baselines/sankey_energy_dark.png and b/test/image/baselines/sankey_energy_dark.png differ diff --git a/test/image/mocks/sankey_energy_dark.json b/test/image/mocks/sankey_energy_dark.json index 1952da02079..6446001693d 100644 --- a/test/image/mocks/sankey_energy_dark.json +++ b/test/image/mocks/sankey_energy_dark.json @@ -71,56 +71,7 @@ "UK land based bioenergy", "Wave", "Wind" - ], - "color": [ - "rgba(31, 119, 180, 0.8)", - "rgba(255, 127, 14, 0.8)", - "rgba(44, 160, 44, 0.8)", - "rgba(214, 39, 40, 0.8)", - "rgba(148, 103, 189, 0.8)", - "rgba(140, 86, 75, 0.8)", - "rgba(227, 119, 194, 0.8)", - "rgba(127, 127, 127, 0.8)", - "rgba(188, 189, 34, 0.8)", - "rgba(23, 190, 207, 0.8)", - "rgba(31, 119, 180, 0.8)", - "rgba(255, 127, 14, 0.8)", - "rgba(44, 160, 44, 0.8)", - "rgba(214, 39, 40, 0.8)", - "rgba(148, 103, 189, 0.8)", - "rgba(140, 86, 75, 0.8)", - "rgba(227, 119, 194, 0.8)", - "rgba(127, 127, 127, 0.8)", - "rgba(188, 189, 34, 0.8)", - "rgba(23, 190, 207, 0.8)", - "rgba(31, 119, 180, 0.8)", - "rgba(255, 127, 14, 0.8)", - "rgba(44, 160, 44, 0.8)", - "rgba(214, 39, 40, 0.8)", - "rgba(148, 103, 189, 0.8)", - "rgba(140, 86, 75, 0.8)", - "rgba(227, 119, 194, 0.8)", - "rgba(127, 127, 127, 0.8)", - "rgba(188, 189, 34, 0.8)", - "rgba(23, 190, 207, 0.8)", - "rgba(31, 119, 180, 0.8)", - "rgba(255, 127, 14, 0.8)", - "rgba(44, 160, 44, 0.8)", - "rgba(214, 39, 40, 0.8)", - "rgba(148, 103, 189, 0.8)", - "magenta", - "rgba(227, 119, 194, 0.8)", - "rgba(127, 127, 127, 0.8)", - "rgba(188, 189, 34, 0.8)", - "rgba(23, 190, 207, 0.8)", - "rgba(31, 119, 180, 0.8)", - "rgba(255, 127, 14, 0.8)", - "rgba(44, 160, 44, 0.8)", - "rgba(214, 39, 40, 0.8)", - "rgba(148, 103, 189, 0.8)", - "rgba(140, 86, 75, 0.8)", - "rgba(227, 119, 194, 0.8)", - "rgba(127, 127, 127, 0.8)"] + ] }, "link": { "source": [ diff --git a/test/jasmine/tests/sankey_test.js b/test/jasmine/tests/sankey_test.js index 573d3aa57c2..9a49e8c4547 100644 --- a/test/jasmine/tests/sankey_test.js +++ b/test/jasmine/tests/sankey_test.js @@ -12,6 +12,7 @@ var fail = require('../assets/fail_test'); var mouseEvent = require('../assets/mouse_event'); var assertHoverLabelStyle = require('../assets/custom_assertions').assertHoverLabelStyle; var supplyAllDefaults = require('../assets/supply_defaults'); +var defaultColors = require('@src/components/color/attributes').defaults; describe('sankey tests', function() { @@ -20,7 +21,7 @@ describe('sankey tests', function() { function _supply(traceIn) { var traceOut = { visible: true }, defaultColor = '#444', - layout = { }; + layout = { colorway: defaultColors }; Sankey.supplyDefaults(traceIn, traceOut, defaultColor, layout); @@ -31,7 +32,7 @@ describe('sankey tests', function() { var traceOut = { visible: true }, defaultColor = '#444'; - Sankey.supplyDefaults(traceIn, traceOut, defaultColor, layout); + Sankey.supplyDefaults(traceIn, traceOut, defaultColor, Lib.extendFlat({colorway: defaultColors}, layout)); return traceOut; } @@ -179,6 +180,25 @@ describe('sankey tests', function() { }); expect(Lib.isArray(fullTrace.node.color)).toBe(true, 'set up color array'); + expect(fullTrace.node.color).toEqual(['rgba(31, 119, 180, 0.8)', 'rgba(255, 127, 14, 0.8)']); + + }); + + it('respects layout.colorway', function() { + + var fullTrace = _supplyWithLayout({ + node: { + label: ['a', 'b'] + }, + link: { + source: [0], + target: [1], + value: [1] + } + }, {colorway: ['rgb(255, 0, 0)', 'rgb(0, 0, 255)']}); + + expect(Lib.isArray(fullTrace.node.color)).toBe(true, 'set up color array'); + expect(fullTrace.node.color).toEqual(['rgba(255, 0, 0, 0.8)', 'rgba(0, 0, 255, 0.8)']); });