@@ -561,11 +561,12 @@ function drawNumbers(gd, plotGroup, cd, opts) {
561
561
. transition ( )
562
562
. duration ( transitionOpts . duration )
563
563
. ease ( transitionOpts . easing )
564
- . each ( 'end' , function ( ) { trace . _lastValue = cd [ 0 ] . y ; onComplete && onComplete ( ) ; } )
564
+ . each ( 'end' , function ( ) { onComplete && onComplete ( ) ; } )
565
565
. each ( 'interrupt' , function ( ) { onComplete && onComplete ( ) ; } )
566
566
. attrTween ( 'text' , function ( ) {
567
567
var that = d3 . select ( this ) ;
568
568
var interpolator = d3 . interpolateNumber ( cd [ 0 ] . lastY , cd [ 0 ] . y ) ;
569
+ trace . _lastValue = cd [ 0 ] . y ;
569
570
return function ( t ) {
570
571
that . text ( bignumberPrefix + fmt ( interpolator ( t ) ) + bignumberSuffix ) ;
571
572
} ;
@@ -584,7 +585,6 @@ function drawNumbers(gd, plotGroup, cd, opts) {
584
585
// delta
585
586
var deltaAx = mockAxis ( gd , { tickformat : trace . delta . valueformat } ) ;
586
587
var deltaFmt = function ( v ) { return Axes . tickText ( deltaAx , v ) . text ; } ;
587
- if ( ! trace . _deltaLastValue ) trace . _deltaLastValue = 0 ;
588
588
var deltaValue = function ( d ) {
589
589
var value = trace . delta . relative ? d . relativeDelta : d . delta ;
590
590
return value ;
@@ -596,31 +596,37 @@ function drawNumbers(gd, plotGroup, cd, opts) {
596
596
var deltaFill = function ( d ) {
597
597
return d . delta >= 0 ? trace . delta . increasing . color : trace . delta . decreasing . color ;
598
598
} ;
599
+ if ( trace . _deltaLastValue === undefined ) {
600
+ trace . _deltaLastValue = deltaValue ( cd [ 0 ] ) ;
601
+ }
599
602
var delta = numbers . select ( 'text.delta' ) ;
600
603
delta
601
604
. call ( Drawing . font , trace . delta . font )
602
- . call ( Color . fill , deltaFill ( cd [ 0 ] ) ) ;
605
+ . call ( Color . fill , deltaFill ( { delta : trace . _deltaLastValue } ) ) ;
603
606
604
607
if ( hasTransition ) {
605
608
delta
606
609
. transition ( )
607
610
. duration ( transitionOpts . duration )
608
611
. ease ( transitionOpts . easing )
609
- . each ( 'end' , function ( d ) { trace . _deltaLastValue = deltaValue ( d ) ; onComplete && onComplete ( ) ; } )
610
- . each ( 'interrupt' , function ( ) { onComplete && onComplete ( ) ; } )
611
- . attrTween ( 'text' , function ( ) {
612
+ . tween ( 'text' , function ( ) {
612
613
var that = d3 . select ( this ) ;
613
614
var to = deltaValue ( cd [ 0 ] ) ;
614
615
var from = trace . _deltaLastValue ;
615
616
var interpolator = d3 . interpolateNumber ( from , to ) ;
617
+ trace . _deltaLastValue = to ;
616
618
return function ( t ) {
617
619
that . text ( deltaFormatText ( interpolator ( t ) ) ) ;
620
+ that . call ( Color . fill , deltaFill ( { delta : interpolator ( t ) } ) ) ;
618
621
} ;
619
- } ) ;
622
+ } )
623
+ . each ( 'end' , function ( ) { onComplete && onComplete ( ) ; } )
624
+ . each ( 'interrupt' , function ( ) { onComplete && onComplete ( ) ; } ) ;
620
625
} else {
621
626
delta . text ( function ( ) {
622
627
return deltaFormatText ( deltaValue ( cd [ 0 ] ) ) ;
623
- } ) ;
628
+ } )
629
+ . call ( Color . fill , deltaFill ( cd [ 0 ] ) ) ;
624
630
}
625
631
626
632
delta . attr ( 'data-unformatted' , deltaFormatText ( deltaValue ( cd [ 0 ] ) ) ) ;
0 commit comments