├── .gitignore ├── README.md ├── app.css ├── app.js ├── index.html └── vendor └── angular.min.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_STORE 2 | .idea -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Angello Lite 2 | #### An introductory version of [Angello](https://github.com/angularjs-in-action/angello), the app built in the book [AngularJS in Action](http://www.manning.com/bford/). 3 | 4 | 5 | ## Prerequisites 6 | You'll need [`git`](http://git-scm.com/) and a web browser. 7 | 8 | 9 | ## Getting it 10 | Run the following command to check out a local copy of the code. 11 | 12 | ```shell 13 | git clone https://github.com/angularjs-in-action/angello-lite.git 14 | ``` 15 | 16 | 17 | ## Running it 18 | Because we are pulling files from a CDN, we are going to need to run Angello Lite from a web server. There are a few ways to do this, but one of the easiest ways is to use the npm package `serve`. 19 | 20 | The steps are as follows: 21 | 22 | 1. Install Node.js. You can find all of the information to do that [here](http://nodejs.org/). 23 | 2. Install the `serve` package by running `npm install -g serve` from the command line. 24 | 3. Navigate to the `angello-lite` directory from the command line and run `serve`. 25 | 4. Go to [http://localhost:3000](http://localhost:3000) in your browser to see the application. 26 | 27 | ![Main Page](https://cloud.githubusercontent.com/assets/590361/5189656/d783d758-749c-11e4-88a4-a3ac01ea0aac.png) 28 | 29 | ### At this point you can add stories 30 | ![Add a story](https://cloud.githubusercontent.com/assets/590361/5189686/1478a792-749d-11e4-9748-c5450aaa9a04.png) 31 | 32 | ### and edit stories 33 | ![Edit a story](https://cloud.githubusercontent.com/assets/590361/5189715/4fd7a374-749d-11e4-87b3-afb6a97e9cad.png) 34 | 35 | -------------------------------------------------------------------------------- /app.css: -------------------------------------------------------------------------------- 1 | .content h2 { 2 | margin-left: -16px; 3 | } 4 | .callout { 5 | padding: 20px; 6 | border: 1px solid #eee; 7 | border-left-width: 5px; 8 | border-radius: 3px; 9 | cursor: pointer; 10 | } -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | var myModule = angular.module('Angello', []); 2 | 3 | myModule.factory('AngelloHelper', function() { 4 | var buildIndex = function (source, property) { 5 | var tempArray = []; 6 | 7 | for (var i = 0, len = source.length; i < len; ++i) { 8 | tempArray[source[i][property]] = source[i]; 9 | } 10 | 11 | return tempArray; 12 | }; 13 | 14 | return { 15 | buildIndex: buildIndex 16 | }; 17 | }); 18 | 19 | myModule.service('AngelloModel', function() { 20 | var service = this, 21 | statuses = [ 22 | {name: 'Back Log'}, 23 | {name: 'To Do'}, 24 | {name: 'In Progress'}, 25 | {name: 'Code Review'}, 26 | {name: 'QA Review'}, 27 | {name: 'Verified'}, 28 | {name: 'Done'} 29 | ], 30 | types = [ 31 | {name: 'Feature'}, 32 | {name: 'Enhancement'}, 33 | {name: 'Bug'}, 34 | {name: 'Spike'} 35 | ], 36 | stories = [ 37 | { 38 | title: 'First story', 39 | description: 'Our first story.', 40 | criteria: 'Criteria pending.', 41 | status: 'To Do', 42 | type: 'Feature', 43 | reporter: 'Lukas Ruebbelke', 44 | assignee: 'Brian Ford' 45 | }, 46 | { 47 | title: 'Second story', 48 | description: 'Do something.', 49 | criteria: 'Criteria pending.', 50 | status: 'Back Log', 51 | type: 'Feature', 52 | reporter: 'Lukas Ruebbelke', 53 | assignee: 'Brian Ford' 54 | }, 55 | { 56 | title: 'Another story', 57 | description: 'Just one more.', 58 | criteria: 'Criteria pending.', 59 | status: 'Code Review', 60 | type: 'Enhancement', 61 | reporter: 'Lukas Ruebbelke', 62 | assignee: 'Brian Ford' 63 | } 64 | ]; 65 | 66 | service.getStatuses = function () { 67 | return statuses; 68 | }; 69 | 70 | service.getTypes = function () { 71 | return types; 72 | }; 73 | 74 | service.getStories = function () { 75 | return stories; 76 | }; 77 | }); 78 | 79 | myModule.controller('MainCtrl', function(AngelloModel, AngelloHelper) { 80 | var main = this; 81 | 82 | main.types = AngelloModel.getTypes(); 83 | main.statuses = AngelloModel.getStatuses(); 84 | main.stories = AngelloModel.getStories(); 85 | main.typesIndex = AngelloHelper.buildIndex(main.types, 'name'); 86 | main.statusesIndex = AngelloHelper.buildIndex(main.statuses, 'name'); 87 | 88 | main.setCurrentStory = function (story) { 89 | main.currentStory = story; 90 | main.currentStatus = main.statusesIndex[story.status]; 91 | main.currentType = main.typesIndex[story.type]; 92 | }; 93 | 94 | main.createStory = function() { 95 | main.stories.push({ 96 | title: 'New Story', 97 | description: 'Description pending.', 98 | criteria: 'Criteria pending.', 99 | status: 'Back Log', 100 | type: 'Feature', 101 | reporter: 'Pending', 102 | assignee: 'Pending' 103 | }); 104 | }; 105 | 106 | main.setCurrentStatus = function (status) { 107 | if (typeof main.currentStory !== 'undefined') { 108 | main.currentStory.status = status.name; 109 | } 110 | }; 111 | 112 | main.setCurrentType = function (type) { 113 | if (typeof main.currentStory !== 'undefined') { 114 | main.currentStory.type = type.name; 115 | } 116 | }; 117 | }); 118 | 119 | myModule.directive('story', function() { 120 | return { 121 | scope: true, 122 | replace: true, 123 | template: '

{{story.title}}

{{story.description}}

' 124 | } 125 | }); -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Angello Lite 12 | 13 | 14 |
15 |
16 |

Stories

17 | 20 | 21 |
22 | 23 | 24 | 25 |
26 |
27 |

Story

28 |
29 |
30 | 31 |
32 | 33 |
34 |
35 |
36 | 37 |
38 | 41 |
42 |
43 |
44 | 45 |
46 | 49 |
50 |
51 |
52 | 53 |
54 | 56 |
57 |
58 |
59 | 60 |
61 | 63 |
64 |
65 |
66 | 67 |
68 | 69 |
70 |
71 |
72 | 73 |
74 | 75 |
76 |
77 |
78 |
79 |
80 | 81 | -------------------------------------------------------------------------------- /vendor/angular.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | AngularJS v1.3.0-beta.19 3 | (c) 2010-2014 Google, Inc. http://angularjs.org 4 | License: MIT 5 | */ 6 | (function(W,Z,s){'use strict';function L(b){return function(){var a=arguments[0],c,a="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.0-beta.19/"+(b?b+"/":"")+a;for(c=1;c").append(b).html();try{return 3===b[0].nodeType?w(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+w(b)})}catch(d){return w(c)}} 15 | function gc(b){try{return decodeURIComponent(b)}catch(a){}}function hc(b){var a={},c,d;q((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=gc(c[0]),z(d)&&(b=z(c[1])?gc(c[1]):!0,Db.call(a,d)?K(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Eb(b){var a=[];q(b,function(b,d){K(b)?q(b,function(b){a.push(ya(d,!0)+(!0===b?"":"="+ya(b,!0)))}):a.push(ya(d,!0)+(!0===b?"":"="+ya(b,!0)))});return a.length?a.join("&"):""}function db(b){return ya(b,!0).replace(/%26/gi,"&").replace(/%3D/gi, 16 | "=").replace(/%2B/gi,"+")}function ya(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function sd(b,a){var c,d,e=eb.length;b=E(b);for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);a.unshift("ng");d=Fb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector", 18 | d);c(b)(a)})}]);return d},e=/^NG_DEFER_BOOTSTRAP!/;if(W&&!e.test(W.name))return d();W.name=W.name.replace(e,"");Sa.resumeBootstrap=function(b){q(b,function(b){a.push(b)});d()}}function fb(b,a){a=a||"_";return b.replace(ud,function(b,d){return(d?a:"")+b.toLowerCase()})}function vd(){var b;jc||((qa=W.jQuery)&&qa.fn.on?(E=qa,A(qa.fn,{scope:Ea.scope,isolateScope:Ea.isolateScope,controller:Ea.controller,injector:Ea.injector,inheritedData:Ea.inheritedData}),b=qa.cleanData,qa.cleanData=function(a){if(Gb)Gb= 19 | !1;else for(var c=0,d;null!=(d=a[c]);c++)qa(d).triggerHandler("$destroy");b(a)}):E=Q,Sa.element=E,jc=!0)}function Hb(b,a,c){if(!b)throw Ra("areq",a||"?",c||"required");return b}function gb(b,a,c){c&&K(b)&&(b=b[b.length-1]);Hb(I(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Fa(b,a){if("hasOwnProperty"===b)throw Ra("badname",a);}function kc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,h=0;h")+d[2];for(d=d[0];d--;)c=c.lastChild;f=f.concat(ta.call(c.childNodes,void 0));c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b)); 26 | e.textContent="";e.innerHTML="";q(f,function(a){e.appendChild(a)});return e}function Q(b){if(b instanceof Q)return b;var a;F(b)&&(b=ba(b),a=!0);if(!(this instanceof Q)){if(a&&"<"!=b.charAt(0))throw Jb("nosel");return new Q(b)}if(a){a=Z;var c;b=(c=Ne.exec(b))?[a.createElement(c[1])]:(c=Ke(b,a))?c.childNodes:[]}uc(this,b)}function Kb(b){return b.cloneNode(!0)}function kb(b,a){a||lb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d 4096 bytes)!"));else{if(m.cookie!==J)for(J=m.cookie,d=J.split("; "),G={},f=0;fk&&this.remove(l.key),b},get:function(a){if(k").parent()[0])});var f=G(a,b,a,c,d,e);R(a,"ng-scope");var g=null;return function(b,c,d,e,h){Hb(b,"scope");g||(g=(h=h&&h[0])?"foreignobject"!==ja(h)&&h.toString().match(/SVG/)?"svg":"html":"html","html"!==g&&(a=E(Ob(g,E("
").append(a).html()))));h=c?Ea.clone.call(a):a;if(d)for(var l in d)h.data("$"+l+"Controller",d[l]);h.data("$scope",b);c&&c(h,b);f&&f(b,h,h,e);return h}}function R(a,b){try{a.addClass(b)}catch(c){}}function G(a,b,c,d,e,f){function g(a,c,d,e){var f, 47 | l,k,p,n,v,r,y;if(t)for(f=c.length,y=Array(f),p=0;pH.priority)break;if(w=H.scope)H.templateUrl|| 56 | (P(w)?(Ka("new/isolated scope",u||D,H,A),u=H):Ka("new/isolated scope",u,H,A)),D=D||H;O=H.name;!H.templateUrl&&H.controller&&(w=H.controller,J=J||{},Ka("'"+O+"' controller",J[O],H,A),J[O]=H);if(w=H.transclude)Y=!0,H.$$tlb||(Ka("transclusion",G,H,A),G=H),"element"==w?(z=!0,x=H.priority,w=A,A=d.$$element=E(Z.createComment(" "+O+": "+d[O]+" ")),c=A[0],da(f,ta.call(w,0),c),L=Ia(w,e,x,g&&g.name,{nonTlbTranscludeDirective:G})):(w=E(Kb(c)).contents(),A.empty(),L=Ia(w,e));if(H.template)if(V=!0,Ka("template", 57 | fa,H,A),fa=H,w=I(H.template)?H.template(A,d):H.template,w=Gc(w),H.replace){g=H;w=Ib.test(w)?E(Ob(H.templateNamespace,ba(w))):[];c=w[0];if(1!=w.length||1!==c.nodeType)throw ka("tplrt",O,"");da(f,A,c);Ja={$attr:{}};w=S(c,[],Ja);var Pb=a.splice(za+1,a.length-(za+1));u&&sb(w);a=a.concat(w).concat(Pb);C(d,Ja);Ja=a.length}else A.html(w);if(H.templateUrl)V=!0,Ka("template",fa,H,A),fa=H,H.replace&&(g=H),N=M(a.splice(za,a.length-za),A,d,f,Y&&L,h,l,{controllerDirectives:J,newIsolateScopeDirective:u,templateDirective:fa, 58 | nonTlbTranscludeDirective:G}),Ja=a.length;else if(H.compile)try{Q=H.compile(A,d,L),I(Q)?t(null,Q,U,X):Q&&t(Q.pre,Q.post,U,X)}catch($){p($,pa(A))}H.terminal&&(N.terminal=!0,x=Math.max(x,H.priority))}N.scope=D&&!0===D.scope;N.transcludeOnThisElement=Y;N.elementTranscludeOnThisElement=z;N.templateOnThisElement=V;N.transclude=L;k.hasElementTranscludeDirective=z;return N}function sb(a){for(var b=0,c=a.length;bv.priority)&&-1!=v.restrict.indexOf(f)&&(l&&(v=dc(v,{$$start:l,$$end:n})),b.push(v),h=v)}catch(y){p(y)}}return h}function C(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;q(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});q(b,function(b,f){"class"==f?(R(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b), 60 | a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function M(a,b,c,d,e,f,g,h){var k=[],p,n,v=b[0],r=a.shift(),y=A({},r,{templateUrl:null,transclude:null,replace:null,$$originalDirective:r}),N=I(r.templateUrl)?r.templateUrl(b,c):r.templateUrl,x=r.templateNamespace;b.empty();l.get(D.getTrustedResourceUrl(N),{cache:t}).success(function(l){var t,D;l=Gc(l);if(r.replace){l=Ib.test(l)?E(Ob(x,ba(l))):[];t=l[0];if(1!=l.length||1!==t.nodeType)throw ka("tplrt",r.name, 61 | N);l={$attr:{}};da(d,b,t);var B=S(t,[],l);P(r.scope)&&sb(B);a=B.concat(a);C(c,l)}else t=v,b.html(l);a.unshift(y);p=fa(a,t,c,e,b,r,f,g,h);q(d,function(a,c){a==t&&(d[c]=b[0])});for(n=G(b[0].childNodes,e);k.length;){l=k.shift();D=k.shift();var u=k.shift(),T=k.shift(),B=b[0];if(D!==v){var Y=D.className;h.hasElementTranscludeDirective&&r.replace||(B=Kb(t));da(u,E(D),B);R(E(B),Y)}D=p.transcludeOnThisElement?J(l,p.transclude,T):T;p(n,l,B,d,D)}k=null}).error(function(a,b,c,d){throw ka("tpload",d.url);}); 62 | return function(a,b,c,d,e){a=e;k?(k.push(b),k.push(c),k.push(d),k.push(a)):(p.transcludeOnThisElement&&(a=J(b,p.transclude,e)),p(n,b,c,d,a))}}function L(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name"+b+"";return c.childNodes[0].childNodes;default:return b}}function Y(a,b){if("srcdoc"==b)return D.HTML;var c=ja(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return D.RESOURCE_URL}function V(a,c,d,e,f){var l=b(d,!0);if(l){if("multiple"===e&&"select"=== 64 | ja(a))throw ka("selmulti",pa(a));c.push({priority:100,compile:function(){return{pre:function(c,d,k){d=k.$$observers||(k.$$observers={});if(g.test(e))throw ka("nodomevents");if(l=b(k[e],!0,Y(a,e),h[e]||f))k[e]=l(c),(d[e]||(d[e]=[])).$$inter=!0,(k.$$observers&&k.$$observers[e].$$scope||c).$watch(l,function(a,b){"class"===e&&a!=b?k.$updateClass(a,b):k.$set(e,a)})}}}})}}function da(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;ga.status?d:n.reject(d)}var c={method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse},d=function(a){var b=e.headers,c=A({},a.headers),d,f,b=A({},b.common,b[w(a.method)]);a:for(d in b){a=w(d);for(f in c)if(w(f)===a)continue a;c[d]=b[d]}(function(a){var b;q(a,function(c,d){I(c)&&(b=c(),null!=b?a[d]=b:delete a[d])})})(c);return c}(a);A(c,a);c.headers=d;c.method=ib(c.method);var f=[function(a){d=a.headers;var c= 73 | Kc(a.data,Jc(d),a.transformRequest);M(c)&&q(d,function(a,b){"content-type"===w(b)&&delete d[b]});M(a.withCredentials)&&!M(e.withCredentials)&&(a.withCredentials=e.withCredentials);return t(a,c,d).then(b,b)},s],g=n.when(c);for(q(y,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var h=f.shift(),g=g.then(a,h)}g.success=function(a){g.then(function(b){a(b.data,b.status,b.headers,c)}); 74 | return g};g.error=function(a){g.then(null,function(b){a(b.data,b.status,b.headers,c)});return g};return g}function t(c,f,m){function p(a,b,c,e){S&&(200<=a&&300>a?S.put(T,[a,b,Ic(c),e]):S.remove(T));t(b,a,c,e);d.$$phase||d.$apply()}function t(a,b,d,e){b=Math.max(b,0);(200<=b&&300>b?q.resolve:q.reject)({data:a,status:b,headers:Jc(d),config:c,statusText:e})}function y(){var a=Pa(l.pendingRequests,c);-1!==a&&l.pendingRequests.splice(a,1)}var q=n.defer(),J=q.promise,S,B,T=r(c.url,c.params);l.pendingRequests.push(c); 75 | J.then(y,y);!c.cache&&!e.cache||(!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method)||(S=P(c.cache)?c.cache:P(e.cache)?e.cache:v);if(S)if(B=S.get(T),z(B)){if(B&&I(B.then))return B.then(y,y),B;K(B)?t(B[1],B[0],na(B[2]),B[3]):t(B,200,{},"OK")}else S.put(T,J);M(B)&&((B=Qb(c.url)?b.cookies()[c.xsrfCookieName||e.xsrfCookieName]:s)&&(m[c.xsrfHeaderName||e.xsrfHeaderName]=B),a(c.method,T,f,p,m,c.timeout,c.withCredentials,c.responseType));return J}function r(a,b){if(!b)return a;var c=[];md(b,function(a,b){null=== 76 | a||M(a)||(K(a)||(a=[a]),q(a,function(a){P(a)&&(ga(a)?a=a.toISOString():P(a)&&(a=ua(a)));c.push(ya(b)+"="+ya(a))}))});0=X&&(!b.match(/^(get|post|head|put|delete|options)$/i)||!W.XMLHttpRequest))return new W.ActiveXObject("Microsoft.XMLHTTP");if(W.XMLHttpRequest)return new W.XMLHttpRequest;throw L("$httpBackend")("noxhr");}function te(){this.$get=["$browser","$window","$document",function(b,a,c){return Xe(b,We,b.defer,a.angular.callbacks,c[0])}]}function Xe(b,a,c,d,e){function f(a,b,c){var f=e.createElement("script"),h=null;f.type="text/javascript"; 78 | f.src=a;f.async=!0;h=function(a){f.removeEventListener("load",h,!1);f.removeEventListener("error",h,!1);e.body.removeChild(f);f=null;var g=-1,r="unknown";a&&("load"!==a.type||d[b].called||(a={type:"error"}),r=a.type,g="error"===a.type?404:200);c&&c(g,r)};f.addEventListener("load",h,!1);f.addEventListener("error",h,!1);e.body.appendChild(f);return h}var h=-1;return function(e,m,k,n,p,l,t,r){function v(){N=h;x&&x();u&&u.abort()}function y(a,d,e,f,g){R&&c.cancel(R);x=u=null;0===d&&(d=e?200:"file"==va(m).protocol? 79 | 404:0);a(1223===d?204:d,e,f,g||"");b.$$completeOutstandingRequest(C)}var N;b.$$incOutstandingRequestCount();m=m||b.url();if("jsonp"==w(e)){var D="_"+(d.counter++).toString(36);d[D]=function(a){d[D].data=a;d[D].called=!0};var x=f(m.replace("JSON_CALLBACK","angular.callbacks."+D),D,function(a,b){y(n,a,d[D].data,"",b);d[D]=C})}else{var u=a(e);u.open(e,m,!0);q(p,function(a,b){z(a)&&u.setRequestHeader(b,a)});u.onreadystatechange=function(){if(u&&4==u.readyState){var a=null,b=null,c="";N!==h&&(a=u.getAllResponseHeaders(), 80 | b="response"in u?u.response:u.responseText);N===h&&10>X||(c=u.statusText);y(n,N||u.status,b,a,c)}};t&&(u.withCredentials=!0);if(r)try{u.responseType=r}catch(s){if("json"!==r)throw s;}u.send(k||null)}if(0=m&&(r.resolve(l),p(v.$$intervalId),delete f[v.$$intervalId]);t||b.$apply()},g);f[v.$$intervalId]=r;return v}var f={};e.cancel= 84 | function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function zd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "), 85 | SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return 1===b?"one":"other"}}}}function Sb(b){b=b.split("/");for(var a=b.length;a--;)b[a]= 86 | db(b[a]);return b.join("/")}function Lc(b,a,c){b=va(b,c);a.$$protocol=b.protocol;a.$$host=b.hostname;a.$$port=U(b.port)||Ye[b.protocol]||null}function Mc(b,a,c){var d="/"!==b.charAt(0);d&&(b="/"+b);b=va(b,c);a.$$path=decodeURIComponent(d&&"/"===b.pathname.charAt(0)?b.pathname.substring(1):b.pathname);a.$$search=hc(b.search);a.$$hash=decodeURIComponent(b.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function sa(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Xa(b){var a= 87 | b.indexOf("#");return-1==a?b:b.substr(0,a)}function Tb(b){return b.substr(0,Xa(b).lastIndexOf("/")+1)}function Nc(b,a){this.$$html5=!0;a=a||"";var c=Tb(b);Lc(b,this,b);this.$$parse=function(a){var e=sa(c,a);if(!F(e))throw Ub("ipthprfx",a,c);Mc(e,this,b);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Eb(this.$$search),b=this.$$hash?"#"+db(this.$$hash):"";this.$$url=Sb(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$rewrite=function(d){var e; 88 | if((e=sa(b,d))!==s)return d=e,(e=sa(a,e))!==s?c+(sa("/",e)||e):b+d;if((e=sa(c,d))!==s)return c+e;if(c==d+"/")return c}}function Vb(b,a){var c=Tb(b);Lc(b,this,b);this.$$parse=function(d){var e=sa(b,d)||sa(c,d),e="#"==e.charAt(0)?sa(a,e):this.$$html5?e:"";if(!F(e))throw Ub("ihshprfx",d,a);Mc(e,this,b);d=this.$$path;var f=/^\/[A-Z]:(\/.*)/;0===e.indexOf(b)&&(e=e.replace(b,""));f.exec(e)||(d=(e=f.exec(d))?e[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var c=Eb(this.$$search),e=this.$$hash? 89 | "#"+db(this.$$hash):"";this.$$url=Sb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+(this.$$url?a+this.$$url:"")};this.$$rewrite=function(a){if(Xa(b)==Xa(a))return a}}function Wb(b,a){this.$$html5=!0;Vb.apply(this,arguments);var c=Tb(b);this.$$rewrite=function(d){var e;if(b==Xa(d))return d;if(e=sa(c,d))return b+a+e;if(c===d+"/")return c};this.$$compose=function(){var c=Eb(this.$$search),e=this.$$hash?"#"+db(this.$$hash):"";this.$$url=Sb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+a+this.$$url}}function tb(b){return function(){return this[b]}} 90 | function Oc(b,a){return function(c){if(M(c))return this[b];this[b]=a(c);this.$$compose();return this}}function ue(){var b="",a=!1;this.hashPrefix=function(a){return z(a)?(b=a,this):b};this.html5Mode=function(b){return z(b)?(a=b,this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,f){function h(a){c.$broadcast("$locationChangeSuccess",g.absUrl(),a)}var g,m,k=d.baseHref(),n=d.url(),p;a?(p=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(k||"/"),m=e.history?Nc:Wb):(p= 91 | Xa(n),m=Vb);g=new m(p,"#"+b);g.$$parse(g.$$rewrite(n));var l=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(!a.ctrlKey&&!a.metaKey&&2!=a.which){for(var e=E(a.target);"a"!==ja(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href");P(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=va(h.animVal).href);if(!l.test(h)){if(m===Wb){var k=e.attr("href")||e.attr("xlink:href");if(k&&0>k.indexOf("://"))if(h="#"+b,"/"==k[0])h=p+h+k;else if("#"==k[0])h=p+h+(g.path()||"/")+k;else{var n= 92 | g.path().split("/"),k=k.split("/");2!==n.length||n[1]||(n.length=1);for(var t=0;tf?Pc(e[0],e[1],e[2],e[3],e[4],c):function(a,b){var d=0,h;do h=Pc(e[d++],e[d++], 97 | e[d++],e[d++],e[d++],c)(a,b),b=s,a=h;while(d=this.promise.$$state.status&&(d&&d.length)&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in k++,e)d.hasOwnProperty(b)||(s--,delete e[b])}else e!== 111 | d&&(e=d,k++);return k}),n=[],p={},q=!0,s=0;return this.$watch(m,function(){q?(q=!1,b(d,d,c)):b(d,g,c);if(h)if(P(d))if(ab(d)){g=Array(d.length);for(var a=0;au&&(G=4-u,R[G]||(R[G]=[]),z=I(d.exp)?"fn: "+(d.exp.name||d.exp.toString()):d.exp,z+="; newVal: "+ua(f)+"; oldVal: "+ua(g),R[G].push(z));else if(d===c){x=!1;break a}}catch(A){e(A)}if(!(h=s.$$childHead||s!==this&&s.$$nextSibling))for(;s!==this&&!(h=s.$$nextSibling);)s=s.$parent}while(s=h);if((x||k.length)&&!u--)throw p.$$phase=null,a("infdig", 113 | b,ua(R));}while(x||k.length);for(p.$$phase=null;q.length;)try{q.shift()()}catch(E){e(E)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==p){for(var b in this.$$listenerCount)k(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling= 114 | this.$$prevSibling);this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=null;this.$$listeners={};this.$$watchers=this.$$asyncQueue=this.$$postDigestQueue=[];this.$destroy=this.$digest=this.$apply=C;this.$on=this.$watch=this.$watchGroup=function(){return C}}}},$eval:function(a,b){return f(a)(this,b)},$evalAsync:function(a){p.$$phase||p.$$asyncQueue.length||h.defer(function(){p.$$asyncQueue.length&&p.$digest()});this.$$asyncQueue.push({scope:this,expression:a})}, 115 | $$postDigest:function(a){this.$$postDigestQueue.push(a)},$apply:function(a){try{return m("$apply"),this.$eval(a)}catch(b){e(b)}finally{p.$$phase=null;try{p.$digest()}catch(c){throw e(c),c;}}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){c[Pa(c,b)]=null;k(e,1,a)}},$emit:function(a,b){var c=[],d,f=this,g=!1,h={name:a,targetScope:f, 116 | stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=[h].concat(ta.call(arguments,1)),m,n;do{d=f.$$listeners[a]||c;h.currentScope=f;m=0;for(n=d.length;mc.msieDocumentMode)throw wa("iequirks");var e=na(ia);e.isEnabled=function(){return b};e.trustAs=d.trustAs;e.getTrusted=d.getTrusted;e.valueOf=d.valueOf;b||(e.trustAs=e.getTrusted=function(a,b){return b},e.valueOf=Aa);e.parseAs=function(b,c){var d=a(c);return d.literal&&d.constant?d:a(c,function(a){return e.getTrusted(b, 123 | a)})};var f=e.parseAs,h=e.getTrusted,g=e.trustAs;q(ia,function(a,b){var c=w(b);e[Va("parse_as_"+c)]=function(b){return f(a,b)};e[Va("get_trusted_"+c)]=function(b){return h(a,b)};e[Va("trust_as_"+c)]=function(b){return g(a,b)}});return e}]}function Ce(){this.$get=["$window","$document",function(b,a){var c={},d=U((/android (\d+)/.exec(w((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},h=f.documentMode,g,m=/^(Moz|webkit|O|ms)(?=[A-Z])/,k=f.body&&f.body.style, 124 | n=!1,p=!1;if(k){for(var l in k)if(n=m.exec(l)){g=n[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in k&&"webkit");n=!!("transition"in k||g+"Transition"in k);p=!!("animation"in k||g+"Animation"in k);!d||n&&p||(n=F(f.body.style.webkitTransition),p=F(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hashchange:"onhashchange"in b&&(!h||7b;b=Math.abs(b);var h=b+"",g="",m=[],k=!1;if(-1!==h.indexOf("e")){var n=h.match(/([\d\.]+)e(-?)(\d+)/);n&&"-"==n[2]&&n[3]>e+1?(h="0",b=0):(g=h,k=!0)}if(k)0b)&&(g= 131 | b.toFixed(e));else{h=(h.split($c)[1]||"").length;M(e)&&(e=Math.min(Math.max(a.minFrac,h),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);b=(""+b).split($c);h=b[0];b=b[1]||"";var n=0,p=a.lgSize,l=a.gSize;if(h.length>=p+l)for(n=h.length-p,k=0;kb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return vb(e,a,d)}}function wb(b,a){return function(c,d){var e=c["get"+b](),f=ib(a?"SHORT"+b:b);return d[f][e]}}function ad(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function bd(b){return function(a){var c=ad(a.getFullYear());a=+new Date(a.getFullYear(), 133 | a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return vb(a,b)}}function Wc(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,h=0,g=b[8]?a.setUTCFullYear:a.setFullYear,m=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=U(b[9]+b[10]),h=U(b[9]+b[11]));g.call(a,U(b[1]),U(b[2])-1,U(b[3]));f=U(b[4]||0)-f;h=U(b[5]||0)-h;g=U(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));m.call(a,f,h,g,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; 134 | return function(c,e){var f="",h=[],g,m;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;F(c)&&(c=ef.test(c)?U(c):a(c));Ba(c)&&(c=new Date(c));if(!ga(c))return c;for(;e;)(m=ff.exec(e))?(h=h.concat(ta.call(m,1)),e=h.pop()):(h.push(e),e=null);q(h,function(a){g=gf[a];f+=g?g(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return f}}function af(){return function(b){return ua(b,!0)}}function bf(){return function(b,a){if(!K(b)&&!F(b))return b;a=Infinity===Math.abs(Number(a))?Number(a):U(a); 135 | if(F(b))return a?0<=a?b.slice(0,a):b.slice(a,b.length):"";var c=[],d,e;a>b.length?a=b.length:a<-b.length&&(a=-b.length);0b||37<=b&&40>=b)||t(a)});if(e.hasEvent("paste"))a.on("paste cut",t)}a.on("change",p);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Bb(b,a){return function(c){var d;return ga(c)?c:F(c)&&(b.lastIndex=0,c=b.exec(c))?(c.shift(),d={yyyy:0,MM:1,dd:1,HH:0,mm:0},q(c,function(b,c){c=c(h.min);g.$setValidity("min",b);return b?a:s},g.$parsers.push(e),g.$formatters.push(e));h.max&&(e=function(a){var b= 143 | g.$isEmpty(a)||c(a)<=c(h.max);g.$setValidity("max",b);return b?a:s},g.$parsers.push(e),g.$formatters.push(e))}}function fd(b,a,c,d,e){if(z(d)){b=b(d);if(!b.constant)throw(new L("ngModel"))("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",c,d);return b(a)}return e}function Zb(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;dX?function(b){b=b.nodeName?b:b[0];return w(b.scopeName&&"HTML"!=b.scopeName?b.scopeName+":"+b.nodeName:b.nodeName)}:function(b){return w(b.nodeName?b.nodeName:b[0].nodeName)};var Ta=function(){if(z(Ta.isActive_))return Ta.isActive_; 147 | var b=!(!Z.querySelector("[ng-csp]")&&!Z.querySelector("[data-ng-csp]"));if(!b)try{new Function("")}catch(a){b=!0}return Ta.isActive_=b},eb=["ng-","data-ng-","ng:","x-ng-"],ud=/[A-Z]/g,jc=!1,Gb,yd={full:"1.3.0-beta.19",major:1,minor:3,dot:0,codeName:"rafter-ascension"};Q.expando="ng339";var nb=Q.cache={},Oe=1;Q._data=function(b){return this.cache[b[this.expando]]||{}};var Ie=/([\:\-\_]+(.))/g,Je=/^moz([A-Z])/,mf={mouseleave:"mouseout",mouseenter:"mouseover"},Jb=L("jqLite"),Ne=/^<(\w+)\s*\/?>(?:<\/\1>|)$/, 148 | Ib=/<|&#?\w+;/,Le=/<([\w:]+)/,Me=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ha={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ha.optgroup=ha.option;ha.tbody=ha.tfoot=ha.colgroup=ha.caption=ha.thead;ha.th=ha.td;var Ea=Q.prototype={ready:function(b){function a(){c||(c= 149 | !0,b())}var c=!1;"complete"===Z.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),Q(W).on("load",a),this.on("DOMContentLoaded",a))},toString:function(){var b=[];q(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?E(this[b]):E(this[this.length+b])},length:0,push:lf,sort:[].sort,splice:[].splice},rb={};q("multiple selected checked disabled readOnly required open".split(" "),function(b){rb[w(b)]=b});var Ac={};q("input select option textarea button form details".split(" "), 150 | function(b){Ac[b]=!0});var Bc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngPattern:"pattern"};q({data:Lb,removeData:lb},function(b,a){Q[a]=b});q({data:Lb,inheritedData:qb,scope:function(b){return E.data(b,"$scope")||qb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return E.data(b,"$isolateScope")||E.data(b,"$isolateScopeNoTemplate")},controller:wc,injector:function(b){return qb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Mb,css:function(b, 151 | a,c){a=Va(a);if(z(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=w(a);if(rb[d])if(z(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||C).specified?d:s;else if(z(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?s:b},prop:function(b,a,c){if(z(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(M(b)){var d=a.nodeType;return 1===d||3===d?a.textContent:""}a.textContent=b}b.$dv= 152 | "";return b}(),val:function(b,a){if(M(a)){if(b.multiple&&"select"===ja(b)){var c=[];q(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(M(a))return b.innerHTML;kb(b,!0);b.innerHTML=a},empty:xc},function(b,a){Q.prototype[a]=function(a,d){var e,f,h=this.length;if(b!==xc&&(2==b.length&&b!==Mb&&b!==wc?a:d)===s){if(P(a)){for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a, 164 | c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}}),sf={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Xb=function(a){this.options=a};Xb.prototype={constructor:Xb,lex:function(a){this.text=a;this.index=0;this.ch=s;for(this.tokens=[];this.index=a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=z(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ma("lexerr",a,c,this.text); 167 | },readNumber:function(){for(var a="",c=this.index;this.index","<=",">="))a=this.binaryFn(a,c.fn,this.relational());return a},additive:function(){for(var a= 177 | this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.fn,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.fn,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(Ya.ZERO,a.fn,this.unary()):(a=this.expect("!"))?this.unaryFn(a.fn,this.unary()):this.primary()},fieldAccess:function(a){var c=this,d=this.expect().text,e=Qc(d,this.options,this.text); 178 | return A(function(c,d,g){return e(g||a(c,d))},{assign:function(e,h,g){(g=a(e,g))||a.assign(e,g={});return ub(g,d,h,c.text)}})},objectIndex:function(a){var c=this,d=this.expression();this.consume("]");return A(function(e,f){var h=a(e,f),g=d(e,f);la(g,c.text);return h?La(h[g],c.text):s},{assign:function(e,f,h){var g=la(d(e,h),c.text);(h=La(a(e,h),c.text))||a.assign(e,h={});return h[g]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(",")) 179 | }this.consume(")");var e=this.text,f=d.length?[]:null;return function(h,g){var m=c?c(h,g):h,k=a(h,g,m)||C;if(f)for(var n=d.length;n--;)f[n]=d[n](h,g);La(m,e);if(k){if(k.constructor===k)throw ma("isecfn",e);if(k===pf||k===qf||k===rf)throw ma("isecff",e);}m=k.apply?k.apply(m,f):k(f[0],f[1],f[2],f[3],f[4]);return La(m,e)}},arrayDeclaration:function(){var a=[],c=!0;if("]"!==this.peekToken().text){do{if(this.peek("]"))break;var d=this.expression();a.push(d);d.constant||(c=!1)}while(this.expect(","))}this.consume("]"); 180 | return A(function(c,d){for(var h=[],g=0;ga.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(vb(Math[0=X&& 183 | (c.href||c.name||c.$set("href",""),a.append(Z.createComment("IE fix")));if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){var f="[object SVGAnimatedString]"===Ca.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}),jb={};q(rb,function(a,c){if("multiple"!=a){var d=ra("ng-"+c);jb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,h){a.$watch(h[d],function(a){h.$set(c,!!a)})}}}}});q(Bc,function(a,c){jb[c]=function(){return{priority:100, 184 | link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(kf))){f.$set("ngPattern",RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});q(["src","srcset","href"],function(a){var c=ra("ng-"+a);jb[c]=function(){return{priority:99,link:function(d,e,f){var h=a,g=a;"href"===a&&"[object SVGAnimatedString]"===Ca.call(e.prop("href"))&&(g="xlinkHref",f.$attr[g]="xlink:href",h=null);f.$observe(c,function(c){c?(f.$set(g,c),X&&h&&e.prop(h,f[g])):"href"===a&&f.$set(g, 185 | null)})}}}});var zb={$addControl:C,$removeControl:C,$setValidity:C,$setDirty:C,$setPristine:C,$setSubmitted:C},dd="ng-submitted";cd.$inject=["$element","$attrs","$scope","$animate"];var gd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:cd,compile:function(){return{pre:function(a,e,f,h){if(!f.action){var g=function(c){a.$apply(function(){h.$commitViewValue();h.$setSubmitted()});c.preventDefault?c.preventDefault():c.returnValue=!1};e[0].addEventListener("submit", 186 | g,!1);e.on("$destroy",function(){c(function(){e[0].removeEventListener("submit",g,!1)},0,!1)})}var m=e.parent().controller("form"),k=f.name||f.ngForm;k&&ub(a,k,h,k);if(m)e.on("$destroy",function(){m.$removeControl(h);k&&ub(a,k,s,k);A(h,zb)})}}}}}]},Cd=gd(),Pd=gd(!0),tf=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,uf=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,vf=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,hd= 187 | /^(\d{4})-(\d{2})-(\d{2})$/,id=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)$/,$b=/^(\d{4})-W(\d\d)$/,jd=/^(\d{4})-(\d\d)$/,kd=/^(\d\d):(\d\d)$/,wf=/(\s+|^)default(\s+|$)/,ld={text:Za,date:$a("date",hd,Bb(hd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":$a("datetimelocal",id,Bb(id,["yyyy","MM","dd","HH","mm"]),"yyyy-MM-ddTHH:mm"),time:$a("time",kd,Bb(kd,["HH","mm"]),"HH:mm"),week:$a("week",$b,function(a){if(ga(a))return a;if(F(a)){$b.lastIndex=0;var c=$b.exec(a);if(c){a=+c[1];var d=+c[2],c=ad(a),d=7* 188 | (d-1);return new Date(a,0,c.getDate()+d)}}return NaN},"yyyy-Www"),month:$a("month",jd,Bb(jd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,h){Za(a,c,d,e,f,h);e.$parsers.push(function(a){var c=e.$isEmpty(a);if(c||vf.test(a))return e.$setValidity("number",!0),""===a?null:c?a:parseFloat(a);e.$setValidity("number",!1);return s});hf(e,"number",xf,null,e.$$validityState);e.$formatters.push(function(a){return e.$isEmpty(a)?"":""+a});d.min&&(a=function(a){var c=parseFloat(d.min);return Yb(e,"min",e.$isEmpty(a)|| 189 | a>=c,a)},e.$parsers.push(a),e.$formatters.push(a));d.max&&(a=function(a){var c=parseFloat(d.max);return Yb(e,"max",e.$isEmpty(a)||a<=c,a)},e.$parsers.push(a),e.$formatters.push(a));e.$formatters.push(function(a){return Yb(e,"number",e.$isEmpty(a)||Ba(a),a)})},url:function(a,c,d,e,f,h){Za(a,c,d,e,f,h);e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||tf.test(d)}},email:function(a,c,d,e,f,h){Za(a,c,d,e,f,h);e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||uf.test(d)}}, 190 | radio:function(a,c,d,e){M(d.name)&&c.attr("name",++bb);c.on("click",function(f){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value,f&&f.type)})});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,h,g,m){var k=fd(m,a,"ngTrueValue",d.ngTrueValue,!0),n=fd(m,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(d){a.$apply(function(){e.$setViewValue(c[0].checked,d&&d.type)})});e.$render=function(){c[0].checked=e.$viewValue}; 191 | e.$isEmpty=function(a){return a!==k};e.$formatters.push(function(a){return oa(a,k)});e.$parsers.push(function(a){return a?k:n})},hidden:C,button:C,submit:C,reset:C,file:C},xf=["badInput"],mc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:function(f,h,g,m){m[0]&&(ld[w(g.type)]||ld.text)(f,h,g,m[0],c,a,d,e)}}}],yb="ng-valid",xb="ng-invalid",Ma="ng-pristine",Ab="ng-dirty",yf=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate", 192 | "$timeout",function(a,c,d,e,f,h,g){function m(a,c){c=c?"-"+fb(c,"-"):"";h.removeClass(e,(a?xb:yb)+c);h.addClass(e,(a?yb:xb)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$validators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=d.name;var k=f(d.ngModel),n=k.assign,p=null,l=this;if(!n)throw L("ngModel")("nonassign",d.ngModel,pa(e));this.$render=C;this.$isEmpty= 193 | function(a){return M(a)||""===a||null===a||a!==a};var t=e.inheritedData("$formController")||zb,r=0,v=this.$error={};e.addClass(Ma).addClass("ng-untouched");m(!0);this.$setValidity=function(a,c){v[a]!==!c&&(c?(v[a]&&r--,r||(m(!0),l.$valid=!0,l.$invalid=!1)):(m(!1),l.$invalid=!0,l.$valid=!1,r++),v[a]=!c,m(c,a),t.$setValidity(a,c,l))};this.$setPristine=function(){l.$dirty=!1;l.$pristine=!0;h.removeClass(e,Ab);h.addClass(e,Ma)};this.$setUntouched=function(){l.$touched=!1;l.$untouched=!0;h.setClass(e, 194 | "ng-untouched","ng-touched")};this.$setTouched=function(){l.$touched=!0;l.$untouched=!1;h.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){g.cancel(p);l.$viewValue=l.$$lastCommittedViewValue;l.$render()};this.$validate=function(){if(l.$modelValue===l.$modelValue){var a=l.$modelValue;l.$$runValidators(l.$$invalidModelValue||l.$modelValue,l.$viewValue);a!==l.$modelValue&&l.$$writeModelToScope()}};this.$$runValidators=function(a,c){q(l.$validators,function(d,e){l.$setValidity(e, 195 | d(a,c))});l.$modelValue=l.$valid?a:s;l.$$invalidModelValue=l.$valid?s:a};this.$commitViewValue=function(a){var c=l.$viewValue;g.cancel(p);if(a||l.$$lastCommittedViewValue!==c){l.$$lastCommittedViewValue=c;l.$pristine&&(l.$dirty=!0,l.$pristine=!1,h.removeClass(e,Ma),h.addClass(e,Ab),t.$setDirty());var d=c;q(l.$parsers,function(a){d=a(d)});l.$modelValue===d||!M(l.$$invalidModelValue)&&l.$$invalidModelValue==d||(l.$$runValidators(d,c),l.$$writeModelToScope())}};this.$$writeModelToScope=function(){var d; 196 | l.$options&&l.$options.getterSetter&&I(d=k(a))?d(l.$modelValue):n(a,l.$modelValue);q(l.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};this.$setViewValue=function(a,c,d){l.$viewValue=a;l.$options&&!l.$options.updateOnDefault||l.$$debounceViewValueCommit(c,d)};this.$$debounceViewValueCommit=function(a,c){var d=0,e=l.$options;e&&z(e.debounce)&&(e=e.debounce,Ba(e)?d=e:Ba(e[a])?d=e[a]:Ba(e["default"])&&(d=e["default"]));g.cancel(p);d?p=g(function(){l.$commitViewValue(c)},d):l.$commitViewValue(c)}; 197 | a.$watch(function(){var c=k(a);l.$options&&(l.$options.getterSetter&&I(c))&&(c=c());if(l.$modelValue!==c&&(M(l.$$invalidModelValue)||l.$$invalidModelValue!=c)){for(var d=l.$formatters,e=d.length,f=c;e--;)f=d[e](f);l.$$runValidators(c,f);l.$viewValue!==f&&(l.$viewValue=l.$$lastCommittedViewValue=f,l.$render())}return c})}],de=function(){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:yf,link:{pre:function(a,c,d,e){e[2]&&(e[0].$options=e[2].$options);var f=e[0],h=e[1]|| 198 | zb;h.$addControl(f);a.$on("$destroy",function(){h.$removeControl(f)})},post:function(a,c,d,e){var f=e[0];if(f.$options&&f.$options.updateOn)c.on(f.$options.updateOn,function(c){a.$apply(function(){f.$$debounceViewValueCommit(c&&c.type)})});c.on("blur",function(c){f.$touched||a.$apply(function(){f.$setTouched()})})}}}},fe=ea({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),oc=function(){return{restrict:"A",require:"?ngModel",link:function(a, 199 | c,d,e){e&&(d.required=!0,e.$validators.required=function(a,c){return!d.required||!e.$isEmpty(c)},d.$observe("required",function(){e.$validate()}))}}},nc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f,h=d.ngPattern||d.pattern;d.$observe("pattern",function(a){F(a)&&0=f}}}}},ee=function(){return{restrict:"A",require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)|| 201 | ", ",h="false"!==d.ngTrim,g=h?ba(f):f;e.$parsers.push(function(a){if(!M(a)){var c=[];a&&q(a.split(g),function(a){a&&c.push(h?ba(a):a)});return c}});e.$formatters.push(function(a){return K(a)?a.join(f):s});e.$isEmpty=function(a){return!a||!a.length}}}},zf=/^(true|false|\d+)$/,ge=function(){return{restrict:"A",priority:100,compile:function(a,c){return zf.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},he=function(){return{restrict:"A", 202 | controller:["$scope","$attrs",function(a,c){var d=this;this.$options=a.$eval(c.ngModelOptions);this.$options.updateOn!==s?(this.$options.updateOnDefault=!1,this.$options.updateOn=ba(this.$options.updateOn.replace(wf,function(){d.$options.updateOnDefault=!0;return" "}))):this.$options.updateOnDefault=!0}]}},Hd=xa({compile:function(a){a.addClass("ng-binding");return function(a,d,e){d.data("$binding",e.ngBind);d=d[0];a.$watch(e.ngBind,function(a){d.textContent=a==s?"":a})}}}),Jd=["$interpolate",function(a){return function(c, 203 | d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}],Id=["$sce","$parse",function(a,c){return{restrict:"A",compile:function(d,e){d.addClass("ng-binding");return function(d,e,g){e.data("$binding",g.ngBindHtml);var m=c(g.ngBindHtml);g=c(g.ngBindHtml,function(a){return(a||"").toString()});d.$watch(g,function(){e.html(a.getTrustedHtml(m(d))||"")})}}}}],Kd=Zb("",!0),Md=Zb("Odd",0),Ld=Zb("Even",1),Nd=xa({compile:function(a, 204 | c){c.$set("ngCloak",s);a.removeClass("ng-cloak")}}),Od=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],rc={};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ra("ng-"+a);rc[c]=["$parse",function(d){return{restrict:"A",compile:function(e,f){var h=d(f[c]);return function(c,d){d.on(w(a),function(a){c.$apply(function(){h(c,{$event:a})})})}}}}]});var Rd=["$animate", 205 | function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,h){var g,m,k;c.$watch(e.ngIf,function(c){c?m||h(function(c,f){m=f;c[c.length++]=Z.createComment(" end ngIf: "+e.ngIf+" ");g={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),m&&(m.$destroy(),m=null),g&&(k=hb(g.clone),a.leave(k,function(){k=null}),g=null))})}}}],Sd=["$http","$templateCache","$anchorScroll","$animate","$sce",function(a,c,d,e,f){return{restrict:"ECA", 206 | priority:400,terminal:!0,transclude:"element",controller:Sa.noop,compile:function(h,g){var m=g.ngInclude||g.src,k=g.onload||"",n=g.autoscroll;return function(g,h,q,r,v){var s=0,w,D,x,u=function(){D&&(D.remove(),D=null);w&&(w.$destroy(),w=null);x&&(e.leave(x,function(){D=null}),D=x,x=null)};g.$watch(f.parseAsResourceUrl(m),function(f){var m=function(){!z(n)||n&&!g.$eval(n)||d()},q=++s;f?(a.get(f,{cache:c}).success(function(a){if(q===s){var c=g.$new();r.template=a;a=v(c,function(a){u();e.enter(a,null, 207 | h,m)});w=c;x=a;w.$emit("$includeContentLoaded");g.$eval(k)}}).error(function(){q===s&&(u(),g.$emit("$includeContentError"))}),g.$emit("$includeContentRequested")):(u(),r.template=null)})}}}}],ie=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){d.html(f.template);a(d.contents())(c)}}}],Td=xa({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Ud=xa({terminal:!0,priority:1E3}),Vd=["$locale","$interpolate",function(a, 208 | c){var d=/{}/g;return{restrict:"EA",link:function(e,f,h){var g=h.count,m=h.$attr.when&&f.attr(h.$attr.when),k=h.offset||0,n=e.$eval(m)||{},p={},l=c.startSymbol(),t=c.endSymbol(),r=/^when(Minus)?(.+)$/;q(h,function(a,c){r.test(c)&&(n[w(c.replace("when","").replace("Minus","-"))]=f.attr(h.$attr[c]))});q(n,function(a,e){p[e]=c(a.replace(d,l+g+"-"+k+t))});e.$watch(function(){var c=parseFloat(e.$eval(g));if(isNaN(c))return"";c in n||(c=a.pluralCat(c-k));return p[c](e)},function(a){f.text(a)})}}}],Wd=["$parse", 209 | "$animate",function(a,c){var d=L("ngRepeat"),e=function(a,c,d,e,k,n,p){a[d]=e;k&&(a[k]=n);a.$index=c;a.$first=0===c;a.$last=c===p-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=0===(c&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(f,h){var g=h.ngRepeat,m=Z.createComment(" end ngRepeat: "+g+" "),k=g.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!k)throw d("iexp",g);var n=k[1], 210 | p=k[2],l=k[3],t=k[4],k=n.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!k)throw d("iidexp",n);var r=k[3]||k[1],v=k[2];if(l&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(l)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent)$/.test(l)))throw d("badident",l);var w,z,D,x,u={$id:Ga};t?w=a(t):(D=function(a,c){return Ga(c)},x=function(a){return a});return function(a,f,h,k,n){w&&(z=function(c,d,e){v&&(u[v]=c);u[r]=d;u.$index=e;return w(a,u)});var t=Object.create(null);a.$watchCollection(p, 211 | function(h){var k,p,w=f[0],u,G=Object.create(null),A,J,C,y,Y,V,da;l&&(a[l]=h);if(ab(h))Y=h,p=z||D;else{p=z||x;Y=[];for(da in h)h.hasOwnProperty(da)&&"$"!=da.charAt(0)&&Y.push(da);Y.sort()}A=Y.length;da=Array(A);for(k=0;k 222 | B;)r.pop().element.remove()}for(;x.length>O;)x.pop()[0].element.remove()}var k;if(!(k=r.match(d)))throw Af("iexp",r,pa(f));var l=c(k[2]||k[1]),m=k[4]||k[6],n=k[5],p=c(k[3]||""),q=c(k[2]?k[1]:m),w=c(k[7]),u=k[8]?c(k[8]):null,x=[[{element:f,label:""}]];v&&(a(v)(e),v.removeClass("ng-scope"),v.remove());f.empty();f.on("change",function(){e.$apply(function(){var a,c=w(e)||[],d={},k,l,p,r,v,y,z;if(t)for(l=[],r=0,y=x.length;r@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-animate){display:none !important;}ng\\:form{display:block;}'); 226 | //# sourceMappingURL=angular.min.js.map 227 | --------------------------------------------------------------------------------