angular-rails-engine 1.2.5.0 → 1.2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) 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 +461 -195
  6. data/app/assets/javascripts/angular/angular-animate.min.js +23 -18
  7. data/app/assets/javascripts/angular/angular-cookies.js +1 -1
  8. data/app/assets/javascripts/angular/angular-cookies.min.js +2 -1
  9. data/app/assets/javascripts/angular/angular-loader.js +2 -2
  10. data/app/assets/javascripts/angular/angular-loader.min.js +3 -2
  11. data/app/assets/javascripts/angular/angular-mocks.js +54 -34
  12. data/app/assets/javascripts/angular/angular-resource.js +36 -5
  13. data/app/assets/javascripts/angular/angular-resource.min.js +9 -8
  14. data/app/assets/javascripts/angular/angular-route.js +25 -15
  15. data/app/assets/javascripts/angular/angular-route.min.js +10 -9
  16. data/app/assets/javascripts/angular/angular-sanitize.js +35 -32
  17. data/app/assets/javascripts/angular/angular-sanitize.min.js +3 -2
  18. data/app/assets/javascripts/angular/angular-scenario.js +1472 -966
  19. data/app/assets/javascripts/angular/angular-touch.js +1 -1
  20. data/app/assets/javascripts/angular/angular-touch.min.js +2 -1
  21. data/app/assets/javascripts/angular/angular.js +1470 -965
  22. data/app/assets/javascripts/angular/angular.min.js +200 -196
  23. data/app/assets/stylesheets/angular/angular-csp.css +18 -0
  24. data/gem-public_cert.pem +11 -10
  25. data/lib/angular-rails-engine.rb +1 -1
  26. data/lib/angular-rails-engine/version.rb +1 -1
  27. metadata +14 -13
  28. metadata.gz.sig +0 -0
  29. data/app/assets/stylesheets/angular-csp.css +0 -24
@@ -1,22 +1,27 @@
1
1
  /*
2
- AngularJS v1.2.5
2
+ AngularJS v1.2.13
3
3
  (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
6
- (function(C,k,F){'use strict';k.module("ngAnimate",["ng"]).config(["$provide","$animateProvider",function(M,G){function l(l){for(var h=0;h<l.length;h++){var m=l[h];if(m.nodeType==T)return m}}var s=k.noop,m=k.forEach,N=G.$$selectors,T=1,h="$$ngAnimateState",J="ng-animate",g={running:!0};M.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$timeout","$rootScope","$document",function(H,C,I,n,t,q,F){function O(a){if(a){var c=[],e={};a=a.substr(1).split(".");(I.transitions||I.animations)&&
7
- a.push("");for(var f=0;f<a.length;f++){var b=a[f],l=N[b];l&&!e[b]&&(c.push(C.get(l)),e[b]=!0)}return c}}function p(a,c,e,f,b,g,q){function x(a){v();if(!0===a)w();else{if(a=e.data(h))a.done=w,e.data(h,a);p(y,"after",w)}}function p(f,b,l){var h=b+"End";m(f,function(m,g){var d=function(){a:{var d=b+"Complete",a=f[g];a[d]=!0;(a[h]||s)();for(a=0;a<f.length;a++)if(!f[a][d])break a;l()}};"before"!=b||"enter"!=a&&"move"!=a?m[b]?m[h]=z?m[b](e,c,d):m[b](e,d):d():d()})}function n(){q&&t(q,0,!1)}function v(){v.hasBeenRun||
8
- (v.hasBeenRun=!0,g())}function w(){if(!w.hasBeenRun){w.hasBeenRun=!0;var a=e.data(h);a&&(z?A(e):(a.closeAnimationTimeout=t(function(){A(e)},0,!1),e.data(h,a)));n()}}var u=l(e);if(u){var u=u.className,k=(" "+(u+" "+c)).replace(/\s+/g,".");f||(f=b?b.parent():e.parent());var k=O(k),z="addClass"==a||"removeClass"==a;b=e.data(h)||{};if(K(e,f)||0===k.length)v(),w();else{var y=[];b.running&&z&&b.structural||m(k,function(b){if(!b.allowCancel||b.allowCancel(e,a,c)){var f=b[a];"leave"==a?(b=f,f=null):b=b["before"+
9
- a.charAt(0).toUpperCase()+a.substr(1)];y.push({before:b,after:f})}});0===y.length?(v(),n()):(f=" "+u+" ",b.running&&(t.cancel(b.closeAnimationTimeout),A(e),L(b.animations),b.beforeComplete?(b.done||s)(!0):z&&!b.structural&&(f="removeClass"==b.event?f.replace(b.className,""):f+b.className+" ")),u=" "+c+" ","addClass"==a&&0<=f.indexOf(u)||"removeClass"==a&&-1==f.indexOf(u)?(v(),n()):(e.addClass(J),e.data(h,{running:!0,event:a,className:c,structural:!z,animations:y,done:x}),p(y,"before",x)))}}else v(),
10
- w()}function E(a){a=l(a);m(a.querySelectorAll("."+J),function(a){a=k.element(a);var e=a.data(h);e&&(L(e.animations),A(a))})}function L(a){m(a,function(c){a.beforeComplete||(c.beforeEnd||s)(!0);a.afterComplete||(c.afterEnd||s)(!0)})}function A(a){l(a)==l(n)?g.disabled||(g.running=!1,g.structural=!1):(a.removeClass(J),a.removeData(h))}function K(a,c){if(g.disabled)return!0;if(l(a)==l(n))return g.disabled||g.running;do{if(0===c.length)break;var e=l(c)==l(n),f=e?g:c.data(h),f=f&&(!!f.disabled||!!f.running);
11
- if(e||f)return f;if(e)break}while(c=c.parent());return!0}n.data(h,g);q.$$postDigest(function(){q.$$postDigest(function(){g.running=!1})});return{enter:function(a,c,e,f){this.enabled(!1,a);H.enter(a,c,e);q.$$postDigest(function(){p("enter","ng-enter",a,c,e,s,f)})},leave:function(a,c){E(a);this.enabled(!1,a);q.$$postDigest(function(){p("leave","ng-leave",a,null,null,function(){H.leave(a)},c)})},move:function(a,c,e,f){E(a);this.enabled(!1,a);H.move(a,c,e);q.$$postDigest(function(){p("move","ng-move",
12
- a,c,e,s,f)})},addClass:function(a,c,e){p("addClass",c,a,null,null,function(){H.addClass(a,c)},e)},removeClass:function(a,c,e){p("removeClass",c,a,null,null,function(){H.removeClass(a,c)},e)},enabled:function(a,c){switch(arguments.length){case 2:if(a)A(c);else{var e=c.data(h)||{};e.disabled=!0;c.data(h,e)}break;case 1:g.disabled=!a;break;default:a=!g.disabled}return!!a}}}]);G.register("",["$window","$sniffer","$timeout",function(h,g,I){function n(d){R.push(d);I.cancel(S);S=I(function(){m(R,function(d){d()});
13
- R=[];S=null;D={}},10,!1)}function t(d,a){var b=a?D[a]:null;if(!b){var e=0,c=0,f=0,l=0,g,k,n,p;m(d,function(d){if(d.nodeType==T){d=h.getComputedStyle(d)||{};n=d[B+G];e=Math.max(q(n),e);p=d[B+v];g=d[B+w];c=Math.max(q(g),c);k=d[x+w];l=Math.max(q(k),l);var a=q(d[x+G]);0<a&&(a*=parseInt(d[x+u],10)||1);f=Math.max(a,f)}});b={total:0,transitionPropertyStyle:p,transitionDurationStyle:n,transitionDelayStyle:g,transitionDelay:c,transitionDuration:e,animationDelayStyle:k,animationDelay:l,animationDuration:f};
14
- a&&(D[a]=b)}return b}function q(d){var a=0;d=k.isString(d)?d.split(/\s*,\s*/):[];m(d,function(d){a=Math.max(parseFloat(d)||0,a)});return a}function J(d){var a=d.parent(),b=a.data(V);b||(a.data(V,++U),b=U);return b+"-"+l(d).className}function O(d,a){var b=J(d),e=b+" "+a,c={},f=D[e]?++D[e].total:0;if(0<f){var h=a+"-stagger",c=b+" "+h;(b=!D[c])&&d.addClass(h);c=t(d,c);b&&d.removeClass(h)}d.addClass(a);e=t(d,e);h=Math.max(e.transitionDuration,e.animationDuration);if(0===h)return d.removeClass(a),!1;var g=
15
- "";0<e.transitionDuration?(d.addClass(y),g+=M+" ",l(d).style[B+v]="none"):l(d).style[x]="none 0s";m(a.split(" "),function(d,a){g+=(0<a?" ":"")+d+"-active"});d.data(z,{className:a,activeClassName:g,maxDuration:h,classes:a+" "+g,timings:e,stagger:c,ii:f});return!0}function p(d){var a=B+v;d=l(d);d.style[a]&&0<d.style[a].length&&(d.style[a]="")}function E(d){var a=x;d=l(d);d.style[a]&&0<d.style[a].length&&(d.style[a]="")}function L(a,c,f){function h(a){a.stopPropagation();var d=a.originalEvent||a;a=d.$manualTimeStamp||
16
- d.timeStamp||Date.now();d=parseFloat(d.elapsedTime.toFixed(N));Math.max(a-x,0)>=v&&d>=p&&f()}var r=a.data(z),m=l(a);if(-1!=m.className.indexOf(c)&&r){var k=r.timings,n=r.stagger,p=r.maxDuration,q=r.activeClassName,v=1E3*Math.max(k.transitionDelay,k.animationDelay),x=Date.now(),w=Q+" "+P,u=r.ii,y,r="",s=[];if(0<k.transitionDuration){var t=k.transitionPropertyStyle;-1==t.indexOf("all")&&(y=!0,r+=b+"transition-property: "+t+", "+(g.msie?"-ms-zoom":"border-spacing")+"; ",r+=b+"transition-duration: "+
17
- k.transitionDurationStyle+", "+k.transitionDuration+"s; ",s.push(b+"transition-property"),s.push(b+"transition-duration"))}0<u&&(0<n.transitionDelay&&0===n.transitionDuration&&(t=k.transitionDelayStyle,y&&(t+=", "+k.transitionDelay+"s"),r+=b+"transition-delay: "+A(t,n.transitionDelay,u)+"; ",s.push(b+"transition-delay")),0<n.animationDelay&&0===n.animationDuration&&(r+=b+"animation-delay: "+A(k.animationDelayStyle,n.animationDelay,u)+"; ",s.push(b+"animation-delay")));0<s.length&&(k=m.getAttribute("style")||
18
- "",m.setAttribute("style",k+" "+r));a.on(w,h);a.addClass(q);return function(b){a.off(w,h);a.removeClass(q);e(a,c);b=l(a);for(var f in s)b.style.removeProperty(s[f])}}f()}function A(a,b,e){var c="";m(a.split(","),function(a,d){c+=(0<d?",":"")+(e*b+parseInt(a,10))+"s"});return c}function K(a,b){if(O(a,b))return function(c){c&&e(a,b)}}function a(a,b,c){if(a.data(z))return L(a,b,c);e(a,b);c()}function c(d,b,c){var e=K(d,b);if(e){var f=e;n(function(){p(d);E(d);f=a(d,b,c)});return function(a){(f||s)(a)}}c()}
19
- function e(a,b){a.removeClass(b);a.removeClass(y);a.removeData(z)}function f(a,b){var c="";a=k.isArray(a)?a:a.split(/\s+/);m(a,function(a,d){a&&0<a.length&&(c+=(0<d?" ":"")+a+b)});return c}var b="",B,P,x,Q;C.ontransitionend===F&&C.onwebkittransitionend!==F?(b="-webkit-",B="WebkitTransition",P="webkitTransitionEnd transitionend"):(B="transition",P="transitionend");C.onanimationend===F&&C.onwebkitanimationend!==F?(b="-webkit-",x="WebkitAnimation",Q="webkitAnimationEnd animationend"):(x="animation",
20
- Q="animationend");var G="Duration",v="Property",w="Delay",u="IterationCount",V="$$ngAnimateKey",z="$$ngAnimateCSS3Data",y="ng-animate-start",M="ng-animate-active",N=3,D={},U=0,R=[],S;return{allowCancel:function(a,b,c){var e=(a.data(z)||{}).classes;if(!e||0<=["enter","leave","move"].indexOf(b))return!0;var h=a.parent(),g=k.element(l(a).cloneNode());g.attr("style","position:absolute; top:-9999px; left:-9999px");g.removeAttr("id");g.empty();m(e.split(" "),function(a){g.removeClass(a)});g.addClass(f(c,
21
- "addClass"==b?"-add":"-remove"));h.append(g);a=t(g);g.remove();return 0<Math.max(a.transitionDuration,a.animationDuration)},enter:function(a,b){return c(a,"ng-enter",b)},leave:function(a,b){return c(a,"ng-leave",b)},move:function(a,b){return c(a,"ng-move",b)},beforeAddClass:function(a,b,c){if(b=K(a,f(b,"-add")))return n(function(){p(a);E(a);c()}),b;c()},addClass:function(b,c,e){return a(b,f(c,"-add"),e)},beforeRemoveClass:function(a,b,c){if(b=K(a,f(b,"-remove")))return n(function(){p(a);E(a);c()}),
22
- b;c()},removeClass:function(b,c,e){return a(b,f(c,"-remove"),e)}}}])}])})(window,window.angular);
6
+ (function(z,f,T){'use strict';f.module("ngAnimate",["ng"]).factory("$$animateReflow",["$window","$timeout","$document",function(f,h,d){var n=f.requestAnimationFrame||f.webkitRequestAnimationFrame||function(d){return h(d,10,!1)},w=f.cancelAnimationFrame||f.webkitCancelAnimationFrame||function(d){return h.cancel(d)};return function(d){var f=n(function(){d()});return function(){w(f)}}}]).factory("$$asyncQueueBuffer",["$timeout",function(f){var h,d=[];return function(n){f.cancel(h);d.push(n);h=f(function(){for(var f=
7
+ 0;f<d.length;f++)d[f]();d=[]},0,!1)}}]).config(["$provide","$animateProvider",function($,h){function d(d){for(var f=0;f<d.length;f++){var l=d[f];if(l.nodeType==da)return l}}function n(l){return f.element(d(l))}var w=f.noop,D=f.forEach,ia=h.$$selectors,da=1,l="$$ngAnimateState",U="ng-animate",s={running:!0};$.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$$asyncQueueBuffer","$rootScope","$document",function(x,z,ca,F,J,B,T){function V(a){if(a){var c=[],e={};a=a.substr(1).split(".");
8
+ (ca.transitions||ca.animations)&&a.push("");for(var A=0;A<a.length;A++){var d=a[A],f=ia[d];f&&!e[d]&&(c.push(z.get(f)),e[d]=!0)}return c}}function t(a,c,e,d,k,C,s){function t(b){var g=e.data(l);b=b||!g||!g.active[c]||m&&g.active[c].event!=a;K();!0===b?G():(g.active[c].done=G,n(L,"after",G))}function n(b,g,ja){"after"==g?H():x();var fa=g+"End";D(b,function(d,f){var A=function(){a:{var a=g+"Complete",c=b[f];c[a]=!0;(c[fa]||w)();for(c=0;c<b.length;c++)if(!b[c][a])break a;ja()}};"before"!=g||"enter"!=
9
+ a&&"move"!=a?d[g]?d[fa]=F?d[g](e,E,z,A):m?d[g](e,c,A):d[g](e,A):A():A()})}function h(b){var g="$animate:"+b;u&&(u[g]&&0<u[g].length)&&J(function(){e.triggerHandler(g,{event:a,className:c})})}function x(){h("before")}function H(){h("after")}function B(){h("close");s&&J(function(){s()})}function K(){K.hasBeenRun||(K.hasBeenRun=!0,C())}function G(){if(!G.hasBeenRun){G.hasBeenRun=!0;var b=e.data(l);b&&(m?M(e,c):(J(function(){var b=e.data(l)||{};Q==b.index&&M(e,c,a)}),e.data(l,b)));B()}}var E,z,F="setClass"==
10
+ a;F&&(E=c[0],z=c[1],c=E+" "+z);var v,y=e[0];y&&(v=y.className,v=v+" "+c);if(y&&W(v)){var u=f.element._data(y),u=u&&u.events,y=(" "+v).replace(/\s+/g,".");d||(d=k?k.parent():e.parent());var q=V(y),m="addClass"==a||"removeClass"==a||F,I=e.data(l)||{};k=I.active||{};y=I.totalActive||0;v=I.last;if(R(e,d)||0===q.length)K(),x(),H(),G();else{var L=[];m&&(I.disabled||v&&!v.classBased)||D(q,function(b){if(!b.allowCancel||b.allowCancel(e,a,c)){var g=b[a];"leave"==a?(b=g,g=null):b=b["before"+a.charAt(0).toUpperCase()+
11
+ a.substr(1)];L.push({before:b,after:g})}});if(0===L.length)K(),x(),H(),B();else{d=!1;if(0<y){q=[];if(m)"setClass"==v.event?(q.push(v),M(e,c)):k[c]&&(N=k[c],N.event==a?d=!0:(q.push(N),M(e,c)));else if("leave"==a&&k["ng-leave"])d=!0;else{for(var N in k)q.push(k[N]),M(e,N);k={};y=0}0<q.length&&f.forEach(q,function(b){(b.done||w)(!0);X(b.animations)})}!m||(F||d)||(d="addClass"==a==e.hasClass(c));if(d)x(),H(),B();else{e.addClass(U);var Q=S++;v={classBased:m,event:a,animations:L,done:t};y++;k[c]=v;e.data(l,
12
+ {last:v,active:k,index:Q,totalActive:y});n(L,"before",t)}}}}else K(),x(),H(),B()}function Y(a){a=d(a);D(a.querySelectorAll("."+U),function(a){a=f.element(a);(a=a.data(l))&&a.active&&f.forEach(a.active,function(a){(a.done||w)(!0);X(a.animations)})})}function X(a){D(a,function(a){a.beforeComplete||(a.beforeEnd||w)(!0);a.afterComplete||(a.afterEnd||w)(!0)})}function M(a,c){if(d(a)==d(F))s.disabled||(s.running=!1,s.structural=!1);else if(c){var e=a.data(l)||{},f=!0===c;!f&&(e.active&&e.active[c])&&(e.totalActive--,
13
+ delete e.active[c]);if(f||!e.totalActive)a.removeClass(U),a.removeData(l)}}function R(a,c){if(s.disabled)return!0;if(d(a)==d(F))return s.disabled||s.running;do{if(0===c.length)break;var e=d(c)==d(F),f=e?s:c.data(l),f=f&&(!!f.disabled||f.running||0<f.totalActive);if(e||f)return f;if(e)break}while(c=c.parent());return!0}var S=0;F.data(l,s);B.$$postDigest(function(){B.$$postDigest(function(){s.running=!1})});var Z=h.classNameFilter(),W=Z?function(a){return Z.test(a)}:function(){return!0};return{enter:function(a,
14
+ c,e,d){this.enabled(!1,a);x.enter(a,c,e);B.$$postDigest(function(){a=n(a);t("enter","ng-enter",a,c,e,w,d)})},leave:function(a,c){Y(a);this.enabled(!1,a);B.$$postDigest(function(){a=n(a);t("leave","ng-leave",a,null,null,function(){x.leave(a)},c)})},move:function(a,c,e,d){Y(a);this.enabled(!1,a);x.move(a,c,e);B.$$postDigest(function(){a=n(a);t("move","ng-move",a,c,e,w,d)})},addClass:function(a,c,d){a=n(a);t("addClass",c,a,null,null,function(){x.addClass(a,c)},d)},removeClass:function(a,c,d){a=n(a);
15
+ t("removeClass",c,a,null,null,function(){x.removeClass(a,c)},d)},setClass:function(a,c,d,f){a=n(a);t("setClass",[c,d],a,null,null,function(){x.setClass(a,c,d)},f)},enabled:function(a,c){switch(arguments.length){case 2:if(a)M(c);else{var d=c.data(l)||{};d.disabled=!0;c.data(l,d)}break;case 1:s.disabled=!a;break;default:a=!s.disabled}return!!a}}}]);h.register("",["$window","$sniffer","$timeout","$$animateReflow",function(l,s,h,n){function J(b,g){I&&I();m.push(g);I=n(function(){D(m,function(b){b()});
16
+ m=[];I=null;u={}})}function B(b,g){var a=Date.now()+1E3*g;if(!(a<=N)){h.cancel(L);var c=d(b);b=f.element(c);Q.push(b);N=a;L=h(function(){U(Q);Q=[]},g,!1)}}function U(b){D(b,function(b){(b=b.data(E))&&(b.closeAnimationFn||w)()})}function V(b,g){var a=g?u[g]:null;if(!a){var c=0,d=0,f=0,e=0,k,p,r,h;D(b,function(b){if(b.nodeType==da){b=l.getComputedStyle(b)||{};r=b[O+ea];c=Math.max(t(r),c);h=b[O+H];k=b[O+ha];d=Math.max(t(k),d);p=b[P+ha];e=Math.max(t(p),e);var g=t(b[P+ea]);0<g&&(g*=parseInt(b[P+K],10)||
17
+ 1);f=Math.max(g,f)}});a={total:0,transitionPropertyStyle:h,transitionDurationStyle:r,transitionDelayStyle:k,transitionDelay:d,transitionDuration:c,animationDelayStyle:p,animationDelay:e,animationDuration:f};g&&(u[g]=a)}return a}function t(b){var g=0;b=f.isString(b)?b.split(/\s*,\s*/):[];D(b,function(b){g=Math.max(parseFloat(b)||0,g)});return g}function Y(b){var g=b.parent(),a=g.data(G);a||(g.data(G,++q),a=q);return a+"-"+d(b).className}function X(b,g,a,c){var e=Y(g),k=e+" "+a,l=u[k]?++u[k].total:
18
+ 0,h={};if(0<l){var p=a+"-stagger",h=e+" "+p;(e=!u[h])&&g.addClass(p);h=V(g,h);e&&g.removeClass(p)}c=c||function(b){return b()};g.addClass(a);var p=g.data(E)||{},r=c(function(){return V(g,k)});c=r.transitionDuration;e=r.animationDuration;if(0===c&&0===e)return g.removeClass(a),!1;g.data(E,{running:p.running||0,itemIndex:l,stagger:h,timings:r,closeAnimationFn:f.noop});b=0<p.running||"setClass"==b;0<c&&M(g,a,b);0<e&&(d(g).style[P]="none 0s");return!0}function M(b,a,c){"ng-enter"!=a&&("ng-move"!=a&&"ng-leave"!=
19
+ a)&&c?b.addClass(ga):d(b).style[O+H]="none"}function R(b,a){var c=O+H,e=d(b);e.style[c]&&0<e.style[c].length&&(e.style[c]="");b.removeClass(ga)}function S(b){var a=P;b=d(b);b.style[a]&&0<b.style[a].length&&(b.style[a]="")}function Z(b,a,c,e){function f(b){a.off(w,k);a.removeClass(l);A(a,c);b=d(a);for(var e in q)b.style.removeProperty(q[e])}function k(b){b.stopPropagation();var a=b.originalEvent||b;b=a.$manualTimeStamp||a.timeStamp||Date.now();a=parseFloat(a.elapsedTime.toFixed($));Math.max(b-x,0)>=
20
+ u&&a>=s&&e()}var h=d(a);b=a.data(E);if(-1!=h.className.indexOf(c)&&b){var l="";D(c.split(" "),function(b,a){l+=(0<a?" ":"")+b+"-active"});var p=b.stagger,r=b.timings,n=b.itemIndex,s=Math.max(r.transitionDuration,r.animationDuration),t=Math.max(r.transitionDelay,r.animationDelay),u=t*y,x=Date.now(),w=ba+" "+aa,m="",q=[];if(0<r.transitionDuration){var z=r.transitionPropertyStyle;-1==z.indexOf("all")&&(m+=C+"transition-property: "+z+";",m+=C+"transition-duration: "+r.transitionDurationStyle+";",q.push(C+
21
+ "transition-property"),q.push(C+"transition-duration"))}0<n&&(0<p.transitionDelay&&0===p.transitionDuration&&(m+=C+"transition-delay: "+W(r.transitionDelayStyle,p.transitionDelay,n)+"; ",q.push(C+"transition-delay")),0<p.animationDelay&&0===p.animationDuration&&(m+=C+"animation-delay: "+W(r.animationDelayStyle,p.animationDelay,n)+"; ",q.push(C+"animation-delay")));0<q.length&&(r=h.getAttribute("style")||"",h.setAttribute("style",r+" "+m));a.on(w,k);a.addClass(l);b.closeAnimationFn=function(){f();
22
+ e()};h=(n*(Math.max(p.animationDelay,p.transitionDelay)||0)+(t+s)*v)*y;b.running++;B(a,h);return f}e()}function W(b,a,c){var d="";D(b.split(","),function(b,e){d+=(0<e?",":"")+(c*a+parseInt(b,10))+"s"});return d}function a(b,a,c,d){if(X(b,a,c,d))return function(b){b&&A(a,c)}}function c(b,a,c,d){if(a.data(E))return Z(b,a,c,d);A(a,c);d()}function e(b,g,d,e){var f=a(b,g,d);if(f){var h=f;J(g,function(){R(g,d);S(g);h=c(b,g,d,e)});return function(b){(h||w)(b)}}e()}function A(b,a){b.removeClass(a);var c=
23
+ b.data(E);c&&(c.running&&c.running--,c.running&&0!==c.running||b.removeData(E))}function k(b,a){var c="";b=f.isArray(b)?b:b.split(/\s+/);D(b,function(b,d){b&&0<b.length&&(c+=(0<d?" ":"")+b+a)});return c}var C="",O,aa,P,ba;z.ontransitionend===T&&z.onwebkittransitionend!==T?(C="-webkit-",O="WebkitTransition",aa="webkitTransitionEnd transitionend"):(O="transition",aa="transitionend");z.onanimationend===T&&z.onwebkitanimationend!==T?(C="-webkit-",P="WebkitAnimation",ba="webkitAnimationEnd animationend"):
24
+ (P="animation",ba="animationend");var ea="Duration",H="Property",ha="Delay",K="IterationCount",G="$$ngAnimateKey",E="$$ngAnimateCSS3Data",ga="ng-animate-block-transitions",$=3,v=1.5,y=1E3,u={},q=0,m=[],I,L=null,N=0,Q=[];return{enter:function(b,a){return e("enter",b,"ng-enter",a)},leave:function(b,a){return e("leave",b,"ng-leave",a)},move:function(a,c){return e("move",a,"ng-move",c)},beforeSetClass:function(b,c,d,e){var f=k(d,"-remove")+" "+k(c,"-add"),h=a("setClass",b,f,function(a){var e=b.attr("class");
25
+ b.removeClass(d);b.addClass(c);a=a();b.attr("class",e);return a});if(h)return J(b,function(){R(b,f);S(b);e()}),h;e()},beforeAddClass:function(b,c,d){var e=a("addClass",b,k(c,"-add"),function(a){b.addClass(c);a=a();b.removeClass(c);return a});if(e)return J(b,function(){R(b,c);S(b);d()}),e;d()},setClass:function(a,d,e,f){e=k(e,"-remove");d=k(d,"-add");return c("setClass",a,e+" "+d,f)},addClass:function(a,d,e){return c("addClass",a,k(d,"-add"),e)},beforeRemoveClass:function(b,c,d){var e=a("removeClass",
26
+ b,k(c,"-remove"),function(a){var d=b.attr("class");b.removeClass(c);a=a();b.attr("class",d);return a});if(e)return J(b,function(){R(b,c);S(b);d()}),e;d()},removeClass:function(a,d,e){return c("removeClass",a,k(d,"-remove"),e)}}}])}])})(window,window.angular);
27
+ //# sourceMappingURL=angular-animate.min.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.5
2
+ * @license AngularJS v1.2.13
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -1,7 +1,8 @@
1
1
  /*
2
- AngularJS v1.2.5
2
+ AngularJS v1.2.13
3
3
  (c) 2010-2014 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
+ //# sourceMappingURL=angular-cookies.min.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.5
2
+ * @license AngularJS v1.2.13
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -69,7 +69,7 @@ function minErr(module) {
69
69
  return match;
70
70
  });
71
71
 
72
- message = message + '\nhttp://errors.angularjs.org/1.2.5/' +
72
+ message = message + '\nhttp://errors.angularjs.org/1.2.13/' +
73
73
  (module ? module + '/' : '') + code;
74
74
  for (i = 2; i < arguments.length; i++) {
75
75
  message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
@@ -1,8 +1,9 @@
1
1
  /*
2
- AngularJS v1.2.5
2
+ AngularJS v1.2.13
3
3
  (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
6
- (function(){'use strict';function d(a){return function(){var c=arguments[0],b,c="["+(a?a+":":"")+c+"] http://errors.angularjs.org/1.2.5/"+(a?a+"/":"")+c;for(b=1;b<arguments.length;b++)c=c+(1==b?"?":"&")+"p"+(b-1)+"="+encodeURIComponent("function"==typeof arguments[b]?arguments[b].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[b]?"undefined":"string"!=typeof arguments[b]?JSON.stringify(arguments[b]):arguments[b]);return Error(c)}}(function(a){var c=d("$injector"),b=d("ng");a=a.angular||
6
+ (function(){'use strict';function d(a){return function(){var c=arguments[0],b,c="["+(a?a+":":"")+c+"] http://errors.angularjs.org/1.2.13/"+(a?a+"/":"")+c;for(b=1;b<arguments.length;b++)c=c+(1==b?"?":"&")+"p"+(b-1)+"="+encodeURIComponent("function"==typeof arguments[b]?arguments[b].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[b]?"undefined":"string"!=typeof arguments[b]?JSON.stringify(arguments[b]):arguments[b]);return Error(c)}}(function(a){var c=d("$injector"),b=d("ng");a=a.angular||
7
7
  (a.angular={});a.$$minErr=a.$$minErr||d;return a.module||(a.module=function(){var a={};return function(e,d,f){if("hasOwnProperty"===e)throw b("badname","module");d&&a.hasOwnProperty(e)&&(a[e]=null);return a[e]||(a[e]=function(){function a(c,d,e){return function(){b[e||"push"]([c,d,arguments]);return g}}if(!d)throw c("nomod",e);var b=[],h=[],k=a("$injector","invoke"),g={_invokeQueue:b,_runBlocks:h,requires:d,name:e,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide",
8
8
  "service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:k,run:function(a){h.push(a);return this}};f&&k(f);return g}())}}())})(window)})(window);
9
+ //# sourceMappingURL=angular-loader.min.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.5
2
+ * @license AngularJS v1.2.13
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -386,7 +386,7 @@ angular.mock.$LogProvider = function() {
386
386
  *
387
387
  * @example
388
388
  * <pre>
389
- * $log.log('Some Error');
389
+ * $log.error('Some Error');
390
390
  * var first = $log.error.logs.unshift();
391
391
  * </pre>
392
392
  */
@@ -511,6 +511,7 @@ angular.mock.$IntervalProvider = function() {
511
511
  };
512
512
 
513
513
  $interval.cancel = function(promise) {
514
+ if(!promise) return false;
514
515
  var fnIndex;
515
516
 
516
517
  angular.forEach(repeatFns, function(fn, index) {
@@ -763,40 +764,40 @@ angular.mock.TzDate = function (offset, timestamp) {
763
764
  angular.mock.TzDate.prototype = Date.prototype;
764
765
  /* jshint +W101 */
765
766
 
766
- angular.mock.animate = angular.module('mock.animate', ['ng'])
767
+ angular.mock.animate = angular.module('ngAnimateMock', ['ng'])
767
768
 
768
769
  .config(['$provide', function($provide) {
770
+ var reflowQueue = [];
771
+
772
+ $provide.value('$$animateReflow', function(fn) {
773
+ reflowQueue.push(fn);
774
+ return angular.noop;
775
+ });
769
776
 
770
777
  $provide.decorator('$animate', function($delegate) {
771
778
  var animate = {
772
779
  queue : [],
773
780
  enabled : $delegate.enabled,
774
- flushNext : function(name) {
775
- var tick = animate.queue.shift();
776
-
777
- if (!tick) throw new Error('No animation to be flushed');
778
- if(tick.method !== name) {
779
- throw new Error('The next animation is not "' + name +
780
- '", but is "' + tick.method + '"');
781
+ triggerReflow : function() {
782
+ if(reflowQueue.length === 0) {
783
+ throw new Error('No animation reflows present');
781
784
  }
782
- tick.fn();
783
- return tick;
785
+ angular.forEach(reflowQueue, function(fn) {
786
+ fn();
787
+ });
788
+ reflowQueue = [];
784
789
  }
785
790
  };
786
791
 
787
- angular.forEach(['enter','leave','move','addClass','removeClass'], function(method) {
792
+ angular.forEach(
793
+ ['enter','leave','move','addClass','removeClass','setClass'], function(method) {
788
794
  animate[method] = function() {
789
- var params = arguments;
790
795
  animate.queue.push({
791
- method : method,
792
- params : params,
793
- element : angular.isElement(params[0]) && params[0],
794
- parent : angular.isElement(params[1]) && params[1],
795
- after : angular.isElement(params[2]) && params[2],
796
- fn : function() {
797
- $delegate[method].apply($delegate, params);
798
- }
796
+ event : method,
797
+ element : arguments[0],
798
+ args : arguments
799
799
  });
800
+ $delegate[method].apply($delegate, arguments);
800
801
  };
801
802
  });
802
803
 
@@ -966,18 +967,18 @@ angular.mock.dump = function(object) {
966
967
  *
967
968
  * # Flushing HTTP requests
968
969
  *
969
- * The $httpBackend used in production, always responds to requests with responses asynchronously.
970
- * If we preserved this behavior in unit testing, we'd have to create async unit tests, which are
971
- * hard to write, follow and maintain. At the same time the testing mock, can't respond
970
+ * The $httpBackend used in production always responds to requests with responses asynchronously.
971
+ * If we preserved this behavior in unit testing we'd have to create async unit tests, which are
972
+ * hard to write, understand, and maintain. However, the testing mock can't respond
972
973
  * synchronously because that would change the execution of the code under test. For this reason the
973
974
  * mock $httpBackend has a `flush()` method, which allows the test to explicitly flush pending
974
- * requests and thus preserving the async api of the backend, while allowing the test to execute
975
+ * requests and thus preserve the async api of the backend while allowing the test to execute
975
976
  * synchronously.
976
977
  *
977
978
  *
978
979
  * # Unit testing with mock $httpBackend
979
- * The following code shows how to setup and use the mock backend in unit testing a controller.
980
- * First we create the controller under test
980
+ * The following code shows how to setup and use the mock backend when unit testing a controller.
981
+ * First we create the controller under test:
981
982
  *
982
983
  <pre>
983
984
  // The controller code
@@ -1002,7 +1003,7 @@ angular.mock.dump = function(object) {
1002
1003
  }
1003
1004
  </pre>
1004
1005
  *
1005
- * Now we setup the mock backend and create the test specs.
1006
+ * Now we setup the mock backend and create the test specs:
1006
1007
  *
1007
1008
  <pre>
1008
1009
  // testing controller
@@ -1579,6 +1580,10 @@ function MockHttpExpectation(method, url, data, headers) {
1579
1580
  };
1580
1581
  }
1581
1582
 
1583
+ function createMockXhr() {
1584
+ return new MockXhr();
1585
+ }
1586
+
1582
1587
  function MockXhr() {
1583
1588
 
1584
1589
  // hack for testing $http, $httpBackend
@@ -1702,7 +1707,7 @@ angular.mock.$RootElementProvider = function() {
1702
1707
  * In addition, ngMock also extends various core ng services such that they can be
1703
1708
  * inspected and controlled in a synchronous manner within test code.
1704
1709
  *
1705
- * {@installModule mocks}
1710
+ * {@installModule mock}
1706
1711
  *
1707
1712
  * <div doc-module-components="ngMock"></div>
1708
1713
  *
@@ -1916,12 +1921,11 @@ angular.mock.clearDataCache = function() {
1916
1921
  };
1917
1922
 
1918
1923
 
1919
-
1920
1924
  if(window.jasmine || window.mocha) {
1921
1925
 
1922
1926
  var currentSpec = null,
1923
1927
  isSpecRunning = function() {
1924
- return currentSpec && (window.mocha || currentSpec.queue.running);
1928
+ return !!currentSpec;
1925
1929
  };
1926
1930
 
1927
1931
 
@@ -2082,10 +2086,24 @@ if(window.jasmine || window.mocha) {
2082
2086
  *
2083
2087
  * @param {...Function} fns any number of functions which will be injected using the injector.
2084
2088
  */
2089
+
2090
+
2091
+
2092
+ var ErrorAddingDeclarationLocationStack = function(e, errorForStack) {
2093
+ this.message = e.message;
2094
+ this.name = e.name;
2095
+ if (e.line) this.line = e.line;
2096
+ if (e.sourceId) this.sourceId = e.sourceId;
2097
+ if (e.stack && errorForStack)
2098
+ this.stack = e.stack + '\n' + errorForStack.stack;
2099
+ if (e.stackArray) this.stackArray = e.stackArray;
2100
+ };
2101
+ ErrorAddingDeclarationLocationStack.prototype.toString = Error.prototype.toString;
2102
+
2085
2103
  window.inject = angular.mock.inject = function() {
2086
2104
  var blockFns = Array.prototype.slice.call(arguments, 0);
2087
2105
  var errorForStack = new Error('Declaration Location');
2088
- return isSpecRunning() ? workFn() : workFn;
2106
+ return isSpecRunning() ? workFn.call(currentSpec) : workFn;
2089
2107
  /////////////////////
2090
2108
  function workFn() {
2091
2109
  var modules = currentSpec.$modules || [];
@@ -2102,7 +2120,9 @@ if(window.jasmine || window.mocha) {
2102
2120
  injector.invoke(blockFns[i] || angular.noop, this);
2103
2121
  /* jshint +W040 */
2104
2122
  } catch (e) {
2105
- if(e.stack && errorForStack) e.stack += '\n' + errorForStack.stack;
2123
+ if (e.stack && errorForStack) {
2124
+ throw new ErrorAddingDeclarationLocationStack(e, errorForStack);
2125
+ }
2106
2126
  throw e;
2107
2127
  } finally {
2108
2128
  errorForStack = null;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.5
2
+ * @license AngularJS v1.2.13
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -40,7 +40,7 @@ function shallowClearAndCopy(src, dst) {
40
40
  });
41
41
 
42
42
  for (var key in src) {
43
- if (src.hasOwnProperty(key) && key.substr(0, 2) !== '$$') {
43
+ if (src.hasOwnProperty(key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) {
44
44
  dst[key] = src[key];
45
45
  }
46
46
  }
@@ -242,7 +242,7 @@ function shallowClearAndCopy(src, dst) {
242
242
  newCard.name = "Mike Smith";
243
243
  newCard.$save();
244
244
  // POST: /user/123/card {number:'0123', name:'Mike Smith'}
245
- // server returns: {id:789, number:'01234', name: 'Mike Smith'};
245
+ // server returns: {id:789, number:'0123', name: 'Mike Smith'};
246
246
  expect(newCard.id).toEqual(789);
247
247
  * </pre>
248
248
  *
@@ -277,6 +277,35 @@ function shallowClearAndCopy(src, dst) {
277
277
  });
278
278
  });
279
279
  </pre>
280
+
281
+ * # Creating a custom 'PUT' request
282
+ * In this example we create a custom method on our resource to make a PUT request
283
+ * <pre>
284
+ * var app = angular.module('app', ['ngResource', 'ngRoute']);
285
+ *
286
+ * // Some APIs expect a PUT request in the format URL/object/ID
287
+ * // Here we are creating an 'update' method
288
+ * app.factory('Notes', ['$resource', function($resource) {
289
+ * return $resource('/notes/:id', null,
290
+ * {
291
+ * 'update': { method:'PUT' }
292
+ * });
293
+ * }]);
294
+ *
295
+ * // In our controller we get the ID from the URL using ngRoute and $routeParams
296
+ * // We pass in $routeParams and our Notes factory along with $scope
297
+ * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes',
298
+ function($scope, $routeParams, Notes) {
299
+ * // First get a note object from the factory
300
+ * var note = Notes.get({ id:$routeParams.id });
301
+ * $id = note.id;
302
+ *
303
+ * // Now call update passing in the ID first then the object you are updating
304
+ * Notes.update({ id:$id }, note);
305
+ *
306
+ * // This will PUT /notes/ID with the note object in the request payload
307
+ * }]);
308
+ * </pre>
280
309
  */
281
310
  angular.module('ngResource', ['ng']).
282
311
  factory('$resource', ['$http', '$q', function($http, $q) {
@@ -363,7 +392,9 @@ angular.module('ngResource', ['ng']).
363
392
  val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam];
364
393
  if (angular.isDefined(val) && val !== null) {
365
394
  encodedVal = encodeUriSegment(val);
366
- url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), encodedVal + "$1");
395
+ url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) {
396
+ return encodedVal + p1;
397
+ });
367
398
  } else {
368
399
  url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match,
369
400
  leadingSlashes, tail) {
@@ -377,7 +408,7 @@ angular.module('ngResource', ['ng']).
377
408
  });
378
409
 
379
410
  // strip trailing slashes and set the url
380
- url = url.replace(/\/+$/, '');
411
+ url = url.replace(/\/+$/, '') || '/';
381
412
  // then replace collapse `/.` if found in the last URL path segment before the query
382
413
  // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x`
383
414
  url = url.replace(/\/\.(?=\w+($|\?))/, '.');
@@ -1,12 +1,13 @@
1
1
  /*
2
- AngularJS v1.2.5
2
+ AngularJS v1.2.13
3
3
  (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  License: MIT
5
5
  */
6
- (function(H,a,z){'use strict';function C(q,l){l=l||{};a.forEach(l,function(a,h){delete l[h]});for(var h in q)q.hasOwnProperty(h)&&"$$"!==h.substr(0,2)&&(l[h]=q[h]);return l}var v=a.$$minErr("$resource"),B=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(q,l){function h(a,k){this.template=a;this.defaults=k||{};this.urlParams={}}function t(m,k,n){function E(c,d){var e={};d=w({},k,d);s(d,function(b,d){u(b)&&(b=b());var g;if(b&&b.charAt&&"@"==
7
- b.charAt(0)){g=c;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!B.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,k=a.length;f<k&&g!==z;f++){var h=a[f];g=null!==g?g[h]:z}}else g=b;e[d]=g});return e}function e(a){return a.resource}function f(a){C(a||{},this)}var F=new h(m);n=w({},A,n);s(n,function(c,d){var k=/^(POST|PUT|PATCH)$/i.test(c.method);f[d]=function(b,d,g,h){var r={},m,n,x;switch(arguments.length){case 4:x=h,n=g;case 3:case 2:if(u(d)){if(u(b)){n=b;x=d;break}n=d;
8
- x=g}else{r=b;m=d;n=g;break}case 1:u(b)?n=b:k?m=b:r=b;break;case 0:break;default:throw v("badargs",arguments.length);}var t=this instanceof f,p=t?m:c.isArray?[]:new f(m),y={},A=c.interceptor&&c.interceptor.response||e,B=c.interceptor&&c.interceptor.responseError||z;s(c,function(a,b){"params"!=b&&("isArray"!=b&&"interceptor"!=b)&&(y[b]=G(a))});k&&(y.data=m);F.setUrlParams(y,w({},E(m,c.params||{}),r),c.url);r=q(y).then(function(b){var d=b.data,g=p.$promise;if(d){if(a.isArray(d)!==!!c.isArray)throw v("badcfg",
9
- c.isArray?"array":"object",a.isArray(d)?"array":"object");c.isArray?(p.length=0,s(d,function(b){p.push(new f(b))})):(C(d,p),p.$promise=g)}p.$resolved=!0;b.resource=p;return b},function(b){p.$resolved=!0;(x||D)(b);return l.reject(b)});r=r.then(function(b){var a=A(b);(n||D)(a,b.headers);return a},B);return t?r:(p.$promise=r,p.$resolved=!1,p)};f.prototype["$"+d]=function(b,a,g){u(b)&&(g=a,a=b,b={});b=f[d].call(this,b,this,a,g);return b.$promise||b}});f.bind=function(a){return t(m,w({},k,a),n)};return f}
10
- var A={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},D=a.noop,s=a.forEach,w=a.extend,G=a.copy,u=a.isFunction;h.prototype={setUrlParams:function(m,k,h){var l=this,e=h||l.template,f,q,c=l.urlParams={};s(e.split(/\W/),function(a){if("hasOwnProperty"===a)throw v("badname");!/^\d+$/.test(a)&&(a&&RegExp("(^|[^\\\\]):"+a+"(\\W|$)").test(e))&&(c[a]=!0)});e=e.replace(/\\:/g,":");k=k||{};s(l.urlParams,function(d,c){f=k.hasOwnProperty(c)?
11
- k[c]:l.defaults[c];a.isDefined(f)&&null!==f?(q=encodeURIComponent(f).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"%20").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),e=e.replace(RegExp(":"+c+"(\\W|$)","g"),q+"$1")):e=e.replace(RegExp("(/?):"+c+"(\\W|$)","g"),function(a,d,c){return"/"==c.charAt(0)?c:d+c})});e=e.replace(/\/+$/,"");e=e.replace(/\/\.(?=\w+($|\?))/,".");m.url=e.replace(/\/\\\./,"/.");s(k,function(a,c){l.urlParams[c]||
12
- (m.params=m.params||{},m.params[c]=a)})}};return t}])})(window,window.angular);
6
+ (function(H,a,A){'use strict';function D(p,g){g=g||{};a.forEach(g,function(a,c){delete g[c]});for(var c in p)!p.hasOwnProperty(c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(g[c]=p[c]);return g}var v=a.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(p,g){function c(a,c){this.template=a;this.defaults=c||{};this.urlParams={}}function t(n,w,l){function r(h,d){var e={};d=x({},w,d);s(d,function(b,d){u(b)&&(b=b());var k;if(b&&
7
+ b.charAt&&"@"==b.charAt(0)){k=h;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!C.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,c=a.length;f<c&&k!==A;f++){var g=a[f];k=null!==k?k[g]:A}}else k=b;e[d]=k});return e}function e(a){return a.resource}function f(a){D(a||{},this)}var F=new c(n);l=x({},B,l);s(l,function(h,d){var c=/^(POST|PUT|PATCH)$/i.test(h.method);f[d]=function(b,d,k,w){var q={},n,l,y;switch(arguments.length){case 4:y=w,l=k;case 3:case 2:if(u(d)){if(u(b)){l=
8
+ b;y=d;break}l=d;y=k}else{q=b;n=d;l=k;break}case 1:u(b)?l=b:c?n=b:q=b;break;case 0:break;default:throw v("badargs",arguments.length);}var t=this instanceof f,m=t?n:h.isArray?[]:new f(n),z={},B=h.interceptor&&h.interceptor.response||e,C=h.interceptor&&h.interceptor.responseError||A;s(h,function(a,b){"params"!=b&&("isArray"!=b&&"interceptor"!=b)&&(z[b]=G(a))});c&&(z.data=n);F.setUrlParams(z,x({},r(n,h.params||{}),q),h.url);q=p(z).then(function(b){var d=b.data,k=m.$promise;if(d){if(a.isArray(d)!==!!h.isArray)throw v("badcfg",
9
+ h.isArray?"array":"object",a.isArray(d)?"array":"object");h.isArray?(m.length=0,s(d,function(b){m.push(new f(b))})):(D(d,m),m.$promise=k)}m.$resolved=!0;b.resource=m;return b},function(b){m.$resolved=!0;(y||E)(b);return g.reject(b)});q=q.then(function(b){var a=B(b);(l||E)(a,b.headers);return a},C);return t?q:(m.$promise=q,m.$resolved=!1,m)};f.prototype["$"+d]=function(b,a,k){u(b)&&(k=a,a=b,b={});b=f[d].call(this,b,this,a,k);return b.$promise||b}});f.bind=function(a){return t(n,x({},w,a),l)};return f}
10
+ var B={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},E=a.noop,s=a.forEach,x=a.extend,G=a.copy,u=a.isFunction;c.prototype={setUrlParams:function(c,g,l){var r=this,e=l||r.template,f,p,h=r.urlParams={};s(e.split(/\W/),function(a){if("hasOwnProperty"===a)throw v("badname");!/^\d+$/.test(a)&&(a&&RegExp("(^|[^\\\\]):"+a+"(\\W|$)").test(e))&&(h[a]=!0)});e=e.replace(/\\:/g,":");g=g||{};s(r.urlParams,function(d,c){f=g.hasOwnProperty(c)?
11
+ g[c]:r.defaults[c];a.isDefined(f)&&null!==f?(p=encodeURIComponent(f).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"%20").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),e=e.replace(RegExp(":"+c+"(\\W|$)","g"),function(a,c){return p+c})):e=e.replace(RegExp("(/?):"+c+"(\\W|$)","g"),function(a,c,d){return"/"==d.charAt(0)?d:c+d})});e=e.replace(/\/+$/,"")||"/";e=e.replace(/\/\.(?=\w+($|\?))/,".");c.url=e.replace(/\/\\\./,"/.");s(g,function(a,
12
+ e){r.urlParams[e]||(c.params=c.params||{},c.params[e]=a)})}};return t}])})(window,window.angular);
13
+ //# sourceMappingURL=angular-resource.min.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.2.5
2
+ * @license AngularJS v1.2.13
3
3
  * (c) 2010-2014 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -190,7 +190,7 @@ function $RouteProvider(){
190
190
 
191
191
  path = path
192
192
  .replace(/([().])/g, '\\$1')
193
- .replace(/(\/)?:(\w+)([\?|\*])?/g, function(_, slash, key, option){
193
+ .replace(/(\/)?:(\w+)([\?\*])?/g, function(_, slash, key, option){
194
194
  var optional = option === '?' ? option : null;
195
195
  var star = option === '*' ? option : null;
196
196
  keys.push({ name: key, optional: !!optional });
@@ -350,17 +350,17 @@ function $RouteProvider(){
350
350
  }
351
351
  </file>
352
352
 
353
- <file name="scenario.js">
353
+ <file name="protractorTest.js">
354
354
  it('should load and compile correct template', function() {
355
- element('a:contains("Moby: Ch1")').click();
356
- var content = element('.doc-example-live [ng-view]').text();
355
+ element(by.linkText('Moby: Ch1')).click();
356
+ var content = element(by.css('.doc-example-live [ng-view]')).getText();
357
357
  expect(content).toMatch(/controller\: ChapterCntl/);
358
358
  expect(content).toMatch(/Book Id\: Moby/);
359
359
  expect(content).toMatch(/Chapter Id\: 1/);
360
360
 
361
- element('a:contains("Scarlet")').click();
362
- sleep(2); // promises are not part of scenario waiting
363
- content = element('.doc-example-live [ng-view]').text();
361
+ element(by.partialLinkText('Scarlet')).click();
362
+
363
+ content = element(by.css('.doc-example-live [ng-view]')).getText();
364
364
  expect(content).toMatch(/controller\: BookCntl/);
365
365
  expect(content).toMatch(/Book Id\: Scarlet/);
366
366
  });
@@ -375,7 +375,7 @@ function $RouteProvider(){
375
375
  * @eventType broadcast on root scope
376
376
  * @description
377
377
  * Broadcasted before a route change. At this point the route services starts
378
- * resolving all of the dependencies needed for the route change to occurs.
378
+ * resolving all of the dependencies needed for the route change to occur.
379
379
  * Typically this involves fetching the view template as well as any dependencies
380
380
  * defined in `resolve` route property. Once all of the dependencies are resolved
381
381
  * `$routeChangeSuccess` is fired.
@@ -669,6 +669,15 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory);
669
669
  *
670
670
  * @scope
671
671
  * @priority 400
672
+ * @param {string=} onload Expression to evaluate whenever the view updates.
673
+ *
674
+ * @param {string=} autoscroll Whether `ngView` should call {@link ng.$anchorScroll
675
+ * $anchorScroll} to scroll the viewport after the view is updated.
676
+ *
677
+ * - If the attribute is not set, disable scrolling.
678
+ * - If the attribute is set without value, enable scrolling.
679
+ * - Otherwise enable scrolling only if the `autoscroll` attribute value evaluated
680
+ * as an expression yields a truthy value.
672
681
  * @example
673
682
  <example module="ngViewExample" deps="angular-route.js" animations="true">
674
683
  <file name="index.html">
@@ -785,16 +794,17 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory);
785
794
  }
786
795
  </file>
787
796
 
788
- <file name="scenario.js">
797
+ <file name="protractorTest.js">
789
798
  it('should load and compile correct template', function() {
790
- element('a:contains("Moby: Ch1")').click();
791
- var content = element('.doc-example-live [ng-view]').text();
799
+ element(by.linkText('Moby: Ch1')).click();
800
+ var content = element(by.css('.doc-example-live [ng-view]')).getText();
792
801
  expect(content).toMatch(/controller\: ChapterCntl/);
793
802
  expect(content).toMatch(/Book Id\: Moby/);
794
803
  expect(content).toMatch(/Chapter Id\: 1/);
795
804
 
796
- element('a:contains("Scarlet")').click();
797
- content = element('.doc-example-live [ng-view]').text();
805
+ element(by.partialLinkText('Scarlet')).click();
806
+
807
+ content = element(by.css('.doc-example-live [ng-view]')).getText();
798
808
  expect(content).toMatch(/controller\: BookCntl/);
799
809
  expect(content).toMatch(/Book Id\: Scarlet/);
800
810
  });
@@ -842,7 +852,7 @@ function ngViewFactory( $route, $anchorScroll, $animate) {
842
852
  var locals = $route.current && $route.current.locals,
843
853
  template = locals && locals.$template;
844
854
 
845
- if (template) {
855
+ if (angular.isDefined(template)) {
846
856
  var newScope = scope.$new();
847
857
  var current = $route.current;
848
858