@@ -7639,7 +7639,8 @@ d3 = function() {
76397639 d3_transitionInheritId = inheritId ;
76407640 } else {
76417641 d3_selection_each ( this , function ( node ) {
7642- node . __transition__ [ id ] . event . on ( type , listener ) ;
7642+ var transition = node . __transition__ [ id ] ;
7643+ ( transition . event || ( transition . event = d3 . dispatch ( "start" , "end" ) ) ) . on ( type , listener ) ;
76437644 } ) ;
76447645 }
76457646 return this ;
@@ -7668,20 +7669,19 @@ d3 = function() {
76687669 var time = inherit . time ;
76697670 transition = lock [ id ] = {
76707671 tween : new d3_Map ( ) ,
7671- event : d3 . dispatch ( "start" , "end" ) ,
76727672 time : time ,
76737673 ease : inherit . ease ,
76747674 delay : inherit . delay ,
76757675 duration : inherit . duration
76767676 } ;
76777677 ++ lock . count ;
76787678 d3 . timer ( function ( elapsed ) {
7679- var d = node . __data__ , ease = transition . ease , event = transition . event , delay = transition . delay , duration = transition . duration , tweened = [ ] ;
7679+ var d = node . __data__ , ease = transition . ease , delay = transition . delay , duration = transition . duration , tweened = [ ] ;
76807680 return delay <= elapsed ? start ( elapsed ) : d3 . timer ( start , delay , time ) , 1 ;
76817681 function start ( elapsed ) {
76827682 if ( lock . active > id ) return stop ( ) ;
76837683 lock . active = id ;
7684- event . start . call ( node , d , i ) ;
7684+ transition . event && transition . event . start . call ( node , d , i ) ;
76857685 transition . tween . forEach ( function ( key , value ) {
76867686 if ( value = value . call ( node , d , i ) ) {
76877687 tweened . push ( value ) ;
@@ -7698,7 +7698,7 @@ d3 = function() {
76987698 }
76997699 if ( t >= 1 ) {
77007700 stop ( ) ;
7701- event . end . call ( node , d , i ) ;
7701+ transition . event && transition . event . end . call ( node , d , i ) ;
77027702 return 1 ;
77037703 }
77047704 }
0 commit comments