@@ -244,39 +244,32 @@ module.exports = function style(s, gd) {
244
244
245
245
function styleWaterfalls ( d ) {
246
246
var trace = d [ 0 ] . trace ;
247
- if ( trace . type !== 'waterfall' ) return d ;
248
247
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
+ }
268
254
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 ( ) ;
270
262
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 ;
274
266
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 ) ;
277
270
278
- if ( w ) {
279
- p . call ( Color . stroke , container . color ) ;
271
+ if ( cont . line . width ) {
272
+ pt . call ( Color . stroke , cont . line . color ) ;
280
273
}
281
274
} ) ;
282
275
}
0 commit comments