@@ -244,39 +244,32 @@ module.exports = function style(s, gd) {
244244
245245 function styleWaterfalls ( d ) {
246246 var trace = d [ 0 ] . trace ;
247- if ( trace . type !== 'waterfall' ) return d ;
248247
249- var barpath = d3 . select ( this ) . select ( 'g.legendpoints' )
250- . selectAll ( 'path.legendbar' )
251- . data ( Registry . traceIs ( trace , 'bar' ) ? [ d , d , d ] : [ ] ) ;
252- barpath . enter ( ) . append ( 'path' ) . classed ( 'legendbar' , true )
253- . attr ( 'd' , function ( _ , i ) {
254- return (
255- ( i === 0 ) ? 'M-6,-6V6H0Z' :
256- ( i === 1 ) ? 'M6,6V-6H0Z' : 'M6,6H0L-6,-6H-0Z'
257- ) ;
258- } )
259- . attr ( 'transform' , 'translate(20,0)' ) ;
260- barpath . exit ( ) . remove ( ) ;
261-
262- barpath . each ( function ( d , i ) {
263-
264- var container = trace . marker || trace [
265- ( i % 3 === 0 ) ? 'increasing' :
266- ( i % 3 === 1 ) ? 'decreasing' : 'totals'
267- ] ;
248+ var ptsData = [ ] ;
249+ if ( trace . type === 'waterfall' && trace . visible ) {
250+ ptsData = d [ 0 ] . hasTotals ?
251+ [ [ 'increasing' , 'M-6,-6V6H0Z' ] , [ 'totals' , 'M6,6H0L-6,-6H-0Z' ] , [ 'decreasing' , 'M6,6V-6H0Z' ] ] :
252+ [ [ 'increasing' , 'M-6,-6V6H6Z' ] , [ 'decreasing' , 'M6,6V-6H-6Z' ] ] ;
253+ }
268254
269- var line = container . line || { } ;
255+ var pts = d3 . select ( this ) . select ( 'g.legendpoints' )
256+ . selectAll ( 'path.legendwaterfall' )
257+ . data ( ptsData ) ;
258+ pts . enter ( ) . append ( 'path' ) . classed ( 'legendwaterfall' , true )
259+ . attr ( 'transform' , 'translate(20,0)' )
260+ . style ( 'stroke-miterlimit' , 1 ) ;
261+ pts . exit ( ) . remove ( ) ;
270262
271- var p = d3 . select ( this ) ;
272- var d0 = d [ 0 ] ;
273- var w = ( d0 . mlw + 1 || line . width + 1 ) - 1 ;
263+ pts . each ( function ( dd ) {
264+ var pt = d3 . select ( this ) ;
265+ var cont = trace [ dd [ 0 ] ] . marker ;
274266
275- p . style ( 'stroke-width' , w + 'px' )
276- . call ( Color . fill , container . color ) ;
267+ pt . attr ( 'd' , dd [ 1 ] )
268+ . style ( 'stroke-width' , cont . line . width + 'px' )
269+ . call ( Color . fill , cont . color ) ;
277270
278- if ( w ) {
279- p . call ( Color . stroke , container . color ) ;
271+ if ( cont . line . width ) {
272+ pt . call ( Color . stroke , cont . line . color ) ;
280273 }
281274 } ) ;
282275 }
0 commit comments