@@ -19,16 +19,12 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
19
19
return element . data ( RUNNER_STORAGE_KEY ) ;
20
20
}
21
21
22
- this . $get = [ '$$jqLite' , '$rootScope' , '$injector' , '$$AnimateRunner' , '$$rAFScheduler' ,
23
- function ( $$jqLite , $rootScope , $injector , $$AnimateRunner , $$rAFScheduler ) {
22
+ this . $get = [ '$$jqLite' , '$rootScope' , '$injector' , '$$AnimateRunner' ,
23
+ function ( $$jqLite , $rootScope , $injector , $$AnimateRunner ) {
24
24
25
25
var animationQueue = [ ] ;
26
26
var applyAnimationClasses = applyAnimationClassesFactory ( $$jqLite ) ;
27
27
28
- var totalPendingClassBasedAnimations = 0 ;
29
- var totalActiveClassBasedAnimations = 0 ;
30
- var classBasedAnimationsQueue = [ ] ;
31
-
32
28
// TODO(matsko): document the signature in a better way
33
29
return function ( element , event , options ) {
34
30
options = prepareAnimationOptions ( options ) ;
@@ -57,19 +53,12 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
57
53
options . tempClasses = null ;
58
54
}
59
55
60
- var classBasedIndex ;
61
- if ( ! isStructural ) {
62
- classBasedIndex = totalPendingClassBasedAnimations ;
63
- totalPendingClassBasedAnimations += 1 ;
64
- }
65
-
66
56
animationQueue . push ( {
67
57
// this data is used by the postDigest code and passed into
68
58
// the driver step function
69
59
element : element ,
70
60
classes : classes ,
71
61
event : event ,
72
- classBasedIndex : classBasedIndex ,
73
62
structural : isStructural ,
74
63
options : options ,
75
64
beforeStart : beforeStart ,
@@ -84,10 +73,6 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
84
73
if ( animationQueue . length > 1 ) return runner ;
85
74
86
75
$rootScope . $$postDigest ( function ( ) {
87
- totalActiveClassBasedAnimations = totalPendingClassBasedAnimations ;
88
- totalPendingClassBasedAnimations = 0 ;
89
- classBasedAnimationsQueue . length = 0 ;
90
-
91
76
var animations = [ ] ;
92
77
forEach ( animationQueue , function ( entry ) {
93
78
// the element was destroyed early on which removed the runner
@@ -102,58 +87,23 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
102
87
animationQueue . length = 0 ;
103
88
104
89
forEach ( groupAnimations ( animations ) , function ( animationEntry ) {
105
- if ( animationEntry . structural ) {
106
- triggerAnimationStart ( ) ;
107
- } else {
108
- classBasedAnimationsQueue . push ( {
109
- node : getDomNode ( animationEntry . element ) ,
110
- fn : triggerAnimationStart
111
- } ) ;
112
-
113
- if ( animationEntry . classBasedIndex === totalActiveClassBasedAnimations - 1 ) {
114
- // we need to sort each of the animations in order of parent to child
115
- // relationships. This ensures that the child classes are applied at the
116
- // right time.
117
- classBasedAnimationsQueue = classBasedAnimationsQueue . sort ( function ( a , b ) {
118
- return b . node . contains ( a . node ) ;
119
- } ) . map ( function ( entry ) {
120
- return entry . fn ;
121
- } ) ;
122
-
123
- $$rAFScheduler ( classBasedAnimationsQueue ) ;
124
- }
125
- }
90
+ // it's important that we apply the `ng-animate` CSS class and the
91
+ // temporary classes before we do any driver invoking since these
92
+ // CSS classes may be required for proper CSS detection.
93
+ animationEntry . beforeStart ( ) ;
126
94
127
- function triggerAnimationStart ( ) {
128
- // it's important that we apply the `ng-animate` CSS class and the
129
- // temporary classes before we do any driver invoking since these
130
- // CSS classes may be required for proper CSS detection.
131
- animationEntry . beforeStart ( ) ;
132
-
133
- var startAnimationFn , closeFn = animationEntry . close ;
134
-
135
- // in the event that the element was removed before the digest runs or
136
- // during the RAF sequencing then we should not trigger the animation.
137
- var targetElement = animationEntry . anchors
138
- ? ( animationEntry . from . element || animationEntry . to . element )
139
- : animationEntry . element ;
140
-
141
- if ( getRunner ( targetElement ) ) {
142
- var operation = invokeFirstDriver ( animationEntry ) ;
143
- if ( operation ) {
144
- startAnimationFn = operation . start ;
145
- }
146
- }
95
+ var operation = invokeFirstDriver ( animationEntry ) ;
96
+ var triggerAnimationStart = operation && operation . start ; /// TODO(matsko): only recognize operation.start()
147
97
148
- if ( ! startAnimationFn ) {
149
- closeFn ( ) ;
150
- } else {
151
- var animationRunner = startAnimationFn ( ) ;
152
- animationRunner . done ( function ( status ) {
153
- closeFn ( ! status ) ;
154
- } ) ;
155
- updateAnimationRunners ( animationEntry , animationRunner ) ;
156
- }
98
+ var closeFn = animationEntry . close ;
99
+ if ( ! triggerAnimationStart ) {
100
+ closeFn ( ) ;
101
+ } else {
102
+ var animationRunner = triggerAnimationStart ( ) ;
103
+ animationRunner . done ( function ( status ) {
104
+ closeFn ( ! status ) ;
105
+ } ) ;
106
+ updateAnimationRunners ( animationEntry , animationRunner ) ;
157
107
}
158
108
} ) ;
159
109
} ) ;
@@ -225,7 +175,7 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
225
175
var lookupKey = from . animationID . toString ( ) ;
226
176
if ( ! anchorGroups [ lookupKey ] ) {
227
177
var group = anchorGroups [ lookupKey ] = {
228
- structural : true ,
178
+ // TODO(matsko): double-check this code
229
179
beforeStart : function ( ) {
230
180
fromAnimation . beforeStart ( ) ;
231
181
toAnimation . beforeStart ( ) ;
0 commit comments