Permalink
Comparing changes
Open a pull request
- 2 commits
- 4 files changed
- 1 commit comment
- 1 contributor
Unified
Split
Showing
with
50 additions
and 26 deletions.
- +4 −2 src/AngularPublic.js
- +21 −0 src/jqLite.js
- +20 −19 src/ngAnimate/animate.js
- +5 −5 test/ngAnimate/animateSpec.js
| @@ -83,7 +83,8 @@ | ||
| $TimeoutProvider, | ||
| $$RAFProvider, | ||
| $$AsyncCallbackProvider, | ||
| $WindowProvider | ||
| $WindowProvider, | ||
| $$jqLiteProvider | ||
| */ | ||
|
|
||
|
|
||
| @@ -236,7 +237,8 @@ function publishExternalAPI(angular) { | ||
| $timeout: $TimeoutProvider, | ||
| $window: $WindowProvider, | ||
| $$rAF: $$RAFProvider, | ||
| $$asyncCallback: $$AsyncCallbackProvider | ||
| $$asyncCallback: $$AsyncCallbackProvider, | ||
| $$jqLite: $$jqLiteProvider | ||
| }); | ||
| } | ||
| ]); | ||
| @@ -1003,3 +1003,24 @@ forEach({ | ||
| JQLite.prototype.bind = JQLite.prototype.on; | ||
| JQLite.prototype.unbind = JQLite.prototype.off; | ||
| }); | ||
|
|
||
|
|
||
| // Provider for private $$jqLite service | ||
| function $$jqLiteProvider() { | ||
| this.$get = function $$jqLite() { | ||
| return extend(JQLite, { | ||
| hasClass: function(node, classes) { | ||
| if (node.attr) node = node[0]; | ||
| return jqLiteHasClass(node, classes); | ||
| }, | ||
| addClass: function(node, classes) { | ||
| if (node.attr) node = node[0]; | ||
| return jqLiteAddClass(node, classes); | ||
| }, | ||
| removeClass: function(node, classes) { | ||
| if (node.attr) node = node[0]; | ||
| return jqLiteRemoveClass(node, classes); | ||
| } | ||
| }); | ||
| }; | ||
| } | ||
| @@ -473,11 +473,12 @@ angular.module('ngAnimate', ['ng']) | ||
| function isMatchingElement(elm1, elm2) { | ||
| return extractElementNode(elm1) == extractElementNode(elm2); | ||
| } | ||
|
|
||
| var $$jqLite; | ||
| $provide.decorator('$animate', | ||
| ['$delegate', '$$q', '$injector', '$sniffer', '$rootElement', '$$asyncCallback', '$rootScope', '$document', '$templateRequest', | ||
| function($delegate, $$q, $injector, $sniffer, $rootElement, $$asyncCallback, $rootScope, $document, $templateRequest) { | ||
| ['$delegate', '$$q', '$injector', '$sniffer', '$rootElement', '$$asyncCallback', '$rootScope', '$document', '$templateRequest', '$$jqLite', | ||
| function($delegate, $$q, $injector, $sniffer, $rootElement, $$asyncCallback, $rootScope, $document, $templateRequest, $$$jqLite) { | ||
|
|
||
| $$jqLite = $$$jqLite; | ||
| $rootElement.data(NG_ANIMATE_STATE, rootAnimateState); | ||
|
|
||
| // Wait until all directive and route-related templates are downloaded and | ||
| @@ -1380,10 +1381,10 @@ angular.module('ngAnimate', ['ng']) | ||
|
|
||
| //the ng-animate class does nothing, but it's here to allow for | ||
| //parent animations to find and cancel child animations when needed | ||
| element.addClass(NG_ANIMATE_CLASS_NAME); | ||
| $$jqLite.addClass(element, NG_ANIMATE_CLASS_NAME); | ||
| if (options && options.tempClasses) { | ||
| forEach(options.tempClasses, function(className) { | ||
| element.addClass(className); | ||
| $$jqLite.addClass(element, className); | ||
| }); | ||
| } | ||
|
|
||
| @@ -1461,7 +1462,7 @@ angular.module('ngAnimate', ['ng']) | ||
| closeAnimation.hasBeenRun = true; | ||
| if (options && options.tempClasses) { | ||
| forEach(options.tempClasses, function(className) { | ||
| element.removeClass(className); | ||
| $$jqLite.removeClass(element, className); | ||
| }); | ||
| } | ||
|
|
||
| @@ -1523,7 +1524,7 @@ angular.module('ngAnimate', ['ng']) | ||
| } | ||
|
|
||
| if (removeAnimations || !data.totalActive) { | ||
| element.removeClass(NG_ANIMATE_CLASS_NAME); | ||
| $$jqLite.removeClass(element, NG_ANIMATE_CLASS_NAME); | ||
| element.removeData(NG_ANIMATE_STATE); | ||
| } | ||
| } | ||
| @@ -1764,22 +1765,22 @@ angular.module('ngAnimate', ['ng']) | ||
| var staggerCacheKey = cacheKey + ' ' + staggerClassName; | ||
| var applyClasses = !lookupCache[staggerCacheKey]; | ||
|
|
||
| applyClasses && element.addClass(staggerClassName); | ||
| applyClasses && $$jqLite.addClass(element, staggerClassName); | ||
|
|
||
| stagger = getElementAnimationDetails(element, staggerCacheKey); | ||
|
|
||
| applyClasses && element.removeClass(staggerClassName); | ||
| applyClasses && $$jqLite.removeClass(element, staggerClassName); | ||
| } | ||
|
|
||
| element.addClass(className); | ||
| $$jqLite.addClass(element, className); | ||
|
|
||
| var formerData = element.data(NG_ANIMATE_CSS_DATA_KEY) || {}; | ||
| var timings = getElementAnimationDetails(element, eventCacheKey); | ||
| var transitionDuration = timings.transitionDuration; | ||
| var animationDuration = timings.animationDuration; | ||
|
|
||
| if (structural && transitionDuration === 0 && animationDuration === 0) { | ||
| element.removeClass(className); | ||
| $$jqLite.removeClass(element, className); | ||
| return false; | ||
| } | ||
|
|
||
| @@ -1851,7 +1852,7 @@ angular.module('ngAnimate', ['ng']) | ||
| } | ||
|
|
||
| if (!staggerTime) { | ||
| element.addClass(activeClassName); | ||
| $$jqLite.addClass(element, activeClassName); | ||
| if (elementData.blockTransition) { | ||
| blockTransitions(node, false); | ||
| } | ||
| @@ -1861,7 +1862,7 @@ angular.module('ngAnimate', ['ng']) | ||
| var timings = getElementAnimationDetails(element, eventCacheKey); | ||
| var maxDuration = Math.max(timings.transitionDuration, timings.animationDuration); | ||
| if (maxDuration === 0) { | ||
| element.removeClass(activeClassName); | ||
| $$jqLite.removeClass(element, activeClassName); | ||
| animateClose(element, className); | ||
| activeAnimationComplete(); | ||
| return; | ||
| @@ -1896,7 +1897,7 @@ angular.module('ngAnimate', ['ng']) | ||
|
|
||
| var staggerTimeout; | ||
| if (staggerTime > 0) { | ||
| element.addClass(pendingClassName); | ||
| $$jqLite.addClass(element, pendingClassName); | ||
| staggerTimeout = $timeout(function() { | ||
| staggerTimeout = null; | ||
|
|
||
| @@ -1907,8 +1908,8 @@ angular.module('ngAnimate', ['ng']) | ||
| blockAnimations(node, false); | ||
| } | ||
|
|
||
| element.addClass(activeClassName); | ||
| element.removeClass(pendingClassName); | ||
| $$jqLite.addClass(element, activeClassName); | ||
| $$jqLite.removeClass(element, pendingClassName); | ||
|
|
||
| if (styles) { | ||
| if (timings.transitionDuration === 0) { | ||
| @@ -1935,8 +1936,8 @@ angular.module('ngAnimate', ['ng']) | ||
| // timeout done method. | ||
| function onEnd() { | ||
| element.off(css3AnimationEvents, onAnimationProgress); | ||
| element.removeClass(activeClassName); | ||
| element.removeClass(pendingClassName); | ||
| $$jqLite.removeClass(element, activeClassName); | ||
| $$jqLite.removeClass(element, pendingClassName); | ||
| if (staggerTimeout) { | ||
| $timeout.cancel(staggerTimeout); | ||
| } | ||
| @@ -2024,7 +2025,7 @@ angular.module('ngAnimate', ['ng']) | ||
| } | ||
|
|
||
| function animateClose(element, className) { | ||
| element.removeClass(className); | ||
| $$jqLite.removeClass(element, className); | ||
| var data = element.data(NG_ANIMATE_CSS_DATA_KEY); | ||
| if (data) { | ||
| if (data.running) { | ||
| @@ -5316,7 +5316,7 @@ describe("ngAnimate", function() { | ||
| //jQuery doesn't handle SVG elements natively. Instead, an add-on library | ||
| //is required which is called jquery.svg.js. Therefore, when jQuery is | ||
| //active here there is no point to test this since it won't work by default. | ||
| if (!$sniffer.transitions || !_jqLiteMode) return; | ||
| if (!$sniffer.transitions) return; | ||
|
|
||
| ss.addRule('circle.ng-enter', '-webkit-transition:1s linear all;' + | ||
| 'transition:1s linear all;'); | ||
| @@ -5336,13 +5336,13 @@ describe("ngAnimate", function() { | ||
|
|
||
| var child = element.find('circle'); | ||
|
|
||
| expect(child.hasClass('ng-enter')).toBe(true); | ||
| expect(child.hasClass('ng-enter-active')).toBe(true); | ||
| expect(jqLiteHasClass(child[0], 'ng-enter')).toBe(true); | ||
| expect(jqLiteHasClass(child[0], 'ng-enter-active')).toBe(true); | ||
|
|
||
| browserTrigger(child, 'transitionend', { timeStamp: Date.now() + 1000, elapsedTime: 1 }); | ||
|
|
||
| expect(child.hasClass('ng-enter')).toBe(false); | ||
| expect(child.hasClass('ng-enter-active')).toBe(false); | ||
| expect(jqLiteHasClass(child[0], 'ng-enter')).toBe(false); | ||
| expect(jqLiteHasClass(child[0], 'ng-enter-active')).toBe(false); | ||
| })); | ||
|
|
||
|
|
||
Showing you all comments on commits in this comparison.
This comment has been minimized.
This comment has been minimized.
|
Why is this using I'm seeing this locally after uglifying:
If I view the unminified version of my app, then there's no error at all. Edit So I see what the issue was. |