From 130cc4cf69e0eed7674e70a78ab047ab76f286d0 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Wed, 20 Feb 2019 15:48:44 -0500 Subject: [PATCH] expose d3sankey.nodeAlign() as attribute node.align --- src/traces/sankey/attributes.js | 9 ++++++ src/traces/sankey/defaults.js | 1 + src/traces/sankey/render.js | 7 +++++ .../baselines/sankey_circular_align_right.png | Bin 0 -> 32920 bytes .../mocks/sankey_circular_align_right.json | 27 ++++++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 test/image/baselines/sankey_circular_align_right.png create mode 100644 test/image/mocks/sankey_circular_align_right.json diff --git a/src/traces/sankey/attributes.js b/src/traces/sankey/attributes.js index b9144ad0e4c..ccd3a6867d6 100644 --- a/src/traces/sankey/attributes.js +++ b/src/traces/sankey/attributes.js @@ -121,6 +121,15 @@ var attrs = module.exports = overrideAll({ ].join(' ') } }, + align: { + valType: 'enumerated', + values: ['justify', 'left', 'right', 'center'], + dflt: 'justify', + role: 'calc', + description: [ + 'Sets the alignment method used to position the nodes along the horizontal axis.' + ].join(' ') + }, pad: { valType: 'number', arrayOk: false, diff --git a/src/traces/sankey/defaults.js b/src/traces/sankey/defaults.js index c5283910ade..362f6031d71 100644 --- a/src/traces/sankey/defaults.js +++ b/src/traces/sankey/defaults.js @@ -39,6 +39,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerceNode('hoverinfo', traceIn.hoverinfo); handleHoverLabelDefaults(nodeIn, nodeOut, coerceNode, hoverlabelDefault); coerceNode('hovertemplate'); + coerceNode('align'); var colors = layout.colorway; diff --git a/src/traces/sankey/render.js b/src/traces/sankey/render.js index 88b27dbdafc..097a7273164 100644 --- a/src/traces/sankey/render.js +++ b/src/traces/sankey/render.js @@ -32,6 +32,12 @@ function sankeyModel(layout, d, traceIndex) { var horizontal = trace.orientation === 'h'; var nodePad = trace.node.pad; var nodeThickness = trace.node.thickness; + var nodeAlign = { + 'justify': d3Sankey.sankeyJustify, + 'left': d3Sankey.sankeyLeft, + 'right': d3Sankey.sankeyRight, + 'center': d3Sankey.sankeyCenter + }[trace.node.align]; var width = layout.width * (domain.x[1] - domain.x[0]); var height = layout.height * (domain.y[1] - domain.y[0]); @@ -58,6 +64,7 @@ function sankeyModel(layout, d, traceIndex) { .size(horizontal ? [width, height] : [height, width]) .nodeWidth(nodeThickness) .nodePadding(nodePad) + .nodeAlign(nodeAlign) .nodes(nodes) .links(links); diff --git a/test/image/baselines/sankey_circular_align_right.png b/test/image/baselines/sankey_circular_align_right.png new file mode 100644 index 0000000000000000000000000000000000000000..052687e782d4a693b691906b0dc8dbce39172dda GIT binary patch literal 32920 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