angular-rails-engine 1.2.0.0 → 1.2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.md +1 -1
  5. data/app/assets/javascripts/angular/angular-animate.js +837 -288
  6. data/app/assets/javascripts/angular/angular-animate.min.js +17 -10
  7. data/app/assets/javascripts/angular/angular-animate.min.js.map +8 -0
  8. data/app/assets/javascripts/angular/angular-cookies.js +20 -2
  9. data/app/assets/javascripts/angular/angular-cookies.min.js +2 -4
  10. data/app/assets/javascripts/angular/angular-cookies.min.js.map +8 -0
  11. data/app/assets/javascripts/angular/angular-loader.js +31 -19
  12. data/app/assets/javascripts/angular/angular-loader.min.js +4 -6
  13. data/app/assets/javascripts/angular/angular-loader.min.js.map +8 -0
  14. data/app/assets/javascripts/angular/angular-mocks.js +263 -85
  15. data/app/assets/javascripts/angular/angular-resource.js +125 -95
  16. data/app/assets/javascripts/angular/angular-resource.min.js +8 -10
  17. data/app/assets/javascripts/angular/angular-resource.min.js.map +8 -0
  18. data/app/assets/javascripts/angular/angular-route.js +161 -141
  19. data/app/assets/javascripts/angular/angular-route.min.js +10 -11
  20. data/app/assets/javascripts/angular/angular-route.min.js.map +8 -0
  21. data/app/assets/javascripts/angular/angular-sanitize.js +135 -116
  22. data/app/assets/javascripts/angular/angular-sanitize.min.js +10 -11
  23. data/app/assets/javascripts/angular/angular-sanitize.min.js.map +8 -0
  24. data/app/assets/javascripts/angular/angular-scenario.js +13909 -11404
  25. data/app/assets/javascripts/angular/angular-touch.js +47 -20
  26. data/app/assets/javascripts/angular/angular-touch.min.js +9 -10
  27. data/app/assets/javascripts/angular/angular-touch.min.js.map +8 -0
  28. data/app/assets/javascripts/angular/angular.js +4407 -2278
  29. data/app/assets/javascripts/angular/angular.min.js +196 -181
  30. data/app/assets/javascripts/angular/angular.min.js.map +8 -0
  31. data/app/assets/stylesheets/angular-csp.css +24 -0
  32. data/lib/angular-rails-engine.rb +1 -1
  33. data/lib/angular-rails-engine/version.rb +1 -1
  34. metadata +11 -2
  35. metadata.gz.sig +0 -0
@@ -1,14 +1,21 @@
1
1
  /*
2
- AngularJS v1.2.0rc1
2
+ AngularJS v1.2.0
3
3
  (c) 2010-2012 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
6
- (function(B,q,C){'use strict';q.module("ngAnimate",["ng"]).config(["$provide","$animateProvider",function(x,w){function s(c,h){var l="";c=q.isArray(c)?c:c.split(/\s+/);t(c,function(c,m){c&&0<c.length&&(l+=(0<m?" ":"")+c+h)});return l}var u=q.noop,t=q.forEach,y=w.$$selectors,f="$$ngAnimateState",v={running:!0};x.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$timeout",function(c,h,l,g,m){function k(a){if(a){var b=[],e={};a=a.substr(1).split(".");a.push("");for(var c=0;c<a.length;c++){var d=
7
- a[c],r=y[d];r&&!e[d]&&(b.push(h.get(r)),e[d]=!0)}return b}}function d(a,b,e,c,d,r){function z(a){t(a,function(a){(a.endFn||u)(!0)})}function n(){n.hasBeenRun||(n.hasBeenRun=!0,e.removeClass(b),e.removeData(f),(r||u)())}var A=(" "+((e.attr("class")||"")+" "+b)).replace(/\s+/g,"."),p=[];t(k(A),function(b,c){p.push({start:b[a]})});c||(c=d?d.parent():e.parent());d={running:!0};if((c.inheritedData(f)||d).running)m(r||u,0,!1);else{c=e.data(f)||{};c.running&&(z(c.animations),c.done());e.data(f,{running:!0,
8
- animations:p,done:n});var h=b;"addClass"==a?b=s(b,"-add"):"removeClass"==a&&(b=s(b,"-remove"));e.addClass(b);t(p,function(b,c){var d=function(){a:{p[c].done=!0;(p[c].endFn||u)();for(var a=0;a<p.length;a++)if(!p[a].done)break a;n()}};b.start?b.endFn="addClass"==a||"removeClass"==a?b.start(e,h,d):b.start(e,d):d()})}}g.data(f,v);return{enter:function(a,b,e,k){c.enter(a,b,e);d("enter","ng-enter",a,b,e,k)},leave:function(a,b){d("leave","ng-leave",a,null,null,function(){c.leave(a,b)})},move:function(a,
9
- b,e,k){c.move(a,b,e);d("move","ng-move",a,null,null,k)},addClass:function(a,b,e){d("addClass",b,a,null,null,function(){c.addClass(a,b,e)})},removeClass:function(a,b,e){d("removeClass",b,a,null,null,function(){c.removeClass(a,b,e)})},enabled:function(a){arguments.length&&(v.running=!a);return!v.running}}}]);w.register("",["$window","$sniffer","$timeout",function(c,h,l){function g(k,d,a){function b(a){var b=0;a=q.isString(a)?a.split(/\s*,\s*/):[];m(a,function(a){b=Math.max(parseFloat(a)||0,b)});return b}
10
- function e(){var e=0;m(d.split(" "),function(a,b){f+=(0<b?" ":"")+a+"-active"});k.addClass(f);var g=h.vendorPrefix+"Animation",n=h.vendorPrefix+"Transition";m(k,function(a){if(1==a.nodeType){a=c.getComputedStyle(a)||{};var d=Math.max(b(a.transitionDelay),b(a[n+"Delay"])),k=Math.max(b(a.animationDelay),b(a[g+"Delay"])),h=Math.max(b(a.transitionDuration),b(a[n+"Duration"])),f=Math.max(b(a.animationDuration),b(a[g+"Duration"]));0<f&&(f*=Math.max(parseInt(a.animationIterationCount)||0,parseInt(a[g+"IterationCount"])||
11
- 0,1));e=Math.max(k+f,d+h,e)}});l(a,1E3*e,!1)}function g(b){k.removeClass(f);b&&a()}if(h.transitions||h.animations){var f="";l(e,1,!1);return g}a()}var m=q.forEach;return{enter:function(c,d){return g(c,"ng-enter",d)},leave:function(c,d){return g(c,"ng-leave",d)},move:function(c,d){return g(c,"ng-move",d)},addClass:function(c,d,a){return g(c,s(d,"-add"),a)},removeClass:function(c,d,a){return g(c,s(d,"-remove"),a)}}}])}])})(window,window.angular);
12
- /*
13
- //@ sourceMappingURL=angular-animate.min.js.map
14
- */
6
+ (function(A,s,B){'use strict';s.module("ngAnimate",["ng"]).config(["$provide","$animateProvider",function(N,D){var z=s.noop,k=s.forEach,X=D.$$selectors,T=1,f="$$ngAnimateState",E="ng-animate",g={running:!0};N.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$timeout","$rootScope","$document",function(t,A,F,m,G,p,H){function B(a){if(a){var d=[],b={};a=a.substr(1).split(".");(F.transitions||F.animations)&&a.push("");for(var c=0;c<a.length;c++){var h=a[c],f=X[h];f&&!b[h]&&(d.push(A.get(f)),
7
+ b[h]=!0)}return d}}function n(a,d,b,c,h,g,m){function p(a){g();if(!0===a)u();else{if(a=b.data(f))a.done=u,b.data(f,a);s(v,"after",u)}}function s(c,h,g){var f=h+"End";k(c,function(k,t){var e=function(){a:{var e=h+"Complete",a=c[t];a[e]=!0;(a[f]||z)();for(a=0;a<c.length;a++)if(!c[a][e])break a;g()}};"before"!=h||"enter"!=a&&"move"!=a?k[h]?k[f]=n?k[h](b,d,e):k[h](b,e):e():e()})}function t(){m&&G(m,0,!1)}function u(){if(!u.hasBeenRun){u.hasBeenRun=!0;var a=b.data(f);a&&(n?q(b):(a.closeAnimationTimeout=
8
+ G(function(){q(b)},0,!1),b.data(f,a)));t()}}var r=(" "+((b.attr("class")||"")+" "+d)).replace(/\s+/g,".");c||(c=h?h.parent():b.parent());h=B(r);var n="addClass"==a||"removeClass"==a,r=b.data(f)||{};if(J(b,c)||0===h.length)g(),u();else{var v=[];r.running&&n&&r.structural||k(h,function(c){if(!c.allowCancel||c.allowCancel(b,a,d)){var h=c[a];"leave"==a?(c=h,h=null):c=c["before"+a.charAt(0).toUpperCase()+a.substr(1)];v.push({before:c,after:h})}});0===v.length?(g(),t()):(r.running&&(G.cancel(r.closeAnimationTimeout),
9
+ q(b),K(r.animations),(r.done||z)(!0)),"addClass"==a&&b.hasClass(d)||"removeClass"==a&&!b.hasClass(d)?(g(),t()):(b.addClass(E),b.data(f,{running:!0,structural:!n,animations:v,done:p}),s(v,"before",p)))}}function L(a){a=a[0];a.nodeType==T&&k(a.querySelectorAll("."+E),function(a){a=s.element(a);var b=a.data(f);b&&(K(b.animations),q(a))})}function K(a){k(a,function(d){a.beforeComplete||(d.beforeEnd||z)(!0);a.afterComplete||(d.afterEnd||z)(!0)})}function q(a){a[0]==m[0]?g.disabled||(g.running=!1,g.structural=
10
+ !1):(a.removeClass(E),a.removeData(f))}function J(a,d){if(g.disabled)return!0;if(a[0]==m[0])return g.disabled||g.running;do{if(0===d.length)break;var b=d[0]==m[0],c=b?g:d.data(f),c=c&&(!!c.disabled||!!c.running);if(b||c)return c;if(b)break}while(d=d.parent());return!0}m.data(f,g);p.$$postDigest(function(){g.running=!1});return{enter:function(a,d,b,c){this.enabled(!1,a);t.enter(a,d,b);p.$$postDigest(function(){n("enter","ng-enter",a,d,b,z,c)})},leave:function(a,d){L(a);this.enabled(!1,a);p.$$postDigest(function(){n("leave",
11
+ "ng-leave",a,null,null,function(){t.leave(a)},d)})},move:function(a,d,b,c){L(a);this.enabled(!1,a);t.move(a,d,b);p.$$postDigest(function(){n("move","ng-move",a,d,b,z,c)})},addClass:function(a,d,b){n("addClass",d,a,null,null,function(){t.addClass(a,d)},b)},removeClass:function(a,d,b){n("removeClass",d,a,null,null,function(){t.removeClass(a,d)},b)},enabled:function(a,d){switch(arguments.length){case 2:if(a)q(d);else{var b=d.data(f)||{};b.disabled=!0;d.data(f,b)}break;case 1:g.disabled=!a;break;default:a=
12
+ !g.disabled}return!!a}}}]);D.register("",["$window","$sniffer","$timeout",function(f,g,F){function m(e){Q.push(e);F.cancel(R);R=F(function(){k(Q,function(e){e()});Q=[];R=null;C={}},10,!1)}function G(e,a){var w=e.getAttribute("style")||"";e.setAttribute("style",(0<w.length?"; ":"")+a);return w}function p(e,a){var w=a?C[a]:null;if(!w){var b=0,d=0,c=0,l=0,g,n,m,p;k(e,function(e){if(e.nodeType==T){e=f.getComputedStyle(e)||{};m=e[h+D];b=Math.max(H(m),b);p=e[h+S];g=e[h+u];d=Math.max(H(g),d);n=e[I+u];l=
13
+ Math.max(H(n),l);var a=H(e[I+D]);0<a&&(a*=parseInt(e[I+r],10)||1);c=Math.max(a,c)}});w={total:0,transitionPropertyStyle:p,transitionDurationStyle:m,transitionDelayStyle:g,transitionDelay:d,transitionDuration:b,animationDelayStyle:n,animationDelay:l,animationDuration:c};a&&(C[a]=w)}return w}function H(e){var a=0;e=s.isString(e)?e.split(/\s*,\s*/):[];k(e,function(e){a=Math.max(parseFloat(e)||0,a)});return a}function E(e){var a=e.parent(),b=a.data(W);b||(a.data(W,++V),b=V);return b+"-"+e[0].className}
14
+ function n(e,a){var b=E(e),d=b+" "+a,c={},g=C[d]?++C[d].total:0;if(0<g){var l=a+"-stagger",c=b+" "+l;(b=!C[c])&&e.addClass(l);c=p(e,c);b&&e.removeClass(l)}e.addClass(a);d=p(e,d);l=Math.max(d.transitionDuration,d.animationDuration);if(0===l)return e.removeClass(a),!1;var b=e[0],f="";0<d.transitionDuration&&(e.addClass(U),f+=N+" ",b.style[h+S]="none");k(a.split(" "),function(a,e){f+=(0<e?" ":"")+a+"-active"});e.data(v,{className:a,activeClassName:f,maxDuration:l,classes:a+" "+f,timings:d,stagger:c,
15
+ ii:g});return!0}function L(a,b,w){function f(a){a.stopPropagation();a=a.originalEvent||a;var e=a.$manualTimeStamp||a.timeStamp||Date.now();Math.max(e-t,0)>=p&&a.elapsedTime>=n&&w()}var x=a.data(v);if(a.hasClass(b)&&x){var M=a[0],l=x.timings,k=x.stagger,n=x.maxDuration,m=x.activeClassName,p=1E3*Math.max(l.transitionDelay,l.animationDelay),t=Date.now(),s=P+" "+O,r,x=x.ii,u,y="";if(0<l.transitionDuration){M.style[h+S]="";var q=l.transitionPropertyStyle;-1==q.indexOf("all")&&(u=!0,y+=c+"transition-property: "+
16
+ q+", "+(g.msie?"-ms-zoom":"clip")+"; ",y+=c+"transition-duration: "+l.transitionDurationStyle+", "+l.transitionDuration+"s; ")}0<x&&(0<k.transitionDelay&&0===k.transitionDuration&&(q=l.transitionDelayStyle,u&&(q+=", "+l.transitionDelay+"s"),y+=c+"transition-delay: "+K(q,k.transitionDelay,x)+"; "),0<k.animationDelay&&0===k.animationDuration&&(y+=c+"animation-delay: "+K(l.animationDelayStyle,k.animationDelay,x)+"; "));0<y.length&&(r=G(M,y));a.on(s,f);a.addClass(m);return function(c){a.off(s,f);a.removeClass(m);
17
+ d(a,b);null!=r&&(0<r.length?M.setAttribute("style",r):M.removeAttribute("style"))}}w()}function K(a,b,d){var c="";k(a.split(","),function(a,e){c+=(0<e?",":"")+(d*b+parseInt(a,10))+"s"});return c}function q(a,b){if(n(a,b))return function(c){c&&d(a,b)}}function J(a,b,c){if(a.data(v))return L(a,b,c);d(a,b);c()}function a(a,b,c){var d=q(a,b);if(d){var f=d;m(function(){f=J(a,b,c)});return function(a){(f||z)(a)}}c()}function d(a,b){a.removeClass(b);a.removeClass(U);a.removeData(v)}function b(a,b){var c=
18
+ "";a=s.isArray(a)?a:a.split(/\s+/);k(a,function(a,e){a&&0<a.length&&(c+=(0<e?" ":"")+a+b)});return c}var c="",h,O,I,P;A.ontransitionend===B&&A.onwebkittransitionend!==B?(c="-webkit-",h="WebkitTransition",O="webkitTransitionEnd transitionend"):(h="transition",O="transitionend");A.onanimationend===B&&A.onwebkitanimationend!==B?(c="-webkit-",I="WebkitAnimation",P="webkitAnimationEnd animationend"):(I="animation",P="animationend");var D="Duration",S="Property",u="Delay",r="IterationCount",W="$$ngAnimateKey",
19
+ v="$$ngAnimateCSS3Data",U="ng-animate-start",N="ng-animate-active",C={},V=0,Q=[],R;return{allowCancel:function(a,c,d){var f=(a.data(v)||{}).classes;if(!f||0<=["enter","leave","move"].indexOf(c))return!0;var h=a.parent(),g=s.element(a[0].cloneNode());g.attr("style","position:absolute; top:-9999px; left:-9999px");g.removeAttr("id");g.html("");k(f.split(" "),function(a){g.removeClass(a)});g.addClass(b(d,"addClass"==c?"-add":"-remove"));h.append(g);a=p(g);g.remove();return 0<Math.max(a.transitionDuration,
20
+ a.animationDuration)},enter:function(b,c){return a(b,"ng-enter",c)},leave:function(b,c){return a(b,"ng-leave",c)},move:function(b,c){return a(b,"ng-move",c)},beforeAddClass:function(a,c,d){if(a=q(a,b(c,"-add")))return m(d),a;d()},addClass:function(a,c,d){return J(a,b(c,"-add"),d)},beforeRemoveClass:function(a,c,d){if(a=q(a,b(c,"-remove")))return m(d),a;d()},removeClass:function(a,c,d){return J(a,b(c,"-remove"),d)}}}])}])})(window,window.angular);
21
+ //# sourceMappingURL=angular-animate.min.js.map
@@ -0,0 +1,8 @@
1
+ {
2
+ "version":3,
3
+ "file":"angular-animate.min.js",
4
+ "lineCount":20,
5
+ "mappings":"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",
6
+ "sources":["angular-animate.js"],
7
+ "names":["window","angular","undefined","module","config","$provide","$animateProvider","noop","forEach","selectors","$$selectors","ELEMENT_NODE","NG_ANIMATE_STATE","NG_ANIMATE_CLASS_NAME","rootAnimateState","decorator","$delegate","$injector","$sniffer","$rootElement","$timeout","$rootScope","$document","lookup","name","matches","flagMap","classes","substr","split","transitions","animations","push","i","length","klass","selectorFactoryName","get","performAnimation","animationEvent","className","element","parentElement","afterElement","domOperation","doneCallback","onBeforeAnimationsComplete","cancelled","closeAnimation","data","done","invokeRegisteredAnimationFns","phase","allAnimationFnsComplete","endFnName","animation","index","animationPhaseCompleted","phaseCompletionFlag","currentAnimation","isClassBased","fireDoneCallbackAsync","hasBeenRun","cleanup","closeAnimationTimeout","animationLookup","replace","attr","parent","ngAnimateState","animationsDisabled","running","structural","allowCancel","afterFn","beforeFn","charAt","toUpperCase","cancel","cancelAnimations","hasClass","addClass","cancelChildAnimations","node","nodeType","querySelectorAll","beforeEnd","isCancelledFlag","afterEnd","disabled","removeClass","removeData","isRoot","state","result","$$postDigest","enter","enabled","leave","move","value","arguments","register","$window","afterReflow","callback","animationReflowQueue","animationTimer","fn","lookupCache","applyStyle","style","oldStyle","getAttribute","setAttribute","getElementAnimationDetails","cacheKey","transitionDuration","transitionDelay","animationDuration","animationDelay","transitionDelayStyle","animationDelayStyle","transitionDurationStyle","transitionPropertyStyle","elementStyles","getComputedStyle","TRANSITION_PROP","DURATION_KEY","Math","max","parseMaxTime","PROPERTY_KEY","DELAY_KEY","ANIMATION_PROP","aDuration","parseInt","ANIMATION_ITERATION_COUNT_KEY","str","maxValue","values","isString","parseFloat","getCacheKey","parentID","NG_ANIMATE_PARENT_KEY","parentCounter","animateSetup","eventCacheKey","stagger","ii","total","staggerClassName","staggerCacheKey","applyClasses","timings","maxDuration","activeClassName","NG_ANIMATE_FALLBACK_CLASS_NAME","NG_ANIMATE_FALLBACK_ACTIVE_CLASS_NAME","NG_ANIMATE_CSS_DATA_KEY","animateRun","activeAnimationComplete","onAnimationProgress","event","stopPropagation","ev","originalEvent","timeStamp","$manualTimeStamp","Date","now","startTime","maxDelayTime","elapsedTime","css3AnimationEvents","ANIMATIONEND_EVENT","TRANSITIONEND_EVENT","formerStyle","applyFallbackStyle","propertyStyle","indexOf","CSS_PREFIX","msie","fallbackProperty","delayStyle","prepareStaggerDelay","on","onEnd","off","animateClose","removeAttribute","staggerDelay","val","animateBefore","animateAfter","afterAnimationComplete","animate","animationComplete","preReflowCancellation","suffixClasses","suffix","isArray","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","oldClasses","clone","cloneNode","removeAttr","html","append","remove","animationCompleted","beforeAddClass","cancellationMethod","beforeRemoveClass"]
8
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.0rc1
2
+ * @license AngularJS v1.2.0
3
3
  * (c) 2010-2012 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -8,6 +8,18 @@
8
8
  /**
9
9
  * @ngdoc overview
10
10
  * @name ngCookies
11
+ * @description
12
+ *
13
+ * # ngCookies
14
+ *
15
+ * The `ngCookies` module provides a convenient wrapper for reading and writing browser cookies.
16
+ *
17
+ * {@installModule cookies}
18
+ *
19
+ * <div doc-module-components="ngCookies"></div>
20
+ *
21
+ * See {@link ngCookies.$cookies `$cookies`} and
22
+ * {@link ngCookies.$cookieStore `$cookieStore`} for usage.
11
23
  */
12
24
 
13
25
 
@@ -23,6 +35,8 @@ angular.module('ngCookies', ['ng']).
23
35
  * Only a simple Object is exposed and by adding or removing properties to/from
24
36
  * this object, new cookies are created/deleted at the end of current $eval.
25
37
  *
38
+ * Requires the {@link ngCookies `ngCookies`} module to be installed.
39
+ *
26
40
  * @example
27
41
  <doc:example>
28
42
  <doc:source>
@@ -67,7 +81,8 @@ angular.module('ngCookies', ['ng']).
67
81
 
68
82
 
69
83
  /**
70
- * Pushes all the cookies from the service to the browser and verifies if all cookies were stored.
84
+ * Pushes all the cookies from the service to the browser and verifies if all cookies were
85
+ * stored.
71
86
  */
72
87
  function push() {
73
88
  var name,
@@ -127,6 +142,9 @@ angular.module('ngCookies', ['ng']).
127
142
  * Provides a key-value (string-object) storage, that is backed by session cookies.
128
143
  * Objects put or retrieved from this storage are automatically serialized or
129
144
  * deserialized by angular's toJson/fromJson.
145
+ *
146
+ * Requires the {@link ngCookies `ngCookies`} module to be installed.
147
+ *
130
148
  * @example
131
149
  */
132
150
  factory('$cookieStore', ['$cookies', function($cookies) {
@@ -1,10 +1,8 @@
1
1
  /*
2
- AngularJS v1.2.0rc1
2
+ AngularJS v1.2.0
3
3
  (c) 2010-2012 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
6
6
  (function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&d.$apply())})();k=!0;d.$watch(function(){var a,e,d;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)(e=c[a],f.isString(e))?e!==g[a]&&(b.cookies(a,e),d=!0):f.isDefined(g[a])?c[a]=g[a]:delete c[a];if(d)for(a in e=b.cookies(),c)c[a]!==e[a]&&(m(e[a])?delete c[a]:c[a]=e[a])});
7
7
  return c}]).factory("$cookieStore",["$cookies",function(d){return{get:function(b){return(b=d[b])?f.fromJson(b):b},put:function(b,c){d[b]=f.toJson(c)},remove:function(b){delete d[b]}}}])})(window,window.angular);
8
- /*
9
- //@ sourceMappingURL=angular-cookies.min.js.map
10
- */
8
+ //# sourceMappingURL=angular-cookies.min.js.map
@@ -0,0 +1,8 @@
1
+ {
2
+ "version":3,
3
+ "file":"angular-cookies.min.js",
4
+ "lineCount":7,
5
+ "mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CAoBtCD,CAAAE,OAAA,CAAe,WAAf,CAA4B,CAAC,IAAD,CAA5B,CAAAC,QAAA,CA4BW,UA5BX,CA4BuB,CAAC,YAAD,CAAe,UAAf,CAA2B,QAAS,CAACC,CAAD,CAAaC,CAAb,CAAuB,CAAA,IACxEC,EAAU,EAD8D,CAExEC,EAAc,EAF0D,CAGxEC,CAHwE,CAIxEC,EAAU,CAAA,CAJ8D,CAKxEC,EAAOV,CAAAU,KALiE,CAMxEC,EAAcX,CAAAW,YAGlBN,EAAAO,UAAA,CAAmB,QAAQ,EAAG,CAC5B,IAAIC,EAAiBR,CAAAC,QAAA,EACjBE,EAAJ,EAA0BK,CAA1B,GACEL,CAGA,CAHqBK,CAGrB,CAFAH,CAAA,CAAKG,CAAL,CAAqBN,CAArB,CAEA,CADAG,CAAA,CAAKG,CAAL,CAAqBP,CAArB,CACA,CAAIG,CAAJ,EAAaL,CAAAU,OAAA,EAJf,CAF4B,CAA9B,CAAA,EAUAL,EAAA,CAAU,CAAA,CAKVL,EAAAW,OAAA,CASAC,QAAa,EAAG,CAAA,IACVC,CADU,CAEVC,CAFU,CAIVC,CAGJ,KAAKF,CAAL,GAAaV,EAAb,CACMI,CAAA,CAAYL,CAAA,CAAQW,CAAR,CAAZ,CAAJ,EACEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBhB,CAAvB,CAKJ,KAAIgB,CAAJ,GAAYX,EAAZ,CAEE,CADAY,CACK,CADGZ,CAAA,CAAQW,CAAR,CACH,CAAAjB,CAAAoB,SAAA,CAAiBF,CAAjB,CAAL,EAMWA,CANX,GAMqBX,CAAA,CAAYU,CAAZ,CANrB,GAOEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBC,CAAvB,CACA,CAAAC,CAAA,CAAU,CAAA,CARZ,EACMnB,CAAAqB,UAAA,CAAkBd,CAAA,CAAYU,CAAZ,CAAlB,CAAJ,CACEX,CAAA,CAAQW,CAAR,CADF,CACkBV,CAAA,CAAYU,CAAZ,CADlB,CAGE,OAAOX,CAAA,CAAQW,CAAR,CASb,IAAIE,CAAJ,CAIE,IAAKF,CAAL,GAFAK,EAEahB,CAFID,CAAAC,QAAA,EAEJA,CAAAA,CAAb,CACMA,CAAA,CAAQW,CAAR,CAAJ,GAAsBK,CAAA,CAAeL,CAAf,CAAtB,GAEMN,CAAA,CAAYW,CAAA,CAAeL,CAAf,CAAZ,CAAJ,CACE,OAAOX,CAAA,CAAQW,CAAR,CADT,CAGEX,CAAA,CAAQW,CAAR,CAHF,CAGkBK,CAAA,CAAeL,CAAf,CALpB,CAlCU,CAThB,CAEA;MAAOX,EA1BqE,CAA3D,CA5BvB,CAAAH,QAAA,CA4HW,cA5HX,CA4H2B,CAAC,UAAD,CAAa,QAAQ,CAACoB,CAAD,CAAW,CAErD,MAAO,KAYAC,QAAQ,CAACC,CAAD,CAAM,CAEjB,MAAO,CADHP,CACG,CADKK,CAAA,CAASE,CAAT,CACL,EAAQzB,CAAA0B,SAAA,CAAiBR,CAAjB,CAAR,CAAkCA,CAFxB,CAZd,KA4BAS,QAAQ,CAACF,CAAD,CAAMP,CAAN,CAAa,CACxBK,CAAA,CAASE,CAAT,CAAA,CAAgBzB,CAAA4B,OAAA,CAAeV,CAAf,CADQ,CA5BrB,QA0CGW,QAAQ,CAACJ,CAAD,CAAM,CACpB,OAAOF,CAAA,CAASE,CAAT,CADa,CA1CjB,CAF8C,CAAhC,CA5H3B,CApBsC,CAArC,CAAA,CAoME1B,MApMF,CAoMUA,MAAAC,QApMV;",
6
+ "sources":["angular-cookies.js"],
7
+ "names":["window","angular","undefined","module","factory","$rootScope","$browser","cookies","lastCookies","lastBrowserCookies","runEval","copy","isUndefined","addPollFn","currentCookies","$apply","$watch","push","name","value","updated","isString","isDefined","browserCookies","$cookies","get","key","fromJson","put","toJson","remove"]
8
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.0rc1
2
+ * @license AngularJS v1.2.0
3
3
  * (c) 2010-2012 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -16,6 +16,8 @@
16
16
 
17
17
  function setupModuleLoader(window) {
18
18
 
19
+ var $injectorMinErr = minErr('$injector');
20
+
19
21
  function ensure(obj, name, factory) {
20
22
  return obj[name] || (obj[name] = factory());
21
23
  }
@@ -29,10 +31,14 @@ function setupModuleLoader(window) {
29
31
  * @name angular.module
30
32
  * @description
31
33
  *
32
- * The `angular.module` is a global place for creating and registering Angular modules. All
33
- * modules (angular core or 3rd party) that should be available to an application must be
34
+ * The `angular.module` is a global place for creating, registering and retrieving Angular
35
+ * modules.
36
+ * All modules (angular core or 3rd party) that should be available to an application must be
34
37
  * registered using this mechanism.
35
38
  *
39
+ * When passed two or more arguments, a new module is created. If passed only one argument, an
40
+ * existing module (the name passed as the first argument to `module`) is retrieved.
41
+ *
36
42
  *
37
43
  * # Module
38
44
  *
@@ -64,21 +70,22 @@ function setupModuleLoader(window) {
64
70
  * {@link angular.bootstrap} to simplify this process for you.
65
71
  *
66
72
  * @param {!string} name The name of the module to create or retrieve.
67
- * @param {Array.<string>=} requires If specified then new module is being created. If unspecified then the
68
- * the module is being retrieved for further configuration.
73
+ * @param {Array.<string>=} requires If specified then new module is being created. If
74
+ * unspecified then the the module is being retrieved for further configuration.
69
75
  * @param {Function} configFn Optional configuration function for the module. Same as
70
- * {@link angular.Module#config Module#config()}.
76
+ * {@link angular.Module#methods_config Module#config()}.
71
77
  * @returns {module} new module with the {@link angular.Module} api.
72
78
  */
73
79
  return function module(name, requires, configFn) {
80
+ assertNotHasOwnProperty(name, 'module');
74
81
  if (requires && modules.hasOwnProperty(name)) {
75
82
  modules[name] = null;
76
83
  }
77
84
  return ensure(modules, name, function() {
78
85
  if (!requires) {
79
- throw minErr('$injector')('nomod', "Module '{0}' is not available! You either misspelled the module name " +
80
- "or forgot to load it. If registering a module ensure that you specify the dependencies as the second " +
81
- "argument.", name);
86
+ throw $injectorMinErr('nomod', "Module '{0}' is not available! You either misspelled " +
87
+ "the module name or forgot to load it. If registering a module ensure that you " +
88
+ "specify the dependencies as the second argument.", name);
82
89
  }
83
90
 
84
91
  /** @type {!Array.<Array.<*>>} */
@@ -101,7 +108,8 @@ function setupModuleLoader(window) {
101
108
  * @propertyOf angular.Module
102
109
  * @returns {Array.<string>} List of module names which must be loaded before this module.
103
110
  * @description
104
- * Holds the list of modules which the injector will load before the current module is loaded.
111
+ * Holds the list of modules which the injector will load before the current module is
112
+ * loaded.
105
113
  */
106
114
  requires: requires,
107
115
 
@@ -120,7 +128,8 @@ function setupModuleLoader(window) {
120
128
  * @name angular.Module#provider
121
129
  * @methodOf angular.Module
122
130
  * @param {string} name service name
123
- * @param {Function} providerType Construction function for creating new instance of the service.
131
+ * @param {Function} providerType Construction function for creating new instance of the
132
+ * service.
124
133
  * @description
125
134
  * See {@link AUTO.$provide#provider $provide.provider()}.
126
135
  */
@@ -176,14 +185,15 @@ function setupModuleLoader(window) {
176
185
  * @name angular.Module#animation
177
186
  * @methodOf angular.Module
178
187
  * @param {string} name animation name
179
- * @param {Function} animationFactory Factory function for creating new instance of an animation.
188
+ * @param {Function} animationFactory Factory function for creating new instance of an
189
+ * animation.
180
190
  * @description
181
191
  *
182
- * **NOTE**: animations are take effect only if the **ngAnimate** module is loaded.
192
+ * **NOTE**: animations take effect only if the **ngAnimate** module is loaded.
183
193
  *
184
194
  *
185
- * Defines an animation hook that can be later used with {@link ngAnimate.$animate $animate} service and
186
- * directives that use this service.
195
+ * Defines an animation hook that can be later used with
196
+ * {@link ngAnimate.$animate $animate} service and directives that use this service.
187
197
  *
188
198
  * <pre>
189
199
  * module.animation('.animation-name', function($inject1, $inject2) {
@@ -219,7 +229,8 @@ function setupModuleLoader(window) {
219
229
  * @ngdoc method
220
230
  * @name angular.Module#controller
221
231
  * @methodOf angular.Module
222
- * @param {string} name Controller name.
232
+ * @param {string|Object} name Controller name, or an object map of controllers where the
233
+ * keys are the names and the values are the constructors.
223
234
  * @param {Function} constructor Controller constructor function.
224
235
  * @description
225
236
  * See {@link ng.$controllerProvider#register $controllerProvider.register()}.
@@ -230,11 +241,12 @@ function setupModuleLoader(window) {
230
241
  * @ngdoc method
231
242
  * @name angular.Module#directive
232
243
  * @methodOf angular.Module
233
- * @param {string} name directive name
244
+ * @param {string|Object} name Directive name, or an object map of directives where the
245
+ * keys are the names and the values are the factories.
234
246
  * @param {Function} directiveFactory Factory function for creating new instance of
235
247
  * directives.
236
248
  * @description
237
- * See {@link ng.$compileProvider#directive $compileProvider.directive()}.
249
+ * See {@link ng.$compileProvider#methods_directive $compileProvider.directive()}.
238
250
  */
239
251
  directive: invokeLater('$compileProvider', 'directive'),
240
252
 
@@ -281,7 +293,7 @@ function setupModuleLoader(window) {
281
293
  return function() {
282
294
  invokeQueue[insertMethod || 'push']([provider, method, arguments]);
283
295
  return moduleInstance;
284
- }
296
+ };
285
297
  }
286
298
  });
287
299
  };
@@ -1,10 +1,8 @@
1
1
  /*
2
- AngularJS v1.2.0rc1
2
+ AngularJS v1.2.0
3
3
  (c) 2010-2012 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
6
- (function(k){'use strict';function d(c,b,e){return c[b]||(c[b]=e())}return d(d(k,"angular",Object),"module",function(){var c={};return function(b,e,f){e&&c.hasOwnProperty(b)&&(c[b]=null);return d(c,b,function(){function a(a,b,d){return function(){c[d||"push"]([a,b,arguments]);return g}}if(!e)throw minErr("$injector")("nomod",b);var c=[],d=[],h=a("$injector","invoke"),g={_invokeQueue:c,_runBlocks:d,requires:e,name:b,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide",
7
- "service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:h,run:function(a){d.push(a);return this}};f&&h(f);return g})}})})(window);
8
- /*
9
- //@ sourceMappingURL=angular-loader.min.js.map
10
- */
6
+ (function(k){'use strict';function d(c,b,e){return c[b]||(c[b]=e())}var l=minErr("$injector");return d(d(k,"angular",Object),"module",function(){var c={};return function(b,e,f){assertNotHasOwnProperty(b,"module");e&&c.hasOwnProperty(b)&&(c[b]=null);return d(c,b,function(){function a(a,b,d){return function(){c[d||"push"]([a,b,arguments]);return g}}if(!e)throw l("nomod",b);var c=[],d=[],h=a("$injector","invoke"),g={_invokeQueue:c,_runBlocks:d,requires:e,name:b,provider:a("$provide","provider"),factory:a("$provide",
7
+ "factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:h,run:function(a){d.push(a);return this}};f&&h(f);return g})}})})(window);
8
+ //# sourceMappingURL=angular-loader.min.js.map
@@ -0,0 +1,8 @@
1
+ {
2
+ "version":3,
3
+ "file":"angular-loader.min.js",
4
+ "lineCount":7,
5
+ "mappings":"A;;;;;aAgBAA,SAA0B,CAACC,CAAD,CAAS,CAIjCC,QAASA,EAAM,CAACC,CAAD,CAAMC,CAAN,CAAYC,CAAZ,CAAqB,CAClC,MAAOF,EAAA,CAAIC,CAAJ,CAAP,GAAqBD,CAAA,CAAIC,CAAJ,CAArB,CAAiCC,CAAA,EAAjC,CADkC,CAFpC,IAAIC,EAAkBC,MAAA,CAAO,WAAP,CAMtB,OAAOL,EAAA,CAAOA,CAAA,CAAOD,CAAP,CAAe,SAAf,CAA0BO,MAA1B,CAAP,CAA0C,QAA1C,CAAoD,QAAQ,EAAG,CAEpE,IAAIC,EAAU,EAoDd,OAAOC,SAAe,CAACN,CAAD,CAAOO,CAAP,CAAiBC,CAAjB,CAA2B,CAC/CC,uBAAA,CAAwBT,CAAxB,CAA8B,QAA9B,CACIO,EAAJ,EAAgBF,CAAAK,eAAA,CAAuBV,CAAvB,CAAhB,GACEK,CAAA,CAAQL,CAAR,CADF,CACkB,IADlB,CAGA,OAAOF,EAAA,CAAOO,CAAP,CAAgBL,CAAhB,CAAsB,QAAQ,EAAG,CAgNtCW,QAASA,EAAW,CAACC,CAAD,CAAWC,CAAX,CAAmBC,CAAnB,CAAiC,CACnD,MAAO,SAAQ,EAAG,CAChBC,CAAA,CAAYD,CAAZ,EAA4B,MAA5B,CAAA,CAAoC,CAACF,CAAD,CAAWC,CAAX,CAAmBG,SAAnB,CAApC,CACA,OAAOC,EAFS,CADiC,CA/MrD,GAAI,CAACV,CAAL,CACE,KAAML,EAAA,CAAgB,OAAhB,CAEiDF,CAFjD,CAAN,CAMF,IAAIe,EAAc,EAAlB,CAGIG,EAAY,EAHhB,CAKIC,EAASR,CAAA,CAAY,WAAZ,CAAyB,QAAzB,CALb,CAQIM,EAAiB,cAELF,CAFK,YAGPG,CAHO,UAcTX,CAdS,MAuBbP,CAvBa,UAoCTW,CAAA,CAAY,UAAZ,CAAwB,UAAxB,CApCS,SA+CVA,CAAA,CAAY,UAAZ;AAAwB,SAAxB,CA/CU,SA0DVA,CAAA,CAAY,UAAZ,CAAwB,SAAxB,CA1DU,OAqEZA,CAAA,CAAY,UAAZ,CAAwB,OAAxB,CArEY,UAiFTA,CAAA,CAAY,UAAZ,CAAwB,UAAxB,CAAoC,SAApC,CAjFS,WAmHRA,CAAA,CAAY,kBAAZ,CAAgC,UAAhC,CAnHQ,QA8HXA,CAAA,CAAY,iBAAZ,CAA+B,UAA/B,CA9HW,YA0IPA,CAAA,CAAY,qBAAZ,CAAmC,UAAnC,CA1IO,WAuJRA,CAAA,CAAY,kBAAZ,CAAgC,WAAhC,CAvJQ,QAkKXQ,CAlKW,KA8KdC,QAAQ,CAACC,CAAD,CAAQ,CACnBH,CAAAI,KAAA,CAAeD,CAAf,CACA,OAAO,KAFY,CA9KF,CAoLjBb,EAAJ,EACEW,CAAA,CAAOX,CAAP,CAGF,OAAQS,EAxM8B,CAAjC,CALwC,CAtDmB,CAA/D,CAR0B,CAAnCrB,CAAA,CA+REC,MA/RF;",
6
+ "sources":["angular-loader.js"],
7
+ "names":["setupModuleLoader","window","ensure","obj","name","factory","$injectorMinErr","minErr","Object","modules","module","requires","configFn","assertNotHasOwnProperty","hasOwnProperty","invokeLater","provider","method","insertMethod","invokeQueue","arguments","moduleInstance","runBlocks","config","run","block","push"]
8
+ }
@@ -1,5 +1,7 @@
1
+ 'use strict';
2
+
1
3
  /**
2
- * @license AngularJS v1.2.0rc1
4
+ * @license AngularJS v1.2.0
3
5
  * (c) 2010-2012 Google, Inc. http://angularjs.org
4
6
  * License: MIT
5
7
  *
@@ -75,6 +77,13 @@ angular.mock.$Browser = function() {
75
77
  };
76
78
 
77
79
 
80
+ /**
81
+ * @name ngMock.$browser#defer.now
82
+ * @propertyOf ngMock.$browser
83
+ *
84
+ * @description
85
+ * Current milliseconds mock time.
86
+ */
78
87
  self.defer.now = 0;
79
88
 
80
89
 
@@ -110,7 +119,7 @@ angular.mock.$Browser = function() {
110
119
  if (self.deferredFns.length) {
111
120
  self.defer.now = self.deferredFns[self.deferredFns.length-1].time;
112
121
  } else {
113
- throw Error('No deferred tasks to be flushed');
122
+ throw new Error('No deferred tasks to be flushed');
114
123
  }
115
124
  }
116
125
 
@@ -119,29 +128,6 @@ angular.mock.$Browser = function() {
119
128
  }
120
129
  };
121
130
 
122
- /**
123
- * @name ngMock.$browser#defer.flushNext
124
- * @methodOf ngMock.$browser
125
- *
126
- * @description
127
- * Flushes next pending request and compares it to the provided delay
128
- *
129
- * @param {number=} expectedDelay the delay value that will be asserted against the delay of the next timeout function
130
- */
131
- self.defer.flushNext = function(expectedDelay) {
132
- var tick = self.deferredFns.shift();
133
- expect(tick.time).toEqual(expectedDelay);
134
- tick.fn();
135
- };
136
-
137
- /**
138
- * @name ngMock.$browser#defer.now
139
- * @propertyOf ngMock.$browser
140
- *
141
- * @description
142
- * Current milliseconds mock time.
143
- */
144
-
145
131
  self.$$baseHref = '';
146
132
  self.baseHref = function() {
147
133
  return this.$$baseHref;
@@ -178,7 +164,7 @@ angular.mock.$Browser.prototype = {
178
164
 
179
165
  cookies: function(name, value) {
180
166
  if (name) {
181
- if (value == undefined) {
167
+ if (angular.isUndefined(value)) {
182
168
  delete this.cookieHash[name];
183
169
  } else {
184
170
  if (angular.isString(value) && //strings only
@@ -206,8 +192,8 @@ angular.mock.$Browser.prototype = {
206
192
  * @name ngMock.$exceptionHandlerProvider
207
193
  *
208
194
  * @description
209
- * Configures the mock implementation of {@link ng.$exceptionHandler} to rethrow or to log errors passed
210
- * into the `$exceptionHandler`.
195
+ * Configures the mock implementation of {@link ng.$exceptionHandler} to rethrow or to log errors
196
+ * passed into the `$exceptionHandler`.
211
197
  */
212
198
 
213
199
  /**
@@ -260,10 +246,10 @@ angular.mock.$ExceptionHandlerProvider = function() {
260
246
  * - `rethrow`: If any errors are passed into the handler in tests, it typically
261
247
  * means that there is a bug in the application or test, so this mock will
262
248
  * make these tests fail.
263
- * - `log`: Sometimes it is desirable to test that an error is thrown, for this case the `log` mode stores an
264
- * array of errors in `$exceptionHandler.errors`, to allow later assertion of them.
265
- * See {@link ngMock.$log#assertEmpty assertEmpty()} and
266
- * {@link ngMock.$log#reset reset()}
249
+ * - `log`: Sometimes it is desirable to test that an error is thrown, for this case the `log`
250
+ * mode stores an array of errors in `$exceptionHandler.errors`, to allow later
251
+ * assertion of them. See {@link ngMock.$log#assertEmpty assertEmpty()} and
252
+ * {@link ngMock.$log#reset reset()}
267
253
  */
268
254
  this.mode = function(mode) {
269
255
  switch(mode) {
@@ -286,7 +272,7 @@ angular.mock.$ExceptionHandlerProvider = function() {
286
272
  handler.errors = errors;
287
273
  break;
288
274
  default:
289
- throw Error("Unknown mode '" + mode + "', only 'log'/'rethrow' modes are allowed!");
275
+ throw new Error("Unknown mode '" + mode + "', only 'log'/'rethrow' modes are allowed!");
290
276
  }
291
277
  };
292
278
 
@@ -316,12 +302,12 @@ angular.mock.$LogProvider = function() {
316
302
  }
317
303
 
318
304
  this.debugEnabled = function(flag) {
319
- if (isDefined(flag)) {
320
- debug = flag;
321
- return this;
322
- } else {
323
- return debug;
324
- }
305
+ if (angular.isDefined(flag)) {
306
+ debug = flag;
307
+ return this;
308
+ } else {
309
+ return debug;
310
+ }
325
311
  };
326
312
 
327
313
  this.$get = function () {
@@ -420,7 +406,7 @@ angular.mock.$LogProvider = function() {
420
406
  * var first = $log.debug.logs.unshift();
421
407
  * </pre>
422
408
  */
423
- $log.debug.logs = []
409
+ $log.debug.logs = [];
424
410
  };
425
411
 
426
412
  /**
@@ -429,20 +415,22 @@ angular.mock.$LogProvider = function() {
429
415
  * @methodOf ngMock.$log
430
416
  *
431
417
  * @description
432
- * Assert that the all of the logging methods have no logged messages. If messages present, an exception is thrown.
418
+ * Assert that the all of the logging methods have no logged messages. If messages present, an
419
+ * exception is thrown.
433
420
  */
434
421
  $log.assertEmpty = function() {
435
422
  var errors = [];
436
423
  angular.forEach(['error', 'warn', 'info', 'log', 'debug'], function(logLevel) {
437
424
  angular.forEach($log[logLevel].logs, function(log) {
438
425
  angular.forEach(log, function (logItem) {
439
- errors.push('MOCK $log (' + logLevel + '): ' + String(logItem) + '\n' + (logItem.stack || ''));
426
+ errors.push('MOCK $log (' + logLevel + '): ' + String(logItem) + '\n' +
427
+ (logItem.stack || ''));
440
428
  });
441
429
  });
442
430
  });
443
431
  if (errors.length) {
444
- errors.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or an expected " +
445
- "log message was not checked and removed:");
432
+ errors.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or "+
433
+ "an expected log message was not checked and removed:");
446
434
  errors.push('');
447
435
  throw new Error(errors.join('\n---------\n'));
448
436
  }
@@ -454,6 +442,124 @@ angular.mock.$LogProvider = function() {
454
442
  };
455
443
 
456
444
 
445
+ /**
446
+ * @ngdoc service
447
+ * @name ngMock.$interval
448
+ *
449
+ * @description
450
+ * Mock implementation of the $interval service.
451
+ *
452
+ * Use {@link ngMock.$interval#methods_flush `$interval.flush(millis)`} to
453
+ * move forward by `millis` milliseconds and trigger any functions scheduled to run in that
454
+ * time.
455
+ *
456
+ * @param {function()} fn A function that should be called repeatedly.
457
+ * @param {number} delay Number of milliseconds between each function call.
458
+ * @param {number=} [count=0] Number of times to repeat. If not set, or 0, will repeat
459
+ * indefinitely.
460
+ * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise
461
+ * will invoke `fn` within the {@link ng.$rootScope.Scope#methods_$apply $apply} block.
462
+ * @returns {promise} A promise which will be notified on each iteration.
463
+ */
464
+ angular.mock.$IntervalProvider = function() {
465
+ this.$get = ['$rootScope', '$q',
466
+ function($rootScope, $q) {
467
+ var repeatFns = [],
468
+ nextRepeatId = 0,
469
+ now = 0;
470
+
471
+ var $interval = function(fn, delay, count, invokeApply) {
472
+ var deferred = $q.defer(),
473
+ promise = deferred.promise,
474
+ iteration = 0,
475
+ skipApply = (angular.isDefined(invokeApply) && !invokeApply);
476
+
477
+ count = (angular.isDefined(count)) ? count : 0,
478
+ promise.then(null, null, fn);
479
+
480
+ promise.$$intervalId = nextRepeatId;
481
+
482
+ function tick() {
483
+ deferred.notify(iteration++);
484
+
485
+ if (count > 0 && iteration >= count) {
486
+ var fnIndex;
487
+ deferred.resolve(iteration);
488
+
489
+ angular.forEach(repeatFns, function(fn, index) {
490
+ if (fn.id === promise.$$intervalId) fnIndex = index;
491
+ });
492
+
493
+ if (fnIndex !== undefined) {
494
+ repeatFns.splice(fnIndex, 1);
495
+ }
496
+ }
497
+
498
+ if (!skipApply) $rootScope.$apply();
499
+ }
500
+
501
+ repeatFns.push({
502
+ nextTime:(now + delay),
503
+ delay: delay,
504
+ fn: tick,
505
+ id: nextRepeatId,
506
+ deferred: deferred
507
+ });
508
+ repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;});
509
+
510
+ nextRepeatId++;
511
+ return promise;
512
+ };
513
+
514
+ $interval.cancel = function(promise) {
515
+ var fnIndex;
516
+
517
+ angular.forEach(repeatFns, function(fn, index) {
518
+ if (fn.id === promise.$$intervalId) fnIndex = index;
519
+ });
520
+
521
+ if (fnIndex !== undefined) {
522
+ repeatFns[fnIndex].deferred.reject('canceled');
523
+ repeatFns.splice(fnIndex, 1);
524
+ return true;
525
+ }
526
+
527
+ return false;
528
+ };
529
+
530
+ /**
531
+ * @ngdoc method
532
+ * @name ngMock.$interval#flush
533
+ * @methodOf ngMock.$interval
534
+ * @description
535
+ *
536
+ * Runs interval tasks scheduled to be run in the next `millis` milliseconds.
537
+ *
538
+ * @param {number=} millis maximum timeout amount to flush up until.
539
+ *
540
+ * @return {number} The amount of time moved forward.
541
+ */
542
+ $interval.flush = function(millis) {
543
+ now += millis;
544
+ while (repeatFns.length && repeatFns[0].nextTime <= now) {
545
+ var task = repeatFns[0];
546
+ task.fn();
547
+ task.nextTime += task.delay;
548
+ repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;});
549
+ }
550
+ return millis;
551
+ };
552
+
553
+ return $interval;
554
+ }];
555
+ };
556
+
557
+
558
+ /* jshint -W101 */
559
+ /* The R_ISO8061_STR regex is never going to fit into the 100 char limit!
560
+ * This directive should go inside the anonymous function but a bug in JSHint means that it would
561
+ * not be enacted early enough to prevent the warning.
562
+ */
457
563
  (function() {
458
564
  var R_ISO8061_STR = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/;
459
565
 
@@ -468,7 +574,10 @@ angular.mock.$LogProvider = function() {
468
574
  tzMin = int(match[9] + match[11]);
469
575
  }
470
576
  date.setUTCFullYear(int(match[1]), int(match[2]) - 1, int(match[3]));
471
- date.setUTCHours(int(match[4]||0) - tzHour, int(match[5]||0) - tzMin, int(match[6]||0), int(match[7]||0));
577
+ date.setUTCHours(int(match[4]||0) - tzHour,
578
+ int(match[5]||0) - tzMin,
579
+ int(match[6]||0),
580
+ int(match[7]||0));
472
581
  return date;
473
582
  }
474
583
  return string;
@@ -631,8 +740,8 @@ angular.mock.$LogProvider = function() {
631
740
  padNumber(self.origDate.getUTCHours(), 2) + ':' +
632
741
  padNumber(self.origDate.getUTCMinutes(), 2) + ':' +
633
742
  padNumber(self.origDate.getUTCSeconds(), 2) + '.' +
634
- padNumber(self.origDate.getUTCMilliseconds(), 3) + 'Z'
635
- }
743
+ padNumber(self.origDate.getUTCMilliseconds(), 3) + 'Z';
744
+ };
636
745
  }
637
746
 
638
747
  //hide all methods not implemented in this mock that the Date prototype exposes
@@ -645,7 +754,7 @@ angular.mock.$LogProvider = function() {
645
754
 
646
755
  angular.forEach(unimplementedMethods, function(methodName) {
647
756
  self[methodName] = function() {
648
- throw Error("Method '" + methodName + "' is not implemented in the TzDate mock");
757
+ throw new Error("Method '" + methodName + "' is not implemented in the TzDate mock");
649
758
  };
650
759
  });
651
760
 
@@ -655,6 +764,7 @@ angular.mock.$LogProvider = function() {
655
764
  //make "tzDateInstance instanceof Date" return true
656
765
  angular.mock.TzDate.prototype = Date.prototype;
657
766
  })();
767
+ /* jshint +W101 */
658
768
 
659
769
  angular.mock.animate = angular.module('mock.animate', ['ng'])
660
770
 
@@ -666,13 +776,18 @@ angular.mock.animate = angular.module('mock.animate', ['ng'])
666
776
  enabled : $delegate.enabled,
667
777
  flushNext : function(name) {
668
778
  var tick = animate.queue.shift();
669
- expect(tick.method).toBe(name);
779
+
780
+ if (!tick) throw new Error('No animation to be flushed');
781
+ if(tick.method !== name) {
782
+ throw new Error('The next animation is not "' + name +
783
+ '", but is "' + tick.method + '"');
784
+ }
670
785
  tick.fn();
671
786
  return tick;
672
787
  }
673
788
  };
674
789
 
675
- forEach(['enter','leave','move','addClass','removeClass'], function(method) {
790
+ angular.forEach(['enter','leave','move','addClass','removeClass'], function(method) {
676
791
  animate[method] = function() {
677
792
  var params = arguments;
678
793
  animate.queue.push({
@@ -701,9 +816,11 @@ angular.mock.animate = angular.module('mock.animate', ['ng'])
701
816
  *
702
817
  * *NOTE*: this is not an injectable instance, just a globally available function.
703
818
  *
704
- * Method for serializing common angular objects (scope, elements, etc..) into strings, useful for debugging.
819
+ * Method for serializing common angular objects (scope, elements, etc..) into strings, useful for
820
+ * debugging.
705
821
  *
706
- * This method is also available on window, where it can be used to display objects on debug console.
822
+ * This method is also available on window, where it can be used to display objects on debug
823
+ * console.
707
824
  *
708
825
  * @param {*} object - any object to turn into string.
709
826
  * @return {string} a serialized string of the argument
@@ -733,7 +850,8 @@ angular.mock.dump = function(object) {
733
850
  } else if (object instanceof Error) {
734
851
  out = object.stack || ('' + object.name + ': ' + object.message);
735
852
  } else {
736
- // TODO(i): this prevents methods to be logged, we should have a better way to serialize objects
853
+ // TODO(i): this prevents methods being logged,
854
+ // we should have a better way to serialize objects
737
855
  out = angular.toJson(object, true);
738
856
  }
739
857
  } else {
@@ -747,7 +865,7 @@ angular.mock.dump = function(object) {
747
865
  offset = offset || ' ';
748
866
  var log = [offset + 'Scope(' + scope.$id + '): {'];
749
867
  for ( var key in scope ) {
750
- if (scope.hasOwnProperty(key) && !key.match(/^(\$|this)/)) {
868
+ if (Object.prototype.hasOwnProperty.call(scope, key) && !key.match(/^(\$|this)/)) {
751
869
  log.push(' ' + key + ': ' + angular.toJson(scope[key]));
752
870
  }
753
871
  }
@@ -1032,7 +1150,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
1032
1150
 
1033
1151
  if (!expectation.matchHeaders(headers))
1034
1152
  throw new Error('Expected ' + expectation + ' with different headers\n' +
1035
- 'EXPECTED: ' + prettyPrint(expectation.headers) + '\nGOT: ' + prettyPrint(headers));
1153
+ 'EXPECTED: ' + prettyPrint(expectation.headers) + '\nGOT: ' +
1154
+ prettyPrint(headers));
1036
1155
 
1037
1156
  expectations.shift();
1038
1157
 
@@ -1051,7 +1170,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
1051
1170
  ($browser ? $browser.defer : responsesPush)(wrapResponse(definition));
1052
1171
  } else if (definition.passThrough) {
1053
1172
  $delegate(method, url, data, callback, headers, timeout, withCredentials);
1054
- } else throw Error('No response defined !');
1173
+ } else throw new Error('No response defined !');
1055
1174
  return;
1056
1175
  }
1057
1176
  }
@@ -1074,10 +1193,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
1074
1193
  * data string and returns true if the data is as expected.
1075
1194
  * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
1076
1195
  * object and returns true if the headers match the current definition.
1077
- * @returns {requestHandler} Returns an object with `respond` method that control how a matched
1196
+ * @returns {requestHandler} Returns an object with `respond` method that controls how a matched
1078
1197
  * request is handled.
1079
1198
  *
1080
- * - respond – `{function([status,] data[, headers])|function(function(method, url, data, headers)}`
1199
+ * - respond –
1200
+ * `{function([status,] data[, headers])|function(function(method, url, data, headers)}`
1081
1201
  * – The respond method takes a set of static data to be returned or a function that can return
1082
1202
  * an array containing response status (number), response data (string) and response headers
1083
1203
  * (Object).
@@ -1200,7 +1320,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
1200
1320
  * @returns {requestHandler} Returns an object with `respond` method that control how a matched
1201
1321
  * request is handled.
1202
1322
  *
1203
- * - respond – `{function([status,] data[, headers])|function(function(method, url, data, headers)}`
1323
+ * - respond –
1324
+ * `{function([status,] data[, headers])|function(function(method, url, data, headers)}`
1204
1325
  * – The respond method takes a set of static data to be returned or a function that can return
1205
1326
  * an array containing response status (number), response data (string) and response headers
1206
1327
  * (Object).
@@ -1330,11 +1451,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
1330
1451
  */
1331
1452
  $httpBackend.flush = function(count) {
1332
1453
  $rootScope.$digest();
1333
- if (!responses.length) throw Error('No pending request to flush !');
1454
+ if (!responses.length) throw new Error('No pending request to flush !');
1334
1455
 
1335
1456
  if (angular.isDefined(count)) {
1336
1457
  while (count--) {
1337
- if (!responses.length) throw Error('No more pending request to flush !');
1458
+ if (!responses.length) throw new Error('No more pending request to flush !');
1338
1459
  responses.shift()();
1339
1460
  }
1340
1461
  } else {
@@ -1385,7 +1506,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
1385
1506
  */
1386
1507
  $httpBackend.verifyNoOutstandingRequest = function() {
1387
1508
  if (responses.length) {
1388
- throw Error('Unflushed requests: ' + responses.length);
1509
+ throw new Error('Unflushed requests: ' + responses.length);
1389
1510
  }
1390
1511
  };
1391
1512
 
@@ -1410,14 +1531,14 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
1410
1531
  function createShortMethods(prefix) {
1411
1532
  angular.forEach(['GET', 'DELETE', 'JSONP'], function(method) {
1412
1533
  $httpBackend[prefix + method] = function(url, headers) {
1413
- return $httpBackend[prefix](method, url, undefined, headers)
1414
- }
1534
+ return $httpBackend[prefix](method, url, undefined, headers);
1535
+ };
1415
1536
  });
1416
1537
 
1417
1538
  angular.forEach(['PUT', 'POST', 'PATCH'], function(method) {
1418
1539
  $httpBackend[prefix + method] = function(url, data, headers) {
1419
- return $httpBackend[prefix](method, url, data, headers)
1420
- }
1540
+ return $httpBackend[prefix](method, url, data, headers);
1541
+ };
1421
1542
  });
1422
1543
  }
1423
1544
  }
@@ -1482,7 +1603,8 @@ function MockXhr() {
1482
1603
  };
1483
1604
 
1484
1605
  this.getResponseHeader = function(name) {
1485
- // the lookup must be case insensitive, that's why we try two quick lookups and full scan at last
1606
+ // the lookup must be case insensitive,
1607
+ // that's why we try two quick lookups first and full scan last
1486
1608
  var header = this.$$respHeaders[name];
1487
1609
  if (header) return header;
1488
1610
 
@@ -1543,7 +1665,8 @@ angular.mock.$TimeoutDecorator = function($delegate, $browser) {
1543
1665
  *
1544
1666
  * Flushes the next timeout in the queue and compares it to the provided delay
1545
1667
  *
1546
- * @param {number=} expectedDelay the delay value that will be asserted against the delay of the next timeout function
1668
+ * @param {number=} expectedDelay the delay value that will be asserted against the delay of the
1669
+ * next timeout function
1547
1670
  */
1548
1671
  $delegate.flushNext = function(expectedDelay) {
1549
1672
  $browser.defer.flushNext(expectedDelay);
@@ -1582,7 +1705,7 @@ angular.mock.$TimeoutDecorator = function($delegate, $browser) {
1582
1705
  angular.mock.$RootElementProvider = function() {
1583
1706
  this.$get = function() {
1584
1707
  return angular.element('<div ng-app></div>');
1585
- }
1708
+ };
1586
1709
  };
1587
1710
 
1588
1711
  /**
@@ -1590,18 +1713,27 @@ angular.mock.$RootElementProvider = function() {
1590
1713
  * @name ngMock
1591
1714
  * @description
1592
1715
  *
1593
- * The `ngMock` is an angular module which is used with `ng` module and adds unit-test configuration as well as useful
1594
- * mocks to the {@link AUTO.$injector $injector}.
1716
+ * # ngMock
1717
+ *
1718
+ * The `ngMock` module providers support to inject and mock Angular services into unit tests.
1719
+ * In addition, ngMock also extends various core ng services such that they can be
1720
+ * inspected and controlled in a synchronous manner within test code.
1721
+ *
1722
+ * {@installModule mocks}
1723
+ *
1724
+ * <div doc-module-components="ngMock"></div>
1725
+ *
1595
1726
  */
1596
1727
  angular.module('ngMock', ['ng']).provider({
1597
1728
  $browser: angular.mock.$BrowserProvider,
1598
1729
  $exceptionHandler: angular.mock.$ExceptionHandlerProvider,
1599
1730
  $log: angular.mock.$LogProvider,
1731
+ $interval: angular.mock.$IntervalProvider,
1600
1732
  $httpBackend: angular.mock.$HttpBackendProvider,
1601
1733
  $rootElement: angular.mock.$RootElementProvider
1602
- }).config(function($provide) {
1734
+ }).config(['$provide', function($provide) {
1603
1735
  $provide.decorator('$timeout', angular.mock.$TimeoutDecorator);
1604
- });
1736
+ }]);
1605
1737
 
1606
1738
  /**
1607
1739
  * @ngdoc overview
@@ -1612,9 +1744,9 @@ angular.module('ngMock', ['ng']).provider({
1612
1744
  * Currently there is only one mock present in this module -
1613
1745
  * the {@link ngMockE2E.$httpBackend e2e $httpBackend} mock.
1614
1746
  */
1615
- angular.module('ngMockE2E', ['ng']).config(function($provide) {
1747
+ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
1616
1748
  $provide.decorator('$httpBackend', angular.mock.e2e.$httpBackendDecorator);
1617
- });
1749
+ }]);
1618
1750
 
1619
1751
  /**
1620
1752
  * @ngdoc object
@@ -1679,7 +1811,8 @@ angular.module('ngMockE2E', ['ng']).config(function($provide) {
1679
1811
  * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
1680
1812
  * control how a matched request is handled.
1681
1813
  *
1682
- * - respond – `{function([status,] data[, headers])|function(function(method, url, data, headers)}`
1814
+ * - respond –
1815
+ * `{function([status,] data[, headers])|function(function(method, url, data, headers)}`
1683
1816
  * – The respond method takes a set of static data to be returned or a function that can return
1684
1817
  * an array containing response status (number), response data (string) and response headers
1685
1818
  * (Object).
@@ -1781,7 +1914,8 @@ angular.module('ngMockE2E', ['ng']).config(function($provide) {
1781
1914
  * control how a matched request is handled.
1782
1915
  */
1783
1916
  angular.mock.e2e = {};
1784
- angular.mock.e2e.$httpBackendDecorator = ['$rootScope', '$delegate', '$browser', createHttpBackendMock];
1917
+ angular.mock.e2e.$httpBackendDecorator =
1918
+ ['$rootScope', '$delegate', '$browser', createHttpBackendMock];
1785
1919
 
1786
1920
 
1787
1921
  angular.mock.clearDataCache = function() {
@@ -1789,7 +1923,7 @@ angular.mock.clearDataCache = function() {
1789
1923
  cache = angular.element.cache;
1790
1924
 
1791
1925
  for(key in cache) {
1792
- if (cache.hasOwnProperty(key)) {
1926
+ if (Object.prototype.hasOwnProperty.call(cache,key)) {
1793
1927
  var handle = cache[key].handle;
1794
1928
 
1795
1929
  handle && angular.element(handle.elem).off();
@@ -1851,9 +1985,11 @@ angular.mock.clearDataCache = function() {
1851
1985
  *
1852
1986
  * See {@link angular.mock.inject inject} for usage example
1853
1987
  *
1854
- * @param {...(string|Function)} fns any number of modules which are represented as string
1988
+ * @param {...(string|Function|Object)} fns any number of modules which are represented as string
1855
1989
  * aliases or as anonymous module initialization functions. The modules are used to
1856
- * configure the injector. The 'ng' and 'ngMock' modules are automatically loaded.
1990
+ * configure the injector. The 'ng' and 'ngMock' modules are automatically loaded. If an
1991
+ * object literal is passed they will be register as values in the module, the key being
1992
+ * the module name and the value being what is returned.
1857
1993
  */
1858
1994
  window.module = angular.mock.module = function() {
1859
1995
  var moduleFns = Array.prototype.slice.call(arguments, 0);
@@ -1861,11 +1997,19 @@ angular.mock.clearDataCache = function() {
1861
1997
  /////////////////////
1862
1998
  function workFn() {
1863
1999
  if (currentSpec.$injector) {
1864
- throw Error('Injector already created, can not register a module!');
2000
+ throw new Error('Injector already created, can not register a module!');
1865
2001
  } else {
1866
2002
  var modules = currentSpec.$modules || (currentSpec.$modules = []);
1867
2003
  angular.forEach(moduleFns, function(module) {
1868
- modules.push(module);
2004
+ if (angular.isObject(module) && !angular.isArray(module)) {
2005
+ modules.push(function($provide) {
2006
+ angular.forEach(module, function(value, key) {
2007
+ $provide.value(key, value);
2008
+ });
2009
+ });
2010
+ } else {
2011
+ modules.push(module);
2012
+ }
1869
2013
  });
1870
2014
  }
1871
2015
  }
@@ -1882,8 +2026,40 @@ angular.mock.clearDataCache = function() {
1882
2026
  * instance of {@link AUTO.$injector $injector} per test, which is then used for
1883
2027
  * resolving references.
1884
2028
  *
1885
- * See also {@link angular.mock.module module}
1886
2029
  *
2030
+ * ## Resolving References (Underscore Wrapping)
2031
+ * Often, we would like to inject a reference once, in a `beforeEach()` block and reuse this
2032
+ * in multiple `it()` clauses. To be able to do this we must assign the reference to a variable
2033
+ * that is declared in the scope of the `describe()` block. Since we would, most likely, want
2034
+ * the variable to have the same name of the reference we have a problem, since the parameter
2035
+ * to the `inject()` function would hide the outer variable.
2036
+ *
2037
+ * To help with this, the injected parameters can, optionally, be enclosed with underscores.
2038
+ * These are ignored by the injector when the reference name is resolved.
2039
+ *
2040
+ * For example, the parameter `_myService_` would be resolved as the reference `myService`.
2041
+ * Since it is available in the function body as _myService_, we can then assign it to a variable
2042
+ * defined in an outer scope.
2043
+ *
2044
+ * ```
2045
+ * // Defined out reference variable outside
2046
+ * var myService;
2047
+ *
2048
+ * // Wrap the parameter in underscores
2049
+ * beforeEach( inject( function(_myService_){
2050
+ * myService = _myService_;
2051
+ * }));
2052
+ *
2053
+ * // Use myService in a series of tests.
2054
+ * it('makes use of myService', function() {
2055
+ * myService.doStuff();
2056
+ * });
2057
+ *
2058
+ * ```
2059
+ *
2060
+ * See also {@link angular.mock.module angular.mock.module}
2061
+ *
2062
+ * ## Example
1887
2063
  * Example of what a typical jasmine tests looks like with the inject method.
1888
2064
  * <pre>
1889
2065
  *
@@ -1916,7 +2092,7 @@ angular.mock.clearDataCache = function() {
1916
2092
  * inject(function(version) {
1917
2093
  * expect(version).toEqual('overridden');
1918
2094
  * });
1919
- * ));
2095
+ * });
1920
2096
  * });
1921
2097
  *
1922
2098
  * </pre>
@@ -1939,7 +2115,9 @@ angular.mock.clearDataCache = function() {
1939
2115
  }
1940
2116
  for(var i = 0, ii = blockFns.length; i < ii; i++) {
1941
2117
  try {
2118
+ /* jshint -W040 *//* Jasmine explicitly provides a `this` object when calling functions */
1942
2119
  injector.invoke(blockFns[i] || angular.noop, this);
2120
+ /* jshint +W040 */
1943
2121
  } catch (e) {
1944
2122
  if(e.stack && errorForStack) e.stack += '\n' + errorForStack.stack;
1945
2123
  throw e;
@@ -1949,4 +2127,4 @@ angular.mock.clearDataCache = function() {
1949
2127
  }
1950
2128
  }
1951
2129
  };
1952
- })(window);
2130
+ })(window);