rails-angularjs 1.3.15 → 1.3.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/rails-angularjs/version.rb +2 -2
  4. data/vendor/assets/javascripts/unstable/angular-animate.js +3012 -1881
  5. data/vendor/assets/javascripts/unstable/angular-animate.min.js +44 -28
  6. data/vendor/assets/javascripts/unstable/angular-animate.min.js.map +3 -3
  7. data/vendor/assets/javascripts/unstable/angular-aria.js +86 -73
  8. data/vendor/assets/javascripts/unstable/angular-aria.min.js +8 -8
  9. data/vendor/assets/javascripts/unstable/angular-aria.min.js.map +2 -2
  10. data/vendor/assets/javascripts/unstable/angular-cookies.js +1 -1
  11. data/vendor/assets/javascripts/unstable/angular-cookies.min.js +1 -1
  12. data/vendor/assets/javascripts/unstable/angular-loader.js +23 -4
  13. data/vendor/assets/javascripts/unstable/angular-loader.min.js +3 -3
  14. data/vendor/assets/javascripts/unstable/angular-loader.min.js.map +2 -2
  15. data/vendor/assets/javascripts/unstable/angular-messageFormat.js +922 -0
  16. data/vendor/assets/javascripts/unstable/angular-messageFormat.min.js +26 -0
  17. data/vendor/assets/javascripts/unstable/angular-messageFormat.min.js.map +8 -0
  18. data/vendor/assets/javascripts/unstable/angular-messages.js +1 -1
  19. data/vendor/assets/javascripts/unstable/angular-messages.min.js +1 -1
  20. data/vendor/assets/javascripts/unstable/angular-mocks.js +6 -4
  21. data/vendor/assets/javascripts/unstable/angular-resource.js +2 -2
  22. data/vendor/assets/javascripts/unstable/angular-resource.min.js +2 -2
  23. data/vendor/assets/javascripts/unstable/angular-resource.min.js.map +1 -1
  24. data/vendor/assets/javascripts/unstable/angular-route.js +4 -2
  25. data/vendor/assets/javascripts/unstable/angular-route.min.js +1 -1
  26. data/vendor/assets/javascripts/unstable/angular-route.min.js.map +1 -1
  27. data/vendor/assets/javascripts/unstable/angular-sanitize.js +1 -1
  28. data/vendor/assets/javascripts/unstable/angular-sanitize.min.js +1 -1
  29. data/vendor/assets/javascripts/unstable/angular-scenario.js +668 -359
  30. data/vendor/assets/javascripts/unstable/angular-touch.js +14 -11
  31. data/vendor/assets/javascripts/unstable/angular-touch.min.js +8 -8
  32. data/vendor/assets/javascripts/unstable/angular-touch.min.js.map +2 -2
  33. data/vendor/assets/javascripts/unstable/angular.js +635 -359
  34. data/vendor/assets/javascripts/unstable/angular.min.js +281 -278
  35. data/vendor/assets/javascripts/unstable/angular.min.js.map +3 -3
  36. metadata +5 -3
@@ -0,0 +1,26 @@
1
+ /*
2
+ AngularJS v1.4.0-rc.0
3
+ (c) 2010-2015 Google, Inc. http://angularjs.org
4
+ License: MIT
5
+ */
6
+ (function(V,l){'use strict';function C(a){if(null==a)return"";switch(typeof a){case "string":return a;case "number":return""+a;default:return D(a)}}function f(a,b){for(var d=a.split(/\n/g),k=0;k<d.length;k++){var c=d[k];if(b>=c.length)b-=c.length;else return{h:k+1,f:b+1}}}function u(a){function b(){return a}var d=v[a];if(null!=d)return d;b.$$watchDelegate=function(b,d,c){var e=b.$watch(w,function(){n(d)&&d.call(null,a,a,b);e()},c);return e};v[a]=b;b.exp=a;b.D=[];return b}function F(a,b){function d(a){return void 0==
7
+ a?a:a-b}function c(b){return d(a(b))}if(0===b)return a;var e;c.$$watchDelegate=function(b,c,k){return e=b.$watch(a,function(a,k){n(c)&&c.call(null,d(a),d(k),b)},k)};return c}function h(a,b){var d=this;this.b=a;this.e=b;if(void 0===b.other)throw e("reqother");this.d=function(a){return d.F(a)};this.d.$$watchDelegate=function(a,b,c){return d.Q(a,b,c)}}function p(a,b,d,c){var e=this;this.scope=b;this.qa=a;this.v=d;this.ra=c;this.V=void 0;this.L=w;this.ma=b.$watch(a.b,function(a){return e.la(a)},c)}function q(a,
8
+ b){h.call(this,a,b)}function x(){}function r(a,b,d,c){h.call(this,a,b);this.offset=d;this.N=c}function y(){}function g(a,b){this.u=a;this.B=b;this.i=[];this.g=[];this.K=[];this.s="";this.q=null}function s(a,b,d){this.c=a;this.scope=b;this.Y=void 0;this.v=d;var c=this;this.na=b.$watchGroup(a.g,function(a,b){c.Fa(a,b)})}function t(a,b){b.b=a.b;b.C=a.C;b.w=a.w;b.e=a.e;b.k=a.k;b.c=a.c;b.n=a.n;b.G=a.G;b.l=a.l}function z(a){t(a,this)}function c(a,b,d,c,e,E,f,g){this.text=a;this.index=b||0;this.A=d;this.N=
9
+ c;this.Ea=e;this.W=!!E;this.u=f;this.B=!!g;this.G=this.c=this.k=this.e=this.w=this.C=this.b=null;this.M=[];this.H=this.j=this.ea=this.P=this.fa=this.l=this.n=this.o=this.a=this.d=null}function A(a){switch(a){case "{":return"}";case "[":return"]";case "(":return")";default:return null}}function G(a){switch(a){case "}":return"{";case "]":return"[";case ")":return"(";default:return null}}var e=l.$interpolateMinErr,w=l.noop,n=l.isFunction,D=l.toJson,v=Object.create(null);h.prototype.U=function(a){return this.e[this.S(a)]};
10
+ h.prototype.F=function(a){return this.U(this.b(a))(a)};h.prototype.Q=function(a,b,d){var c=new p(this,a,b,d);return function(){c.J()}};p.prototype.la=function(a){var b=this;this.L();a=this.qa.U(a);this.L=this.scope.$watch(a,function(a,c){return b.pa(a,c)},this.ra)};p.prototype.pa=function(a,b){n(this.v)&&this.v.call(null,a,a===b?a:this.V,this.scope);this.V=a};p.prototype.J=function(){this.ma();this.L()};x.prototype=h.prototype;q.prototype=new x;q.prototype.S=function(a){return void 0!==this.e[a]?
11
+ a:"other"};y.prototype=h.prototype;r.prototype=new y;r.prototype.S=function(a){if(isNaN(a))return"other";if(void 0!==this.e[a])return a;a=this.N(a-this.offset);return void 0!==this.e[a]?a:"other"};g.prototype.T=function(){this.s&&(null==this.q?this.i.push(this.s):(this.i.push(this.q.join("")),this.q=null),this.s="")};g.prototype.p=function(a){a.length&&(this.s?this.q?this.q.push(a):this.q=[this.s,a]:this.s=a)};g.prototype.I=function(a){this.T();this.K.push(this.i.length);this.g.push(a);this.i.push("")};
12
+ g.prototype.oa=function(a){for(var b=Array(this.g.length),d=0;d<this.g.length;d++)b[d]=this.g[d](a);return b};g.prototype.F=function(a){for(var b=0;b<this.K.length;b++){var d=a[b];if(this.B&&void 0===d)return;this.i[this.K[b]]=d}return this.i.join("")};g.prototype.ga=function(a,b){var d=this;this.T();if(!a||0!==this.g.length){if(0===this.i.length)return u("");this.u&&1<this.i.length&&e.throwNoconcat(b);if(0===this.g.length)return 1!=this.i.length&&this.r(),u(this.i[0]);var c=function(a){return d.F(d.oa(a))};
13
+ c.$$watchDelegate=function(a,b,c){return d.Q(a,b,c)};c.exp=b;c.D=Array(this.g.length);for(var f=0;f<this.g.length;f++)c.D[f]=this.g[f].exp;return c}};g.prototype.Q=function(a,b){var c=new s(this,a,b);return function(){c.J()}};s.prototype.Fa=function(a,b){var c=this.c.F(a);n(this.v)&&this.v.call(null,c,a===b?c:this.Y,this.scope);this.Y=c};s.prototype.J=function(){this.na()};var H=new z(new c("",0,null,null,null,!1,null,!1));c.prototype.pushState=function(){this.M.push(new z(this));t(H,this)};c.prototype.X=
14
+ function(){0===this.M.length&&this.r();var a=this.M.pop();t(a,this)};c.prototype.m=function(a,b){a.lastIndex=this.index;var c=a.exec(this.text);return null==c||!0!==b&&c.index!=this.index?null:(this.index=a.lastIndex,c)};c.prototype.t=function(a){return this.m(a,!0)};c.prototype.ja=function(a){return!!this.m(a)};c.prototype.Ca=function(a){this.o=[a];do{for(this.a=this.o.pop();this.a;)this.a();this.ia(this.a)}while(0<this.o.length)};c.prototype.r=function(){throw e("logicbug",this.text);};c.prototype.ia=
15
+ function(a){void 0===a&&this.r()};var I=/\s*(\w+)\s*/g;c.prototype.ka=function(){var a=this.m(I);if(null==a)throw a=f(this.text,this.index),e("reqarg",a.h,a.f,this.text);var b=a[1];if("select"==b||"plural"==b)throw a=f(this.text,this.index),e("reqcomma",b,a.h,a.f,this.text);a=f(this.text,this.index);throw e("unknarg",b,a.h,a.f,this.text);};c.prototype.Da=function(a){this.fa=a.index;this.P=a[0];this.ea="'"==this.P?J:K;this.a=this.va};var J=/\\(?:\\|'|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|'/g,
16
+ K=/\\(?:\\|"|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|"/g;c.prototype.va=function(){var a=this.t(this.ea);if(null==a)throw a=f(this.text,this.fa),e("untermstr",a.h,a.f,this.text);a==this.P&&(this.a=null)};var L=/\s*(plural|select)\s*,\s*/g;c.prototype.za=function(){var a=this.t(L);null==a&&this.ka();switch(a[1]){case "plural":this.a=this.Aa;break;case "select":this.a=this.Ba;break;default:this.r()}};c.prototype.Aa=function(){this.e=Object.create(null);this.n=this.O;this.a=this.ya};
17
+ c.prototype.Ba=function(){this.e=Object.create(null);this.a=this.n=this.da};var m=/[0]|(?:[1-9][0-9]*)/g,M=new RegExp("\\s*offset\\s*:\\s*("+m.source+")","g");c.prototype.ya=function(){var a=this.m(M);this.w=null==a?0:parseInt(a[1],10);this.C=F(this.b,this.w);this.a=this.O};c.prototype.R=function(a,b){if(void 0!==this.e[a]){var c=f(this.text,b);throw e("dupvalue",a,c.h,c.f,this.text);}};var N=/\s*(\w+)/g;c.prototype.da=function(){var a=this.m(N);null==a?(this.d=(new q(this.b,this.e)).d,this.a=null):
18
+ (this.k=a[1],this.R(this.k,a.index),this.a=this.ca)};var O=new RegExp("\\s*(?:(?:=("+m.source+"))|(\\w+))","g");c.prototype.O=function(){var a=this.m(O);null==a?(this.d=(new r(this.b,this.e,this.w,this.N)).d,this.a=null):(this.k=null!=a[1]?parseInt(a[1],10):a[2],this.R(this.k,a.index),this.a=this.ca)};var P=/\s*{/g;c.prototype.ca=function(){if(!this.ja(P)){var a=f(this.text,this.index);throw e("reqopenbrace",this.k,a.h,a.f,this.text);}this.G=this.index;this.c=new g(this.u,this.B);this.a=this.ba};
19
+ var Q=/\\.|{{|}/g,R=/\\.|{{|#|}/g,B=/\\.|{{/g;c.prototype.ha=function(){var a=this.index,b;if(null==this.n){if(b=this.t(B),null==b)return this.H=this.text.substring(a),this.index=this.text.length,null}else if(b=this.t(this.n==this.O?R:Q),null==b)throw a=f(this.text,this.G),e("reqendbrace",this.k,a.h,a.f,this.text);var c=b[0];this.H=this.text.substring(a,b.index);return c};c.prototype.ba=function(){var a=this.index,b=this.ha();null==b?(this.index=this.text.length,this.c.p(this.text.substring(a)),this.a=
20
+ null):"\\"==b[0]?this.c.p(this.H+b[1]):(this.c.p(this.H),"{{"==b?(this.pushState(),this.o.push(this.ua),this.a=this.Z):"}"==b?(this.e[this.k]=this.c.ga(this.W,this.text),this.a=this.n):"#"==b?this.c.I(this.C):this.r())};c.prototype.wa=function(){this.c=new g(this.u,this.B);this.a=this.aa};c.prototype.aa=function(){var a=this.index,b=this.t(B);if(null==b)this.index=this.text.length,this.c.p(this.text.substring(a)),this.d=this.c.ga(this.W,this.text),this.a=null;else{var c=b[0];"\\"==c[0]?this.c.p(this.text.substring(a,
21
+ b.index)+c[1]):(this.c.p(this.text.substring(a,b.index)),this.pushState(),this.o.push(this.xa),this.a=this.Z)}};c.prototype.xa=function(){var a=this.d;this.X();this.c.I(a);this.a=this.aa};c.prototype.Z=function(){this.d=null;this.o.push(this.ta);this.a=this.sa};c.prototype.ua=function(){var a=this.d;this.X();this.c.I(a);this.a=this.ba};var S=/\s*}}/g;c.prototype.ta=function(){if(null==this.m(S)){var a=f(this.text,this.index);throw e("reqendinterp","}}",a.h,a.f,this.text);}null==this.d&&(this.d=this.A(this.b,
22
+ this.Ea),this.d.exp=this.b.exp,this.d.D=this.b.D);this.a=null};c.prototype.sa=function(){this.j=[];this.l=this.index;this.a=this.$};var T=/[[\]{}()'",]/g;c.prototype.$=function(){var a=this.t(T);if(null==a){if(0===this.j.length){this.index=this.text.length;this.b=this.A(this.text.substring(this.l,this.index));this.b.exp=this.text.substring(this.l,this.index);this.a=null;return}throw e("badexpr",this.Ha(this.j[0]),this.text);}var b=a[0];if("'"==b||'"'==b)this.o.push(this.$),this.Da(a);else if(","==
23
+ b){if(this.u)throw a=f(this.text,this.index),e("unsafe",this.u,a.h,a.f,this.text);0===this.j.length&&(this.b=this.A(this.text.substring(this.l,a.index)),this.b.exp=this.text.substring(this.l,a.index),this.a=null,this.a=this.za)}else if(null!=A(b))this.j.unshift(b);else{var c=G(b);null==c&&this.r();if(0<this.j.length){if(c==this.j[0]){this.j.shift();return}a=f(this.text,this.index);throw e("badexpr",b,a.h,a.f,A(this.j[0]),this.text);}this.index=a.index;this.b=this.A(this.text.substring(this.l,this.index));
24
+ this.b.exp=this.text.substring(this.l,this.index);this.a=null}};var U=["$$messageFormat","$delegate",function(a,b){if("{{"!=b.startSymbol()||"}}"!=b.endSymbol())throw e("nochgmustache");var c=a.interpolate;c.startSymbol=b.startSymbol;c.endSymbol=b.endSymbol;return c}],m=l.module("ngMessageFormat",["ng"]);m.factory("$$messageFormat",["$parse","$locale","$sce","$exceptionHandler",function(a,b,d,f){function g(a,b,c){return function(g){try{return g=a?d.getTrusted(a,g):d.valueOf(g),b&&void 0===g?g:C(g)}catch(h){f(e.interr(c,
25
+ h))}}}return{interpolate:function(d,e,f,h){d=new c(d,0,a,b.pluralCat,g(f,h,d),e,f,h);d.Ca(d.wa);return d.d}}}]);m.config(["$provide",function(a){a.decorator("$interpolate",U)}])})(window,window.Ga);
26
+ //# sourceMappingURL=angular-messageFormat.min.js.map
@@ -0,0 +1,8 @@
1
+ {
2
+ "version":3,
3
+ "file":"angular-messageFormat.min.js",
4
+ "lineCount":25,
5
+ "mappings":"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",
6
+ "sources":["angular-messageFormat.js"],
7
+ "names":["window","angular","stringify","value","toJson","indexToLineAndColumn","text","index","lines","split","i","length","line","column","parseTextLiteral","parsedFn","cachedFn","PARSE_CACHE_FOR_TEXT_LITERALS","scope","listener","objectEquality","unwatch","noop","textLiteralWatcher","isFunction","call","exp","expressions","subtractOffset","expressionFn","offset","minusOffset","context","pluralExpressionWatchListener","newValue","oldValue","MessageSelectorBase","choices","self","$interpolateMinErr","this.parsedFn","getResult","watchDelegate","MessageSelectorWatchers","msgSelector","lastMessage","messageFnWatcher","expressionFnWatcher","expressionFnListener","SelectMessage","SelectMessageProto","PluralMessage","pluralCat","PluralMessageProto","InterpolationParts","trustedContext","allOrNothing","textParts","expressionFns","expressionIndices","partialText","concatParts","InterpolationPartsWatcher","interpolationParts","previousResult","expressionFnsWatcher","newExpressionValues","oldExpressionValues","watchListener","copyNestedParserState","src","dst","expressionMinusOffsetFn","pluralOffset","choiceKey","ruleChoiceKeyword","msgStartIndex","expressionStartIndex","NestedParserState","parser","MessageFormatParser","startIndex","$parse","stringifier","mustHaveExpression","nestedStateStack","textPart","angularOperatorStack","stringInterestsRe","stringQuote","stringStartIndex","ruleStack","rule","getEndOperator","opBegin","getBeginOperator","opEnd","Object","create","prototype","getMessageFn","MessageSelectorBase.prototype.getMessageFn","categorizeValue","MessageSelectorBase.prototype.getResult","MessageSelectorBase.prototype.watchDelegate","watchers","cancelWatch","MessageSelectorWatchers.prototype.expressionFnListener","messageFn","messageFnListener","newMessage","oldMessage","MessageSelectorWatchers.prototype.messageFnListener","MessageSelectorWatchers.prototype.cancelWatch","SelectMessage.prototype.categorizeValue","PluralMessage.prototype.categorizeValue","isNaN","category","flushPartialText","InterpolationParts.prototype.flushPartialText","push","join","addText","InterpolationParts.prototype.addText","addExpressionFn","InterpolationParts.prototype.addExpressionFn","getExpressionValues","InterpolationParts.prototype.getExpressionValues","expressionValues","Array","InterpolationParts.prototype.getResult","expressionValue","toParsedFn","InterpolationParts.prototype.toParsedFn","originalText","errorInParseLogic","InterpolationParts.prototype.watchDelegate","watcher","InterpolationPartsWatcher.prototype.watchListener","result","InterpolationPartsWatcher.prototype.cancelWatch","EMPTY_STATE","pushState","MessageFormatParser.prototype.pushState","popState","MessageFormatParser.prototype.popState","previousState","pop","matchRe","MessageFormatParser.prototype.matchRe","re","search","lastIndex","match","exec","searchRe","MessageFormatParser.prototype.searchRe","consumeRe","MessageFormatParser.prototype.consumeRe","run","MessageFormatParser.prototype.run","initialRule","assertRuleOrNull","MessageFormatParser.prototype.errorInParseLogic","MessageFormatParser.prototype.assertRuleOrNull","NEXT_WORD_RE","errorExpecting","MessageFormatParser.prototype.errorExpecting","position","word","startStringAtMatch","MessageFormatParser.prototype.startStringAtMatch","SQUOTED_STRING_INTEREST_RE","DQUOTED_STRING_INTEREST_RE","ruleInsideString","MessageFormatParser.prototype.ruleInsideString","PLURAL_OR_SELECT_ARG_TYPE_RE","rulePluralOrSelect","MessageFormatParser.prototype.rulePluralOrSelect","argType","rulePluralStyle","ruleSelectStyle","MessageFormatParser.prototype.rulePluralStyle","rulePluralValueOrKeyword","rulePluralOffset","MessageFormatParser.prototype.ruleSelectStyle","ruleSelectKeyword","NUMBER_RE","PLURAL_OFFSET_RE","RegExp","source","MessageFormatParser.prototype.rulePluralOffset","parseInt","assertChoiceKeyIsNew","MessageFormatParser.prototype.assertChoiceKeyIsNew","SELECT_KEYWORD","MessageFormatParser.prototype.ruleSelectKeyword","ruleMessageText","EXPLICIT_VALUE_OR_KEYWORD_RE","MessageFormatParser.prototype.rulePluralValueOrKeyword","BRACE_OPEN_RE","MessageFormatParser.prototype.ruleMessageText","ruleInInterpolationOrMessageText","INTERP_OR_END_MESSAGE_RE","INTERP_OR_PLURALVALUE_OR_END_MESSAGE_RE","ESCAPE_OR_MUSTACHE_BEGIN_RE","advanceInInterpolationOrMessageText","MessageFormatParser.prototype.advanceInInterpolationOrMessageText","currentIndex","substring","token","MessageFormatParser.prototype.ruleInInterpolationOrMessageText","ruleEndMustacheInInterpolationOrMessage","ruleEnteredMustache","ruleInterpolate","MessageFormatParser.prototype.ruleInterpolate","ruleInInterpolation","MessageFormatParser.prototype.ruleInInterpolation","ruleInterpolationEndMustache","MessageFormatParser.prototype.ruleInterpolationEndMustache","MessageFormatParser.prototype.ruleEnteredMustache","ruleEndMustache","ruleAngularExpression","MessageFormatParser.prototype.ruleEndMustacheInInterpolationOrMessage","INTERP_END_RE","MessageFormatParser.prototype.ruleEndMustache","MessageFormatParser.prototype.ruleAngularExpression","ruleInAngularExpression","INTERESTING_OPERATORS_RE","MessageFormatParser.prototype.ruleInAngularExpression","innermostOperator","operator","unshift","beginOperator","shift","$$interpolateDecorator","$$messageFormat","$interpolate","interpolate","module","$$MessageFormatFactory","$locale","$sce","$exceptionHandler","getStringifier","err","$provide"]
8
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.4.0-beta.6
2
+ * @license AngularJS v1.4.0-rc.0
3
3
  * (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*
2
- AngularJS v1.4.0-beta.6
2
+ AngularJS v1.4.0-rc.0
3
3
  (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.4.0-beta.6
2
+ * @license AngularJS v1.4.0-rc.0
3
3
  * (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -64,6 +64,7 @@ angular.mock.$Browser = function() {
64
64
  return listener;
65
65
  };
66
66
 
67
+ self.$$applicationDestroyed = angular.noop;
67
68
  self.$$checkUrlChange = angular.noop;
68
69
 
69
70
  self.deferredFns = [];
@@ -770,13 +771,14 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng'])
770
771
  };
771
772
  });
772
773
 
773
- $provide.decorator('$animate', ['$delegate', '$$asyncCallback', '$timeout', '$browser',
774
- function($delegate, $$asyncCallback, $timeout, $browser) {
774
+ $provide.decorator('$animate', ['$delegate', '$$asyncCallback', '$timeout', '$browser', '$$rAF',
775
+ function($delegate, $$asyncCallback, $timeout, $browser, $$rAF) {
775
776
  var animate = {
776
777
  queue: [],
777
778
  cancel: $delegate.cancel,
778
779
  enabled: $delegate.enabled,
779
780
  triggerCallbackEvents: function() {
781
+ $$rAF.flush();
780
782
  $$asyncCallback.flush();
781
783
  },
782
784
  triggerCallbackPromise: function() {
@@ -1763,7 +1765,7 @@ angular.mock.$RAFDecorator = ['$delegate', function($delegate) {
1763
1765
  queue[i]();
1764
1766
  }
1765
1767
 
1766
- queue = [];
1768
+ queue = queue.slice(i);
1767
1769
  };
1768
1770
 
1769
1771
  return rafFn;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.4.0-beta.6
2
+ * @license AngularJS v1.4.0-rc.0
3
3
  * (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -10,7 +10,7 @@ var $resourceMinErr = angular.$$minErr('$resource');
10
10
  // Helper functions and regex to lookup a dotted path on an object
11
11
  // stopping at undefined/null. The path must be composed of ASCII
12
12
  // identifiers (just like $parse)
13
- var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;
13
+ var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;
14
14
 
15
15
  function isValidDottedPath(path) {
16
16
  return (path != null && path !== '' && path !== 'hasOwnProperty' &&
@@ -1,9 +1,9 @@
1
1
  /*
2
- AngularJS v1.4.0-beta.6
2
+ AngularJS v1.4.0-rc.0
3
3
  (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
6
- (function(I,d,B){'use strict';function D(f,q){q=q||{};d.forEach(q,function(d,h){delete q[h]});for(var h in f)!f.hasOwnProperty(h)||"$"===h.charAt(0)&&"$"===h.charAt(1)||(q[h]=f[h]);return q}var w=d.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;d.module("ngResource",["ng"]).provider("$resource",function(){var f=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}};
6
+ (function(I,d,B){'use strict';function D(f,q){q=q||{};d.forEach(q,function(d,h){delete q[h]});for(var h in f)!f.hasOwnProperty(h)||"$"===h.charAt(0)&&"$"===h.charAt(1)||(q[h]=f[h]);return q}var w=d.$$minErr("$resource"),C=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;d.module("ngResource",["ng"]).provider("$resource",function(){var f=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}};
7
7
  this.$get=["$http","$q",function(q,h){function t(d,g){this.template=d;this.defaults=s({},f.defaults,g);this.urlParams={}}function v(x,g,l,m){function c(b,k){var c={};k=s({},g,k);r(k,function(a,k){u(a)&&(a=a());var d;if(a&&a.charAt&&"@"==a.charAt(0)){d=b;var e=a.substr(1);if(null==e||""===e||"hasOwnProperty"===e||!C.test("."+e))throw w("badmember",e);for(var e=e.split("."),n=0,g=e.length;n<g&&d!==B;n++){var h=e[n];d=null!==d?d[h]:B}}else d=a;c[k]=d});return c}function F(b){return b.resource}function e(b){D(b||
8
8
  {},this)}var G=new t(x,m);l=s({},f.defaults.actions,l);e.prototype.toJSON=function(){var b=s({},this);delete b.$promise;delete b.$resolved;return b};r(l,function(b,k){var g=/^(POST|PUT|PATCH)$/i.test(b.method);e[k]=function(a,y,m,x){var n={},f,l,z;switch(arguments.length){case 4:z=x,l=m;case 3:case 2:if(u(y)){if(u(a)){l=a;z=y;break}l=y;z=m}else{n=a;f=y;l=m;break}case 1:u(a)?l=a:g?f=a:n=a;break;case 0:break;default:throw w("badargs",arguments.length);}var t=this instanceof e,p=t?f:b.isArray?[]:new e(f),
9
9
  A={},v=b.interceptor&&b.interceptor.response||F,C=b.interceptor&&b.interceptor.responseError||B;r(b,function(b,a){"params"!=a&&"isArray"!=a&&"interceptor"!=a&&(A[a]=H(b))});g&&(A.data=f);G.setUrlParams(A,s({},c(f,b.params||{}),n),b.url);n=q(A).then(function(a){var c=a.data,g=p.$promise;if(c){if(d.isArray(c)!==!!b.isArray)throw w("badcfg",k,b.isArray?"array":"object",d.isArray(c)?"array":"object");b.isArray?(p.length=0,r(c,function(a){"object"===typeof a?p.push(new e(a)):p.push(a)})):(D(c,p),p.$promise=
@@ -2,7 +2,7 @@
2
2
  "version":3,
3
3
  "file":"angular-resource.min.js",
4
4
  "lineCount":12,
5
- "mappings":"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",
5
+ "mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CA6BtCC,QAASA,EAAmB,CAACC,CAAD,CAAMC,CAAN,CAAW,CACrCA,CAAA,CAAMA,CAAN,EAAa,EAEbJ,EAAAK,QAAA,CAAgBD,CAAhB,CAAqB,QAAQ,CAACE,CAAD,CAAQC,CAAR,CAAa,CACxC,OAAOH,CAAA,CAAIG,CAAJ,CADiC,CAA1C,CAIA,KAASA,IAAAA,CAAT,GAAgBJ,EAAhB,CACM,CAAAA,CAAAK,eAAA,CAAmBD,CAAnB,CAAJ,EAAmD,GAAnD,GAAiCA,CAAAE,OAAA,CAAW,CAAX,CAAjC,EAA4E,GAA5E,GAA0DF,CAAAE,OAAA,CAAW,CAAX,CAA1D,GACEL,CAAA,CAAIG,CAAJ,CADF,CACaJ,CAAA,CAAII,CAAJ,CADb,CAKF,OAAOH,EAb8B,CA3BvC,IAAIM,EAAkBV,CAAAW,SAAA,CAAiB,WAAjB,CAAtB,CAKIC,EAAoB,mCAoVxBZ,EAAAa,OAAA,CAAe,YAAf,CAA6B,CAAC,IAAD,CAA7B,CAAAC,SAAA,CACW,WADX,CACwB,QAAQ,EAAG,CAC/B,IAAIA,EAAW,IAEf,KAAAC,SAAA,CAAgB,CAEdC,qBAAsB,CAAA,CAFR,CAKdC,QAAS,CACP,IAAO,CAACC,OAAQ,KAAT,CADA,CAEP,KAAQ,CAACA,OAAQ,MAAT,CAFD,CAGP,MAAS,CAACA,OAAQ,KAAT,CAAgBC,QAAS,CAAA,CAAzB,CAHF,CAIP,OAAU,CAACD,OAAQ,QAAT,CAJH,CAKP,SAAU,CAACA,OAAQ,QAAT,CALH,CALK,CAchB;IAAAE,KAAA,CAAY,CAAC,OAAD,CAAU,IAAV,CAAgB,QAAQ,CAACC,CAAD,CAAQC,CAAR,CAAY,CA+C9CC,QAASA,EAAK,CAACC,CAAD,CAAWT,CAAX,CAAqB,CACjC,IAAAS,SAAA,CAAgBA,CAChB,KAAAT,SAAA,CAAgBU,CAAA,CAAO,EAAP,CAAWX,CAAAC,SAAX,CAA8BA,CAA9B,CAChB,KAAAW,UAAA,CAAiB,EAHgB,CAoEnCC,QAASA,EAAe,CAACC,CAAD,CAAMC,CAAN,CAAqBZ,CAArB,CAA8Ba,CAA9B,CAAuC,CAK7DC,QAASA,EAAa,CAACC,CAAD,CAAOC,CAAP,CAAqB,CACzC,IAAIC,EAAM,EACVD,EAAA,CAAeR,CAAA,CAAO,EAAP,CAAWI,CAAX,CAA0BI,CAA1B,CACf5B,EAAA,CAAQ4B,CAAR,CAAsB,QAAQ,CAAC3B,CAAD,CAAQC,CAAR,CAAa,CACrC4B,CAAA,CAAW7B,CAAX,CAAJ,GAAyBA,CAAzB,CAAiCA,CAAA,EAAjC,CACW,KAAA,CAAA,IAAAA,CAAA,EAASA,CAAAG,OAAT,EAA4C,GAA5C,EAAyBH,CAAAG,OAAA,CAAa,CAAb,CAAzB,CAAA,CACT,CAAA,CAAA,CAAA,KAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CA5dZ,IALgB,IAKhB,EAAuB2B,CAAvB,EALiC,EAKjC,GAAuBA,CAAvB,EALgD,gBAKhD,GAAuBA,CAAvB,EAJI,CAAAxB,CAAAyB,KAAA,CAAuB,GAAvB,CAImBD,CAJnB,CAIJ,CACE,KAAM1B,EAAA,CAAgB,WAAhB,CAAsE0B,CAAtE,CAAN,CAGF,IADIE,IAAAA,EAAOF,CAAAG,MAAA,CAAW,GAAX,CAAPD,CACKE,EAAI,CADTF,CACYG,EAAKH,CAAAI,OAArB,CAAkCF,CAAlC,CAAsCC,CAAtC,EAA4CE,CAA5C,GAAoD1C,CAApD,CAA+DuC,CAAA,EAA/D,CAAoE,CAClE,IAAIjC,EAAM+B,CAAA,CAAKE,CAAL,CACVG,EAAA,CAAe,IAAT,GAACA,CAAD,CAAiBA,CAAA,CAAIpC,CAAJ,CAAjB,CAA4BN,CAFgC,CAud/C,CAAA,IACiCK,EAAAA,CAAAA,CAD5C4B,EAAA,CAAI3B,CAAJ,CAAA,CAAW,CAF8B,CAA3C,CAKA,OAAO2B,EARkC,CAW3CU,QAASA,EAA0B,CAACC,CAAD,CAAW,CAC5C,MAAOA,EAAAC,SADqC,CAI9CC,QAASA,EAAQ,CAACzC,CAAD,CAAQ,CACvBJ,CAAA,CAAoBI,CAApB;AAA6B,EAA7B,CAAiC,IAAjC,CADuB,CAnBzB,IAAI0C,EAAQ,IAAIzB,CAAJ,CAAUK,CAAV,CAAeE,CAAf,CAEZb,EAAA,CAAUQ,CAAA,CAAO,EAAP,CAAWX,CAAAC,SAAAE,QAAX,CAAsCA,CAAtC,CAqBV8B,EAAAE,UAAAC,OAAA,CAA4BC,QAAQ,EAAG,CACrC,IAAInB,EAAOP,CAAA,CAAO,EAAP,CAAW,IAAX,CACX,QAAOO,CAAAoB,SACP,QAAOpB,CAAAqB,UACP,OAAOrB,EAJ8B,CAOvC3B,EAAA,CAAQY,CAAR,CAAiB,QAAQ,CAACqC,CAAD,CAASC,CAAT,CAAe,CACtC,IAAIC,EAAU,qBAAAnB,KAAA,CAA2BiB,CAAApC,OAA3B,CAEd6B,EAAA,CAASQ,CAAT,CAAA,CAAiB,QAAQ,CAACE,CAAD,CAAKC,CAAL,CAASC,CAAT,CAAaC,CAAb,CAAiB,CAAA,IACpCC,EAAS,EAD2B,CACvB7B,CADuB,CACjB8B,CADiB,CACRC,CAGhC,QAAQC,SAAAtB,OAAR,EACE,KAAK,CAAL,CACEqB,CACA,CADQH,CACR,CAAAE,CAAA,CAAUH,CAEZ,MAAK,CAAL,CACA,KAAK,CAAL,CACE,GAAIxB,CAAA,CAAWuB,CAAX,CAAJ,CAAoB,CAClB,GAAIvB,CAAA,CAAWsB,CAAX,CAAJ,CAAoB,CAClBK,CAAA,CAAUL,CACVM,EAAA,CAAQL,CACR,MAHkB,CAMpBI,CAAA,CAAUJ,CACVK,EAAA,CAAQJ,CARU,CAApB,IAUO,CACLE,CAAA,CAASJ,CACTzB,EAAA,CAAO0B,CACPI,EAAA,CAAUH,CACV,MAJK,CAMT,KAAK,CAAL,CACMxB,CAAA,CAAWsB,CAAX,CAAJ,CAAoBK,CAApB,CAA8BL,CAA9B,CACSD,CAAJ,CAAaxB,CAAb,CAAoByB,CAApB,CACAI,CADA,CACSJ,CACd,MACF,MAAK,CAAL,CAAQ,KACR,SACE,KAAM/C,EAAA,CAAgB,SAAhB,CAEJsD,SAAAtB,OAFI,CAAN,CA9BJ,CAoCA,IAAIuB,EAAiB,IAAjBA,WAAiClB,EAArC,CACIzC,EAAQ2D,CAAA,CAAiBjC,CAAjB,CAAyBsB,CAAAnC,QAAA,CAAiB,EAAjB,CAAsB,IAAI4B,CAAJ,CAAaf,CAAb,CAD3D;AAEIkC,EAAa,EAFjB,CAGIC,EAAsBb,CAAAc,YAAtBD,EAA4Cb,CAAAc,YAAAvB,SAA5CsB,EACFvB,CAJF,CAKIyB,EAA2Bf,CAAAc,YAA3BC,EAAiDf,CAAAc,YAAAE,cAAjDD,EACFpE,CAEFI,EAAA,CAAQiD,CAAR,CAAgB,QAAQ,CAAChD,CAAD,CAAQC,CAAR,CAAa,CACxB,QAAX,EAAIA,CAAJ,EAA8B,SAA9B,EAAuBA,CAAvB,EAAkD,aAAlD,EAA2CA,CAA3C,GACE2D,CAAA,CAAW3D,CAAX,CADF,CACoBgE,CAAA,CAAKjE,CAAL,CADpB,CADmC,CAArC,CAMIkD,EAAJ,GAAaU,CAAAlC,KAAb,CAA+BA,CAA/B,CACAgB,EAAAwB,aAAA,CAAmBN,CAAnB,CACEzC,CAAA,CAAO,EAAP,CAAWM,CAAA,CAAcC,CAAd,CAAoBsB,CAAAO,OAApB,EAAqC,EAArC,CAAX,CAAqDA,CAArD,CADF,CAEEP,CAAA1B,IAFF,CAII6C,EAAAA,CAAUpD,CAAA,CAAM6C,CAAN,CAAAQ,KAAA,CAAuB,QAAQ,CAAC7B,CAAD,CAAW,CAAA,IAClDb,EAAOa,CAAAb,KAD2C,CAEpDyC,EAAUnE,CAAA8C,SAEZ,IAAIpB,CAAJ,CAAU,CAGR,GAAIhC,CAAAmB,QAAA,CAAgBa,CAAhB,CAAJ,GAA+B,CAAEb,CAAAmC,CAAAnC,QAAjC,CACE,KAAMT,EAAA,CAAgB,QAAhB,CAE+B6C,CAF/B,CAEqCD,CAAAnC,QAAA,CAAiB,OAAjB,CAA2B,QAFhE,CAGJnB,CAAAmB,QAAA,CAAgBa,CAAhB,CAAA,CAAwB,OAAxB,CAAkC,QAH9B,CAAN,CAMEsB,CAAAnC,QAAJ,EACEb,CAAAoC,OACA,CADe,CACf,CAAArC,CAAA,CAAQ2B,CAAR,CAAc,QAAQ,CAAC2C,CAAD,CAAO,CACP,QAApB,GAAI,MAAOA,EAAX,CACErE,CAAAsE,KAAA,CAAW,IAAI7B,CAAJ,CAAa4B,CAAb,CAAX,CADF,CAMErE,CAAAsE,KAAA,CAAWD,CAAX,CAPyB,CAA7B,CAFF,GAaEzE,CAAA,CAAoB8B,CAApB,CAA0B1B,CAA1B,CACA,CAAAA,CAAA8C,SAAA;AAAiBqB,CAdnB,CAVQ,CA4BVnE,CAAA+C,UAAA,CAAkB,CAAA,CAElBR,EAAAC,SAAA,CAAoBxC,CAEpB,OAAOuC,EApC+C,CAA1C,CAqCX,QAAQ,CAACA,CAAD,CAAW,CACpBvC,CAAA+C,UAAA,CAAkB,CAAA,CAElB,EAACU,CAAD,EAAUc,CAAV,EAAgBhC,CAAhB,CAEA,OAAOvB,EAAAwD,OAAA,CAAUjC,CAAV,CALa,CArCR,CA6Cd4B,EAAA,CAAUA,CAAAC,KAAA,CACR,QAAQ,CAAC7B,CAAD,CAAW,CACjB,IAAIvC,EAAQ6D,CAAA,CAAoBtB,CAApB,CACZ,EAACiB,CAAD,EAAYe,CAAZ,EAAkBvE,CAAlB,CAAyBuC,CAAAkC,QAAzB,CACA,OAAOzE,EAHU,CADX,CAMR+D,CANQ,CAQV,OAAKJ,EAAL,CAWOQ,CAXP,EAIEnE,CAAA8C,SAGO9C,CAHUmE,CAGVnE,CAFPA,CAAA+C,UAEO/C,CAFW,CAAA,CAEXA,CAAAA,CAPT,CAhHwC,CA+H1CyC,EAAAE,UAAA,CAAmB,GAAnB,CAAyBM,CAAzB,CAAA,CAAiC,QAAQ,CAACM,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAAyB,CAC5D5B,CAAA,CAAW0B,CAAX,CAAJ,GACEE,CAAmC,CAA3BD,CAA2B,CAAlBA,CAAkB,CAARD,CAAQ,CAAAA,CAAA,CAAS,EAD9C,CAGImB,EAAAA,CAASjC,CAAA,CAASQ,CAAT,CAAA0B,KAAA,CAAoB,IAApB,CAA0BpB,CAA1B,CAAkC,IAAlC,CAAwCC,CAAxC,CAAiDC,CAAjD,CACb,OAAOiB,EAAA5B,SAAP,EAA0B4B,CALsC,CAlI5B,CAAxC,CA2IAjC,EAAAmC,KAAA,CAAgBC,QAAQ,CAACC,CAAD,CAA0B,CAChD,MAAOzD,EAAA,CAAgBC,CAAhB,CAAqBH,CAAA,CAAO,EAAP,CAAWI,CAAX,CAA0BuD,CAA1B,CAArB,CAAyEnE,CAAzE,CADyC,CAIlD,OAAO8B,EA9KsD,CAnHjB,IAE1C8B,EAAO7E,CAAA6E,KAFmC,CAG5CxE,EAAUL,CAAAK,QAHkC,CAI5CoB,EAASzB,CAAAyB,OAJmC,CAK5C8C,EAAOvE,CAAAuE,KALqC,CAM5CpC,EAAanC,CAAAmC,WA+CfZ,EAAA0B,UAAA,CAAkB,CAChBuB,aAAcA,QAAQ,CAACa,CAAD,CAASxB,CAAT,CAAiByB,CAAjB,CAA4B,CAAA,IAC5CC,EAAO,IADqC,CAE9C3D,EAAM0D,CAAN1D,EAAmB2D,CAAA/D,SAF2B,CAG9CgE,CAH8C;AAI9CC,CAJ8C,CAM5C/D,EAAY6D,CAAA7D,UAAZA,CAA6B,EACjCrB,EAAA,CAAQuB,CAAAW,MAAA,CAAU,IAAV,CAAR,CAAyB,QAAQ,CAACmD,CAAD,CAAQ,CACvC,GAAc,gBAAd,GAAIA,CAAJ,CACE,KAAMhF,EAAA,CAAgB,SAAhB,CAAN,CAEI,CAAA,OAAA2B,KAAA,CAA0BqD,CAA1B,CAAN,EAA2CA,CAA3C,EACGrD,CAAA,IAAIsD,MAAJ,CAAW,cAAX,CAA4BD,CAA5B,CAAoC,SAApC,CAAArD,MAAA,CAAoDT,CAApD,CADH,GAEEF,CAAA,CAAUgE,CAAV,CAFF,CAEqB,CAAA,CAFrB,CAJuC,CAAzC,CASA9D,EAAA,CAAMA,CAAAgE,QAAA,CAAY,MAAZ,CAAoB,GAApB,CAEN/B,EAAA,CAASA,CAAT,EAAmB,EACnBxD,EAAA,CAAQkF,CAAA7D,UAAR,CAAwB,QAAQ,CAACmE,CAAD,CAAIC,CAAJ,CAAc,CAC5CN,CAAA,CAAM3B,CAAArD,eAAA,CAAsBsF,CAAtB,CAAA,CAAkCjC,CAAA,CAAOiC,CAAP,CAAlC,CAAqDP,CAAAxE,SAAA,CAAc+E,CAAd,CACvD9F,EAAA+F,UAAA,CAAkBP,CAAlB,CAAJ,EAAsC,IAAtC,GAA8BA,CAA9B,EACEC,CACA,CAtCCO,kBAAA,CAqC6BR,CArC7B,CAAAI,QAAA,CACG,OADH,CACY,GADZ,CAAAA,QAAA,CAEG,OAFH,CAEY,GAFZ,CAAAA,QAAA,CAGG,MAHH,CAGW,GAHX,CAAAA,QAAA,CAIG,OAJH,CAIY,GAJZ,CAAAA,QAAA,CAKG,MALH,CAK8B,KAL9B,CAnBAA,QAAA,CACG,OADH,CACY,GADZ,CAAAA,QAAA,CAEG,OAFH,CAEY,GAFZ,CAAAA,QAAA,CAGG,OAHH,CAGY,GAHZ,CAyDD,CAAAhE,CAAA,CAAMA,CAAAgE,QAAA,CAAY,IAAID,MAAJ,CAAW,GAAX;AAAiBG,CAAjB,CAA4B,SAA5B,CAAuC,GAAvC,CAAZ,CAAyD,QAAQ,CAACG,CAAD,CAAQC,CAAR,CAAY,CACjF,MAAOT,EAAP,CAAoBS,CAD6D,CAA7E,CAFR,EAMEtE,CANF,CAMQA,CAAAgE,QAAA,CAAY,IAAID,MAAJ,CAAW,OAAX,CAAsBG,CAAtB,CAAiC,SAAjC,CAA4C,GAA5C,CAAZ,CAA8D,QAAQ,CAACG,CAAD,CACxEE,CADwE,CACxDC,CADwD,CAClD,CACxB,MAAsB,GAAtB,EAAIA,CAAA3F,OAAA,CAAY,CAAZ,CAAJ,CACS2F,CADT,CAGSD,CAHT,CAG0BC,CAJF,CADpB,CARoC,CAA9C,CAoBIb,EAAAxE,SAAAC,qBAAJ,GACEY,CADF,CACQA,CAAAgE,QAAA,CAAY,MAAZ,CAAoB,EAApB,CADR,EACmC,GADnC,CAMAhE,EAAA,CAAMA,CAAAgE,QAAA,CAAY,mBAAZ,CAAiC,GAAjC,CAENP,EAAAzD,IAAA,CAAaA,CAAAgE,QAAA,CAAY,QAAZ,CAAsB,IAAtB,CAIbvF,EAAA,CAAQwD,CAAR,CAAgB,QAAQ,CAACvD,CAAD,CAAQC,CAAR,CAAa,CAC9BgF,CAAA7D,UAAA,CAAenB,CAAf,CAAL,GACE8E,CAAAxB,OACA,CADgBwB,CAAAxB,OAChB,EADiC,EACjC,CAAAwB,CAAAxB,OAAA,CAActD,CAAd,CAAA,CAAqBD,CAFvB,CADmC,CAArC,CAnDgD,CADlC,CA+OlB,OAAOqB,EApSuC,CAApC,CAjBmB,CADnC,CA3VsC,CAArC,CAAD,CAspBG5B,MAtpBH,CAspBWA,MAAAC,QAtpBX;",
6
6
  "sources":["angular-resource.js"],
7
7
  "names":["window","angular","undefined","shallowClearAndCopy","src","dst","forEach","value","key","hasOwnProperty","charAt","$resourceMinErr","$$minErr","MEMBER_NAME_REGEX","module","provider","defaults","stripTrailingSlashes","actions","method","isArray","$get","$http","$q","Route","template","extend","urlParams","resourceFactory","url","paramDefaults","options","extractParams","data","actionParams","ids","isFunction","path","test","keys","split","i","ii","length","obj","defaultResponseInterceptor","response","resource","Resource","route","prototype","toJSON","Resource.prototype.toJSON","$promise","$resolved","action","name","hasBody","a1","a2","a3","a4","params","success","error","arguments","isInstanceCall","httpConfig","responseInterceptor","interceptor","responseErrorInterceptor","responseError","copy","setUrlParams","promise","then","item","push","noop","reject","headers","result","call","bind","Resource.bind","additionalParamDefaults","config","actionUrl","self","val","encodedVal","param","RegExp","replace","_","urlParam","isDefined","encodeURIComponent","match","p1","leadingSlashes","tail"]
8
8
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.4.0-beta.6
2
+ * @license AngularJS v1.4.0-rc.0
3
3
  * (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -440,9 +440,11 @@ function $RouteProvider() {
440
440
  * @name $route#$routeUpdate
441
441
  * @eventType broadcast on root scope
442
442
  * @description
443
- *
444
443
  * The `reloadOnSearch` property has been set to false, and we are reusing the same
445
444
  * instance of the Controller.
445
+ *
446
+ * @param {Object} angularEvent Synthetic event object
447
+ * @param {Route} current Current/previous route information.
446
448
  */
447
449
 
448
450
  var forceReload = false,
@@ -1,5 +1,5 @@
1
1
  /*
2
- AngularJS v1.4.0-beta.6
2
+ AngularJS v1.4.0-rc.0
3
3
  (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
@@ -2,7 +2,7 @@
2
2
  "version":3,
3
3
  "file":"angular-route.min.js",
4
4
  "lineCount":14,
5
- "mappings":"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",
5
+ "mappings":"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",
6
6
  "sources":["angular-route.js"],
7
7
  "names":["window","angular","undefined","ngViewFactory","$route","$anchorScroll","$animate","restrict","terminal","priority","transclude","link","scope","$element","attr","ctrl","$transclude","cleanupLastView","previousLeaveAnimation","cancel","currentScope","$destroy","currentElement","leave","then","update","locals","current","isDefined","$template","newScope","$new","clone","enter","onNgViewEnter","autoScrollExp","$eval","$emit","onloadExp","autoscroll","onload","$on","ngViewFillContentFactory","$compile","$controller","html","contents","controller","$scope","controllerAs","data","children","ngRouteModule","module","provider","$RouteProvider","inherit","parent","extra","extend","Object","create","pathRegExp","path","opts","insensitive","caseInsensitiveMatch","ret","originalPath","regexp","keys","replace","_","slash","key","option","optional","star","push","name","RegExp","routes","when","this.when","route","routeCopy","copy","isUndefined","reloadOnSearch","redirectPath","length","substr","redirectTo","otherwise","this.otherwise","params","$get","$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce","prepareRoute","$locationEvent","lastRoute","preparedRouteIsUpdateOnly","preparedRoute","parseRoute","$$route","equals","pathParams","forceReload","$broadcast","defaultPrevented","preventDefault","commitRoute","nextRoute","isString","interpolate","search","url","resolve","template","templateUrl","forEach","value","get","invoke","isFunction","getTrustedResourceUrl","loadedTemplateUrl","all","error","match","m","exec","on","i","len","val","string","result","split","segment","segmentMatch","join","reload","$evalAsync","updateParams","newParams","$routeMinErr","$$minErr","$RouteParamsProvider","this.$get","directive","$inject"]
8
8
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.4.0-beta.6
2
+ * @license AngularJS v1.4.0-rc.0
3
3
  * (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*
2
- AngularJS v1.4.0-beta.6
2
+ AngularJS v1.4.0-rc.0
3
3
  (c) 2010-2015 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
@@ -9190,7 +9190,7 @@ return jQuery;
9190
9190
  }));
9191
9191
 
9192
9192
  /**
9193
- * @license AngularJS v1.4.0-beta.6
9193
+ * @license AngularJS v1.4.0-rc.0
9194
9194
  * (c) 2010-2015 Google, Inc. http://angularjs.org
9195
9195
  * License: MIT
9196
9196
  */
@@ -9249,7 +9249,7 @@ function minErr(module, ErrorConstructor) {
9249
9249
  return match;
9250
9250
  });
9251
9251
 
9252
- message += '\nhttp://errors.angularjs.org/1.4.0-beta.6/' +
9252
+ message += '\nhttp://errors.angularjs.org/1.4.0-rc.0/' +
9253
9253
  (module ? module + '/' : '') + code;
9254
9254
 
9255
9255
  for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {
@@ -10342,8 +10342,8 @@ function toJsonReplacer(key, value) {
10342
10342
  * stripped since angular uses this notation internally.
10343
10343
  *
10344
10344
  * @param {Object|Array|Date|string|number} obj Input to be serialized into JSON.
10345
- * @param {boolean|number=} pretty If set to true, the JSON output will contain newlines and whitespace.
10346
- * If set to an integer, the JSON output will contain that many spaces per indentation (the default is 2).
10345
+ * @param {boolean|number} [pretty=2] If set to true, the JSON output will contain newlines and whitespace.
10346
+ * If set to an integer, the JSON output will contain that many spaces per indentation.
10347
10347
  * @returns {string|undefined} JSON-ified string representing `obj`.
10348
10348
  */
10349
10349
  function toJson(obj, pretty) {
@@ -11198,6 +11198,18 @@ function setupModuleLoader(window) {
11198
11198
  */
11199
11199
  constant: invokeLater('$provide', 'constant', 'unshift'),
11200
11200
 
11201
+ /**
11202
+ * @ngdoc method
11203
+ * @name angular.Module#decorator
11204
+ * @module ng
11205
+ * @param {string} The name of the service to decorate.
11206
+ * @param {Function} This function will be invoked when the service needs to be
11207
+ * instantiated and should return the decorated service instance.
11208
+ * @description
11209
+ * See {@link auto.$provide#decorator $provide.decorator()}.
11210
+ */
11211
+ decorator: invokeLater('$provide', 'decorator'),
11212
+
11201
11213
  /**
11202
11214
  * @ngdoc method
11203
11215
  * @name angular.Module#animation
@@ -11211,7 +11223,7 @@ function setupModuleLoader(window) {
11211
11223
  *
11212
11224
  *
11213
11225
  * Defines an animation hook that can be later used with
11214
- * {@link ngAnimate.$animate $animate} service and directives that use this service.
11226
+ * {@link $animate $animate} service and directives that use this service.
11215
11227
  *
11216
11228
  * ```js
11217
11229
  * module.animation('.animation-name', function($inject1, $inject2) {
@@ -11236,10 +11248,17 @@ function setupModuleLoader(window) {
11236
11248
  * @ngdoc method
11237
11249
  * @name angular.Module#filter
11238
11250
  * @module ng
11239
- * @param {string} name Filter name.
11251
+ * @param {string} name Filter name - this must be a valid angular expression identifier
11240
11252
  * @param {Function} filterFactory Factory function for creating new instance of filter.
11241
11253
  * @description
11242
11254
  * See {@link ng.$filterProvider#register $filterProvider.register()}.
11255
+ *
11256
+ * <div class="alert alert-warning">
11257
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`.
11258
+ * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace
11259
+ * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores
11260
+ * (`myapp_subsection_filterx`).
11261
+ * </div>
11243
11262
  */
11244
11263
  filter: invokeLater('$filterProvider', 'register'),
11245
11264
 
@@ -11407,6 +11426,8 @@ function toDebugString(obj) {
11407
11426
 
11408
11427
  $AnchorScrollProvider,
11409
11428
  $AnimateProvider,
11429
+ $$CoreAnimateQueueProvider,
11430
+ $$CoreAnimateRunnerProvider,
11410
11431
  $BrowserProvider,
11411
11432
  $CacheFactoryProvider,
11412
11433
  $ControllerProvider,
@@ -11417,6 +11438,8 @@ function toDebugString(obj) {
11417
11438
  $IntervalProvider,
11418
11439
  $$HashMapProvider,
11419
11440
  $HttpProvider,
11441
+ $HttpParamSerializerProvider,
11442
+ $HttpParamSerializerJQLikeProvider,
11420
11443
  $HttpBackendProvider,
11421
11444
  $LocationProvider,
11422
11445
  $LogProvider,
@@ -11455,11 +11478,11 @@ function toDebugString(obj) {
11455
11478
  * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
11456
11479
  */
11457
11480
  var version = {
11458
- full: '1.4.0-beta.6', // all of these placeholder strings will be replaced by grunt's
11481
+ full: '1.4.0-rc.0', // all of these placeholder strings will be replaced by grunt's
11459
11482
  major: 1, // package task
11460
11483
  minor: 4,
11461
11484
  dot: 0,
11462
- codeName: 'cookie-liberation'
11485
+ codeName: 'smooth-unwinding'
11463
11486
  };
11464
11487
 
11465
11488
 
@@ -11565,6 +11588,8 @@ function publishExternalAPI(angular) {
11565
11588
  $provide.provider({
11566
11589
  $anchorScroll: $AnchorScrollProvider,
11567
11590
  $animate: $AnimateProvider,
11591
+ $$animateQueue: $$CoreAnimateQueueProvider,
11592
+ $$AnimateRunner: $$CoreAnimateRunnerProvider,
11568
11593
  $browser: $BrowserProvider,
11569
11594
  $cacheFactory: $CacheFactoryProvider,
11570
11595
  $controller: $ControllerProvider,
@@ -11574,6 +11599,8 @@ function publishExternalAPI(angular) {
11574
11599
  $interpolate: $InterpolateProvider,
11575
11600
  $interval: $IntervalProvider,
11576
11601
  $http: $HttpProvider,
11602
+ $httpParamSerializer: $HttpParamSerializerProvider,
11603
+ $httpParamSerializerJQLike: $HttpParamSerializerJQLikeProvider,
11577
11604
  $httpBackend: $HttpBackendProvider,
11578
11605
  $location: $LocationProvider,
11579
11606
  $log: $LogProvider,
@@ -13606,9 +13633,10 @@ function $AnchorScrollProvider() {
13606
13633
  * @requires $rootScope
13607
13634
  *
13608
13635
  * @description
13609
- * When called, it checks the current value of {@link ng.$location#hash $location.hash()} and
13610
- * scrolls to the related element, according to the rules specified in the
13611
- * [Html5 spec](http://dev.w3.org/html5/spec/Overview.html#the-indicated-part-of-the-document).
13636
+ * When called, it scrolls to the element related to the specified `hash` or (if omitted) to the
13637
+ * current value of {@link ng.$location#hash $location.hash()}, according to the rules specified
13638
+ * in the
13639
+ * [HTML5 spec](http://dev.w3.org/html5/spec/Overview.html#the-indicated-part-of-the-document).
13612
13640
  *
13613
13641
  * It also watches the {@link ng.$location#hash $location.hash()} and automatically scrolls to
13614
13642
  * match any anchor whenever it changes. This can be disabled by calling
@@ -13617,6 +13645,9 @@ function $AnchorScrollProvider() {
13617
13645
  * Additionally, you can use its {@link ng.$anchorScroll#yOffset yOffset} property to specify a
13618
13646
  * vertical scroll-offset (either fixed or dynamic).
13619
13647
  *
13648
+ * @param {string=} hash The hash specifying the element to scroll to. If omitted, the value of
13649
+ * {@link ng.$location#hash $location.hash()} will be used.
13650
+ *
13620
13651
  * @property {(number|function|jqLite)} yOffset
13621
13652
  * If set, specifies a vertical scroll-offset. This is often useful when there are fixed
13622
13653
  * positioned elements at the top of the page, such as navbars, headers etc.
@@ -13800,8 +13831,9 @@ function $AnchorScrollProvider() {
13800
13831
  }
13801
13832
  }
13802
13833
 
13803
- function scroll() {
13804
- var hash = $location.hash(), elm;
13834
+ function scroll(hash) {
13835
+ hash = isString(hash) ? hash : $location.hash();
13836
+ var elm;
13805
13837
 
13806
13838
  // empty hash, scroll to the top of the page
13807
13839
  if (!hash) scrollTo(null);
@@ -13835,6 +13867,151 @@ function $AnchorScrollProvider() {
13835
13867
  }
13836
13868
 
13837
13869
  var $animateMinErr = minErr('$animate');
13870
+ var ELEMENT_NODE = 1;
13871
+
13872
+ function mergeClasses(a,b) {
13873
+ if (!a && !b) return '';
13874
+ if (!a) return b;
13875
+ if (!b) return a;
13876
+ if (isArray(a)) a = a.join(' ');
13877
+ if (isArray(b)) b = b.join(' ');
13878
+ return a + ' ' + b;
13879
+ }
13880
+
13881
+ function extractElementNode(element) {
13882
+ for (var i = 0; i < element.length; i++) {
13883
+ var elm = element[i];
13884
+ if (elm.nodeType === ELEMENT_NODE) {
13885
+ return elm;
13886
+ }
13887
+ }
13888
+ }
13889
+
13890
+ function splitClasses(classes) {
13891
+ if (isString(classes)) {
13892
+ classes = classes.split(' ');
13893
+ }
13894
+
13895
+ var obj = {};
13896
+ forEach(classes, function(klass) {
13897
+ // sometimes the split leaves empty string values
13898
+ // incase extra spaces were applied to the options
13899
+ if (klass.length) {
13900
+ obj[klass] = true;
13901
+ }
13902
+ });
13903
+ return obj;
13904
+ }
13905
+
13906
+ var $$CoreAnimateRunnerProvider = function() {
13907
+ this.$get = ['$q', '$$rAF', function($q, $$rAF) {
13908
+ function AnimateRunner() {}
13909
+ AnimateRunner.all = noop;
13910
+ AnimateRunner.chain = noop;
13911
+ AnimateRunner.prototype = {
13912
+ end: noop,
13913
+ cancel: noop,
13914
+ resume: noop,
13915
+ pause: noop,
13916
+ complete: noop,
13917
+ then: function(pass, fail) {
13918
+ return $q(function(resolve) {
13919
+ $$rAF(function() {
13920
+ resolve();
13921
+ });
13922
+ }).then(pass, fail);
13923
+ }
13924
+ };
13925
+ return AnimateRunner;
13926
+ }];
13927
+ };
13928
+
13929
+ // this is prefixed with Core since it conflicts with
13930
+ // the animateQueueProvider defined in ngAnimate/animateQueue.js
13931
+ var $$CoreAnimateQueueProvider = function() {
13932
+ var postDigestQueue = new HashMap();
13933
+ var postDigestElements = [];
13934
+
13935
+ this.$get = ['$$AnimateRunner', '$rootScope',
13936
+ function($$AnimateRunner, $rootScope) {
13937
+ return {
13938
+ enabled: noop,
13939
+ on: noop,
13940
+ off: noop,
13941
+
13942
+ push: function(element, event, options, domOperation) {
13943
+ domOperation && domOperation();
13944
+
13945
+ options = options || {};
13946
+ options.from && element.css(options.from);
13947
+ options.to && element.css(options.to);
13948
+
13949
+ if (options.addClass || options.removeClass) {
13950
+ addRemoveClassesPostDigest(element, options.addClass, options.removeClass);
13951
+ }
13952
+
13953
+ return new $$AnimateRunner(); // jshint ignore:line
13954
+ }
13955
+ };
13956
+
13957
+ function addRemoveClassesPostDigest(element, add, remove) {
13958
+ var data = postDigestQueue.get(element);
13959
+ var classVal;
13960
+
13961
+ if (!data) {
13962
+ postDigestQueue.put(element, data = {});
13963
+ postDigestElements.push(element);
13964
+ }
13965
+
13966
+ if (add) {
13967
+ forEach(add.split(' '), function(className) {
13968
+ if (className) {
13969
+ data[className] = true;
13970
+ }
13971
+ });
13972
+ }
13973
+
13974
+ if (remove) {
13975
+ forEach(remove.split(' '), function(className) {
13976
+ if (className) {
13977
+ data[className] = false;
13978
+ }
13979
+ });
13980
+ }
13981
+
13982
+ if (postDigestElements.length > 1) return;
13983
+
13984
+ $rootScope.$$postDigest(function() {
13985
+ forEach(postDigestElements, function(element) {
13986
+ var data = postDigestQueue.get(element);
13987
+ if (data) {
13988
+ var existing = splitClasses(element.attr('class'));
13989
+ var toAdd = '';
13990
+ var toRemove = '';
13991
+ forEach(data, function(status, className) {
13992
+ var hasClass = !!existing[className];
13993
+ if (status !== hasClass) {
13994
+ if (status) {
13995
+ toAdd += (toAdd.length ? ' ' : '') + className;
13996
+ } else {
13997
+ toRemove += (toRemove.length ? ' ' : '') + className;
13998
+ }
13999
+ }
14000
+ });
14001
+
14002
+ forEach(element, function(elm) {
14003
+ toAdd && jqLiteAddClass(elm, toAdd);
14004
+ toRemove && jqLiteRemoveClass(elm, toRemove);
14005
+ });
14006
+ postDigestQueue.remove(element);
14007
+ }
14008
+ });
14009
+
14010
+ postDigestElements.length = 0;
14011
+ });
14012
+ }
14013
+ }];
14014
+ };
13838
14015
 
13839
14016
  /**
13840
14017
  * @ngdoc provider
@@ -13842,20 +14019,18 @@ var $animateMinErr = minErr('$animate');
13842
14019
  *
13843
14020
  * @description
13844
14021
  * Default implementation of $animate that doesn't perform any animations, instead just
13845
- * synchronously performs DOM
13846
- * updates and calls done() callbacks.
14022
+ * synchronously performs DOM updates and resolves the returned runner promise.
13847
14023
  *
13848
- * In order to enable animations the ngAnimate module has to be loaded.
14024
+ * In order to enable animations the `ngAnimate` module has to be loaded.
13849
14025
  *
13850
- * To see the functional implementation check out src/ngAnimate/animate.js
14026
+ * To see the functional implementation check out `src/ngAnimate/animate.js`.
13851
14027
  */
13852
14028
  var $AnimateProvider = ['$provide', function($provide) {
14029
+ var provider = this;
13853
14030
 
14031
+ this.$$registeredAnimations = [];
13854
14032
 
13855
- this.$$selectors = {};
13856
-
13857
-
13858
- /**
14033
+ /**
13859
14034
  * @ngdoc method
13860
14035
  * @name $animateProvider#register
13861
14036
  *
@@ -13864,33 +14039,43 @@ var $AnimateProvider = ['$provide', function($provide) {
13864
14039
  * animation object which contains callback functions for each event that is expected to be
13865
14040
  * animated.
13866
14041
  *
13867
- * * `eventFn`: `function(Element, doneFunction)` The element to animate, the `doneFunction`
13868
- * must be called once the element animation is complete. If a function is returned then the
13869
- * animation service will use this function to cancel the animation whenever a cancel event is
13870
- * triggered.
14042
+ * * `eventFn`: `function(element, ... , doneFunction, options)`
14043
+ * The element to animate, the `doneFunction` and the options fed into the animation. Depending
14044
+ * on the type of animation additional arguments will be injected into the animation function. The
14045
+ * list below explains the function signatures for the different animation methods:
14046
+ *
14047
+ * - setClass: function(element, addedClasses, removedClasses, doneFunction, options)
14048
+ * - addClass: function(element, addedClasses, doneFunction, options)
14049
+ * - removeClass: function(element, removedClasses, doneFunction, options)
14050
+ * - enter, leave, move: function(element, doneFunction, options)
14051
+ * - animate: function(element, fromStyles, toStyles, doneFunction, options)
13871
14052
  *
14053
+ * Make sure to trigger the `doneFunction` once the animation is fully complete.
13872
14054
  *
13873
14055
  * ```js
13874
14056
  * return {
13875
- * eventFn : function(element, done) {
13876
- * //code to run the animation
13877
- * //once complete, then run done()
13878
- * return function cancellationFunction() {
13879
- * //code to cancel the animation
13880
- * }
13881
- * }
13882
- * }
14057
+ * //enter, leave, move signature
14058
+ * eventFn : function(element, done, options) {
14059
+ * //code to run the animation
14060
+ * //once complete, then run done()
14061
+ * return function endFunction(wasCancelled) {
14062
+ * //code to cancel the animation
14063
+ * }
14064
+ * }
14065
+ * }
13883
14066
  * ```
13884
14067
  *
13885
- * @param {string} name The name of the animation.
14068
+ * @param {string} name The name of the animation (this is what the class-based CSS value will be compared to).
13886
14069
  * @param {Function} factory The factory function that will be executed to return the animation
13887
14070
  * object.
13888
14071
  */
13889
14072
  this.register = function(name, factory) {
14073
+ if (name && name.charAt(0) !== '.') {
14074
+ throw $animateMinErr('notcsel', "Expecting class selector starting with '.' got '{0}'.", name);
14075
+ }
14076
+
13890
14077
  var key = name + '-animation';
13891
- if (name && name.charAt(0) != '.') throw $animateMinErr('notcsel',
13892
- "Expecting class selector starting with '.' got '{0}'.", name);
13893
- this.$$selectors[name.substr(1)] = key;
14078
+ provider.$$registeredAnimations[name.substr(1)] = key;
13894
14079
  $provide.factory(key, factory);
13895
14080
  };
13896
14081
 
@@ -13901,8 +14086,8 @@ var $AnimateProvider = ['$provide', function($provide) {
13901
14086
  * @description
13902
14087
  * Sets and/or returns the CSS class regular expression that is checked when performing
13903
14088
  * an animation. Upon bootstrap the classNameFilter value is not set at all and will
13904
- * therefore enable $animate to attempt to perform an animation on any element.
13905
- * When setting the classNameFilter value, animations will only be performed on elements
14089
+ * therefore enable $animate to attempt to perform an animation on any element that is triggered.
14090
+ * When setting the `classNameFilter` value, animations will only be performed on elements
13906
14091
  * that successfully match the filter expression. This in turn can boost performance
13907
14092
  * for low-powered devices as well as applications containing a lot of structural operations.
13908
14093
  * @param {RegExp=} expression The className expression which will be checked against all animations
@@ -13915,98 +14100,48 @@ var $AnimateProvider = ['$provide', function($provide) {
13915
14100
  return this.$$classNameFilter;
13916
14101
  };
13917
14102
 
13918
- this.$get = ['$$q', '$$asyncCallback', '$rootScope', function($$q, $$asyncCallback, $rootScope) {
13919
-
13920
- var currentDefer;
13921
-
13922
- function runAnimationPostDigest(fn) {
13923
- var cancelFn, defer = $$q.defer();
13924
- defer.promise.$$cancelFn = function ngAnimateMaybeCancel() {
13925
- cancelFn && cancelFn();
13926
- };
13927
-
13928
- $rootScope.$$postDigest(function ngAnimatePostDigest() {
13929
- cancelFn = fn(function ngAnimateNotifyComplete() {
13930
- defer.resolve();
13931
- });
13932
- });
13933
-
13934
- return defer.promise;
13935
- }
13936
-
13937
- function resolveElementClasses(element, classes) {
13938
- var toAdd = [], toRemove = [];
13939
-
13940
- var hasClasses = createMap();
13941
- forEach((element.attr('class') || '').split(/\s+/), function(className) {
13942
- hasClasses[className] = true;
13943
- });
13944
-
13945
- forEach(classes, function(status, className) {
13946
- var hasClass = hasClasses[className];
13947
-
13948
- // If the most recent class manipulation (via $animate) was to remove the class, and the
13949
- // element currently has the class, the class is scheduled for removal. Otherwise, if
13950
- // the most recent class manipulation (via $animate) was to add the class, and the
13951
- // element does not currently have the class, the class is scheduled to be added.
13952
- if (status === false && hasClass) {
13953
- toRemove.push(className);
13954
- } else if (status === true && !hasClass) {
13955
- toAdd.push(className);
14103
+ this.$get = ['$$animateQueue', function($$animateQueue) {
14104
+ function domInsert(element, parentElement, afterElement) {
14105
+ // if for some reason the previous element was removed
14106
+ // from the dom sometime before this code runs then let's
14107
+ // just stick to using the parent element as the anchor
14108
+ if (afterElement) {
14109
+ var afterNode = extractElementNode(afterElement);
14110
+ if (afterNode && !afterNode.parentNode && !afterNode.previousElementSibling) {
14111
+ afterElement = null;
13956
14112
  }
13957
- });
13958
-
13959
- return (toAdd.length + toRemove.length) > 0 &&
13960
- [toAdd.length ? toAdd : null, toRemove.length ? toRemove : null];
13961
- }
13962
-
13963
- function cachedClassManipulation(cache, classes, op) {
13964
- for (var i=0, ii = classes.length; i < ii; ++i) {
13965
- var className = classes[i];
13966
- cache[className] = op;
13967
- }
13968
- }
13969
-
13970
- function asyncPromise() {
13971
- // only serve one instance of a promise in order to save CPU cycles
13972
- if (!currentDefer) {
13973
- currentDefer = $$q.defer();
13974
- $$asyncCallback(function() {
13975
- currentDefer.resolve();
13976
- currentDefer = null;
13977
- });
13978
- }
13979
- return currentDefer.promise;
13980
- }
13981
-
13982
- function applyStyles(element, options) {
13983
- if (angular.isObject(options)) {
13984
- var styles = extend(options.from || {}, options.to || {});
13985
- element.css(styles);
13986
14113
  }
14114
+ afterElement ? afterElement.after(element) : parentElement.prepend(element);
13987
14115
  }
13988
14116
 
13989
14117
  /**
13990
- *
13991
14118
  * @ngdoc service
13992
14119
  * @name $animate
13993
- * @description The $animate service provides rudimentary DOM manipulation functions to
13994
- * insert, remove and move elements within the DOM, as well as adding and removing classes.
13995
- * This service is the core service used by the ngAnimate $animator service which provides
13996
- * high-level animation hooks for CSS and JavaScript.
14120
+ * @description The $animate service exposes a series of DOM utility methods that provide support
14121
+ * for animation hooks. The default behavior is the application of DOM operations, however,
14122
+ * when an animation is detected (and animations are enabled), $animate will do the heavy lifting
14123
+ * to ensure that animation runs with the triggered DOM operation.
14124
+ *
14125
+ * By default $animate doesn't trigger an animations. This is because the `ngAnimate` module isn't
14126
+ * included and only when it is active then the animation hooks that `$animate` triggers will be
14127
+ * functional. Once active then all structural `ng-` directives will trigger animations as they perform
14128
+ * their DOM-related operations (enter, leave and move). Other directives such as `ngClass`,
14129
+ * `ngShow`, `ngHide` and `ngMessages` also provide support for animations.
13997
14130
  *
13998
- * $animate is available in the AngularJS core, however, the ngAnimate module must be included
13999
- * to enable full out animation support. Otherwise, $animate will only perform simple DOM
14000
- * manipulation operations.
14131
+ * It is recommended that the`$animate` service is always used when executing DOM-related procedures within directives.
14001
14132
  *
14002
- * To learn more about enabling animation support, click here to visit the {@link ngAnimate
14003
- * ngAnimate module page} as well as the {@link ngAnimate.$animate ngAnimate $animate service
14004
- * page}.
14133
+ * To learn more about enabling animation support, click here to visit the
14134
+ * {@link ngAnimate ngAnimate module page}.
14005
14135
  */
14006
14136
  return {
14007
- animate: function(element, from, to) {
14008
- applyStyles(element, { from: from, to: to });
14009
- return asyncPromise();
14137
+ // we don't call it directly since non-existant arguments may
14138
+ // be interpreted as null within the sub enabled function
14139
+ on: $$animateQueue.on,
14140
+ off: $$animateQueue.off,
14141
+ enabled: $$animateQueue.enabled,
14142
+
14143
+ cancel: function(runner) {
14144
+ runner.cancel && runner.end();
14010
14145
  },
14011
14146
 
14012
14147
  /**
@@ -14014,193 +14149,172 @@ var $AnimateProvider = ['$provide', function($provide) {
14014
14149
  * @ngdoc method
14015
14150
  * @name $animate#enter
14016
14151
  * @kind function
14017
- * @description Inserts the element into the DOM either after the `after` element or
14018
- * as the first child within the `parent` element. When the function is called a promise
14019
- * is returned that will be resolved at a later time.
14152
+ * @description Inserts the element into the DOM either after the `after` element (if provided) or
14153
+ * as the first child within the `parent` element and then triggers an animation.
14154
+ * A promise is returned that will be resolved during the next digest once the animation
14155
+ * has completed.
14156
+ *
14020
14157
  * @param {DOMElement} element the element which will be inserted into the DOM
14021
14158
  * @param {DOMElement} parent the parent element which will append the element as
14022
- * a child (if the after element is not present)
14023
- * @param {DOMElement} after the sibling element which will append the element
14024
- * after itself
14025
- * @param {object=} options an optional collection of styles that will be applied to the element.
14159
+ * a child (so long as the after element is not present)
14160
+ * @param {DOMElement=} after the sibling element after which the element will be appended
14161
+ * @param {object=} options an optional collection of options/styles that will be applied to the element
14162
+ *
14026
14163
  * @return {Promise} the animation callback promise
14027
14164
  */
14028
14165
  enter: function(element, parent, after, options) {
14029
- applyStyles(element, options);
14030
- after ? after.after(element)
14031
- : parent.prepend(element);
14032
- return asyncPromise();
14166
+ parent = parent || after.parent();
14167
+ domInsert(element, parent, after);
14168
+ return $$animateQueue.push(element, 'enter', options);
14033
14169
  },
14034
14170
 
14035
14171
  /**
14036
14172
  *
14037
14173
  * @ngdoc method
14038
- * @name $animate#leave
14174
+ * @name $animate#move
14039
14175
  * @kind function
14040
- * @description Removes the element from the DOM. When the function is called a promise
14041
- * is returned that will be resolved at a later time.
14042
- * @param {DOMElement} element the element which will be removed from the DOM
14043
- * @param {object=} options an optional collection of options that will be applied to the element.
14176
+ * @description Inserts (moves) the element into its new position in the DOM either after
14177
+ * the `after` element (if provided) or as the first child within the `parent` element
14178
+ * and then triggers an animation. A promise is returned that will be resolved
14179
+ * during the next digest once the animation has completed.
14180
+ *
14181
+ * @param {DOMElement} element the element which will be moved into the new DOM position
14182
+ * @param {DOMElement} parent the parent element which will append the element as
14183
+ * a child (so long as the after element is not present)
14184
+ * @param {DOMElement=} after the sibling element after which the element will be appended
14185
+ * @param {object=} options an optional collection of options/styles that will be applied to the element
14186
+ *
14044
14187
  * @return {Promise} the animation callback promise
14045
14188
  */
14046
- leave: function(element, options) {
14047
- applyStyles(element, options);
14048
- element.remove();
14049
- return asyncPromise();
14189
+ move: function(element, parent, after, options) {
14190
+ parent = parent || after.parent();
14191
+ domInsert(element, parent, after);
14192
+ return $$animateQueue.push(element, 'move', options);
14050
14193
  },
14051
14194
 
14052
14195
  /**
14053
- *
14054
14196
  * @ngdoc method
14055
- * @name $animate#move
14197
+ * @name $animate#leave
14056
14198
  * @kind function
14057
- * @description Moves the position of the provided element within the DOM to be placed
14058
- * either after the `after` element or inside of the `parent` element. When the function
14059
- * is called a promise is returned that will be resolved at a later time.
14199
+ * @description Triggers an animation and then removes the element from the DOM.
14200
+ * When the function is called a promise is returned that will be resolved during the next
14201
+ * digest once the animation has completed.
14202
+ *
14203
+ * @param {DOMElement} element the element which will be removed from the DOM
14204
+ * @param {object=} options an optional collection of options/styles that will be applied to the element
14060
14205
  *
14061
- * @param {DOMElement} element the element which will be moved around within the
14062
- * DOM
14063
- * @param {DOMElement} parent the parent element where the element will be
14064
- * inserted into (if the after element is not present)
14065
- * @param {DOMElement} after the sibling element where the element will be
14066
- * positioned next to
14067
- * @param {object=} options an optional collection of options that will be applied to the element.
14068
14206
  * @return {Promise} the animation callback promise
14069
14207
  */
14070
- move: function(element, parent, after, options) {
14071
- // Do not remove element before insert. Removing will cause data associated with the
14072
- // element to be dropped. Insert will implicitly do the remove.
14073
- return this.enter(element, parent, after, options);
14208
+ leave: function(element, options) {
14209
+ return $$animateQueue.push(element, 'leave', options, function() {
14210
+ element.remove();
14211
+ });
14074
14212
  },
14075
14213
 
14076
14214
  /**
14077
- *
14078
14215
  * @ngdoc method
14079
14216
  * @name $animate#addClass
14080
14217
  * @kind function
14081
- * @description Adds the provided className CSS class value to the provided element.
14082
- * When the function is called a promise is returned that will be resolved at a later time.
14083
- * @param {DOMElement} element the element which will have the className value
14084
- * added to it
14085
- * @param {string} className the CSS class which will be added to the element
14086
- * @param {object=} options an optional collection of options that will be applied to the element.
14218
+ *
14219
+ * @description Triggers an addClass animation surrounding the addition of the provided CSS class(es). Upon
14220
+ * execution, the addClass operation will only be handled after the next digest and it will not trigger an
14221
+ * animation if element already contains the CSS class or if the class is removed at a later step.
14222
+ * Note that class-based animations are treated differently compared to structural animations
14223
+ * (like enter, move and leave) since the CSS classes may be added/removed at different points
14224
+ * depending if CSS or JavaScript animations are used.
14225
+ *
14226
+ * @param {DOMElement} element the element which the CSS classes will be applied to
14227
+ * @param {string} className the CSS class(es) that will be added (multiple classes are separated via spaces)
14228
+ * @param {object=} options an optional collection of options/styles that will be applied to the element
14229
+ *
14087
14230
  * @return {Promise} the animation callback promise
14088
14231
  */
14089
14232
  addClass: function(element, className, options) {
14090
- return this.setClass(element, className, [], options);
14091
- },
14092
-
14093
- $$addClassImmediately: function(element, className, options) {
14094
- element = jqLite(element);
14095
- className = !isString(className)
14096
- ? (isArray(className) ? className.join(' ') : '')
14097
- : className;
14098
- forEach(element, function(element) {
14099
- jqLiteAddClass(element, className);
14100
- });
14101
- applyStyles(element, options);
14102
- return asyncPromise();
14233
+ options = options || {};
14234
+ options.addClass = mergeClasses(options.addclass, className);
14235
+ return $$animateQueue.push(element, 'addClass', options);
14103
14236
  },
14104
14237
 
14105
14238
  /**
14106
- *
14107
14239
  * @ngdoc method
14108
14240
  * @name $animate#removeClass
14109
14241
  * @kind function
14110
- * @description Removes the provided className CSS class value from the provided element.
14111
- * When the function is called a promise is returned that will be resolved at a later time.
14112
- * @param {DOMElement} element the element which will have the className value
14113
- * removed from it
14114
- * @param {string} className the CSS class which will be removed from the element
14115
- * @param {object=} options an optional collection of options that will be applied to the element.
14242
+ *
14243
+ * @description Triggers a removeClass animation surrounding the removal of the provided CSS class(es). Upon
14244
+ * execution, the removeClass operation will only be handled after the next digest and it will not trigger an
14245
+ * animation if element does not contain the CSS class or if the class is added at a later step.
14246
+ * Note that class-based animations are treated differently compared to structural animations
14247
+ * (like enter, move and leave) since the CSS classes may be added/removed at different points
14248
+ * depending if CSS or JavaScript animations are used.
14249
+ *
14250
+ * @param {DOMElement} element the element which the CSS classes will be applied to
14251
+ * @param {string} className the CSS class(es) that will be removed (multiple classes are separated via spaces)
14252
+ * @param {object=} options an optional collection of options/styles that will be applied to the element
14253
+ *
14116
14254
  * @return {Promise} the animation callback promise
14117
14255
  */
14118
14256
  removeClass: function(element, className, options) {
14119
- return this.setClass(element, [], className, options);
14120
- },
14121
-
14122
- $$removeClassImmediately: function(element, className, options) {
14123
- element = jqLite(element);
14124
- className = !isString(className)
14125
- ? (isArray(className) ? className.join(' ') : '')
14126
- : className;
14127
- forEach(element, function(element) {
14128
- jqLiteRemoveClass(element, className);
14129
- });
14130
- applyStyles(element, options);
14131
- return asyncPromise();
14257
+ options = options || {};
14258
+ options.removeClass = mergeClasses(options.removeClass, className);
14259
+ return $$animateQueue.push(element, 'removeClass', options);
14132
14260
  },
14133
14261
 
14134
14262
  /**
14135
- *
14136
14263
  * @ngdoc method
14137
14264
  * @name $animate#setClass
14138
14265
  * @kind function
14139
- * @description Adds and/or removes the given CSS classes to and from the element.
14140
- * When the function is called a promise is returned that will be resolved at a later time.
14141
- * @param {DOMElement} element the element which will have its CSS classes changed
14142
- * removed from it
14143
- * @param {string} add the CSS classes which will be added to the element
14144
- * @param {string} remove the CSS class which will be removed from the element
14145
- * @param {object=} options an optional collection of options that will be applied to the element.
14266
+ *
14267
+ * @description Performs both the addition and removal of a CSS classes on an element and (during the process)
14268
+ * triggers an animation surrounding the class addition/removal. Much like `$animate.addClass` and
14269
+ * `$animate.removeClass`, `setClass` will only evaluate the classes being added/removed once a digest has
14270
+ * passed. Note that class-based animations are treated differently compared to structural animations
14271
+ * (like enter, move and leave) since the CSS classes may be added/removed at different points
14272
+ * depending if CSS or JavaScript animations are used.
14273
+ *
14274
+ * @param {DOMElement} element the element which the CSS classes will be applied to
14275
+ * @param {string} add the CSS class(es) that will be added (multiple classes are separated via spaces)
14276
+ * @param {string} remove the CSS class(es) that will be removed (multiple classes are separated via spaces)
14277
+ * @param {object=} options an optional collection of options/styles that will be applied to the element
14278
+ *
14146
14279
  * @return {Promise} the animation callback promise
14147
14280
  */
14148
14281
  setClass: function(element, add, remove, options) {
14149
- var self = this;
14150
- var STORAGE_KEY = '$$animateClasses';
14151
- var createdCache = false;
14152
- element = jqLite(element);
14153
-
14154
- var cache = element.data(STORAGE_KEY);
14155
- if (!cache) {
14156
- cache = {
14157
- classes: {},
14158
- options: options
14159
- };
14160
- createdCache = true;
14161
- } else if (options && cache.options) {
14162
- cache.options = angular.extend(cache.options || {}, options);
14163
- }
14164
-
14165
- var classes = cache.classes;
14166
-
14167
- add = isArray(add) ? add : add.split(' ');
14168
- remove = isArray(remove) ? remove : remove.split(' ');
14169
- cachedClassManipulation(classes, add, true);
14170
- cachedClassManipulation(classes, remove, false);
14171
-
14172
- if (createdCache) {
14173
- cache.promise = runAnimationPostDigest(function(done) {
14174
- var cache = element.data(STORAGE_KEY);
14175
- element.removeData(STORAGE_KEY);
14176
-
14177
- // in the event that the element is removed before postDigest
14178
- // is run then the cache will be undefined and there will be
14179
- // no need anymore to add or remove and of the element classes
14180
- if (cache) {
14181
- var classes = resolveElementClasses(element, cache.classes);
14182
- if (classes) {
14183
- self.$$setClassImmediately(element, classes[0], classes[1], cache.options);
14184
- }
14185
- }
14186
-
14187
- done();
14188
- });
14189
- element.data(STORAGE_KEY, cache);
14190
- }
14191
-
14192
- return cache.promise;
14282
+ options = options || {};
14283
+ options.addClass = mergeClasses(options.addClass, add);
14284
+ options.removeClass = mergeClasses(options.removeClass, remove);
14285
+ return $$animateQueue.push(element, 'setClass', options);
14193
14286
  },
14194
14287
 
14195
- $$setClassImmediately: function(element, add, remove, options) {
14196
- add && this.$$addClassImmediately(element, add);
14197
- remove && this.$$removeClassImmediately(element, remove);
14198
- applyStyles(element, options);
14199
- return asyncPromise();
14200
- },
14288
+ /**
14289
+ * @ngdoc method
14290
+ * @name $animate#animate
14291
+ * @kind function
14292
+ *
14293
+ * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element.
14294
+ * If any detected CSS transition, keyframe or JavaScript matches the provided className value then the animation will take
14295
+ * on the provided styles. For example, if a transition animation is set for the given className then the provided from and
14296
+ * to styles will be applied alongside the given transition. If a JavaScript animation is detected then the provided styles
14297
+ * will be given in as function paramters into the `animate` method (or as apart of the `options` parameter).
14298
+ *
14299
+ * @param {DOMElement} element the element which the CSS styles will be applied to
14300
+ * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation.
14301
+ * @param {object} to the to (destination) CSS styles that will be applied to the element and across the animation.
14302
+ * @param {string=} className an optional CSS class that will be applied to the element for the duration of the animation. If
14303
+ * this value is left as empty then a CSS class of `ng-inline-animate` will be applied to the element.
14304
+ * (Note that if no animation is detected then this value will not be appplied to the element.)
14305
+ * @param {object=} options an optional collection of options/styles that will be applied to the element
14306
+ *
14307
+ * @return {Promise} the animation callback promise
14308
+ */
14309
+ animate: function(element, from, to, className, options) {
14310
+ options = options || {};
14311
+ options.from = options.from ? extend(options.from, from) : from;
14312
+ options.to = options.to ? extend(options.to, to) : to;
14201
14313
 
14202
- enabled: noop,
14203
- cancel: noop
14314
+ className = className || 'ng-inline-animate';
14315
+ options.tempClasses = mergeClasses(options.tempClasses, className);
14316
+ return $$animateQueue.push(element, 'animate', options);
14317
+ }
14204
14318
  };
14205
14319
  }];
14206
14320
  }];
@@ -14480,6 +14594,16 @@ function Browser(window, document, $log, $sniffer) {
14480
14594
  return callback;
14481
14595
  };
14482
14596
 
14597
+ /**
14598
+ * @private
14599
+ * Remove popstate and hashchange handler from window.
14600
+ *
14601
+ * NOTE: this api is intended for use only by $rootScope.
14602
+ */
14603
+ self.$$applicationDestroyed = function() {
14604
+ jqLite(window).off('hashchange popstate', cacheStateAndFireUrlChange);
14605
+ };
14606
+
14483
14607
  /**
14484
14608
  * Checks whether the url has changed outside of Angular.
14485
14609
  * Needs to be exported to be able to check for changes that have been done in sync,
@@ -15036,6 +15160,7 @@ function $TemplateCacheProvider() {
15036
15160
  * scope: false,
15037
15161
  * controller: function($scope, $element, $attrs, $transclude, otherInjectables) { ... },
15038
15162
  * controllerAs: 'stringIdentifier',
15163
+ * bindToController: false,
15039
15164
  * require: 'siblingDirectiveName', // or // ['^parentDirectiveName', '?optionalDirectiveName', '?^optionalParent'],
15040
15165
  * compile: function compile(tElement, tAttrs, transclude) {
15041
15166
  * return {
@@ -15355,9 +15480,15 @@ function $TemplateCacheProvider() {
15355
15480
  * * `iAttrs` - instance attributes - Normalized list of attributes declared on this element shared
15356
15481
  * between all directive linking functions.
15357
15482
  *
15358
- * * `controller` - a controller instance - A controller instance if at least one directive on the
15359
- * element defines a controller. The controller is shared among all the directives, which allows
15360
- * the directives to use the controllers as a communication channel.
15483
+ * * `controller` - the directive's required controller instance(s) - Instances are shared
15484
+ * among all directives, which allows the directives to use the controllers as a communication
15485
+ * channel. The exact value depends on the directive's `require` property:
15486
+ * * `string`: the controller instance
15487
+ * * `array`: array of controller instances
15488
+ * * no controller(s) required: `undefined`
15489
+ *
15490
+ * If a required controller cannot be found, and it is optional, the instance is `null`,
15491
+ * otherwise the {@link error:$compile:ctreq Missing Required Controller} error is thrown.
15361
15492
  *
15362
15493
  * * `transcludeFn` - A transclude linking function pre-bound to the correct transclusion scope.
15363
15494
  * This is the same as the `$transclude`
@@ -15750,6 +15881,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
15750
15881
  return bindings;
15751
15882
  }
15752
15883
 
15884
+ function assertValidDirectiveName(name) {
15885
+ var letter = name.charAt(0);
15886
+ if (!letter || letter !== lowercase(letter)) {
15887
+ throw $compileMinErr('baddir', "Directive name '{0}' is invalid. The first character must be a lowercase letter", name);
15888
+ }
15889
+ }
15890
+
15753
15891
  /**
15754
15892
  * @ngdoc method
15755
15893
  * @name $compileProvider#directive
@@ -15768,6 +15906,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
15768
15906
  this.directive = function registerDirective(name, directiveFactory) {
15769
15907
  assertNotHasOwnProperty(name, 'directive');
15770
15908
  if (isString(name)) {
15909
+ assertValidDirectiveName(name);
15771
15910
  assertArg(directiveFactory, 'directiveFactory');
15772
15911
  if (!hasDirectives.hasOwnProperty(name)) {
15773
15912
  hasDirectives[name] = [];
@@ -16938,13 +17077,15 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
16938
17077
  for (i in elementControllers) {
16939
17078
  controller = elementControllers[i];
16940
17079
  var controllerResult = controller();
16941
- if (controllerResult !== controller.instance &&
16942
- controller === controllerForBindings) {
16943
- // Remove and re-install bindToController bindings
16944
- thisLinkFn.$$destroyBindings();
16945
- thisLinkFn.$$destroyBindings =
16946
- initializeDirectiveBindings(scope, attrs, controllerResult,
16947
- bindings, scopeDirective);
17080
+ if (controllerResult !== controller.instance) {
17081
+ controller.instance = controllerResult;
17082
+ $element.data('$' + directive.name + 'Controller', controllerResult);
17083
+ if (controller === controllerForBindings) {
17084
+ // Remove and re-install bindToController bindings
17085
+ thisLinkFn.$$destroyBindings();
17086
+ thisLinkFn.$$destroyBindings =
17087
+ initializeDirectiveBindings(scope, attrs, controllerResult, bindings, scopeDirective);
17088
+ }
16948
17089
  }
16949
17090
  }
16950
17091
  }
@@ -17929,6 +18070,65 @@ var JSON_ENDS = {
17929
18070
  };
17930
18071
  var JSON_PROTECTION_PREFIX = /^\)\]\}',?\n/;
17931
18072
 
18073
+ function paramSerializerFactory(jQueryMode) {
18074
+
18075
+ function serializeValue(v) {
18076
+ if (isObject(v)) {
18077
+ return isDate(v) ? v.toISOString() : toJson(v);
18078
+ }
18079
+ return v;
18080
+ }
18081
+
18082
+ return function paramSerializer(params) {
18083
+ if (!params) return '';
18084
+ var parts = [];
18085
+ forEachSorted(params, function(value, key) {
18086
+ if (value === null || isUndefined(value)) return;
18087
+ if (isArray(value) || isObject(value) && jQueryMode) {
18088
+ forEach(value, function(v, k) {
18089
+ var keySuffix = jQueryMode ? '[' + (!isArray(value) ? k : '') + ']' : '';
18090
+ parts.push(encodeUriQuery(key + keySuffix) + '=' + encodeUriQuery(serializeValue(v)));
18091
+ });
18092
+ } else {
18093
+ parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(value)));
18094
+ }
18095
+ });
18096
+
18097
+ return parts.length > 0 ? parts.join('&') : '';
18098
+ };
18099
+ }
18100
+
18101
+ function $HttpParamSerializerProvider() {
18102
+ /**
18103
+ * @ngdoc service
18104
+ * @name $httpParamSerializer
18105
+ * @description
18106
+ *
18107
+ * Default $http params serializer that converts objects to a part of a request URL
18108
+ * according to the following rules:
18109
+ * * `{'foo': 'bar'}` results in `foo=bar`
18110
+ * * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object)
18111
+ * * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element)
18112
+ * * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D"` (stringified and encoded representation of an object)
18113
+ * */
18114
+ this.$get = function() {
18115
+ return paramSerializerFactory(false);
18116
+ };
18117
+ }
18118
+
18119
+ function $HttpParamSerializerJQLikeProvider() {
18120
+ /**
18121
+ * @ngdoc service
18122
+ * @name $httpParamSerializerJQLike
18123
+ * @description
18124
+ *
18125
+ * Alternative $http params serializer that follows jQuerys `param()` method {http://api.jquery.com/jquery.param/} logic.
18126
+ * */
18127
+ this.$get = function() {
18128
+ return paramSerializerFactory(true);
18129
+ };
18130
+ }
18131
+
17932
18132
  function defaultHttpResponseTransform(data, headers) {
17933
18133
  if (isString(data)) {
17934
18134
  // Strip json vulnerability protection prefix and trim whitespace
@@ -18073,6 +18273,11 @@ function $HttpProvider() {
18073
18273
  * - **`defaults.headers.put`**
18074
18274
  * - **`defaults.headers.patch`**
18075
18275
  *
18276
+ * - **`defaults.paramSerializer`** - {string|function(Object<string,string>):string} - A function used to prepare string representation
18277
+ * of request parameters (specified as an object).
18278
+ * Is specified as string, it is interpreted as function registered in with the {$injector}.
18279
+ * Defaults to {$httpParamSerializer}.
18280
+ *
18076
18281
  **/
18077
18282
  var defaults = this.defaults = {
18078
18283
  // transform incoming response data
@@ -18094,7 +18299,9 @@ function $HttpProvider() {
18094
18299
  },
18095
18300
 
18096
18301
  xsrfCookieName: 'XSRF-TOKEN',
18097
- xsrfHeaderName: 'X-XSRF-TOKEN'
18302
+ xsrfHeaderName: 'X-XSRF-TOKEN',
18303
+
18304
+ paramSerializer: '$httpParamSerializer'
18098
18305
  };
18099
18306
 
18100
18307
  var useApplyAsync = false;
@@ -18108,7 +18315,7 @@ function $HttpProvider() {
18108
18315
  * significant performance improvement for bigger applications that make many HTTP requests
18109
18316
  * concurrently (common during application bootstrap).
18110
18317
  *
18111
- * Defaults to false. If no value is specifed, returns the current configured value.
18318
+ * Defaults to false. If no value is specified, returns the current configured value.
18112
18319
  *
18113
18320
  * @param {boolean=} value If true, when requests are loaded, they will schedule a deferred
18114
18321
  * "apply" on the next tick, giving time for subsequent requests in a roughly ~10ms window
@@ -18145,6 +18352,12 @@ function $HttpProvider() {
18145
18352
 
18146
18353
  var defaultCache = $cacheFactory('$http');
18147
18354
 
18355
+ /**
18356
+ * Make sure that default param serializer is exposed as a function
18357
+ */
18358
+ defaults.paramSerializer = isString(defaults.paramSerializer) ?
18359
+ $injector.get(defaults.paramSerializer) : defaults.paramSerializer;
18360
+
18148
18361
  /**
18149
18362
  * Interceptors stored in reverse order. Inner interceptors before outer interceptors.
18150
18363
  * The reversal is needed so that we can build up the interception chain around the
@@ -18297,7 +18510,7 @@ function $HttpProvider() {
18297
18510
  * headers: {
18298
18511
  * 'Content-Type': undefined
18299
18512
  * },
18300
- * data: { test: 'test' },
18513
+ * data: { test: 'test' }
18301
18514
  * }
18302
18515
  *
18303
18516
  * $http(req).success(function(){...}).error(function(){...});
@@ -18556,6 +18769,9 @@ function $HttpProvider() {
18556
18769
  * response body, headers and status and returns its transformed (typically deserialized) version.
18557
18770
  * See {@link ng.$http#overriding-the-default-transformations-per-request
18558
18771
  * Overriding the Default Transformations}
18772
+ * - **paramSerializer** - {string|function(Object<string,string>):string} - A function used to prepare string representation
18773
+ * of request parameters (specified as an object).
18774
+ * Is specified as string, it is interpreted as function registered in with the {$injector}.
18559
18775
  * - **cache** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the
18560
18776
  * GET request, otherwise if a cache instance built with
18561
18777
  * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for
@@ -18684,11 +18900,14 @@ function $HttpProvider() {
18684
18900
  var config = extend({
18685
18901
  method: 'get',
18686
18902
  transformRequest: defaults.transformRequest,
18687
- transformResponse: defaults.transformResponse
18903
+ transformResponse: defaults.transformResponse,
18904
+ paramSerializer: defaults.paramSerializer
18688
18905
  }, requestConfig);
18689
18906
 
18690
18907
  config.headers = mergeHeaders(requestConfig);
18691
18908
  config.method = uppercase(config.method);
18909
+ config.paramSerializer = isString(config.paramSerializer) ?
18910
+ $injector.get(config.paramSerializer) : config.paramSerializer;
18692
18911
 
18693
18912
  var serverRequest = function(config) {
18694
18913
  var headers = config.headers;
@@ -18732,6 +18951,8 @@ function $HttpProvider() {
18732
18951
  }
18733
18952
 
18734
18953
  promise.success = function(fn) {
18954
+ assertArgFn(fn, 'fn');
18955
+
18735
18956
  promise.then(function(response) {
18736
18957
  fn(response.data, response.status, response.headers, config);
18737
18958
  });
@@ -18739,6 +18960,8 @@ function $HttpProvider() {
18739
18960
  };
18740
18961
 
18741
18962
  promise.error = function(fn) {
18963
+ assertArgFn(fn, 'fn');
18964
+
18742
18965
  promise.then(null, function(response) {
18743
18966
  fn(response.data, response.status, response.headers, config);
18744
18967
  });
@@ -18948,7 +19171,7 @@ function $HttpProvider() {
18948
19171
  cache,
18949
19172
  cachedResp,
18950
19173
  reqHeaders = config.headers,
18951
- url = buildUrl(config.url, config.params);
19174
+ url = buildUrl(config.url, config.paramSerializer(config.params));
18952
19175
 
18953
19176
  $http.pendingRequests.push(config);
18954
19177
  promise.then(removePendingReq, removePendingReq);
@@ -19055,27 +19278,9 @@ function $HttpProvider() {
19055
19278
  }
19056
19279
 
19057
19280
 
19058
- function buildUrl(url, params) {
19059
- if (!params) return url;
19060
- var parts = [];
19061
- forEachSorted(params, function(value, key) {
19062
- if (value === null || isUndefined(value)) return;
19063
- if (!isArray(value)) value = [value];
19064
-
19065
- forEach(value, function(v) {
19066
- if (isObject(v)) {
19067
- if (isDate(v)) {
19068
- v = v.toISOString();
19069
- } else {
19070
- v = toJson(v);
19071
- }
19072
- }
19073
- parts.push(encodeUriQuery(key) + '=' +
19074
- encodeUriQuery(v));
19075
- });
19076
- });
19077
- if (parts.length > 0) {
19078
- url += ((url.indexOf('?') == -1) ? '?' : '&') + parts.join('&');
19281
+ function buildUrl(url, serializedParams) {
19282
+ if (serializedParams.length > 0) {
19283
+ url += ((url.indexOf('?') == -1) ? '?' : '&') + serializedParams;
19079
19284
  }
19080
19285
  return url;
19081
19286
  }
@@ -19219,7 +19424,7 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
19219
19424
  };
19220
19425
 
19221
19426
  function jsonpReq(url, callbackId, done) {
19222
- // we can't use jQuery/jqLite here because jQuery does crazy shit with script elements, e.g.:
19427
+ // we can't use jQuery/jqLite here because jQuery does crazy stuff with script elements, e.g.:
19223
19428
  // - fetches local scripts via XHR and evals them
19224
19429
  // - adds and immediately removes script elements from the document
19225
19430
  var script = rawDocument.createElement('script'), callback = null;
@@ -19255,7 +19460,17 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
19255
19460
  }
19256
19461
  }
19257
19462
 
19258
- var $interpolateMinErr = minErr('$interpolate');
19463
+ var $interpolateMinErr = angular.$interpolateMinErr = minErr('$interpolate');
19464
+ $interpolateMinErr.throwNoconcat = function(text) {
19465
+ throw $interpolateMinErr('noconcat',
19466
+ "Error while interpolating: {0}\nStrict Contextual Escaping disallows " +
19467
+ "interpolations that concatenate multiple expressions when a trusted value is " +
19468
+ "required. See http://docs.angularjs.org/api/ng.$sce", text);
19469
+ };
19470
+
19471
+ $interpolateMinErr.interr = function(text, err) {
19472
+ return $interpolateMinErr('interr', "Can't interpolate: {0}\n{1}", text, err.toString());
19473
+ };
19259
19474
 
19260
19475
  /**
19261
19476
  * @ngdoc provider
@@ -19499,10 +19714,7 @@ function $InterpolateProvider() {
19499
19714
  // make it obvious that you bound the value to some user controlled value. This helps reduce
19500
19715
  // the load when auditing for XSS issues.
19501
19716
  if (trustedContext && concat.length > 1) {
19502
- throw $interpolateMinErr('noconcat',
19503
- "Error while interpolating: {0}\nStrict Contextual Escaping disallows " +
19504
- "interpolations that concatenate multiple expressions when a trusted value is " +
19505
- "required. See http://docs.angularjs.org/api/ng.$sce", text);
19717
+ $interpolateMinErr.throwNoconcat(text);
19506
19718
  }
19507
19719
 
19508
19720
  if (!mustHaveExpression || expressions.length) {
@@ -19532,9 +19744,7 @@ function $InterpolateProvider() {
19532
19744
 
19533
19745
  return compute(values);
19534
19746
  } catch (err) {
19535
- var newErr = $interpolateMinErr('interr', "Can't interpolate: {0}\n{1}", text,
19536
- err.toString());
19537
- $exceptionHandler(newErr);
19747
+ $exceptionHandler($interpolateMinErr.interr(text, err));
19538
19748
  }
19539
19749
 
19540
19750
  }, {
@@ -19559,9 +19769,7 @@ function $InterpolateProvider() {
19559
19769
  value = getValue(value);
19560
19770
  return allOrNothing && !isDefined(value) ? value : stringify(value);
19561
19771
  } catch (err) {
19562
- var newErr = $interpolateMinErr('interr', "Can't interpolate: {0}\n{1}", text,
19563
- err.toString());
19564
- $exceptionHandler(newErr);
19772
+ $exceptionHandler($interpolateMinErr.interr(text, err));
19565
19773
  }
19566
19774
  }
19567
19775
  }
@@ -21785,7 +21993,7 @@ ASTCompiler.prototype = {
21785
21993
  self.state.computing = fnKey;
21786
21994
  var intoId = self.nextId();
21787
21995
  self.recurse(watch, intoId);
21788
- self.return(intoId);
21996
+ self.return_(intoId);
21789
21997
  self.state.inputs.push(fnKey);
21790
21998
  watch.watchId = key;
21791
21999
  });
@@ -21872,7 +22080,7 @@ ASTCompiler.prototype = {
21872
22080
  recursionFn = recursionFn || noop;
21873
22081
  if (!skipWatchIdCheck && isDefined(ast.watchId)) {
21874
22082
  intoId = intoId || this.nextId();
21875
- this.if('i',
22083
+ this.if_('i',
21876
22084
  this.lazyAssign(intoId, this.computedMember('i', ast.watchId)),
21877
22085
  this.lazyRecurse(ast, intoId, nameId, recursionFn, create, true)
21878
22086
  );
@@ -21885,7 +22093,7 @@ ASTCompiler.prototype = {
21885
22093
  if (pos !== ast.body.length - 1) {
21886
22094
  self.current().body.push(right, ';');
21887
22095
  } else {
21888
- self.return(right);
22096
+ self.return_(right);
21889
22097
  }
21890
22098
  });
21891
22099
  break;
@@ -21916,13 +22124,13 @@ ASTCompiler.prototype = {
21916
22124
  case AST.LogicalExpression:
21917
22125
  intoId = intoId || this.nextId();
21918
22126
  self.recurse(ast.left, intoId);
21919
- self.if(ast.operator === '&&' ? intoId : self.not(intoId), self.lazyRecurse(ast.right, intoId));
22127
+ self.if_(ast.operator === '&&' ? intoId : self.not(intoId), self.lazyRecurse(ast.right, intoId));
21920
22128
  recursionFn(intoId);
21921
22129
  break;
21922
22130
  case AST.ConditionalExpression:
21923
22131
  intoId = intoId || this.nextId();
21924
22132
  self.recurse(ast.test, intoId);
21925
- self.if(intoId, self.lazyRecurse(ast.alternate, intoId), self.lazyRecurse(ast.consequent, intoId));
22133
+ self.if_(intoId, self.lazyRecurse(ast.alternate, intoId), self.lazyRecurse(ast.consequent, intoId));
21926
22134
  recursionFn(intoId);
21927
22135
  break;
21928
22136
  case AST.Identifier:
@@ -21933,11 +22141,11 @@ ASTCompiler.prototype = {
21933
22141
  nameId.name = ast.name;
21934
22142
  }
21935
22143
  ensureSafeMemberName(ast.name);
21936
- self.if(self.stage === 'inputs' || self.not(self.getHasOwnProperty('l', ast.name)),
22144
+ self.if_(self.stage === 'inputs' || self.not(self.getHasOwnProperty('l', ast.name)),
21937
22145
  function() {
21938
- self.if(self.stage === 'inputs' || 's', function() {
22146
+ self.if_(self.stage === 'inputs' || 's', function() {
21939
22147
  if (create && create !== 1) {
21940
- self.if(
22148
+ self.if_(
21941
22149
  self.not(self.nonComputedMember('s', ast.name)),
21942
22150
  self.lazyAssign(self.nonComputedMember('s', ast.name), '{}'));
21943
22151
  }
@@ -21954,13 +22162,13 @@ ASTCompiler.prototype = {
21954
22162
  left = nameId && (nameId.context = this.nextId()) || this.nextId();
21955
22163
  intoId = intoId || this.nextId();
21956
22164
  self.recurse(ast.object, left, undefined, function() {
21957
- self.if(self.notNull(left), function() {
22165
+ self.if_(self.notNull(left), function() {
21958
22166
  if (ast.computed) {
21959
22167
  right = self.nextId();
21960
22168
  self.recurse(ast.property, right);
21961
22169
  self.addEnsureSafeMemberName(right);
21962
22170
  if (create && create !== 1) {
21963
- self.if(self.not(self.computedMember(left, right)), self.lazyAssign(self.computedMember(left, right), '{}'));
22171
+ self.if_(self.not(self.computedMember(left, right)), self.lazyAssign(self.computedMember(left, right), '{}'));
21964
22172
  }
21965
22173
  expression = self.ensureSafeObject(self.computedMember(left, right));
21966
22174
  self.assign(intoId, expression);
@@ -21971,7 +22179,7 @@ ASTCompiler.prototype = {
21971
22179
  } else {
21972
22180
  ensureSafeMemberName(ast.property.name);
21973
22181
  if (create && create !== 1) {
21974
- self.if(self.not(self.nonComputedMember(left, ast.property.name)), self.lazyAssign(self.nonComputedMember(left, ast.property.name), '{}'));
22182
+ self.if_(self.not(self.nonComputedMember(left, ast.property.name)), self.lazyAssign(self.nonComputedMember(left, ast.property.name), '{}'));
21975
22183
  }
21976
22184
  expression = self.nonComputedMember(left, ast.property.name);
21977
22185
  if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.property.name)) {
@@ -22005,7 +22213,7 @@ ASTCompiler.prototype = {
22005
22213
  left = {};
22006
22214
  args = [];
22007
22215
  self.recurse(ast.callee, right, left, function() {
22008
- self.if(self.notNull(right), function() {
22216
+ self.if_(self.notNull(right), function() {
22009
22217
  self.addEnsureSafeFunction(right);
22010
22218
  forEach(ast.arguments, function(expr) {
22011
22219
  self.recurse(expr, self.nextId(), undefined, function(argument) {
@@ -22034,7 +22242,7 @@ ASTCompiler.prototype = {
22034
22242
  throw $parseMinErr('lval', 'Trying to assing a value to a non l-value');
22035
22243
  }
22036
22244
  this.recurse(ast.left, undefined, left, function() {
22037
- self.if(self.notNull(left.context), function() {
22245
+ self.if_(self.notNull(left.context), function() {
22038
22246
  self.recurse(ast.right, right);
22039
22247
  self.addEnsureSafeObject(self.member(left.context, left.name, left.computed));
22040
22248
  expression = self.member(left.context, left.name, left.computed) + ast.operator + right;
@@ -22109,11 +22317,11 @@ ASTCompiler.prototype = {
22109
22317
  return 'plus(' + left + ',' + right + ')';
22110
22318
  },
22111
22319
 
22112
- 'return': function(id) {
22320
+ return_: function(id) {
22113
22321
  this.current().body.push('return ', id, ';');
22114
22322
  },
22115
22323
 
22116
- 'if': function(test, alternate, consequent) {
22324
+ if_: function(test, alternate, consequent) {
22117
22325
  if (test === true) {
22118
22326
  alternate();
22119
22327
  } else {
@@ -24376,13 +24584,17 @@ function $RootScopeProvider() {
24376
24584
  * clean up DOM bindings before an element is removed from the DOM.
24377
24585
  */
24378
24586
  $destroy: function() {
24379
- // we can't destroy the root scope or a scope that has been already destroyed
24587
+ // We can't destroy a scope that has been already destroyed.
24380
24588
  if (this.$$destroyed) return;
24381
24589
  var parent = this.$parent;
24382
24590
 
24383
24591
  this.$broadcast('$destroy');
24384
24592
  this.$$destroyed = true;
24385
- if (this === $rootScope) return;
24593
+
24594
+ if (this === $rootScope) {
24595
+ //Remove handlers attached to window when $rootScope is removed
24596
+ $browser.$$applicationDestroyed();
24597
+ }
24386
24598
 
24387
24599
  incrementWatchersCount(this, -this.$$watchersCount);
24388
24600
  for (var eventName in this.$$listenerCount) {
@@ -24391,8 +24603,8 @@ function $RootScopeProvider() {
24391
24603
 
24392
24604
  // sever all the references to parent scopes (after this cleanup, the current scope should
24393
24605
  // not be retained by any of our references and should be eligible for garbage collection)
24394
- if (parent.$$childHead == this) parent.$$childHead = this.$$nextSibling;
24395
- if (parent.$$childTail == this) parent.$$childTail = this.$$prevSibling;
24606
+ if (parent && parent.$$childHead == this) parent.$$childHead = this.$$nextSibling;
24607
+ if (parent && parent.$$childTail == this) parent.$$childTail = this.$$prevSibling;
24396
24608
  if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling;
24397
24609
  if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling;
24398
24610
 
@@ -26496,7 +26708,7 @@ function $WindowProvider() {
26496
26708
  * @return {Object} a key/value map of the current cookies
26497
26709
  */
26498
26710
  function $$CookieReader($document) {
26499
- var rawDocument = $document[0];
26711
+ var rawDocument = $document[0] || {};
26500
26712
  var lastCookies = {};
26501
26713
  var lastCookieString = '';
26502
26714
 
@@ -26510,9 +26722,10 @@ function $$CookieReader($document) {
26510
26722
 
26511
26723
  return function() {
26512
26724
  var cookieArray, cookie, i, index, name;
26725
+ var currentCookieString = rawDocument.cookie || '';
26513
26726
 
26514
- if (rawDocument.cookie !== lastCookieString) {
26515
- lastCookieString = rawDocument.cookie;
26727
+ if (currentCookieString !== lastCookieString) {
26728
+ lastCookieString = currentCookieString;
26516
26729
  cookieArray = lastCookieString.split('; ');
26517
26730
  lastCookies = {};
26518
26731
 
@@ -26560,6 +26773,13 @@ function $$CookieReaderProvider() {
26560
26773
  * Dependency Injected. To achieve this a filter definition consists of a factory function which is
26561
26774
  * annotated with dependencies and is responsible for creating a filter function.
26562
26775
  *
26776
+ * <div class="alert alert-warning">
26777
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`.
26778
+ * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace
26779
+ * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores
26780
+ * (`myapp_subsection_filterx`).
26781
+ * </div>
26782
+ *
26563
26783
  * ```js
26564
26784
  * // Filter registration
26565
26785
  * function MyModule($provide, $filterProvider) {
@@ -26641,6 +26861,13 @@ function $FilterProvider($provide) {
26641
26861
  * @name $filterProvider#register
26642
26862
  * @param {string|Object} name Name of the filter function, or an object map of filters where
26643
26863
  * the keys are the filter names and the values are the filter factories.
26864
+ *
26865
+ * <div class="alert alert-warning">
26866
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`.
26867
+ * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace
26868
+ * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores
26869
+ * (`myapp_subsection_filterx`).
26870
+ * </div>
26644
26871
  * @returns {Object} Registered filter instance, or if a map of filters was provided then a map
26645
26872
  * of the registered filter instances.
26646
26873
  */
@@ -26823,14 +27050,16 @@ function filterFilter() {
26823
27050
  }
26824
27051
  }
26825
27052
 
27053
+ var expressionType = getTypeForFilter(expression);
26826
27054
  var predicateFn;
26827
27055
  var matchAgainstAnyProp;
26828
27056
 
26829
- switch (typeof expression) {
27057
+ switch (expressionType) {
26830
27058
  case 'function':
26831
27059
  predicateFn = expression;
26832
27060
  break;
26833
27061
  case 'boolean':
27062
+ case 'null':
26834
27063
  case 'number':
26835
27064
  case 'string':
26836
27065
  matchAgainstAnyProp = true;
@@ -26860,6 +27089,14 @@ function createPredicateFn(expression, comparator, matchAgainstAnyProp) {
26860
27089
  comparator = equals;
26861
27090
  } else if (!isFunction(comparator)) {
26862
27091
  comparator = function(actual, expected) {
27092
+ if (isUndefined(actual)) {
27093
+ // No substring matching against `undefined`
27094
+ return false;
27095
+ }
27096
+ if ((actual === null) || (expected === null)) {
27097
+ // No substring matching against `null`; only match against `null`
27098
+ return actual === expected;
27099
+ }
26863
27100
  if (isObject(expected) || (isObject(actual) && !hasCustomToString(actual))) {
26864
27101
  // Should not compare primitives against objects, unless they have custom `toString` method
26865
27102
  return false;
@@ -26882,8 +27119,8 @@ function createPredicateFn(expression, comparator, matchAgainstAnyProp) {
26882
27119
  }
26883
27120
 
26884
27121
  function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatchWholeObject) {
26885
- var actualType = (actual !== null) ? typeof actual : 'null';
26886
- var expectedType = (expected !== null) ? typeof expected : 'null';
27122
+ var actualType = getTypeForFilter(actual);
27123
+ var expectedType = getTypeForFilter(expected);
26887
27124
 
26888
27125
  if ((expectedType === 'string') && (expected.charAt(0) === '!')) {
26889
27126
  return !deepCompare(actual, expected.substring(1), comparator, matchAgainstAnyProp);
@@ -26930,6 +27167,11 @@ function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatc
26930
27167
  }
26931
27168
  }
26932
27169
 
27170
+ // Used for easily differentiating between `null` and actual `object`
27171
+ function getTypeForFilter(val) {
27172
+ return (val === null) ? 'null' : typeof val;
27173
+ }
27174
+
26933
27175
  /**
26934
27176
  * @ngdoc filter
26935
27177
  * @name currency
@@ -27641,7 +27883,7 @@ function limitToFilter() {
27641
27883
  * Can be one of:
27642
27884
  *
27643
27885
  * - `function`: Getter function. The result of this function will be sorted using the
27644
- * `<`, `=`, `>` operator.
27886
+ * `<`, `===`, `>` operator.
27645
27887
  * - `string`: An Angular expression. The result of this expression is used to compare elements
27646
27888
  * (for example `name` to sort by a property called `name` or `name.substr(0, 3)` to sort by
27647
27889
  * 3 first characters of a property called `name`). The result of a constant expression
@@ -29456,7 +29698,11 @@ var inputType = {
29456
29698
  * Text input with number validation and transformation. Sets the `number` validation
29457
29699
  * error if not a valid number.
29458
29700
  *
29459
- * The model must always be a number, otherwise Angular will throw an error.
29701
+ * <div class="alert alert-warning">
29702
+ * The model must always be of type `number` otherwise Angular will throw an error.
29703
+ * Be aware that a string containing a number is not enough. See the {@link ngModel:numfmt}
29704
+ * error docs for more information and an example of how to convert your model if necessary.
29705
+ * </div>
29460
29706
  *
29461
29707
  * @param {string} ngModel Assignable angular expression to data-bind to.
29462
29708
  * @param {string=} name Property name of the form under which the control is published.
@@ -30869,12 +31115,15 @@ function classDirective(name, selector) {
30869
31115
  }
30870
31116
 
30871
31117
  function arrayClasses(classVal) {
31118
+ var classes = [];
30872
31119
  if (isArray(classVal)) {
30873
- return classVal.join(' ').split(' ');
31120
+ forEach(classVal, function(v) {
31121
+ classes = classes.concat(arrayClasses(v));
31122
+ });
31123
+ return classes;
30874
31124
  } else if (isString(classVal)) {
30875
31125
  return classVal.split(' ');
30876
31126
  } else if (isObject(classVal)) {
30877
- var classes = [];
30878
31127
  forEach(classVal, function(v, k) {
30879
31128
  if (v) {
30880
31129
  classes = classes.concat(k.split(' '));
@@ -30902,16 +31151,18 @@ function classDirective(name, selector) {
30902
31151
  * 1. If the expression evaluates to a string, the string should be one or more space-delimited class
30903
31152
  * names.
30904
31153
  *
30905
- * 2. If the expression evaluates to an array, each element of the array should be a string that is
30906
- * one or more space-delimited class names.
30907
- *
30908
- * 3. If the expression evaluates to an object, then for each key-value pair of the
31154
+ * 2. If the expression evaluates to an object, then for each key-value pair of the
30909
31155
  * object with a truthy value the corresponding key is used as a class name.
30910
31156
  *
31157
+ * 3. If the expression evaluates to an array, each element of the array should either be a string as in
31158
+ * type 1 or an object as in type 2. This means that you can mix strings and objects together in an array
31159
+ * to give you more control over what CSS classes appear. See the code below for an example of this.
31160
+ *
31161
+ *
30911
31162
  * The directive won't add duplicate classes if a particular class was already set.
30912
31163
  *
30913
- * When the expression changes, the previously added classes are removed and only then the
30914
- * new classes are added.
31164
+ * When the expression changes, the previously added classes are removed and only then are the
31165
+ * new classes added.
30915
31166
  *
30916
31167
  * @animations
30917
31168
  * **add** - happens just before the class is applied to the elements
@@ -30940,10 +31191,14 @@ function classDirective(name, selector) {
30940
31191
  <input ng-model="style1" placeholder="Type: bold, strike or red"><br>
30941
31192
  <input ng-model="style2" placeholder="Type: bold, strike or red"><br>
30942
31193
  <input ng-model="style3" placeholder="Type: bold, strike or red"><br>
31194
+ <hr>
31195
+ <p ng-class="[style4, {orange: warning}]">Using Array and Map Syntax</p>
31196
+ <input ng-model="style4" placeholder="Type: bold, strike"><br>
31197
+ <input type="checkbox" ng-model="warning"> warning (apply "orange" class)
30943
31198
  </file>
30944
31199
  <file name="style.css">
30945
31200
  .strike {
30946
- text-decoration: line-through;
31201
+ text-decoration: line-through;
30947
31202
  }
30948
31203
  .bold {
30949
31204
  font-weight: bold;
@@ -30951,6 +31206,9 @@ function classDirective(name, selector) {
30951
31206
  .red {
30952
31207
  color: red;
30953
31208
  }
31209
+ .orange {
31210
+ color: orange;
31211
+ }
30954
31212
  </file>
30955
31213
  <file name="protractor.js" type="protractor">
30956
31214
  var ps = element.all(by.css('p'));
@@ -30975,11 +31233,18 @@ function classDirective(name, selector) {
30975
31233
  });
30976
31234
 
30977
31235
  it('array example should have 3 classes', function() {
30978
- expect(ps.last().getAttribute('class')).toBe('');
31236
+ expect(ps.get(2).getAttribute('class')).toBe('');
30979
31237
  element(by.model('style1')).sendKeys('bold');
30980
31238
  element(by.model('style2')).sendKeys('strike');
30981
31239
  element(by.model('style3')).sendKeys('red');
30982
- expect(ps.last().getAttribute('class')).toBe('bold strike red');
31240
+ expect(ps.get(2).getAttribute('class')).toBe('bold strike red');
31241
+ });
31242
+
31243
+ it('array with map example should have 2 classes', function() {
31244
+ expect(ps.last().getAttribute('class')).toBe('');
31245
+ element(by.model('style4')).sendKeys('bold');
31246
+ element(by.model('warning')).click();
31247
+ expect(ps.last().getAttribute('class')).toBe('bold orange');
30983
31248
  });
30984
31249
  </file>
30985
31250
  </example>
@@ -31029,8 +31294,8 @@ function classDirective(name, selector) {
31029
31294
  The ngClass directive still supports CSS3 Transitions/Animations even if they do not follow the ngAnimate CSS naming structure.
31030
31295
  Upon animation ngAnimate will apply supplementary CSS classes to track the start and end of an animation, but this will not hinder
31031
31296
  any pre-existing CSS transitions already on the element. To get an idea of what happens during a class-based animation, be sure
31032
- to view the step by step details of {@link ng.$animate#addClass $animate.addClass} and
31033
- {@link ng.$animate#removeClass $animate.removeClass}.
31297
+ to view the step by step details of {@link $animate#addClass $animate.addClass} and
31298
+ {@link $animate#removeClass $animate.removeClass}.
31034
31299
  */
31035
31300
  var ngClassDirective = classDirective('', true);
31036
31301
 
@@ -33506,7 +33771,10 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
33506
33771
 
33507
33772
  // if scope model value and ngModel value are out of sync
33508
33773
  // TODO(perf): why not move this to the action fn?
33509
- if (modelValue !== ctrl.$modelValue) {
33774
+ if (modelValue !== ctrl.$modelValue &&
33775
+ // checks for NaN is needed to allow setting the model to NaN when there's an asyncValidator
33776
+ (ctrl.$modelValue === ctrl.$modelValue || modelValue === modelValue)
33777
+ ) {
33510
33778
  ctrl.$modelValue = ctrl.$$rawModelValue = modelValue;
33511
33779
  parserValid = undefined;
33512
33780
 
@@ -34097,8 +34365,9 @@ var ngOptionsMinErr = minErr('ngOptions');
34097
34365
  * option. See example below for demonstration.
34098
34366
  *
34099
34367
  * <div class="alert alert-warning">
34100
- * **Note:** `ngModel` compares by reference, not value. This is important when binding to an
34101
- * array of objects. See an example [in this jsfiddle](http://jsfiddle.net/qWzTb/).
34368
+ * **Note:** By default, `ngModel` compares by reference, not value. This is important when binding to an
34369
+ * array of objects. See an example [in this jsfiddle](http://jsfiddle.net/qWzTb/). When using `track by`
34370
+ * in an `ngOptions` expression, however, deep equality checks will be performed.
34102
34371
  * </div>
34103
34372
  *
34104
34373
  * ## `select` **`as`**
@@ -34340,6 +34609,7 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
34340
34609
  }
34341
34610
 
34342
34611
  return {
34612
+ trackBy: trackBy,
34343
34613
  getWatchables: $parse(valuesFn, function(values) {
34344
34614
  // Create a collection of things that we would like to watch (watchedArray)
34345
34615
  // so that they can all be watched using a single $watchCollection
@@ -34565,8 +34835,9 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
34565
34835
 
34566
34836
  // We also need to watch to see if the internals of the model changes, since
34567
34837
  // ngModel only watches for object identity change
34568
- scope.$watch(attr.ngModel, function() { ngModelCtrl.$render(); }, true);
34569
-
34838
+ if (ngOptions.trackBy) {
34839
+ scope.$watch(attr.ngModel, function() { ngModelCtrl.$render(); }, true);
34840
+ }
34570
34841
  // ------------------------------------------------------------------ //
34571
34842
 
34572
34843
 
@@ -34708,10 +34979,13 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
34708
34979
  // Check to see if the value has changed due to the update to the options
34709
34980
  if (!ngModelCtrl.$isEmpty(previousValue)) {
34710
34981
  var nextValue = selectCtrl.readValue();
34711
- if (!equals(previousValue, nextValue)) {
34982
+ if (ngOptions.trackBy && !equals(previousValue, nextValue) ||
34983
+ previousValue !== nextValue) {
34712
34984
  ngModelCtrl.$setViewValue(nextValue);
34985
+ ngModelCtrl.$render();
34713
34986
  }
34714
34987
  }
34988
+
34715
34989
  }
34716
34990
 
34717
34991
  }
@@ -34990,8 +35264,8 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
34990
35264
  * <div ng-repeat="(key, value) in myObj"> ... </div>
34991
35265
  * ```
34992
35266
  *
34993
- * You need to be aware that the JavaScript specification does not define what order
34994
- * it will return the keys for an object. (To mitigate this in Angular 1.3 the `ngRepeat` directive
35267
+ * You need to be aware that the JavaScript specification does not define the order of keys
35268
+ * returned for an object. (To mitigate this in Angular 1.3 the `ngRepeat` directive
34995
35269
  * used to sort the keys alphabetically.)
34996
35270
  *
34997
35271
  * Version 1.4 removed the alphabetic sorting. We now rely on the order returned by the browser
@@ -35856,12 +36130,12 @@ var ngHideDirective = ['$animate', function($animate) {
35856
36130
  </example>
35857
36131
  */
35858
36132
  var ngStyleDirective = ngDirective(function(scope, element, attr) {
35859
- scope.$watchCollection(attr.ngStyle, function ngStyleWatchAction(newStyles, oldStyles) {
36133
+ scope.$watch(attr.ngStyle, function ngStyleWatchAction(newStyles, oldStyles) {
35860
36134
  if (oldStyles && (newStyles !== oldStyles)) {
35861
36135
  forEach(oldStyles, function(val, style) { element.css(style, '');});
35862
36136
  }
35863
36137
  if (newStyles) element.css(newStyles);
35864
- });
36138
+ }, true);
35865
36139
  });
35866
36140
 
35867
36141
  /**
@@ -36323,13 +36597,13 @@ var SelectController =
36323
36597
  * option. See example below for demonstration.
36324
36598
  *
36325
36599
  * <div class="alert alert-warning">
36326
- * **Note:** `ngModel` compares by reference, not value. This is important when binding to an
36327
- * array of objects. See an example [in this jsfiddle](http://jsfiddle.net/qWzTb/).
36600
+ * **Note:** By default, `ngModel` compares by reference, not value. This is important when binding to an
36601
+ * array of objects. See an example [in this jsfiddle](http://jsfiddle.net/qWzTb/). When using `track by`
36602
+ * in an `ngOptions` expression, however, deep equality checks will be performed.
36328
36603
  * </div>
36329
36604
  *
36330
36605
  */
36331
36606
  var selectDirective = function() {
36332
- var lastView;
36333
36607
 
36334
36608
  return {
36335
36609
  restrict: 'E',
@@ -36388,11 +36662,13 @@ var selectDirective = function() {
36388
36662
 
36389
36663
  // we have to do it on each watch since ngModel watches reference, but
36390
36664
  // we need to work of an array, so we need to see if anything was inserted/removed
36665
+ var lastView, lastViewRef = NaN;
36391
36666
  scope.$watch(function selectMultipleWatch() {
36392
- if (!equals(lastView, ngModelCtrl.$viewValue)) {
36667
+ if (lastViewRef === ngModelCtrl.$viewValue && !equals(lastView, ngModelCtrl.$viewValue)) {
36393
36668
  lastView = shallowCopy(ngModelCtrl.$viewValue);
36394
36669
  ngModelCtrl.$render();
36395
36670
  }
36671
+ lastViewRef = ngModelCtrl.$viewValue;
36396
36672
  });
36397
36673
 
36398
36674
  // If we are a multiple select then value is now a collection
@@ -36971,6 +37247,8 @@ _jQuery.fn.bindings = function(windowJquery, bindExp) {
36971
37247
  evnt.initAnimationEvent(eventType, null, null, null, eventData.elapsedTime || 0);
36972
37248
  }
36973
37249
  }
37250
+ } else if (/touch/.test(eventType) && supportsTouchEvents()) {
37251
+ evnt = createTouchEvent(element, eventType, x, y);
36974
37252
  } else {
36975
37253
  evnt = document.createEvent('MouseEvents');
36976
37254
  x = x || 0;
@@ -37006,6 +37284,37 @@ _jQuery.fn.bindings = function(windowJquery, bindExp) {
37006
37284
 
37007
37285
  return finalProcessDefault;
37008
37286
  };
37287
+
37288
+ function supportsTouchEvents() {
37289
+ if ('_cached' in supportsTouchEvents) {
37290
+ return supportsTouchEvents._cached;
37291
+ }
37292
+ if (!document.createTouch || !document.createTouchList) {
37293
+ supportsTouchEvents._cached = false;
37294
+ return false;
37295
+ }
37296
+ try {
37297
+ document.createEvent('TouchEvent');
37298
+ } catch (e) {
37299
+ supportsTouchEvents._cached = false;
37300
+ return false;
37301
+ }
37302
+ supportsTouchEvents._cached = true;
37303
+ return true;
37304
+ }
37305
+
37306
+ function createTouchEvent(element, eventType, x, y) {
37307
+ var evnt = new Event(eventType);
37308
+ x = x || 0;
37309
+ y = y || 0;
37310
+
37311
+ var touch = document.createTouch(window, element, Date.now(), x, y, x, y);
37312
+ var touches = document.createTouchList(touch);
37313
+
37314
+ evnt.touches = touches;
37315
+
37316
+ return evnt;
37317
+ }
37009
37318
  }());
37010
37319
 
37011
37320
  /**
@@ -38769,5 +39078,5 @@ if (config.autotest) {
38769
39078
  })(window, document);
38770
39079
 
38771
39080
 
38772
- !window.angular.$$csp() && window.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:not(.ng-hide-animate) {\n display: none !important;\n}\n\nng\\:form {\n display: block;\n}\n</style>');
39081
+ !window.angular.$$csp() && window.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:not(.ng-hide-animate) {\n display: none !important;\n}\n\nng\\:form {\n display: block;\n}\n\n.ng-animate-shim {\n visibility:hidden;\n}\n\n.ng-animate-anchor {\n position:absolute;\n}\n</style>');
38773
39082
  !window.angular.$$csp() && window.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>');