@@ -36,56 +36,58 @@ function styleOne(s, pt, trace, opts) {
36
36
var lineColor ;
37
37
var lineWidth ;
38
38
var fillColor = cdi . color ;
39
+ var isRoot = helpers . isHierarchyRoot ( pt ) ;
40
+ var opacity = 1 ;
39
41
40
42
if ( hovered ) {
41
43
lineColor = trace . _hovered . marker . line . color ;
42
44
lineWidth = trace . _hovered . marker . line . width ;
43
45
} else {
44
- var isRoot = helpers . isHierarchyRoot ( pt ) ;
46
+ if ( isRoot && fillColor === 'rgba(0,0,0,0)' ) {
47
+ opacity = 0 ;
48
+ lineColor = 'rgba(0,0,0,0)' ;
49
+ lineWidth = 0 ;
50
+ } else {
51
+ lineColor = Lib . castOption ( trace , ptNumber , 'marker.line.color' ) || Color . defaultLine ;
52
+ lineWidth = Lib . castOption ( trace , ptNumber , 'marker.line.width' ) || 0 ;
45
53
46
- if ( ! trace . _hasColorscale && ! pt . onPathbar ) {
47
- var depthfade = trace . marker . depthfade ;
48
- if ( depthfade ) {
49
- var fadedColor = Color . combine ( Color . addOpacity ( trace . _backgroundColor , 0.75 ) , fillColor ) ;
50
- var n ;
54
+ if ( ! trace . _hasColorscale && ! pt . onPathbar ) {
55
+ var depthfade = trace . marker . depthfade ;
56
+ if ( depthfade ) {
57
+ var fadedColor = Color . combine ( Color . addOpacity ( trace . _backgroundColor , 0.75 ) , fillColor ) ;
58
+ var n ;
51
59
52
- if ( depthfade === true ) {
53
- var maxDepth = helpers . getMaxDepth ( trace ) ;
54
- if ( isFinite ( maxDepth ) ) {
55
- if ( helpers . isLeaf ( pt ) ) {
56
- n = 0 ;
60
+ if ( depthfade === true ) {
61
+ var maxDepth = helpers . getMaxDepth ( trace ) ;
62
+ if ( isFinite ( maxDepth ) ) {
63
+ if ( helpers . isLeaf ( pt ) ) {
64
+ n = 0 ;
65
+ } else {
66
+ n = ( trace . _maxVisibleLayers ) - ( pt . data . depth - trace . _entryDepth ) ;
67
+ }
57
68
} else {
58
- n = ( trace . _maxVisibleLayers ) - ( pt . data . depth - trace . _entryDepth ) ;
69
+ n = pt . data . height + 1 ;
59
70
}
60
- } else {
61
- n = pt . data . height + 1 ;
71
+ } else { // i.e. case of depthfade === 'reversed'
72
+ n = pt . data . depth - trace . _entryDepth ;
73
+ if ( ! trace . _atRootLevel ) n ++ ;
62
74
}
63
- } else { // i.e. case of depthfade === 'reversed'
64
- n = pt . data . depth - trace . _entryDepth ;
65
- if ( ! trace . _atRootLevel ) n ++ ;
66
- }
67
75
68
- if ( n > 0 ) {
69
- for ( var i = 0 ; i < n ; i ++ ) {
70
- var ratio = 0.5 * i / n ;
71
- fillColor = Color . combine ( Color . addOpacity ( fadedColor , ratio ) , fillColor ) ;
76
+ if ( n > 0 ) {
77
+ for ( var i = 0 ; i < n ; i ++ ) {
78
+ var ratio = 0.5 * i / n ;
79
+ fillColor = Color . combine ( Color . addOpacity ( fadedColor , ratio ) , fillColor ) ;
80
+ }
72
81
}
73
82
}
74
83
}
75
84
}
76
-
77
- if ( isRoot ) {
78
- lineColor = 'rgba(0,0,0,0)' ;
79
- lineWidth = 0 ;
80
- } else {
81
- lineColor = Lib . castOption ( trace , ptNumber , 'marker.line.color' ) || Color . defaultLine ;
82
- lineWidth = Lib . castOption ( trace , ptNumber , 'marker.line.width' ) || 0 ;
83
- }
84
85
}
85
86
86
87
s . style ( 'stroke-width' , lineWidth )
87
88
. call ( Color . fill , fillColor )
88
- . call ( Color . stroke , lineColor ) ;
89
+ . call ( Color . stroke , lineColor )
90
+ . style ( 'opacity' , opacity ) ;
89
91
}
90
92
91
93
module . exports = {
0 commit comments