Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

update(angular): bump to 1.2.13

  • Loading branch information...
commit c15694b39f17a37f86ccd39f0b8145cad8c8daf8 1 parent 6f21599
@NgDashboard NgDashboard authored
Showing with 816 additions and 551 deletions.
  1. +2 −2 app/index-async.html
  2. +331 −228 app/lib/angular/angular-animate.js
  3. +22 −20 app/lib/angular/angular-animate.min.js
  4. +3 −3 app/lib/angular/angular-animate.min.js.map
  5. +1 −1  app/lib/angular/angular-cookies.js
  6. +1 −1  app/lib/angular/angular-cookies.min.js
  7. +5 −0 app/lib/angular/angular-csp.css
  8. +2 −2 app/lib/angular/angular-loader.js
  9. +2 −2 app/lib/angular/angular-loader.min.js
  10. +1 −1  app/lib/angular/angular-resource.js
  11. +1 −1  app/lib/angular/angular-resource.min.js
  12. +1 −1  app/lib/angular/angular-route.js
  13. +1 −1  app/lib/angular/angular-route.min.js
  14. +1 −1  app/lib/angular/angular-sanitize.js
  15. +1 −1  app/lib/angular/angular-sanitize.min.js
  16. +115 −39 app/lib/angular/angular-scenario.js
  17. +1 −1  app/lib/angular/angular-touch.js
  18. +1 −1  app/lib/angular/angular-touch.min.js
  19. +115 −39 app/lib/angular/angular.js
  20. +199 −197 app/lib/angular/angular.min.js
  21. +3 −3 app/lib/angular/angular.min.js.map
  22. +1 −1  app/lib/angular/errors.json
  23. +1 −1  app/lib/angular/version.json
  24. +1 −1  app/lib/angular/version.txt
  25. +3 −2 test/lib/angular/angular-mocks.js
  26. +1 −1  test/lib/angular/version.txt
View
4 app/index-async.html
@@ -11,11 +11,11 @@
// include angular loader, which allows the files to load in any order
/*
- AngularJS v1.2.12
+ AngularJS v1.2.13
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
-(function(){'use strict';function d(a){return function(){var c=arguments[0],b,c="["+(a?a+":":"")+c+"] http://errors.angularjs.org/1.2.12/"+(a?a+"/":"")+c;for(b=1;b<arguments.length;b++)c=c+(1==b?"?":"&")+"p"+(b-1)+"="+encodeURIComponent("function"==typeof arguments[b]?arguments[b].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[b]?"undefined":"string"!=typeof arguments[b]?JSON.stringify(arguments[b]):arguments[b]);return Error(c)}}(function(a){var c=d("$injector"),b=d("ng");a=a.angular||
+(function(){'use strict';function d(a){return function(){var c=arguments[0],b,c="["+(a?a+":":"")+c+"] http://errors.angularjs.org/1.2.13/"+(a?a+"/":"")+c;for(b=1;b<arguments.length;b++)c=c+(1==b?"?":"&")+"p"+(b-1)+"="+encodeURIComponent("function"==typeof arguments[b]?arguments[b].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[b]?"undefined":"string"!=typeof arguments[b]?JSON.stringify(arguments[b]):arguments[b]);return Error(c)}}(function(a){var c=d("$injector"),b=d("ng");a=a.angular||
(a.angular={});a.$$minErr=a.$$minErr||d;return a.module||(a.module=function(){var a={};return function(e,d,f){if("hasOwnProperty"===e)throw b("badname","module");d&&a.hasOwnProperty(e)&&(a[e]=null);return a[e]||(a[e]=function(){function a(c,d,e){return function(){b[e||"push"]([c,d,arguments]);return g}}if(!d)throw c("nomod",e);var b=[],h=[],k=a("$injector","invoke"),g={_invokeQueue:b,_runBlocks:h,requires:d,name:e,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide",
"service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:k,run:function(a){h.push(a);return this}};f&&k(f);return g}())}}())})(window)})(window);
//# sourceMappingURL=angular-loader.min.js.map
View
559 app/lib/angular/angular-animate.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
@@ -254,7 +254,9 @@ angular.module('ngAnimate', ['ng'])
* Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application.
*
*/
- .factory('$$animateReflow', ['$window', '$timeout', function($window, $timeout) {
+ .factory('$$animateReflow', ['$window', '$timeout', '$document',
+ function($window, $timeout, $document) {
+ var bod = $document[0].body;
var requestAnimationFrame = $window.requestAnimationFrame ||
$window.webkitRequestAnimationFrame ||
function(fn) {
@@ -267,13 +269,30 @@ angular.module('ngAnimate', ['ng'])
return $timeout.cancel(timer);
};
return function(fn) {
- var id = requestAnimationFrame(fn);
+ var id = requestAnimationFrame(function() {
+ var a = bod.offsetWidth + 1;
+ fn();
+ });
return function() {
cancelAnimationFrame(id);
};
};
}])
+ .factory('$$asyncQueueBuffer', ['$timeout', function($timeout) {
+ var timer, queue = [];
+ return function(fn) {
+ $timeout.cancel(timer);
+ queue.push(fn);
+ timer = $timeout(function() {
+ for(var i = 0; i < queue.length; i++) {
+ queue[i]();
+ }
+ queue = [];
+ }, 0, false);
+ };
+ }])
+
.config(['$provide', '$animateProvider', function($provide, $animateProvider) {
var noop = angular.noop;
var forEach = angular.forEach;
@@ -293,13 +312,18 @@ angular.module('ngAnimate', ['ng'])
}
}
+ function stripCommentsFromElement(element) {
+ return angular.element(extractElementNode(element));
+ }
+
function isMatchingElement(elm1, elm2) {
return extractElementNode(elm1) == extractElementNode(elm2);
}
- $provide.decorator('$animate', ['$delegate', '$injector', '$sniffer', '$rootElement', '$timeout', '$rootScope', '$document',
- function($delegate, $injector, $sniffer, $rootElement, $timeout, $rootScope, $document) {
+ $provide.decorator('$animate', ['$delegate', '$injector', '$sniffer', '$rootElement', '$$asyncQueueBuffer', '$rootScope', '$document',
+ function($delegate, $injector, $sniffer, $rootElement, $$asyncQueueBuffer, $rootScope, $document) {
+ var globalAnimationCounter = 0;
$rootElement.data(NG_ANIMATE_STATE, rootAnimateState);
// disable animations during bootstrap, but once we bootstrapped, wait again
@@ -321,10 +345,6 @@ angular.module('ngAnimate', ['ng'])
return classNameFilter.test(className);
};
- function async(fn) {
- return $timeout(fn, 0, false);
- }
-
function lookup(name) {
if (name) {
var matches = [],
@@ -406,6 +426,7 @@ angular.module('ngAnimate', ['ng'])
this.enabled(false, element);
$delegate.enter(element, parentElement, afterElement);
$rootScope.$$postDigest(function() {
+ element = stripCommentsFromElement(element);
performAnimation('enter', 'ng-enter', element, parentElement, afterElement, noop, doneCallback);
});
},
@@ -442,6 +463,7 @@ angular.module('ngAnimate', ['ng'])
cancelChildAnimations(element);
this.enabled(false, element);
$rootScope.$$postDigest(function() {
+ element = stripCommentsFromElement(element);
performAnimation('leave', 'ng-leave', element, null, null, function() {
$delegate.leave(element);
}, doneCallback);
@@ -484,6 +506,7 @@ angular.module('ngAnimate', ['ng'])
this.enabled(false, element);
$delegate.move(element, parentElement, afterElement);
$rootScope.$$postDigest(function() {
+ element = stripCommentsFromElement(element);
performAnimation('move', 'ng-move', element, parentElement, afterElement, noop, doneCallback);
});
},
@@ -519,6 +542,7 @@ angular.module('ngAnimate', ['ng'])
* @param {function()=} doneCallback the callback function that will be called once the animation is complete
*/
addClass : function(element, className, doneCallback) {
+ element = stripCommentsFromElement(element);
performAnimation('addClass', className, element, null, null, function() {
$delegate.addClass(element, className);
}, doneCallback);
@@ -555,11 +579,34 @@ angular.module('ngAnimate', ['ng'])
* @param {function()=} doneCallback the callback function that will be called once the animation is complete
*/
removeClass : function(element, className, doneCallback) {
+ element = stripCommentsFromElement(element);
performAnimation('removeClass', className, element, null, null, function() {
$delegate.removeClass(element, className);
}, doneCallback);
},
+ /**
+ *
+ * @ngdoc function
+ * @name ng.$animate#setClass
+ * @methodOf ng.$animate
+ * @function
+ * @description Adds and/or removes the given CSS classes to and from the element.
+ * Once complete, the done() callback will be fired (if provided).
+ * @param {jQuery/jqLite element} element the element which will it's CSS classes changed
+ * removed from it
+ * @param {string} add the CSS classes which will be added to the element
+ * @param {string} remove the CSS class which will be removed from the element
+ * @param {function=} done the callback function (if provided) that will be fired after the
+ * CSS classes have been set on the element
+ */
+ setClass : function(element, add, remove, doneCallback) {
+ element = stripCommentsFromElement(element);
+ performAnimation('setClass', [add, remove], element, null, null, function() {
+ $delegate.setClass(element, add, remove);
+ }, doneCallback);
+ },
+
/**
* @ngdoc function
* @name ngAnimate.$animate#enabled
@@ -606,7 +653,15 @@ angular.module('ngAnimate', ['ng'])
and the onComplete callback will be fired once the animation is fully complete.
*/
function performAnimation(animationEvent, className, element, parentElement, afterElement, domOperation, doneCallback) {
- var currentClassName, classes, node = extractElementNode(element);
+
+ var classNameAdd, classNameRemove, setClassOperation = animationEvent == 'setClass';
+ if(setClassOperation) {
+ classNameAdd = className[0];
+ classNameRemove = className[1];
+ className = classNameAdd + ' ' + classNameRemove;
+ }
+
+ var currentClassName, classes, node = element[0];
if(node) {
currentClassName = node.className;
classes = currentClassName + ' ' + className;
@@ -618,18 +673,27 @@ angular.module('ngAnimate', ['ng'])
fireDOMOperation();
fireBeforeCallbackAsync();
fireAfterCallbackAsync();
- closeAnimation();
+ fireDoneCallbackAsync();
return;
}
+ var elementEvents = angular.element._data(node);
+ elementEvents = elementEvents && elementEvents.events;
+
var animationLookup = (' ' + classes).replace(/\s+/g,'.');
if (!parentElement) {
parentElement = afterElement ? afterElement.parent() : element.parent();
}
- var matches = lookup(animationLookup);
- var isClassBased = animationEvent == 'addClass' || animationEvent == 'removeClass';
- var ngAnimateState = element.data(NG_ANIMATE_STATE) || {};
+ var matches = lookup(animationLookup);
+ var isClassBased = animationEvent == 'addClass' ||
+ animationEvent == 'removeClass' ||
+ setClassOperation;
+ var ngAnimateState = element.data(NG_ANIMATE_STATE) || {};
+
+ var runningAnimations = ngAnimateState.active || {};
+ var totalActiveAnimations = ngAnimateState.totalActive || 0;
+ var lastAnimation = ngAnimateState.last;
//skip the animation if animations are disabled, a parent is already being animated,
//the element is not currently attached to the document body or then completely close
@@ -648,7 +712,7 @@ angular.module('ngAnimate', ['ng'])
//only add animations if the currently running animation is not structural
//or if there is no animation running at all
var allowAnimations = isClassBased ?
- !ngAnimateState.disabled && (!ngAnimateState.running || !ngAnimateState.structural) :
+ !ngAnimateState.disabled && (!lastAnimation || lastAnimation.classBased) :
true;
if(allowAnimations) {
@@ -683,55 +747,48 @@ angular.module('ngAnimate', ['ng'])
return;
}
- var ONE_SPACE = ' ';
- //this value will be searched for class-based CSS className lookup. Therefore,
- //we prefix and suffix the current className value with spaces to avoid substring
- //lookups of className tokens
- var futureClassName = ONE_SPACE + currentClassName + ONE_SPACE;
- if(ngAnimateState.running) {
- //if an animation is currently running on the element then lets take the steps
- //to cancel that animation and fire any required callbacks
- $timeout.cancel(ngAnimateState.closeAnimationTimeout);
- cleanup(element);
- cancelAnimations(ngAnimateState.animations);
-
- //in the event that the CSS is class is quickly added and removed back
- //then we don't want to wait until after the reflow to add/remove the CSS
- //class since both class animations may run into a race condition.
- //The code below will check to see if that is occurring and will
- //immediately remove the former class before the reflow so that the
- //animation can snap back to the original animation smoothly
- var isFullyClassBasedAnimation = isClassBased && !ngAnimateState.structural;
- var isRevertingClassAnimation = isFullyClassBasedAnimation &&
- ngAnimateState.className == className &&
- animationEvent != ngAnimateState.event;
-
- //if the class is removed during the reflow then it will revert the styles temporarily
- //back to the base class CSS styling causing a jump-like effect to occur. This check
- //here ensures that the domOperation is only performed after the reflow has commenced
- if(ngAnimateState.beforeComplete || isRevertingClassAnimation) {
- (ngAnimateState.done || noop)(true);
- } else if(isFullyClassBasedAnimation) {
- //class-based animations will compare element className values after cancelling the
- //previous animation to see if the element properties already contain the final CSS
- //class and if so then the animation will be skipped. Since the domOperation will
- //be performed only after the reflow is complete then our element's className value
- //will be invalid. Therefore the same string manipulation that would occur within the
- //DOM operation will be performed below so that the class comparison is valid...
- futureClassName = ngAnimateState.event == 'removeClass' ?
- futureClassName.replace(ONE_SPACE + ngAnimateState.className + ONE_SPACE, ONE_SPACE) :
- futureClassName + ngAnimateState.className + ONE_SPACE;
+ var skipAnimation = false;
+ if(totalActiveAnimations > 0) {
+ var animationsToCancel = [];
+ if(!isClassBased) {
+ if(animationEvent == 'leave' && runningAnimations['ng-leave']) {
+ skipAnimation = true;
+ } else {
+ //cancel all animations when a structural animation takes place
+ for(var klass in runningAnimations) {
+ animationsToCancel.push(runningAnimations[klass]);
+ cleanup(element, klass);
+ }
+ runningAnimations = {};
+ totalActiveAnimations = 0;
+ }
+ } else if(lastAnimation.event == 'setClass') {
+ animationsToCancel.push(lastAnimation);
+ cleanup(element, className);
+ }
+ else if(runningAnimations[className]) {
+ var current = runningAnimations[className];
+ if(current.event == animationEvent) {
+ skipAnimation = true;
+ } else {
+ animationsToCancel.push(current);
+ cleanup(element, className);
+ }
+ }
+
+ if(animationsToCancel.length > 0) {
+ angular.forEach(animationsToCancel, function(operation) {
+ (operation.done || noop)(true);
+ cancelAnimations(operation.animations);
+ });
}
}
- //There is no point in perform a class-based animation if the element already contains
- //(on addClass) or doesn't contain (on removeClass) the className being animated.
- //The reason why this is being called after the previous animations are cancelled
- //is so that the CSS classes present on the element can be properly examined.
- var classNameToken = ONE_SPACE + className + ONE_SPACE;
- if((animationEvent == 'addClass' && futureClassName.indexOf(classNameToken) >= 0) ||
- (animationEvent == 'removeClass' && futureClassName.indexOf(classNameToken) == -1)) {
- fireDOMOperation();
+ if(isClassBased && !setClassOperation && !skipAnimation) {
+ skipAnimation = (animationEvent == 'addClass') == element.hasClass(className); //opposite of XOR
+ }
+
+ if(skipAnimation) {
fireBeforeCallbackAsync();
fireAfterCallbackAsync();
fireDoneCallbackAsync();
@@ -742,13 +799,22 @@ angular.module('ngAnimate', ['ng'])
//parent animations to find and cancel child animations when needed
element.addClass(NG_ANIMATE_CLASS_NAME);
- element.data(NG_ANIMATE_STATE, {
- running:true,
- event:animationEvent,
- className:className,
- structural:!isClassBased,
- animations:animations,
+ var localAnimationCount = globalAnimationCounter++;
+ lastAnimation = {
+ classBased : isClassBased,
+ event : animationEvent,
+ animations : animations,
done:onBeforeAnimationsComplete
+ };
+
+ totalActiveAnimations++;
+ runningAnimations[className] = lastAnimation;
+
+ element.data(NG_ANIMATE_STATE, {
+ last : lastAnimation,
+ active : runningAnimations,
+ index : localAnimationCount,
+ totalActive : totalActiveAnimations
});
//first we run the before animations and when all of those are complete
@@ -756,6 +822,11 @@ angular.module('ngAnimate', ['ng'])
invokeRegisteredAnimationFns(animations, 'before', onBeforeAnimationsComplete);
function onBeforeAnimationsComplete(cancelled) {
+ var data = element.data(NG_ANIMATE_STATE);
+ cancelled = cancelled ||
+ !data || !data.active[className] ||
+ (isClassBased && data.active[className].event != animationEvent);
+
fireDOMOperation();
if(cancelled === true) {
closeAnimation();
@@ -765,11 +836,8 @@ angular.module('ngAnimate', ['ng'])
//set the done function to the final done function
//so that the DOM event won't be executed twice by accident
//if the after animation is cancelled as well
- var data = element.data(NG_ANIMATE_STATE);
- if(data) {
- data.done = closeAnimation;
- element.data(NG_ANIMATE_STATE, data);
- }
+ var currentAnimation = data.active[className];
+ currentAnimation.done = closeAnimation;
invokeRegisteredAnimationFns(animations, 'after', closeAnimation);
}
@@ -792,9 +860,13 @@ angular.module('ngAnimate', ['ng'])
}
if(animation[phase]) {
- animation[endFnName] = isClassBased ?
- animation[phase](element, className, animationPhaseCompleted) :
- animation[phase](element, animationPhaseCompleted);
+ if(setClassOperation) {
+ animation[endFnName] = animation[phase](element, classNameAdd, classNameRemove, animationPhaseCompleted);
+ } else {
+ animation[endFnName] = isClassBased ?
+ animation[phase](element, className, animationPhaseCompleted) :
+ animation[phase](element, animationPhaseCompleted);
+ }
} else {
animationPhaseCompleted();
}
@@ -815,29 +887,32 @@ angular.module('ngAnimate', ['ng'])
}
function fireDOMCallback(animationPhase) {
- element.triggerHandler('$animate:' + animationPhase, {
- event : animationEvent,
- className : className
- });
+ var eventName = '$animate:' + animationPhase;
+ if(elementEvents && elementEvents[eventName] && elementEvents[eventName].length > 0) {
+ $$asyncQueueBuffer(function() {
+ element.triggerHandler(eventName, {
+ event : animationEvent,
+ className : className
+ });
+ });
+ }
}
function fireBeforeCallbackAsync() {
- async(function() {
- fireDOMCallback('before');
- });
+ fireDOMCallback('before');
}
function fireAfterCallbackAsync() {
- async(function() {
- fireDOMCallback('after');
- });
+ fireDOMCallback('after');
}
function fireDoneCallbackAsync() {
- async(function() {
- fireDOMCallback('close');
- doneCallback && doneCallback();
- });
+ fireDOMCallback('close');
+ if(doneCallback) {
+ $$asyncQueueBuffer(function() {
+ doneCallback();
+ });
+ }
}
//it is less complicated to use a flag than managing and cancelling
@@ -859,10 +934,13 @@ angular.module('ngAnimate', ['ng'])
failing would be when a parent HTML tag has a ng-class attribute
causing ALL directives below to skip animations during the digest */
if(isClassBased) {
- cleanup(element);
+ cleanup(element, className);
} else {
- data.closeAnimationTimeout = async(function() {
- cleanup(element);
+ $$asyncQueueBuffer(function() {
+ var data = element.data(NG_ANIMATE_STATE) || {};
+ if(localAnimationCount == data.index) {
+ cleanup(element, className, animationEvent);
+ }
});
element.data(NG_ANIMATE_STATE, data);
}
@@ -877,9 +955,11 @@ angular.module('ngAnimate', ['ng'])
forEach(node.querySelectorAll('.' + NG_ANIMATE_CLASS_NAME), function(element) {
element = angular.element(element);
var data = element.data(NG_ANIMATE_STATE);
- if(data) {
- cancelAnimations(data.animations);
- cleanup(element);
+ if(data && data.active) {
+ angular.forEach(data.active, function(operation) {
+ (operation.done || noop)(true);
+ cancelAnimations(operation.animations);
+ });
}
});
}
@@ -896,15 +976,27 @@ angular.module('ngAnimate', ['ng'])
});
}
- function cleanup(element) {
+ function cleanup(element, className) {
if(isMatchingElement(element, $rootElement)) {
if(!rootAnimateState.disabled) {
rootAnimateState.running = false;
rootAnimateState.structural = false;
}
- } else {
- element.removeClass(NG_ANIMATE_CLASS_NAME);
- element.removeData(NG_ANIMATE_STATE);
+ } else if(className) {
+ var data = element.data(NG_ANIMATE_STATE) || {};
+
+ var removeAnimations = className === true;
+ if(!removeAnimations) {
+ if(data.active && data.active[className]) {
+ data.totalActive--;
+ delete data.active[className];
+ }
+ }
+
+ if(removeAnimations || !data.totalActive) {
+ element.removeClass(NG_ANIMATE_CLASS_NAME);
+ element.removeData(NG_ANIMATE_STATE);
+ }
}
}
@@ -923,7 +1015,7 @@ angular.module('ngAnimate', ['ng'])
var isRoot = isMatchingElement(parentElement, $rootElement);
var state = isRoot ? rootAnimateState : parentElement.data(NG_ANIMATE_STATE);
- var result = state && (!!state.disabled || !!state.running);
+ var result = state && (!!state.disabled || state.running || state.totalActive > 0);
if(isRoot || result) {
return result;
}
@@ -973,74 +1065,57 @@ angular.module('ngAnimate', ['ng'])
var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount';
var NG_ANIMATE_PARENT_KEY = '$$ngAnimateKey';
var NG_ANIMATE_CSS_DATA_KEY = '$$ngAnimateCSS3Data';
+ var NG_ANIMATE_BLOCK_CLASS_NAME = 'ng-animate-block-transitions';
var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3;
var CLOSING_TIME_BUFFER = 1.5;
var ONE_SECOND = 1000;
- var animationCounter = 0;
var lookupCache = {};
var parentCounter = 0;
var animationReflowQueue = [];
- var animationElementQueue = [];
var cancelAnimationReflow;
- var closingAnimationTime = 0;
- var timeOut = false;
function afterReflow(element, callback) {
if(cancelAnimationReflow) {
cancelAnimationReflow();
}
-
animationReflowQueue.push(callback);
-
- var node = extractElementNode(element);
- element = angular.element(node);
- animationElementQueue.push(element);
-
- var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY);
-
- var stagger = elementData.stagger;
- var staggerTime = elementData.itemIndex * (Math.max(stagger.animationDelay, stagger.transitionDelay) || 0);
-
- var animationTime = (elementData.maxDelay + elementData.maxDuration) * CLOSING_TIME_BUFFER;
- closingAnimationTime = Math.max(closingAnimationTime, (staggerTime + animationTime) * ONE_SECOND);
-
- //by placing a counter we can avoid an accidental
- //race condition which may close an animation when
- //a follow-up animation is midway in its animation
- elementData.animationCount = animationCounter;
-
cancelAnimationReflow = $$animateReflow(function() {
forEach(animationReflowQueue, function(fn) {
fn();
});
- //copy the list of elements so that successive
- //animations won't conflict if they're added before
- //the closing animation timeout has run
- var elementQueueSnapshot = [];
- var animationCounterSnapshot = animationCounter;
- forEach(animationElementQueue, function(elm) {
- elementQueueSnapshot.push(elm);
- });
-
- $timeout(function() {
- closeAllAnimations(elementQueueSnapshot, animationCounterSnapshot);
- elementQueueSnapshot = null;
- }, closingAnimationTime, false);
-
animationReflowQueue = [];
- animationElementQueue = [];
cancelAnimationReflow = null;
lookupCache = {};
- closingAnimationTime = 0;
- animationCounter++;
});
}
- function closeAllAnimations(elements, count) {
+ var closingTimer = null;
+ var closingTimestamp = 0;
+ var animationElementQueue = [];
+ function animationCloseHandler(element, totalTime) {
+ var futureTimestamp = Date.now() + (totalTime * 1000);
+ if(futureTimestamp <= closingTimestamp) {
+ return;
+ }
+
+ $timeout.cancel(closingTimer);
+
+ var node = extractElementNode(element);
+ element = angular.element(node);
+ animationElementQueue.push(element);
+
+ closingTimestamp = futureTimestamp;
+ closingTimer = $timeout(function() {
+ closeAllAnimations(animationElementQueue);
+ animationElementQueue = [];
+ }, totalTime, false);
+ }
+
+ function closeAllAnimations(elements) {
forEach(elements, function(element) {
var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY);
- if(elementData && elementData.animationCount == count) {
+ if(elementData) {
(elementData.closeAnimationFn || noop)();
}
});
@@ -1125,12 +1200,12 @@ angular.module('ngAnimate', ['ng'])
return parentID + '-' + extractElementNode(element).className;
}
- function animateSetup(element, className, calculationDecorator) {
+ function animateSetup(animationEvent, element, className, calculationDecorator) {
var cacheKey = getCacheKey(element);
var eventCacheKey = cacheKey + ' ' + className;
- var stagger = {};
var itemIndex = lookupCache[eventCacheKey] ? ++lookupCache[eventCacheKey].total : 0;
+ var stagger = {};
if(itemIndex > 0) {
var staggerClassName = className + '-stagger';
var staggerCacheKey = cacheKey + ' ' + staggerClassName;
@@ -1150,60 +1225,63 @@ angular.module('ngAnimate', ['ng'])
element.addClass(className);
+ var formerData = element.data(NG_ANIMATE_CSS_DATA_KEY) || {};
+
var timings = calculationDecorator(function() {
return getElementAnimationDetails(element, eventCacheKey);
});
- /* there is no point in performing a reflow if the animation
- timeout is empty (this would cause a flicker bug normally
- in the page. There is also no point in performing an animation
- that only has a delay and no duration */
- var maxDelay = Math.max(timings.transitionDelay, timings.animationDelay);
- var maxDuration = Math.max(timings.transitionDuration, timings.animationDuration);
- if(maxDuration === 0) {
+ var transitionDuration = timings.transitionDuration;
+ var animationDuration = timings.animationDuration;
+ if(transitionDuration === 0 && animationDuration === 0) {
element.removeClass(className);
return false;
}
- //temporarily disable the transition so that the enter styles
- //don't animate twice (this is here to avoid a bug in Chrome/FF).
- var activeClassName = '';
- timings.transitionDuration > 0 ?
- blockTransitions(element) :
- blockKeyframeAnimations(element);
-
- forEach(className.split(' '), function(klass, i) {
- activeClassName += (i > 0 ? ' ' : '') + klass + '-active';
- });
-
element.data(NG_ANIMATE_CSS_DATA_KEY, {
- className : className,
- activeClassName : activeClassName,
- maxDuration : maxDuration,
- maxDelay : maxDelay,
- classes : className + ' ' + activeClassName,
- timings : timings,
+ running : formerData.running || 0,
+ itemIndex : itemIndex,
stagger : stagger,
- itemIndex : itemIndex
+ timings : timings,
+ closeAnimationFn : angular.noop
});
+ //temporarily disable the transition so that the enter styles
+ //don't animate twice (this is here to avoid a bug in Chrome/FF).
+ var isCurrentlyAnimating = formerData.running > 0 || animationEvent == 'setClass';
+ if(transitionDuration > 0) {
+ blockTransitions(element, className, isCurrentlyAnimating);
+ }
+ if(animationDuration > 0) {
+ blockKeyframeAnimations(element);
+ }
+
return true;
}
- function blockTransitions(element) {
- extractElementNode(element).style[TRANSITION_PROP + PROPERTY_KEY] = 'none';
+ function isStructuralAnimation(className) {
+ return className == 'ng-enter' || className == 'ng-move' || className == 'ng-leave';
+ }
+
+ function blockTransitions(element, className, isAnimating) {
+ if(isStructuralAnimation(className) || !isAnimating) {
+ extractElementNode(element).style[TRANSITION_PROP + PROPERTY_KEY] = 'none';
+ } else {
+ element.addClass(NG_ANIMATE_BLOCK_CLASS_NAME);
+ }
}
function blockKeyframeAnimations(element) {
extractElementNode(element).style[ANIMATION_PROP] = 'none 0s';
}
- function unblockTransitions(element) {
+ function unblockTransitions(element, className) {
var prop = TRANSITION_PROP + PROPERTY_KEY;
var node = extractElementNode(element);
if(node.style[prop] && node.style[prop].length > 0) {
node.style[prop] = '';
}
+ element.removeClass(NG_ANIMATE_BLOCK_CLASS_NAME);
}
function unblockKeyframeAnimations(element) {
@@ -1214,22 +1292,28 @@ angular.module('ngAnimate', ['ng'])
}
}
- function animateRun(element, className, activeAnimationComplete) {
- var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY);
+ function animateRun(animationEvent, element, className, activeAnimationComplete) {
var node = extractElementNode(element);
+ var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY);
if(node.className.indexOf(className) == -1 || !elementData) {
activeAnimationComplete();
return;
}
- var timings = elementData.timings;
+ var activeClassName = '';
+ forEach(className.split(' '), function(klass, i) {
+ activeClassName += (i > 0 ? ' ' : '') + klass + '-active';
+ });
+
var stagger = elementData.stagger;
- var maxDuration = elementData.maxDuration;
- var activeClassName = elementData.activeClassName;
- var maxDelayTime = Math.max(timings.transitionDelay, timings.animationDelay) * ONE_SECOND;
+ var timings = elementData.timings;
+ var itemIndex = elementData.itemIndex;
+ var maxDuration = Math.max(timings.transitionDuration, timings.animationDuration);
+ var maxDelay = Math.max(timings.transitionDelay, timings.animationDelay);
+ var maxDelayTime = maxDelay * ONE_SECOND;
+
var startTime = Date.now();
var css3AnimationEvents = ANIMATIONEND_EVENT + ' ' + TRANSITIONEND_EVENT;
- var itemIndex = elementData.itemIndex;
var style = '', appliedStyles = [];
if(timings.transitionDuration > 0) {
@@ -1271,6 +1355,13 @@ angular.module('ngAnimate', ['ng'])
onEnd();
activeAnimationComplete();
};
+
+ var staggerTime = itemIndex * (Math.max(stagger.animationDelay, stagger.transitionDelay) || 0);
+ var animationTime = (maxDelay + maxDuration) * CLOSING_TIME_BUFFER;
+ var totalTime = (staggerTime + animationTime) * ONE_SECOND;
+
+ elementData.running++;
+ animationCloseHandler(element, totalTime);
return onEnd;
// This will automatically be called by $animate so
@@ -1290,7 +1381,7 @@ angular.module('ngAnimate', ['ng'])
event.stopPropagation();
var ev = event.originalEvent || event;
var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now();
-
+
/* Firefox (or possibly just Gecko) likes to not round values up
* when a ms measurement is used for the animation */
var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES));
@@ -1317,28 +1408,28 @@ angular.module('ngAnimate', ['ng'])
return style;
}
- function animateBefore(element, className, calculationDecorator) {
- if(animateSetup(element, className, calculationDecorator)) {
+ function animateBefore(animationEvent, element, className, calculationDecorator) {
+ if(animateSetup(animationEvent, element, className, calculationDecorator)) {
return function(cancelled) {
cancelled && animateClose(element, className);
};
}
}
- function animateAfter(element, className, afterAnimationComplete) {
+ function animateAfter(animationEvent, element, className, afterAnimationComplete) {
if(element.data(NG_ANIMATE_CSS_DATA_KEY)) {
- return animateRun(element, className, afterAnimationComplete);
+ return animateRun(animationEvent, element, className, afterAnimationComplete);
} else {
animateClose(element, className);
afterAnimationComplete();
}
}
- function animate(element, className, animationComplete) {
+ function animate(animationEvent, element, className, animationComplete) {
//If the animateSetup function doesn't bother returning a
//cancellation function then it means that there is no animation
//to perform at all
- var preReflowCancellation = animateBefore(element, className);
+ var preReflowCancellation = animateBefore(animationEvent, element, className);
if(!preReflowCancellation) {
animationComplete();
return;
@@ -1351,12 +1442,12 @@ angular.module('ngAnimate', ['ng'])
//happen in the first place
var cancel = preReflowCancellation;
afterReflow(element, function() {
- unblockTransitions(element);
+ unblockTransitions(element, className);
unblockKeyframeAnimations(element);
//once the reflow is complete then we point cancel to
//the new cancellation function which will remove all of the
//animation properties from the active animation
- cancel = animateAfter(element, className, animationComplete);
+ cancel = animateAfter(animationEvent, element, className, animationComplete);
});
return function(cancelled) {
@@ -1366,54 +1457,59 @@ angular.module('ngAnimate', ['ng'])
function animateClose(element, className) {
element.removeClass(className);
- element.removeData(NG_ANIMATE_CSS_DATA_KEY);
+ var data = element.data(NG_ANIMATE_CSS_DATA_KEY);
+ if(data) {
+ if(data.running) {
+ data.running--;
+ }
+ if(!data.running || data.running === 0) {
+ element.removeData(NG_ANIMATE_CSS_DATA_KEY);
+ }
+ }
}
return {
- allowCancel : function(element, animationEvent, className) {
- //always cancel the current animation if it is a
- //structural animation
- var oldClasses = (element.data(NG_ANIMATE_CSS_DATA_KEY) || {}).classes;
- if(!oldClasses || ['enter','leave','move'].indexOf(animationEvent) >= 0) {
- return true;
- }
-
- var parentElement = element.parent();
- var clone = angular.element(extractElementNode(element).cloneNode());
-
- //make the element super hidden and override any CSS style values
- clone.attr('style','position:absolute; top:-9999px; left:-9999px');
- clone.removeAttr('id');
- clone.empty();
-
- forEach(oldClasses.split(' '), function(klass) {
- clone.removeClass(klass);
- });
-
- var suffix = animationEvent == 'addClass' ? '-add' : '-remove';
- clone.addClass(suffixClasses(className, suffix));
- parentElement.append(clone);
-
- var timings = getElementAnimationDetails(clone);
- clone.remove();
-
- return Math.max(timings.transitionDuration, timings.animationDuration) > 0;
- },
-
enter : function(element, animationCompleted) {
- return animate(element, 'ng-enter', animationCompleted);
+ return animate('enter', element, 'ng-enter', animationCompleted);
},
leave : function(element, animationCompleted) {
- return animate(element, 'ng-leave', animationCompleted);
+ return animate('leave', element, 'ng-leave', animationCompleted);
},
move : function(element, animationCompleted) {
- return animate(element, 'ng-move', animationCompleted);
+ return animate('move', element, 'ng-move', animationCompleted);
+ },
+
+ beforeSetClass : function(element, add, remove, animationCompleted) {
+ var className = suffixClasses(remove, '-remove') + ' ' +
+ suffixClasses(add, '-add');
+ var cancellationMethod = animateBefore('setClass', element, className, function(fn) {
+ /* when classes are removed from an element then the transition style
+ * that is applied is the transition defined on the element without the
+ * CSS class being there. This is how CSS3 functions outside of ngAnimate.
+ * http://plnkr.co/edit/j8OzgTNxHTb4n3zLyjGW?p=preview */
+ var klass = element.attr('class');
+ element.removeClass(remove);
+ element.addClass(add);
+ var timings = fn();
+ element.attr('class', klass);
+ return timings;
+ });
+
+ if(cancellationMethod) {
+ afterReflow(element, function() {
+ unblockTransitions(element, className);
+ unblockKeyframeAnimations(element);
+ animationCompleted();
+ });
+ return cancellationMethod;
+ }
+ animationCompleted();
},
beforeAddClass : function(element, className, animationCompleted) {
- var cancellationMethod = animateBefore(element, suffixClasses(className, '-add'), function(fn) {
+ var cancellationMethod = animateBefore('addClass', element, suffixClasses(className, '-add'), function(fn) {
/* when a CSS class is added to an element then the transition style that
* is applied is the transition defined on the element when the CSS class
@@ -1427,7 +1523,7 @@ angular.module('ngAnimate', ['ng'])
if(cancellationMethod) {
afterReflow(element, function() {
- unblockTransitions(element);
+ unblockTransitions(element, className);
unblockKeyframeAnimations(element);
animationCompleted();
});
@@ -1436,12 +1532,19 @@ angular.module('ngAnimate', ['ng'])
animationCompleted();
},
+ setClass : function(element, add, remove, animationCompleted) {
+ remove = suffixClasses(remove, '-remove');
+ add = suffixClasses(add, '-add');
+ var className = remove + ' ' + add;
+ return animateAfter('setClass', element, className, animationCompleted);
+ },
+
addClass : function(element, className, animationCompleted) {
- return animateAfter(element, suffixClasses(className, '-add'), animationCompleted);
+ return animateAfter('addClass', element, suffixClasses(className, '-add'), animationCompleted);
},
beforeRemoveClass : function(element, className, animationCompleted) {
- var cancellationMethod = animateBefore(element, suffixClasses(className, '-remove'), function(fn) {
+ var cancellationMethod = animateBefore('removeClass', element, suffixClasses(className, '-remove'), function(fn) {
/* when classes are removed from an element then the transition style
* that is applied is the transition defined on the element without the
* CSS class being there. This is how CSS3 functions outside of ngAnimate.
@@ -1455,7 +1558,7 @@ angular.module('ngAnimate', ['ng'])
if(cancellationMethod) {
afterReflow(element, function() {
- unblockTransitions(element);
+ unblockTransitions(element, className);
unblockKeyframeAnimations(element);
animationCompleted();
});
@@ -1465,7 +1568,7 @@ angular.module('ngAnimate', ['ng'])
},
removeClass : function(element, className, animationCompleted) {
- return animateAfter(element, suffixClasses(className, '-remove'), animationCompleted);
+ return animateAfter('removeClass', element, suffixClasses(className, '-remove'), animationCompleted);
}
};
View
42 app/lib/angular/angular-animate.min.js
@@ -1,25 +1,27 @@
/*
- AngularJS v1.2.12
+ AngularJS v1.2.13
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
-(function(v,k,t){'use strict';k.module("ngAnimate",["ng"]).factory("$$animateReflow",["$window","$timeout",function(k,B){var d=k.requestAnimationFrame||k.webkitRequestAnimationFrame||function(d){return B(d,10,!1)},q=k.cancelAnimationFrame||k.webkitCancelAnimationFrame||function(d){return B.cancel(d)};return function(p){var k=d(p);return function(){q(k)}}}]).config(["$provide","$animateProvider",function(R,B){function d(d){for(var k=0;k<d.length;k++){var p=d[k];if(p.nodeType==X)return p}}var q=k.noop,
-p=k.forEach,$=B.$$selectors,X=1,l="$$ngAnimateState",K="ng-animate",m={running:!0};R.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$timeout","$rootScope","$document",function(C,v,t,H,y,w,N){function I(a){if(a){var g=[],e={};a=a.substr(1).split(".");(t.transitions||t.animations)&&a.push("");for(var c=0;c<a.length;c++){var f=a[c],d=$[f];d&&!e[f]&&(g.push(v.get(d)),e[f]=!0)}return g}}function r(a,g,e,c,f,k,m){function t(a){n();if(!0===a)z();else{if(a=e.data(l))a.done=z,e.data(l,
-a);C(D,"after",z)}}function C(c,d,f){"after"==d?r():E();var k=d+"End";p(c,function(b,aa){var h=function(){a:{var b=d+"Complete",a=c[aa];a[b]=!0;(a[k]||q)();for(a=0;a<c.length;a++)if(!c[a][b])break a;f()}};"before"!=d||"enter"!=a&&"move"!=a?b[d]?b[k]=u?b[d](e,g,h):b[d](e,h):h():h()})}function w(c){e.triggerHandler("$animate:"+c,{event:a,className:g})}function E(){y(function(){w("before")},0,!1)}function r(){y(function(){w("after")},0,!1)}function v(){y(function(){w("close");m&&m()},0,!1)}function n(){n.hasBeenRun||
-(n.hasBeenRun=!0,k())}function z(){if(!z.hasBeenRun){z.hasBeenRun=!0;var a=e.data(l);a&&(u?A(e):(a.closeAnimationTimeout=y(function(){A(e)},0,!1),e.data(l,a)));v()}}var s,x,G=d(e);G&&(s=G.className,x=s+" "+g);if(G&&L(x)){x=(" "+x).replace(/\s+/g,".");c||(c=f?f.parent():e.parent());x=I(x);var u="addClass"==a||"removeClass"==a;f=e.data(l)||{};if(ba(e,c)||0===x.length)n(),E(),r(),z();else{var D=[];u&&(f.disabled||f.running&&f.structural)||p(x,function(c){if(!c.allowCancel||c.allowCancel(e,a,g)){var d=
-c[a];"leave"==a?(c=d,d=null):c=c["before"+a.charAt(0).toUpperCase()+a.substr(1)];D.push({before:c,after:d})}});0===D.length?(n(),E(),r(),v()):(c=" "+s+" ",f.running&&(y.cancel(f.closeAnimationTimeout),A(e),J(f.animations),x=(s=u&&!f.structural)&&f.className==g&&a!=f.event,f.beforeComplete||x?(f.done||q)(!0):s&&(c="removeClass"==f.event?c.replace(" "+f.className+" "," "):c+f.className+" ")),s=" "+g+" ","addClass"==a&&0<=c.indexOf(s)||"removeClass"==a&&-1==c.indexOf(s)?(n(),E(),r(),v()):(e.addClass(K),
-e.data(l,{running:!0,event:a,className:g,structural:!u,animations:D,done:t}),C(D,"before",t)))}}else n(),E(),r(),z()}function Q(a){a=d(a);p(a.querySelectorAll("."+K),function(a){a=k.element(a);var e=a.data(l);e&&(J(e.animations),A(a))})}function J(a){p(a,function(a){a.beforeComplete||(a.beforeEnd||q)(!0);a.afterComplete||(a.afterEnd||q)(!0)})}function A(a){d(a)==d(H)?m.disabled||(m.running=!1,m.structural=!1):(a.removeClass(K),a.removeData(l))}function ba(a,g){if(m.disabled)return!0;if(d(a)==d(H))return m.disabled||
-m.running;do{if(0===g.length)break;var e=d(g)==d(H),c=e?m:g.data(l),c=c&&(!!c.disabled||!!c.running);if(e||c)return c;if(e)break}while(g=g.parent());return!0}H.data(l,m);w.$$postDigest(function(){w.$$postDigest(function(){m.running=!1})});var M=B.classNameFilter(),L=M?function(a){return M.test(a)}:function(){return!0};return{enter:function(a,d,e,c){this.enabled(!1,a);C.enter(a,d,e);w.$$postDigest(function(){r("enter","ng-enter",a,d,e,q,c)})},leave:function(a,d){Q(a);this.enabled(!1,a);w.$$postDigest(function(){r("leave",
-"ng-leave",a,null,null,function(){C.leave(a)},d)})},move:function(a,d,e,c){Q(a);this.enabled(!1,a);C.move(a,d,e);w.$$postDigest(function(){r("move","ng-move",a,d,e,q,c)})},addClass:function(a,d,e){r("addClass",d,a,null,null,function(){C.addClass(a,d)},e)},removeClass:function(a,d,e){r("removeClass",d,a,null,null,function(){C.removeClass(a,d)},e)},enabled:function(a,d){switch(arguments.length){case 2:if(a)A(d);else{var e=d.data(l)||{};e.disabled=!0;d.data(l,e)}break;case 1:m.disabled=!a;break;default:a=
-!m.disabled}return!!a}}}]);B.register("",["$window","$sniffer","$timeout","$$animateReflow",function(m,l,B,H){function y(b,a){O&&O();U.push(a);var h=d(b);b=k.element(h);V.push(b);var h=b.data(n),c=h.stagger,c=h.itemIndex*(Math.max(c.animationDelay,c.transitionDelay)||0);P=Math.max(P,(c+(h.maxDelay+h.maxDuration)*s)*x);h.animationCount=G;O=H(function(){p(U,function(b){b()});var b=[],a=G;p(V,function(a){b.push(a)});B(function(){w(b,a);b=null},P,!1);U=[];V=[];O=null;u={};P=0;G++})}function w(b,a){p(b,
-function(b){(b=b.data(n))&&b.animationCount==a&&(b.closeAnimationFn||q)()})}function N(b,a){var h=a?u[a]:null;if(!h){var d=0,c=0,e=0,k=0,g,n,l,r;p(b,function(b){if(b.nodeType==X){b=m.getComputedStyle(b)||{};l=b[f+Y];d=Math.max(I(l),d);r=b[f+W];g=b[f+E];c=Math.max(I(g),c);n=b[F+E];k=Math.max(I(n),k);var a=I(b[F+Y]);0<a&&(a*=parseInt(b[F+R],10)||1);e=Math.max(a,e)}});h={total:0,transitionPropertyStyle:r,transitionDurationStyle:l,transitionDelayStyle:g,transitionDelay:c,transitionDuration:d,animationDelayStyle:n,
-animationDelay:k,animationDuration:e};a&&(u[a]=h)}return h}function I(b){var a=0;b=k.isString(b)?b.split(/\s*,\s*/):[];p(b,function(b){a=Math.max(parseFloat(b)||0,a)});return a}function r(b){var a=b.parent(),h=a.data(Z);h||(a.data(Z,++D),h=D);return h+"-"+d(b).className}function Q(b,a,h){var c=r(b),e=c+" "+a,k={},g=u[e]?++u[e].total:0;if(0<g){var l=a+"-stagger",k=c+" "+l;(c=!u[k])&&b.addClass(l);k=N(b,k);c&&b.removeClass(l)}h=h||function(b){return b()};b.addClass(a);h=h(function(){return N(b,e)});
-l=Math.max(h.transitionDelay,h.animationDelay);c=Math.max(h.transitionDuration,h.animationDuration);if(0===c)return b.removeClass(a),!1;var m="";0<h.transitionDuration?d(b).style[f+W]="none":d(b).style[F]="none 0s";p(a.split(" "),function(b,a){m+=(0<a?" ":"")+b+"-active"});b.data(n,{className:a,activeClassName:m,maxDuration:c,maxDelay:l,classes:a+" "+m,timings:h,stagger:k,itemIndex:g});return!0}function J(b){var a=f+W;b=d(b);b.style[a]&&0<b.style[a].length&&(b.style[a]="")}function A(b){var a=F;b=
-d(b);b.style[a]&&0<b.style[a].length&&(b.style[a]="")}function K(b,a,h){function e(c){b.off(v,k);b.removeClass(r);c=b;c.removeClass(a);c.removeData(n);c=d(b);for(var h in s)c.style.removeProperty(s[h])}function k(b){b.stopPropagation();var a=b.originalEvent||b;b=a.$manualTimeStamp||a.timeStamp||Date.now();a=parseFloat(a.elapsedTime.toFixed(z));Math.max(b-w,0)>=u&&a>=p&&h()}var f=b.data(n),g=d(b);if(-1!=g.className.indexOf(a)&&f){var l=f.timings,m=f.stagger,p=f.maxDuration,r=f.activeClassName,u=Math.max(l.transitionDelay,
-l.animationDelay)*x,w=Date.now(),v=T+" "+S,t=f.itemIndex,q="",s=[];if(0<l.transitionDuration){var y=l.transitionPropertyStyle;-1==y.indexOf("all")&&(q+=c+"transition-property: "+y+";",q+=c+"transition-duration: "+l.transitionDurationStyle+";",s.push(c+"transition-property"),s.push(c+"transition-duration"))}0<t&&(0<m.transitionDelay&&0===m.transitionDuration&&(q+=c+"transition-delay: "+M(l.transitionDelayStyle,m.transitionDelay,t)+"; ",s.push(c+"transition-delay")),0<m.animationDelay&&0===m.animationDuration&&
-(q+=c+"animation-delay: "+M(l.animationDelayStyle,m.animationDelay,t)+"; ",s.push(c+"animation-delay")));0<s.length&&(l=g.getAttribute("style")||"",g.setAttribute("style",l+" "+q));b.on(v,k);b.addClass(r);f.closeAnimationFn=function(){e();h()};return e}h()}function M(b,a,c){var d="";p(b.split(","),function(b,e){d+=(0<e?",":"")+(c*a+parseInt(b,10))+"s"});return d}function L(b,a,c){if(Q(b,a,c))return function(c){c&&(b.removeClass(a),b.removeData(n))}}function a(a,c,d){if(a.data(n))return K(a,c,d);a.removeClass(c);
-a.removeData(n);d()}function g(b,c,d){var e=L(b,c);if(e){var f=e;y(b,function(){J(b);A(b);f=a(b,c,d)});return function(a){(f||q)(a)}}d()}function e(a,c){var d="";a=k.isArray(a)?a:a.split(/\s+/);p(a,function(a,b){a&&0<a.length&&(d+=(0<b?" ":"")+a+c)});return d}var c="",f,S,F,T;v.ontransitionend===t&&v.onwebkittransitionend!==t?(c="-webkit-",f="WebkitTransition",S="webkitTransitionEnd transitionend"):(f="transition",S="transitionend");v.onanimationend===t&&v.onwebkitanimationend!==t?(c="-webkit-",F=
-"WebkitAnimation",T="webkitAnimationEnd animationend"):(F="animation",T="animationend");var Y="Duration",W="Property",E="Delay",R="IterationCount",Z="$$ngAnimateKey",n="$$ngAnimateCSS3Data",z=3,s=1.5,x=1E3,G=0,u={},D=0,U=[],V=[],O,P=0;return{allowCancel:function(a,c,h){var f=(a.data(n)||{}).classes;if(!f||0<=["enter","leave","move"].indexOf(c))return!0;var l=a.parent(),g=k.element(d(a).cloneNode());g.attr("style","position:absolute; top:-9999px; left:-9999px");g.removeAttr("id");g.empty();p(f.split(" "),
-function(a){g.removeClass(a)});g.addClass(e(h,"addClass"==c?"-add":"-remove"));l.append(g);a=N(g);g.remove();return 0<Math.max(a.transitionDuration,a.animationDuration)},enter:function(a,c){return g(a,"ng-enter",c)},leave:function(a,c){return g(a,"ng-leave",c)},move:function(a,c){return g(a,"ng-move",c)},beforeAddClass:function(a,c,d){var f=L(a,e(c,"-add"),function(d){a.addClass(c);d=d();a.removeClass(c);return d});if(f)return y(a,function(){J(a);A(a);d()}),f;d()},addClass:function(b,c,d){return a(b,
-e(c,"-add"),d)},beforeRemoveClass:function(a,c,d){var f=L(a,e(c,"-remove"),function(d){var e=a.attr("class");a.removeClass(c);d=d();a.attr("class",e);return d});if(f)return y(a,function(){J(a);A(a);d()}),f;d()},removeClass:function(b,c,d){return a(b,e(c,"-remove"),d)}}}])}])})(window,window.angular);
+(function(z,f,T){'use strict';f.module("ngAnimate",["ng"]).factory("$$animateReflow",["$window","$timeout","$document",function(f,h,d){var n=f.requestAnimationFrame||f.webkitRequestAnimationFrame||function(d){return h(d,10,!1)},w=f.cancelAnimationFrame||f.webkitCancelAnimationFrame||function(d){return h.cancel(d)};return function(d){var f=n(function(){d()});return function(){w(f)}}}]).factory("$$asyncQueueBuffer",["$timeout",function(f){var h,d=[];return function(n){f.cancel(h);d.push(n);h=f(function(){for(var f=
+0;f<d.length;f++)d[f]();d=[]},0,!1)}}]).config(["$provide","$animateProvider",function($,h){function d(d){for(var f=0;f<d.length;f++){var l=d[f];if(l.nodeType==da)return l}}function n(l){return f.element(d(l))}var w=f.noop,D=f.forEach,ia=h.$$selectors,da=1,l="$$ngAnimateState",U="ng-animate",s={running:!0};$.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$$asyncQueueBuffer","$rootScope","$document",function(x,z,ca,F,J,B,T){function V(a){if(a){var c=[],e={};a=a.substr(1).split(".");
+(ca.transitions||ca.animations)&&a.push("");for(var A=0;A<a.length;A++){var d=a[A],f=ia[d];f&&!e[d]&&(c.push(z.get(f)),e[d]=!0)}return c}}function t(a,c,e,d,k,C,s){function t(b){var g=e.data(l);b=b||!g||!g.active[c]||m&&g.active[c].event!=a;K();!0===b?G():(g.active[c].done=G,n(L,"after",G))}function n(b,g,ja){"after"==g?H():x();var fa=g+"End";D(b,function(d,f){var A=function(){a:{var a=g+"Complete",c=b[f];c[a]=!0;(c[fa]||w)();for(c=0;c<b.length;c++)if(!b[c][a])break a;ja()}};"before"!=g||"enter"!=
+a&&"move"!=a?d[g]?d[fa]=F?d[g](e,E,z,A):m?d[g](e,c,A):d[g](e,A):A():A()})}function h(b){var g="$animate:"+b;u&&(u[g]&&0<u[g].length)&&J(function(){e.triggerHandler(g,{event:a,className:c})})}function x(){h("before")}function H(){h("after")}function B(){h("close");s&&J(function(){s()})}function K(){K.hasBeenRun||(K.hasBeenRun=!0,C())}function G(){if(!G.hasBeenRun){G.hasBeenRun=!0;var b=e.data(l);b&&(m?M(e,c):(J(function(){var b=e.data(l)||{};Q==b.index&&M(e,c,a)}),e.data(l,b)));B()}}var E,z,F="setClass"==
+a;F&&(E=c[0],z=c[1],c=E+" "+z);var v,y=e[0];y&&(v=y.className,v=v+" "+c);if(y&&W(v)){var u=f.element._data(y),u=u&&u.events,y=(" "+v).replace(/\s+/g,".");d||(d=k?k.parent():e.parent());var q=V(y),m="addClass"==a||"removeClass"==a||F,I=e.data(l)||{};k=I.active||{};y=I.totalActive||0;v=I.last;if(R(e,d)||0===q.length)K(),x(),H(),G();else{var L=[];m&&(I.disabled||v&&!v.classBased)||D(q,function(b){if(!b.allowCancel||b.allowCancel(e,a,c)){var g=b[a];"leave"==a?(b=g,g=null):b=b["before"+a.charAt(0).toUpperCase()+
+a.substr(1)];L.push({before:b,after:g})}});if(0===L.length)K(),x(),H(),B();else{d=!1;if(0<y){q=[];if(m)"setClass"==v.event?(q.push(v),M(e,c)):k[c]&&(N=k[c],N.event==a?d=!0:(q.push(N),M(e,c)));else if("leave"==a&&k["ng-leave"])d=!0;else{for(var N in k)q.push(k[N]),M(e,N);k={};y=0}0<q.length&&f.forEach(q,function(b){(b.done||w)(!0);X(b.animations)})}!m||(F||d)||(d="addClass"==a==e.hasClass(c));if(d)x(),H(),B();else{e.addClass(U);var Q=S++;v={classBased:m,event:a,animations:L,done:t};y++;k[c]=v;e.data(l,
+{last:v,active:k,index:Q,totalActive:y});n(L,"before",t)}}}}else K(),x(),H(),B()}function Y(a){a=d(a);D(a.querySelectorAll("."+U),function(a){a=f.element(a);(a=a.data(l))&&a.active&&f.forEach(a.active,function(a){(a.done||w)(!0);X(a.animations)})})}function X(a){D(a,function(a){a.beforeComplete||(a.beforeEnd||w)(!0);a.afterComplete||(a.afterEnd||w)(!0)})}function M(a,c){if(d(a)==d(F))s.disabled||(s.running=!1,s.structural=!1);else if(c){var e=a.data(l)||{},f=!0===c;!f&&(e.active&&e.active[c])&&(e.totalActive--,
+delete e.active[c]);if(f||!e.totalActive)a.removeClass(U),a.removeData(l)}}function R(a,c){if(s.disabled)return!0;if(d(a)==d(F))return s.disabled||s.running;do{if(0===c.length)break;var e=d(c)==d(F),f=e?s:c.data(l),f=f&&(!!f.disabled||f.running||0<f.totalActive);if(e||f)return f;if(e)break}while(c=c.parent());return!0}var S=0;F.data(l,s);B.$$postDigest(function(){B.$$postDigest(function(){s.running=!1})});var Z=h.classNameFilter(),W=Z?function(a){return Z.test(a)}:function(){return!0};return{enter:function(a,
+c,e,d){this.enabled(!1,a);x.enter(a,c,e);B.$$postDigest(function(){a=n(a);t("enter","ng-enter",a,c,e,w,d)})},leave:function(a,c){Y(a);this.enabled(!1,a);B.$$postDigest(function(){a=n(a);t("leave","ng-leave",a,null,null,function(){x.leave(a)},c)})},move:function(a,c,e,d){Y(a);this.enabled(!1,a);x.move(a,c,e);B.$$postDigest(function(){a=n(a);t("move","ng-move",a,c,e,w,d)})},addClass:function(a,c,d){a=n(a);t("addClass",c,a,null,null,function(){x.addClass(a,c)},d)},removeClass:function(a,c,d){a=n(a);
+t("removeClass",c,a,null,null,function(){x.removeClass(a,c)},d)},setClass:function(a,c,d,f){a=n(a);t("setClass",[c,d],a,null,null,function(){x.setClass(a,c,d)},f)},enabled:function(a,c){switch(arguments.length){case 2:if(a)M(c);else{var d=c.data(l)||{};d.disabled=!0;c.data(l,d)}break;case 1:s.disabled=!a;break;default:a=!s.disabled}return!!a}}}]);h.register("",["$window","$sniffer","$timeout","$$animateReflow",function(l,s,h,n){function J(b,g){I&&I();m.push(g);I=n(function(){D(m,function(b){b()});
+m=[];I=null;u={}})}function B(b,g){var a=Date.now()+1E3*g;if(!(a<=N)){h.cancel(L);var c=d(b);b=f.element(c);Q.push(b);N=a;L=h(function(){U(Q);Q=[]},g,!1)}}function U(b){D(b,function(b){(b=b.data(E))&&(b.closeAnimationFn||w)()})}function V(b,g){var a=g?u[g]:null;if(!a){var c=0,d=0,f=0,e=0,k,p,r,h;D(b,function(b){if(b.nodeType==da){b=l.getComputedStyle(b)||{};r=b[O+ea];c=Math.max(t(r),c);h=b[O+H];k=b[O+ha];d=Math.max(t(k),d);p=b[P+ha];e=Math.max(t(p),e);var g=t(b[P+ea]);0<g&&(g*=parseInt(b[P+K],10)||
+1);f=Math.max(g,f)}});a={total:0,transitionPropertyStyle:h,transitionDurationStyle:r,transitionDelayStyle:k,transitionDelay:d,transitionDuration:c,animationDelayStyle:p,animationDelay:e,animationDuration:f};g&&(u[g]=a)}return a}function t(b){var g=0;b=f.isString(b)?b.split(/\s*,\s*/):[];D(b,function(b){g=Math.max(parseFloat(b)||0,g)});return g}function Y(b){var g=b.parent(),a=g.data(G);a||(g.data(G,++q),a=q);return a+"-"+d(b).className}function X(b,g,a,c){var e=Y(g),k=e+" "+a,l=u[k]?++u[k].total:
+0,h={};if(0<l){var p=a+"-stagger",h=e+" "+p;(e=!u[h])&&g.addClass(p);h=V(g,h);e&&g.removeClass(p)}c=c||function(b){return b()};g.addClass(a);var p=g.data(E)||{},r=c(function(){return V(g,k)});c=r.transitionDuration;e=r.animationDuration;if(0===c&&0===e)return g.removeClass(a),!1;g.data(E,{running:p.running||0,itemIndex:l,stagger:h,timings:r,closeAnimationFn:f.noop});b=0<p.running||"setClass"==b;0<c&&M(g,a,b);0<e&&(d(g).style[P]="none 0s");return!0}function M(b,a,c){"ng-enter"!=a&&("ng-move"!=a&&"ng-leave"!=
+a)&&c?b.addClass(ga):d(b).style[O+H]="none"}function R(b,a){var c=O+H,e=d(b);e.style[c]&&0<e.style[c].length&&(e.style[c]="");b.removeClass(ga)}function S(b){var a=P;b=d(b);b.style[a]&&0<b.style[a].length&&(b.style[a]="")}function Z(b,a,c,e){function f(b){a.off(w,k);a.removeClass(l);A(a,c);b=d(a);for(var e in q)b.style.removeProperty(q[e])}function k(b){b.stopPropagation();var a=b.originalEvent||b;b=a.$manualTimeStamp||a.timeStamp||Date.now();a=parseFloat(a.elapsedTime.toFixed($));Math.max(b-x,0)>=
+u&&a>=s&&e()}var h=d(a);b=a.data(E);if(-1!=h.className.indexOf(c)&&b){var l="";D(c.split(" "),function(b,a){l+=(0<a?" ":"")+b+"-active"});var p=b.stagger,r=b.timings,n=b.itemIndex,s=Math.max(r.transitionDuration,r.animationDuration),t=Math.max(r.transitionDelay,r.animationDelay),u=t*y,x=Date.now(),w=ba+" "+aa,m="",q=[];if(0<r.transitionDuration){var z=r.transitionPropertyStyle;-1==z.indexOf("all")&&(m+=C+"transition-property: "+z+";",m+=C+"transition-duration: "+r.transitionDurationStyle+";",q.push(C+
+"transition-property"),q.push(C+"transition-duration"))}0<n&&(0<p.transitionDelay&&0===p.transitionDuration&&(m+=C+"transition-delay: "+W(r.transitionDelayStyle,p.transitionDelay,n)+"; ",q.push(C+"transition-delay")),0<p.animationDelay&&0===p.animationDuration&&(m+=C+"animation-delay: "+W(r.animationDelayStyle,p.animationDelay,n)+"; ",q.push(C+"animation-delay")));0<q.length&&(r=h.getAttribute("style")||"",h.setAttribute("style",r+" "+m));a.on(w,k);a.addClass(l);b.closeAnimationFn=function(){f();
+e()};h=(n*(Math.max(p.animationDelay,p.transitionDelay)||0)+(t+s)*v)*y;b.running++;B(a,h);return f}e()}function W(b,a,c){var d="";D(b.split(","),function(b,e){d+=(0<e?",":"")+(c*a+parseInt(b,10))+"s"});return d}function a(b,a,c,d){if(X(b,a,c,d))return function(b){b&&A(a,c)}}function c(b,a,c,d){if(a.data(E))return Z(b,a,c,d);A(a,c);d()}function e(b,g,d,e){var f=a(b,g,d);if(f){var h=f;J(g,function(){R(g,d);S(g);h=c(b,g,d,e)});return function(b){(h||w)(b)}}e()}function A(b,a){b.removeClass(a);var c=
+b.data(E);c&&(c.running&&c.running--,c.running&&0!==c.running||b.removeData(E))}function k(b,a){var c="";b=f.isArray(b)?b:b.split(/\s+/);D(b,function(b,d){b&&0<b.length&&(c+=(0<d?" ":"")+b+a)});return c}var C="",O,aa,P,ba;z.ontransitionend===T&&z.onwebkittransitionend!==T?(C="-webkit-",O="WebkitTransition",aa="webkitTransitionEnd transitionend"):(O="transition",aa="transitionend");z.onanimationend===T&&z.onwebkitanimationend!==T?(C="-webkit-",P="WebkitAnimation",ba="webkitAnimationEnd animationend"):
+(P="animation",ba="animationend");var ea="Duration",H="Property",ha="Delay",K="IterationCount",G="$$ngAnimateKey",E="$$ngAnimateCSS3Data",ga="ng-animate-block-transitions",$=3,v=1.5,y=1E3,u={},q=0,m=[],I,L=null,N=0,Q=[];return{enter:function(b,a){return e("enter",b,"ng-enter",a)},leave:function(b,a){return e("leave",b,"ng-leave",a)},move:function(a,c){return e("move",a,"ng-move",c)},beforeSetClass:function(b,c,d,e){var f=k(d,"-remove")+" "+k(c,"-add"),h=a("setClass",b,f,function(a){var e=b.attr("class");
+b.removeClass(d);b.addClass(c);a=a();b.attr("class",e);return a});if(h)return J(b,function(){R(b,f);S(b);e()}),h;e()},beforeAddClass:function(b,c,d){var e=a("addClass",b,k(c,"-add"),function(a){b.addClass(c);a=a();b.removeClass(c);return a});if(e)return J(b,function(){R(b,c);S(b);d()}),e;d()},setClass:function(a,d,e,f){e=k(e,"-remove");d=k(d,"-add");return c("setClass",a,e+" "+d,f)},addClass:function(a,d,e){return c("addClass",a,k(d,"-add"),e)},beforeRemoveClass:function(b,c,d){var e=a("removeClass",
+b,k(c,"-remove"),function(a){var d=b.attr("class");b.removeClass(c);a=a();b.attr("class",d);return a});if(e)return J(b,function(){R(b,c);S(b);d()}),e;d()},removeClass:function(a,d,e){return c("removeClass",a,k(d,"-remove"),e)}}}])}])})(window,window.angular);
//# sourceMappingURL=angular-animate.min.js.map
View
6 app/lib/angular/angular-animate.min.js.map
@@ -1,8 +1,8 @@
{
"version":3,
"file":"angular-animate.min.js",
-"lineCount":24,
-"mappings":"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",
+"lineCount":26,
+"mappings":"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",
"sources":["angular-animate.js"],
-"names":["window","angular","undefined","module","factory","$window","$timeout","requestAnimationFrame","webkitRequestAnimationFrame","fn","cancelAnimationFrame","webkitCancelAnimationFrame","timer","cancel","id","config","$provide","$animateProvider","extractElementNode","element","i","length","elm","nodeType","ELEMENT_NODE","noop","forEach","selectors","$$selectors","NG_ANIMATE_STATE","NG_ANIMATE_CLASS_NAME","rootAnimateState","decorator","$delegate","$injector","$sniffer","$rootElement","$rootScope","$document","lookup","name","matches","flagMap","classes","substr","split","transitions","animations","push","klass","selectorFactoryName","get","performAnimation","animationEvent","className","parentElement","afterElement","domOperation","doneCallback","onBeforeAnimationsComplete","cancelled","fireDOMOperation","closeAnimation","data","done","invokeRegisteredAnimationFns","phase","allAnimationFnsComplete","fireAfterCallbackAsync","fireBeforeCallbackAsync","endFnName","animation","index","animationPhaseCompleted","phaseCompletionFlag","currentAnimation","isClassBased","fireDOMCallback","animationPhase","triggerHandler","fireDoneCallbackAsync","hasBeenRun","cleanup","closeAnimationTimeout","currentClassName","node","isAnimatableClassName","animationLookup","replace","parent","ngAnimateState","animationsDisabled","disabled","running","structural","allowCancel","afterFn","beforeFn","charAt","toUpperCase","futureClassName","ONE_SPACE","cancelAnimations","isRevertingClassAnimation","isFullyClassBasedAnimation","event","beforeComplete","classNameToken","indexOf","addClass","cancelChildAnimations","querySelectorAll","beforeEnd","isCancelledFlag","afterComplete","afterEnd","removeClass","removeData","isRoot","state","result","$$postDigest","classNameFilter","test","enter","enabled","leave","move","value","arguments","register","$$animateReflow","afterReflow","callback","cancelAnimationReflow","animationReflowQueue","animationElementQueue","elementData","NG_ANIMATE_CSS_DATA_KEY","stagger","staggerTime","itemIndex","Math","max","animationDelay","transitionDelay","closingAnimationTime","maxDelay","maxDuration","CLOSING_TIME_BUFFER","ONE_SECOND","animationCount","animationCounter","elementQueueSnapshot","animationCounterSnapshot","closeAllAnimations","lookupCache","elements","count","closeAnimationFn","getElementAnimationDetails","cacheKey","transitionDuration","animationDuration","transitionDelayStyle","animationDelayStyle","transitionDurationStyle","transitionPropertyStyle","elementStyles","getComputedStyle","TRANSITION_PROP","DURATION_KEY","parseMaxTime","PROPERTY_KEY","DELAY_KEY","ANIMATION_PROP","aDuration","parseInt","ANIMATION_ITERATION_COUNT_KEY","str","maxValue","values","isString","parseFloat","getCacheKey","parentID","NG_ANIMATE_PARENT_KEY","parentCounter","animateSetup","calculationDecorator","eventCacheKey","total","staggerClassName","staggerCacheKey","applyClasses","timings","activeClassName","style","unblockTransitions","prop","unblockKeyframeAnimations","animateRun","activeAnimationComplete","onEnd","off","css3AnimationEvents","onAnimationProgress","appliedStyles","removeProperty","stopPropagation","ev","originalEvent","timeStamp","$manualTimeStamp","Date","now","elapsedTime","toFixed","ELAPSED_TIME_MAX_DECIMAL_PLACES","startTime","maxDelayTime","ANIMATIONEND_EVENT","TRANSITIONEND_EVENT","propertyStyle","CSS_PREFIX","prepareStaggerDelay","oldStyle","getAttribute","setAttribute","on","elementData.closeAnimationFn","delayStyle","staggerDelay","val","animateBefore","animateAfter","afterAnimationComplete","animate","animationComplete","preReflowCancellation","suffixClasses","suffix","isArray","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","oldClasses","clone","cloneNode","attr","removeAttr","empty","append","remove","animationCompleted","beforeAddClass","cancellationMethod","beforeRemoveClass"]
+"names":["window","angular","undefined","module","factory","$window","$timeout","$document","requestAnimationFrame","webkitRequestAnimationFrame","fn","cancelAnimationFrame","webkitCancelAnimationFrame","timer","cancel","id","queue","push","i","length","config","$provide","$animateProvider","extractElementNode","element","elm","nodeType","ELEMENT_NODE","stripCommentsFromElement","noop","forEach","selectors","$$selectors","NG_ANIMATE_STATE","NG_ANIMATE_CLASS_NAME","rootAnimateState","decorator","$delegate","$injector","$sniffer","$rootElement","$$asyncQueueBuffer","$rootScope","lookup","name","matches","flagMap","classes","substr","split","transitions","animations","klass","selectorFactoryName","get","performAnimation","animationEvent","className","parentElement","afterElement","domOperation","doneCallback","onBeforeAnimationsComplete","cancelled","data","active","isClassBased","event","fireDOMOperation","closeAnimation","currentAnimation","done","invokeRegisteredAnimationFns","phase","allAnimationFnsComplete","fireAfterCallbackAsync","fireBeforeCallbackAsync","endFnName","animation","index","animationPhaseCompleted","phaseCompletionFlag","setClassOperation","classNameAdd","classNameRemove","fireDOMCallback","animationPhase","eventName","elementEvents","triggerHandler","fireDoneCallbackAsync","hasBeenRun","cleanup","localAnimationCount","currentClassName","node","isAnimatableClassName","_data","events","animationLookup","replace","parent","ngAnimateState","runningAnimations","totalActiveAnimations","totalActive","lastAnimation","last","animationsDisabled","disabled","classBased","allowCancel","afterFn","beforeFn","charAt","toUpperCase","skipAnimation","animationsToCancel","current","operation","cancelAnimations","hasClass","addClass","globalAnimationCounter","cancelChildAnimations","querySelectorAll","beforeComplete","beforeEnd","isCancelledFlag","afterComplete","afterEnd","running","structural","removeAnimations","removeClass","removeData","isRoot","state","result","$$postDigest","classNameFilter","test","enter","enabled","leave","move","setClass","add","remove","value","arguments","register","$$animateReflow","afterReflow","callback","cancelAnimationReflow","animationReflowQueue","lookupCache","animationCloseHandler","totalTime","futureTimestamp","Date","now","closingTimestamp","closingTimer","animationElementQueue","closeAllAnimations","elements","elementData","NG_ANIMATE_CSS_DATA_KEY","closeAnimationFn","getElementAnimationDetails","cacheKey","transitionDuration","transitionDelay","animationDuration","animationDelay","transitionDelayStyle","animationDelayStyle","transitionDurationStyle","transitionPropertyStyle","elementStyles","getComputedStyle","TRANSITION_PROP","DURATION_KEY","Math","max","parseMaxTime","PROPERTY_KEY","DELAY_KEY","ANIMATION_PROP","aDuration","parseInt","ANIMATION_ITERATION_COUNT_KEY","str","maxValue","values","isString","parseFloat","getCacheKey","parentID","NG_ANIMATE_PARENT_KEY","parentCounter","animateSetup","calculationDecorator","eventCacheKey","itemIndex","total","stagger","staggerClassName","staggerCacheKey","applyClasses","formerData","timings","isCurrentlyAnimating","blockTransitions","style","isAnimating","NG_ANIMATE_BLOCK_CLASS_NAME","unblockTransitions","prop","unblockKeyframeAnimations","animateRun","activeAnimationComplete","onEnd","off","css3AnimationEvents","onAnimationProgress","activeClassName","animateClose","appliedStyles","removeProperty","stopPropagation","ev","originalEvent","timeStamp","$manualTimeStamp","elapsedTime","toFixed","ELAPSED_TIME_MAX_DECIMAL_PLACES","startTime","maxDelayTime","maxDuration","indexOf","maxDelay","ONE_SECOND","ANIMATIONEND_EVENT","TRANSITIONEND_EVENT","propertyStyle","CSS_PREFIX","prepareStaggerDelay","oldStyle","getAttribute","setAttribute","on","elementData.closeAnimationFn","CLOSING_TIME_BUFFER","delayStyle","staggerDelay","val","animateBefore","animateAfter","afterAnimationComplete","animate","animationComplete","preReflowCancellation","suffixClasses","suffix","isArray","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","animationCompleted","beforeSetClass","cancellationMethod","attr","beforeAddClass","beforeRemoveClass"]
}
View
2  app/lib/angular/angular-cookies.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
View
2  app/lib/angular/angular-cookies.min.js
@@ -1,5 +1,5 @@
/*
- AngularJS v1.2.12
+ AngularJS v1.2.13
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
View
5 app/lib/angular/angular-csp.css
@@ -11,3 +11,8 @@
ng\:form {
display: block;
}
+
+.ng-animate-block-transitions {
+ transition:0s all!important;
+ -webkit-transition:0s all!important;
+}
View
4 app/lib/angular/angular-loader.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
@@ -69,7 +69,7 @@ function minErr(module) {
return match;
});
- message = message + '\nhttp://errors.angularjs.org/1.2.12/' +
+ message = message + '\nhttp://errors.angularjs.org/1.2.13/' +
(module ? module + '/' : '') + code;
for (i = 2; i < arguments.length; i++) {
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
View
4 app/lib/angular/angular-loader.min.js
@@ -1,9 +1,9 @@
/*
- AngularJS v1.2.12
+ AngularJS v1.2.13
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
-(function(){'use strict';function d(a){return function(){var c=arguments[0],b,c="["+(a?a+":":"")+c+"] http://errors.angularjs.org/1.2.12/"+(a?a+"/":"")+c;for(b=1;b<arguments.length;b++)c=c+(1==b?"?":"&")+"p"+(b-1)+"="+encodeURIComponent("function"==typeof arguments[b]?arguments[b].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[b]?"undefined":"string"!=typeof arguments[b]?JSON.stringify(arguments[b]):arguments[b]);return Error(c)}}(function(a){var c=d("$injector"),b=d("ng");a=a.angular||
+(function(){'use strict';function d(a){return function(){var c=arguments[0],b,c="["+(a?a+":":"")+c+"] http://errors.angularjs.org/1.2.13/"+(a?a+"/":"")+c;for(b=1;b<arguments.length;b++)c=c+(1==b?"?":"&")+"p"+(b-1)+"="+encodeURIComponent("function"==typeof arguments[b]?arguments[b].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[b]?"undefined":"string"!=typeof arguments[b]?JSON.stringify(arguments[b]):arguments[b]);return Error(c)}}(function(a){var c=d("$injector"),b=d("ng");a=a.angular||
(a.angular={});a.$$minErr=a.$$minErr||d;return a.module||(a.module=function(){var a={};return function(e,d,f){if("hasOwnProperty"===e)throw b("badname","module");d&&a.hasOwnProperty(e)&&(a[e]=null);return a[e]||(a[e]=function(){function a(c,d,e){return function(){b[e||"push"]([c,d,arguments]);return g}}if(!d)throw c("nomod",e);var b=[],h=[],k=a("$injector","invoke"),g={_invokeQueue:b,_runBlocks:h,requires:d,name:e,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide",
"service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:k,run:function(a){h.push(a);return this}};f&&k(f);return g}())}}())})(window)})(window);
//# sourceMappingURL=angular-loader.min.js.map
View
2  app/lib/angular/angular-resource.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
View
2  app/lib/angular/angular-resource.min.js
@@ -1,5 +1,5 @@
/*
- AngularJS v1.2.12
+ AngularJS v1.2.13
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
View
2  app/lib/angular/angular-route.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
View
2  app/lib/angular/angular-route.min.js
@@ -1,5 +1,5 @@
/*
- AngularJS v1.2.12
+ AngularJS v1.2.13
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
View
2  app/lib/angular/angular-sanitize.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
View
2  app/lib/angular/angular-sanitize.min.js
@@ -1,5 +1,5 @@
/*
- AngularJS v1.2.12
+ AngularJS v1.2.13
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
View
154 app/lib/angular/angular-scenario.js
@@ -9790,7 +9790,7 @@ if ( typeof module === "object" && module && typeof module.exports === "object"
})( window );
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
@@ -9860,7 +9860,7 @@ function minErr(module) {
return match;
});
- message = message + '\nhttp://errors.angularjs.org/1.2.12/' +
+ message = message + '\nhttp://errors.angularjs.org/1.2.13/' +
(module ? module + '/' : '') + code;
for (i = 2; i < arguments.length; i++) {
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
@@ -9952,6 +9952,7 @@ function minErr(module) {
-assertNotHasOwnProperty,
-getter,
-getBlockElements,
+ -hasOwnProperty,
*/
@@ -9967,7 +9968,7 @@ function minErr(module) {
* @returns {string} Lowercased string.
*/
var lowercase = function(string){return isString(string) ? string.toLowerCase() : string;};
-
+var hasOwnProperty = Object.prototype.hasOwnProperty;
/**
* @ngdoc function
@@ -11002,6 +11003,7 @@ function encodeUriQuery(val, pctEncodeSpaces) {
<file name="index.html">
<div ng-controller="ngAppDemoController">
I can add: {{a}} + {{b}} = {{ a+b }}
+ </div>
</file>
<file name="script.js">
angular.module('ngAppDemo', []).controller('ngAppDemoController', function($scope) {
@@ -11626,11 +11628,11 @@ function setupModuleLoader(window) {
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
*/
var version = {
- full: '1.2.12', // all of these placeholder strings will be replaced by grunt's
+ full: '1.2.13', // all of these placeholder strings will be replaced by grunt's
major: 1, // package task
minor: 2,
- dot: 12,
- codeName: 'cauliflower-eradication'
+ dot: 13,
+ codeName: 'romantic-transclusion'
};
@@ -11792,7 +11794,7 @@ function publishExternalAPI(angular){
* - [`after()`](http://api.jquery.com/after/)
* - [`append()`](http://api.jquery.com/append/)
* - [`attr()`](http://api.jquery.com/attr/)
- * - [`bind()`](http://api.jquery.com/on/) - Does not support namespaces, selectors or eventData
+ * - [`bind()`](http://api.jquery.com/bind/) - Does not support namespaces, selectors or eventData
* - [`children()`](http://api.jquery.com/children/) - Does not support selectors
* - [`clone()`](http://api.jquery.com/clone/)
* - [`contents()`](http://api.jquery.com/contents/)
@@ -11819,7 +11821,7 @@ function publishExternalAPI(angular){
* - [`text()`](http://api.jquery.com/text/)
* - [`toggleClass()`](http://api.jquery.com/toggleClass/)
* - [`triggerHandler()`](http://api.jquery.com/triggerHandler/) - Passes a dummy event object to handlers.
- * - [`unbind()`](http://api.jquery.com/off/) - Does not support namespaces
+ * - [`unbind()`](http://api.jquery.com/unbind/) - Does not support namespaces
* - [`val()`](http://api.jquery.com/val/)
* - [`wrap()`](http://api.jquery.com/wrap/)
*
@@ -11859,6 +11861,14 @@ var jqCache = JQLite.cache = {},
? function(element, type, fn) {element.removeEventListener(type, fn, false); }
: function(element, type, fn) {element.detachEvent('on' + type, fn); });
+/*
+ * !!! This is an undocumented "private" function !!!
+ */
+var jqData = JQLite._data = function(node) {
+ //jQuery always returns an object on cache miss
+ return this.cache[node[this.expando]] || {};
+};
+
function jqNextId() { return ++jqId; }
@@ -13849,6 +13859,29 @@ var $AnimateProvider = ['$provide', function($provide) {
done && $timeout(done, 0, false);
},
+ /**
+ *
+ * @ngdoc function
+ * @name ng.$animate#setClass
+ * @methodOf ng.$animate
+ * @function
+ * @description Adds and/or removes the given CSS classes to and from the element.
+ * Once complete, the done() callback will be fired (if provided).
+ * @param {jQuery/jqLite element} element the element which will it's CSS classes changed
+ * removed from it
+ * @param {string} add the CSS classes which will be added to the element
+ * @param {string} remove the CSS class which will be removed from the element
+ * @param {function=} done the callback function (if provided) that will be fired after the
+ * CSS classes have been set on the element
+ */
+ setClass : function(element, add, remove, done) {
+ forEach(element, function (element) {
+ jqLiteAddClass(element, add);
+ jqLiteRemoveClass(element, remove);
+ });
+ done && $timeout(done, 0, false);
+ },
+
enabled : noop
};
}];
@@ -14991,7 +15024,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
var hasDirectives = {},
Suffix = 'Directive',
COMMENT_DIRECTIVE_REGEXP = /^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,
- CLASS_DIRECTIVE_REGEXP = /(([\d\w\-_]+)(?:\:([^;]+))?;?)/;
+ CLASS_DIRECTIVE_REGEXP = /(([\d\w\-_]+)(?:\:([^;]+))?;?)/,
+ TABLE_CONTENT_REGEXP = /^<\s*(tr|th|td|tbody)(\s+[^>]*)?>/i;
// Ref: http://developers.whatwg.org/webappapis.html#event-handler-idl-attributes
// The assumption is that future DOM event attribute names will begin with
@@ -15178,8 +15212,16 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
* @param {string} oldClasses The former CSS className value
*/
$updateClass : function(newClasses, oldClasses) {
- this.$removeClass(tokenDifference(oldClasses, newClasses));
- this.$addClass(tokenDifference(newClasses, oldClasses));
+ var toAdd = tokenDifference(newClasses, oldClasses);
+ var toRemove = tokenDifference(oldClasses, newClasses);
+
+ if(toAdd.length === 0) {
+ $animate.removeClass(this.$$element, toRemove);
+ } else if(toRemove.length === 0) {
+ $animate.addClass(this.$$element, toAdd);
+ } else {
+ $animate.setClass(this.$$element, toAdd, toRemove);
+ }
},
/**
@@ -15631,7 +15673,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
templateDirective = previousCompileContext.templateDirective,
nonTlbTranscludeDirective = previousCompileContext.nonTlbTranscludeDirective,
hasTranscludeDirective = false,
- hasElementTranscludeDirective = false,
+ hasElementTranscludeDirective = previousCompileContext.hasElementTranscludeDirective,
$compileNode = templateAttrs.$$element = jqLite(compileNode),
directive,
directiveName,
@@ -15732,9 +15774,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
if (directive.replace) {
replaceDirective = directive;
- $template = jqLite('<div>' +
- trim(directiveValue) +
- '</div>').contents();
+ $template = directiveTemplateContents(directiveValue);
compileNode = $template[0];
if ($template.length != 1 || compileNode.nodeType !== 1) {
@@ -15805,6 +15845,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true;
nodeLinkFn.transclude = hasTranscludeDirective && childTranscludeFn;
+ previousCompileContext.hasElementTranscludeDirective = hasElementTranscludeDirective;
// might be normal or delayed nodeLinkFn depending on if templateUrl is present
return nodeLinkFn;
@@ -16132,6 +16173,28 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
}
+ function directiveTemplateContents(template) {
+ var type;
+ template = trim(template);
+ if ((type = TABLE_CONTENT_REGEXP.exec(template))) {
+ type = type[1].toLowerCase();
+ var table = jqLite('<table>' + template + '</table>'),
+ tbody = table.children('tbody'),
+ leaf = /(td|th)/.test(type) && table.find('tr');
+ if (tbody.length && type !== 'tbody') {
+ table = tbody;
+ }
+ if (leaf && leaf.length) {
+ table = leaf;
+ }
+ return table.contents();
+ }
+ return jqLite('<div>' +
+ template +
+ '</div>').contents();
+ }
+
+
function compileTemplateUrl(directives, $compileNode, tAttrs,
$rootElement, childTranscludeFn, preLinkFns, postLinkFns, previousCompileContext) {
var linkQueue = [],
@@ -16156,7 +16219,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
content = denormalizeTemplate(content);
if (origAsyncDirective.replace) {
- $template = jqLite('<div>' + trim(content) + '</div>').contents();
+ $template = directiveTemplateContents(content);
compileNode = $template[0];
if ($template.length != 1 || compileNode.nodeType !== 1) {
@@ -16201,8 +16264,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
if (beforeTemplateLinkNode !== beforeTemplateCompileNode) {
var oldClasses = beforeTemplateLinkNode.className;
- // it was cloned therefore we have to clone as well.
- linkNode = jqLiteClone(compileNode);
+
+ if (!(previousCompileContext.hasElementTranscludeDirective &&
+ origAsyncDirective.replace)) {
+ // it was cloned therefore we have to clone as well.
+ linkNode = jqLiteClone(compileNode);
+ }
+
replaceWith(linkRootElement, jqLite(beforeTemplateLinkNode), linkNode);
// Copy in CSS classes from original node
@@ -18094,7 +18162,7 @@ function $InterpolateProvider() {
* @description
* Symbol to denote the end of expression in the interpolated string. Defaults to `}}`.
*
- * Use {@link ng.$interpolateProvider#endSymbol $interpolateProvider#endSymbol} to change
+ * Use {@link ng.$interpolateProvider#methods_endSymbol $interpolateProvider#endSymbol} to change
* the symbol.
*
* @returns {string} start symbol.
@@ -18938,7 +19006,7 @@ function $LocationProvider(){
* @eventType broadcast on root scope
* @description
* Broadcasted before a URL will change. This change can be prevented by calling
- * `preventDefault` method of the event. See {@link ng.$rootScope.Scope#$on} for more
+ * `preventDefault` method of the event. See {@link ng.$rootScope.Scope#methods_$on} for more
* details about event object. Upon successful change
* {@link ng.$location#events_$locationChangeSuccess $locationChangeSuccess} is fired.
*
@@ -23858,6 +23926,15 @@ function filterFilter() {
};
} else {
comparator = function(obj, text) {
+ if (obj && text && typeof obj === 'object' && typeof text === 'object') {
+ for (var objKey in obj) {
+ if (objKey.charAt(0) !== '$' && hasOwnProperty.call(obj, objKey) &&
+ comparator(obj[objKey], text[objKey])) {
+ return true;
+ }
+ }
+ return false;
+ }
text = (''+text).toLowerCase();
return (''+obj).toLowerCase().indexOf(text) > -1;
};
@@ -23972,7 +24049,8 @@ function filterFilter() {
return;
}
element(by.model('amount')).clear();
- element(by.model('amount')).sendKeys('-1234'); expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)');
+ element(by.model('amount')).sendKeys('-1234');
+ expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)');
expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('(USD$1,234.00)');
});
</doc:protractor>
@@ -25883,7 +25961,8 @@ var inputType = {
'hidden': noop,
'button': noop,
'submit': noop,
- 'reset': noop
+ 'reset': noop,
+ 'file': noop
};
// A helper function to call $setValidity and return the value / undefined,
@@ -25906,6 +25985,7 @@ function textInputType(scope, element, attr, ctrl, $sniffer, $browser) {
element.on('compositionend', function() {
composing = false;
+ listener();
});
}
@@ -26481,6 +26561,9 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
* You can override this for input directives whose concept of being empty is different to the
* default. The `checkboxInputType` directive does this because in its case a value of `false`
* implies empty.
+ *
+ * @param {*} value Reference to check.
+ * @returns {boolean} True if `value` is empty.
*/
this.$isEmpty = function(value) {
return isUndefined(value) || value === '' || value === null || value !== value;
@@ -28042,8 +28125,8 @@ forEach(
* Enables binding angular expressions to onsubmit events.
*
* Additionally it prevents the default action (which for form means sending the request to the
- * server and reloading the current page) **but only if the form does not contain an `action`
- * attribute**.
+ * server and reloading the current page), but only if the form does not contain `action`,
+ * `data-action`, or `x-action` attributes.
*
* @element form
* @priority 0
@@ -29868,23 +29951,16 @@ var ngSwitchDefaultDirective = ngDirective({
*
*/
var ngTranscludeDirective = ngDirective({
- controller: ['$element', '$transclude', function($element, $transclude) {
+ link: function($scope, $element, $attrs, controller, $transclude) {
if (!$transclude) {
throw minErr('ngTransclude')('orphan',
- 'Illegal use of ngTransclude directive in the template! ' +
- 'No parent directive that requires a transclusion found. ' +
- 'Element: {0}',
- startingTag($element));
+ 'Illegal use of ngTransclude directive in the template! ' +
+ 'No parent directive that requires a transclusion found. ' +
+ 'Element: {0}',
+ startingTag($element));
}
-
- // remember the transclusion fn but call it during linking so that we don't process transclusion before directives on
- // the parent element even when the transclusion replaces the current element. (we can't use priority here because
- // that applies only to compile fns and not controllers
- this.$transclude = $transclude;
- }],
-
- link: function($scope, $element, $attrs, controller) {
- controller.$transclude(function(clone) {
+
+ $transclude(function(clone) {
$element.empty();
$element.append(clone);
});
@@ -32800,5 +32876,5 @@ if (config.autotest) {
})(window, document);
-!angular.$$csp() && angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";\n\n[ng\\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],\n.ng-cloak, .x-ng-cloak,\n.ng-hide {\n display: none !important;\n}\n\nng\\:form {\n display: block;\n}\n</style>');
+!angular.$$csp() && angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";\n\n[ng\\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],\n.ng-cloak, .x-ng-cloak,\n.ng-hide {\n display: none !important;\n}\n\nng\\:form {\n display: block;\n}\n\n.ng-animate-block-transitions {\n transition:0s all!important;\n -webkit-transition:0s all!important;\n}\n</style>');
!angular.$$csp() && angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";\n/* CSS Document */\n\n/** Structure */\nbody {\n font-family: Arial, sans-serif;\n margin: 0;\n font-size: 14px;\n}\n\n#system-error {\n font-size: 1.5em;\n text-align: center;\n}\n\n#json, #xml {\n display: none;\n}\n\n#header {\n position: fixed;\n width: 100%;\n}\n\n#specs {\n padding-top: 50px;\n}\n\n#header .angular {\n font-family: Courier New, monospace;\n font-weight: bold;\n}\n\n#header h1 {\n font-weight: normal;\n float: left;\n font-size: 30px;\n line-height: 30px;\n margin: 0;\n padding: 10px 10px;\n height: 30px;\n}\n\n#application h2,\n#specs h2 {\n margin: 0;\n padding: 0.5em;\n font-size: 1.1em;\n}\n\n#status-legend {\n margin-top: 10px;\n margin-right: 10px;\n}\n\n#header,\n#application,\n.test-info,\n.test-actions li {\n overflow: hidden;\n}\n\n#application {\n margin: 10px;\n}\n\n#application iframe {\n width: 100%;\n height: 758px;\n}\n\n#application .popout {\n float: right;\n}\n\n#application iframe {\n border: none;\n}\n\n.tests li,\n.test-actions li,\n.test-it li,\n.test-it ol,\n.status-display {\n list-style-type: none;\n}\n\n.tests,\n.test-it ol,\n.status-display {\n margin: 0;\n padding: 0;\n}\n\n.test-info {\n margin-left: 1em;\n margin-top: 0.5em;\n border-radius: 8px 0 0 8px;\n -webkit-border-radius: 8px 0 0 8px;\n -moz-border-radius: 8px 0 0 8px;\n cursor: pointer;\n}\n\n.test-info:hover .test-name {\n text-decoration: underline;\n}\n\n.test-info .closed:before {\n content: \'\\25b8\\00A0\';\n}\n\n.test-info .open:before {\n content: \'\\25be\\00A0\';\n font-weight: bold;\n}\n\n.test-it ol {\n margin-left: 2.5em;\n}\n\n.status-display,\n.status-display li {\n float: right;\n}\n\n.status-display li {\n padding: 5px 10px;\n}\n\n.timer-result,\n.test-title {\n display: inline-block;\n margin: 0;\n padding: 4px;\n}\n\n.test-actions .test-title,\n.test-actions .test-result {\n display: table-cell;\n padding-left: 0.5em;\n padding-right: 0.5em;\n}\n\n.test-actions {\n display: table;\n}\n\n.test-actions li {\n display: table-row;\n}\n\n.timer-result {\n width: 4em;\n padding: 0 10px;\n text-align: right;\n font-family: monospace;\n}\n\n.test-it pre,\n.test-actions pre {\n clear: left;\n color: black;\n margin-left: 6em;\n}\n\n.test-describe {\n padding-bottom: 0.5em;\n}\n\n.test-describe .test-describe {\n margin: 5px 5px 10px 2em;\n}\n\n.test-actions .status-pending .test-title:before {\n content: \'\\00bb\\00A0\';\n}\n\n.scrollpane {\n max-height: 20em;\n overflow: auto;\n}\n\n/** Colors */\n\n#header {\n background-color: #F2C200;\n}\n\n#specs h2 {\n border-top: 2px solid #BABAD1;\n}\n\n#specs h2,\n#application h2 {\n background-color: #efefef;\n}\n\n#application {\n border: 1px solid #BABAD1;\n}\n\n.test-describe .test-describe {\n border-left: 1px solid #BABAD1;\n border-right: 1px solid #BABAD1;\n border-bottom: 1px solid #BABAD1;\n}\n\n.status-display {\n border: 1px solid #777;\n}\n\n.status-display .status-pending,\n.status-pending .test-info {\n background-color: #F9EEBC;\n}\n\n.status-display .status-success,\n.status-success .test-info {\n background-color: #B1D7A1;\n}\n\n.status-display .status-failure,\n.status-failure .test-info {\n background-color: #FF8286;\n}\n\n.status-display .status-error,\n.status-error .test-info {\n background-color: black;\n color: white;\n}\n\n.test-actions .status-success .test-title {\n color: #30B30A;\n}\n\n.test-actions .status-failure .test-title {\n color: #DF0000;\n}\n\n.test-actions .status-error .test-title {\n color: black;\n}\n\n.test-actions .timer-result {\n color: #888;\n}\n</style>');
View
2  app/lib/angular/angular-touch.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
View
2  app/lib/angular/angular-touch.min.js
@@ -1,5 +1,5 @@
/*
- AngularJS v1.2.12
+ AngularJS v1.2.13
(c) 2010-2014 Google, Inc. http://angularjs.org
License: MIT
*/
View
154 app/lib/angular/angular.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.2.12
+ * @license AngularJS v1.2.13
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
@@ -68,7 +68,7 @@ function minErr(module) {
return match;
});
- message = message + '\nhttp://errors.angularjs.org/1.2.12/' +
+ message = message + '\nhttp://errors.angularjs.org/1.2.13/' +
(module ? module + '/' : '') + code;
for (i = 2; i < arguments.length; i++) {
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
@@ -160,6 +160,7 @@ function minErr(module) {
-assertNotHasOwnProperty,
-getter,
-getBlockElements,
+ -hasOwnProperty,
*/
@@ -175,7 +176,7 @@ function minErr(module) {
* @returns {string} Lowercased string.
*/
var lowercase = function(string){return isString(string) ? string.toLowerCase() : string;};
-
+var hasOwnProperty = Object.prototype.hasOwnProperty;
/**
* @ngdoc function
@@ -1210,6 +1211,7 @@ function encodeUriQuery(val, pctEncodeSpaces) {
<file name="index.html">
<div ng-controller="ngAppDemoController">
I can add: {{a}} + {{b}} = {{ a+b }}
+ </div>
</file>
<file name="script.js">
angular.module('ngAppDemo', []).controller('ngAppDemoController', function($scope) {
@@ -1834,11 +1836,11 @@ function setupModuleLoader(window) {
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
*/
var version = {
- full: '1.2.12', // all of these placeholder strings will be replaced by grunt's
+ full: '1.2.13', // all of these placeholder strings will be replaced by grunt's
major: 1, // package task
minor: 2,
- dot: 12,
- codeName: 'cauliflower-eradication'
+ dot: 13,
+ codeName: 'romantic-transclusion'
};
@@ -2000,7 +2002,7 @@ function publishExternalAPI(angular){
* - [`after()`](http://api.jquery.com/after/)
* - [`append()`](http://api.jquery.com/append/)
* - [`attr()`](http://api.jquery.com/attr/)
- * - [`bind()`](http://api.jquery.com/on/) - Does not support namespaces, selectors or eventData
+ * - [`bind()`](http://api.jquery.com/bind/) - Does not support namespaces, selectors or eventData
* - [`children()`](http://api.jquery.com/children/) - Does not support selectors
* - [`clone()`](http://api.jquery.com/clone/)
* - [`contents()`](http://api.jquery.com/contents/)
@@ -2027,7 +2029,7 @@ function publishExternalAPI(angular){
* - [`text()`](http://api.jquery.com/text/)
* - [`toggleClass()`](http://api.jquery.com/toggleClass/)
* - [`triggerHandler()`](http://api.jquery.com/triggerHandler/) - Passes a dummy event object to handlers.
- * - [`unbind()`](http://api.jquery.com/off/) - Does not support namespaces
+ * - [`unbind()`](http://api.jquery.com/unbind/) - Does not support namespaces
* - [`val()`](http://api.jquery.com/val/)
* - [`wrap()`](http://api.jquery.com/wrap/)
*
@@ -2067,6 +2069,14 @@ var jqCache = JQLite.cache = {},
? function(element, type, fn) {element.removeEventListener(type, fn, false); }
: function(element, type, fn) {element.detachEvent('on' + type, fn); });
+/*
+ * !!! This is an undocumented "private" function !!!
+ */
+var jqData = JQLite._data = function(node) {
+ //jQuery always returns an object on cache miss
+ return this.cache[node[this.expando]] || {};
+};
+
function jqNextId() { return ++jqId; }
@@ -4057,6 +4067,29 @@ var $AnimateProvider = ['$provide', function($provide) {
done && $timeout(done, 0, false);
},
+ /**
+ *
+ * @ngdoc function
+ * @name ng.$animate#setClass
+ * @methodOf ng.$animate
+ * @function
+ * @description Adds and/or removes the given CSS classes to and from the element.
+ * Once complete, the done() callback will be fired (if provided).
+ * @param {jQuery/jqLite element} element the element which will it's CSS classes changed
+ * removed from it
+ * @param {string} add the CSS classes which will be added to the element
+ * @param {string} remove the CSS class which will be removed from the element
+ * @param {function=} done the callback function (if provided) that will be fired after the
+ * CSS classes have been set on the element
+ */
+ setClass : function(element, add, remove, done) {
+ forEach(element, function (element) {
+ jqLiteAddClass(element, add);
+ jqLiteRemoveClass(element, remove);
+ });
+ done && $timeout(done, 0, false);
+ },
+