@@ -14,45 +14,49 @@ var Color = require('../../components/color');
1414var tinycolor = require ( 'tinycolor2' ) ;
1515var handleDomainDefaults = require ( '../../plots/domain' ) . defaults ;
1616var handleHoverLabelDefaults = require ( '../../components/fx/hoverlabel_defaults' ) ;
17- var fxAttrs = require ( '../../components/fx/attributes ' ) ;
17+ var Template = require ( '../../plot_api/plot_template ' ) ;
1818
1919module . exports = function supplyDefaults ( traceIn , traceOut , defaultColor , layout ) {
2020 function coerce ( attr , dflt ) {
2121 return Lib . coerce ( traceIn , traceOut , attributes , attr , dflt ) ;
2222 }
23- function coerceHoverLabel ( type ) {
24- function coerce ( attr , dflt ) {
25- return Lib . coerce ( traceIn [ type ] , traceOut [ type ] , fxAttrs , attr , dflt ) ;
26- }
27- handleHoverLabelDefaults ( traceIn [ type ] , traceOut [ type ] , coerce , layout . hoverlabel ) ;
28- }
2923
30- coerce ( 'node.label' ) ;
31- coerce ( 'node.pad' ) ;
32- coerce ( 'node.thickness' ) ;
33- coerce ( 'node.line.color' ) ;
34- coerce ( 'node.line.width' ) ;
35- coerce ( 'node.hoverinfo' ) ;
36- coerceHoverLabel ( 'node' ) ;
24+ // node attributes
25+ var nodeIn = traceIn . node , nodeOut = Template . newContainer ( traceOut , 'node' ) ;
26+ function coerceNode ( attr , dflt ) {
27+ return Lib . coerce ( nodeIn , nodeOut , attributes . node , attr , dflt ) ;
28+ }
29+ coerceNode ( 'label' ) ;
30+ coerceNode ( 'pad' ) ;
31+ coerceNode ( 'thickness' ) ;
32+ coerceNode ( 'line.color' ) ;
33+ coerceNode ( 'line.width' ) ;
34+ coerceNode ( 'hoverinfo' ) ;
35+ handleHoverLabelDefaults ( nodeIn , nodeOut , coerceNode , layout . hoverlabel ) ;
3736
3837 var colors = layout . colorway ;
3938
4039 var defaultNodePalette = function ( i ) { return colors [ i % colors . length ] ; } ;
4140
42- coerce ( 'node. color', traceOut . node . label . map ( function ( d , i ) {
41+ coerceNode ( ' color', nodeOut . label . map ( function ( d , i ) {
4342 return Color . addOpacity ( defaultNodePalette ( i ) , 0.8 ) ;
4443 } ) ) ;
4544
46- coerce ( 'link.label' ) ;
47- coerce ( 'link.source' ) ;
48- coerce ( 'link.target' ) ;
49- coerce ( 'link.value' ) ;
50- coerce ( 'link.line.color' ) ;
51- coerce ( 'link.line.width' ) ;
52- coerce ( 'link.hoverinfo' ) ;
53- coerceHoverLabel ( 'link' ) ;
45+ // link attributes
46+ var linkIn = traceIn . link , linkOut = Template . newContainer ( traceOut , 'link' ) ;
47+ function coerceLink ( attr , dflt ) {
48+ return Lib . coerce ( linkIn , linkOut , attributes . link , attr , dflt ) ;
49+ }
50+ coerceLink ( 'label' ) ;
51+ coerceLink ( 'source' ) ;
52+ coerceLink ( 'target' ) ;
53+ coerceLink ( 'value' ) ;
54+ coerceLink ( 'line.color' ) ;
55+ coerceLink ( 'line.width' ) ;
56+ coerceLink ( 'hoverinfo' ) ;
57+ handleHoverLabelDefaults ( linkIn , linkOut , coerceLink , layout . hoverlabel ) ;
5458
55- coerce ( 'link. color', traceOut . link . value . map ( function ( ) {
59+ coerceLink ( ' color', linkOut . value . map ( function ( ) {
5660 return tinycolor ( layout . paper_bgcolor ) . getLuminance ( ) < 0.333 ?
5761 'rgba(255, 255, 255, 0.6)' :
5862 'rgba(0, 0, 0, 0.2)' ;
0 commit comments