@@ -14,45 +14,49 @@ var Color = require('../../components/color');
14
14
var tinycolor = require ( 'tinycolor2' ) ;
15
15
var handleDomainDefaults = require ( '../../plots/domain' ) . defaults ;
16
16
var handleHoverLabelDefaults = require ( '../../components/fx/hoverlabel_defaults' ) ;
17
- var fxAttrs = require ( '../../components/fx/attributes ' ) ;
17
+ var Template = require ( '../../plot_api/plot_template ' ) ;
18
18
19
19
module . exports = function supplyDefaults ( traceIn , traceOut , defaultColor , layout ) {
20
20
function coerce ( attr , dflt ) {
21
21
return Lib . coerce ( traceIn , traceOut , attributes , attr , dflt ) ;
22
22
}
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
- }
29
23
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 ) ;
37
36
38
37
var colors = layout . colorway ;
39
38
40
39
var defaultNodePalette = function ( i ) { return colors [ i % colors . length ] ; } ;
41
40
42
- coerce ( 'node. color', traceOut . node . label . map ( function ( d , i ) {
41
+ coerceNode ( ' color', nodeOut . label . map ( function ( d , i ) {
43
42
return Color . addOpacity ( defaultNodePalette ( i ) , 0.8 ) ;
44
43
} ) ) ;
45
44
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 ) ;
54
58
55
- coerce ( 'link. color', traceOut . link . value . map ( function ( ) {
59
+ coerceLink ( ' color', linkOut . value . map ( function ( ) {
56
60
return tinycolor ( layout . paper_bgcolor ) . getLuminance ( ) < 0.333 ?
57
61
'rgba(255, 255, 255, 0.6)' :
58
62
'rgba(0, 0, 0, 0.2)' ;
0 commit comments