@@ -474,10 +474,12 @@ angular.module('ngAnimate', ['ng'])
474
474
return extractElementNode ( elm1 ) == extractElementNode ( elm2 ) ;
475
475
}
476
476
477
+ var $coreAnimate ;
478
+
477
479
$provide . decorator ( '$animate' ,
478
480
[ '$delegate' , '$$q' , '$injector' , '$sniffer' , '$rootElement' , '$$asyncCallback' , '$rootScope' , '$document' , '$templateRequest' ,
479
481
function ( $delegate , $$q , $injector , $sniffer , $rootElement , $$asyncCallback , $rootScope , $document , $templateRequest ) {
480
-
482
+ $coreAnimate = $delegate ;
481
483
$rootElement . data ( NG_ANIMATE_STATE , rootAnimateState ) ;
482
484
483
485
// Wait until all directive and route-related templates are downloaded and
@@ -1380,11 +1382,9 @@ angular.module('ngAnimate', ['ng'])
1380
1382
1381
1383
//the ng-animate class does nothing, but it's here to allow for
1382
1384
//parent animations to find and cancel child animations when needed
1383
- element . addClass ( NG_ANIMATE_CLASS_NAME ) ;
1385
+ $delegate . $$addClassImmediately ( element , NG_ANIMATE_CLASS_NAME ) ;
1384
1386
if ( options && options . tempClasses ) {
1385
- forEach ( options . tempClasses , function ( className ) {
1386
- element . addClass ( className ) ;
1387
- } ) ;
1387
+ $delegate . $$addClassImmediately ( element , options . tempClasses ) ;
1388
1388
}
1389
1389
1390
1390
var localAnimationCount = globalAnimationCounter ++ ;
@@ -1460,9 +1460,7 @@ angular.module('ngAnimate', ['ng'])
1460
1460
1461
1461
closeAnimation . hasBeenRun = true ;
1462
1462
if ( options && options . tempClasses ) {
1463
- forEach ( options . tempClasses , function ( className ) {
1464
- element . removeClass ( className ) ;
1465
- } ) ;
1463
+ $delegate . $$removeClassImmediately ( element , options . tempClasses ) ;
1466
1464
}
1467
1465
1468
1466
var data = element . data ( NG_ANIMATE_STATE ) ;
@@ -1523,7 +1521,7 @@ angular.module('ngAnimate', ['ng'])
1523
1521
}
1524
1522
1525
1523
if ( removeAnimations || ! data . totalActive ) {
1526
- element . removeClass ( NG_ANIMATE_CLASS_NAME ) ;
1524
+ $delegate . $$removeClassImmediately ( element , NG_ANIMATE_CLASS_NAME ) ;
1527
1525
element . removeData ( NG_ANIMATE_STATE ) ;
1528
1526
}
1529
1527
}
@@ -1764,22 +1762,22 @@ angular.module('ngAnimate', ['ng'])
1764
1762
var staggerCacheKey = cacheKey + ' ' + staggerClassName ;
1765
1763
var applyClasses = ! lookupCache [ staggerCacheKey ] ;
1766
1764
1767
- applyClasses && element . addClass ( staggerClassName ) ;
1765
+ applyClasses && $coreAnimate . $$addClassImmediately ( element , staggerClassName ) ;
1768
1766
1769
1767
stagger = getElementAnimationDetails ( element , staggerCacheKey ) ;
1770
1768
1771
- applyClasses && element . removeClass ( staggerClassName ) ;
1769
+ applyClasses && $coreAnimate . $$removeClassImmediately ( element , staggerClassName ) ;
1772
1770
}
1773
1771
1774
- element . addClass ( className ) ;
1772
+ $coreAnimate . $$addClassImmediately ( element , className ) ;
1775
1773
1776
1774
var formerData = element . data ( NG_ANIMATE_CSS_DATA_KEY ) || { } ;
1777
1775
var timings = getElementAnimationDetails ( element , eventCacheKey ) ;
1778
1776
var transitionDuration = timings . transitionDuration ;
1779
1777
var animationDuration = timings . animationDuration ;
1780
1778
1781
1779
if ( structural && transitionDuration === 0 && animationDuration === 0 ) {
1782
- element . removeClass ( className ) ;
1780
+ $coreAnimate . $$removeClassImmediately ( element , className ) ;
1783
1781
return false ;
1784
1782
}
1785
1783
@@ -1851,7 +1849,7 @@ angular.module('ngAnimate', ['ng'])
1851
1849
}
1852
1850
1853
1851
if ( ! staggerTime ) {
1854
- element . addClass ( activeClassName ) ;
1852
+ $coreAnimate . $$addClassImmediately ( element , activeClassName ) ;
1855
1853
if ( elementData . blockTransition ) {
1856
1854
blockTransitions ( node , false ) ;
1857
1855
}
@@ -1861,7 +1859,7 @@ angular.module('ngAnimate', ['ng'])
1861
1859
var timings = getElementAnimationDetails ( element , eventCacheKey ) ;
1862
1860
var maxDuration = Math . max ( timings . transitionDuration , timings . animationDuration ) ;
1863
1861
if ( maxDuration === 0 ) {
1864
- element . removeClass ( activeClassName ) ;
1862
+ $coreAnimate . $$removeClassImmediately ( element , activeClassName ) ;
1865
1863
animateClose ( element , className ) ;
1866
1864
activeAnimationComplete ( ) ;
1867
1865
return ;
@@ -1896,7 +1894,7 @@ angular.module('ngAnimate', ['ng'])
1896
1894
1897
1895
var staggerTimeout ;
1898
1896
if ( staggerTime > 0 ) {
1899
- element . addClass ( pendingClassName ) ;
1897
+ $coreAnimate . $$addClassImmediately ( element , pendingClassName ) ;
1900
1898
staggerTimeout = $timeout ( function ( ) {
1901
1899
staggerTimeout = null ;
1902
1900
@@ -1907,8 +1905,8 @@ angular.module('ngAnimate', ['ng'])
1907
1905
blockAnimations ( node , false ) ;
1908
1906
}
1909
1907
1910
- element . addClass ( activeClassName ) ;
1911
- element . removeClass ( pendingClassName ) ;
1908
+ $coreAnimate . $$addClassImmediately ( element , activeClassName ) ;
1909
+ $coreAnimate . $$removeClassImmediately ( element , pendingClassName ) ;
1912
1910
1913
1911
if ( styles ) {
1914
1912
if ( timings . transitionDuration === 0 ) {
@@ -1935,8 +1933,8 @@ angular.module('ngAnimate', ['ng'])
1935
1933
// timeout done method.
1936
1934
function onEnd ( ) {
1937
1935
element . off ( css3AnimationEvents , onAnimationProgress ) ;
1938
- element . removeClass ( activeClassName ) ;
1939
- element . removeClass ( pendingClassName ) ;
1936
+ $coreAnimate . $$removeClassImmediately ( element , activeClassName ) ;
1937
+ $coreAnimate . $$removeClassImmediately ( element , pendingClassName ) ;
1940
1938
if ( staggerTimeout ) {
1941
1939
$timeout . cancel ( staggerTimeout ) ;
1942
1940
}
@@ -2024,7 +2022,7 @@ angular.module('ngAnimate', ['ng'])
2024
2022
}
2025
2023
2026
2024
function animateClose ( element , className ) {
2027
- element . removeClass ( className ) ;
2025
+ $coreAnimate . $$removeClassImmediately ( element , className ) ;
2028
2026
var data = element . data ( NG_ANIMATE_CSS_DATA_KEY ) ;
2029
2027
if ( data ) {
2030
2028
if ( data . running ) {
0 commit comments