##// END OF EJS Templates
frontend: angular 1.7.7
ergo -
Show More
This diff has been collapsed as it changes many lines, (4035 lines changed) Show them Hide them
@@ -1343,417 +1343,458 b''
1343 1343 }).call(this);
1344 1344
1345 1345 ;/*
1346 AngularJS v1.5.5
1347 (c) 2010-2016 Google, Inc. http://angularjs.org
1346 AngularJS v1.7.7
1347 (c) 2010-2018 Google, Inc. http://angularjs.org
1348 1348 License: MIT
1349 1349 */
1350 (function(v){'use strict';function O(a){return function(){var b=arguments[0],d;d="["+(a?a+":":"")+b+"] http://errors.angularjs.org/1.5.5/"+(a?a+"/":"")+b;for(b=1;b<arguments.length;b++){d=d+(1==b?"?":"&")+"p"+(b-1)+"=";var c=encodeURIComponent,e;e=arguments[b];e="function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e;d+=c(e)}return Error(d)}}function ya(a){if(null==a||Va(a))return!1;if(K(a)||F(a)||B&&a instanceof B)return!0;
1351 var b="length"in Object(a)&&a.length;return Q(b)&&(0<=b&&(b-1 in a||a instanceof Array)||"function"==typeof a.item)}function q(a,b,d){var c,e;if(a)if(E(a))for(c in a)"prototype"==c||"length"==c||"name"==c||a.hasOwnProperty&&!a.hasOwnProperty(c)||b.call(d,a[c],c,a);else if(K(a)||ya(a)){var f="object"!==typeof a;c=0;for(e=a.length;c<e;c++)(f||c in a)&&b.call(d,a[c],c,a)}else if(a.forEach&&a.forEach!==q)a.forEach(b,d,a);else if(oc(a))for(c in a)b.call(d,a[c],c,a);else if("function"===typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&
1352 b.call(d,a[c],c,a);else for(c in a)ua.call(a,c)&&b.call(d,a[c],c,a);return a}function pc(a,b,d){for(var c=Object.keys(a).sort(),e=0;e<c.length;e++)b.call(d,a[c[e]],c[e]);return c}function qc(a){return function(b,d){a(d,b)}}function Xd(){return++nb}function Nb(a,b,d){for(var c=a.$$hashKey,e=0,f=b.length;e<f;++e){var g=b[e];if(G(g)||E(g))for(var h=Object.keys(g),k=0,l=h.length;k<l;k++){var n=h[k],m=g[n];d&&G(m)?fa(m)?a[n]=new Date(m.valueOf()):Wa(m)?a[n]=new RegExp(m):m.nodeName?a[n]=m.cloneNode(!0):
1353 Ob(m)?a[n]=m.clone():(G(a[n])||(a[n]=K(m)?[]:{}),Nb(a[n],[m],!0)):a[n]=m}}c?a.$$hashKey=c:delete a.$$hashKey;return a}function R(a){return Nb(a,za.call(arguments,1),!1)}function Yd(a){return Nb(a,za.call(arguments,1),!0)}function X(a){return parseInt(a,10)}function Pb(a,b){return R(Object.create(a),b)}function C(){}function Xa(a){return a}function da(a){return function(){return a}}function rc(a){return E(a.toString)&&a.toString!==ma}function y(a){return"undefined"===typeof a}function x(a){return"undefined"!==
1354 typeof a}function G(a){return null!==a&&"object"===typeof a}function oc(a){return null!==a&&"object"===typeof a&&!sc(a)}function F(a){return"string"===typeof a}function Q(a){return"number"===typeof a}function fa(a){return"[object Date]"===ma.call(a)}function E(a){return"function"===typeof a}function Wa(a){return"[object RegExp]"===ma.call(a)}function Va(a){return a&&a.window===a}function Ya(a){return a&&a.$evalAsync&&a.$watch}function Da(a){return"boolean"===typeof a}function Zd(a){return a&&Q(a.length)&&
1355 $d.test(ma.call(a))}function Ob(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function ae(a){var b={};a=a.split(",");var d;for(d=0;d<a.length;d++)b[a[d]]=!0;return b}function va(a){return P(a.nodeName||a[0]&&a[0].nodeName)}function Za(a,b){var d=a.indexOf(b);0<=d&&a.splice(d,1);return d}function qa(a,b){function d(a,b){var d=b.$$hashKey,e;if(K(a)){e=0;for(var f=a.length;e<f;e++)b.push(c(a[e]))}else if(oc(a))for(e in a)b[e]=c(a[e]);else if(a&&"function"===typeof a.hasOwnProperty)for(e in a)a.hasOwnProperty(e)&&
1356 (b[e]=c(a[e]));else for(e in a)ua.call(a,e)&&(b[e]=c(a[e]));d?b.$$hashKey=d:delete b.$$hashKey;return b}function c(a){if(!G(a))return a;var b=f.indexOf(a);if(-1!==b)return g[b];if(Va(a)||Ya(a))throw Aa("cpws");var b=!1,c=e(a);void 0===c&&(c=K(a)?[]:Object.create(sc(a)),b=!0);f.push(a);g.push(c);return b?d(a,c):c}function e(a){switch(ma.call(a)){case "[object Int8Array]":case "[object Int16Array]":case "[object Int32Array]":case "[object Float32Array]":case "[object Float64Array]":case "[object Uint8Array]":case "[object Uint8ClampedArray]":case "[object Uint16Array]":case "[object Uint32Array]":return new a.constructor(c(a.buffer));
1357 case "[object ArrayBuffer]":if(!a.slice){var b=new ArrayBuffer(a.byteLength);(new Uint8Array(b)).set(new Uint8Array(a));return b}return a.slice(0);case "[object Boolean]":case "[object Number]":case "[object String]":case "[object Date]":return new a.constructor(a.valueOf());case "[object RegExp]":return b=new RegExp(a.source,a.toString().match(/[^\/]*$/)[0]),b.lastIndex=a.lastIndex,b;case "[object Blob]":return new a.constructor([a],{type:a.type})}if(E(a.cloneNode))return a.cloneNode(!0)}var f=[],
1358 g=[];if(b){if(Zd(b)||"[object ArrayBuffer]"===ma.call(b))throw Aa("cpta");if(a===b)throw Aa("cpi");K(b)?b.length=0:q(b,function(a,d){"$$hashKey"!==d&&delete b[d]});f.push(a);g.push(b);return d(a,b)}return c(a)}function ha(a,b){if(K(a)){b=b||[];for(var d=0,c=a.length;d<c;d++)b[d]=a[d]}else if(G(a))for(d in b=b||{},a)if("$"!==d.charAt(0)||"$"!==d.charAt(1))b[d]=a[d];return b||a}function pa(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var d=typeof a,c;if(d==typeof b&&
1359 "object"==d)if(K(a)){if(!K(b))return!1;if((d=a.length)==b.length){for(c=0;c<d;c++)if(!pa(a[c],b[c]))return!1;return!0}}else{if(fa(a))return fa(b)?pa(a.getTime(),b.getTime()):!1;if(Wa(a))return Wa(b)?a.toString()==b.toString():!1;if(Ya(a)||Ya(b)||Va(a)||Va(b)||K(b)||fa(b)||Wa(b))return!1;d=T();for(c in a)if("$"!==c.charAt(0)&&!E(a[c])){if(!pa(a[c],b[c]))return!1;d[c]=!0}for(c in b)if(!(c in d)&&"$"!==c.charAt(0)&&x(b[c])&&!E(b[c]))return!1;return!0}return!1}function $a(a,b,d){return a.concat(za.call(b,
1360 d))}function tc(a,b){var d=2<arguments.length?za.call(arguments,2):[];return!E(b)||b instanceof RegExp?b:d.length?function(){return arguments.length?b.apply(a,$a(d,arguments,0)):b.apply(a,d)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function be(a,b){var d=b;"string"===typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?d=void 0:Va(b)?d="$WINDOW":b&&v.document===b?d="$DOCUMENT":Ya(b)&&(d="$SCOPE");return d}function ab(a,b){if(!y(a))return Q(b)||(b=b?2:null),JSON.stringify(a,be,
1361 b)}function uc(a){return F(a)?JSON.parse(a):a}function vc(a,b){a=a.replace(ce,"");var d=Date.parse("Jan 01, 1970 00:00:00 "+a)/6E4;return isNaN(d)?b:d}function Qb(a,b,d){d=d?-1:1;var c=a.getTimezoneOffset();b=vc(b,c);d*=b-c;a=new Date(a.getTime());a.setMinutes(a.getMinutes()+d);return a}function wa(a){a=B(a).clone();try{a.empty()}catch(b){}var d=B("<div>").append(a).html();try{return a[0].nodeType===Ma?P(d):d.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+P(b)})}catch(c){return P(d)}}
1362 function wc(a){try{return decodeURIComponent(a)}catch(b){}}function xc(a){var b={};q((a||"").split("&"),function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=wc(e),x(e)&&(f=x(f)?wc(f):!0,ua.call(b,e)?K(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function Rb(a){var b=[];q(a,function(a,c){K(a)?q(a,function(a){b.push(ja(c,!0)+(!0===a?"":"="+ja(a,!0)))}):b.push(ja(c,!0)+(!0===a?"":"="+ja(a,!0)))});return b.length?b.join("&"):""}
1363 function ob(a){return ja(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ja(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function de(a,b){var d,c,e=Na.length;for(c=0;c<e;++c)if(d=Na[c]+b,F(d=a.getAttribute(d)))return d;return null}function ee(a,b){var d,c,e={};q(Na,function(b){b+="app";!d&&a.hasAttribute&&a.hasAttribute(b)&&(d=a,c=a.getAttribute(b))});
1364 q(Na,function(b){b+="app";var e;!d&&(e=a.querySelector("["+b.replace(":","\\:")+"]"))&&(d=e,c=e.getAttribute(b))});d&&(e.strictDi=null!==de(d,"strict-di"),b(d,c?[c]:[],e))}function yc(a,b,d){G(d)||(d={});d=R({strictDi:!1},d);var c=function(){a=B(a);if(a.injector()){var c=a[0]===v.document?"document":wa(a);throw Aa("btstrpd",c.replace(/</,"&lt;").replace(/>/,"&gt;"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);
1365 b.unshift("ng");c=bb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;v&&e.test(v.name)&&(d.debugInfoEnabled=!0,v.name=v.name.replace(e,""));if(v&&!f.test(v.name))return c();v.name=v.name.replace(f,"");ea.resumeBootstrap=function(a){q(a,function(a){b.push(a)});return c()};E(ea.resumeDeferredBootstrap)&&ea.resumeDeferredBootstrap()}function fe(){v.name=
1366 "NG_ENABLE_DEBUG_INFO!"+v.name;v.location.reload()}function ge(a){a=ea.element(a).injector();if(!a)throw Aa("test");return a.get("$$testability")}function zc(a,b){b=b||"_";return a.replace(he,function(a,c){return(c?b:"")+a.toLowerCase()})}function ie(){var a;if(!Ac){var b=pb();(Z=y(b)?v.jQuery:b?v[b]:void 0)&&Z.fn.on?(B=Z,R(Z.fn,{scope:Oa.scope,isolateScope:Oa.isolateScope,controller:Oa.controller,injector:Oa.injector,inheritedData:Oa.inheritedData}),a=Z.cleanData,Z.cleanData=function(b){for(var c,
1367 e=0,f;null!=(f=b[e]);e++)(c=Z._data(f,"events"))&&c.$destroy&&Z(f).triggerHandler("$destroy");a(b)}):B=U;ea.element=B;Ac=!0}}function qb(a,b,d){if(!a)throw Aa("areq",b||"?",d||"required");return a}function Pa(a,b,d){d&&K(a)&&(a=a[a.length-1]);qb(E(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Qa(a,b){if("hasOwnProperty"===a)throw Aa("badname",b);}function Bc(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g<f;g++)c=
1368 b[g],a&&(a=(e=a)[c]);return!d&&E(a)?tc(e,a):a}function rb(a){for(var b=a[0],d=a[a.length-1],c,e=1;b!==d&&(b=b.nextSibling);e++)if(c||a[e]!==b)c||(c=B(za.call(a,0,e))),c.push(b);return c||a}function T(){return Object.create(null)}function je(a){function b(a,b,c){return a[b]||(a[b]=c())}var d=O("$injector"),c=O("ng");a=b(a,"angular",Object);a.$$minErr=a.$$minErr||O;return b(a,"module",function(){var a={};return function(f,g,h){if("hasOwnProperty"===f)throw c("badname","module");g&&a.hasOwnProperty(f)&&
1369 (a[f]=null);return b(a,f,function(){function a(b,d,e,f){f||(f=c);return function(){f[e||"push"]([b,d,arguments]);return M}}function b(a,d){return function(b,e){e&&E(e)&&(e.$$moduleName=f);c.push([a,d,arguments]);return M}}if(!g)throw d("nomod",f);var c=[],e=[],r=[],N=a("$injector","invoke","push",e),M={_invokeQueue:c,_configBlocks:e,_runBlocks:r,requires:g,name:f,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide",
1370 "constant","unshift"),decorator:b("$provide","decorator"),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider","directive"),component:b("$compileProvider","component"),config:N,run:function(a){r.push(a);return this}};h&&N(h);return M})}})}function ke(a){R(a,{bootstrap:yc,copy:qa,extend:R,merge:Yd,equals:pa,element:B,forEach:q,injector:bb,noop:C,bind:tc,toJson:ab,fromJson:uc,identity:Xa,isUndefined:y,
1371 isDefined:x,isString:F,isFunction:E,isObject:G,isNumber:Q,isElement:Ob,isArray:K,version:le,isDate:fa,lowercase:P,uppercase:sb,callbacks:{counter:0},getTestability:ge,$$minErr:O,$$csp:Ea,reloadWithDebugInfo:fe});Sb=je(v);Sb("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:me});a.provider("$compile",Cc).directive({a:ne,input:Dc,textarea:Dc,form:oe,script:pe,select:qe,style:re,option:se,ngBind:te,ngBindHtml:ue,ngBindTemplate:ve,ngClass:we,ngClassEven:xe,ngClassOdd:ye,ngCloak:ze,ngController:Ae,
1372 ngForm:Be,ngHide:Ce,ngIf:De,ngInclude:Ee,ngInit:Fe,ngNonBindable:Ge,ngPluralize:He,ngRepeat:Ie,ngShow:Je,ngStyle:Ke,ngSwitch:Le,ngSwitchWhen:Me,ngSwitchDefault:Ne,ngOptions:Oe,ngTransclude:Pe,ngModel:Qe,ngList:Re,ngChange:Se,pattern:Ec,ngPattern:Ec,required:Fc,ngRequired:Fc,minlength:Gc,ngMinlength:Gc,maxlength:Hc,ngMaxlength:Hc,ngValue:Te,ngModelOptions:Ue}).directive({ngInclude:Ve}).directive(tb).directive(Ic);a.provider({$anchorScroll:We,$animate:Xe,$animateCss:Ye,$$animateJs:Ze,$$animateQueue:$e,
1373 $$AnimateRunner:af,$$animateAsyncRun:bf,$browser:cf,$cacheFactory:df,$controller:ef,$document:ff,$exceptionHandler:gf,$filter:Jc,$$forceReflow:hf,$interpolate:jf,$interval:kf,$http:lf,$httpParamSerializer:mf,$httpParamSerializerJQLike:nf,$httpBackend:of,$xhrFactory:pf,$location:qf,$log:rf,$parse:sf,$rootScope:tf,$q:uf,$$q:vf,$sce:wf,$sceDelegate:xf,$sniffer:yf,$templateCache:zf,$templateRequest:Af,$$testability:Bf,$timeout:Cf,$window:Df,$$rAF:Ef,$$jqLite:Ff,$$HashMap:Gf,$$cookieReader:Hf})}])}function cb(a){return a.replace(If,
1374 function(a,d,c,e){return e?c.toUpperCase():c}).replace(Jf,"Moz$1")}function Kc(a){a=a.nodeType;return 1===a||!a||9===a}function Lc(a,b){var d,c,e=b.createDocumentFragment(),f=[];if(Tb.test(a)){d=d||e.appendChild(b.createElement("div"));c=(Kf.exec(a)||["",""])[1].toLowerCase();c=ia[c]||ia._default;d.innerHTML=c[1]+a.replace(Lf,"<$1></$2>")+c[2];for(c=c[0];c--;)d=d.lastChild;f=$a(f,d.childNodes);d=e.firstChild;d.textContent=""}else f.push(b.createTextNode(a));e.textContent="";e.innerHTML="";q(f,function(a){e.appendChild(a)});
1375 return e}function Mc(a,b){var d=a.parentNode;d&&d.replaceChild(b,a);b.appendChild(a)}function U(a){if(a instanceof U)return a;var b;F(a)&&(a=V(a),b=!0);if(!(this instanceof U)){if(b&&"<"!=a.charAt(0))throw Ub("nosel");return new U(a)}if(b){b=v.document;var d;a=(d=Mf.exec(a))?[b.createElement(d[1])]:(d=Lc(a,b))?d.childNodes:[]}Nc(this,a)}function Vb(a){return a.cloneNode(!0)}function ub(a,b){b||db(a);if(a.querySelectorAll)for(var d=a.querySelectorAll("*"),c=0,e=d.length;c<e;c++)db(d[c])}function Oc(a,
1376 b,d,c){if(x(c))throw Ub("offargs");var e=(c=vb(a))&&c.events,f=c&&c.handle;if(f)if(b){var g=function(b){var c=e[b];x(d)&&Za(c||[],d);x(d)&&c&&0<c.length||(a.removeEventListener(b,f,!1),delete e[b])};q(b.split(" "),function(a){g(a);wb[a]&&g(wb[a])})}else for(b in e)"$destroy"!==b&&a.removeEventListener(b,f,!1),delete e[b]}function db(a,b){var d=a.ng339,c=d&&eb[d];c&&(b?delete c.data[b]:(c.handle&&(c.events.$destroy&&c.handle({},"$destroy"),Oc(a)),delete eb[d],a.ng339=void 0))}function vb(a,b){var d=
1377 a.ng339,d=d&&eb[d];b&&!d&&(a.ng339=d=++Nf,d=eb[d]={events:{},data:{},handle:void 0});return d}function Wb(a,b,d){if(Kc(a)){var c=x(d),e=!c&&b&&!G(b),f=!b;a=(a=vb(a,!e))&&a.data;if(c)a[b]=d;else{if(f)return a;if(e)return a&&a[b];R(a,b)}}}function xb(a,b){return a.getAttribute?-1<(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" "):!1}function yb(a,b){b&&a.setAttribute&&q(b.split(" "),function(b){a.setAttribute("class",V((" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g,
1378 " ").replace(" "+V(b)+" "," ")))})}function zb(a,b){if(b&&a.setAttribute){var d=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");q(b.split(" "),function(a){a=V(a);-1===d.indexOf(" "+a+" ")&&(d+=a+" ")});a.setAttribute("class",V(d))}}function Nc(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var d=b.length;if("number"===typeof d&&b.window!==b){if(d)for(var c=0;c<d;c++)a[a.length++]=b[c]}else a[a.length++]=b}}function Pc(a,b){return Ab(a,"$"+(b||"ngController")+"Controller")}function Ab(a,
1379 b,d){9==a.nodeType&&(a=a.documentElement);for(b=K(b)?b:[b];a;){for(var c=0,e=b.length;c<e;c++)if(x(d=B.data(a,b[c])))return d;a=a.parentNode||11===a.nodeType&&a.host}}function Qc(a){for(ub(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Bb(a,b){b||ub(a);var d=a.parentNode;d&&d.removeChild(a)}function Of(a,b){b=b||v;if("complete"===b.document.readyState)b.setTimeout(a);else B(b).on("load",a)}function Rc(a,b){var d=Cb[b.toLowerCase()];return d&&Sc[va(a)]&&d}function Pf(a,b){var d=function(c,
1380 d){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=b[d||c.type],g=f?f.length:0;if(g){if(y(c.immediatePropagationStopped)){var h=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();h&&h.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};var k=f.specialHandlerWrapper||Qf;1<g&&(f=ha(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||k(a,c,f[l])}};d.elem=
1381 a;return d}function Qf(a,b,d){d.call(a,b)}function Rf(a,b,d){var c=b.relatedTarget;c&&(c===a||Sf.call(a,c))||d.call(a,b)}function Ff(){this.$get=function(){return R(U,{hasClass:function(a,b){a.attr&&(a=a[0]);return xb(a,b)},addClass:function(a,b){a.attr&&(a=a[0]);return zb(a,b)},removeClass:function(a,b){a.attr&&(a=a[0]);return yb(a,b)}})}}function Fa(a,b){var d=a&&a.$$hashKey;if(d)return"function"===typeof d&&(d=a.$$hashKey()),d;d=typeof a;return d="function"==d||"object"==d&&null!==a?a.$$hashKey=
1382 d+":"+(b||Xd)():d+":"+a}function Ra(a,b){if(b){var d=0;this.nextUid=function(){return++d}}q(a,this.put,this)}function Tc(a){a=Function.prototype.toString.call(a).replace(Tf,"");return a.match(Uf)||a.match(Vf)}function Wf(a){return(a=Tc(a))?"function("+(a[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function bb(a,b){function d(a){return function(b,c){if(G(b))q(b,qc(a));else return a(b,c)}}function c(a,b){Qa(a,"service");if(E(b)||K(b))b=r.instantiate(b);if(!b.$get)throw Ga("pget",a);return m[a+"Provider"]=
1383 b}function e(a,b){return function(){var c=w.invoke(b,this);if(y(c))throw Ga("undef",a);return c}}function f(a,b,d){return c(a,{$get:!1!==d?e(a,b):b})}function g(a){qb(y(a)||K(a),"modulesToLoad","not an array");var b=[],c;q(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=r.get(e[0]);f[e[1]].apply(f,e[2])}}if(!n.get(a)){n.put(a,!0);try{F(a)?(c=Sb(a),b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):E(a)?b.push(r.invoke(a)):K(a)?b.push(r.invoke(a)):
1384 Pa(a,"module")}catch(e){throw K(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ga("modulerr",a,e.stack||e.message||e);}}});return b}function h(a,c){function d(b,e){if(a.hasOwnProperty(b)){if(a[b]===k)throw Ga("cdep",b+" <- "+l.join(" <- "));return a[b]}try{return l.unshift(b),a[b]=k,a[b]=c(b,e)}catch(f){throw a[b]===k&&delete a[b],f;}finally{l.shift()}}function e(a,c,f){var g=[];a=bb.$$annotate(a,b,f);for(var h=0,k=a.length;h<k;h++){var l=a[h];
1385 if("string"!==typeof l)throw Ga("itkn",l);g.push(c&&c.hasOwnProperty(l)?c[l]:d(l,f))}return g}return{invoke:function(a,b,c,d){"string"===typeof c&&(d=c,c=null);c=e(a,c,d);K(a)&&(a=a[a.length-1]);d=11>=Ca?!1:"function"===typeof a&&/^(?:class\s|constructor\()/.test(Function.prototype.toString.call(a));return d?(c.unshift(null),new (Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d=K(a)?a[a.length-1]:a;a=e(a,b,c);a.unshift(null);return new (Function.prototype.bind.apply(d,
1386 a))},get:d,annotate:bb.$$annotate,has:function(b){return m.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var k={},l=[],n=new Ra([],!0),m={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,da(b),!1)}),constant:d(function(a,b){Qa(a,"constant");m[a]=b;N[a]=b}),decorator:function(a,b){var c=r.get(a+"Provider"),d=c.$get;c.$get=function(){var a=w.invoke(d,c);return w.invoke(b,null,
1387 {$delegate:a})}}}},r=m.$injector=h(m,function(a,b){ea.isString(b)&&l.push(b);throw Ga("unpr",l.join(" <- "));}),N={},M=h(N,function(a,b){var c=r.get(a+"Provider",b);return w.invoke(c.$get,c,void 0,a)}),w=M;m.$injectorProvider={$get:da(M)};var p=g(a),w=M.get("$injector");w.strictDi=b;q(p,function(a){a&&w.invoke(a)});return w}function We(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a,
1388 function(a){if("a"===va(a))return b=a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;E(c)?c=c():Ob(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):Q(c)||(c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=F(a)?a:d.hash();var b;a?(b=h.getElementById(a))?f(b):(b=e(h.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var h=b.document;a&&c.$watch(function(){return d.hash()},function(a,b){a===
1389 b&&""===a||Of(function(){c.$evalAsync(g)})});return g}]}function fb(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;K(a)&&(a=a.join(" "));K(b)&&(b=b.join(" "));return a+" "+b}function Xf(a){F(a)&&(a=a.split(" "));var b=T();q(a,function(a){a.length&&(b[a]=!0)});return b}function Ha(a){return G(a)?a:{}}function Yf(a,b,d,c){function e(a){try{a.apply(null,za.call(arguments,1))}finally{if(M--,0===M)for(;w.length;)try{w.pop()()}catch(b){d.error(b)}}}function f(){u=null;g();h()}function g(){p=I();
1390 p=y(p)?null:p;pa(p,L)&&(p=L);L=p}function h(){if(t!==k.url()||H!==p)t=k.url(),H=p,q(J,function(a){a(k.url(),p)})}var k=this,l=a.location,n=a.history,m=a.setTimeout,r=a.clearTimeout,N={};k.isMock=!1;var M=0,w=[];k.$$completeOutstandingRequest=e;k.$$incOutstandingRequestCount=function(){M++};k.notifyWhenNoOutstandingRequests=function(a){0===M?a():w.push(a)};var p,H,t=l.href,z=b.find("base"),u=null,I=c.history?function(){try{return n.state}catch(a){}}:C;g();H=p;k.url=function(b,d,e){y(e)&&(e=null);l!==
1391 a.location&&(l=a.location);n!==a.history&&(n=a.history);if(b){var f=H===e;if(t===b&&(!c.history||f))return k;var h=t&&Ia(t)===Ia(b);t=b;H=e;if(!c.history||h&&f){if(!h||u)u=b;d?l.replace(b):h?(d=l,e=b.indexOf("#"),e=-1===e?"":b.substr(e),d.hash=e):l.href=b;l.href!==b&&(u=b)}else n[d?"replaceState":"pushState"](e,"",b),g(),H=p;return k}return u||l.href.replace(/%27/g,"'")};k.state=function(){return p};var J=[],D=!1,L=null;k.onUrlChange=function(b){if(!D){if(c.history)B(a).on("popstate",f);B(a).on("hashchange",
1392 f);D=!0}J.push(b);return b};k.$$applicationDestroyed=function(){B(a).off("hashchange popstate",f)};k.$$checkUrlChange=h;k.baseHref=function(){var a=z.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};k.defer=function(a,b){var c;M++;c=m(function(){delete N[c];e(a)},b||0);N[c]=!0;return c};k.defer.cancel=function(a){return N[a]?(delete N[a],r(a),e(C),!0):!1}}function cf(){this.$get=["$window","$log","$sniffer","$document",function(a,b,d,c){return new Yf(a,c,b,d)}]}function df(){this.$get=
1393 function(){function a(a,c){function e(a){a!=m&&(r?r==a&&(r=a.n):r=a,f(a.n,a.p),f(a,m),m=a,m.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw O("$cacheFactory")("iid",a);var g=0,h=R({},c,{id:a}),k=T(),l=c&&c.capacity||Number.MAX_VALUE,n=T(),m=null,r=null;return b[a]={put:function(a,b){if(!y(b)){if(l<Number.MAX_VALUE){var c=n[a]||(n[a]={key:a});e(c)}a in k||g++;k[a]=b;g>l&&this.remove(r.key);return b}},get:function(a){if(l<Number.MAX_VALUE){var b=n[a];if(!b)return;e(b)}return k[a]},
1394 remove:function(a){if(l<Number.MAX_VALUE){var b=n[a];if(!b)return;b==m&&(m=b.p);b==r&&(r=b.n);f(b.n,b.p);delete n[a]}a in k&&(delete k[a],g--)},removeAll:function(){k=T();g=0;n=T();m=r=null},destroy:function(){n=h=k=null;delete b[a]},info:function(){return R({},h,{size:g})}}}var b={};a.info=function(){var a={};q(b,function(b,e){a[e]=b.info()});return a};a.get=function(a){return b[a]};return a}}function zf(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function Cc(a,b){function d(a,
1395 b,c){var d=/^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/,e=T();q(a,function(a,f){if(a in n)e[f]=n[a];else{var g=a.match(d);if(!g)throw ga("iscp",b,f,a,c?"controller bindings definition":"isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f};g[4]&&(n[a]=e[f])}});return e}function c(a){var b=a.charAt(0);if(!b||b!==P(b))throw ga("baddir",a);if(a!==a.trim())throw ga("baddir",a);}var e={},f=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,g=/(([\w\-]+)(?:\:([^;]+))?;?)/,
1396 h=ae("ngSrc,ngSrcset,src,srcset"),k=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,l=/^(on[a-z]+|formaction)$/,n=T();this.directive=function M(b,d){Qa(b,"directive");F(b)?(c(b),qb(d,"directiveFactory"),e.hasOwnProperty(b)||(e[b]=[],a.factory(b+"Directive",["$injector","$exceptionHandler",function(a,c){var d=[];q(e[b],function(e,f){try{var g=a.invoke(e);E(g)?g={compile:da(g)}:!g.compile&&g.link&&(g.compile=da(g.link));g.priority=g.priority||0;g.index=f;g.name=g.name||b;g.require=g.require||g.controller&&g.name;g.restrict=
1397 g.restrict||"EA";g.$$moduleName=e.$$moduleName;d.push(g)}catch(h){c(h)}});return d}])),e[b].push(d)):q(b,qc(M));return this};this.component=function(a,b){function c(a){function e(b){return E(b)||K(b)?function(c,d){return a.invoke(b,this,{$element:c,$attrs:d})}:b}var f=b.template||b.templateUrl?b.template:"",g={controller:d,controllerAs:Uc(b.controller)||b.controllerAs||"$ctrl",template:e(f),templateUrl:e(b.templateUrl),transclude:b.transclude,scope:{},bindToController:b.bindings||{},restrict:"E",
1398 require:b.require};q(b,function(a,b){"$"===b.charAt(0)&&(g[b]=a)});return g}var d=b.controller||function(){};q(b,function(a,b){"$"===b.charAt(0)&&(c[b]=a,E(d)&&(d[b]=a))});c.$inject=["$injector"];return this.directive(a,c)};this.aHrefSanitizationWhitelist=function(a){return x(a)?(b.aHrefSanitizationWhitelist(a),this):b.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(a){return x(a)?(b.imgSrcSanitizationWhitelist(a),this):b.imgSrcSanitizationWhitelist()};var m=!0;this.debugInfoEnabled=
1399 function(a){return x(a)?(m=a,this):m};var r=10;this.onChangesTtl=function(a){return arguments.length?(r=a,this):r};this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(a,b,c,n,t,z,u,I,J,D){function L(){try{if(!--qa)throw Z=void 0,ga("infchng",r);u.$apply(function(){for(var a=0,b=Z.length;a<b;++a)Z[a]();Z=void 0})}finally{qa++}}function S(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<
1400 e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a}function $(a,b,c){na.innerHTML="<span "+b+">";b=na.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function A(a,b){try{a.addClass(b)}catch(c){}}function ba(a,b,c,d,e){a instanceof B||(a=B(a));for(var f=/\S+/,g=0,h=a.length;g<h;g++){var k=a[g];k.nodeType===Ma&&k.nodeValue.match(f)&&Mc(k,a[g]=v.document.createElement("span"))}var l=s(a,b,a,c,d,e);ba.$$addScopeClass(a);var m=null;return function(b,
1401 c,d){qb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var f=d.parentBoundTranscludeFn,g=d.transcludeControllers;d=d.futureParentElement;f&&f.$$boundTransclude&&(f=f.$$boundTransclude);m||(m=(d=d&&d[0])?"foreignobject"!==va(d)&&ma.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==m?B(ca(m,B("<div>").append(a).html())):c?Oa.clone.call(a):a;if(g)for(var h in g)d.data("$"+h+"Controller",g[h].instance);ba.$$addScopeInfo(d,b);c&&c(d,b);l&&l(b,d,d,f);return d}}function s(a,b,c,d,e,f){function g(a,
1402 c,d,e){var f,k,l,m,n,t,p;if(r)for(p=Array(c.length),m=0;m<h.length;m+=3)f=h[m],p[f]=c[f];else p=c;m=0;for(n=h.length;m<n;)k=p[h[m++]],c=h[m++],f=h[m++],c?(c.scope?(l=a.$new(),ba.$$addScopeInfo(B(k),l)):l=a,t=c.transcludeOnThisElement?ka(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?ka(a,b):null,c(f,l,k,d,t)):f&&f(a,k.childNodes,void 0,e)}for(var h=[],k,l,m,n,r,t=0;t<a.length;t++){k=new S;l=x(a[t],[],k,0===t?d:void 0,e);(f=l.length?Ba(l,a[t],k,b,c,null,[],[],f):null)&&f.scope&&ba.$$addScopeClass(k.$$element);
1403 k=f&&f.terminal||!(m=a[t].childNodes)||!m.length?null:s(m,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||k)h.push(t,f,k),n=!0,r=r||f;f=null}return n?g:null}function ka(a,b,c){function d(e,f,g,h,k){e||(e=a.$new(!1,k),e.$$transcluded=!0);return b(e,f,{parentBoundTranscludeFn:c,transcludeControllers:g,futureParentElement:h})}var e=d.$$slots=T(),f;for(f in b.$$slots)e[f]=b.$$slots[f]?ka(a,b.$$slots[f],c):null;return d}function x(a,b,c,d,e){var h=c.$attr,k;switch(a.nodeType){case 1:la(b,
1404 xa(va(a)),"E",d,e);for(var l,m,n,t=a.attributes,r=0,p=t&&t.length;r<p;r++){var I=!1,D=!1;l=t[r];k=l.name;m=V(l.value);l=xa(k);if(n=ya.test(l))k=k.replace(Vc,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()});(l=l.match(Aa))&&Q(l[1])&&(I=k,D=k.substr(0,k.length-5)+"end",k=k.substr(0,k.length-6));l=xa(k.toLowerCase());h[l]=k;if(n||!c.hasOwnProperty(l))c[l]=m,Rc(a,l)&&(c[l]=!0);fa(a,b,m,l,n);la(b,l,"A",d,e,I,D)}a=a.className;G(a)&&(a=a.animVal);if(F(a)&&""!==a)for(;k=g.exec(a);)l=xa(k[2]),
1405 la(b,l,"C",d,e)&&(c[l]=V(k[3])),a=a.substr(k.index+k[0].length);break;case Ma:if(11===Ca)for(;a.parentNode&&a.nextSibling&&a.nextSibling.nodeType===Ma;)a.nodeValue+=a.nextSibling.nodeValue,a.parentNode.removeChild(a.nextSibling);X(b,a.nodeValue);break;case 8:try{if(k=f.exec(a.nodeValue))l=xa(k[1]),la(b,l,"M",d,e)&&(c[l]=V(k[2]))}catch(J){}}b.sort(Y);return b}function Wc(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ga("uterdir",b,c);1==a.nodeType&&(a.hasAttribute(b)&&
1406 e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return B(d)}function Xc(a,b,c){return function(d,e,f,g,h){e=Wc(e[0],b,c);return a(d,e,f,g,h)}}function Yb(a,b,c,d,e,f){var g;return a?ba(b,c,d,e,f):function(){g||(g=ba(b,c,d,e,f),b=c=f=null);return g.apply(this,arguments)}}function Ba(a,b,d,e,f,g,h,k,l){function m(a,b,c,d){if(a){c&&(a=Xc(a,c,d));a.require=A.require;a.directiveName=M;if(D===A||A.$$isolateScope)a=ha(a,{isolateScope:!0});h.push(a)}if(b){c&&(b=Xc(b,c,d));
1407 b.require=A.require;b.directiveName=M;if(D===A||A.$$isolateScope)b=ha(b,{isolateScope:!0});k.push(b)}}function n(a,c,e,f,g){function l(a,b,c,d){var e;Ya(a)||(d=c,c=b,b=a,a=void 0);H&&(e=u);c||(c=H?z.parent():z);if(d){var f=g.$$slots[d];if(f)return f(a,b,e,c,$);if(y(f))throw ga("noslot",d,wa(z));}else return g(a,b,e,c,$)}var m,t,p,A,w,u,L,z;b===e?(f=d,z=d.$$element):(z=B(e),f=new S(z,d));w=c;D?A=c.$new(!0):r&&(w=c.$parent);g&&(L=l,L.$$boundTransclude=g,L.isSlotFilled=function(a){return!!g.$$slots[a]});
1408 I&&(u=O(z,f,L,I,A,c,D));D&&(ba.$$addScopeInfo(z,A,!0,!(J&&(J===D||J===D.$$originalDirective))),ba.$$addScopeClass(z,!0),A.$$isolateBindings=D.$$isolateBindings,t=ia(c,f,A,A.$$isolateBindings,D),t.removeWatches&&A.$on("$destroy",t.removeWatches));for(m in u){t=I[m];p=u[m];var Xb=t.$$bindings.bindToController;p.bindingInfo=p.identifier&&Xb?ia(w,f,p.instance,Xb,t):{};var M=p();M!==p.instance&&(p.instance=M,z.data("$"+t.name+"Controller",M),p.bindingInfo.removeWatches&&p.bindingInfo.removeWatches(),p.bindingInfo=
1409 ia(w,f,p.instance,Xb,t))}q(I,function(a,b){var c=a.require;a.bindToController&&!K(c)&&G(c)&&R(u[b].instance,gb(b,c,z,u))});q(u,function(a){var b=a.instance;E(b.$onChanges)&&b.$onChanges(a.bindingInfo.initialChanges);E(b.$onInit)&&b.$onInit();E(b.$onDestroy)&&w.$on("$destroy",function(){b.$onDestroy()})});m=0;for(t=h.length;m<t;m++)p=h[m],ja(p,p.isolateScope?A:c,z,f,p.require&&gb(p.directiveName,p.require,z,u),L);var $=c;D&&(D.template||null===D.templateUrl)&&($=A);a&&a($,e.childNodes,void 0,g);for(m=
1410 k.length-1;0<=m;m--)p=k[m],ja(p,p.isolateScope?A:c,z,f,p.require&&gb(p.directiveName,p.require,z,u),L);q(u,function(a){a=a.instance;E(a.$postLink)&&a.$postLink()})}l=l||{};for(var t=-Number.MAX_VALUE,r=l.newScopeDirective,I=l.controllerDirectives,D=l.newIsolateScopeDirective,J=l.templateDirective,w=l.nonTlbTranscludeDirective,u=!1,L=!1,H=l.hasElementTranscludeDirective,z=d.$$element=B(b),A,M,$,s=e,Sa,ka=!1,C=!1,v,F=0,Ba=a.length;F<Ba;F++){A=a[F];var P=A.$$start,Q=A.$$end;P&&(z=Wc(b,P,Q));$=void 0;
1411 if(t>A.priority)break;if(v=A.scope)A.templateUrl||(G(v)?(W("new/isolated scope",D||r,A,z),D=A):W("new/isolated scope",D,A,z)),r=r||A;M=A.name;if(!ka&&(A.replace&&(A.templateUrl||A.template)||A.transclude&&!A.$$tlb)){for(v=F+1;ka=a[v++];)if(ka.transclude&&!ka.$$tlb||ka.replace&&(ka.templateUrl||ka.template)){C=!0;break}ka=!0}!A.templateUrl&&A.controller&&(v=A.controller,I=I||T(),W("'"+M+"' controller",I[M],A,z),I[M]=A);if(v=A.transclude)if(u=!0,A.$$tlb||(W("transclusion",w,A,z),w=A),"element"==v)H=
1412 !0,t=A.priority,$=z,z=d.$$element=B(ba.$$createComment(M,d[M])),b=z[0],da(f,za.call($,0),b),$[0].$$parentNode=$[0].parentNode,s=Yb(C,$,e,t,g&&g.name,{nonTlbTranscludeDirective:w});else{var la=T();$=B(Vb(b)).contents();if(G(v)){$=[];var Y=T(),X=T();q(v,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Y[a]=b;la[b]=null;X[b]=c});q(z.contents(),function(a){var b=Y[xa(va(a))];b?(X[b]=!0,la[b]=la[b]||[],la[b].push(a)):$.push(a)});q(X,function(a,b){if(!a)throw ga("reqslot",b);});for(var Z in la)la[Z]&&
1413 (la[Z]=Yb(C,la[Z],e))}z.empty();s=Yb(C,$,e,void 0,void 0,{needsNewScope:A.$$isolateScope||A.$$newScope});s.$$slots=la}if(A.template)if(L=!0,W("template",J,A,z),J=A,v=E(A.template)?A.template(z,d):A.template,v=ta(v),A.replace){g=A;$=Tb.test(v)?Yc(ca(A.templateNamespace,V(v))):[];b=$[0];if(1!=$.length||1!==b.nodeType)throw ga("tplrt",M,"");da(f,z,b);Ba={$attr:{}};v=x(b,[],Ba);var ea=a.splice(F+1,a.length-(F+1));(D||r)&&Zc(v,D,r);a=a.concat(v).concat(ea);U(d,Ba);Ba=a.length}else z.html(v);if(A.templateUrl)L=
1414 !0,W("template",J,A,z),J=A,A.replace&&(g=A),n=aa(a.splice(F,a.length-F),z,d,f,u&&s,h,k,{controllerDirectives:I,newScopeDirective:r!==A&&r,newIsolateScopeDirective:D,templateDirective:J,nonTlbTranscludeDirective:w}),Ba=a.length;else if(A.compile)try{Sa=A.compile(z,d,s),E(Sa)?m(null,Sa,P,Q):Sa&&m(Sa.pre,Sa.post,P,Q)}catch(fa){c(fa,wa(z))}A.terminal&&(n.terminal=!0,t=Math.max(t,A.priority))}n.scope=r&&!0===r.scope;n.transcludeOnThisElement=u;n.templateOnThisElement=L;n.transclude=s;l.hasElementTranscludeDirective=
1415 H;return n}function gb(a,b,c,d){var e;if(F(b)){var f=b.match(k);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e=g?c.inheritedData(h):c.data(h)}if(!e&&!f)throw ga("ctreq",b,a);}else if(K(b))for(e=[],g=0,f=b.length;g<f;g++)e[g]=gb(a,b[g],c,d);else G(b)&&(e={},q(b,function(b,f){e[f]=gb(a,b,c,d)}));return e||null}function O(a,b,c,d,e,f,g){var h=T(),k;for(k in d){var l=d[k],m={$scope:l===g||l.$$isolateScope?e:f,
1416 $element:a,$attrs:b,$transclude:c},n=l.controller;"@"==n&&(n=b[l.name]);m=z(n,m,!0,l.controllerAs);h[l.name]=m;a.data("$"+l.name+"Controller",m.instance)}return h}function Zc(a,b,c){for(var d=0,e=a.length;d<e;d++)a[d]=Pb(a[d],{$$isolateScope:b,$$newScope:c})}function la(b,f,g,h,k,l,m){if(f===k)return null;k=null;if(e.hasOwnProperty(f)){var n;f=a.get(f+"Directive");for(var t=0,r=f.length;t<r;t++)try{if(n=f[t],(y(h)||h>n.priority)&&-1!=n.restrict.indexOf(g)){l&&(n=Pb(n,{$$start:l,$$end:m}));if(!n.$$bindings){var I=
1417 n,D=n,A=n.name,J={isolateScope:null,bindToController:null};G(D.scope)&&(!0===D.bindToController?(J.bindToController=d(D.scope,A,!0),J.isolateScope={}):J.isolateScope=d(D.scope,A,!1));G(D.bindToController)&&(J.bindToController=d(D.bindToController,A,!0));if(G(J.bindToController)){var w=D.controller,z=D.controllerAs;if(!w)throw ga("noctrl",A);if(!Uc(w,z))throw ga("noident",A);}var u=I.$$bindings=J;G(u.isolateScope)&&(n.$$isolateBindings=u.isolateScope)}b.push(n);k=n}}catch(L){c(L)}}return k}function Q(b){if(e.hasOwnProperty(b))for(var c=
1418 a.get(b+"Directive"),d=0,f=c.length;d<f;d++)if(b=c[d],b.multiElement)return!0;return!1}function U(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?(A(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function aa(a,b,c,d,e,f,
1419 g,h){var k=[],l,m,t=b[0],p=a.shift(),r=Pb(p,{templateUrl:null,transclude:null,replace:null,$$originalDirective:p}),I=E(p.templateUrl)?p.templateUrl(b,c):p.templateUrl,D=p.templateNamespace;b.empty();n(I).then(function(n){var J,w;n=ta(n);if(p.replace){n=Tb.test(n)?Yc(ca(D,V(n))):[];J=n[0];if(1!=n.length||1!==J.nodeType)throw ga("tplrt",p.name,I);n={$attr:{}};da(d,b,J);var z=x(J,[],n);G(p.scope)&&Zc(z,!0);a=z.concat(a);U(c,n)}else J=t,b.html(n);a.unshift(r);l=Ba(a,J,c,e,b,p,f,g,h);q(d,function(a,c){a==
1420 J&&(d[c]=b[0])});for(m=s(b[0].childNodes,e);k.length;){n=k.shift();w=k.shift();var u=k.shift(),L=k.shift(),z=b[0];if(!n.$$destroyed){if(w!==t){var S=w.className;h.hasElementTranscludeDirective&&p.replace||(z=Vb(J));da(u,B(w),z);A(B(z),S)}w=l.transcludeOnThisElement?ka(n,l.transclude,L):L;l(m,n,z,d,w)}}k=null});return function(a,b,c,d,e){a=e;b.$$destroyed||(k?k.push(b,c,d,a):(l.transcludeOnThisElement&&(a=ka(b,l.transclude,e)),l(m,b,c,d,a)))}}function Y(a,b){var c=b.priority-a.priority;return 0!==
1421 c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function W(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw ga("multidir",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,wa(d));}function X(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&ba.$$addBindingClass(a);return function(a,c){var e=c.parent();b||ba.$$addBindingClass(e);ba.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function ca(a,b){a=
1422 P(a||"html");switch(a){case "svg":case "math":var c=v.document.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function ea(a,b){if("srcdoc"==b)return I.HTML;var c=va(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return I.RESOURCE_URL}function fa(a,c,d,e,f){var g=ea(a,e);f=h[e]||f;var k=b(d,!0,g,f);if(k){if("multiple"===e&&"select"===va(a))throw ga("selmulti",wa(a));c.push({priority:100,compile:function(){return{pre:function(a,
1423 c,h){c=h.$$observers||(h.$$observers=T());if(l.test(e))throw ga("nodomevents");var m=h[e];m!==d&&(k=m&&b(m,!0,g,f),d=m);k&&(h[e]=k(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(k,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$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;g<h;g++)if(a[g]==d){a[g++]=c;h=g+e-1;for(var k=a.length;g<k;g++,h++)h<k?a[g]=a[h]:delete a[g];a.length-=e-1;a.context===d&&(a.context=
1424 c);break}f&&f.replaceChild(c,d);a=v.document.createDocumentFragment();for(g=0;g<e;g++)a.appendChild(b[g]);B.hasData(d)&&(B.data(c,B.data(d)),B(d).off("$destroy"));B.cleanData(a.querySelectorAll("*"));for(g=1;g<e;g++)delete b[g];b[0]=c;b.length=1}function ha(a,b){return R(function(){return a.apply(null,arguments)},a,b)}function ja(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(h){c(h,wa(d))}}function ia(a,c,d,e,f){function g(b,c,e){E(d.$onChanges)&&c!==e&&(Z||(a.$$postDigest(L),Z=[]),m||(m={},Z.push(h)),m[b]&&
1425 (e=m[b].previousValue),m[b]=new Db(e,c))}function h(){d.$onChanges(m);m=void 0}var k=[],l={},m;q(e,function(e,h){var m=e.attrName,n=e.optional,p,r,I,D;switch(e.mode){case "@":n||ua.call(c,m)||(d[h]=c[m]=void 0);c.$observe(m,function(a){if(F(a)||Da(a))g(h,a,d[h]),d[h]=a});c.$$observers[m].$$scope=a;p=c[m];F(p)?d[h]=b(p)(a):Da(p)&&(d[h]=p);l[h]=new Db(Zb,d[h]);break;case "=":if(!ua.call(c,m)){if(n)break;c[m]=void 0}if(n&&!c[m])break;r=t(c[m]);D=r.literal?pa:function(a,b){return a===b||a!==a&&b!==b};
1426 I=r.assign||function(){p=d[h]=r(a);throw ga("nonassign",c[m],m,f.name);};p=d[h]=r(a);n=function(b){D(b,d[h])||(D(b,p)?I(a,b=d[h]):d[h]=b);return p=b};n.$stateful=!0;n=e.collection?a.$watchCollection(c[m],n):a.$watch(t(c[m],n),null,r.literal);k.push(n);break;case "<":if(!ua.call(c,m)){if(n)break;c[m]=void 0}if(n&&!c[m])break;r=t(c[m]);d[h]=r(a);l[h]=new Db(Zb,d[h]);n=a.$watch(r,function(a,b){a===b&&(b=d[h]);g(h,a,b);d[h]=a},r.literal);k.push(n);break;case "&":r=c.hasOwnProperty(m)?t(c[m]):C;if(r===
1427 C&&n)break;d[h]=function(b){return r(a,b)}}});return{initialChanges:l,removeWatches:k.length&&function(){for(var a=0,b=k.length;a<b;++a)k[a]()}}}var oa=/^\w/,na=v.document.createElement("div"),qa=r,Z;S.prototype={$normalize:xa,$addClass:function(a){a&&0<a.length&&J.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&J.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=$c(a,b);c&&c.length&&J.addClass(this.$$element,c);(c=$c(b,a))&&c.length&&J.removeClass(this.$$element,
1428 c)},$set:function(a,b,d,e){var f=Rc(this.$$element[0],a),g=ad[a],h=a;f?(this.$$element.prop(a,b),e=f):g&&(this[g]=b,h=g);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=zc(a,"-"));f=va(this.$$element);if("a"===f&&("href"===a||"xlinkHref"===a)||"img"===f&&"src"===a)this[a]=b=D(b,"src"===a);else if("img"===f&&"srcset"===a){for(var f="",g=V(b),k=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,k=/\s/.test(g)?k:/(,)/,g=g.split(k),k=Math.floor(g.length/2),l=0;l<k;l++)var m=2*l,f=f+D(V(g[m]),!0),f=
1429 f+(" "+V(g[m+1]));g=V(g[2*l]).split(/\s/);f+=D(V(g[0]),!0);2===g.length&&(f+=" "+V(g[1]));this[a]=b=f}!1!==d&&(null===b||y(b)?this.$$element.removeAttr(e):oa.test(e)?this.$$element.attr(e,b):$(this.$$element[0],e,b));(a=this.$$observers)&&q(a[h],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=T()),e=d[a]||(d[a]=[]);e.push(b);u.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||y(c[a])||b(c[a])});return function(){Za(e,b)}}};var ra=b.startSymbol(),
1430 sa=b.endSymbol(),ta="{{"==ra&&"}}"==sa?Xa:function(a){return a.replace(/\{\{/g,ra).replace(/}}/g,sa)},ya=/^ngAttr[A-Z]/,Aa=/^(.+)Start$/;ba.$$addBindingInfo=m?function(a,b){var c=a.data("$binding")||[];K(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:C;ba.$$addBindingClass=m?function(a){A(a,"ng-binding")}:C;ba.$$addScopeInfo=m?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:C;ba.$$addScopeClass=m?function(a,b){A(a,b?"ng-isolate-scope":"ng-scope")}:C;ba.$$createComment=
1431 function(a,b){var c="";m&&(c=" "+(a||"")+": "+(b||"")+" ");return v.document.createComment(c)};return ba}]}function Db(a,b){this.previousValue=a;this.currentValue=b}function xa(a){return cb(a.replace(Vc,""))}function $c(a,b){var d="",c=a.split(/\s+/),e=b.split(/\s+/),f=0;a:for(;f<c.length;f++){for(var g=c[f],h=0;h<e.length;h++)if(g==e[h])continue a;d+=(0<d.length?" ":"")+g}return d}function Yc(a){a=B(a);var b=a.length;if(1>=b)return a;for(;b--;)8===a[b].nodeType&&Zf.call(a,b,1);return a}function Uc(a,
1432 b){if(b&&F(b))return b;if(F(a)){var d=bd.exec(a);if(d)return d[3]}}function ef(){var a={},b=!1;this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,c){Qa(b,"controller");G(b)?R(a,b):a[b]=c};this.allowGlobals=function(){b=!0};this.$get=["$injector","$window",function(d,c){function e(a,b,c,d){if(!a||!G(a.$scope))throw O("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,k){var l,n,m;h=!0===h;k&&F(k)&&(m=k);if(F(f)){k=f.match(bd);if(!k)throw $f("ctrlfmt",f);n=k[1];m=
1433 m||k[3];f=a.hasOwnProperty(n)?a[n]:Bc(g.$scope,n,!0)||(b?Bc(c,n,!0):void 0);Pa(f,n,!0)}if(h)return h=(K(f)?f[f.length-1]:f).prototype,l=Object.create(h||null),m&&e(g,m,l,n||f.name),R(function(){var a=d.invoke(f,l,g,n);a!==l&&(G(a)||E(a))&&(l=a,m&&e(g,m,l,n||f.name));return l},{instance:l,identifier:m});l=d.instantiate(f,g,n);m&&e(g,m,l,n||f.name);return l}}]}function ff(){this.$get=["$window",function(a){return B(a.document)}]}function gf(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a,
1434 arguments)}}]}function $b(a){return G(a)?fa(a)?a.toISOString():ab(a):a}function mf(){this.$get=function(){return function(a){if(!a)return"";var b=[];pc(a,function(a,c){null===a||y(a)||(K(a)?q(a,function(a){b.push(ja(c)+"="+ja($b(a)))}):b.push(ja(c)+"="+ja($b(a))))});return b.join("&")}}}function nf(){this.$get=function(){return function(a){function b(a,e,f){null===a||y(a)||(K(a)?q(a,function(a,c){b(a,e+"["+(G(a)?c:"")+"]")}):G(a)&&!fa(a)?pc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):d.push(ja(e)+
1435 "="+ja($b(a))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function ac(a,b){if(F(a)){var d=a.replace(ag,"").trim();if(d){var c=b("Content-Type");(c=c&&0===c.indexOf(cd))||(c=(c=d.match(bg))&&cg[c[0]].test(d));c&&(a=uc(d))}}return a}function dd(a){var b=T(),d;F(a)?q(a.split("\n"),function(a){d=a.indexOf(":");var e=P(V(a.substr(0,d)));a=V(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):G(a)&&q(a,function(a,d){var f=P(d),g=V(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function ed(a){var b;
1436 return function(d){b||(b=dd(a));return d?(d=b[P(d)],void 0===d&&(d=null),d):b}}function fd(a,b,d,c){if(E(c))return c(a,b,d);q(c,function(c){a=c(a,b,d)});return a}function lf(){var a=this.defaults={transformResponse:[ac],transformRequest:[function(a){return G(a)&&"[object File]"!==ma.call(a)&&"[object Blob]"!==ma.call(a)&&"[object FormData]"!==ma.call(a)?ab(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ha(bc),put:ha(bc),patch:ha(bc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",
1437 paramSerializer:"$httpParamSerializer"},b=!1;this.useApplyAsync=function(a){return x(a)?(b=!!a,this):b};var d=!0;this.useLegacyPromiseExtensions=function(a){return x(a)?(d=!!a,this):d};var c=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,g,h,k,l){function n(b){function c(a){var b=R({},a);b.data=fd(a.data,a.headers,a.status,f.transformResponse);a=a.status;return 200<=a&&300>a?b:k.reject(b)}function e(a,b){var c,d={};q(a,function(a,
1438 e){E(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a});return d}if(!G(b))throw O("$http")("badreq",b);if(!F(b.url))throw O("$http")("badreq",b.url);var f=R({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer},b);f.headers=function(b){var c=a.headers,d=R({},b.headers),f,g,h,c=R({},c.common,c[P(b.method)]);a:for(f in c){g=P(f);for(h in d)if(P(h)===g)continue a;d[f]=c[f]}return e(d,ha(b))}(b);f.method=sb(f.method);f.paramSerializer=F(f.paramSerializer)?
1439 l.get(f.paramSerializer):f.paramSerializer;var g=[function(b){var d=b.headers,e=fd(b.data,ed(d),void 0,b.transformRequest);y(e)&&q(d,function(a,b){"content-type"===P(b)&&delete d[b]});y(b.withCredentials)&&!y(a.withCredentials)&&(b.withCredentials=a.withCredentials);return m(b,e).then(c,c)},void 0],h=k.when(f);for(q(M,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){b=g.shift();var n=g.shift(),
1440 h=h.then(b,n)}d?(h.success=function(a){Pa(a,"fn");h.then(function(b){a(b.data,b.status,b.headers,f)});return h},h.error=function(a){Pa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=gd("success"),h.error=gd("error"));return h}function m(c,d){function g(a){if(a){var c={};q(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function l(a,c,d,e){function f(){m(c,a,d,e)}L&&(200<=a&&300>a?L.put(A,[a,c,dd(d),
1441 e]):L.remove(A));b?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function m(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?J.resolve:J.reject)({data:a,status:b,headers:ed(d),config:c,statusText:e})}function u(a){m(a.data,a.status,ha(a.headers()),a.statusText)}function I(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var J=k.defer(),D=J.promise,L,S,M=c.headers,A=r(c.url,c.paramSerializer(c.params));n.pendingRequests.push(c);D.then(I,I);!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&&
1442 "JSONP"!==c.method||(L=G(c.cache)?c.cache:G(a.cache)?a.cache:N);L&&(S=L.get(A),x(S)?S&&E(S.then)?S.then(u,u):K(S)?m(S[1],S[0],ha(S[2]),S[3]):m(S,200,{},"OK"):L.put(A,D));y(S)&&((S=hd(c.url)?f()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(M[c.xsrfHeaderName||a.xsrfHeaderName]=S),e(c.method,A,d,l,M,c.timeout,c.withCredentials,c.responseType,g(c.eventHandlers),g(c.uploadEventHandlers)));return D}function r(a,b){0<b.length&&(a+=(-1==a.indexOf("?")?"?":"&")+b);return a}var N=g("$http");a.paramSerializer=
1443 F(a.paramSerializer)?l.get(a.paramSerializer):a.paramSerializer;var M=[];q(c,function(a){M.unshift(F(a)?l.get(a):l.invoke(a))});n.pendingRequests=[];(function(a){q(arguments,function(a){n[a]=function(b,c){return n(R({},c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){q(arguments,function(a){n[a]=function(b,c,d){return n(R({},d||{},{method:a,url:b,data:c}))}})})("post","put","patch");n.defaults=a;return n}]}function pf(){this.$get=function(){return function(){return new v.XMLHttpRequest}}}
1444 function of(){this.$get=["$browser","$window","$document","$xhrFactory",function(a,b,d,c){return dg(a,c,a.defer,b.angular.callbacks,d[0])}]}function dg(a,b,d,c,e){function f(a,b,d){var f=e.createElement("script"),n=null;f.type="text/javascript";f.src=a;f.async=!0;n=function(a){f.removeEventListener("load",n,!1);f.removeEventListener("error",n,!1);e.body.removeChild(f);f=null;var g=-1,N="unknown";a&&("load"!==a.type||c[b].called||(a={type:"error"}),N=a.type,g="error"===a.type?404:200);d&&d(g,N)};f.addEventListener("load",
1445 n,!1);f.addEventListener("error",n,!1);e.body.appendChild(f);return n}return function(e,h,k,l,n,m,r,N,M,w){function p(){z&&z();u&&u.abort()}function H(b,c,e,f,g){x(J)&&d.cancel(J);z=u=null;b(c,e,f,g);a.$$completeOutstandingRequest(C)}a.$$incOutstandingRequestCount();h=h||a.url();if("jsonp"==P(e)){var t="_"+(c.counter++).toString(36);c[t]=function(a){c[t].data=a;c[t].called=!0};var z=f(h.replace("JSON_CALLBACK","angular.callbacks."+t),t,function(a,b){H(l,a,c[t].data,"",b);c[t]=C})}else{var u=b(e,h);
1446 u.open(e,h,!0);q(n,function(a,b){x(a)&&u.setRequestHeader(b,a)});u.onload=function(){var a=u.statusText||"",b="response"in u?u.response:u.responseText,c=1223===u.status?204:u.status;0===c&&(c=b?200:"file"==ra(h).protocol?404:0);H(l,c,b,u.getAllResponseHeaders(),a)};e=function(){H(l,-1,null,null,"")};u.onerror=e;u.onabort=e;q(M,function(a,b){u.addEventListener(b,a)});q(w,function(a,b){u.upload.addEventListener(b,a)});r&&(u.withCredentials=!0);if(N)try{u.responseType=N}catch(I){if("json"!==N)throw I;
1447 }u.send(y(k)?null:k)}if(0<m)var J=d(p,m);else m&&E(m.then)&&m.then(p)}}function jf(){var a="{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a};this.endSymbol=function(a){return a?(b=a,this):b};this.$get=["$parse","$exceptionHandler","$sce",function(d,c,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(m,a).replace(r,b)}function h(a,b,c,d){var e;return e=a.$watch(function(a){e();return d(a)},b,c)}function k(f,k,m,r){function H(a){try{var b=a;a=m?e.getTrusted(m,b):e.valueOf(b);
1448 var d;if(r&&!x(a))d=a;else if(null==a)d="";else{switch(typeof a){case "string":break;case "number":a=""+a;break;default:a=ab(a)}d=a}return d}catch(g){c(Ja.interr(f,g))}}if(!f.length||-1===f.indexOf(a)){var t;k||(k=g(f),t=da(k),t.exp=f,t.expressions=[],t.$$watchDelegate=h);return t}r=!!r;var z,u,I=0,J=[],D=[];t=f.length;for(var L=[],S=[];I<t;)if(-1!=(z=f.indexOf(a,I))&&-1!=(u=f.indexOf(b,z+l)))I!==z&&L.push(g(f.substring(I,z))),I=f.substring(z+l,u),J.push(I),D.push(d(I,H)),I=u+n,S.push(L.length),L.push("");
1449 else{I!==t&&L.push(g(f.substring(I)));break}m&&1<L.length&&Ja.throwNoconcat(f);if(!k||J.length){var q=function(a){for(var b=0,c=J.length;b<c;b++){if(r&&y(a[b]))return;L[S[b]]=a[b]}return L.join("")};return R(function(a){var b=0,d=J.length,e=Array(d);try{for(;b<d;b++)e[b]=D[b](a);return q(e)}catch(g){c(Ja.interr(f,g))}},{exp:f,expressions:J,$$watchDelegate:function(a,b){var c;return a.$watchGroup(D,function(d,e){var f=q(d);E(b)&&b.call(this,f,d!==e?c:f,a);c=f})}})}}var l=a.length,n=b.length,m=new RegExp(a.replace(/./g,
1450 f),"g"),r=new RegExp(b.replace(/./g,f),"g");k.startSymbol=function(){return a};k.endSymbol=function(){return b};return k}]}function kf(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(a,b,d,c,e){function f(f,k,l,n){function m(){r?f.apply(null,N):f(p)}var r=4<arguments.length,N=r?za.call(arguments,4):[],q=b.setInterval,w=b.clearInterval,p=0,H=x(n)&&!n,t=(H?c:d).defer(),z=t.promise;l=x(l)?l:0;z.$$intervalId=q(function(){H?e.defer(m):a.$evalAsync(m);t.notify(p++);0<l&&p>=l&&(t.resolve(p),
1451 w(z.$$intervalId),delete g[z.$$intervalId]);H||a.$apply()},k);g[z.$$intervalId]=t;return z}var g={};f.cancel=function(a){return a&&a.$$intervalId in g?(g[a.$$intervalId].reject("canceled"),b.clearInterval(a.$$intervalId),delete g[a.$$intervalId],!0):!1};return f}]}function cc(a){a=a.split("/");for(var b=a.length;b--;)a[b]=ob(a[b]);return a.join("/")}function id(a,b){var d=ra(a);b.$$protocol=d.protocol;b.$$host=d.hostname;b.$$port=X(d.port)||eg[d.protocol]||null}function jd(a,b){var d="/"!==a.charAt(0);
1452 d&&(a="/"+a);var c=ra(a);b.$$path=decodeURIComponent(d&&"/"===c.pathname.charAt(0)?c.pathname.substring(1):c.pathname);b.$$search=xc(c.search);b.$$hash=decodeURIComponent(c.hash);b.$$path&&"/"!=b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function na(a,b){if(0===b.indexOf(a))return b.substr(a.length)}function Ia(a){var b=a.indexOf("#");return-1==b?a:a.substr(0,b)}function hb(a){return a.replace(/(#.+)|#$/,"$1")}function dc(a,b,d){this.$$html5=!0;d=d||"";id(a,this);this.$$parse=function(a){var d=na(b,
1453 a);if(!F(d))throw Eb("ipthprfx",a,b);jd(d,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Rb(this.$$search),d=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(a?"?"+a:"")+d;this.$$absUrl=b+this.$$url.substr(1)};this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;x(f=na(a,c))?(g=f,g=x(f=na(d,f))?b+(na("/",f)||f):a+g):x(f=na(b,c))?g=b+f:b==c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function ec(a,b,d){id(a,this);
1454 this.$$parse=function(c){var e=na(a,c)||na(b,c),f;y(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",y(e)&&(a=c,this.replace())):(f=na(d,e),y(f)&&(f=e));jd(f,this);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?f[1]:c);this.$$path=c;this.$$compose()};this.$$compose=function(){var b=Rb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+(this.$$url?d+this.$$url:"")};this.$$parseLinkUrl=
1455 function(b,d){return Ia(a)==Ia(b)?(this.$$parse(b),!0):!1}}function kd(a,b,d){this.$$html5=!0;ec.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a==Ia(c)?f=c:(g=na(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$compose=function(){var b=Rb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+d+this.$$url}}function Fb(a){return function(){return this[a]}}function ld(a,
1456 b){return function(d){if(y(d))return this[a];this[a]=b(d);this.$$compose();return this}}function qf(){var a="",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return x(b)?(a=b,this):a};this.html5Mode=function(a){return Da(a)?(b.enabled=a,this):G(a)?(Da(a.enabled)&&(b.enabled=a.enabled),Da(a.requireBase)&&(b.requireBase=a.requireBase),Da(a.rewriteLinks)&&(b.rewriteLinks=a.rewriteLinks),this):b};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(d,
1457 c,e,f,g){function h(a,b,d){var e=l.url(),f=l.$$state;try{c.url(a,b,d),l.$$state=c.state()}catch(g){throw l.url(e),l.$$state=f,g;}}function k(a,b){d.$broadcast("$locationChangeSuccess",l.absUrl(),a,l.$$state,b)}var l,n;n=c.baseHref();var m=c.url(),r;if(b.enabled){if(!n&&b.requireBase)throw Eb("nobase");r=m.substring(0,m.indexOf("/",m.indexOf("//")+2))+(n||"/");n=e.history?dc:kd}else r=Ia(m),n=ec;var N=r.substr(0,Ia(r).lastIndexOf("/")+1);l=new n(r,N,"#"+a);l.$$parseLinkUrl(m,m);l.$$state=c.state();
1458 var q=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(b.rewriteLinks&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!=a.which&&2!=a.button){for(var e=B(a.target);"a"!==va(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),k=e.attr("href")||e.attr("xlink:href");G(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=ra(h.animVal).href);q.test(h)||!h||e.attr("target")||a.isDefaultPrevented()||!l.$$parseLinkUrl(h,k)||(a.preventDefault(),l.absUrl()!=c.url()&&(d.$apply(),g.angular["ff-684208-preventDefault"]=
1459 !0))}});hb(l.absUrl())!=hb(m)&&c.url(l.absUrl(),!0);var w=!0;c.onUrlChange(function(a,b){y(na(N,a))?g.location.href=a:(d.$evalAsync(function(){var c=l.absUrl(),e=l.$$state,f;a=hb(a);l.$$parse(a);l.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;l.absUrl()===a&&(f?(l.$$parse(c),l.$$state=e,h(c,!1,e)):(w=!1,k(c,e)))}),d.$$phase||d.$digest())});d.$watch(function(){var a=hb(c.url()),b=hb(l.absUrl()),f=c.state(),g=l.$$replace,m=a!==b||l.$$html5&&e.history&&f!==l.$$state;if(w||
1460 m)w=!1,d.$evalAsync(function(){var b=l.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,l.$$state,f).defaultPrevented;l.absUrl()===b&&(c?(l.$$parse(a),l.$$state=f):(m&&h(b,g,f===l.$$state?null:l.$$state),k(a,f)))});l.$$replace=!1});return l}]}function rf(){var a=!0,b=this;this.debugEnabled=function(b){return x(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&
1461 (a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||C;a=!1;try{a=!!e.apply}catch(k){}return a?function(){var a=[];q(arguments,function(b){a.push(c(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Ta(a,b){if("__defineGetter__"===a||"__defineSetter__"===a||"__lookupGetter__"===a||"__lookupSetter__"===
1462 a||"__proto__"===a)throw ca("isecfld",b);return a}function fg(a){return a+""}function sa(a,b){if(a){if(a.constructor===a)throw ca("isecfn",b);if(a.window===a)throw ca("isecwindow",b);if(a.children&&(a.nodeName||a.prop&&a.attr&&a.find))throw ca("isecdom",b);if(a===Object)throw ca("isecobj",b);}return a}function md(a,b){if(a){if(a.constructor===a)throw ca("isecfn",b);if(a===gg||a===hg||a===ig)throw ca("isecff",b);}}function Gb(a,b){if(a&&(a===(0).constructor||a===(!1).constructor||a==="".constructor||
1463 a==={}.constructor||a===[].constructor||a===Function.constructor))throw ca("isecaf",b);}function jg(a,b){return"undefined"!==typeof a?a:b}function nd(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function aa(a,b){var d,c;switch(a.type){case s.Program:d=!0;q(a.body,function(a){aa(a.expression,b);d=d&&a.expression.constant});a.constant=d;break;case s.Literal:a.constant=!0;a.toWatch=[];break;case s.UnaryExpression:aa(a.argument,b);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;
1464 break;case s.BinaryExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case s.LogicalExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case s.ConditionalExpression:aa(a.test,b);aa(a.alternate,b);aa(a.consequent,b);a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case s.Identifier:a.constant=
1465 !1;a.toWatch=[a];break;case s.MemberExpression:aa(a.object,b);a.computed&&aa(a.property,b);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=[a];break;case s.CallExpression:d=a.filter?!b(a.callee.name).$stateful:!1;c=[];q(a.arguments,function(a){aa(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=a.filter&&!b(a.callee.name).$stateful?c:[a];break;case s.AssignmentExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant;
1466 a.toWatch=[a];break;case s.ArrayExpression:d=!0;c=[];q(a.elements,function(a){aa(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=c;break;case s.ObjectExpression:d=!0;c=[];q(a.properties,function(a){aa(a.value,b);d=d&&a.value.constant;a.value.constant||c.push.apply(c,a.value.toWatch)});a.constant=d;a.toWatch=c;break;case s.ThisExpression:a.constant=!1;a.toWatch=[];break;case s.LocalsExpression:a.constant=!1,a.toWatch=[]}}function od(a){if(1==a.length){a=a[0].expression;
1467 var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function pd(a){return a.type===s.Identifier||a.type===s.MemberExpression}function qd(a){if(1===a.body.length&&pd(a.body[0].expression))return{type:s.AssignmentExpression,left:a.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function rd(a){return 0===a.body.length||1===a.body.length&&(a.body[0].expression.type===s.Literal||a.body[0].expression.type===s.ArrayExpression||a.body[0].expression.type===s.ObjectExpression)}function sd(a,
1468 b){this.astBuilder=a;this.$filter=b}function td(a,b){this.astBuilder=a;this.$filter=b}function Hb(a){return"constructor"==a}function fc(a){return E(a.valueOf)?a.valueOf():kg.call(a)}function sf(){var a=T(),b=T(),d={"true":!0,"false":!1,"null":null,undefined:void 0},c,e;this.addLiteral=function(a,b){d[a]=b};this.setIdentifierFns=function(a,b){c=a;e=b;return this};this.$get=["$filter",function(f){function g(c,d,e){var g,k,D;e=e||H;switch(typeof c){case "string":D=c=c.trim();var q=e?b:a;g=q[D];if(!g){":"===
1469 c.charAt(0)&&":"===c.charAt(1)&&(k=!0,c=c.substring(2));g=e?p:w;var S=new gc(g);g=(new hc(S,f,g)).parse(c);g.constant?g.$$watchDelegate=r:k?g.$$watchDelegate=g.literal?m:n:g.inputs&&(g.$$watchDelegate=l);e&&(g=h(g));q[D]=g}return N(g,d);case "function":return N(c,d);default:return N(C,d)}}function h(a){function b(c,d,e,f){var g=H;H=!0;try{return a(c,d,e,f)}finally{H=g}}if(!a)return a;b.$$watchDelegate=a.$$watchDelegate;b.assign=h(a.assign);b.constant=a.constant;b.literal=a.literal;for(var c=0;a.inputs&&
1470 c<a.inputs.length;++c)a.inputs[c]=h(a.inputs[c]);b.inputs=a.inputs;return b}function k(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=fc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function l(a,b,c,d,e){var f=d.inputs,g;if(1===f.length){var h=k,f=f[0];return a.$watch(function(a){var b=f(a);k(b,h)||(g=d(a,void 0,void 0,[b]),h=b&&fc(b));return g},b,c,e)}for(var l=[],m=[],n=0,r=f.length;n<r;n++)l[n]=k,m[n]=null;return a.$watch(function(a){for(var b=!1,c=0,e=f.length;c<e;c++){var h=f[c](a);
1471 if(b||(b=!k(h,l[c])))m[c]=h,l[c]=h&&fc(h)}b&&(g=d(a,void 0,void 0,m));return g},b,c,e)}function n(a,b,c,d){var e,f;return e=a.$watch(function(a){return d(a)},function(a,c,d){f=a;E(b)&&b.apply(this,arguments);x(a)&&d.$$postDigest(function(){x(f)&&e()})},c)}function m(a,b,c,d){function e(a){var b=!0;q(a,function(a){x(a)||(b=!1)});return b}var f,g;return f=a.$watch(function(a){return d(a)},function(a,c,d){g=a;E(b)&&b.call(this,a,c,d);e(a)&&d.$$postDigest(function(){e(g)&&f()})},c)}function r(a,b,c,d){var e;
1472 return e=a.$watch(function(a){e();return d(a)},b,c)}function N(a,b){if(!b)return a;var c=a.$$watchDelegate,d=!1,c=c!==m&&c!==n?function(c,e,f,g){f=d&&g?g[0]:a(c,e,f,g);return b(f,c,e)}:function(c,d,e,f){e=a(c,d,e,f);c=b(e,c,d);return x(e)?c:e};a.$$watchDelegate&&a.$$watchDelegate!==l?c.$$watchDelegate=a.$$watchDelegate:b.$stateful||(c.$$watchDelegate=l,d=!a.inputs,c.inputs=a.inputs?a.inputs:[a]);return c}var M=Ea().noUnsafeEval,w={csp:M,expensiveChecks:!1,literals:qa(d),isIdentifierStart:E(c)&&c,
1473 isIdentifierContinue:E(e)&&e},p={csp:M,expensiveChecks:!0,literals:qa(d),isIdentifierStart:E(c)&&c,isIdentifierContinue:E(e)&&e},H=!1;g.$$runningExpensiveChecks=function(){return H};return g}]}function uf(){this.$get=["$rootScope","$exceptionHandler",function(a,b){return ud(function(b){a.$evalAsync(b)},b)}]}function vf(){this.$get=["$browser","$exceptionHandler",function(a,b){return ud(function(b){a.defer(b)},b)}]}function ud(a,b){function d(){this.$$state={status:0}}function c(a,b){return function(c){b.call(a,
1474 c)}}function e(c){!c.processScheduled&&c.pending&&(c.processScheduled=!0,a(function(){var a,d,e;e=c.pending;c.processScheduled=!1;c.pending=void 0;for(var f=0,g=e.length;f<g;++f){d=e[f][0];a=e[f][c.status];try{E(a)?d.resolve(a(c.value)):1===c.status?d.resolve(c.value):d.reject(c.value)}catch(h){d.reject(h),b(h)}}}))}function f(){this.promise=new d}var g=O("$q",TypeError);R(d.prototype,{then:function(a,b,c){if(y(a)&&y(b)&&y(c))return this;var d=new f;this.$$state.pending=this.$$state.pending||[];this.$$state.pending.push([d,
1475 a,b,c]);0<this.$$state.status&&e(this.$$state);return d.promise},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return k(b,!0,a)},function(b){return k(b,!1,a)},b)}});R(f.prototype,{resolve:function(a){this.promise.$$state.status||(a===this.promise?this.$$reject(g("qcycle",a)):this.$$resolve(a))},$$resolve:function(a){function d(a){k||(k=!0,h.$$resolve(a))}function f(a){k||(k=!0,h.$$reject(a))}var g,h=this,k=!1;try{if(G(a)||E(a))g=a&&a.then;E(g)?
1476 (this.promise.$$state.status=-1,g.call(a,d,f,c(this,this.notify))):(this.promise.$$state.value=a,this.promise.$$state.status=1,e(this.promise.$$state))}catch(l){f(l),b(l)}},reject:function(a){this.promise.$$state.status||this.$$reject(a)},$$reject:function(a){this.promise.$$state.value=a;this.promise.$$state.status=2;e(this.promise.$$state)},notify:function(c){var d=this.promise.$$state.pending;0>=this.promise.$$state.status&&d&&d.length&&a(function(){for(var a,e,f=0,g=d.length;f<g;f++){e=d[f][0];
1477 a=d[f][3];try{e.notify(E(a)?a(c):c)}catch(h){b(h)}}})}});var h=function(a,b){var c=new f;b?c.resolve(a):c.reject(a);return c.promise},k=function(a,b,c){var d=null;try{E(c)&&(d=c())}catch(e){return h(e,!1)}return d&&E(d.then)?d.then(function(){return h(a,b)},function(a){return h(a,!1)}):h(a,b)},l=function(a,b,c,d){var e=new f;e.resolve(a);return e.promise.then(b,c,d)},n=function(a){if(!E(a))throw g("norslvr",a);var b=new f;a(function(a){b.resolve(a)},function(a){b.reject(a)});return b.promise};n.prototype=
1478 d.prototype;n.defer=function(){var a=new f;a.resolve=c(a,a.resolve);a.reject=c(a,a.reject);a.notify=c(a,a.notify);return a};n.reject=function(a){var b=new f;b.reject(a);return b.promise};n.when=l;n.resolve=l;n.all=function(a){var b=new f,c=0,d=K(a)?[]:{};q(a,function(a,e){c++;l(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});0===c&&b.resolve(d);return b.promise};return n}function Ef(){this.$get=["$window","$timeout",function(a,
1479 b){var d=a.requestAnimationFrame||a.webkitRequestAnimationFrame,c=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.webkitCancelRequestAnimationFrame,e=!!d,f=e?function(a){var b=d(a);return function(){c(b)}}:function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};f.supported=e;return f}]}function tf(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$id=++nb;this.$$ChildScope=
1480 null}b.prototype=a;return b}var b=10,d=O("$rootScope"),c=null,e=null;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$exceptionHandler","$parse","$browser",function(f,g,h){function k(a){a.currentScope.$$destroyed=!0}function l(a){9===Ca&&(a.$$childHead&&l(a.$$childHead),a.$$nextSibling&&l(a.$$nextSibling));a.$parent=a.$$nextSibling=a.$$prevSibling=a.$$childHead=a.$$childTail=a.$root=a.$$watchers=null}function n(){this.$id=++nb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=
1481 this.$$prevSibling=this.$$childHead=this.$$childTail=null;this.$root=this;this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$$isolateBindings=null}function m(a){if(H.$$phase)throw d("inprog",H.$$phase);H.$$phase=a}function r(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function N(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function s(){}function w(){for(;u.length;)try{u.shift()()}catch(a){f(a)}e=
1482 null}function p(){null===e&&(e=h.defer(function(){H.$apply(w)}))}n.prototype={constructor:n,$new:function(b,c){var d;c=c||this;b?(d=new n,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=a(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(b||c!=this)&&d.$on("$destroy",k);return d},$watch:function(a,b,d,e){var f=g(a);if(f.$$watchDelegate)return f.$$watchDelegate(this,b,d,f,
1483 a);var h=this,k=h.$$watchers,l={fn:b,last:s,get:f,exp:e||a,eq:!!d};c=null;E(b)||(l.fn=C);k||(k=h.$$watchers=[]);k.unshift(l);r(this,1);return function(){0<=Za(k,l)&&r(h,-1);c=null}},$watchGroup:function(a,b){function c(){h=!1;k?(k=!1,b(e,e,g)):b(e,d,g)}var d=Array(a.length),e=Array(a.length),f=[],g=this,h=!1,k=!0;if(!a.length){var l=!0;g.$evalAsync(function(){l&&b(e,e,g)});return function(){l=!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});q(a,function(a,
1484 b){var k=g.$watch(a,function(a,f){e[b]=a;d[b]=f;h||(h=!0,g.$evalAsync(c))});f.push(k)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=a;var b,d,g,h;if(!y(e)){if(G(e))if(ya(e))for(f!==m&&(f=m,t=f.length=0,l++),a=e.length,t!==a&&(l++,f.length=t=a),b=0;b<a;b++)h=f[b],g=e[b],d=h!==h&&g!==g,d||h===g||(l++,f[b]=g);else{f!==r&&(f=r={},t=0,l++);a=0;for(b in e)ua.call(e,b)&&(a++,g=e[b],h=f[b],b in f?(d=h!==h&&g!==g,d||h===g||(l++,f[b]=g)):(t++,f[b]=g,l++));if(t>
1485 a)for(b in l++,f)ua.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,h,k=1<b.length,l=0,n=g(a,c),m=[],r={},p=!0,t=0;return this.$watch(n,function(){p?(p=!1,b(e,e,d)):b(e,h,d);if(k)if(G(e))if(ya(e)){h=Array(e.length);for(var a=0;a<e.length;a++)h[a]=e[a]}else for(a in h={},e)ua.call(e,a)&&(h[a]=e[a]);else h=e})},$digest:function(){var a,g,k,l,n,r,p,q,N=b,u,x=[],y,v;m("$digest");h.$$checkUrlChange();this===H&&null!==e&&(h.defer.cancel(e),w());c=null;do{q=!1;
1486 for(u=this;t.length;){try{v=t.shift(),v.scope.$eval(v.expression,v.locals)}catch(C){f(C)}c=null}a:do{if(r=u.$$watchers)for(p=r.length;p--;)try{if(a=r[p])if(n=a.get,(g=n(u))!==(k=a.last)&&!(a.eq?pa(g,k):"number"===typeof g&&"number"===typeof k&&isNaN(g)&&isNaN(k)))q=!0,c=a,a.last=a.eq?qa(g,null):g,l=a.fn,l(g,k===s?g:k,u),5>N&&(y=4-N,x[y]||(x[y]=[]),x[y].push({msg:E(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:k}));else if(a===c){q=!1;break a}}catch(F){f(F)}if(!(r=u.$$watchersCount&&
1487 u.$$childHead||u!==this&&u.$$nextSibling))for(;u!==this&&!(r=u.$$nextSibling);)u=u.$parent}while(u=r);if((q||t.length)&&!N--)throw H.$$phase=null,d("infdig",b,x);}while(q||t.length);for(H.$$phase=null;z.length;)try{z.shift()()}catch(B){f(B)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===H&&h.$$applicationDestroyed();r(this,-this.$$watchersCount);for(var b in this.$$listenerCount)N(this,this.$$listenerCount[b],b);a&&a.$$childHead==
1488 this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=C;this.$on=this.$watch=this.$watchGroup=function(){return C};this.$$listeners={};this.$$nextSibling=null;l(this)}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){H.$$phase||
1489 t.length||h.defer(function(){t.length&&H.$digest()});t.push({scope:this,expression:g(a),locals:b})},$$postDigest:function(a){z.push(a)},$apply:function(a){try{m("$apply");try{return this.$eval(a)}finally{H.$$phase=null}}catch(b){f(b)}finally{try{H.$digest()}catch(c){throw f(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&u.push(b);a=g(a);p()},$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]=
1490 0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,N(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=$a([h],arguments,1),l,n;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(n=d.length;l<n;l++)if(d[l])try{d[l].apply(null,k)}catch(m){f(m)}else d.splice(l,1),l--,n--;if(g)return h.currentScope=null,h;e=e.$parent}while(e);
1491 h.currentScope=null;return h},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var g=$a([e],arguments,1),h,k;c=d;){e.currentScope=c;d=c.$$listeners[a]||[];h=0;for(k=d.length;h<k;h++)if(d[h])try{d[h].apply(null,g)}catch(l){f(l)}else d.splice(h,1),h--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=
1492 null;return e}};var H=new n,t=H.$$asyncQueue=[],z=H.$$postDigestQueue=[],u=H.$$applyAsyncQueue=[];return H}]}function me(){var a=/^\s*(https?|ftp|mailto|tel|file):/,b=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(b){return x(b)?(a=b,this):a};this.imgSrcSanitizationWhitelist=function(a){return x(a)?(b=a,this):b};this.$get=function(){return function(d,c){var e=c?b:a,f;f=ra(d).href;return""===f||f.match(e)?d:"unsafe:"+f}}}function lg(a){if("self"===a)return a;
1493 if(F(a)){if(-1<a.indexOf("***"))throw ta("iwcard",a);a=vd(a).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*");return new RegExp("^"+a+"$")}if(Wa(a))return new RegExp("^"+a.source+"$");throw ta("imatcher");}function wd(a){var b=[];x(a)&&q(a,function(a){b.push(lg(a))});return b}function xf(){this.SCE_CONTEXTS=oa;var a=["self"],b=[];this.resourceUrlWhitelist=function(b){arguments.length&&(a=wd(b));return a};this.resourceUrlBlacklist=function(a){arguments.length&&(b=wd(a));return b};this.$get=["$injector",
1494 function(d){function c(a,b){return"self"===a?hd(b):!!a.exec(b.href)}function e(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};return b}var f=function(a){throw ta("unsafe");};d.has("$sanitize")&&(f=d.get("$sanitize"));var g=e(),h={};h[oa.HTML]=e(g);h[oa.CSS]=e(g);h[oa.URL]=e(g);h[oa.JS]=e(g);h[oa.RESOURCE_URL]=
1495 e(h[oa.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw ta("icontext",a,b);if(null===b||y(b)||""===b)return b;if("string"!==typeof b)throw ta("itype",a);return new c(b)},getTrusted:function(d,e){if(null===e||y(e)||""===e)return e;var g=h.hasOwnProperty(d)?h[d]:null;if(g&&e instanceof g)return e.$$unwrapTrustedValue();if(d===oa.RESOURCE_URL){var g=ra(e.toString()),m,r,q=!1;m=0;for(r=a.length;m<r;m++)if(c(a[m],g)){q=!0;break}if(q)for(m=0,r=b.length;m<r;m++)if(c(b[m],
1496 g)){q=!1;break}if(q)return e;throw ta("insecurl",e.toString());}if(d===oa.HTML)return f(e);throw ta("unsafe");},valueOf:function(a){return a instanceof g?a.$$unwrapTrustedValue():a}}}]}function wf(){var a=!0;this.enabled=function(b){arguments.length&&(a=!!b);return a};this.$get=["$parse","$sceDelegate",function(b,d){if(a&&8>Ca)throw ta("iequirks");var c=ha(oa);c.isEnabled=function(){return a};c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},
1497 c.valueOf=Xa);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;q(oa,function(a,b){var d=P(b);c[cb("parse_as_"+d)]=function(b){return e(a,b)};c[cb("get_trusted_"+d)]=function(b){return f(a,b)};c[cb("trust_as_"+d)]=function(b){return g(a,b)}});return c}]}function yf(){this.$get=["$window","$document",function(a,b){var d={},c=!(a.chrome&&a.chrome.app&&a.chrome.app.runtime)&&a.history&&a.history.pushState,
1498 e=X((/android (\d+)/.exec(P((a.navigator||{}).userAgent))||[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},h,k=/^(Moz|webkit|ms)(?=[A-Z])/,l=g.body&&g.body.style,n=!1,m=!1;if(l){for(var r in l)if(n=k.exec(r)){h=n[0];h=h.substr(0,1).toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in l&&"webkit");n=!!("transition"in l||h+"Transition"in l);m=!!("animation"in l||h+"Animation"in l);!e||n&&m||(n=F(l.webkitTransition),m=F(l.webkitAnimation))}return{history:!(!c||4>e||f),hasEvent:function(a){if("input"===
1499 a&&11>=Ca)return!1;if(y(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Ea(),vendorPrefix:h,transitions:n,animations:m,android:e}}]}function Af(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$templateCache","$http","$q","$sce",function(b,d,c,e){function f(g,h){f.totalPendingRequests++;F(g)&&b.get(g)||(g=e.getTrustedResourceUrl(g));var k=d.defaults&&d.defaults.transformResponse;K(k)?k=k.filter(function(a){return a!==ac}):k===ac&&(k=null);return d.get(g,
1500 R({cache:b,transformResponse:k},a))["finally"](function(){f.totalPendingRequests--}).then(function(a){b.put(g,a.data);return a.data},function(a){if(!h)throw mg("tpload",g,a.status,a.statusText);return c.reject(a)})}f.totalPendingRequests=0;return f}]}function Bf(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,b,d){a=a.getElementsByClassName("ng-binding");var g=[];q(a,function(a){var c=ea.element(a).data("$binding");c&&q(c,function(c){d?(new RegExp("(^|\\s)"+
1501 vd(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!=c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-","data-ng-","ng\\:"],h=0;h<g.length;++h){var k=a.querySelectorAll("["+g[h]+"model"+(d?"=":"*=")+'"'+b+'"]');if(k.length)return k}},getLocation:function(){return d.url()},setLocation:function(b){b!==d.url()&&(d.url(b),a.$digest())},whenStable:function(a){b.notifyWhenNoOutstandingRequests(a)}}}]}function Cf(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",
1502 function(a,b,d,c,e){function f(f,k,l){E(f)||(l=k,k=f,f=C);var n=za.call(arguments,3),m=x(l)&&!l,r=(m?c:d).defer(),q=r.promise,s;s=b.defer(function(){try{r.resolve(f.apply(null,n))}catch(b){r.reject(b),e(b)}finally{delete g[q.$$timeoutId]}m||a.$apply()},k);q.$$timeoutId=s;g[s]=r;return q}var g={};f.cancel=function(a){return a&&a.$$timeoutId in g?(g[a.$$timeoutId].reject("canceled"),delete g[a.$$timeoutId],b.defer.cancel(a.$$timeoutId)):!1};return f}]}function ra(a){Ca&&(Y.setAttribute("href",a),a=
1503 Y.href);Y.setAttribute("href",a);return{href:Y.href,protocol:Y.protocol?Y.protocol.replace(/:$/,""):"",host:Y.host,search:Y.search?Y.search.replace(/^\?/,""):"",hash:Y.hash?Y.hash.replace(/^#/,""):"",hostname:Y.hostname,port:Y.port,pathname:"/"===Y.pathname.charAt(0)?Y.pathname:"/"+Y.pathname}}function hd(a){a=F(a)?ra(a):a;return a.protocol===xd.protocol&&a.host===xd.host}function Df(){this.$get=da(v)}function yd(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var d=a[0]||{},
1504 c={},e="";return function(){var a,g,h,k,l;a=d.cookie||"";if(a!==e)for(e=a,a=e.split("; "),c={},h=0;h<a.length;h++)g=a[h],k=g.indexOf("="),0<k&&(l=b(g.substring(0,k)),y(c[l])&&(c[l]=b(g.substring(k+1))));return c}}function Hf(){this.$get=yd}function Jc(a){function b(d,c){if(G(d)){var e={};q(d,function(a,c){e[c]=b(c,a)});return e}return a.factory(d+"Filter",c)}this.register=b;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];b("currency",zd);b("date",Ad);b("filter",ng);
1505 b("json",og);b("limitTo",pg);b("lowercase",qg);b("number",Bd);b("orderBy",Cd);b("uppercase",rg)}function ng(){return function(a,b,d){if(!ya(a)){if(null==a)return a;throw O("filter")("notarray",a);}var c;switch(ic(b)){case "function":break;case "boolean":case "null":case "number":case "string":c=!0;case "object":b=sg(b,d,c);break;default:return a}return Array.prototype.filter.call(a,b)}}function sg(a,b,d){var c=G(a)&&"$"in a;!0===b?b=pa:E(b)||(b=function(a,b){if(y(a))return!1;if(null===a||null===b)return a===
1506 b;if(G(b)||G(a)&&!rc(a))return!1;a=P(""+a);b=P(""+b);return-1!==a.indexOf(b)});return function(e){return c&&!G(e)?Ka(e,a.$,b,!1):Ka(e,a,b,d)}}function Ka(a,b,d,c,e){var f=ic(a),g=ic(b);if("string"===g&&"!"===b.charAt(0))return!Ka(a,b.substring(1),d,c);if(K(a))return a.some(function(a){return Ka(a,b,d,c)});switch(f){case "object":var h;if(c){for(h in a)if("$"!==h.charAt(0)&&Ka(a[h],b,d,!0))return!0;return e?!1:Ka(a,b,d,!1)}if("object"===g){for(h in b)if(e=b[h],!E(e)&&!y(e)&&(f="$"===h,!Ka(f?a:a[h],
1507 e,d,f,f)))return!1;return!0}return d(a,b);case "function":return!1;default:return d(a,b)}}function ic(a){return null===a?"null":typeof a}function zd(a){var b=a.NUMBER_FORMATS;return function(a,c,e){y(c)&&(c=b.CURRENCY_SYM);y(e)&&(e=b.PATTERNS[1].maxFrac);return null==a?a:Dd(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,e).replace(/\u00A4/g,c)}}function Bd(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Dd(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function tg(a){var b=0,d,c,e,f,g;-1<
1508 (c=a.indexOf(Ed))&&(a=a.replace(Ed,""));0<(e=a.search(/e/i))?(0>c&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)==jc;e++);if(e==(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)==jc;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Fd&&(d=d.splice(0,Fd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function ug(a,b,d,c){var e=a.d,f=e.length-a.i;b=y(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0<d){e.splice(Math.max(a.i,d));for(var g=d;g<e.length;g++)e[g]=0}else for(f=
1509 Math.max(0,f),a.i=1,e.length=Math.max(1,d=b+1),e[0]=0,g=1;g<d;g++)e[g]=0;if(5<=c)if(0>d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;f<Math.max(0,b);f++)e.push(0);if(b=e.reduceRight(function(a,b,c,d){b+=a;d[c]=b%10;return Math.floor(b/10)},0))e.unshift(b),a.i++}function Dd(a,b,d,c,e){if(!F(a)&&!Q(a)||isNaN(a))return"";var f=!isFinite(a),g=!1,h=Math.abs(a)+"",k="";if(f)k="\u221e";else{g=tg(h);ug(g,e,b.minFrac,b.maxFrac);k=g.d;h=g.i;e=g.e;f=[];for(g=k.reduce(function(a,
1510 b){return a&&!b},!0);0>h;)k.unshift(0),h++;0<h?f=k.splice(h):(f=k,k=[0]);h=[];for(k.length>=b.lgSize&&h.unshift(k.splice(-b.lgSize).join(""));k.length>b.gSize;)h.unshift(k.splice(-b.gSize).join(""));k.length&&h.unshift(k.join(""));k=h.join(d);f.length&&(k+=c+f.join(""));e&&(k+="e+"+e)}return 0>a&&!g?b.negPre+k+b.negSuf:b.posPre+k+b.posSuf}function Ib(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length<b;)a=jc+a;d&&(a=a.substr(a.length-b));return e+a}function W(a,b,d,c,e){d=
1511 d||0;return function(f){f=f["get"+a]();if(0<d||f>-d)f+=d;0===f&&-12==d&&(f=12);return Ib(f,b,c,e)}}function ib(a,b,d){return function(c,e){var f=c["get"+a](),g=sb((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Gd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Hd(a){return function(b){var d=Gd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Ib(b,a)}}function kc(a,b){return 0>=a.getFullYear()?
1512 b.ERAS[0]:b.ERAS[1]}function Ad(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,k=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=X(b[9]+b[10]),g=X(b[9]+b[11]));h.call(a,X(b[1]),X(b[2])-1,X(b[3]));f=X(b[4]||0)-f;g=X(b[5]||0)-g;h=X(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));k.call(a,f,g,h,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,f){var g="",h=
1513 [],k,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;F(c)&&(c=vg.test(c)?X(c):b(c));Q(c)&&(c=new Date(c));if(!fa(c)||!isFinite(c.getTime()))return c;for(;d;)(l=wg.exec(d))?(h=$a(h,l,1),d=h.pop()):(h.push(d),d=null);var n=c.getTimezoneOffset();f&&(n=vc(f,n),c=Qb(c,f,!0));q(h,function(b){k=xg[b];g+=k?k(c,a.DATETIME_FORMATS,n):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function og(){return function(a,b){y(b)&&(b=2);return ab(a,b)}}function pg(){return function(a,b,d){b=Infinity===
1514 Math.abs(Number(b))?Number(b):X(b);if(isNaN(b))return a;Q(a)&&(a=a.toString());if(!K(a)&&!F(a))return a;d=!d||isNaN(d)?0:X(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?a.slice(d,d+b):0===d?a.slice(b,a.length):a.slice(Math.max(0,d+b),d)}}function Cd(a){function b(b,d){d=d?-1:1;return b.map(function(b){var c=1,h=Xa;if(E(b))h=b;else if(F(b)){if("+"==b.charAt(0)||"-"==b.charAt(0))c="-"==b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(h=a(b),h.constant))var k=h(),h=function(a){return a[k]}}return{get:h,
1515 descending:c*d}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}return function(a,e,f){if(null==a)return a;if(!ya(a))throw O("orderBy")("notarray",a);K(e)||(e=[e]);0===e.length&&(e=["+"]);var g=b(e,f);g.push({get:function(){return{}},descending:f?-1:1});a=Array.prototype.map.call(a,function(a,b){return{value:a,predicateValues:g.map(function(c){var e=c.get(a);c=typeof e;if(null===e)c="string",e="null";else if("string"===c)e=e.toLowerCase();else if("object"===
1516 c)a:{if("function"===typeof e.valueOf&&(e=e.valueOf(),d(e)))break a;if(rc(e)&&(e=e.toString(),d(e)))break a;e=b}return{value:e,type:c}})}});a.sort(function(a,b){for(var c=0,d=0,e=g.length;d<e;++d){var c=a.predicateValues[d],f=b.predicateValues[d],q=0;c.type===f.type?c.value!==f.value&&(q=c.value<f.value?-1:1):q=c.type<f.type?-1:1;if(c=q*g[d].descending)break}return c});return a=a.map(function(a){return a.value})}}function La(a){E(a)&&(a={link:a});a.restrict=a.restrict||"AC";return da(a)}function Id(a,
1517 b,d,c,e){var f=this,g=[];f.$error={};f.$$success={};f.$pending=void 0;f.$name=e(b.name||b.ngForm||"")(d);f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;f.$submitted=!1;f.$$parentForm=Jb;f.$rollbackViewValue=function(){q(g,function(a){a.$rollbackViewValue()})};f.$commitViewValue=function(){q(g,function(a){a.$commitViewValue()})};f.$addControl=function(a){Qa(a.$name,"input");g.push(a);a.$name&&(f[a.$name]=a);a.$$parentForm=f};f.$$renameControl=function(a,b){var c=a.$name;f[c]===a&&delete f[c];
1518 f[b]=a;a.$name=b};f.$removeControl=function(a){a.$name&&f[a.$name]===a&&delete f[a.$name];q(f.$pending,function(b,c){f.$setValidity(c,null,a)});q(f.$error,function(b,c){f.$setValidity(c,null,a)});q(f.$$success,function(b,c){f.$setValidity(c,null,a)});Za(g,a);a.$$parentForm=Jb};Jd({ctrl:this,$element:a,set:function(a,b,c){var d=a[b];d?-1===d.indexOf(c)&&d.push(c):a[b]=[c]},unset:function(a,b,c){var d=a[b];d&&(Za(d,c),0===d.length&&delete a[b])},$animate:c});f.$setDirty=function(){c.removeClass(a,Ua);
1519 c.addClass(a,Kb);f.$dirty=!0;f.$pristine=!1;f.$$parentForm.$setDirty()};f.$setPristine=function(){c.setClass(a,Ua,Kb+" ng-submitted");f.$dirty=!1;f.$pristine=!0;f.$submitted=!1;q(g,function(a){a.$setPristine()})};f.$setUntouched=function(){q(g,function(a){a.$setUntouched()})};f.$setSubmitted=function(){c.addClass(a,"ng-submitted");f.$submitted=!0;f.$$parentForm.$setSubmitted()}}function lc(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function jb(a,b,d,c,e,f){var g=P(b[0].type);
1520 if(!e.android){var h=!1;b.on("compositionstart",function(){h=!0});b.on("compositionend",function(){h=!1;l()})}var k,l=function(a){k&&(f.defer.cancel(k),k=null);if(!h){var e=b.val();a=a&&a.type;"password"===g||d.ngTrim&&"false"===d.ngTrim||(e=V(e));(c.$viewValue!==e||""===e&&c.$$hasNativeValidators)&&c.$setViewValue(e,a)}};if(e.hasEvent("input"))b.on("input",l);else{var n=function(a,b,c){k||(k=f.defer(function(){k=null;b&&b.value===c||l(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||15<
1521 b&&19>b||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut",n)}b.on("change",l);if(Kd[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!k){var b=this.validity,c=b.badInput,d=b.typeMismatch;k=f.defer(function(){k=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Lb(a,b){return function(d,c){var e,f;if(fa(d))return d;if(F(d)){'"'==d.charAt(0)&&
1522 '"'==d.charAt(d.length-1)&&(d=d.substring(1,d.length-1));if(yg.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},q(e,function(a,c){c<b.length&&(f[b[c]]=+a)}),new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0)}return NaN}}function kb(a,b,d,c){return function(e,f,g,h,k,l,n){function m(a){return a&&
1523 !(a.getTime&&a.getTime()!==a.getTime())}function r(a){return x(a)&&!fa(a)?d(a)||void 0:a}Ld(e,f,g,h);jb(e,f,g,h,k,l);var q=h&&h.$options&&h.$options.timezone,s;h.$$parserName=a;h.$parsers.push(function(a){if(h.$isEmpty(a))return null;if(b.test(a))return a=d(a,s),q&&(a=Qb(a,q)),a});h.$formatters.push(function(a){if(a&&!fa(a))throw lb("datefmt",a);if(m(a))return(s=a)&&q&&(s=Qb(s,q,!0)),n("date")(a,c,q);s=null;return""});if(x(g.min)||g.ngMin){var w;h.$validators.min=function(a){return!m(a)||y(w)||d(a)>=
1524 w};g.$observe("min",function(a){w=r(a);h.$validate()})}if(x(g.max)||g.ngMax){var p;h.$validators.max=function(a){return!m(a)||y(p)||d(a)<=p};g.$observe("max",function(a){p=r(a);h.$validate()})}}}function Ld(a,b,d,c){(c.$$hasNativeValidators=G(b[0].validity))&&c.$parsers.push(function(a){var c=b.prop("validity")||{};return c.badInput||c.typeMismatch?void 0:a})}function Md(a,b,d,c,e){if(x(c)){a=a(c);if(!a.constant)throw lb("constexpr",d,c);return a(b)}return e}function mc(a,b){a="ngClass"+a;return["$animate",
1525 function(d){function c(a,b){var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],n=0;n<b.length;n++)if(e==b[n])continue a;c.push(e)}return c}function e(a){var b=[];return K(a)?(q(a,function(a){b=b.concat(e(a))}),b):F(a)?a.split(" "):G(a)?(q(a,function(a,c){a&&(b=b.concat(c.split(" ")))}),b):a}return{restrict:"AC",link:function(f,g,h){function k(a){a=l(a,1);h.$addClass(a)}function l(a,b){var c=g.data("$classCounts")||T(),d=[];q(a,function(a){if(0<b||c[a])c[a]=(c[a]||0)+b,c[a]===+(0<b)&&d.push(a)});g.data("$classCounts",
1526 c);return d.join(" ")}function n(a,b){var e=c(b,a),f=c(a,b),e=l(e,1),f=l(f,-1);e&&e.length&&d.addClass(g,e);f&&f.length&&d.removeClass(g,f)}function m(a){if(!0===b||f.$index%2===b){var c=e(a||[]);if(!r)k(c);else if(!pa(a,r)){var d=e(r);n(d,c)}}r=K(a)?a.map(function(a){return ha(a)}):ha(a)}var r;f.$watch(h[a],m,!0);h.$observe("class",function(b){m(f.$eval(h[a]))});"ngClass"!==a&&f.$watch("$index",function(c,d){var g=c&1;if(g!==(d&1)){var m=e(f.$eval(h[a]));g===b?k(m):(g=l(m,-1),h.$removeClass(g))}})}}}]}
1527 function Jd(a){function b(a,b){b&&!f[a]?(k.addClass(e,a),f[a]=!0):!b&&f[a]&&(k.removeClass(e,a),f[a]=!1)}function d(a,c){a=a?"-"+zc(a,"-"):"";b(mb+a,!0===c);b(Nd+a,!1===c)}var c=a.ctrl,e=a.$element,f={},g=a.set,h=a.unset,k=a.$animate;f[Nd]=!(f[mb]=e.hasClass(mb));c.$setValidity=function(a,e,f){y(e)?(c.$pending||(c.$pending={}),g(c.$pending,a,f)):(c.$pending&&h(c.$pending,a,f),Od(c.$pending)&&(c.$pending=void 0));Da(e)?e?(h(c.$error,a,f),g(c.$$success,a,f)):(g(c.$error,a,f),h(c.$$success,a,f)):(h(c.$error,
1528 a,f),h(c.$$success,a,f));c.$pending?(b(Pd,!0),c.$valid=c.$invalid=void 0,d("",null)):(b(Pd,!1),c.$valid=Od(c.$error),c.$invalid=!c.$valid,d("",c.$valid));e=c.$pending&&c.$pending[a]?void 0:c.$error[a]?!1:c.$$success[a]?!0:null;d(a,e);c.$$parentForm.$setValidity(a,e,c)}}function Od(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}var zg=/^\/(.+)\/([a-z]*)$/,ua=Object.prototype.hasOwnProperty,P=function(a){return F(a)?a.toLowerCase():a},sb=function(a){return F(a)?a.toUpperCase():a},Ca,
1529 B,Z,za=[].slice,Zf=[].splice,Ag=[].push,ma=Object.prototype.toString,sc=Object.getPrototypeOf,Aa=O("ng"),ea=v.angular||(v.angular={}),Sb,nb=0;Ca=v.document.documentMode;C.$inject=[];Xa.$inject=[];var K=Array.isArray,$d=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,V=function(a){return F(a)?a.trim():a},vd=function(a){return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Ea=function(){if(!x(Ea.rules)){var a=v.document.querySelector("[ng-csp]")||
1530 v.document.querySelector("[data-ng-csp]");if(a){var b=a.getAttribute("ng-csp")||a.getAttribute("data-ng-csp");Ea.rules={noUnsafeEval:!b||-1!==b.indexOf("no-unsafe-eval"),noInlineStyle:!b||-1!==b.indexOf("no-inline-style")}}else{a=Ea;try{new Function(""),b=!1}catch(d){b=!0}a.rules={noUnsafeEval:b,noInlineStyle:!1}}}return Ea.rules},pb=function(){if(x(pb.name_))return pb.name_;var a,b,d=Na.length,c,e;for(b=0;b<d;++b)if(c=Na[b],a=v.document.querySelector("["+c.replace(":","\\:")+"jq]")){e=a.getAttribute(c+
1531 "jq");break}return pb.name_=e},ce=/:/g,Na=["ng-","data-ng-","ng:","x-ng-"],he=/[A-Z]/g,Ac=!1,Ma=3,le={full:"1.5.5",major:1,minor:5,dot:5,codeName:"material-conspiration"};U.expando="ng339";var eb=U.cache={},Nf=1;U._data=function(a){return this.cache[a[this.expando]]||{}};var If=/([\:\-\_]+(.))/g,Jf=/^moz([A-Z])/,wb={mouseleave:"mouseout",mouseenter:"mouseover"},Ub=O("jqLite"),Mf=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Tb=/<|&#?\w+;/,Kf=/<([\w:-]+)/,Lf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
1532 ia={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option;ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead;ia.th=ia.td;var Sf=v.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Oa=U.prototype={ready:function(a){function b(){d||(d=!0,a())}var d=!1;"complete"===
1533 v.document.readyState?v.setTimeout(b):(this.on("DOMContentLoaded",b),U(v).on("load",b))},toString:function(){var a=[];q(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?B(this[a]):B(this[this.length+a])},length:0,push:Ag,sort:[].sort,splice:[].splice},Cb={};q("multiple selected checked disabled readOnly required open".split(" "),function(a){Cb[P(a)]=a});var Sc={};q("input select option textarea button form details".split(" "),function(a){Sc[a]=!0});var ad={ngMinlength:"minlength",
1534 ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};q({data:Wb,removeData:db,hasData:function(a){for(var b in eb[a.ng339])return!0;return!1},cleanData:function(a){for(var b=0,d=a.length;b<d;b++)db(a[b])}},function(a,b){U[b]=a});q({data:Wb,inheritedData:Ab,scope:function(a){return B.data(a,"$scope")||Ab(a.parentNode||a,["$isolateScope","$scope"])},isolateScope:function(a){return B.data(a,"$isolateScope")||B.data(a,"$isolateScopeNoTemplate")},controller:Pc,injector:function(a){return Ab(a,
1535 "$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:xb,css:function(a,b,d){b=cb(b);if(x(d))a.style[b]=d;else return a.style[b]},attr:function(a,b,d){var c=a.nodeType;if(c!==Ma&&2!==c&&8!==c)if(c=P(b),Cb[c])if(x(d))d?(a[b]=!0,a.setAttribute(b,c)):(a[b]=!1,a.removeAttribute(c));else return a[b]||(a.attributes.getNamedItem(b)||C).specified?c:void 0;else if(x(d))a.setAttribute(b,d);else if(a.getAttribute)return a=a.getAttribute(b,2),null===a?void 0:a},prop:function(a,b,d){if(x(d))a[b]=
1536 d;else return a[b]},text:function(){function a(a,d){if(y(d)){var c=a.nodeType;return 1===c||c===Ma?a.textContent:""}a.textContent=d}a.$dv="";return a}(),val:function(a,b){if(y(b)){if(a.multiple&&"select"===va(a)){var d=[];q(a.options,function(a){a.selected&&d.push(a.value||a.text)});return 0===d.length?null:d}return a.value}a.value=b},html:function(a,b){if(y(b))return a.innerHTML;ub(a,!0);a.innerHTML=b},empty:Qc},function(a,b){U.prototype[b]=function(b,c){var e,f,g=this.length;if(a!==Qc&&y(2==a.length&&
1537 a!==xb&&a!==Pc?b:c)){if(G(b)){for(e=0;e<g;e++)if(a===Wb)a(this[e],b);else for(f in b)a(this[e],f,b[f]);return this}e=a.$dv;g=y(e)?Math.min(g,1):g;for(f=0;f<g;f++){var h=a(this[f],b,c);e=e?e+h:h}return e}for(e=0;e<g;e++)a(this[e],b,c);return this}});q({removeData:db,on:function(a,b,d,c){if(x(c))throw Ub("onargs");if(Kc(a)){c=vb(a,!0);var e=c.events,f=c.handle;f||(f=c.handle=Pf(a,e));c=0<=b.indexOf(" ")?b.split(" "):[b];for(var g=c.length,h=function(b,c,g){var h=e[b];h||(h=e[b]=[],h.specialHandlerWrapper=
1538 c,"$destroy"===b||g||a.addEventListener(b,f,!1));h.push(d)};g--;)b=c[g],wb[b]?(h(wb[b],Rf),h(b,void 0,!0)):h(b)}},off:Oc,one:function(a,b,d){a=B(a);a.on(b,function e(){a.off(b,d);a.off(b,e)});a.on(b,d)},replaceWith:function(a,b){var d,c=a.parentNode;ub(a);q(new U(b),function(b){d?c.insertBefore(b,d.nextSibling):c.replaceChild(b,a);d=b})},children:function(a){var b=[];q(a.childNodes,function(a){1===a.nodeType&&b.push(a)});return b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,
1539 b){var d=a.nodeType;if(1===d||11===d){b=new U(b);for(var d=0,c=b.length;d<c;d++)a.appendChild(b[d])}},prepend:function(a,b){if(1===a.nodeType){var d=a.firstChild;q(new U(b),function(b){a.insertBefore(b,d)})}},wrap:function(a,b){Mc(a,B(b).eq(0).clone()[0])},remove:Bb,detach:function(a){Bb(a,!0)},after:function(a,b){var d=a,c=a.parentNode;b=new U(b);for(var e=0,f=b.length;e<f;e++){var g=b[e];c.insertBefore(g,d.nextSibling);d=g}},addClass:zb,removeClass:yb,toggleClass:function(a,b,d){b&&q(b.split(" "),
1540 function(b){var e=d;y(e)&&(e=!xb(a,b));(e?zb:yb)(a,b)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},find:function(a,b){return a.getElementsByTagName?a.getElementsByTagName(b):[]},clone:Vb,triggerHandler:function(a,b,d){var c,e,f=b.type||b,g=vb(a);if(g=(g=g&&g.events)&&g[f])c={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=
1541 !0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:C,type:f,target:a},b.type&&(c=R(c,b)),b=ha(g),e=d?[c].concat(d):[c],q(b,function(b){c.isImmediatePropagationStopped()||b.apply(a,e)})}},function(a,b){U.prototype[b]=function(b,c,e){for(var f,g=0,h=this.length;g<h;g++)y(f)?(f=a(this[g],b,c,e),x(f)&&(f=B(f))):Nc(f,a(this[g],b,c,e));return x(f)?f:this};U.prototype.bind=U.prototype.on;U.prototype.unbind=U.prototype.off});Ra.prototype={put:function(a,
1542 b){this[Fa(a,this.nextUid)]=b},get:function(a){return this[Fa(a,this.nextUid)]},remove:function(a){var b=this[a=Fa(a,this.nextUid)];delete this[a];return b}};var Gf=[function(){this.$get=[function(){return Ra}]}],Uf=/^([^\(]+?)=>/,Vf=/^[^\(]*\(\s*([^\)]*)\)/m,Bg=/,/,Cg=/^\s*(_?)(\S+?)\1\s*$/,Tf=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ga=O("$injector");bb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw F(d)&&d||(d=a.name||Wf(a)),Ga("strictdi",d);
1543 b=Tc(a);q(b[1].split(Bg),function(a){a.replace(Cg,function(a,b,d){c.push(d)})})}a.$inject=c}}else K(a)?(b=a.length-1,Pa(a[b],"fn"),c=a.slice(0,b)):Pa(a,"fn",!0);return c};var Qd=O("$animate"),Ze=function(){this.$get=C},$e=function(){var a=new Ra,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=F(b)?b.split(" "):K(b)?b:[],q(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){q(b,function(b){var c=a.get(b);if(c){var d=Xf(b.attr("class")),e="",f="";q(c,
1544 function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});q(b,function(a){e&&zb(a,e);f&&yb(a,f)});a.remove(b)}});b.length=0}return{enabled:C,on:C,off:C,pin:C,push:function(g,h,k,l){l&&l();k=k||{};k.from&&g.css(k.from);k.to&&g.css(k.to);if(k.addClass||k.removeClass)if(h=k.addClass,l=k.removeClass,k=a.get(g)||{},h=e(k,h,!0),l=e(k,l,!1),h||l)a.put(g,k),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},Xe=["$provide",function(a){var b=this;this.$$registeredAnimations=
1545 Object.create(null);this.register=function(d,c){if(d&&"."!==d.charAt(0))throw Qd("notcsel",d);var e=d+"-animation";b.$$registeredAnimations[d.substr(1)]=e;a.factory(e,c)};this.classNameFilter=function(a){if(1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null)&&/(\s+|\/)ng-animate(\s+|\/)/.test(this.$$classNameFilter.toString()))throw Qd("nongcls","ng-animate");return this.$$classNameFilter};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var h;a:{for(h=0;h<d.length;h++){var k=
1546 d[h];if(1===k.nodeType){h=k;break a}}h=void 0}!h||h.parentNode||h.previousElementSibling||(d=null)}d?d.after(a):c.prepend(a)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.end&&a.end()},enter:function(e,f,g,h){f=f&&B(f);g=g&&B(g);f=f||g.parent();b(e,f,g);return a.push(e,"enter",Ha(h))},move:function(e,f,g,h){f=f&&B(f);g=g&&B(g);f=f||g.parent();b(e,f,g);return a.push(e,"move",Ha(h))},leave:function(b,c){return a.push(b,"leave",Ha(c),function(){b.remove()})},addClass:function(b,
1547 c,g){g=Ha(g);g.addClass=fb(g.addclass,c);return a.push(b,"addClass",g)},removeClass:function(b,c,g){g=Ha(g);g.removeClass=fb(g.removeClass,c);return a.push(b,"removeClass",g)},setClass:function(b,c,g,h){h=Ha(h);h.addClass=fb(h.addClass,c);h.removeClass=fb(h.removeClass,g);return a.push(b,"setClass",h)},animate:function(b,c,g,h,k){k=Ha(k);k.from=k.from?R(k.from,c):c;k.to=k.to?R(k.to,g):g;k.tempClasses=fb(k.tempClasses,h||"ng-inline-animate");return a.push(b,"animate",k)}}}]}],bf=function(){this.$get=
1548 ["$$rAF",function(a){function b(b){d.push(b);1<d.length||a(function(){for(var a=0;a<d.length;a++)d[a]();d=[]})}var d=[];return function(){var a=!1;b(function(){a=!0});return function(d){a?d():b(d)}}}]},af=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(a,b,d,c,e){function f(a){this.setHost(a);var b=d();this._doneCallbacks=[];this._tick=function(a){var d=c[0];d&&d.hidden?e(a,0,!1):b(a)};this._state=0}f.chain=function(a,b){function c(){if(d===a.length)b(!0);
1549 else a[d](function(a){!1===a?b(!1):(d++,c())})}var d=0;c()};f.all=function(a,b){function c(f){e=e&&f;++d===a.length&&b(e)}var d=0,e=!0;q(a,function(a){a.done(c)})};f.prototype={setHost:function(a){this.host=a||{}},done:function(a){2===this._state?a():this._doneCallbacks.push(a)},progress:C,getPromise:function(){if(!this.promise){var b=this;this.promise=a(function(a,c){b.done(function(b){!1===b?c():a()})})}return this.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},
1550 "finally":function(a){return this.getPromise()["finally"](a)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end();this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel();this._resolve(!1)},complete:function(a){var b=this;0===b._state&&(b._state=1,b._tick(function(){b._resolve(a)}))},_resolve:function(a){2!==this._state&&(q(this._doneCallbacks,function(b){b(a)}),this._doneCallbacks.length=
1551 0,this._state=2)}};return f}]},Ye=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(a,b,d){return function(b,e){function f(){a(function(){g.addClass&&(b.addClass(g.addClass),g.addClass=null);g.removeClass&&(b.removeClass(g.removeClass),g.removeClass=null);g.to&&(b.css(g.to),g.to=null);h||k.complete();h=!0});return k}var g=e||{};g.$$prepared||(g=qa(g));g.cleanupStyles&&(g.from=g.to=null);g.from&&(b.css(g.from),g.from=null);var h,k=new d;return{start:f,end:f}}}]},ga=O("$compile"),Zb=new function(){};
1552 Cc.$inject=["$provide","$$sanitizeUriProvider"];Db.prototype.isFirstChange=function(){return this.previousValue===Zb};var Vc=/^((?:x|data)[\:\-_])/i,$f=O("$controller"),bd=/^(\S+)(\s+as\s+([\w$]+))?$/,hf=function(){this.$get=["$document",function(a){return function(b){b?!b.nodeType&&b instanceof B&&(b=b[0]):b=a[0].body;return b.offsetWidth+1}}]},cd="application/json",bc={"Content-Type":cd+";charset=utf-8"},bg=/^\[|^\{(?!\{)/,cg={"[":/]$/,"{":/}$/},ag=/^\)\]\}',?\n/,Dg=O("$http"),gd=function(a){return function(){throw Dg("legacy",
1553 a);}},Ja=ea.$interpolateMinErr=O("$interpolate");Ja.throwNoconcat=function(a){throw Ja("noconcat",a);};Ja.interr=function(a,b){return Ja("interr",a,b.toString())};var Eg=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,eg={http:80,https:443,ftp:21},Eb=O("$location"),Fg={$$html5:!1,$$replace:!1,absUrl:Fb("$$absUrl"),url:function(a){if(y(a))return this.$$url;var b=Eg.exec(a);(b[1]||""===a)&&this.path(decodeURIComponent(b[1]));(b[2]||b[1]||""===a)&&this.search(b[3]||"");this.hash(b[5]||"");return this},protocol:Fb("$$protocol"),
1554 host:Fb("$$host"),port:Fb("$$port"),path:ld("$$path",function(a){a=null!==a?a.toString():"";return"/"==a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(F(a)||Q(a))a=a.toString(),this.$$search=xc(a);else if(G(a))a=qa(a,{}),q(a,function(b,c){null==b&&delete a[c]}),this.$$search=a;else throw Eb("isrcharg");break;default:y(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}this.$$compose();return this},hash:ld("$$hash",function(a){return null!==
1555 a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};q([kd,ec,dc],function(a){a.prototype=Object.create(Fg);a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==dc||!this.$$html5)throw Eb("nostate");this.$$state=y(b)?null:b;return this}});var ca=O("$parse"),gg=Function.prototype.call,hg=Function.prototype.apply,ig=Function.prototype.bind,Mb=T();q("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){Mb[a]=!0});var Gg={n:"\n",f:"\f",r:"\r",
1556 t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,text:a}),this.index++;else if(this.isWhitespace(a))this.index++;
1557 else{var b=a+this.peek(),d=b+this.peek(2),c=Mb[b],e=Mb[d];Mb[a]||c||e?(a=e?d:c?b:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,b){return-1!==b.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||
1558 "\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)},isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,
1559 b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b=x(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw ca("lexerr",
1560 a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index<this.text.length;){var d=P(this.text.charAt(this.index));if("."==d||this.isNumber(d))a+=d;else{var c=this.peek();if("e"==d&&this.isExpOperator(c))a+=d;else if(this.isExpOperator(d)&&c&&this.isNumber(c)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||c&&this.isNumber(c)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:b,text:a,constant:!0,value:Number(a)})},
1561 readIdent:function(){var a=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var b=this.peekMultichar();if(!this.isIdentifierContinue(b))break;this.index+=b.length}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var d="",c=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index),c=c+f;if(e)"u"===f?(e=this.text.substring(this.index+1,this.index+5),e.match(/[\da-f]{4}/i)||
1562 this.throwError("Invalid unicode escape [\\u"+e+"]"),this.index+=4,d+=String.fromCharCode(parseInt(e,16))):d+=Gg[f]||f,e=!1;else if("\\"===f)e=!0;else{if(f===a){this.index++;this.tokens.push({index:b,text:c,constant:!0,value:d});return}d+=f}this.index++}this.throwError("Unterminated quote",b)}};var s=function(a,b){this.lexer=a;this.options=b};s.Program="Program";s.ExpressionStatement="ExpressionStatement";s.AssignmentExpression="AssignmentExpression";s.ConditionalExpression="ConditionalExpression";
1563 s.LogicalExpression="LogicalExpression";s.BinaryExpression="BinaryExpression";s.UnaryExpression="UnaryExpression";s.CallExpression="CallExpression";s.MemberExpression="MemberExpression";s.Identifier="Identifier";s.Literal="Literal";s.ArrayExpression="ArrayExpression";s.Property="Property";s.ObjectExpression="ObjectExpression";s.ThisExpression="ThisExpression";s.LocalsExpression="LocalsExpression";s.NGValueParameter="NGValueParameter";s.prototype={ast:function(a){this.text=a;this.tokens=this.lexer.lex(a);
1564 a=this.program();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);return a},program:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:s.Program,body:a}},expressionStatement:function(){return{type:s.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},expression:function(){return this.assignment()},
1565 assignment:function(){var a=this.ternary();this.expect("=")&&(a={type:s.AssignmentExpression,left:a,right:this.assignment(),operator:"="});return a},ternary:function(){var a=this.logicalOR(),b,d;return this.expect("?")&&(b=this.expression(),this.consume(":"))?(d=this.expression(),{type:s.ConditionalExpression,test:a,alternate:b,consequent:d}):a},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:s.LogicalExpression,operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=
1566 this.equality();this.expect("&&");)a={type:s.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a=this.relational(),b;b=this.expect("==","!=","===","!==");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.relational()};return a},relational:function(){for(var a=this.additive(),b;b=this.expect("<",">","<=",">=");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),
1567 b;b=this.expect("+","-");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):
1568 this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=qa(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:s.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:s.CallExpression,
1569 callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:s.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:s.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return b},parseArguments:function(){var a=[];if(")"!==
1570 this.peekToken().text){do a.push(this.expression());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier,name:a.text}},constant:function(){return{type:s.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}},
1571 object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;b={type:s.Property,kind:"init"};this.peek().constant?b.key=this.constant():this.peek().identifier?b.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");b.value=this.expression();a.push(b)}while(this.expect(","))}this.consume("}");return{type:s.ObjectExpression,properties:a}},throwError:function(a,b){throw ca("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===
1572 this.tokens.length)throw ca("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw ca("ueoe",this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?
1573 (this.tokens.shift(),a):!1},selfReferential:{"this":{type:s.ThisExpression},$locals:{type:s.LocalsExpression}}};sd.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:b,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};aa(c,d.$filter);var e="",f;this.stage="assign";if(f=qd(c))this.state.computing="assign",e=this.nextId(),this.recurse(f,e),this.return_(e),e="fn.assign="+this.generateFunction("assign","s,v,l");f=od(c.body);
1574 d.stage="inputs";q(f,function(a,b){var c="fn"+b;d.state[c]={vars:[],body:[],own:{}};d.state.computing=c;var e=d.nextId();d.recurse(a,e);d.return_(e);d.state.inputs.push(c);a.watchId=b});this.state.computing="fn";this.stage="main";this.recurse(c);e='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+e+this.watchFns()+"return fn;";e=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext",
1575 "ifDefined","plus","text",e))(this.$filter,Ta,sa,md,fg,Gb,jg,nd,a);this.state=this.stage=void 0;e.literal=rd(c);e.constant=c.constant;return e},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;q(b,function(b){a.push("var "+b+"="+d.generateFunction(b,"s"))});b.length&&a.push("fn.inputs=["+b.join(",")+"];");return a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;q(this.state.filters,
1576 function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,c,e,f){var g,h,k=this,l,n;c=c||C;if(!f&&x(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case s.Program:q(a.body,function(b,c){k.recurse(b.expression,
1577 void 0,void 0,function(a){h=a});c!==a.body.length-1?k.current().body.push(h,";"):k.return_(h)});break;case s.Literal:n=this.escape(a.value);this.assign(b,n);c(n);break;case s.UnaryExpression:this.recurse(a.argument,void 0,void 0,function(a){h=a});n=a.operator+"("+this.ifDefined(h,0)+")";this.assign(b,n);c(n);break;case s.BinaryExpression:this.recurse(a.left,void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){h=a});n="+"===a.operator?this.plus(g,h):"-"===a.operator?this.ifDefined(g,
1578 0)+a.operator+this.ifDefined(h,0):"("+g+")"+a.operator+"("+h+")";this.assign(b,n);c(n);break;case s.LogicalExpression:b=b||this.nextId();k.recurse(a.left,b);k.if_("&&"===a.operator?b:k.not(b),k.lazyRecurse(a.right,b));c(b);break;case s.ConditionalExpression:b=b||this.nextId();k.recurse(a.test,b);k.if_(b,k.lazyRecurse(a.alternate,b),k.lazyRecurse(a.consequent,b));c(b);break;case s.Identifier:b=b||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",
1579 a.name)+"?l:s"),d.computed=!1,d.name=a.name);Ta(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){e&&1!==e&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(b,k.nonComputedMember("s",a.name))})},b&&k.lazyAssign(b,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Hb(a.name))&&k.addEnsureSafeObject(b);c(b);break;case s.MemberExpression:g=d&&(d.context=this.nextId())||
1580 this.nextId();b=b||this.nextId();k.recurse(a.object,g,void 0,function(){k.if_(k.notNull(g),function(){e&&1!==e&&k.addEnsureSafeAssignContext(g);if(a.computed)h=k.nextId(),k.recurse(a.property,h),k.getStringValue(h),k.addEnsureSafeMemberName(h),e&&1!==e&&k.if_(k.not(k.computedMember(g,h)),k.lazyAssign(k.computedMember(g,h),"{}")),n=k.ensureSafeObject(k.computedMember(g,h)),k.assign(b,n),d&&(d.computed=!0,d.name=h);else{Ta(a.property.name);e&&1!==e&&k.if_(k.not(k.nonComputedMember(g,a.property.name)),
1581 k.lazyAssign(k.nonComputedMember(g,a.property.name),"{}"));n=k.nonComputedMember(g,a.property.name);if(k.state.expensiveChecks||Hb(a.property.name))n=k.ensureSafeObject(n);k.assign(b,n);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(b,"undefined")});c(b)},!!e);break;case s.CallExpression:b=b||this.nextId();a.filter?(h=k.filter(a.callee.name),l=[],q(a.arguments,function(a){var b=k.nextId();k.recurse(a,b);l.push(b)}),n=h+"("+l.join(",")+")",k.assign(b,n),c(b)):(h=k.nextId(),g={},l=
1582 [],k.recurse(a.callee,h,g,function(){k.if_(k.notNull(h),function(){k.addEnsureSafeFunction(h);q(a.arguments,function(a){k.recurse(a,k.nextId(),void 0,function(a){l.push(k.ensureSafeObject(a))})});g.name?(k.state.expensiveChecks||k.addEnsureSafeObject(g.context),n=k.member(g.context,g.name,g.computed)+"("+l.join(",")+")"):n=h+"("+l.join(",")+")";n=k.ensureSafeObject(n);k.assign(b,n)},function(){k.assign(b,"undefined")});c(b)}));break;case s.AssignmentExpression:h=this.nextId();g={};if(!pd(a.left))throw ca("lval");
1583 this.recurse(a.left,void 0,g,function(){k.if_(k.notNull(g.context),function(){k.recurse(a.right,h);k.addEnsureSafeObject(k.member(g.context,g.name,g.computed));k.addEnsureSafeAssignContext(g.context);n=k.member(g.context,g.name,g.computed)+a.operator+h;k.assign(b,n);c(b||n)})},1);break;case s.ArrayExpression:l=[];q(a.elements,function(a){k.recurse(a,k.nextId(),void 0,function(a){l.push(a)})});n="["+l.join(",")+"]";this.assign(b,n);c(n);break;case s.ObjectExpression:l=[];q(a.properties,function(a){k.recurse(a.value,
1584 k.nextId(),void 0,function(b){l.push(k.escape(a.key.type===s.Identifier?a.key.name:""+a.key.value)+":"+b)})});n="{"+l.join(",")+"}";this.assign(b,n);c(n);break;case s.ThisExpression:this.assign(b,"s");c("s");break;case s.LocalsExpression:this.assign(b,"l");c("l");break;case s.NGValueParameter:this.assign(b,"v"),c("v")}},getHasOwnProperty:function(a,b){var d=a+"."+b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,b){if(a)return this.current().body.push(a,
1585 "=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+
1586 "!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/[$_a-zA-Z][$_a-zA-Z0-9]*/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a,b)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),
1587 ";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+a+",text)"},lazyRecurse:function(a,b,d,c,e,f){var g=
1588 this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(F(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(Q(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw ca("esc");},nextId:function(a,
1589 b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};td.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=b;aa(c,d.$filter);var e,f;if(e=qd(c))f=this.recurse(e);e=od(c.body);var g;e&&(g=[],q(e,function(a,b){var c=d.recurse(a);a.input=c;g.push(c);a.watchId=b}));var h=[];q(c.body,function(a){h.push(d.recurse(a.expression))});e=0===c.body.length?C:1===
1590 c.body.length?h[0]:function(a,b){var c;q(h,function(d){c=d(a,b)});return c};f&&(e.assign=function(a,b,c){return f(a,c,b)});g&&(e.inputs=g);e.literal=rd(c);e.constant=c.constant;return e},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,b);case s.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case s.BinaryExpression:return c=this.recurse(a.left),e=this.recurse(a.right),
1591 this["binary"+a.operator](c,e,b);case s.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case s.Identifier:return Ta(a.name,f.expression),f.identifier(a.name,f.expensiveChecks||Hb(a.name),b,d,f.expression);case s.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(Ta(a.property.name,f.expression),
1592 e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,e,b,d,f.expression):this.nonComputedMember(c,e,f.expensiveChecks,b,d,f.expression);case s.CallExpression:return g=[],q(a.arguments,function(a){g.push(f.recurse(a))}),a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var m=[],r=0;r<g.length;++r)m.push(g[r](a,c,d,f));a=e.apply(void 0,m,f);return b?{context:void 0,name:void 0,value:a}:a}:function(a,
1593 c,d,n){var m=e(a,c,d,n),r;if(null!=m.value){sa(m.context,f.expression);md(m.value,f.expression);r=[];for(var q=0;q<g.length;++q)r.push(sa(g[q](a,c,d,n),f.expression));r=sa(m.value.apply(m.context,r),f.expression)}return b?{value:r}:r};case s.AssignmentExpression:return c=this.recurse(a.left,!0,1),e=this.recurse(a.right),function(a,d,g,n){var m=c(a,d,g,n);a=e(a,d,g,n);sa(m.value,f.expression);Gb(m.context);m.context[m.name]=a;return b?{value:a}:a};case s.ArrayExpression:return g=[],q(a.elements,function(a){g.push(f.recurse(a))}),
1594 function(a,c,d,e){for(var f=[],r=0;r<g.length;++r)f.push(g[r](a,c,d,e));return b?{value:f}:f};case s.ObjectExpression:return g=[],q(a.properties,function(a){g.push({key:a.key.type===s.Identifier?a.key.name:""+a.key.value,value:f.recurse(a.value)})}),function(a,c,d,e){for(var f={},r=0;r<g.length;++r)f[g[r].key]=g[r].value(a,c,d,e);return b?{value:f}:f};case s.ThisExpression:return function(a){return b?{value:a}:a};case s.LocalsExpression:return function(a,c){return b?{value:c}:c};case s.NGValueParameter:return function(a,
1595 c,d){return b?{value:d}:d}}},"unary+":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=x(d)?+d:0;return b?{value:d}:d}},"unary-":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=x(d)?-d:0;return b?{value:d}:d}},"unary!":function(a,b){return function(d,c,e,f){d=!a(d,c,e,f);return b?{value:d}:d}},"binary+":function(a,b,d){return function(c,e,f,g){var h=a(c,e,f,g);c=b(c,e,f,g);h=nd(h,c);return d?{value:h}:h}},"binary-":function(a,b,d){return function(c,e,f,g){var h=a(c,e,f,g);c=b(c,e,f,g);
1596 h=(x(h)?h:0)-(x(c)?c:0);return d?{value:h}:h}},"binary*":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)*b(c,e,f,g);return d?{value:c}:c}},"binary/":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)/b(c,e,f,g);return d?{value:c}:c}},"binary%":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)%b(c,e,f,g);return d?{value:c}:c}},"binary===":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)===b(c,e,f,g);return d?{value:c}:c}},"binary!==":function(a,b,d){return function(c,e,f,g){c=a(c,
1597 e,f,g)!==b(c,e,f,g);return d?{value:c}:c}},"binary==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)==b(c,e,f,g);return d?{value:c}:c}},"binary!=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!=b(c,e,f,g);return d?{value:c}:c}},"binary<":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<b(c,e,f,g);return d?{value:c}:c}},"binary>":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,
1598 g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,h){e=a(e,f,g,h)?b(e,f,g,h):d(e,f,g,h);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,
1599 name:void 0,value:a}:a}},identifier:function(a,b,d,c,e){return function(f,g,h,k){f=g&&a in g?g:f;c&&1!==c&&f&&!f[a]&&(f[a]={});g=f?f[a]:void 0;b&&sa(g,e);return d?{context:f,name:a,value:g}:g}},computedMember:function(a,b,d,c,e){return function(f,g,h,k){var l=a(f,g,h,k),n,m;null!=l&&(n=b(f,g,h,k),n+="",Ta(n,e),c&&1!==c&&(Gb(l),l&&!l[n]&&(l[n]={})),m=l[n],sa(m,e));return d?{context:l,name:n,value:m}:m}},nonComputedMember:function(a,b,d,c,e,f){return function(g,h,k,l){g=a(g,h,k,l);e&&1!==e&&(Gb(g),
1600 g&&!g[b]&&(g[b]={}));h=null!=g?g[b]:void 0;(d||Hb(b))&&sa(h,f);return c?{context:g,name:b,value:h}:h}},inputs:function(a,b){return function(d,c,e,f){return f?f[b]:a(d,c,e)}}};var hc=function(a,b,d){this.lexer=a;this.$filter=b;this.options=d;this.ast=new s(a,d);this.astCompiler=d.csp?new td(this.ast,b):new sd(this.ast,b)};hc.prototype={constructor:hc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};var kg=Object.prototype.valueOf,ta=O("$sce"),oa={HTML:"html",CSS:"css",
1601 URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},mg=O("$compile"),Y=v.document.createElement("a"),xd=ra(v.location.href);yd.$inject=["$document"];Jc.$inject=["$provide"];var Fd=22,Ed=".",jc="0";zd.$inject=["$locale"];Bd.$inject=["$locale"];var xg={yyyy:W("FullYear",4,0,!1,!0),yy:W("FullYear",2,0,!0,!0),y:W("FullYear",1,0,!1,!0),MMMM:ib("Month"),MMM:ib("Month",!0),MM:W("Month",2,1),M:W("Month",1,1),LLLL:ib("Month",!1,!0),dd:W("Date",2),d:W("Date",1),HH:W("Hours",2),H:W("Hours",1),hh:W("Hours",2,-12),
1602 h:W("Hours",1,-12),mm:W("Minutes",2),m:W("Minutes",1),ss:W("Seconds",2),s:W("Seconds",1),sss:W("Milliseconds",3),EEEE:ib("Day"),EEE:ib("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Ib(Math[0<a?"floor":"ceil"](a/60),2)+Ib(Math.abs(a%60),2))},ww:Hd(2),w:Hd(1),G:kc,GG:kc,GGG:kc,GGGG:function(a,b){return 0>=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},wg=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
1603 vg=/^\-?\d+$/;Ad.$inject=["$locale"];var qg=da(P),rg=da(sb);Cd.$inject=["$parse"];var ne=da({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===ma.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),tb={};q(Cb,function(a,b){function d(a,d,e){a.$watch(e[c],function(a){e.$set(b,!!a)})}if("multiple"!=a){var c=xa("ng-"+b),e=d;"checked"===a&&(e=function(a,
1604 b,e){e.ngModel!==e[c]&&d(a,b,e)});tb[c]=function(){return{restrict:"A",priority:100,link:e}}}});q(ad,function(a,b){tb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"==e.ngPattern.charAt(0)&&(c=e.ngPattern.match(zg))){e.$set("ngPattern",new RegExp(c[1],c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});q(["src","srcset","href"],function(a){var b=xa("ng-"+a);tb[b]=function(){return{priority:99,link:function(d,c,e){var f=a,g=a;"href"===a&&"[object SVGAnimatedString]"===
1605 ma.call(c.prop("href"))&&(g="xlinkHref",e.$attr[g]="xlink:href",f=null);e.$observe(b,function(b){b?(e.$set(g,b),Ca&&f&&c.prop(f,e[g])):"href"===a&&e.$set(g,null)})}}}});var Jb={$addControl:C,$$renameControl:function(a,b){a.$name=b},$removeControl:C,$setValidity:C,$setDirty:C,$setPristine:C,$setSubmitted:C};Id.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Rd=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||C}return{name:"form",
1606 restrict:a?"EAC":"E",require:["form","^^?form"],controller:Id,compile:function(d,f){d.addClass(Ua).addClass(mb);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var m=f[0];if(!("action"in e)){var r=function(b){a.$apply(function(){m.$commitViewValue();m.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",r,!1);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",r,!1)},0,!1)})}(f[1]||m.$$parentForm).$addControl(m);var q=g?c(m.$name):C;g&&
1607 (q(a,m),e.$observe(g,function(b){m.$name!==b&&(q(a,void 0),m.$$parentForm.$$renameControl(m,b),q=c(m.$name),q(a,m))}));d.on("$destroy",function(){m.$$parentForm.$removeControl(m);q(a,void 0);R(m,Jb)})}}}}}]},oe=Rd(),Be=Rd(!0),yg=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Hg=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Ig=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,
1608 Jg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Sd=/^(\d{4,})-(\d{2})-(\d{2})$/,Td=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,nc=/^(\d{4,})-W(\d\d)$/,Ud=/^(\d{4,})-(\d\d)$/,Vd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Kd=T();q(["date","datetime-local","month","time","week"],function(a){Kd[a]=!0});var Wd={text:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c)},date:kb("date",Sd,Lb(Sd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Td,Lb(Td,"yyyy MM dd HH mm ss sss".split(" ")),
1609 "yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Vd,Lb(Vd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",nc,function(a,b){if(fa(a))return a;if(F(a)){nc.lastIndex=0;var d=nc.exec(a);if(d){var c=+d[1],e=+d[2],f=d=0,g=0,h=0,k=Gd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),h=b.getMilliseconds());return new Date(c,0,k.getDate()+e,d,f,g,h)}}return NaN},"yyyy-Www"),month:kb("month",Ud,Lb(Ud,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f){Ld(a,b,d,c);jb(a,b,d,c,e,f);c.$$parserName=
1610 "number";c.$parsers.push(function(a){if(c.$isEmpty(a))return null;if(Jg.test(a))return parseFloat(a)});c.$formatters.push(function(a){if(!c.$isEmpty(a)){if(!Q(a))throw lb("numfmt",a);a=a.toString()}return a});if(x(d.min)||d.ngMin){var g;c.$validators.min=function(a){return c.$isEmpty(a)||y(g)||a>=g};d.$observe("min",function(a){x(a)&&!Q(a)&&(a=parseFloat(a,10));g=Q(a)&&!isNaN(a)?a:void 0;c.$validate()})}if(x(d.max)||d.ngMax){var h;c.$validators.max=function(a){return c.$isEmpty(a)||y(h)||a<=h};d.$observe("max",
1611 function(a){x(a)&&!Q(a)&&(a=parseFloat(a,10));h=Q(a)&&!isNaN(a)?a:void 0;c.$validate()})}},url:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c);c.$$parserName="url";c.$validators.url=function(a,b){var d=a||b;return c.$isEmpty(d)||Hg.test(d)}},email:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c);c.$$parserName="email";c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||Ig.test(d)}},radio:function(a,b,d,c){y(d.name)&&b.attr("name",++nb);b.on("click",function(a){b[0].checked&&c.$setViewValue(d.value,
1612 a&&a.type)});c.$render=function(){b[0].checked=d.value==c.$viewValue};d.$observe("value",c.$render)},checkbox:function(a,b,d,c,e,f,g,h){var k=Md(h,a,"ngTrueValue",d.ngTrueValue,!0),l=Md(h,a,"ngFalseValue",d.ngFalseValue,!1);b.on("click",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=function(a){return!1===a};c.$formatters.push(function(a){return pa(a,k)});c.$parsers.push(function(a){return a?k:l})},hidden:C,button:C,submit:C,reset:C,
1613 file:C},Dc=["$browser","$sniffer","$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,h){h[0]&&(Wd[P(g.type)]||Wd.text)(e,f,g,h[0],b,a,d,c)}}}}],Kg=/^(true|false|\d+)$/,Te=function(){return{restrict:"A",priority:100,compile:function(a,b){return Kg.test(b.ngValue)?function(a,b,e){e.$set("value",a.$eval(e.ngValue))}:function(a,b,e){a.$watch(e.ngValue,function(a){e.$set("value",a)})}}}},te=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);
1614 return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];b.$watch(e.ngBind,function(a){c.textContent=y(a)?"":a})}}}}],ve=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=y(a)?"":a})}}}}],ue=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=
1615 b(e.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(c);return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){c.html(a.getTrustedHtml(f(b))||"")})}}}}],Se=da({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),we=mc("",!0),ye=mc("Odd",0),xe=mc("Even",1),ze=La({compile:function(a,b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),Ae=[function(){return{restrict:"A",scope:!0,controller:"@",
1616 priority:500}}],Ic={},Lg={blur:!0,focus:!0};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=xa("ng-"+a);Ic[b]=["$parse","$rootScope",function(d,c){return{restrict:"A",compile:function(e,f){var g=d(f[b],null,!0);return function(b,d){d.on(a,function(d){var e=function(){g(b,{$event:d})};Lg[a]&&c.$$phase?b.$evalAsync(e):b.$apply(e)})}}}}]});var De=["$animate","$compile",function(a,
1617 b){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var h,k,l;d.$watch(e.ngIf,function(d){d?k||g(function(d,f){k=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);h={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),k&&(k.$destroy(),k=null),h&&(l=rb(h.clone),a.leave(l).then(function(){l=null}),h=null))})}}}],Ee=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,
1618 transclude:"element",controller:ea.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",h=e.autoscroll;return function(c,e,n,m,r){var q=0,s,w,p,y=function(){w&&(w.remove(),w=null);s&&(s.$destroy(),s=null);p&&(d.leave(p).then(function(){w=null}),w=p,p=null)};c.$watch(f,function(f){var n=function(){!x(h)||h&&!c.$eval(h)||b()},u=++q;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&u===q){var b=c.$new();m.template=a;a=r(b,function(a){y();d.enter(a,null,e).then(n)});s=b;p=a;s.$emit("$includeContentLoaded",
1619 f);c.$eval(g)}},function(){c.$$destroyed||u!==q||(y(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(y(),m.template=null)})}}}}],Ve=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){ma.call(d[0]).match(/SVG/)?(d.empty(),a(Lc(e.template,v.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],Fe=La({priority:450,compile:function(){return{pre:function(a,
1620 b,d){a.$eval(d.ngInit)}}}}),Re=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=b.attr(d.$attr.ngList)||", ",f="false"!==d.ngTrim,g=f?V(e):e;c.$parsers.push(function(a){if(!y(a)){var b=[];a&&q(a.split(g),function(a){a&&b.push(f?V(a):a)});return b}});c.$formatters.push(function(a){if(K(a))return a.join(e)});c.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",Nd="ng-invalid",Ua="ng-pristine",Kb="ng-dirty",Pd="ng-pending",lb=O("ngModel"),Mg=["$scope",
1621 "$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,b,d,c,e,f,g,h,k,l){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=void 0;this.$validators={};this.$asyncValidators={};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.$error={};this.$$success={};this.$pending=void 0;this.$name=l(d.name||"",!1)(a);
1622 this.$$parentForm=Jb;var n=e(d.ngModel),m=n.assign,r=n,s=m,v=null,w,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var b=e(d.ngModel+"()"),f=e(d.ngModel+"($$$p)");r=function(a){var c=n(a);E(c)&&(c=b(a));return c};s=function(a,b){E(n(a))?f(a,{$$$p:b}):m(a,b)}}else if(!n.assign)throw lb("nonassign",d.ngModel,wa(c));};this.$render=C;this.$isEmpty=function(a){return y(a)||""===a||null===a||a!==a};this.$$updateEmptyClasses=function(a){p.$isEmpty(a)?(f.removeClass(c,"ng-not-empty"),
1623 f.addClass(c,"ng-empty")):(f.removeClass(c,"ng-empty"),f.addClass(c,"ng-not-empty"))};var H=0;Jd({ctrl:this,$element:c,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]},$animate:f});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;f.removeClass(c,Kb);f.addClass(c,Ua)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;f.removeClass(c,Ua);f.addClass(c,Kb);p.$$parentForm.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;f.setClass(c,"ng-untouched","ng-touched")};
1624 this.$setTouched=function(){p.$touched=!0;p.$untouched=!1;f.setClass(c,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){g.cancel(v);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!Q(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,b=p.$valid,c=p.$modelValue,d=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(e){d||b===e||(p.$modelValue=e?a:void 0,p.$modelValue!==c&&p.$$writeModelToScope())})}};
1625 this.$$runValidators=function(a,b,c){function d(){var c=!0;q(p.$validators,function(d,e){var g=d(a,b);c=c&&g;f(e,g)});return c?!0:(q(p.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;q(p.$asyncValidators,function(e,g){var h=e(a,b);if(!h||!E(h.then))throw lb("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?k.all(c).then(function(){g(d)},C):g(!0)}function f(a,b){h===H&&p.$setValidity(a,b)}function g(a){h===H&&c(a)}H++;var h=
1626 H;(function(){var a=p.$$parserName||"parse";if(y(w))f(a,null);else return w||(q(p.$validators,function(a,b){f(b,null)}),q(p.$asyncValidators,function(a,b){f(b,null)})),f(a,w),w;return!0})()?d()?e():g(!1):g(!1)};this.$commitViewValue=function(){var a=p.$viewValue;g.cancel(v);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$updateEmptyClasses(a),p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var b=p.$$lastCommittedViewValue;
1627 if(w=y(b)?void 0:!0)for(var c=0;c<p.$parsers.length;c++)if(b=p.$parsers[c](b),y(b)){w=!1;break}Q(p.$modelValue)&&isNaN(p.$modelValue)&&(p.$modelValue=r(a));var d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$rawModelValue=b;e&&(p.$modelValue=b,p.$modelValue!==d&&p.$$writeModelToScope());p.$$runValidators(b,p.$$lastCommittedViewValue,function(a){e||(p.$modelValue=a?b:void 0,p.$modelValue!==d&&p.$$writeModelToScope())})};this.$$writeModelToScope=function(){s(a,p.$modelValue);q(p.$viewChangeListeners,
1628 function(a){try{a()}catch(c){b(c)}})};this.$setViewValue=function(a,b){p.$viewValue=a;p.$options&&!p.$options.updateOnDefault||p.$$debounceViewValueCommit(b)};this.$$debounceViewValueCommit=function(b){var c=0,d=p.$options;d&&x(d.debounce)&&(d=d.debounce,Q(d)?c=d:Q(d[b])?c=d[b]:Q(d["default"])&&(c=d["default"]));g.cancel(v);c?v=g(function(){p.$commitViewValue()},c):h.$$phase?p.$commitViewValue():a.$apply(function(){p.$commitViewValue()})};a.$watch(function(){var b=r(a);if(b!==p.$modelValue&&(p.$modelValue===
1629 p.$modelValue||b===b)){p.$modelValue=p.$$rawModelValue=b;w=void 0;for(var c=p.$formatters,d=c.length,e=b;d--;)e=c[d](e);p.$viewValue!==e&&(p.$$updateEmptyClasses(e),p.$viewValue=p.$$lastCommittedViewValue=e,p.$render(),p.$$runValidators(b,e,C))}return b})}],Qe=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Mg,priority:1,compile:function(b){b.addClass(Ua).addClass("ng-untouched").addClass(mb);return{pre:function(a,b,e,f){var g=f[0];b=f[1]||
1630 g.$$parentForm;g.$$setOptions(f[2]&&f[2].$options);b.$addControl(g);e.$observe("name",function(a){g.$name!==a&&g.$$parentForm.$$renameControl(g,a)});a.$on("$destroy",function(){g.$$parentForm.$removeControl(g)})},post:function(b,c,e,f){var g=f[0];if(g.$options&&g.$options.updateOn)c.on(g.$options.updateOn,function(a){g.$$debounceViewValueCommit(a&&a.type)});c.on("blur",function(){g.$touched||(a.$$phase?b.$evalAsync(g.$setTouched):b.$apply(g.$setTouched))})}}}}}],Ng=/(\s+|^)default(\s+|$)/,Ue=function(){return{restrict:"A",
1631 controller:["$scope","$attrs",function(a,b){var d=this;this.$options=qa(a.$eval(b.ngModelOptions));x(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=V(this.$options.updateOn.replace(Ng,function(){d.$options.updateOnDefault=!0;return" "}))):this.$options.updateOnDefault=!0}]}},Ge=La({terminal:!0,priority:1E3}),Og=O("ngOptions"),Pg=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,
1632 Oe=["$compile","$document","$parse",function(a,b,d){function c(a,b,c){function e(a,b,c,d,f){this.selectValue=a;this.viewValue=b;this.label=c;this.group=d;this.disabled=f}function f(a){var b;if(!q&&ya(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&"$"!==c.charAt(0)&&b.push(c)}return b}var m=a.match(Pg);if(!m)throw Og("iexp",a,wa(b));var r=m[5]||m[7],q=m[6];a=/ as /.test(m[0])&&m[1];var s=m[9];b=d(m[2]?m[1]:r);var w=a&&d(a)||b,p=s&&d(s),v=s?function(a,b){return p(c,b)}:function(a){return Fa(a)},
1633 t=function(a,b){return v(a,L(a,b))},z=d(m[2]||m[1]),u=d(m[3]||""),y=d(m[4]||""),x=d(m[8]),D={},L=q?function(a,b){D[q]=b;D[r]=a;return D}:function(a){D[r]=a;return D};return{trackBy:s,getTrackByValue:t,getWatchables:d(x,function(a){var b=[];a=a||[];for(var d=f(a),e=d.length,g=0;g<e;g++){var h=a===d?g:d[g],l=a[h],h=L(l,h),l=v(l,h);b.push(l);if(m[2]||m[1])l=z(c,h),b.push(l);m[4]&&(h=y(c,h),b.push(h))}return b}),getOptions:function(){for(var a=[],b={},d=x(c)||[],g=f(d),h=g.length,m=0;m<h;m++){var p=d===
1634 g?m:g[m],q=L(d[p],p),r=w(c,q),p=v(r,q),D=z(c,q),N=u(c,q),q=y(c,q),r=new e(p,r,D,N,q);a.push(r);b[p]=r}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[t(a)]},getViewValueFromOption:function(a){return s?ea.copy(a.viewValue):a.viewValue}}}}}var e=v.document.createElement("option"),f=v.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=C},post:function(d,h,k,l){function n(a,b){a.element=
1635 b;b.disabled=a.disabled;a.label!==b.label&&(b.label=a.label,b.textContent=a.label);a.value!==b.value&&(b.value=a.selectValue)}function m(){var a=u&&r.readValue();if(u)for(var b=u.items.length-1;0<=b;b--){var c=u.items[b];c.group?Bb(c.element.parentNode):Bb(c.element)}u=I.getOptions();var d={};t&&h.prepend(w);u.items.forEach(function(a){var b;if(x(a.group)){b=d[a.group];b||(b=f.cloneNode(!1),E.appendChild(b),b.label=a.group,d[a.group]=b);var c=e.cloneNode(!1)}else b=E,c=e.cloneNode(!1);b.appendChild(c);
1636 n(a,c)});h[0].appendChild(E);s.$render();s.$isEmpty(a)||(b=r.readValue(),(I.trackBy||v?pa(a,b):a===b)||(s.$setViewValue(b),s.$render()))}var r=l[0],s=l[1],v=k.multiple,w;l=0;for(var p=h.children(),y=p.length;l<y;l++)if(""===p[l].value){w=p.eq(l);break}var t=!!w,z=B(e.cloneNode(!1));z.val("?");var u,I=c(k.ngOptions,h,d),E=b[0].createDocumentFragment();v?(s.$isEmpty=function(a){return!a||0===a.length},r.writeValue=function(a){u.items.forEach(function(a){a.element.selected=!1});a&&a.forEach(function(a){if(a=
1637 u.getOptionFromViewValue(a))a.element.selected=!0})},r.readValue=function(){var a=h.val()||[],b=[];q(a,function(a){(a=u.selectValueMap[a])&&!a.disabled&&b.push(u.getViewValueFromOption(a))});return b},I.trackBy&&d.$watchCollection(function(){if(K(s.$viewValue))return s.$viewValue.map(function(a){return I.getTrackByValue(a)})},function(){s.$render()})):(r.writeValue=function(a){var b=u.getOptionFromViewValue(a);b?(h[0].value!==b.selectValue&&(z.remove(),t||w.remove(),h[0].value=b.selectValue,b.element.selected=
1638 !0),b.element.setAttribute("selected","selected")):null===a||t?(z.remove(),t||h.prepend(w),h.val(""),w.prop("selected",!0),w.attr("selected",!0)):(t||w.remove(),h.prepend(z),h.val("?"),z.prop("selected",!0),z.attr("selected",!0))},r.readValue=function(){var a=u.selectValueMap[h.val()];return a&&!a.disabled?(t||w.remove(),z.remove(),u.getViewValueFromOption(a)):null},I.trackBy&&d.$watch(function(){return I.getTrackByValue(s.$viewValue)},function(){s.$render()}));t?(w.remove(),a(w)(d),w.removeClass("ng-scope")):
1639 w=B(e.cloneNode(!1));h.empty();m();d.$watchCollection(I.getWatchables,m)}}}}],He=["$locale","$interpolate","$log",function(a,b,d){var c=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(f,g,h){function k(a){g.text(a||"")}var l=h.count,n=h.$attr.when&&g.attr(h.$attr.when),m=h.offset||0,r=f.$eval(n)||{},s={},v=b.startSymbol(),w=b.endSymbol(),p=v+l+"-"+m+w,x=ea.noop,t;q(h,function(a,b){var c=e.exec(b);c&&(c=(c[1]?"-":"")+P(c[2]),r[c]=g.attr(h.$attr[b]))});q(r,function(a,d){s[d]=b(a.replace(c,p))});f.$watch(l,
1640 function(b){var c=parseFloat(b),e=isNaN(c);e||c in r||(c=a.pluralCat(c-m));c===t||e&&Q(t)&&isNaN(t)||(x(),e=s[c],y(e)?(null!=b&&d.debug("ngPluralize: no rule defined for '"+c+"' in "+n),x=C,k()):x=f.$watch(e,k),t=c)})}}}],Ie=["$parse","$animate","$compile",function(a,b,d){var c=O("ngRepeat"),e=function(a,b,c,d,e,n,m){a[c]=d;e&&(a[e]=n);a.$index=b;a.$first=0===b;a.$last=b===m-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=0===(b&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,
1641 terminal:!0,$$tlb:!0,compile:function(f,g){var h=g.ngRepeat,k=d.$$createComment("end ngRepeat",h),l=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!l)throw c("iexp",h);var n=l[1],m=l[2],r=l[3],s=l[4],l=n.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!l)throw c("iidexp",n);var v=l[3]||l[1],w=l[2];if(r&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(r)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(r)))throw c("badident",
1642 r);var p,y,t,z,u={$id:Fa};s?p=a(s):(t=function(a,b){return Fa(b)},z=function(a){return a});return function(a,d,f,g,l){p&&(y=function(b,c,d){w&&(u[w]=b);u[v]=c;u.$index=d;return p(a,u)});var n=T();a.$watchCollection(m,function(f){var g,m,p=d[0],s,u=T(),x,D,E,C,F,B,G;r&&(a[r]=f);if(ya(f))F=f,m=y||t;else for(G in m=y||z,F=[],f)ua.call(f,G)&&"$"!==G.charAt(0)&&F.push(G);x=F.length;G=Array(x);for(g=0;g<x;g++)if(D=f===F?g:F[g],E=f[D],C=m(D,E,g),n[C])B=n[C],delete n[C],u[C]=B,G[g]=B;else{if(u[C])throw q(G,
1643 function(a){a&&a.scope&&(n[a.id]=a)}),c("dupes",h,C,E);G[g]={id:C,scope:void 0,clone:void 0};u[C]=!0}for(s in n){B=n[s];C=rb(B.clone);b.leave(C);if(C[0].parentNode)for(g=0,m=C.length;g<m;g++)C[g].$$NG_REMOVED=!0;B.scope.$destroy()}for(g=0;g<x;g++)if(D=f===F?g:F[g],E=f[D],B=G[g],B.scope){s=p;do s=s.nextSibling;while(s&&s.$$NG_REMOVED);B.clone[0]!=s&&b.move(rb(B.clone),null,p);p=B.clone[B.clone.length-1];e(B.scope,g,v,E,w,D,x)}else l(function(a,c){B.scope=c;var d=k.cloneNode(!1);a[a.length++]=d;b.enter(a,
1644 null,p);p=d;B.clone=a;u[B.id]=B;e(B.scope,g,v,E,w,D,x)});n=u})}}}}],Je=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngShow,function(b){a[b?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],Ce=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngHide,function(b){a[b?"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],Ke=La(function(a,b,d){a.$watch(d.ngStyle,function(a,
1645 d){d&&a!==d&&q(d,function(a,c){b.css(c,"")});a&&b.css(a)},!0)}),Le=["$animate","$compile",function(a,b){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(d,c,e,f){var g=[],h=[],k=[],l=[],n=function(a,b){return function(){a.splice(b,1)}};d.$watch(e.ngSwitch||e.on,function(c){var d,e;d=0;for(e=k.length;d<e;++d)a.cancel(k[d]);d=k.length=0;for(e=l.length;d<e;++d){var s=rb(h[d].clone);l[d].$destroy();(k[d]=a.leave(s)).then(n(k,d))}h.length=0;l.length=0;(g=f.cases["!"+
1646 c]||f.cases["?"])&&q(g,function(c){c.transclude(function(d,e){l.push(e);var f=c.element;d[d.length++]=b.$$createComment("end ngSwitchWhen");h.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],Me=La({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){c.cases["!"+d.ngSwitchWhen]=c.cases["!"+d.ngSwitchWhen]||[];c.cases["!"+d.ngSwitchWhen].push({transclude:e,element:b})}}),Ne=La({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,
1647 b,d,c,e){c.cases["?"]=c.cases["?"]||[];c.cases["?"].push({transclude:e,element:b})}}),Qg=O("ngTransclude"),Pe=La({restrict:"EAC",link:function(a,b,d,c,e){d.ngTransclude===d.$attr.ngTransclude&&(d.ngTransclude="");if(!e)throw Qg("orphan",wa(b));e(function(a){a.length&&(b.empty(),b.append(a))},null,d.ngTransclude||d.ngTranscludeSlot)}}),pe=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,d){"text/ng-template"==d.type&&a.put(d.id,b[0].text)}}}],Rg={$setViewValue:C,$render:C},
1648 Sg=["$element","$scope",function(a,b){var d=this,c=new Ra;d.ngModelCtrl=Rg;d.unknownOption=B(v.document.createElement("option"));d.renderUnknownOption=function(b){b="? "+Fa(b)+" ?";d.unknownOption.val(b);a.prepend(d.unknownOption);a.val(b)};b.$on("$destroy",function(){d.renderUnknownOption=C});d.removeUnknownOption=function(){d.unknownOption.parent()&&d.unknownOption.remove()};d.readValue=function(){d.removeUnknownOption();return a.val()};d.writeValue=function(b){d.hasOption(b)?(d.removeUnknownOption(),
1649 a.val(b),""===b&&d.emptyOption.prop("selected",!0)):null==b&&d.emptyOption?(d.removeUnknownOption(),a.val("")):d.renderUnknownOption(b)};d.addOption=function(a,b){if(8!==b[0].nodeType){Qa(a,'"option value"');""===a&&(d.emptyOption=b);var g=c.get(a)||0;c.put(a,g+1);d.ngModelCtrl.$render();b[0].hasAttribute("selected")&&(b[0].selected=!0)}};d.removeOption=function(a){var b=c.get(a);b&&(1===b?(c.remove(a),""===a&&(d.emptyOption=void 0)):c.put(a,b-1))};d.hasOption=function(a){return!!c.get(a)};d.registerOption=
1650 function(a,b,c,h,k){if(h){var l;c.$observe("value",function(a){x(l)&&d.removeOption(l);l=a;d.addOption(a,b)})}else k?a.$watch(k,function(a,e){c.$set("value",a);e!==a&&d.removeOption(e);d.addOption(a,b)}):d.addOption(c.value,b);b.on("$destroy",function(){d.removeOption(c.value);d.ngModelCtrl.$render()})}}],qe=function(){return{restrict:"E",require:["select","?ngModel"],controller:Sg,priority:1,link:{pre:function(a,b,d,c){var e=c[1];if(e){var f=c[0];f.ngModelCtrl=e;b.on("change",function(){a.$apply(function(){e.$setViewValue(f.readValue())})});
1651 if(d.multiple){f.readValue=function(){var a=[];q(b.find("option"),function(b){b.selected&&a.push(b.value)});return a};f.writeValue=function(a){var c=new Ra(a);q(b.find("option"),function(a){a.selected=x(c.get(a.value))})};var g,h=NaN;a.$watch(function(){h!==e.$viewValue||pa(g,e.$viewValue)||(g=ha(e.$viewValue),e.$render());h=e.$viewValue});e.$isEmpty=function(a){return!a||0===a.length}}}},post:function(a,b,d,c){var e=c[1];if(e){var f=c[0];e.$render=function(){f.writeValue(e.$viewValue)}}}}}},se=["$interpolate",
1652 function(a){return{restrict:"E",priority:100,compile:function(b,d){if(x(d.value))var c=a(d.value,!0);else{var e=a(b.text(),!0);e||d.$set("value",b.text())}return function(a,b,d){var k=b.parent();(k=k.data("$selectController")||k.parent().data("$selectController"))&&k.registerOption(a,b,d,c,e)}}}}],re=da({restrict:"E",terminal:!1}),Fc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){c&&(d.required=!0,c.$validators.required=function(a,b){return!d.required||!c.$isEmpty(b)},d.$observe("required",
1653 function(){c.$validate()}))}}},Ec=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e,f=d.ngPattern||d.pattern;d.$observe("pattern",function(a){F(a)&&0<a.length&&(a=new RegExp("^"+a+"$"));if(a&&!a.test)throw O("ngPattern")("noregexp",f,a,wa(b));e=a||void 0;c.$validate()});c.$validators.pattern=function(a,b){return c.$isEmpty(b)||y(e)||e.test(b)}}}}},Hc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e=-1;d.$observe("maxlength",function(a){a=
1654 X(a);e=isNaN(a)?-1:a;c.$validate()});c.$validators.maxlength=function(a,b){return 0>e||c.$isEmpty(b)||b.length<=e}}}}},Gc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e=0;d.$observe("minlength",function(a){e=X(a)||0;c.$validate()});c.$validators.minlength=function(a,b){return c.$isEmpty(b)||b.length>=e}}}}};v.angular.bootstrap?v.console&&console.log("WARNING: Tried to load angular more than once."):(ie(),ke(ea),ea.module("ngLocale",[],["$provide",function(a){function b(a){a+=
1655 "";var b=a.indexOf(".");return-1==b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "),
1656 WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a,
1657 c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),B(v.document).ready(function(){ee(v.document,yc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
1350 (function(C){'use strict';function re(a){if(D(a))w(a.objectMaxDepth)&&(Wb.objectMaxDepth=Xb(a.objectMaxDepth)?a.objectMaxDepth:NaN),w(a.urlErrorParamsEnabled)&&Ga(a.urlErrorParamsEnabled)&&(Wb.urlErrorParamsEnabled=a.urlErrorParamsEnabled);else return Wb}function Xb(a){return W(a)&&0<a}function F(a,b){b=b||Error;return function(){var d=arguments[0],c;c="["+(a?a+":":"")+d+"] http://errors.angularjs.org/1.7.7/"+(a?a+"/":"")+d;for(d=1;d<arguments.length;d++){c=c+(1==d?"?":"&")+"p"+(d-1)+"=";var e=encodeURIComponent,
1351 f;f=arguments[d];f="function"==typeof f?f.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof f?"undefined":"string"!=typeof f?JSON.stringify(f):f;c+=e(f)}return new b(c)}}function ya(a){if(null==a||$a(a))return!1;if(H(a)||A(a)||x&&a instanceof x)return!0;var b="length"in Object(a)&&a.length;return W(b)&&(0<=b&&b-1 in a||"function"===typeof a.item)}function r(a,b,d){var c,e;if(a)if(B(a))for(c in a)"prototype"!==c&&"length"!==c&&"name"!==c&&a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else if(H(a)||
1352 ya(a)){var f="object"!==typeof a;c=0;for(e=a.length;c<e;c++)(f||c in a)&&b.call(d,a[c],c,a)}else if(a.forEach&&a.forEach!==r)a.forEach(b,d,a);else if(Nc(a))for(c in a)b.call(d,a[c],c,a);else if("function"===typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else for(c in a)ta.call(a,c)&&b.call(d,a[c],c,a);return a}function Oc(a,b,d){for(var c=Object.keys(a).sort(),e=0;e<c.length;e++)b.call(d,a[c[e]],c[e]);return c}function Yb(a){return function(b,d){a(d,b)}}function se(){return++pb}
1353 function Zb(a,b,d){for(var c=a.$$hashKey,e=0,f=b.length;e<f;++e){var g=b[e];if(D(g)||B(g))for(var k=Object.keys(g),h=0,l=k.length;h<l;h++){var m=k[h],p=g[m];d&&D(p)?ha(p)?a[m]=new Date(p.valueOf()):ab(p)?a[m]=new RegExp(p):p.nodeName?a[m]=p.cloneNode(!0):$b(p)?a[m]=p.clone():(D(a[m])||(a[m]=H(p)?[]:{}),Zb(a[m],[p],!0)):a[m]=p}}c?a.$$hashKey=c:delete a.$$hashKey;return a}function S(a){return Zb(a,Ha.call(arguments,1),!1)}function te(a){return Zb(a,Ha.call(arguments,1),!0)}function fa(a){return parseInt(a,
1354 10)}function ac(a,b){return S(Object.create(a),b)}function E(){}function Ta(a){return a}function ia(a){return function(){return a}}function bc(a){return B(a.toString)&&a.toString!==la}function z(a){return"undefined"===typeof a}function w(a){return"undefined"!==typeof a}function D(a){return null!==a&&"object"===typeof a}function Nc(a){return null!==a&&"object"===typeof a&&!Pc(a)}function A(a){return"string"===typeof a}function W(a){return"number"===typeof a}function ha(a){return"[object Date]"===la.call(a)}
1355 function H(a){return Array.isArray(a)||a instanceof Array}function cc(a){switch(la.call(a)){case "[object Error]":return!0;case "[object Exception]":return!0;case "[object DOMException]":return!0;default:return a instanceof Error}}function B(a){return"function"===typeof a}function ab(a){return"[object RegExp]"===la.call(a)}function $a(a){return a&&a.window===a}function bb(a){return a&&a.$evalAsync&&a.$watch}function Ga(a){return"boolean"===typeof a}function ue(a){return a&&W(a.length)&&ve.test(la.call(a))}
1356 function $b(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function we(a){var b={};a=a.split(",");var d;for(d=0;d<a.length;d++)b[a[d]]=!0;return b}function ua(a){return K(a.nodeName||a[0]&&a[0].nodeName)}function cb(a,b){var d=a.indexOf(b);0<=d&&a.splice(d,1);return d}function Ia(a,b,d){function c(a,b,c){c--;if(0>c)return"...";var d=b.$$hashKey,f;if(H(a)){f=0;for(var g=a.length;f<g;f++)b.push(e(a[f],c))}else if(Nc(a))for(f in a)b[f]=e(a[f],c);else if(a&&"function"===typeof a.hasOwnProperty)for(f in a)a.hasOwnProperty(f)&&
1357 (b[f]=e(a[f],c));else for(f in a)ta.call(a,f)&&(b[f]=e(a[f],c));d?b.$$hashKey=d:delete b.$$hashKey;return b}function e(a,b){if(!D(a))return a;var d=g.indexOf(a);if(-1!==d)return k[d];if($a(a)||bb(a))throw pa("cpws");var d=!1,e=f(a);void 0===e&&(e=H(a)?[]:Object.create(Pc(a)),d=!0);g.push(a);k.push(e);return d?c(a,e,b):e}function f(a){switch(la.call(a)){case "[object Int8Array]":case "[object Int16Array]":case "[object Int32Array]":case "[object Float32Array]":case "[object Float64Array]":case "[object Uint8Array]":case "[object Uint8ClampedArray]":case "[object Uint16Array]":case "[object Uint32Array]":return new a.constructor(e(a.buffer),
1358 a.byteOffset,a.length);case "[object ArrayBuffer]":if(!a.slice){var b=new ArrayBuffer(a.byteLength);(new Uint8Array(b)).set(new Uint8Array(a));return b}return a.slice(0);case "[object Boolean]":case "[object Number]":case "[object String]":case "[object Date]":return new a.constructor(a.valueOf());case "[object RegExp]":return b=new RegExp(a.source,a.toString().match(/[^/]*$/)[0]),b.lastIndex=a.lastIndex,b;case "[object Blob]":return new a.constructor([a],{type:a.type})}if(B(a.cloneNode))return a.cloneNode(!0)}
1359 var g=[],k=[];d=Xb(d)?d:NaN;if(b){if(ue(b)||"[object ArrayBuffer]"===la.call(b))throw pa("cpta");if(a===b)throw pa("cpi");H(b)?b.length=0:r(b,function(a,c){"$$hashKey"!==c&&delete b[c]});g.push(a);k.push(b);return c(a,b,d)}return e(a,d)}function dc(a,b){return a===b||a!==a&&b!==b}function va(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var d=typeof a,c;if(d===typeof b&&"object"===d)if(H(a)){if(!H(b))return!1;if((d=a.length)===b.length){for(c=0;c<d;c++)if(!va(a[c],
1360 b[c]))return!1;return!0}}else{if(ha(a))return ha(b)?dc(a.getTime(),b.getTime()):!1;if(ab(a))return ab(b)?a.toString()===b.toString():!1;if(bb(a)||bb(b)||$a(a)||$a(b)||H(b)||ha(b)||ab(b))return!1;d=T();for(c in a)if("$"!==c.charAt(0)&&!B(a[c])){if(!va(a[c],b[c]))return!1;d[c]=!0}for(c in b)if(!(c in d)&&"$"!==c.charAt(0)&&w(b[c])&&!B(b[c]))return!1;return!0}return!1}function db(a,b,d){return a.concat(Ha.call(b,d))}function Va(a,b){var d=2<arguments.length?Ha.call(arguments,2):[];return!B(b)||b instanceof
1361 RegExp?b:d.length?function(){return arguments.length?b.apply(a,db(d,arguments,0)):b.apply(a,d)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function Qc(a,b){var d=b;"string"===typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?d=void 0:$a(b)?d="$WINDOW":b&&C.document===b?d="$DOCUMENT":bb(b)&&(d="$SCOPE");return d}function eb(a,b){if(!z(a))return W(b)||(b=b?2:null),JSON.stringify(a,Qc,b)}function Rc(a){return A(a)?JSON.parse(a):a}function ec(a,b){a=a.replace(xe,"");var d=Date.parse("Jan 01, 1970 00:00:00 "+
1362 a)/6E4;return X(d)?b:d}function Sc(a,b){a=new Date(a.getTime());a.setMinutes(a.getMinutes()+b);return a}function fc(a,b,d){d=d?-1:1;var c=a.getTimezoneOffset();b=ec(b,c);return Sc(a,d*(b-c))}function za(a){a=x(a).clone().empty();var b=x("<div></div>").append(a).html();try{return a[0].nodeType===Pa?K(b):b.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(b)}}function Tc(a){try{return decodeURIComponent(a)}catch(b){}}function gc(a){var b={};r((a||"").split("&"),
1363 function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=Tc(e),w(e)&&(f=w(f)?Tc(f):!0,ta.call(b,e)?H(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function ye(a){var b=[];r(a,function(a,c){H(a)?r(a,function(a){b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))}):b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))});return b.length?b.join("&"):""}function hc(a){return ba(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ba(a,
1364 b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function ze(a,b){var d,c,e=Qa.length;for(c=0;c<e;++c)if(d=Qa[c]+b,A(d=a.getAttribute(d)))return d;return null}function Ae(a,b){var d,c,e={};r(Qa,function(b){b+="app";!d&&a.hasAttribute&&a.hasAttribute(b)&&(d=a,c=a.getAttribute(b))});r(Qa,function(b){b+="app";var e;!d&&(e=a.querySelector("["+b.replace(":","\\:")+"]"))&&(d=e,c=e.getAttribute(b))});
1365 d&&(Be?(e.strictDi=null!==ze(d,"strict-di"),b(d,c?[c]:[],e)):C.console.error("AngularJS: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match."))}function Uc(a,b,d){D(d)||(d={});d=S({strictDi:!1},d);var c=function(){a=x(a);if(a.injector()){var c=a[0]===C.document?"document":za(a);throw pa("btstrpd",c.replace(/</,"&lt;").replace(/>/,"&gt;"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",
1366 function(a){a.debugInfoEnabled(!0)}]);b.unshift("ng");c=fb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;C&&e.test(C.name)&&(d.debugInfoEnabled=!0,C.name=C.name.replace(e,""));if(C&&!f.test(C.name))return c();C.name=C.name.replace(f,"");ca.resumeBootstrap=function(a){r(a,function(a){b.push(a)});return c()};B(ca.resumeDeferredBootstrap)&&
1367 ca.resumeDeferredBootstrap()}function Ce(){C.name="NG_ENABLE_DEBUG_INFO!"+C.name;C.location.reload()}function De(a){a=ca.element(a).injector();if(!a)throw pa("test");return a.get("$$testability")}function Vc(a,b){b=b||"_";return a.replace(Ee,function(a,c){return(c?b:"")+a.toLowerCase()})}function Fe(){var a;if(!Wc){var b=qb();(rb=z(b)?C.jQuery:b?C[b]:void 0)&&rb.fn.on?(x=rb,S(rb.fn,{scope:Wa.scope,isolateScope:Wa.isolateScope,controller:Wa.controller,injector:Wa.injector,inheritedData:Wa.inheritedData})):
1368 x=Y;a=x.cleanData;x.cleanData=function(b){for(var c,e=0,f;null!=(f=b[e]);e++)(c=(x._data(f)||{}).events)&&c.$destroy&&x(f).triggerHandler("$destroy");a(b)};ca.element=x;Wc=!0}}function gb(a,b,d){if(!a)throw pa("areq",b||"?",d||"required");return a}function sb(a,b,d){d&&H(a)&&(a=a[a.length-1]);gb(B(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Ja(a,b){if("hasOwnProperty"===a)throw pa("badname",b);}function Ge(a,b,d){if(!b)return a;b=b.split(".");
1369 for(var c,e=a,f=b.length,g=0;g<f;g++)c=b[g],a&&(a=(e=a)[c]);return!d&&B(a)?Va(e,a):a}function tb(a){for(var b=a[0],d=a[a.length-1],c,e=1;b!==d&&(b=b.nextSibling);e++)if(c||a[e]!==b)c||(c=x(Ha.call(a,0,e))),c.push(b);return c||a}function T(){return Object.create(null)}function ic(a){if(null==a)return"";switch(typeof a){case "string":break;case "number":a=""+a;break;default:a=!bc(a)||H(a)||ha(a)?eb(a):a.toString()}return a}function He(a){function b(a,b,c){return a[b]||(a[b]=c())}var d=F("$injector"),
1370 c=F("ng");a=b(a,"angular",Object);a.$$minErr=a.$$minErr||F;return b(a,"module",function(){var a={};return function(f,g,k){var h={};if("hasOwnProperty"===f)throw c("badname","module");g&&a.hasOwnProperty(f)&&(a[f]=null);return b(a,f,function(){function a(b,c,d,f){f||(f=e);return function(){f[d||"push"]([b,c,arguments]);return t}}function b(a,c,d){d||(d=e);return function(b,e){e&&B(e)&&(e.$$moduleName=f);d.push([a,c,arguments]);return t}}if(!g)throw d("nomod",f);var e=[],n=[],s=[],G=a("$injector","invoke",
1371 "push",n),t={_invokeQueue:e,_configBlocks:n,_runBlocks:s,info:function(a){if(w(a)){if(!D(a))throw c("aobj","value");h=a;return this}return h},requires:g,name:f,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),decorator:b("$provide","decorator",n),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider",
1372 "directive"),component:b("$compileProvider","component"),config:G,run:function(a){s.push(a);return this}};k&&G(k);return t})}})}function ja(a,b){if(H(a)){b=b||[];for(var d=0,c=a.length;d<c;d++)b[d]=a[d]}else if(D(a))for(d in b=b||{},a)if("$"!==d.charAt(0)||"$"!==d.charAt(1))b[d]=a[d];return b||a}function Ie(a,b){var d=[];Xb(b)&&(a=ca.copy(a,null,b));return JSON.stringify(a,function(a,b){b=Qc(a,b);if(D(b)){if(0<=d.indexOf(b))return"...";d.push(b)}return b})}function Je(a){S(a,{errorHandlingConfig:re,
1373 bootstrap:Uc,copy:Ia,extend:S,merge:te,equals:va,element:x,forEach:r,injector:fb,noop:E,bind:Va,toJson:eb,fromJson:Rc,identity:Ta,isUndefined:z,isDefined:w,isString:A,isFunction:B,isObject:D,isNumber:W,isElement:$b,isArray:H,version:Ke,isDate:ha,callbacks:{$$counter:0},getTestability:De,reloadWithDebugInfo:Ce,$$minErr:F,$$csp:Aa,$$encodeUriSegment:hc,$$encodeUriQuery:ba,$$lowercase:K,$$stringify:ic,$$uppercase:ub});kc=He(C);kc("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:Le});
1374 a.provider("$compile",Xc).directive({a:Me,input:Yc,textarea:Yc,form:Ne,script:Oe,select:Pe,option:Qe,ngBind:Re,ngBindHtml:Se,ngBindTemplate:Te,ngClass:Ue,ngClassEven:Ve,ngClassOdd:We,ngCloak:Xe,ngController:Ye,ngForm:Ze,ngHide:$e,ngIf:af,ngInclude:bf,ngInit:cf,ngNonBindable:df,ngPluralize:ef,ngRef:ff,ngRepeat:gf,ngShow:hf,ngStyle:jf,ngSwitch:kf,ngSwitchWhen:lf,ngSwitchDefault:mf,ngOptions:nf,ngTransclude:of,ngModel:pf,ngList:qf,ngChange:rf,pattern:Zc,ngPattern:Zc,required:$c,ngRequired:$c,minlength:ad,
1375 ngMinlength:ad,maxlength:bd,ngMaxlength:bd,ngValue:sf,ngModelOptions:tf}).directive({ngInclude:uf,input:vf}).directive(vb).directive(cd);a.provider({$anchorScroll:wf,$animate:xf,$animateCss:yf,$$animateJs:zf,$$animateQueue:Af,$$AnimateRunner:Bf,$$animateAsyncRun:Cf,$browser:Df,$cacheFactory:Ef,$controller:Ff,$document:Gf,$$isDocumentHidden:Hf,$exceptionHandler:If,$filter:dd,$$forceReflow:Jf,$interpolate:Kf,$interval:Lf,$$intervalFactory:Mf,$http:Nf,$httpParamSerializer:Of,$httpParamSerializerJQLike:Pf,
1376 $httpBackend:Qf,$xhrFactory:Rf,$jsonpCallbacks:Sf,$location:Tf,$log:Uf,$parse:Vf,$rootScope:Wf,$q:Xf,$$q:Yf,$sce:Zf,$sceDelegate:$f,$sniffer:ag,$$taskTrackerFactory:bg,$templateCache:cg,$templateRequest:dg,$$testability:eg,$timeout:fg,$window:gg,$$rAF:hg,$$jqLite:ig,$$Map:jg,$$cookieReader:kg})}]).info({angularVersion:"1.7.7"})}function wb(a,b){return b.toUpperCase()}function xb(a){return a.replace(lg,wb)}function lc(a){a=a.nodeType;return 1===a||!a||9===a}function ed(a,b){var d,c,e=b.createDocumentFragment(),
1377 f=[];if(mc.test(a)){d=e.appendChild(b.createElement("div"));c=(mg.exec(a)||["",""])[1].toLowerCase();c=oa[c]||oa._default;d.innerHTML=c[1]+a.replace(ng,"<$1></$2>")+c[2];for(c=c[0];c--;)d=d.lastChild;f=db(f,d.childNodes);d=e.firstChild;d.textContent=""}else f.push(b.createTextNode(a));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)});return e}function Y(a){if(a instanceof Y)return a;var b;A(a)&&(a=U(a),b=!0);if(!(this instanceof Y)){if(b&&"<"!==a.charAt(0))throw nc("nosel");return new Y(a)}if(b){b=
1378 C.document;var d;a=(d=og.exec(a))?[b.createElement(d[1])]:(d=ed(a,b))?d.childNodes:[];oc(this,a)}else B(a)?fd(a):oc(this,a)}function pc(a){return a.cloneNode(!0)}function yb(a,b){!b&&lc(a)&&x.cleanData([a]);a.querySelectorAll&&x.cleanData(a.querySelectorAll("*"))}function gd(a){for(var b in a)return!1;return!0}function hd(a){var b=a.ng339,d=b&&Ka[b],c=d&&d.events,d=d&&d.data;d&&!gd(d)||c&&!gd(c)||(delete Ka[b],a.ng339=void 0)}function id(a,b,d,c){if(w(c))throw nc("offargs");var e=(c=zb(a))&&c.events,
1379 f=c&&c.handle;if(f){if(b){var g=function(b){var c=e[b];w(d)&&cb(c||[],d);w(d)&&c&&0<c.length||(a.removeEventListener(b,f),delete e[b])};r(b.split(" "),function(a){g(a);Ab[a]&&g(Ab[a])})}else for(b in e)"$destroy"!==b&&a.removeEventListener(b,f),delete e[b];hd(a)}}function qc(a,b){var d=a.ng339;if(d=d&&Ka[d])b?delete d.data[b]:d.data={},hd(a)}function zb(a,b){var d=a.ng339,d=d&&Ka[d];b&&!d&&(a.ng339=d=++pg,d=Ka[d]={events:{},data:{},handle:void 0});return d}function rc(a,b,d){if(lc(a)){var c,e=w(d),
1380 f=!e&&b&&!D(b),g=!b;a=(a=zb(a,!f))&&a.data;if(e)a[xb(b)]=d;else{if(g)return a;if(f)return a&&a[xb(b)];for(c in b)a[xb(c)]=b[c]}}}function Bb(a,b){return a.getAttribute?-1<(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" "):!1}function Cb(a,b){if(b&&a.setAttribute){var d=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),c=d;r(b.split(" "),function(a){a=U(a);c=c.replace(" "+a+" "," ")});c!==d&&a.setAttribute("class",U(c))}}function Db(a,b){if(b&&a.setAttribute){var d=
1381 (" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),c=d;r(b.split(" "),function(a){a=U(a);-1===c.indexOf(" "+a+" ")&&(c+=a+" ")});c!==d&&a.setAttribute("class",U(c))}}function oc(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var d=b.length;if("number"===typeof d&&b.window!==b){if(d)for(var c=0;c<d;c++)a[a.length++]=b[c]}else a[a.length++]=b}}function jd(a,b){return Eb(a,"$"+(b||"ngController")+"Controller")}function Eb(a,b,d){9===a.nodeType&&(a=a.documentElement);for(b=H(b)?b:[b];a;){for(var c=
1382 0,e=b.length;c<e;c++)if(w(d=x.data(a,b[c])))return d;a=a.parentNode||11===a.nodeType&&a.host}}function kd(a){for(yb(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Fb(a,b){b||yb(a);var d=a.parentNode;d&&d.removeChild(a)}function qg(a,b){b=b||C;if("complete"===b.document.readyState)b.setTimeout(a);else x(b).on("load",a)}function fd(a){function b(){C.document.removeEventListener("DOMContentLoaded",b);C.removeEventListener("load",b);a()}"complete"===C.document.readyState?C.setTimeout(a):(C.document.addEventListener("DOMContentLoaded",
1383 b),C.addEventListener("load",b))}function ld(a,b){var d=Gb[b.toLowerCase()];return d&&md[ua(a)]&&d}function rg(a,b){var d=function(c,d){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=b[d||c.type],g=f?f.length:0;if(g){if(z(c.immediatePropagationStopped)){var k=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();k&&k.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};
1384 var h=f.specialHandlerWrapper||sg;1<g&&(f=ja(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||h(a,c,f[l])}};d.elem=a;return d}function sg(a,b,d){d.call(a,b)}function tg(a,b,d){var c=b.relatedTarget;c&&(c===a||ug.call(a,c))||d.call(a,b)}function ig(){this.$get=function(){return S(Y,{hasClass:function(a,b){a.attr&&(a=a[0]);return Bb(a,b)},addClass:function(a,b){a.attr&&(a=a[0]);return Db(a,b)},removeClass:function(a,b){a.attr&&(a=a[0]);return Cb(a,b)}})}}function La(a,b){var d=a&&a.$$hashKey;
1385 if(d)return"function"===typeof d&&(d=a.$$hashKey()),d;d=typeof a;return d="function"===d||"object"===d&&null!==a?a.$$hashKey=d+":"+(b||se)():d+":"+a}function nd(){this._keys=[];this._values=[];this._lastKey=NaN;this._lastIndex=-1}function od(a){a=Function.prototype.toString.call(a).replace(vg,"");return a.match(wg)||a.match(xg)}function yg(a){return(a=od(a))?"function("+(a[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function fb(a,b){function d(a){return function(b,c){if(D(b))r(b,Yb(a));else return a(b,
1386 c)}}function c(a,b){Ja(a,"service");if(B(b)||H(b))b=n.instantiate(b);if(!b.$get)throw Ba("pget",a);return p[a+"Provider"]=b}function e(a,b){return function(){var c=t.invoke(b,this);if(z(c))throw Ba("undef",a);return c}}function f(a,b,d){return c(a,{$get:!1!==d?e(a,b):b})}function g(a){gb(z(a)||H(a),"modulesToLoad","not an array");var b=[],c;r(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=n.get(e[0]);f[e[1]].apply(f,e[2])}}if(!m.get(a)){m.set(a,!0);try{A(a)?(c=kc(a),
1387 t.modules[a]=c,b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):B(a)?b.push(n.invoke(a)):H(a)?b.push(n.invoke(a)):sb(a,"module")}catch(e){throw H(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1===e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ba("modulerr",a,e.stack||e.message||e);}}});return b}function k(a,c){function d(b,e){if(a.hasOwnProperty(b)){if(a[b]===h)throw Ba("cdep",b+" <- "+l.join(" <- "));return a[b]}try{return l.unshift(b),a[b]=h,a[b]=c(b,e),
1388 a[b]}catch(f){throw a[b]===h&&delete a[b],f;}finally{l.shift()}}function e(a,c,f){var g=[];a=fb.$$annotate(a,b,f);for(var h=0,k=a.length;h<k;h++){var l=a[h];if("string"!==typeof l)throw Ba("itkn",l);g.push(c&&c.hasOwnProperty(l)?c[l]:d(l,f))}return g}return{invoke:function(a,b,c,d){"string"===typeof c&&(d=c,c=null);c=e(a,c,d);H(a)&&(a=a[a.length-1]);d=a;if(Ca||"function"!==typeof d)d=!1;else{var f=d.$$ngIsClass;Ga(f)||(f=d.$$ngIsClass=/^class\b/.test(Function.prototype.toString.call(d)));d=f}return d?
1389 (c.unshift(null),new (Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d=H(a)?a[a.length-1]:a;a=e(a,b,c);a.unshift(null);return new (Function.prototype.bind.apply(d,a))},get:d,annotate:fb.$$annotate,has:function(b){return p.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var h={},l=[],m=new Hb,p={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,
1390 ia(b),!1)}),constant:d(function(a,b){Ja(a,"constant");p[a]=b;s[a]=b}),decorator:function(a,b){var c=n.get(a+"Provider"),d=c.$get;c.$get=function(){var a=t.invoke(d,c);return t.invoke(b,null,{$delegate:a})}}}},n=p.$injector=k(p,function(a,b){ca.isString(b)&&l.push(b);throw Ba("unpr",l.join(" <- "));}),s={},G=k(s,function(a,b){var c=n.get(a+"Provider",b);return t.invoke(c.$get,c,void 0,a)}),t=G;p.$injectorProvider={$get:ia(G)};t.modules=n.modules=T();var N=g(a),t=G.get("$injector");t.strictDi=b;r(N,
1391 function(a){a&&t.invoke(a)});t.loadNewModules=function(a){r(g(a),function(a){a&&t.invoke(a)})};return t}function wf(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===ua(a))return b=a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;B(c)?c=c():$b(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):W(c)||
1392 (c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=A(a)?a:W(a)?a.toString():d.hash();var b;a?(b=k.getElementById(a))?f(b):(b=e(k.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var k=b.document;a&&c.$watch(function(){return d.hash()},function(a,b){a===b&&""===a||qg(function(){c.$evalAsync(g)})});return g}]}function hb(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;H(a)&&(a=a.join(" "));H(b)&&(b=b.join(" "));return a+" "+b}function zg(a){A(a)&&
1393 (a=a.split(" "));var b=T();r(a,function(a){a.length&&(b[a]=!0)});return b}function ra(a){return D(a)?a:{}}function Ag(a,b,d,c,e){function f(){qa=null;k()}function g(){t=y();t=z(t)?null:t;va(t,P)&&(t=P);N=P=t}function k(){var a=N;g();if(v!==h.url()||a!==t)v=h.url(),N=t,r(J,function(a){a(h.url(),t)})}var h=this,l=a.location,m=a.history,p=a.setTimeout,n=a.clearTimeout,s={},G=e(d);h.isMock=!1;h.$$completeOutstandingRequest=G.completeTask;h.$$incOutstandingRequestCount=G.incTaskCount;h.notifyWhenNoOutstandingRequests=
1394 G.notifyWhenNoPendingTasks;var t,N,v=l.href,jc=b.find("base"),qa=null,y=c.history?function(){try{return m.state}catch(a){}}:E;g();h.url=function(b,d,e){z(e)&&(e=null);l!==a.location&&(l=a.location);m!==a.history&&(m=a.history);if(b){var f=N===e;b=ga(b).href;if(v===b&&(!c.history||f))return h;var k=v&&Da(v)===Da(b);v=b;N=e;!c.history||k&&f?(k||(qa=b),d?l.replace(b):k?(d=l,e=b,f=e.indexOf("#"),e=-1===f?"":e.substr(f),d.hash=e):l.href=b,l.href!==b&&(qa=b)):(m[d?"replaceState":"pushState"](e,"",b),g());
1395 qa&&(qa=b);return h}return(qa||l.href).replace(/#$/,"")};h.state=function(){return t};var J=[],I=!1,P=null;h.onUrlChange=function(b){if(!I){if(c.history)x(a).on("popstate",f);x(a).on("hashchange",f);I=!0}J.push(b);return b};h.$$applicationDestroyed=function(){x(a).off("hashchange popstate",f)};h.$$checkUrlChange=k;h.baseHref=function(){var a=jc.attr("href");return a?a.replace(/^(https?:)?\/\/[^/]*/,""):""};h.defer=function(a,b,c){var d;b=b||0;c=c||G.DEFAULT_TASK_TYPE;G.incTaskCount(c);d=p(function(){delete s[d];
1396 G.completeTask(a,c)},b);s[d]=c;return d};h.defer.cancel=function(a){if(s.hasOwnProperty(a)){var b=s[a];delete s[a];n(a);G.completeTask(E,b);return!0}return!1}}function Df(){this.$get=["$window","$log","$sniffer","$document","$$taskTrackerFactory",function(a,b,d,c,e){return new Ag(a,c,b,d,e)}]}function Ef(){this.$get=function(){function a(a,c){function e(a){a!==p&&(n?n===a&&(n=a.n):n=a,f(a.n,a.p),f(a,p),p=a,p.n=null)}function f(a,b){a!==b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw F("$cacheFactory")("iid",
1397 a);var g=0,k=S({},c,{id:a}),h=T(),l=c&&c.capacity||Number.MAX_VALUE,m=T(),p=null,n=null;return b[a]={put:function(a,b){if(!z(b)){if(l<Number.MAX_VALUE){var c=m[a]||(m[a]={key:a});e(c)}a in h||g++;h[a]=b;g>l&&this.remove(n.key);return b}},get:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;e(b)}return h[a]},remove:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;b===p&&(p=b.p);b===n&&(n=b.n);f(b.n,b.p);delete m[a]}a in h&&(delete h[a],g--)},removeAll:function(){h=T();g=0;m=T();
1398 p=n=null},destroy:function(){m=k=h=null;delete b[a]},info:function(){return S({},k,{size:g})}}}var b={};a.info=function(){var a={};r(b,function(b,e){a[e]=b.info()});return a};a.get=function(a){return b[a]};return a}}function cg(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function Xc(a,b){function d(a,b,c){var d=/^([@&]|[=<](\*?))(\??)\s*([\w$]*)$/,e=T();r(a,function(a,f){a=a.trim();if(a in p)e[f]=p[a];else{var g=a.match(d);if(!g)throw $("iscp",b,f,a,c?"controller bindings definition":
1399 "isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f};g[4]&&(p[a]=e[f])}});return e}function c(a){var b=a.charAt(0);if(!b||b!==K(b))throw $("baddir",a);if(a!==a.trim())throw $("baddir",a);}function e(a){var b=a.require||a.controller&&a.name;!H(b)&&D(b)&&r(b,function(a,c){var d=a.match(l);a.substring(d[0].length)||(b[c]=d[0]+c)});return b}var f={},g=/^\s*directive:\s*([\w-]+)\s+(.*)$/,k=/(([\w-]+)(?::([^;]+))?;?)/,h=we("ngSrc,ngSrcset,src,srcset"),
1400 l=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,m=/^(on[a-z]+|formaction)$/,p=T();this.directive=function qa(b,d){gb(b,"name");Ja(b,"directive");A(b)?(c(b),gb(d,"directiveFactory"),f.hasOwnProperty(b)||(f[b]=[],a.factory(b+"Directive",["$injector","$exceptionHandler",function(a,c){var d=[];r(f[b],function(f,g){try{var h=a.invoke(f);B(h)?h={compile:ia(h)}:!h.compile&&h.link&&(h.compile=ia(h.link));h.priority=h.priority||0;h.index=g;h.name=h.name||b;h.require=e(h);var k=h,l=h.restrict;if(l&&(!A(l)||!/[EACM]/.test(l)))throw $("badrestrict",
1401 l,b);k.restrict=l||"EA";h.$$moduleName=f.$$moduleName;d.push(h)}catch(m){c(m)}});return d}])),f[b].push(d)):r(b,Yb(qa));return this};this.component=function y(a,b){function c(a){function e(b){return B(b)||H(b)?function(c,d){return a.invoke(b,this,{$element:c,$attrs:d})}:b}var f=b.template||b.templateUrl?b.template:"",g={controller:d,controllerAs:Bg(b.controller)||b.controllerAs||"$ctrl",template:e(f),templateUrl:e(b.templateUrl),transclude:b.transclude,scope:{},bindToController:b.bindings||{},restrict:"E",
1402 require:b.require};r(b,function(a,b){"$"===b.charAt(0)&&(g[b]=a)});return g}if(!A(a))return r(a,Yb(Va(this,y))),this;var d=b.controller||function(){};r(b,function(a,b){"$"===b.charAt(0)&&(c[b]=a,B(d)&&(d[b]=a))});c.$inject=["$injector"];return this.directive(a,c)};this.aHrefSanitizationWhitelist=function(a){return w(a)?(b.aHrefSanitizationWhitelist(a),this):b.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(a){return w(a)?(b.imgSrcSanitizationWhitelist(a),this):b.imgSrcSanitizationWhitelist()};
1403 var n=!0;this.debugInfoEnabled=function(a){return w(a)?(n=a,this):n};var s=!1;this.strictComponentBindingsEnabled=function(a){return w(a)?(s=a,this):s};var G=10;this.onChangesTtl=function(a){return arguments.length?(G=a,this):G};var t=!0;this.commentDirectivesEnabled=function(a){return arguments.length?(t=a,this):t};var N=!0;this.cssClassDirectivesEnabled=function(a){return arguments.length?(N=a,this):N};var v=T();this.addPropertySecurityContext=function(a,b,c){var d=a.toLowerCase()+"|"+b.toLowerCase();
1404 if(d in v&&v[d]!==c)throw $("ctxoverride",a,b,v[d],c);v[d]=c;return this};(function(){function a(b,c){r(c,function(a){v[a.toLowerCase()]=b})}a(V.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]);a(V.CSS,["*|style"]);a(V.URL,"area|href area|ping a|href a|ping blockquote|cite body|background del|cite input|src ins|cite q|cite".split(" "));a(V.MEDIA_URL,"audio|src img|src img|srcset source|src source|srcset track|src video|src video|poster".split(" "));a(V.RESOURCE_URL,"*|formAction applet|code applet|codebase base|href embed|src frame|src form|action head|profile html|manifest iframe|src link|href media|src object|codebase object|data script|src".split(" "))})();
1405 this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate",function(a,b,c,e,p,M,L,u,R){function q(){try{if(!--Ja)throw Ua=void 0,$("infchng",G);L.$apply(function(){for(var a=0,b=Ua.length;a<b;++a)try{Ua[a]()}catch(d){c(d)}Ua=void 0})}finally{Ja++}}function ma(a,b){if(!a)return a;if(!A(a))throw $("srcset",b,a.toString());for(var c="",d=U(a),e=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,e=/\s/.test(d)?e:/(,)/,d=d.split(e),e=Math.floor(d.length/
1406 2),f=0;f<e;f++)var g=2*f,c=c+u.getTrustedMediaUrl(U(d[g])),c=c+(" "+U(d[g+1]));d=U(d[2*f]).split(/\s/);c+=u.getTrustedMediaUrl(U(d[0]));2===d.length&&(c+=" "+U(d[1]));return c}function w(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a}function O(a,b,c){Fa.innerHTML="<span "+b+">";b=Fa.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function sa(a,b){try{a.addClass(b)}catch(c){}}
1407 function da(a,b,c,d,e){a instanceof x||(a=x(a));var f=Xa(a,b,a,c,d,e);da.$$addScopeClass(a);var g=null;return function(b,c,d){if(!a)throw $("multilink");gb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var h=d.parentBoundTranscludeFn,k=d.transcludeControllers;d=d.futureParentElement;h&&h.$$boundTransclude&&(h=h.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==ua(d)&&la.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==g?x(ja(g,x("<div></div>").append(a).html())):c?Wa.clone.call(a):
1408 a;if(k)for(var l in k)d.data("$"+l+"Controller",k[l].instance);da.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,h);c||(a=f=null);return d}}function Xa(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,p,I,t;if(n)for(t=Array(c.length),m=0;m<h.length;m+=3)f=h[m],t[f]=c[f];else t=c;m=0;for(p=h.length;m<p;)k=t[h[m++]],c=h[m++],f=h[m++],c?(c.scope?(l=a.$new(),da.$$addScopeInfo(x(k),l)):l=a,I=c.transcludeOnThisElement?ka(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?ka(a,b):null,c(f,l,k,d,I)):f&&f(a,k.childNodes,
1409 void 0,e)}for(var h=[],k=H(a)||a instanceof x,l,m,p,I,n,t=0;t<a.length;t++){l=new w;11===Ca&&ib(a,t,k);m=sc(a[t],[],l,0===t?d:void 0,e);(f=m.length?aa(m,a[t],l,b,c,null,[],[],f):null)&&f.scope&&da.$$addScopeClass(l.$$element);l=f&&f.terminal||!(p=a[t].childNodes)||!p.length?null:Xa(p,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||l)h.push(t,f,l),I=!0,n=n||f;f=null}return I?g:null}function ib(a,b,c){var d=a[b],e=d.parentNode,f;if(d.nodeType===Pa)for(;;){f=e?d.nextSibling:
1410 a[b+1];if(!f||f.nodeType!==Pa)break;d.nodeValue+=f.nodeValue;f.parentNode&&f.parentNode.removeChild(f);c&&f===a[b+1]&&a.splice(b+1,1)}}function ka(a,b,c){function d(e,f,g,h,k){e||(e=a.$new(!1,k),e.$$transcluded=!0);return b(e,f,{parentBoundTranscludeFn:c,transcludeControllers:g,futureParentElement:h})}var e=d.$$slots=T(),f;for(f in b.$$slots)e[f]=b.$$slots[f]?ka(a,b.$$slots[f],c):null;return d}function sc(a,b,d,e,f){var g=d.$attr,h;switch(a.nodeType){case 1:h=ua(a);X(b,wa(h),"E",e,f);for(var l,m,
1411 n,t,J,s=a.attributes,v=0,G=s&&s.length;v<G;v++){var P=!1,N=!1,r=!1,y=!1,u=!1,M;l=s[v];m=l.name;t=l.value;n=wa(m.toLowerCase());(J=n.match(Ra))?(r="Attr"===J[1],y="Prop"===J[1],u="On"===J[1],m=m.replace(pd,"").toLowerCase().substr(4+J[1].length).replace(/_(.)/g,function(a,b){return b.toUpperCase()})):(M=n.match(Sa))&&ca(M[1])&&(P=m,N=m.substr(0,m.length-5)+"end",m=m.substr(0,m.length-6));if(y||u)d[n]=t,g[n]=l.name,y?Ea(a,b,n,m):b.push(qd(p,L,c,n,m,!1));else{n=wa(m.toLowerCase());g[n]=m;if(r||!d.hasOwnProperty(n))d[n]=
1412 t,ld(a,n)&&(d[n]=!0);Ia(a,b,t,n,r);X(b,n,"A",e,f,P,N)}}"input"===h&&"hidden"===a.getAttribute("type")&&a.setAttribute("autocomplete","off");if(!Qa)break;g=a.className;D(g)&&(g=g.animVal);if(A(g)&&""!==g)for(;a=k.exec(g);)n=wa(a[2]),X(b,n,"C",e,f)&&(d[n]=U(a[3])),g=g.substr(a.index+a[0].length);break;case Pa:na(b,a.nodeValue);break;case 8:if(!Oa)break;F(a,b,d,e,f)}b.sort(ia);return b}function F(a,b,c,d,e){try{var f=g.exec(a.nodeValue);if(f){var h=wa(f[1]);X(b,h,"M",d,e)&&(c[h]=U(f[2]))}}catch(k){}}
1413 function V(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw $("uterdir",b,c);1===a.nodeType&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return x(d)}function Y(a,b,c){return function(d,e,f,g,h){e=V(e[0],b,c);return a(d,e,f,g,h)}}function Z(a,b,c,d,e,f){var g;return a?da(b,c,d,e,f):function(){g||(g=da(b,c,d,e,f),b=c=f=null);return g.apply(this,arguments)}}function aa(a,b,d,e,f,g,h,k,l){function m(a,b,c,d){if(a){c&&(a=
1414 Y(a,c,d));a.require=u.require;a.directiveName=Q;if(s===u||u.$$isolateScope)a=Aa(a,{isolateScope:!0});h.push(a)}if(b){c&&(b=Y(b,c,d));b.require=u.require;b.directiveName=Q;if(s===u||u.$$isolateScope)b=Aa(b,{isolateScope:!0});k.push(b)}}function p(a,e,f,g,l){function m(a,b,c,d){var e;bb(a)||(d=c,c=b,b=a,a=void 0);N&&(e=P);c||(c=N?Q.parent():Q);if(d){var f=l.$$slots[d];if(f)return f(a,b,e,c,R);if(z(f))throw $("noslot",d,za(Q));}else return l(a,b,e,c,R)}var n,u,L,y,G,P,M,Q;b===f?(g=d,Q=d.$$element):(Q=
1415 x(f),g=new w(Q,d));G=e;s?y=e.$new(!0):t&&(G=e.$parent);l&&(M=m,M.$$boundTransclude=l,M.isSlotFilled=function(a){return!!l.$$slots[a]});J&&(P=ea(Q,g,M,J,y,e,s));s&&(da.$$addScopeInfo(Q,y,!0,!(v&&(v===s||v===s.$$originalDirective))),da.$$addScopeClass(Q,!0),y.$$isolateBindings=s.$$isolateBindings,u=Da(e,g,y,y.$$isolateBindings,s),u.removeWatches&&y.$on("$destroy",u.removeWatches));for(n in P){u=J[n];L=P[n];var Cg=u.$$bindings.bindToController;L.instance=L();Q.data("$"+u.name+"Controller",L.instance);
1416 L.bindingInfo=Da(G,g,L.instance,Cg,u)}r(J,function(a,b){var c=a.require;a.bindToController&&!H(c)&&D(c)&&S(P[b].instance,W(b,c,Q,P))});r(P,function(a){var b=a.instance;if(B(b.$onChanges))try{b.$onChanges(a.bindingInfo.initialChanges)}catch(d){c(d)}if(B(b.$onInit))try{b.$onInit()}catch(e){c(e)}B(b.$doCheck)&&(G.$watch(function(){b.$doCheck()}),b.$doCheck());B(b.$onDestroy)&&G.$on("$destroy",function(){b.$onDestroy()})});n=0;for(u=h.length;n<u;n++)L=h[n],Ba(L,L.isolateScope?y:e,Q,g,L.require&&W(L.directiveName,
1417 L.require,Q,P),M);var R=e;s&&(s.template||null===s.templateUrl)&&(R=y);a&&a(R,f.childNodes,void 0,l);for(n=k.length-1;0<=n;n--)L=k[n],Ba(L,L.isolateScope?y:e,Q,g,L.require&&W(L.directiveName,L.require,Q,P),M);r(P,function(a){a=a.instance;B(a.$postLink)&&a.$postLink()})}l=l||{};for(var n=-Number.MAX_VALUE,t=l.newScopeDirective,J=l.controllerDirectives,s=l.newIsolateScopeDirective,v=l.templateDirective,L=l.nonTlbTranscludeDirective,G=!1,P=!1,N=l.hasElementTranscludeDirective,y=d.$$element=x(b),u,Q,
1418 M,R=e,q,ma=!1,Ib=!1,O,sa=0,A=a.length;sa<A;sa++){u=a[sa];var E=u.$$start,ib=u.$$end;E&&(y=V(b,E,ib));M=void 0;if(n>u.priority)break;if(O=u.scope)u.templateUrl||(D(O)?(ba("new/isolated scope",s||t,u,y),s=u):ba("new/isolated scope",s,u,y)),t=t||u;Q=u.name;if(!ma&&(u.replace&&(u.templateUrl||u.template)||u.transclude&&!u.$$tlb)){for(O=sa+1;ma=a[O++];)if(ma.transclude&&!ma.$$tlb||ma.replace&&(ma.templateUrl||ma.template)){Ib=!0;break}ma=!0}!u.templateUrl&&u.controller&&(J=J||T(),ba("'"+Q+"' controller",
1419 J[Q],u,y),J[Q]=u);if(O=u.transclude)if(G=!0,u.$$tlb||(ba("transclusion",L,u,y),L=u),"element"===O)N=!0,n=u.priority,M=y,y=d.$$element=x(da.$$createComment(Q,d[Q])),b=y[0],pa(f,Ha.call(M,0),b),R=Z(Ib,M,e,n,g&&g.name,{nonTlbTranscludeDirective:L});else{var ka=T();if(D(O)){M=C.document.createDocumentFragment();var Xa=T(),F=T();r(O,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Xa[a]=b;ka[b]=null;F[b]=c});r(y.contents(),function(a){var b=Xa[wa(ua(a))];b?(F[b]=!0,ka[b]=ka[b]||C.document.createDocumentFragment(),
1420 ka[b].appendChild(a)):M.appendChild(a)});r(F,function(a,b){if(!a)throw $("reqslot",b);});for(var K in ka)ka[K]&&(R=x(ka[K].childNodes),ka[K]=Z(Ib,R,e));M=x(M.childNodes)}else M=x(pc(b)).contents();y.empty();R=Z(Ib,M,e,void 0,void 0,{needsNewScope:u.$$isolateScope||u.$$newScope});R.$$slots=ka}if(u.template)if(P=!0,ba("template",v,u,y),v=u,O=B(u.template)?u.template(y,d):u.template,O=Na(O),u.replace){g=u;M=mc.test(O)?rd(ja(u.templateNamespace,U(O))):[];b=M[0];if(1!==M.length||1!==b.nodeType)throw $("tplrt",
1421 Q,"");pa(f,y,b);A={$attr:{}};O=sc(b,[],A);var Dg=a.splice(sa+1,a.length-(sa+1));(s||t)&&fa(O,s,t);a=a.concat(O).concat(Dg);ga(d,A);A=a.length}else y.html(O);if(u.templateUrl)P=!0,ba("template",v,u,y),v=u,u.replace&&(g=u),p=ha(a.splice(sa,a.length-sa),y,d,f,G&&R,h,k,{controllerDirectives:J,newScopeDirective:t!==u&&t,newIsolateScopeDirective:s,templateDirective:v,nonTlbTranscludeDirective:L}),A=a.length;else if(u.compile)try{q=u.compile(y,d,R);var X=u.$$originalDirective||u;B(q)?m(null,Va(X,q),E,ib):
1422 q&&m(Va(X,q.pre),Va(X,q.post),E,ib)}catch(ca){c(ca,za(y))}u.terminal&&(p.terminal=!0,n=Math.max(n,u.priority))}p.scope=t&&!0===t.scope;p.transcludeOnThisElement=G;p.templateOnThisElement=P;p.transclude=R;l.hasElementTranscludeDirective=N;return p}function W(a,b,c,d){var e;if(A(b)){var f=b.match(l);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e="^^"===g&&c[0]&&9===c[0].nodeType?null:g?c.inheritedData(h):c.data(h)}if(!e&&
1423 !f)throw $("ctreq",b,a);}else if(H(b))for(e=[],g=0,f=b.length;g<f;g++)e[g]=W(a,b[g],c,d);else D(b)&&(e={},r(b,function(b,f){e[f]=W(a,b,c,d)}));return e||null}function ea(a,b,c,d,e,f,g){var h=T(),k;for(k in d){var l=d[k],m={$scope:l===g||l.$$isolateScope?e:f,$element:a,$attrs:b,$transclude:c},p=l.controller;"@"===p&&(p=b[l.name]);m=M(p,m,!0,l.controllerAs);h[l.name]=m;a.data("$"+l.name+"Controller",m.instance)}return h}function fa(a,b,c){for(var d=0,e=a.length;d<e;d++)a[d]=ac(a[d],{$$isolateScope:b,
1424 $$newScope:c})}function X(b,c,e,g,h,k,l){if(c===h)return null;var m=null;if(f.hasOwnProperty(c)){h=a.get(c+"Directive");for(var p=0,n=h.length;p<n;p++)if(c=h[p],(z(g)||g>c.priority)&&-1!==c.restrict.indexOf(e)){k&&(c=ac(c,{$$start:k,$$end:l}));if(!c.$$bindings){var I=m=c,t=c.name,u={isolateScope:null,bindToController:null};D(I.scope)&&(!0===I.bindToController?(u.bindToController=d(I.scope,t,!0),u.isolateScope={}):u.isolateScope=d(I.scope,t,!1));D(I.bindToController)&&(u.bindToController=d(I.bindToController,
1425 t,!0));if(u.bindToController&&!I.controller)throw $("noctrl",t);m=m.$$bindings=u;D(m.isolateScope)&&(c.$$isolateBindings=m.isolateScope)}b.push(c);m=c}}return m}function ca(b){if(f.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,e=c.length;d<e;d++)if(b=c[d],b.multiElement)return!0;return!1}function ga(a,b){var c=b.$attr,d=a.$attr;r(a,function(d,e){"$"!==e.charAt(0)&&(b[e]&&b[e]!==d&&(d=d.length?d+(("style"===e?";":" ")+b[e]):b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,e){a.hasOwnProperty(e)||
1426 "$"===e.charAt(0)||(a[e]=b,"class"!==e&&"style"!==e&&(d[e]=c[e]))})}function ha(a,b,d,f,g,h,k,l){var m=[],p,n,t=b[0],u=a.shift(),J=ac(u,{templateUrl:null,transclude:null,replace:null,$$originalDirective:u}),s=B(u.templateUrl)?u.templateUrl(b,d):u.templateUrl,L=u.templateNamespace;b.empty();e(s).then(function(c){var e,I;c=Na(c);if(u.replace){c=mc.test(c)?rd(ja(L,U(c))):[];e=c[0];if(1!==c.length||1!==e.nodeType)throw $("tplrt",u.name,s);c={$attr:{}};pa(f,b,e);var v=sc(e,[],c);D(u.scope)&&fa(v,!0);a=
1427 v.concat(a);ga(d,c)}else e=t,b.html(c);a.unshift(J);p=aa(a,e,d,g,b,u,h,k,l);r(f,function(a,c){a===e&&(f[c]=b[0])});for(n=Xa(b[0].childNodes,g);m.length;){c=m.shift();I=m.shift();var y=m.shift(),P=m.shift(),v=b[0];if(!c.$$destroyed){if(I!==t){var G=I.className;l.hasElementTranscludeDirective&&u.replace||(v=pc(e));pa(y,x(I),v);sa(x(v),G)}I=p.transcludeOnThisElement?ka(c,p.transclude,P):P;p(n,c,v,f,I)}}m=null}).catch(function(a){cc(a)&&c(a)});return function(a,b,c,d,e){a=e;b.$$destroyed||(m?m.push(b,
1428 c,d,a):(p.transcludeOnThisElement&&(a=ka(b,p.transclude,e)),p(n,b,c,d,a)))}}function ia(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function ba(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw $("multidir",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,za(d));}function na(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&da.$$addBindingClass(a);return function(a,c){var e=c.parent();
1429 b||da.$$addBindingClass(e);da.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function ja(a,b){a=K(a||"html");switch(a){case "svg":case "math":var c=C.document.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function oa(a,b){if("srcdoc"===b)return u.HTML;if("src"===b||"ngSrc"===b)return-1===["img","video","audio","source","track"].indexOf(a)?u.RESOURCE_URL:u.MEDIA_URL;if("xlinkHref"===b)return"image"===a?u.MEDIA_URL:
1430 "a"===a?u.URL:u.RESOURCE_URL;if("form"===a&&"action"===b||"base"===a&&"href"===b||"link"===a&&"href"===b)return u.RESOURCE_URL;if("a"===a&&("href"===b||"ngHref"===b))return u.URL}function xa(a,b){var c=b.toLowerCase();return v[a+"|"+c]||v["*|"+c]}function ya(a){return ma(u.valueOf(a),"ng-prop-srcset")}function Ea(a,b,c,d){if(m.test(d))throw $("nodomevents");a=ua(a);var e=xa(a,d),f=Ta;"srcset"!==d||"img"!==a&&"source"!==a?e&&(f=u.getTrusted.bind(u,e)):f=ya;b.push({priority:100,compile:function(a,b){var e=
1431 p(b[c]),g=p(b[c],function(a){return u.valueOf(a)});return{pre:function(a,b){function c(){var g=e(a);b[0][d]=f(g)}c();a.$watch(g,c)}}}})}function Ia(a,c,d,e,f){var g=ua(a),k=oa(g,e),l=h[e]||f,p=b(d,!f,k,l);if(p){if("multiple"===e&&"select"===g)throw $("selmulti",za(a));if(m.test(e))throw $("nodomevents");c.push({priority:100,compile:function(){return{pre:function(a,c,f){c=f.$$observers||(f.$$observers=T());var g=f[e];g!==d&&(p=g&&b(g,!0,k,l),d=g);p&&(f[e]=p(a),(c[e]||(c[e]=[])).$$inter=!0,(f.$$observers&&
1432 f.$$observers[e].$$scope||a).$watch(p,function(a,b){"class"===e&&a!==b?f.$updateClass(a,b):f.$set(e,a)}))}}}})}}function pa(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g<h;g++)if(a[g]===d){a[g++]=c;h=g+e-1;for(var k=a.length;g<k;g++,h++)h<k?a[g]=a[h]:delete a[g];a.length-=e-1;a.context===d&&(a.context=c);break}f&&f.replaceChild(c,d);a=C.document.createDocumentFragment();for(g=0;g<e;g++)a.appendChild(b[g]);x.hasData(d)&&(x.data(c,x.data(d)),x(d).off("$destroy"));x.cleanData(a.querySelectorAll("*"));
1433 for(g=1;g<e;g++)delete b[g];b[0]=c;b.length=1}function Aa(a,b){return S(function(){return a.apply(null,arguments)},a,b)}function Ba(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(h){c(h,za(d))}}function ra(a,b){if(s)throw $("missingattr",a,b);}function Da(a,c,d,e,f){function g(b,c,e){B(d.$onChanges)&&!dc(c,e)&&(Ua||(a.$$postDigest(q),Ua=[]),m||(m={},Ua.push(h)),m[b]&&(e=m[b].previousValue),m[b]=new Jb(e,c))}function h(){d.$onChanges(m);m=void 0}var k=[],l={},m;r(e,function(e,h){var m=e.attrName,n=e.optional,
1434 I,t,u,s;switch(e.mode){case "@":n||ta.call(c,m)||(ra(m,f.name),d[h]=c[m]=void 0);n=c.$observe(m,function(a){if(A(a)||Ga(a))g(h,a,d[h]),d[h]=a});c.$$observers[m].$$scope=a;I=c[m];A(I)?d[h]=b(I)(a):Ga(I)&&(d[h]=I);l[h]=new Jb(tc,d[h]);k.push(n);break;case "=":if(!ta.call(c,m)){if(n)break;ra(m,f.name);c[m]=void 0}if(n&&!c[m])break;t=p(c[m]);s=t.literal?va:dc;u=t.assign||function(){I=d[h]=t(a);throw $("nonassign",c[m],m,f.name);};I=d[h]=t(a);n=function(b){s(b,d[h])||(s(b,I)?u(a,b=d[h]):d[h]=b);return I=
1435 b};n.$stateful=!0;n=e.collection?a.$watchCollection(c[m],n):a.$watch(p(c[m],n),null,t.literal);k.push(n);break;case "<":if(!ta.call(c,m)){if(n)break;ra(m,f.name);c[m]=void 0}if(n&&!c[m])break;t=p(c[m]);var v=t.literal,L=d[h]=t(a);l[h]=new Jb(tc,d[h]);n=a[e.collection?"$watchCollection":"$watch"](t,function(a,b){if(b===a){if(b===L||v&&va(b,L))return;b=L}g(h,a,b);d[h]=a});k.push(n);break;case "&":n||ta.call(c,m)||ra(m,f.name);t=c.hasOwnProperty(m)?p(c[m]):E;if(t===E&&n)break;d[h]=function(b){return t(a,
1436 b)}}});return{initialChanges:l,removeWatches:k.length&&function(){for(var a=0,b=k.length;a<b;++a)k[a]()}}}var Ma=/^\w/,Fa=C.document.createElement("div"),Oa=t,Qa=N,Ja=G,Ua;w.prototype={$normalize:wa,$addClass:function(a){a&&0<a.length&&R.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&R.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=sd(a,b);c&&c.length&&R.addClass(this.$$element,c);(c=sd(b,a))&&c.length&&R.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=
1437 ld(this.$$element[0],a),g=td[a],h=a;f?(this.$$element.prop(a,b),e=f):g&&(this[g]=b,h=g);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=Vc(a,"-"));"img"===ua(this.$$element)&&"srcset"===a&&(this[a]=b=ma(b,"$set('srcset', value)"));!1!==d&&(null===b||z(b)?this.$$element.removeAttr(e):Ma.test(e)?f&&!1===b?this.$$element.removeAttr(e):this.$$element.attr(e,b):O(this.$$element[0],e,b));(a=this.$$observers)&&r(a[h],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,
1438 d=c.$$observers||(c.$$observers=T()),e=d[a]||(d[a]=[]);e.push(b);L.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||z(c[a])||b(c[a])});return function(){cb(e,b)}}};var Ka=b.startSymbol(),La=b.endSymbol(),Na="{{"===Ka&&"}}"===La?Ta:function(a){return a.replace(/\{\{/g,Ka).replace(/}}/g,La)},Ra=/^ng(Attr|Prop|On)([A-Z].*)$/,Sa=/^(.+)Start$/;da.$$addBindingInfo=n?function(a,b){var c=a.data("$binding")||[];H(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:E;da.$$addBindingClass=n?function(a){sa(a,
1439 "ng-binding")}:E;da.$$addScopeInfo=n?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:E;da.$$addScopeClass=n?function(a,b){sa(a,b?"ng-isolate-scope":"ng-scope")}:E;da.$$createComment=function(a,b){var c="";n&&(c=" "+(a||"")+": ",b&&(c+=b+" "));return C.document.createComment(c)};return da}]}function Jb(a,b){this.previousValue=a;this.currentValue=b}function wa(a){return a.replace(pd,"").replace(Eg,function(a,d,c){return c?d.toUpperCase():d})}function sd(a,b){var d=
1440 "",c=a.split(/\s+/),e=b.split(/\s+/),f=0;a:for(;f<c.length;f++){for(var g=c[f],k=0;k<e.length;k++)if(g===e[k])continue a;d+=(0<d.length?" ":"")+g}return d}function rd(a){a=x(a);var b=a.length;if(1>=b)return a;for(;b--;){var d=a[b];(8===d.nodeType||d.nodeType===Pa&&""===d.nodeValue.trim())&&Fg.call(a,b,1)}return a}function Bg(a,b){if(b&&A(b))return b;if(A(a)){var d=ud.exec(a);if(d)return d[3]}}function Ff(){var a={};this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,d){Ja(b,
1441 "controller");D(b)?S(a,b):a[b]=d};this.$get=["$injector",function(b){function d(a,b,d,g){if(!a||!D(a.$scope))throw F("$controller")("noscp",g,b);a.$scope[b]=d}return function(c,e,f,g){var k,h,l;f=!0===f;g&&A(g)&&(l=g);if(A(c)){g=c.match(ud);if(!g)throw vd("ctrlfmt",c);h=g[1];l=l||g[3];c=a.hasOwnProperty(h)?a[h]:Ge(e.$scope,h,!0);if(!c)throw vd("ctrlreg",h);sb(c,h,!0)}if(f)return f=(H(c)?c[c.length-1]:c).prototype,k=Object.create(f||null),l&&d(e,l,k,h||c.name),S(function(){var a=b.invoke(c,k,e,h);
1442 a!==k&&(D(a)||B(a))&&(k=a,l&&d(e,l,k,h||c.name));return k},{instance:k,identifier:l});k=b.instantiate(c,e,h);l&&d(e,l,k,h||c.name);return k}}]}function Gf(){this.$get=["$window",function(a){return x(a.document)}]}function Hf(){this.$get=["$document","$rootScope",function(a,b){function d(){e=c.hidden}var c=a[0],e=c&&c.hidden;a.on("visibilitychange",d);b.$on("$destroy",function(){a.off("visibilitychange",d)});return function(){return e}}]}function If(){this.$get=["$log",function(a){return function(b,
1443 d){a.error.apply(a,arguments)}}]}function uc(a){return D(a)?ha(a)?a.toISOString():eb(a):a}function Of(){this.$get=function(){return function(a){if(!a)return"";var b=[];Oc(a,function(a,c){null===a||z(a)||B(a)||(H(a)?r(a,function(a){b.push(ba(c)+"="+ba(uc(a)))}):b.push(ba(c)+"="+ba(uc(a))))});return b.join("&")}}}function Pf(){this.$get=function(){return function(a){function b(a,e,f){H(a)?r(a,function(a,c){b(a,e+"["+(D(a)?c:"")+"]")}):D(a)&&!ha(a)?Oc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):
1444 (B(a)&&(a=a()),d.push(ba(e)+"="+(null==a?"":ba(uc(a)))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function vc(a,b){if(A(a)){var d=a.replace(Gg,"").trim();if(d){var c=b("Content-Type"),c=c&&0===c.indexOf(wd),e;(e=c)||(e=(e=d.match(Hg))&&Ig[e[0]].test(d));if(e)try{a=Rc(d)}catch(f){if(!c)return a;throw Kb("baddata",a,f);}}}return a}function xd(a){var b=T(),d;A(a)?r(a.split("\n"),function(a){d=a.indexOf(":");var e=K(U(a.substr(0,d)));a=U(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):D(a)&&
1445 r(a,function(a,d){var f=K(d),g=U(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function yd(a){var b;return function(d){b||(b=xd(a));return d?(d=b[K(d)],void 0===d&&(d=null),d):b}}function zd(a,b,d,c){if(B(c))return c(a,b,d);r(c,function(c){a=c(a,b,d)});return a}function Nf(){var a=this.defaults={transformResponse:[vc],transformRequest:[function(a){return D(a)&&"[object File]"!==la.call(a)&&"[object Blob]"!==la.call(a)&&"[object FormData]"!==la.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},
1446 post:ja(wc),put:ja(wc),patch:ja(wc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},b=!1;this.useApplyAsync=function(a){return w(a)?(b=!!a,this):b};var d=this.interceptors=[],c=this.xsrfWhitelistedOrigins=[];this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(e,f,g,k,h,l,m,p){function n(b){function c(a,b){for(var d=0,e=b.length;d<e;){var f=b[d++],g=b[d++];
1447 a=a.then(f,g)}b.length=0;return a}function d(a,b){var c,e={};r(a,function(a,d){B(a)?(c=a(b),null!=c&&(e[d]=c)):e[d]=a});return e}function f(a){var b=S({},a);b.data=zd(a.data,a.headers,a.status,g.transformResponse);a=a.status;return 200<=a&&300>a?b:l.reject(b)}if(!D(b))throw F("$http")("badreq",b);if(!A(p.valueOf(b.url)))throw F("$http")("badreq",b.url);var g=S({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer,jsonpCallbackParam:a.jsonpCallbackParam},
1448 b);g.headers=function(b){var c=a.headers,e=S({},b.headers),f,g,h,c=S({},c.common,c[K(b.method)]);a:for(f in c){g=K(f);for(h in e)if(K(h)===g)continue a;e[f]=c[f]}return d(e,ja(b))}(b);g.method=ub(g.method);g.paramSerializer=A(g.paramSerializer)?m.get(g.paramSerializer):g.paramSerializer;e.$$incOutstandingRequestCount("$http");var h=[],k=[];b=l.resolve(g);r(v,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError);(a.response||a.responseError)&&k.push(a.response,a.responseError)});
1449 b=c(b,h);b=b.then(function(b){var c=b.headers,d=zd(b.data,yd(c),void 0,b.transformRequest);z(d)&&r(c,function(a,b){"content-type"===K(b)&&delete c[b]});z(b.withCredentials)&&!z(a.withCredentials)&&(b.withCredentials=a.withCredentials);return s(b,d).then(f,f)});b=c(b,k);return b=b.finally(function(){e.$$completeOutstandingRequest(E,"$http")})}function s(c,d){function e(a){if(a){var c={};r(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function k(a,
1450 c,d,e,f){function g(){m(c,a,d,e,f)}R&&(200<=a&&300>a?R.put(O,[a,c,xd(d),e,f]):R.remove(O));b?h.$applyAsync(g):(g(),h.$$phase||h.$apply())}function m(a,b,d,e,f){b=-1<=b?b:0;(200<=b&&300>b?L.resolve:L.reject)({data:a,status:b,headers:yd(d),config:c,statusText:e,xhrStatus:f})}function s(a){m(a.data,a.status,ja(a.headers()),a.statusText,a.xhrStatus)}function v(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var L=l.defer(),u=L.promise,R,q,ma=c.headers,x="jsonp"===K(c.method),
1451 O=c.url;x?O=p.getTrustedResourceUrl(O):A(O)||(O=p.valueOf(O));O=G(O,c.paramSerializer(c.params));x&&(O=t(O,c.jsonpCallbackParam));n.pendingRequests.push(c);u.then(v,v);!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(R=D(c.cache)?c.cache:D(a.cache)?a.cache:N);R&&(q=R.get(O),w(q)?q&&B(q.then)?q.then(s,s):H(q)?m(q[1],q[0],ja(q[2]),q[3],q[4]):m(q,200,{},"OK","complete"):R.put(O,u));z(q)&&((q=jc(c.url)?g()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(ma[c.xsrfHeaderName||a.xsrfHeaderName]=
1452 q),f(c.method,O,d,k,ma,c.timeout,c.withCredentials,c.responseType,e(c.eventHandlers),e(c.uploadEventHandlers)));return u}function G(a,b){0<b.length&&(a+=(-1===a.indexOf("?")?"?":"&")+b);return a}function t(a,b){var c=a.split("?");if(2<c.length)throw Kb("badjsonp",a);c=gc(c[1]);r(c,function(c,d){if("JSON_CALLBACK"===c)throw Kb("badjsonp",a);if(d===b)throw Kb("badjsonp",b,a);});return a+=(-1===a.indexOf("?")?"?":"&")+b+"=JSON_CALLBACK"}var N=k("$http");a.paramSerializer=A(a.paramSerializer)?m.get(a.paramSerializer):
1453 a.paramSerializer;var v=[];r(d,function(a){v.unshift(A(a)?m.get(a):m.invoke(a))});var jc=Jg(c);n.pendingRequests=[];(function(a){r(arguments,function(a){n[a]=function(b,c){return n(S({},c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){r(arguments,function(a){n[a]=function(b,c,d){return n(S({},d||{},{method:a,url:b,data:c}))}})})("post","put","patch");n.defaults=a;return n}]}function Rf(){this.$get=function(){return function(){return new C.XMLHttpRequest}}}function Qf(){this.$get=
1454 ["$browser","$jsonpCallbacks","$document","$xhrFactory",function(a,b,d,c){return Kg(a,c,a.defer,b,d[0])}]}function Kg(a,b,d,c,e){function f(a,b,d){a=a.replace("JSON_CALLBACK",b);var f=e.createElement("script"),m=null;f.type="text/javascript";f.src=a;f.async=!0;m=function(a){f.removeEventListener("load",m);f.removeEventListener("error",m);e.body.removeChild(f);f=null;var g=-1,s="unknown";a&&("load"!==a.type||c.wasCalled(b)||(a={type:"error"}),s=a.type,g="error"===a.type?404:200);d&&d(g,s)};f.addEventListener("load",
1455 m);f.addEventListener("error",m);e.body.appendChild(f);return m}return function(e,k,h,l,m,p,n,s,G,t){function N(a){J="timeout"===a;qa&&qa();y&&y.abort()}function v(a,b,c,e,f,g){w(P)&&d.cancel(P);qa=y=null;a(b,c,e,f,g)}k=k||a.url();if("jsonp"===K(e))var q=c.createCallback(k),qa=f(k,q,function(a,b){var d=200===a&&c.getResponse(q);v(l,a,d,"",b,"complete");c.removeCallback(q)});else{var y=b(e,k),J=!1;y.open(e,k,!0);r(m,function(a,b){w(a)&&y.setRequestHeader(b,a)});y.onload=function(){var a=y.statusText||
1456 "",b="response"in y?y.response:y.responseText,c=1223===y.status?204:y.status;0===c&&(c=b?200:"file"===ga(k).protocol?404:0);v(l,c,b,y.getAllResponseHeaders(),a,"complete")};y.onerror=function(){v(l,-1,null,null,"","error")};y.ontimeout=function(){v(l,-1,null,null,"","timeout")};y.onabort=function(){v(l,-1,null,null,"",J?"timeout":"abort")};r(G,function(a,b){y.addEventListener(b,a)});r(t,function(a,b){y.upload.addEventListener(b,a)});n&&(y.withCredentials=!0);if(s)try{y.responseType=s}catch(I){if("json"!==
1457 s)throw I;}y.send(z(h)?null:h)}if(0<p)var P=d(function(){N("timeout")},p);else p&&B(p.then)&&p.then(function(){N(w(p.$$timeoutId)?"timeout":"abort")})}}function Kf(){var a="{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a};this.endSymbol=function(a){return a?(b=a,this):b};this.$get=["$parse","$exceptionHandler","$sce",function(d,c,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(p,a).replace(n,b)}function k(a,b,c,d){var e=a.$watch(function(a){e();return d(a)},b,c);return e}
1458 function h(f,h,n,p){function v(a){try{return a=n&&!r?e.getTrusted(n,a):e.valueOf(a),p&&!w(a)?a:ic(a)}catch(b){c(Ma.interr(f,b))}}var r=n===e.URL||n===e.MEDIA_URL;if(!f.length||-1===f.indexOf(a)){if(h)return;h=g(f);r&&(h=e.getTrusted(n,h));h=ia(h);h.exp=f;h.expressions=[];h.$$watchDelegate=k;return h}p=!!p;for(var q,y,J=0,I=[],P,Q=f.length,M=[],L=[],u;J<Q;)if(-1!==(q=f.indexOf(a,J))&&-1!==(y=f.indexOf(b,q+l)))J!==q&&M.push(g(f.substring(J,q))),J=f.substring(q+l,y),I.push(J),J=y+m,L.push(M.length),
1459 M.push("");else{J!==Q&&M.push(g(f.substring(J)));break}u=1===M.length&&1===L.length;var R=r&&u?void 0:v;P=I.map(function(a){return d(a,R)});if(!h||I.length){var x=function(a){for(var b=0,c=I.length;b<c;b++){if(p&&z(a[b]))return;M[L[b]]=a[b]}if(r)return e.getTrusted(n,u?M[0]:M.join(""));n&&1<M.length&&Ma.throwNoconcat(f);return M.join("")};return S(function(a){var b=0,d=I.length,e=Array(d);try{for(;b<d;b++)e[b]=P[b](a);return x(e)}catch(g){c(Ma.interr(f,g))}},{exp:f,expressions:I,$$watchDelegate:function(a,
1460 b){var c;return a.$watchGroup(P,function(d,e){var f=x(d);b.call(this,f,d!==e?c:f,a);c=f})}})}}var l=a.length,m=b.length,p=new RegExp(a.replace(/./g,f),"g"),n=new RegExp(b.replace(/./g,f),"g");h.startSymbol=function(){return a};h.endSymbol=function(){return b};return h}]}function Lf(){this.$get=["$$intervalFactory","$window",function(a,b){var d={},c=function(a){b.clearInterval(a);delete d[a]},e=a(function(a,c,e){a=b.setInterval(a,c);d[a]=e;return a},c);e.cancel=function(a){if(!a)return!1;if(!a.hasOwnProperty("$$intervalId"))throw Lg("badprom");
1461 if(!d.hasOwnProperty(a.$$intervalId))return!1;a=a.$$intervalId;var b=d[a],e=b.promise;e.$$state&&(e.$$state.pur=!0);b.reject("canceled");c(a);return!0};return e}]}function Mf(){this.$get=["$browser","$q","$$q","$rootScope",function(a,b,d,c){return function(e,f){return function(g,k,h,l){function m(){p?g.apply(null,n):g(s)}var p=4<arguments.length,n=p?Ha.call(arguments,4):[],s=0,G=w(l)&&!l,t=(G?d:b).defer(),r=t.promise;h=w(h)?h:0;r.$$intervalId=e(function(){G?a.defer(m):c.$evalAsync(m);t.notify(s++);
1462 0<h&&s>=h&&(t.resolve(s),f(r.$$intervalId));G||c.$apply()},k,t,G);return r}}}]}function Ad(a,b){var d=ga(a);b.$$protocol=d.protocol;b.$$host=d.hostname;b.$$port=fa(d.port)||Mg[d.protocol]||null}function Bd(a,b,d){if(Ng.test(a))throw jb("badpath",a);var c="/"!==a.charAt(0);c&&(a="/"+a);a=ga(a);for(var c=(c&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname).split("/"),e=c.length;e--;)c[e]=decodeURIComponent(c[e]),d&&(c[e]=c[e].replace(/\//g,"%2F"));d=c.join("/");b.$$path=d;b.$$search=gc(a.search);
1463 b.$$hash=decodeURIComponent(a.hash);b.$$path&&"/"!==b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function xc(a,b){return a.slice(0,b.length)===b}function xa(a,b){if(xc(b,a))return b.substr(a.length)}function Da(a){var b=a.indexOf("#");return-1===b?a:a.substr(0,b)}function yc(a,b,d){this.$$html5=!0;d=d||"";Ad(a,this);this.$$parse=function(a){var d=xa(b,a);if(!A(d))throw jb("ipthprfx",a,b);Bd(d,this,!0);this.$$path||(this.$$path="/");this.$$compose()};this.$$normalizeUrl=function(a){return b+a.substr(1)};
1464 this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;w(f=xa(a,c))?(g=f,g=d&&w(f=xa(d,f))?b+(xa("/",f)||f):a+g):w(f=xa(b,c))?g=b+f:b===c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function zc(a,b,d){Ad(a,this);this.$$parse=function(c){var e=xa(a,c)||xa(b,c),f;z(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",z(e)&&(a=c,this.replace())):(f=xa(d,e),z(f)&&(f=e));Bd(f,this,!1);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;xc(f,e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?
1465 f[1]:c);this.$$path=c;this.$$compose()};this.$$normalizeUrl=function(b){return a+(b?d+b:"")};this.$$parseLinkUrl=function(b,d){return Da(a)===Da(b)?(this.$$parse(b),!0):!1}}function Cd(a,b,d){this.$$html5=!0;zc.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a===Da(c)?f=c:(g=xa(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$normalizeUrl=function(b){return a+d+b}}function Lb(a){return function(){return this[a]}}function Dd(a,
1466 b){return function(d){if(z(d))return this[a];this[a]=b(d);this.$$compose();return this}}function Tf(){var a="!",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return w(b)?(a=b,this):a};this.html5Mode=function(a){if(Ga(a))return b.enabled=a,this;if(D(a)){Ga(a.enabled)&&(b.enabled=a.enabled);Ga(a.requireBase)&&(b.requireBase=a.requireBase);if(Ga(a.rewriteLinks)||A(a.rewriteLinks))b.rewriteLinks=a.rewriteLinks;return this}return b};this.$get=["$rootScope","$browser","$sniffer",
1467 "$rootElement","$window",function(d,c,e,f,g){function k(a,b){return a===b||ga(a).href===ga(b).href}function h(a,b,d){var e=m.url(),f=m.$$state;try{c.url(a,b,d),m.$$state=c.state()}catch(g){throw m.url(e),m.$$state=f,g;}}function l(a,b){d.$broadcast("$locationChangeSuccess",m.absUrl(),a,m.$$state,b)}var m,p;p=c.baseHref();var n=c.url(),s;if(b.enabled){if(!p&&b.requireBase)throw jb("nobase");s=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(p||"/");p=e.history?yc:Cd}else s=Da(n),p=zc;var r=s.substr(0,
1468 Da(s).lastIndexOf("/")+1);m=new p(s,r,"#"+a);m.$$parseLinkUrl(n,n);m.$$state=c.state();var t=/^\s*(javascript|mailto):/i;f.on("click",function(a){var e=b.rewriteLinks;if(e&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!==a.which&&2!==a.button){for(var g=x(a.target);"a"!==ua(g[0]);)if(g[0]===f[0]||!(g=g.parent())[0])return;if(!A(e)||!z(g.attr(e))){var e=g.prop("href"),h=g.attr("href")||g.attr("xlink:href");D(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=ga(e.animVal).href);t.test(e)||!e||g.attr("target")||
1469 a.isDefaultPrevented()||!m.$$parseLinkUrl(e,h)||(a.preventDefault(),m.absUrl()!==c.url()&&d.$apply())}}});m.absUrl()!==n&&c.url(m.absUrl(),!0);var N=!0;c.onUrlChange(function(a,b){xc(a,r)?(d.$evalAsync(function(){var c=m.absUrl(),e=m.$$state,f;m.$$parse(a);m.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;m.absUrl()===a&&(f?(m.$$parse(c),m.$$state=e,h(c,!1,e)):(N=!1,l(c,e)))}),d.$$phase||d.$digest()):g.location.href=a});d.$watch(function(){if(N||m.$$urlUpdatedByLocation){m.$$urlUpdatedByLocation=
1470 !1;var a=c.url(),b=m.absUrl(),f=c.state(),g=m.$$replace,n=!k(a,b)||m.$$html5&&e.history&&f!==m.$$state;if(N||n)N=!1,d.$evalAsync(function(){var b=m.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,m.$$state,f).defaultPrevented;m.absUrl()===b&&(c?(m.$$parse(a),m.$$state=f):(n&&h(b,g,f===m.$$state?null:m.$$state),l(a,f)))})}m.$$replace=!1});return m}]}function Uf(){var a=!0,b=this;this.debugEnabled=function(b){return w(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){cc(a)&&(a.stack&&
1471 f?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||E;return function(){var a=[];r(arguments,function(b){a.push(c(b))});return Function.prototype.apply.call(e,b,a)}}var f=Ca||/\bEdge\//.test(d.navigator&&d.navigator.userAgent);return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,
1472 arguments)}}()}}]}function Og(a){return a+""}function Pg(a,b){return"undefined"!==typeof a?a:b}function Ed(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function Qg(a,b){switch(a.type){case q.MemberExpression:if(a.computed)return!1;break;case q.UnaryExpression:return 1;case q.BinaryExpression:return"+"!==a.operator?1:!1;case q.CallExpression:return!1}return void 0===b?Fd:b}function Z(a,b,d){var c,e,f=a.isPure=Qg(a,d);switch(a.type){case q.Program:c=!0;r(a.body,function(a){Z(a.expression,
1473 b,f);c=c&&a.expression.constant});a.constant=c;break;case q.Literal:a.constant=!0;a.toWatch=[];break;case q.UnaryExpression:Z(a.argument,b,f);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;break;case q.BinaryExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case q.LogicalExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case q.ConditionalExpression:Z(a.test,
1474 b,f);Z(a.alternate,b,f);Z(a.consequent,b,f);a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case q.Identifier:a.constant=!1;a.toWatch=[a];break;case q.MemberExpression:Z(a.object,b,f);a.computed&&Z(a.property,b,f);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=a.constant?[]:[a];break;case q.CallExpression:c=d=a.filter?!b(a.callee.name).$stateful:!1;e=[];r(a.arguments,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,
1475 a.toWatch)});a.constant=c;a.toWatch=d?e:[a];break;case q.AssignmentExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=[a];break;case q.ArrayExpression:c=!0;e=[];r(a.elements,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=e;break;case q.ObjectExpression:c=!0;e=[];r(a.properties,function(a){Z(a.value,b,f);c=c&&a.value.constant;e.push.apply(e,a.value.toWatch);a.computed&&(Z(a.key,b,!1),c=c&&a.key.constant,e.push.apply(e,
1476 a.key.toWatch))});a.constant=c;a.toWatch=e;break;case q.ThisExpression:a.constant=!1;a.toWatch=[];break;case q.LocalsExpression:a.constant=!1,a.toWatch=[]}}function Gd(a){if(1===a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function Hd(a){return a.type===q.Identifier||a.type===q.MemberExpression}function Id(a){if(1===a.body.length&&Hd(a.body[0].expression))return{type:q.AssignmentExpression,left:a.body[0].expression,right:{type:q.NGValueParameter},operator:"="}}
1477 function Jd(a){this.$filter=a}function Kd(a){this.$filter=a}function Mb(a,b,d){this.ast=new q(a,d);this.astCompiler=d.csp?new Kd(b):new Jd(b)}function Ac(a){return B(a.valueOf)?a.valueOf():Rg.call(a)}function Vf(){var a=T(),b={"true":!0,"false":!1,"null":null,undefined:void 0},d,c;this.addLiteral=function(a,c){b[a]=c};this.setIdentifierFns=function(a,b){d=a;c=b;return this};this.$get=["$filter",function(e){function f(b,c){var d,f;switch(typeof b){case "string":return f=b=b.trim(),d=a[f],d||(d=new Nb(G),
1478 d=(new Mb(d,e,G)).parse(b),a[f]=p(d)),s(d,c);case "function":return s(b,c);default:return s(E,c)}}function g(a,b,c){return null==a||null==b?a===b:"object"!==typeof a||(a=Ac(a),"object"!==typeof a||c)?a===b||a!==a&&b!==b:!1}function k(a,b,c,d,e){var f=d.inputs,h;if(1===f.length){var k=g,f=f[0];return a.$watch(function(a){var b=f(a);g(b,k,f.isPure)||(h=d(a,void 0,void 0,[b]),k=b&&Ac(b));return h},b,c,e)}for(var l=[],m=[],n=0,p=f.length;n<p;n++)l[n]=g,m[n]=null;return a.$watch(function(a){for(var b=
1479 !1,c=0,e=f.length;c<e;c++){var k=f[c](a);if(b||(b=!g(k,l[c],f[c].isPure)))m[c]=k,l[c]=k&&Ac(k)}b&&(h=d(a,void 0,void 0,m));return h},b,c,e)}function h(a,b,c,d,e){function f(){h(m)&&k()}function g(a,b,c,d){m=u&&d?d[0]:n(a,b,c,d);h(m)&&a.$$postDigest(f);return s(m)}var h=d.literal?l:w,k,m,n=d.$$intercepted||d,s=d.$$interceptor||Ta,u=d.inputs&&!n.inputs;g.literal=d.literal;g.constant=d.constant;g.inputs=d.inputs;p(g);return k=a.$watch(g,b,c,e)}function l(a){var b=!0;r(a,function(a){w(a)||(b=!1)});return b}
1480 function m(a,b,c,d){var e=a.$watch(function(a){e();return d(a)},b,c);return e}function p(a){a.constant?a.$$watchDelegate=m:a.oneTime?a.$$watchDelegate=h:a.inputs&&(a.$$watchDelegate=k);return a}function n(a,b){function c(d){return b(a(d))}c.$stateful=a.$stateful||b.$stateful;c.$$pure=a.$$pure&&b.$$pure;return c}function s(a,b){if(!b)return a;a.$$interceptor&&(b=n(a.$$interceptor,b),a=a.$$intercepted);var c=!1,d=function(d,e,f,g){d=c&&g?g[0]:a(d,e,f,g);return b(d)};d.$$intercepted=a;d.$$interceptor=
1481 b;d.literal=a.literal;d.oneTime=a.oneTime;d.constant=a.constant;b.$stateful||(c=!a.inputs,d.inputs=a.inputs?a.inputs:[a],b.$$pure||(d.inputs=d.inputs.map(function(a){return a.isPure===Fd?function(b){return a(b)}:a})));return p(d)}var G={csp:Aa().noUnsafeEval,literals:Ia(b),isIdentifierStart:B(d)&&d,isIdentifierContinue:B(c)&&c};f.$$getAst=function(a){var b=new Nb(G);return(new Mb(b,e,G)).getAst(a).ast};return f}]}function Xf(){var a=!0;this.$get=["$rootScope","$exceptionHandler",function(b,d){return Ld(function(a){b.$evalAsync(a)},
1482 d,a)}];this.errorOnUnhandledRejections=function(b){return w(b)?(a=b,this):a}}function Yf(){var a=!0;this.$get=["$browser","$exceptionHandler",function(b,d){return Ld(function(a){b.defer(a)},d,a)}];this.errorOnUnhandledRejections=function(b){return w(b)?(a=b,this):a}}function Ld(a,b,d){function c(){return new e}function e(){var a=this.promise=new f;this.resolve=function(b){h(a,b)};this.reject=function(b){m(a,b)};this.notify=function(b){n(a,b)}}function f(){this.$$state={status:0}}function g(){for(;!w&&
1483 x.length;){var a=x.shift();if(!a.pur){a.pur=!0;var c=a.value,c="Possibly unhandled rejection: "+("function"===typeof c?c.toString().replace(/ \{[\s\S]*$/,""):z(c)?"undefined":"string"!==typeof c?Ie(c,void 0):c);cc(a.value)?b(a.value,c):b(c)}}}function k(c){!d||c.pending||2!==c.status||c.pur||(0===w&&0===x.length&&a(g),x.push(c));!c.processScheduled&&c.pending&&(c.processScheduled=!0,++w,a(function(){var e,f,k;k=c.pending;c.processScheduled=!1;c.pending=void 0;try{for(var l=0,n=k.length;l<n;++l){c.pur=
1484 !0;f=k[l][0];e=k[l][c.status];try{B(e)?h(f,e(c.value)):1===c.status?h(f,c.value):m(f,c.value)}catch(p){m(f,p),p&&!0===p.$$passToExceptionHandler&&b(p)}}}finally{--w,d&&0===w&&a(g)}}))}function h(a,b){a.$$state.status||(b===a?p(a,v("qcycle",b)):l(a,b))}function l(a,b){function c(b){g||(g=!0,l(a,b))}function d(b){g||(g=!0,p(a,b))}function e(b){n(a,b)}var f,g=!1;try{if(D(b)||B(b))f=b.then;B(f)?(a.$$state.status=-1,f.call(b,c,d,e)):(a.$$state.value=b,a.$$state.status=1,k(a.$$state))}catch(h){d(h)}}function m(a,
1485 b){a.$$state.status||p(a,b)}function p(a,b){a.$$state.value=b;a.$$state.status=2;k(a.$$state)}function n(c,d){var e=c.$$state.pending;0>=c.$$state.status&&e&&e.length&&a(function(){for(var a,c,f=0,g=e.length;f<g;f++){c=e[f][0];a=e[f][3];try{n(c,B(a)?a(d):d)}catch(h){b(h)}}})}function s(a){var b=new f;m(b,a);return b}function G(a,b,c){var d=null;try{B(c)&&(d=c())}catch(e){return s(e)}return d&&B(d.then)?d.then(function(){return b(a)},s):b(a)}function t(a,b,c,d){var e=new f;h(e,a);return e.then(b,c,
1486 d)}function q(a){if(!B(a))throw v("norslvr",a);var b=new f;a(function(a){h(b,a)},function(a){m(b,a)});return b}var v=F("$q",TypeError),w=0,x=[];S(f.prototype,{then:function(a,b,c){if(z(a)&&z(b)&&z(c))return this;var d=new f;this.$$state.pending=this.$$state.pending||[];this.$$state.pending.push([d,a,b,c]);0<this.$$state.status&&k(this.$$state);return d},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return G(b,y,a)},function(b){return G(b,s,a)},
1487 b)}});var y=t;q.prototype=f.prototype;q.defer=c;q.reject=s;q.when=t;q.resolve=y;q.all=function(a){var b=new f,c=0,d=H(a)?[]:{};r(a,function(a,e){c++;t(a).then(function(a){d[e]=a;--c||h(b,d)},function(a){m(b,a)})});0===c&&h(b,d);return b};q.race=function(a){var b=c();r(a,function(a){t(a).then(b.resolve,b.reject)});return b.promise};return q}function hg(){this.$get=["$window","$timeout",function(a,b){var d=a.requestAnimationFrame||a.webkitRequestAnimationFrame,c=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||
1488 a.webkitCancelRequestAnimationFrame,e=!!d,f=e?function(a){var b=d(a);return function(){c(b)}}:function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};f.supported=e;return f}]}function Wf(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$id=++pb;this.$$ChildScope=null;this.$$suspended=!1}b.prototype=a;return b}var b=10,d=F("$rootScope"),c=null,e=null;this.digestTtl=
1489 function(a){arguments.length&&(b=a);return b};this.$get=["$exceptionHandler","$parse","$browser",function(f,g,k){function h(a){a.currentScope.$$destroyed=!0}function l(a){9===Ca&&(a.$$childHead&&l(a.$$childHead),a.$$nextSibling&&l(a.$$nextSibling));a.$parent=a.$$nextSibling=a.$$prevSibling=a.$$childHead=a.$$childTail=a.$root=a.$$watchers=null}function m(){this.$id=++pb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this.$root=
1490 this;this.$$suspended=this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$$isolateBindings=null}function p(a){if(v.$$phase)throw d("inprog",v.$$phase);v.$$phase=a}function n(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function s(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function G(){}function t(){for(;y.length;)try{y.shift()()}catch(a){f(a)}e=null}function q(){null===e&&(e=k.defer(function(){v.$apply(t)},
1491 null,"$applyAsync"))}m.prototype={constructor:m,$new:function(b,c){var d;c=c||this;b?(d=new m,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=a(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(b||c!==this)&&d.$on("$destroy",h);return d},$watch:function(a,b,d,e){var f=g(a);b=B(b)?b:E;if(f.$$watchDelegate)return f.$$watchDelegate(this,b,d,f,a);var h=this,k=h.$$watchers,l=
1492 {fn:b,last:G,get:f,exp:e||a,eq:!!d};c=null;k||(k=h.$$watchers=[],k.$$digestWatchIndex=-1);k.unshift(l);k.$$digestWatchIndex++;n(this,1);return function(){var a=cb(k,l);0<=a&&(n(h,-1),a<k.$$digestWatchIndex&&k.$$digestWatchIndex--);c=null}},$watchGroup:function(a,b){function c(){h=!1;try{k?(k=!1,b(e,e,g)):b(e,d,g)}finally{for(var f=0;f<a.length;f++)d[f]=e[f]}}var d=Array(a.length),e=Array(a.length),f=[],g=this,h=!1,k=!0;if(!a.length){var l=!0;g.$evalAsync(function(){l&&b(e,e,g)});return function(){l=
1493 !1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});r(a,function(a,b){var d=g.$watch(a,function(a){e[b]=a;h||(h=!0,g.$evalAsync(c))});f.push(d)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=a;var b,d,g,h;if(!z(e)){if(D(e))if(ya(e))for(f!==n&&(f=n,t=f.length=0,l++),a=e.length,t!==a&&(l++,f.length=t=a),b=0;b<a;b++)h=f[b],g=e[b],d=h!==h&&g!==g,d||h===g||(l++,f[b]=g);else{f!==p&&(f=p={},t=0,l++);a=0;for(b in e)ta.call(e,
1494 b)&&(a++,g=e[b],h=f[b],b in f?(d=h!==h&&g!==g,d||h===g||(l++,f[b]=g)):(t++,f[b]=g,l++));if(t>a)for(b in l++,f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$$pure=g(a).literal;c.$stateful=!c.$$pure;var d=this,e,f,h,k=1<b.length,l=0,m=g(a,c),n=[],p={},s=!0,t=0;return this.$watch(m,function(){s?(s=!1,b(e,e,d)):b(e,h,d);if(k)if(D(e))if(ya(e)){h=Array(e.length);for(var a=0;a<e.length;a++)h[a]=e[a]}else for(a in h={},e)ta.call(e,a)&&(h[a]=e[a]);else h=e})},$digest:function(){var a,
1495 g,h,l,m,n,s,r=b,q,y=w.length?v:this,N=[],z,A;p("$digest");k.$$checkUrlChange();this===v&&null!==e&&(k.defer.cancel(e),t());c=null;do{s=!1;q=y;for(n=0;n<w.length;n++){try{A=w[n],l=A.fn,l(A.scope,A.locals)}catch(C){f(C)}c=null}w.length=0;a:do{if(n=!q.$$suspended&&q.$$watchers)for(n.$$digestWatchIndex=n.length;n.$$digestWatchIndex--;)try{if(a=n[n.$$digestWatchIndex])if(m=a.get,(g=m(q))!==(h=a.last)&&!(a.eq?va(g,h):X(g)&&X(h)))s=!0,c=a,a.last=a.eq?Ia(g,null):g,l=a.fn,l(g,h===G?g:h,q),5>r&&(z=4-r,N[z]||
1496 (N[z]=[]),N[z].push({msg:B(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:h}));else if(a===c){s=!1;break a}}catch(E){f(E)}if(!(n=!q.$$suspended&&q.$$watchersCount&&q.$$childHead||q!==y&&q.$$nextSibling))for(;q!==y&&!(n=q.$$nextSibling);)q=q.$parent}while(q=n);if((s||w.length)&&!r--)throw v.$$phase=null,d("infdig",b,N);}while(s||w.length);for(v.$$phase=null;J<x.length;)try{x[J++]()}catch(D){f(D)}x.length=J=0;k.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},
1497 $resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===v&&k.$$applicationDestroyed();n(this,-this.$$watchersCount);for(var b in this.$$listenerCount)s(this,this.$$listenerCount[b],b);a&&a.$$childHead===this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail===this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=
1498 this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=E;this.$on=this.$watch=this.$watchGroup=function(){return E};this.$$listeners={};this.$$nextSibling=null;l(this)}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){v.$$phase||w.length||k.defer(function(){w.length&&v.$digest()},null,"$evalAsync");w.push({scope:this,fn:g(a),locals:b})},$$postDigest:function(a){x.push(a)},$apply:function(a){try{p("$apply");try{return this.$eval(a)}finally{v.$$phase=
1499 null}}catch(b){f(b)}finally{try{v.$digest()}catch(c){throw f(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&y.push(b);a=g(a);q()},$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(){var d=c.indexOf(b);-1!==d&&(delete c[d],s(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=
1500 !0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=db([h],arguments,1),l,m;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(m=d.length;l<m;l++)if(d[l])try{d[l].apply(null,k)}catch(n){f(n)}else d.splice(l,1),l--,m--;if(g)break;e=e.$parent}while(e);h.currentScope=null;return h},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var g=db([e],arguments,
1501 1),h,k;c=d;){e.currentScope=c;d=c.$$listeners[a]||[];h=0;for(k=d.length;h<k;h++)if(d[h])try{d[h].apply(null,g)}catch(l){f(l)}else d.splice(h,1),h--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=null;return e}};var v=new m,w=v.$$asyncQueue=[],x=v.$$postDigestQueue=[],y=v.$$applyAsyncQueue=[],J=0;return v}]}function Le(){var a=/^\s*(https?|s?ftp|mailto|tel|file):/,b=/^\s*((https?|ftp|file|blob):|data:image\/)/;
1502 this.aHrefSanitizationWhitelist=function(b){return w(b)?(a=b,this):a};this.imgSrcSanitizationWhitelist=function(a){return w(a)?(b=a,this):b};this.$get=function(){return function(d,c){var e=c?b:a,f=ga(d&&d.trim()).href;return""===f||f.match(e)?d:"unsafe:"+f}}}function Sg(a){if("self"===a)return a;if(A(a)){if(-1<a.indexOf("***"))throw Ea("iwcard",a);a=Md(a).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*");return new RegExp("^"+a+"$")}if(ab(a))return new RegExp("^"+a.source+"$");throw Ea("imatcher");
1503 }function Nd(a){var b=[];w(a)&&r(a,function(a){b.push(Sg(a))});return b}function $f(){this.SCE_CONTEXTS=V;var a=["self"],b=[];this.resourceUrlWhitelist=function(b){arguments.length&&(a=Nd(b));return a};this.resourceUrlBlacklist=function(a){arguments.length&&(b=Nd(a));return b};this.$get=["$injector","$$sanitizeUri",function(d,c){function e(a,b){var c;"self"===a?(c=Bc(b,Od))||(C.document.baseURI?c=C.document.baseURI:(Na||(Na=C.document.createElement("a"),Na.href=".",Na=Na.cloneNode(!1)),c=Na.href),
1504 c=Bc(b,c)):c=!!a.exec(b.href);return c}function f(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};return b}var g=function(a){throw Ea("unsafe");};d.has("$sanitize")&&(g=d.get("$sanitize"));var k=f(),h={};h[V.HTML]=f(k);h[V.CSS]=f(k);h[V.MEDIA_URL]=f(k);h[V.URL]=f(h[V.MEDIA_URL]);h[V.JS]=f(k);h[V.RESOURCE_URL]=
1505 f(h[V.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw Ea("icontext",a,b);if(null===b||z(b)||""===b)return b;if("string"!==typeof b)throw Ea("itype",a);return new c(b)},getTrusted:function(d,f){if(null===f||z(f)||""===f)return f;var k=h.hasOwnProperty(d)?h[d]:null;if(k&&f instanceof k)return f.$$unwrapTrustedValue();B(f.$$unwrapTrustedValue)&&(f=f.$$unwrapTrustedValue());if(d===V.MEDIA_URL||d===V.URL)return c(f.toString(),d===V.MEDIA_URL);if(d===V.RESOURCE_URL){var k=
1506 ga(f.toString()),n,s,r=!1;n=0;for(s=a.length;n<s;n++)if(e(a[n],k)){r=!0;break}if(r)for(n=0,s=b.length;n<s;n++)if(e(b[n],k)){r=!1;break}if(r)return f;throw Ea("insecurl",f.toString());}if(d===V.HTML)return g(f);throw Ea("unsafe");},valueOf:function(a){return a instanceof k?a.$$unwrapTrustedValue():a}}}]}function Zf(){var a=!0;this.enabled=function(b){arguments.length&&(a=!!b);return a};this.$get=["$parse","$sceDelegate",function(b,d){if(a&&8>Ca)throw Ea("iequirks");var c=ja(V);c.isEnabled=function(){return a};
1507 c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},c.valueOf=Ta);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;r(V,function(a,b){var d=K(b);c[("parse_as_"+d).replace(Cc,wb)]=function(b){return e(a,b)};c[("get_trusted_"+d).replace(Cc,wb)]=function(b){return f(a,b)};c[("trust_as_"+d).replace(Cc,wb)]=function(b){return g(a,b)}});
1508 return c}]}function ag(){this.$get=["$window","$document",function(a,b){var d={},c=!((!a.nw||!a.nw.process)&&a.chrome&&(a.chrome.app&&a.chrome.app.runtime||!a.chrome.app&&a.chrome.runtime&&a.chrome.runtime.id))&&a.history&&a.history.pushState,e=fa((/android (\d+)/.exec(K((a.navigator||{}).userAgent))||[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},k=g.body&&g.body.style,h=!1,l=!1;k&&(h=!!("transition"in k||"webkitTransition"in k),l=!!("animation"in k||"webkitAnimation"in k));return{history:!(!c||
1509 4>e||f),hasEvent:function(a){if("input"===a&&Ca)return!1;if(z(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Aa(),transitions:h,animations:l,android:e}}]}function bg(){this.$get=ia(function(a){return new Tg(a)})}function Tg(a){function b(){var a=e.pop();return a&&a.cb}function d(a){for(var b=e.length-1;0<=b;--b){var c=e[b];if(c.type===a)return e.splice(b,1),c.cb}}var c={},e=[],f=this.ALL_TASKS_TYPE="$$all$$",g=this.DEFAULT_TASK_TYPE="$$default$$";this.completeTask=function(e,
1510 h){h=h||g;try{e()}finally{var l;l=h||g;c[l]&&(c[l]--,c[f]--);l=c[h];var m=c[f];if(!m||!l)for(l=m?d:b;m=l(h);)try{m()}catch(p){a.error(p)}}};this.incTaskCount=function(a){a=a||g;c[a]=(c[a]||0)+1;c[f]=(c[f]||0)+1};this.notifyWhenNoPendingTasks=function(a,b){b=b||f;c[b]?e.push({type:b,cb:a}):a()}}function dg(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(b,d,c,e,f){function g(k,h){g.totalPendingRequests++;if(!A(k)||
1511 z(d.get(k)))k=f.getTrustedResourceUrl(k);var l=c.defaults&&c.defaults.transformResponse;H(l)?l=l.filter(function(a){return a!==vc}):l===vc&&(l=null);return c.get(k,S({cache:d,transformResponse:l},a)).finally(function(){g.totalPendingRequests--}).then(function(a){return d.put(k,a.data)},function(a){h||(a=Ug("tpload",k,a.status,a.statusText),b(a));return e.reject(a)})}g.totalPendingRequests=0;return g}]}function eg(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,
1512 b,d){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var c=ca.element(a).data("$binding");c&&r(c,function(c){d?(new RegExp("(^|\\s)"+Md(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!==c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-","data-ng-","ng\\:"],k=0;k<g.length;++k){var h=a.querySelectorAll("["+g[k]+"model"+(d?"=":"*=")+'"'+b+'"]');if(h.length)return h}},getLocation:function(){return d.url()},setLocation:function(b){b!==d.url()&&(d.url(b),a.$digest())},
1513 whenStable:function(a){b.notifyWhenNoOutstandingRequests(a)}}}]}function fg(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(a,b,d,c,e){function f(f,h,l){B(f)||(l=h,h=f,f=E);var m=Ha.call(arguments,3),p=w(l)&&!l,n=(p?c:d).defer(),s=n.promise,r;r=b.defer(function(){try{n.resolve(f.apply(null,m))}catch(b){n.reject(b),e(b)}finally{delete g[s.$$timeoutId]}p||a.$apply()},h,"$timeout");s.$$timeoutId=r;g[r]=n;return s}var g={};f.cancel=function(a){if(!a)return!1;if(!a.hasOwnProperty("$$timeoutId"))throw Vg("badprom");
1514 if(!g.hasOwnProperty(a.$$timeoutId))return!1;a=a.$$timeoutId;var c=g[a],d=c.promise;d.$$state&&(d.$$state.pur=!0);c.reject("canceled");delete g[a];return b.defer.cancel(a)};return f}]}function ga(a){if(!A(a))return a;Ca&&(aa.setAttribute("href",a),a=aa.href);aa.setAttribute("href",a);a=aa.hostname;!Wg&&-1<a.indexOf(":")&&(a="["+a+"]");return{href:aa.href,protocol:aa.protocol?aa.protocol.replace(/:$/,""):"",host:aa.host,search:aa.search?aa.search.replace(/^\?/,""):"",hash:aa.hash?aa.hash.replace(/^#/,
1515 ""):"",hostname:a,port:aa.port,pathname:"/"===aa.pathname.charAt(0)?aa.pathname:"/"+aa.pathname}}function Jg(a){var b=[Od].concat(a.map(ga));return function(a){a=ga(a);return b.some(Bc.bind(null,a))}}function Bc(a,b){a=ga(a);b=ga(b);return a.protocol===b.protocol&&a.host===b.host}function gg(){this.$get=ia(C)}function Pd(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var d=a[0]||{},c={},e="";return function(){var a,g,k,h,l;try{a=d.cookie||""}catch(m){a=""}if(a!==e)for(e=a,a=
1516 e.split("; "),c={},k=0;k<a.length;k++)g=a[k],h=g.indexOf("="),0<h&&(l=b(g.substring(0,h)),z(c[l])&&(c[l]=b(g.substring(h+1))));return c}}function kg(){this.$get=Pd}function dd(a){function b(d,c){if(D(d)){var e={};r(d,function(a,c){e[c]=b(c,a)});return e}return a.factory(d+"Filter",c)}this.register=b;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];b("currency",Qd);b("date",Rd);b("filter",Xg);b("json",Yg);b("limitTo",Zg);b("lowercase",$g);b("number",Sd);b("orderBy",
1517 Td);b("uppercase",ah)}function Xg(){return function(a,b,d,c){if(!ya(a)){if(null==a)return a;throw F("filter")("notarray",a);}c=c||"$";var e;switch(Dc(b)){case "function":break;case "boolean":case "null":case "number":case "string":e=!0;case "object":b=bh(b,d,c,e);break;default:return a}return Array.prototype.filter.call(a,b)}}function bh(a,b,d,c){var e=D(a)&&d in a;!0===b?b=va:B(b)||(b=function(a,b){if(z(a))return!1;if(null===a||null===b)return a===b;if(D(b)||D(a)&&!bc(a))return!1;a=K(""+a);b=K(""+
1518 b);return-1!==a.indexOf(b)});return function(f){return e&&!D(f)?Fa(f,a[d],b,d,!1):Fa(f,a,b,d,c)}}function Fa(a,b,d,c,e,f){var g=Dc(a),k=Dc(b);if("string"===k&&"!"===b.charAt(0))return!Fa(a,b.substring(1),d,c,e);if(H(a))return a.some(function(a){return Fa(a,b,d,c,e)});switch(g){case "object":var h;if(e){for(h in a)if(h.charAt&&"$"!==h.charAt(0)&&Fa(a[h],b,d,c,!0))return!0;return f?!1:Fa(a,b,d,c,!1)}if("object"===k){for(h in b)if(f=b[h],!B(f)&&!z(f)&&(g=h===c,!Fa(g?a:a[h],f,d,c,g,g)))return!1;return!0}return d(a,
1519 b);case "function":return!1;default:return d(a,b)}}function Dc(a){return null===a?"null":typeof a}function Qd(a){var b=a.NUMBER_FORMATS;return function(a,c,e){z(c)&&(c=b.CURRENCY_SYM);z(e)&&(e=b.PATTERNS[1].maxFrac);var f=c?/\u00A4/g:/\s*\u00A4\s*/g;return null==a?a:Ud(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,e).replace(f,c)}}function Sd(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Ud(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function ch(a){var b=0,d,c,e,f,g;-1<(c=a.indexOf(Vd))&&
1520 (a=a.replace(Vd,""));0<(e=a.search(/e/i))?(0>c&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)===Ec;e++);if(e===(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)===Ec;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Wd&&(d=d.splice(0,Wd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function dh(a,b,d,c){var e=a.d,f=e.length-a.i;b=z(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0<d){e.splice(Math.max(a.i,d));for(var g=d;g<e.length;g++)e[g]=0}else for(f=Math.max(0,f),a.i=
1521 1,e.length=Math.max(1,d=b+1),e[0]=0,g=1;g<d;g++)e[g]=0;if(5<=c)if(0>d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;f<Math.max(0,b);f++)e.push(0);if(b=e.reduceRight(function(a,b,c,d){b+=a;d[c]=b%10;return Math.floor(b/10)},0))e.unshift(b),a.i++}function Ud(a,b,d,c,e){if(!A(a)&&!W(a)||isNaN(a))return"";var f=!isFinite(a),g=!1,k=Math.abs(a)+"",h="";if(f)h="\u221e";else{g=ch(k);dh(g,e,b.minFrac,b.maxFrac);h=g.d;k=g.i;e=g.e;f=[];for(g=h.reduce(function(a,b){return a&&!b},
1522 !0);0>k;)h.unshift(0),k++;0<k?f=h.splice(k,h.length):(f=h,h=[0]);k=[];for(h.length>=b.lgSize&&k.unshift(h.splice(-b.lgSize,h.length).join(""));h.length>b.gSize;)k.unshift(h.splice(-b.gSize,h.length).join(""));h.length&&k.unshift(h.join(""));h=k.join(d);f.length&&(h+=c+f.join(""));e&&(h+="e+"+e)}return 0>a&&!g?b.negPre+h+b.negSuf:b.posPre+h+b.posSuf}function Ob(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length<b;)a=Ec+a;d&&(a=a.substr(a.length-b));return e+a}function ea(a,
1523 b,d,c,e){d=d||0;return function(f){f=f["get"+a]();if(0<d||f>-d)f+=d;0===f&&-12===d&&(f=12);return Ob(f,b,c,e)}}function kb(a,b,d){return function(c,e){var f=c["get"+a](),g=ub((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Xd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Yd(a){return function(b){var d=Xd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Ob(b,a)}}function Fc(a,b){return 0>=
1524 a.getFullYear()?b.ERAS[0]:b.ERAS[1]}function Rd(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,k=b[8]?a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=fa(b[9]+b[10]),g=fa(b[9]+b[11]));k.call(a,fa(b[1]),fa(b[2])-1,fa(b[3]));f=fa(b[4]||0)-f;g=fa(b[5]||0)-g;k=fa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));h.call(a,f,g,k,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,
1525 d,f){var g="",k=[],h,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;A(c)&&(c=eh.test(c)?fa(c):b(c));W(c)&&(c=new Date(c));if(!ha(c)||!isFinite(c.getTime()))return c;for(;d;)(l=fh.exec(d))?(k=db(k,l,1),d=k.pop()):(k.push(d),d=null);var m=c.getTimezoneOffset();f&&(m=ec(f,m),c=fc(c,f,!0));r(k,function(b){h=gh[b];g+=h?h(c,a.DATETIME_FORMATS,m):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Yg(){return function(a,b){z(b)&&(b=2);return eb(a,b)}}function Zg(){return function(a,
1526 b,d){b=Infinity===Math.abs(Number(b))?Number(b):fa(b);if(X(b))return a;W(a)&&(a=a.toString());if(!ya(a))return a;d=!d||isNaN(d)?0:fa(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?Gc(a,d,d+b):0===d?Gc(a,b,a.length):Gc(a,Math.max(0,d+b),d)}}function Gc(a,b,d){return A(a)?a.slice(b,d):Ha.call(a,b,d)}function Td(a){function b(b){return b.map(function(b){var c=1,d=Ta;if(B(b))d=b;else if(A(b)){if("+"===b.charAt(0)||"-"===b.charAt(0))c="-"===b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(d=a(b),d.constant))var e=
1527 d(),d=function(a){return a[e]}}return{get:d,descending:c}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function c(a,b){var c=0,d=a.type,h=b.type;if(d===h){var h=a.value,l=b.value;"string"===d?(h=h.toLowerCase(),l=l.toLowerCase()):"object"===d&&(D(h)&&(h=a.index),D(l)&&(l=b.index));h!==l&&(c=h<l?-1:1)}else c="undefined"===d?1:"undefined"===h?-1:"null"===d?1:"null"===h?-1:d<h?-1:1;return c}return function(a,f,g,k){if(null==a)return a;if(!ya(a))throw F("orderBy")("notarray",
1528 a);H(f)||(f=[f]);0===f.length&&(f=["+"]);var h=b(f),l=g?-1:1,m=B(k)?k:c;a=Array.prototype.map.call(a,function(a,b){return{value:a,tieBreaker:{value:b,type:"number",index:b},predicateValues:h.map(function(c){var e=c.get(a);c=typeof e;if(null===e)c="null";else if("object"===c)a:{if(B(e.valueOf)&&(e=e.valueOf(),d(e)))break a;bc(e)&&(e=e.toString(),d(e))}return{value:e,type:c,index:b}})}});a.sort(function(a,b){for(var d=0,e=h.length;d<e;d++){var f=m(a.predicateValues[d],b.predicateValues[d]);if(f)return f*
1529 h[d].descending*l}return(m(a.tieBreaker,b.tieBreaker)||c(a.tieBreaker,b.tieBreaker))*l});return a=a.map(function(a){return a.value})}}function Ra(a){B(a)&&(a={link:a});a.restrict=a.restrict||"AC";return ia(a)}function Pb(a,b,d,c,e){this.$$controls=[];this.$error={};this.$$success={};this.$pending=void 0;this.$name=e(b.name||b.ngForm||"")(d);this.$dirty=!1;this.$valid=this.$pristine=!0;this.$submitted=this.$invalid=!1;this.$$parentForm=lb;this.$$element=a;this.$$animate=c;Zd(this)}function Zd(a){a.$$classCache=
1530 {};a.$$classCache[$d]=!(a.$$classCache[mb]=a.$$element.hasClass(mb))}function ae(a){function b(a,b,c){c&&!a.$$classCache[b]?(a.$$animate.addClass(a.$$element,b),a.$$classCache[b]=!0):!c&&a.$$classCache[b]&&(a.$$animate.removeClass(a.$$element,b),a.$$classCache[b]=!1)}function d(a,c,d){c=c?"-"+Vc(c,"-"):"";b(a,mb+c,!0===d);b(a,$d+c,!1===d)}var c=a.set,e=a.unset;a.clazz.prototype.$setValidity=function(a,g,k){z(g)?(this.$pending||(this.$pending={}),c(this.$pending,a,k)):(this.$pending&&e(this.$pending,
1531 a,k),be(this.$pending)&&(this.$pending=void 0));Ga(g)?g?(e(this.$error,a,k),c(this.$$success,a,k)):(c(this.$error,a,k),e(this.$$success,a,k)):(e(this.$error,a,k),e(this.$$success,a,k));this.$pending?(b(this,"ng-pending",!0),this.$valid=this.$invalid=void 0,d(this,"",null)):(b(this,"ng-pending",!1),this.$valid=be(this.$error),this.$invalid=!this.$valid,d(this,"",this.$valid));g=this.$pending&&this.$pending[a]?void 0:this.$error[a]?!1:this.$$success[a]?!0:null;d(this,a,g);this.$$parentForm.$setValidity(a,
1532 g,this)}}function be(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function Hc(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function Sa(a,b,d,c,e,f){var g=K(b[0].type);if(!e.android){var k=!1;b.on("compositionstart",function(){k=!0});b.on("compositionupdate",function(a){if(z(a.data)||""===a.data)k=!1});b.on("compositionend",function(){k=!1;l()})}var h,l=function(a){h&&(f.defer.cancel(h),h=null);if(!k){var e=b.val();a=a&&a.type;"password"===g||d.ngTrim&&
1533 "false"===d.ngTrim||(e=U(e));(c.$viewValue!==e||""===e&&c.$$hasNativeValidators)&&c.$setViewValue(e,a)}};if(e.hasEvent("input"))b.on("input",l);else{var m=function(a,b,c){h||(h=f.defer(function(){h=null;b&&b.value===c||l(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||15<b&&19>b||37<=b&&40>=b||m(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut drop",m)}b.on("change",l);if(ce[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!h){var b=this.validity,
1534 c=b.badInput,d=b.typeMismatch;h=f.defer(function(){h=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Qb(a,b){return function(d,c){var e,f;if(ha(d))return d;if(A(d)){'"'===d.charAt(0)&&'"'===d.charAt(d.length-1)&&(d=d.substring(1,d.length-1));if(hh.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),
1535 ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(a,c){c<b.length&&(f[b[c]]=+a)}),e=new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0),100>f.yyyy&&e.setFullYear(f.yyyy),e}return NaN}}function nb(a,b,d,c){return function(e,f,g,k,h,l,m,p){function n(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function s(a){return w(a)&&!ha(a)?r(a)||void 0:a}function r(a,b){var c=k.$options.getOption("timezone");v&&v!==c&&(b=Sc(b,ec(v)));var e=d(a,
1536 b);!isNaN(e)&&c&&(e=fc(e,c));return e}Ic(e,f,g,k,a);Sa(e,f,g,k,h,l);var t="time"===a||"datetimelocal"===a,q,v;k.$parsers.push(function(c){if(k.$isEmpty(c))return null;if(b.test(c))return r(c,q);k.$$parserName=a});k.$formatters.push(function(a){if(a&&!ha(a))throw ob("datefmt",a);if(n(a)){q=a;var b=k.$options.getOption("timezone");b&&(v=b,q=fc(q,b,!0));var d=c;t&&A(k.$options.getOption("timeSecondsFormat"))&&(d=c.replace("ss.sss",k.$options.getOption("timeSecondsFormat")).replace(/:$/,""));a=m("date")(a,
1537 d,b);t&&k.$options.getOption("timeStripZeroSeconds")&&(a=a.replace(/(?::00)?(?:\.000)?$/,""));return a}v=q=null;return""});if(w(g.min)||g.ngMin){var x=g.min||p(g.ngMin)(e),B=s(x);k.$validators.min=function(a){return!n(a)||z(B)||d(a)>=B};g.$observe("min",function(a){a!==x&&(B=s(a),x=a,k.$validate())})}if(w(g.max)||g.ngMax){var y=g.max||p(g.ngMax)(e),J=s(y);k.$validators.max=function(a){return!n(a)||z(J)||d(a)<=J};g.$observe("max",function(a){a!==y&&(J=s(a),y=a,k.$validate())})}}}function Ic(a,b,d,
1538 c,e){(c.$$hasNativeValidators=D(b[0].validity))&&c.$parsers.push(function(a){var d=b.prop("validity")||{};if(d.badInput||d.typeMismatch)c.$$parserName=e;else return a})}function de(a){a.$parsers.push(function(b){if(a.$isEmpty(b))return null;if(ih.test(b))return parseFloat(b);a.$$parserName="number"});a.$formatters.push(function(b){if(!a.$isEmpty(b)){if(!W(b))throw ob("numfmt",b);b=b.toString()}return b})}function na(a){w(a)&&!W(a)&&(a=parseFloat(a));return X(a)?void 0:a}function Jc(a){var b=a.toString(),
1539 d=b.indexOf(".");return-1===d?-1<a&&1>a&&(a=/e-(\d+)$/.exec(b))?Number(a[1]):0:b.length-d-1}function ee(a,b,d){a=Number(a);var c=(a|0)!==a,e=(b|0)!==b,f=(d|0)!==d;if(c||e||f){var g=c?Jc(a):0,k=e?Jc(b):0,h=f?Jc(d):0,g=Math.max(g,k,h),g=Math.pow(10,g);a*=g;b*=g;d*=g;c&&(a=Math.round(a));e&&(b=Math.round(b));f&&(d=Math.round(d))}return 0===(a-b)%d}function fe(a,b,d,c,e){if(w(c)){a=a(c);if(!a.constant)throw ob("constexpr",d,c);return a(b)}return e}function Kc(a,b){function d(a,b){if(!a||!a.length)return[];
1540 if(!b||!b.length)return a;var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],m=0;m<b.length;m++)if(e===b[m])continue a;c.push(e)}return c}function c(a){if(!a)return a;var b=a;H(a)?b=a.map(c).join(" "):D(a)?b=Object.keys(a).filter(function(b){return a[b]}).join(" "):A(a)||(b=a+"");return b}a="ngClass"+a;var e;return["$parse",function(f){return{restrict:"AC",link:function(g,k,h){function l(a,b){var c=[];r(a,function(a){if(0<b||p[a])p[a]=(p[a]||0)+b,p[a]===+(0<b)&&c.push(a)});return c.join(" ")}function m(a){if(a===
1541 b){var c=s,c=l(c&&c.split(" "),1);h.$addClass(c)}else c=s,c=l(c&&c.split(" "),-1),h.$removeClass(c);n=a}var p=k.data("$classCounts"),n=!0,s;p||(p=T(),k.data("$classCounts",p));"ngClass"!==a&&(e||(e=f("$index",function(a){return a&1})),g.$watch(e,m));g.$watch(f(h[a],c),function(a){if(n===b){var c=s&&s.split(" "),e=a&&a.split(" "),f=d(c,e),c=d(e,c),f=l(f,-1),c=l(c,1);h.$addClass(c);h.$removeClass(f)}s=a})}}}]}function qd(a,b,d,c,e,f){return{restrict:"A",compile:function(g,k){var h=a(k[c]);return function(a,
1542 c){c.on(e,function(c){var e=function(){h(a,{$event:c})};if(b.$$phase)if(f)a.$evalAsync(e);else try{e()}catch(g){d(g)}else a.$apply(e)})}}}}function Rb(a,b,d,c,e,f,g,k,h){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=void 0;this.$validators={};this.$asyncValidators={};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.$error={};this.$$success={};this.$pending=
1543 void 0;this.$name=h(d.name||"",!1)(a);this.$$parentForm=lb;this.$options=Sb;this.$$updateEvents="";this.$$updateEventHandler=this.$$updateEventHandler.bind(this);this.$$parsedNgModel=e(d.ngModel);this.$$parsedNgModelAssign=this.$$parsedNgModel.assign;this.$$ngModelGet=this.$$parsedNgModel;this.$$ngModelSet=this.$$parsedNgModelAssign;this.$$pendingDebounce=null;this.$$parserValid=void 0;this.$$parserName="parse";this.$$currentValidationRunId=0;this.$$scope=a;this.$$rootScope=a.$root;this.$$attr=d;
1544 this.$$element=c;this.$$animate=f;this.$$timeout=g;this.$$parse=e;this.$$q=k;this.$$exceptionHandler=b;Zd(this);jh(this)}function jh(a){a.$$scope.$watch(function(b){b=a.$$ngModelGet(b);b===a.$modelValue||a.$modelValue!==a.$modelValue&&b!==b||a.$$setModelValue(b);return b})}function Lc(a){this.$$options=a}function ge(a,b){r(b,function(b,c){w(a[c])||(a[c]=b)})}function Oa(a,b){a.prop("selected",b);a.attr("selected",b)}function he(a,b,d){if(a){A(a)&&(a=new RegExp("^"+a+"$"));if(!a.test)throw F("ngPattern")("noregexp",
1545 b,a,za(d));return a}}function Tb(a){a=fa(a);return X(a)?-1:a}var Wb={objectMaxDepth:5,urlErrorParamsEnabled:!0},ie=/^\/(.+)\/([a-z]*)$/,ta=Object.prototype.hasOwnProperty,K=function(a){return A(a)?a.toLowerCase():a},ub=function(a){return A(a)?a.toUpperCase():a},Ca,x,rb,Ha=[].slice,Fg=[].splice,kh=[].push,la=Object.prototype.toString,Pc=Object.getPrototypeOf,pa=F("ng"),ca=C.angular||(C.angular={}),kc,pb=0;Ca=C.document.documentMode;var X=Number.isNaN||function(a){return a!==a};E.$inject=[];Ta.$inject=
1546 [];var ve=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,U=function(a){return A(a)?a.trim():a},Md=function(a){return a.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Aa=function(){if(!w(Aa.rules)){var a=C.document.querySelector("[ng-csp]")||C.document.querySelector("[data-ng-csp]");if(a){var b=a.getAttribute("ng-csp")||a.getAttribute("data-ng-csp");Aa.rules={noUnsafeEval:!b||-1!==b.indexOf("no-unsafe-eval"),noInlineStyle:!b||-1!==
1547 b.indexOf("no-inline-style")}}else{a=Aa;try{new Function(""),b=!1}catch(d){b=!0}a.rules={noUnsafeEval:b,noInlineStyle:!1}}}return Aa.rules},qb=function(){if(w(qb.name_))return qb.name_;var a,b,d=Qa.length,c,e;for(b=0;b<d;++b)if(c=Qa[b],a=C.document.querySelector("["+c.replace(":","\\:")+"jq]")){e=a.getAttribute(c+"jq");break}return qb.name_=e},xe=/:/g,Qa=["ng-","data-ng-","ng:","x-ng-"],Be=function(a){var b=a.currentScript;if(!b)return!0;if(!(b instanceof C.HTMLScriptElement||b instanceof C.SVGScriptElement))return!1;
1548 b=b.attributes;return[b.getNamedItem("src"),b.getNamedItem("href"),b.getNamedItem("xlink:href")].every(function(b){if(!b)return!0;if(!b.value)return!1;var c=a.createElement("a");c.href=b.value;if(a.location.origin===c.origin)return!0;switch(c.protocol){case "http:":case "https:":case "ftp:":case "blob:":case "file:":case "data:":return!0;default:return!1}})}(C.document),Ee=/[A-Z]/g,Wc=!1,Pa=3,Ke={full:"1.7.7",major:1,minor:7,dot:7,codeName:"kingly-exiting"};Y.expando="ng339";var Ka=Y.cache={},pg=
1549 1;Y._data=function(a){return this.cache[a[this.expando]]||{}};var lg=/-([a-z])/g,lh=/^-ms-/,Ab={mouseleave:"mouseout",mouseenter:"mouseover"},nc=F("jqLite"),og=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,mc=/<|&#?\w+;/,mg=/<([\w:-]+)/,ng=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,oa={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>",
1550 "</tr></tbody></table>"],_default:[0,"",""]};oa.optgroup=oa.option;oa.tbody=oa.tfoot=oa.colgroup=oa.caption=oa.thead;oa.th=oa.td;var ug=C.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Wa=Y.prototype={ready:fd,toString:function(){var a=[];r(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?x(this[a]):x(this[this.length+a])},length:0,push:kh,sort:[].sort,splice:[].splice},Gb={};r("multiple selected checked disabled readOnly required open".split(" "),
1551 function(a){Gb[K(a)]=a});var md={};r("input select option textarea button form details".split(" "),function(a){md[a]=!0});var td={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};r({data:rc,removeData:qc,hasData:function(a){for(var b in Ka[a.ng339])return!0;return!1},cleanData:function(a){for(var b=0,d=a.length;b<d;b++)qc(a[b]),id(a[b])}},function(a,b){Y[b]=a});r({data:rc,inheritedData:Eb,scope:function(a){return x.data(a,"$scope")||Eb(a.parentNode||
1552 a,["$isolateScope","$scope"])},isolateScope:function(a){return x.data(a,"$isolateScope")||x.data(a,"$isolateScopeNoTemplate")},controller:jd,injector:function(a){return Eb(a,"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:Bb,css:function(a,b,d){b=xb(b.replace(lh,"ms-"));if(w(d))a.style[b]=d;else return a.style[b]},attr:function(a,b,d){var c=a.nodeType;if(c!==Pa&&2!==c&&8!==c&&a.getAttribute){var c=K(b),e=Gb[c];if(w(d))null===d||!1===d&&e?a.removeAttribute(b):a.setAttribute(b,
1553 e?c:d);else return a=a.getAttribute(b),e&&null!==a&&(a=c),null===a?void 0:a}},prop:function(a,b,d){if(w(d))a[b]=d;else return a[b]},text:function(){function a(a,d){if(z(d)){var c=a.nodeType;return 1===c||c===Pa?a.textContent:""}a.textContent=d}a.$dv="";return a}(),val:function(a,b){if(z(b)){if(a.multiple&&"select"===ua(a)){var d=[];r(a.options,function(a){a.selected&&d.push(a.value||a.text)});return d}return a.value}a.value=b},html:function(a,b){if(z(b))return a.innerHTML;yb(a,!0);a.innerHTML=b},
1554 empty:kd},function(a,b){Y.prototype[b]=function(b,c){var e,f,g=this.length;if(a!==kd&&z(2===a.length&&a!==Bb&&a!==jd?b:c)){if(D(b)){for(e=0;e<g;e++)if(a===rc)a(this[e],b);else for(f in b)a(this[e],f,b[f]);return this}e=a.$dv;g=z(e)?Math.min(g,1):g;for(f=0;f<g;f++){var k=a(this[f],b,c);e=e?e+k:k}return e}for(e=0;e<g;e++)a(this[e],b,c);return this}});r({removeData:qc,on:function(a,b,d,c){if(w(c))throw nc("onargs");if(lc(a)){c=zb(a,!0);var e=c.events,f=c.handle;f||(f=c.handle=rg(a,e));c=0<=b.indexOf(" ")?
1555 b.split(" "):[b];for(var g=c.length,k=function(b,c,g){var k=e[b];k||(k=e[b]=[],k.specialHandlerWrapper=c,"$destroy"===b||g||a.addEventListener(b,f));k.push(d)};g--;)b=c[g],Ab[b]?(k(Ab[b],tg),k(b,void 0,!0)):k(b)}},off:id,one:function(a,b,d){a=x(a);a.on(b,function e(){a.off(b,d);a.off(b,e)});a.on(b,d)},replaceWith:function(a,b){var d,c=a.parentNode;yb(a);r(new Y(b),function(b){d?c.insertBefore(b,d.nextSibling):c.replaceChild(b,a);d=b})},children:function(a){var b=[];r(a.childNodes,function(a){1===
1556 a.nodeType&&b.push(a)});return b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,b){var d=a.nodeType;if(1===d||11===d){b=new Y(b);for(var d=0,c=b.length;d<c;d++)a.appendChild(b[d])}},prepend:function(a,b){if(1===a.nodeType){var d=a.firstChild;r(new Y(b),function(b){a.insertBefore(b,d)})}},wrap:function(a,b){var d=x(b).eq(0).clone()[0],c=a.parentNode;c&&c.replaceChild(d,a);d.appendChild(a)},remove:Fb,detach:function(a){Fb(a,!0)},after:function(a,b){var d=a,c=a.parentNode;
1557 if(c){b=new Y(b);for(var e=0,f=b.length;e<f;e++){var g=b[e];c.insertBefore(g,d.nextSibling);d=g}}},addClass:Db,removeClass:Cb,toggleClass:function(a,b,d){b&&r(b.split(" "),function(b){var e=d;z(e)&&(e=!Bb(a,b));(e?Db:Cb)(a,b)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},find:function(a,b){return a.getElementsByTagName?a.getElementsByTagName(b):[]},clone:pc,triggerHandler:function(a,b,d){var c,e,f=b.type||b,g=zb(a);if(g=(g=g&&g.events)&&
1558 g[f])c={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:E,type:f,target:a},b.type&&(c=S(c,b)),b=ja(g),e=d?[c].concat(d):[c],r(b,function(b){c.isImmediatePropagationStopped()||b.apply(a,e)})}},function(a,b){Y.prototype[b]=function(b,c,e){for(var f,g=0,k=this.length;g<
1559 k;g++)z(f)?(f=a(this[g],b,c,e),w(f)&&(f=x(f))):oc(f,a(this[g],b,c,e));return w(f)?f:this}});Y.prototype.bind=Y.prototype.on;Y.prototype.unbind=Y.prototype.off;var mh=Object.create(null);nd.prototype={_idx:function(a){a!==this._lastKey&&(this._lastKey=a,this._lastIndex=this._keys.indexOf(a));return this._lastIndex},_transformKey:function(a){return X(a)?mh:a},get:function(a){a=this._transformKey(a);a=this._idx(a);if(-1!==a)return this._values[a]},has:function(a){a=this._transformKey(a);return-1!==this._idx(a)},
1560 set:function(a,b){a=this._transformKey(a);var d=this._idx(a);-1===d&&(d=this._lastIndex=this._keys.length);this._keys[d]=a;this._values[d]=b},delete:function(a){a=this._transformKey(a);a=this._idx(a);if(-1===a)return!1;this._keys.splice(a,1);this._values.splice(a,1);this._lastKey=NaN;this._lastIndex=-1;return!0}};var Hb=nd,jg=[function(){this.$get=[function(){return Hb}]}],wg=/^([^(]+?)=>/,xg=/^[^(]*\(\s*([^)]*)\)/m,nh=/,/,oh=/^\s*(_?)(\S+?)\1\s*$/,vg=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ba=F("$injector");
1561 fb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw A(d)&&d||(d=a.name||yg(a)),Ba("strictdi",d);b=od(a);r(b[1].split(nh),function(a){a.replace(oh,function(a,b,d){c.push(d)})})}a.$inject=c}}else H(a)?(b=a.length-1,sb(a[b],"fn"),c=a.slice(0,b)):sb(a,"fn",!0);return c};var je=F("$animate"),zf=function(){this.$get=E},Af=function(){var a=new Hb,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=A(b)?b.split(" "):
1562 H(b)?b:[],r(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){r(b,function(b){var c=a.get(b);if(c){var d=zg(b.attr("class")),e="",f="";r(c,function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});r(b,function(a){e&&Db(a,e);f&&Cb(a,f)});a.delete(b)}});b.length=0}return{enabled:E,on:E,off:E,pin:E,push:function(g,k,h,l){l&&l();h=h||{};h.from&&g.css(h.from);h.to&&g.css(h.to);if(h.addClass||h.removeClass)if(k=h.addClass,l=h.removeClass,h=a.get(g)||{},k=e(h,k,!0),l=e(h,l,!1),
1563 k||l)a.set(g,h),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},xf=["$provide",function(a){var b=this,d=null,c=null;this.$$registeredAnimations=Object.create(null);this.register=function(c,d){if(c&&"."!==c.charAt(0))throw je("notcsel",c);var g=c+"-animation";b.$$registeredAnimations[c.substr(1)]=g;a.factory(g,d)};this.customFilter=function(a){1===arguments.length&&(c=B(a)?a:null);return c};this.classNameFilter=function(a){if(1===arguments.length&&(d=a instanceof RegExp?
1564 a:null)&&/[(\s|\/)]ng-animate[(\s|\/)]/.test(d.toString()))throw d=null,je("nongcls","ng-animate");return d};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var e;a:{for(e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){e=f;break a}}e=void 0}!e||e.parentNode||e.previousElementSibling||(d=null)}d?d.after(a):c.prepend(a)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.cancel&&a.cancel()},enter:function(c,d,h,l){d=d&&x(d);h=h&&x(h);d=d||h.parent();b(c,d,h);return a.push(c,
1565 "enter",ra(l))},move:function(c,d,h,l){d=d&&x(d);h=h&&x(h);d=d||h.parent();b(c,d,h);return a.push(c,"move",ra(l))},leave:function(b,c){return a.push(b,"leave",ra(c),function(){b.remove()})},addClass:function(b,c,d){d=ra(d);d.addClass=hb(d.addclass,c);return a.push(b,"addClass",d)},removeClass:function(b,c,d){d=ra(d);d.removeClass=hb(d.removeClass,c);return a.push(b,"removeClass",d)},setClass:function(b,c,d,f){f=ra(f);f.addClass=hb(f.addClass,c);f.removeClass=hb(f.removeClass,d);return a.push(b,"setClass",
1566 f)},animate:function(b,c,d,f,m){m=ra(m);m.from=m.from?S(m.from,c):c;m.to=m.to?S(m.to,d):d;m.tempClasses=hb(m.tempClasses,f||"ng-inline-animate");return a.push(b,"animate",m)}}}]}],Cf=function(){this.$get=["$$rAF",function(a){function b(b){d.push(b);1<d.length||a(function(){for(var a=0;a<d.length;a++)d[a]();d=[]})}var d=[];return function(){var a=!1;b(function(){a=!0});return function(d){a?d():b(d)}}}]},Bf=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$$isDocumentHidden","$timeout",function(a,
1567 b,d,c,e){function f(a){this.setHost(a);var b=d();this._doneCallbacks=[];this._tick=function(a){c()?e(a,0,!1):b(a)};this._state=0}f.chain=function(a,b){function c(){if(d===a.length)b(!0);else a[d](function(a){!1===a?b(!1):(d++,c())})}var d=0;c()};f.all=function(a,b){function c(f){e=e&&f;++d===a.length&&b(e)}var d=0,e=!0;r(a,function(a){a.done(c)})};f.prototype={setHost:function(a){this.host=a||{}},done:function(a){2===this._state?a():this._doneCallbacks.push(a)},progress:E,getPromise:function(){if(!this.promise){var b=
1568 this;this.promise=a(function(a,c){b.done(function(b){!1===b?c():a()})})}return this.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},"finally":function(a){return this.getPromise()["finally"](a)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end();this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel();this._resolve(!1)},
1569 complete:function(a){var b=this;0===b._state&&(b._state=1,b._tick(function(){b._resolve(a)}))},_resolve:function(a){2!==this._state&&(r(this._doneCallbacks,function(b){b(a)}),this._doneCallbacks.length=0,this._state=2)}};return f}]},yf=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(a,b,d){return function(b,e){function f(){a(function(){g.addClass&&(b.addClass(g.addClass),g.addClass=null);g.removeClass&&(b.removeClass(g.removeClass),g.removeClass=null);g.to&&(b.css(g.to),g.to=null);k||
1570 h.complete();k=!0});return h}var g=e||{};g.$$prepared||(g=Ia(g));g.cleanupStyles&&(g.from=g.to=null);g.from&&(b.css(g.from),g.from=null);var k,h=new d;return{start:f,end:f}}}]},$=F("$compile"),tc=new function(){};Xc.$inject=["$provide","$$sanitizeUriProvider"];Jb.prototype.isFirstChange=function(){return this.previousValue===tc};var pd=/^((?:x|data)[:\-_])/i,Eg=/[:\-_]+(.)/g,vd=F("$controller"),ud=/^(\S+)(\s+as\s+([\w$]+))?$/,Jf=function(){this.$get=["$document",function(a){return function(b){b?!b.nodeType&&
1571 b instanceof x&&(b=b[0]):b=a[0].body;return b.offsetWidth+1}}]},wd="application/json",wc={"Content-Type":wd+";charset=utf-8"},Hg=/^\[|^\{(?!\{)/,Ig={"[":/]$/,"{":/}$/},Gg=/^\)]\}',?\n/,Kb=F("$http"),Ma=ca.$interpolateMinErr=F("$interpolate");Ma.throwNoconcat=function(a){throw Ma("noconcat",a);};Ma.interr=function(a,b){return Ma("interr",a,b.toString())};var Lg=F("$interval"),Sf=function(){this.$get=function(){function a(a){var b=function(a){b.data=a;b.called=!0};b.id=a;return b}var b=ca.callbacks,
1572 d={};return{createCallback:function(c){c="_"+(b.$$counter++).toString(36);var e="angular.callbacks."+c,f=a(c);d[e]=b[c]=f;return e},wasCalled:function(a){return d[a].called},getResponse:function(a){return d[a].data},removeCallback:function(a){delete b[d[a].id];delete d[a]}}}},ph=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Mg={http:80,https:443,ftp:21},jb=F("$location"),Ng=/^\s*[\\/]{2,}/,qh={$$absUrl:"",$$html5:!1,$$replace:!1,$$compose:function(){for(var a=this.$$path,b=this.$$hash,d=ye(this.$$search),b=b?
1573 "#"+hc(b):"",a=a.split("/"),c=a.length;c--;)a[c]=hc(a[c].replace(/%2F/g,"/"));this.$$url=a.join("/")+(d?"?"+d:"")+b;this.$$absUrl=this.$$normalizeUrl(this.$$url);this.$$urlUpdatedByLocation=!0},absUrl:Lb("$$absUrl"),url:function(a){if(z(a))return this.$$url;var b=ph.exec(a);(b[1]||""===a)&&this.path(decodeURIComponent(b[1]));(b[2]||b[1]||""===a)&&this.search(b[3]||"");this.hash(b[5]||"");return this},protocol:Lb("$$protocol"),host:Lb("$$host"),port:Lb("$$port"),path:Dd("$$path",function(a){a=null!==
1574 a?a.toString():"";return"/"===a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(A(a)||W(a))a=a.toString(),this.$$search=gc(a);else if(D(a))a=Ia(a,{}),r(a,function(b,c){null==b&&delete a[c]}),this.$$search=a;else throw jb("isrcharg");break;default:z(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}this.$$compose();return this},hash:Dd("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};
1575 r([Cd,zc,yc],function(a){a.prototype=Object.create(qh);a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==yc||!this.$$html5)throw jb("nostate");this.$$state=z(b)?null:b;this.$$urlUpdatedByLocation=!0;return this}});var Ya=F("$parse"),Rg={}.constructor.prototype.valueOf,Ub=T();r("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){Ub[a]=!0});var rh={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Nb=function(a){this.options=a};Nb.prototype={constructor:Nb,
1576 lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,text:a}),this.index++;else if(this.isWhitespace(a))this.index++;else{var b=a+this.peek(),d=b+this.peek(2),c=Ub[b],e=Ub[d];Ub[a]||
1577 c||e?(a=e?d:c?b:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,b){return-1!==b.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?
1578 this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)},isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):
1579 (a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b=w(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw Ya("lexerr",a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index<
1580 this.text.length;){var d=K(this.text.charAt(this.index));if("."===d||this.isNumber(d))a+=d;else{var c=this.peek();if("e"===d&&this.isExpOperator(c))a+=d;else if(this.isExpOperator(d)&&c&&this.isNumber(c)&&"e"===a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||c&&this.isNumber(c)||"e"!==a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:b,text:a,constant:!0,value:Number(a)})},readIdent:function(){var a=this.index;for(this.index+=this.peekMultichar().length;this.index<
1581 this.text.length;){var b=this.peekMultichar();if(!this.isIdentifierContinue(b))break;this.index+=b.length}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var d="",c=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index),c=c+f;if(e)"u"===f?(e=this.text.substring(this.index+1,this.index+5),e.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+e+"]"),this.index+=4,d+=String.fromCharCode(parseInt(e,
1582 16))):d+=rh[f]||f,e=!1;else if("\\"===f)e=!0;else{if(f===a){this.index++;this.tokens.push({index:b,text:c,constant:!0,value:d});return}d+=f}this.index++}this.throwError("Unterminated quote",b)}};var q=function(a,b){this.lexer=a;this.options=b};q.Program="Program";q.ExpressionStatement="ExpressionStatement";q.AssignmentExpression="AssignmentExpression";q.ConditionalExpression="ConditionalExpression";q.LogicalExpression="LogicalExpression";q.BinaryExpression="BinaryExpression";q.UnaryExpression="UnaryExpression";
1583 q.CallExpression="CallExpression";q.MemberExpression="MemberExpression";q.Identifier="Identifier";q.Literal="Literal";q.ArrayExpression="ArrayExpression";q.Property="Property";q.ObjectExpression="ObjectExpression";q.ThisExpression="ThisExpression";q.LocalsExpression="LocalsExpression";q.NGValueParameter="NGValueParameter";q.prototype={ast:function(a){this.text=a;this.tokens=this.lexer.lex(a);a=this.program();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);return a},
1584 program:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:q.Program,body:a}},expressionStatement:function(){return{type:q.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},expression:function(){return this.assignment()},assignment:function(){var a=this.ternary();if(this.expect("=")){if(!Hd(a))throw Ya("lval");
1585 a={type:q.AssignmentExpression,left:a,right:this.assignment(),operator:"="}}return a},ternary:function(){var a=this.logicalOR(),b,d;return this.expect("?")&&(b=this.expression(),this.consume(":"))?(d=this.expression(),{type:q.ConditionalExpression,test:a,alternate:b,consequent:d}):a},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:q.LogicalExpression,operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=this.equality();this.expect("&&");)a=
1586 {type:q.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a=this.relational(),b;b=this.expect("==","!=","===","!==");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.relational()};return a},relational:function(){for(var a=this.additive(),b;b=this.expect("<",">","<=",">=");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),b;b=this.expect("+","-");)a={type:q.BinaryExpression,
1587 operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:q.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?
1588 a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=Ia(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:q.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:q.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):
1589 "["===b.text?(a={type:q.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:q.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:q.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return b},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.filterChain());while(this.expect(","))
1590 }return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:q.Identifier,name:a.text}},constant:function(){return{type:q.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:q.ArrayExpression,elements:a}},object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;
1591 b={type:q.Property,kind:"init"};this.peek().constant?(b.key=this.constant(),b.computed=!1,this.consume(":"),b.value=this.expression()):this.peek().identifier?(b.key=this.identifier(),b.computed=!1,this.peek(":")?(this.consume(":"),b.value=this.expression()):b.value=b.key):this.peek("[")?(this.consume("["),b.key=this.expression(),this.consume("]"),b.computed=!0,this.consume(":"),b.value=this.expression()):this.throwError("invalid key",this.peek());a.push(b)}while(this.expect(","))}this.consume("}");
1592 return{type:q.ObjectExpression,properties:a}},throwError:function(a,b){throw Ya("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===this.tokens.length)throw Ya("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw Ya("ueoe",this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,
1593 e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?(this.tokens.shift(),a):!1},selfReferential:{"this":{type:q.ThisExpression},$locals:{type:q.LocalsExpression}}};var Fd=2;Jd.prototype={compile:function(a){var b=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};Z(a,b.$filter);var d="",c;this.stage="assign";if(c=Id(a))this.state.computing=
1594 "assign",d=this.nextId(),this.recurse(c,d),this.return_(d),d="fn.assign="+this.generateFunction("assign","s,v,l");c=Gd(a.body);b.stage="inputs";r(c,function(a,c){var d="fn"+c;b.state[d]={vars:[],body:[],own:{}};b.state.computing=d;var k=b.nextId();b.recurse(a,k);b.return_(k);b.state.inputs.push({name:d,isPure:a.isPure});a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(a);a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+
1595 d+this.watchFns()+"return fn;";a=(new Function("$filter","getStringValue","ifDefined","plus",a))(this.$filter,Og,Pg,Ed);this.state=this.stage=void 0;return a},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;r(b,function(b){a.push("var "+b.name+"="+d.generateFunction(b.name,"s"));b.isPure&&a.push(b.name,".isPure="+JSON.stringify(b.isPure)+";")});b.length&&a.push("fn.inputs=["+b.map(function(a){return a.name}).join(",")+"];");return a.join("")},generateFunction:function(a,
1596 b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;r(this.state.filters,function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,c,e,f){var g,k,h=this,l,m,p;c=c||E;if(!f&&w(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,
1597 this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case q.Program:r(a.body,function(b,c){h.recurse(b.expression,void 0,void 0,function(a){k=a});c!==a.body.length-1?h.current().body.push(k,";"):h.return_(k)});break;case q.Literal:m=this.escape(a.value);this.assign(b,m);c(b||m);break;case q.UnaryExpression:this.recurse(a.argument,void 0,void 0,function(a){k=a});m=a.operator+"("+this.ifDefined(k,0)+")";this.assign(b,m);c(m);break;case q.BinaryExpression:this.recurse(a.left,
1598 void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){k=a});m="+"===a.operator?this.plus(g,k):"-"===a.operator?this.ifDefined(g,0)+a.operator+this.ifDefined(k,0):"("+g+")"+a.operator+"("+k+")";this.assign(b,m);c(m);break;case q.LogicalExpression:b=b||this.nextId();h.recurse(a.left,b);h.if_("&&"===a.operator?b:h.not(b),h.lazyRecurse(a.right,b));c(b);break;case q.ConditionalExpression:b=b||this.nextId();h.recurse(a.test,b);h.if_(b,h.lazyRecurse(a.alternate,b),h.lazyRecurse(a.consequent,
1599 b));c(b);break;case q.Identifier:b=b||this.nextId();d&&(d.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",a.name)),function(){h.if_("inputs"===h.stage||"s",function(){e&&1!==e&&h.if_(h.isNull(h.nonComputedMember("s",a.name)),h.lazyAssign(h.nonComputedMember("s",a.name),"{}"));h.assign(b,h.nonComputedMember("s",a.name))})},b&&h.lazyAssign(b,h.nonComputedMember("l",
1600 a.name)));c(b);break;case q.MemberExpression:g=d&&(d.context=this.nextId())||this.nextId();b=b||this.nextId();h.recurse(a.object,g,void 0,function(){h.if_(h.notNull(g),function(){a.computed?(k=h.nextId(),h.recurse(a.property,k),h.getStringValue(k),e&&1!==e&&h.if_(h.not(h.computedMember(g,k)),h.lazyAssign(h.computedMember(g,k),"{}")),m=h.computedMember(g,k),h.assign(b,m),d&&(d.computed=!0,d.name=k)):(e&&1!==e&&h.if_(h.isNull(h.nonComputedMember(g,a.property.name)),h.lazyAssign(h.nonComputedMember(g,
1601 a.property.name),"{}")),m=h.nonComputedMember(g,a.property.name),h.assign(b,m),d&&(d.computed=!1,d.name=a.property.name))},function(){h.assign(b,"undefined")});c(b)},!!e);break;case q.CallExpression:b=b||this.nextId();a.filter?(k=h.filter(a.callee.name),l=[],r(a.arguments,function(a){var b=h.nextId();h.recurse(a,b);l.push(b)}),m=k+"("+l.join(",")+")",h.assign(b,m),c(b)):(k=h.nextId(),g={},l=[],h.recurse(a.callee,k,g,function(){h.if_(h.notNull(k),function(){r(a.arguments,function(b){h.recurse(b,a.constant?
1602 void 0:h.nextId(),void 0,function(a){l.push(a)})});m=g.name?h.member(g.context,g.name,g.computed)+"("+l.join(",")+")":k+"("+l.join(",")+")";h.assign(b,m)},function(){h.assign(b,"undefined")});c(b)}));break;case q.AssignmentExpression:k=this.nextId();g={};this.recurse(a.left,void 0,g,function(){h.if_(h.notNull(g.context),function(){h.recurse(a.right,k);m=h.member(g.context,g.name,g.computed)+a.operator+k;h.assign(b,m);c(b||m)})},1);break;case q.ArrayExpression:l=[];r(a.elements,function(b){h.recurse(b,
1603 a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m="["+l.join(",")+"]";this.assign(b,m);c(b||m);break;case q.ObjectExpression:l=[];p=!1;r(a.properties,function(a){a.computed&&(p=!0)});p?(b=b||this.nextId(),this.assign(b,"{}"),r(a.properties,function(a){a.computed?(g=h.nextId(),h.recurse(a.key,g)):g=a.key.type===q.Identifier?a.key.name:""+a.key.value;k=h.nextId();h.recurse(a.value,k);h.assign(h.member(b,g,a.computed),k)})):(r(a.properties,function(b){h.recurse(b.value,a.constant?void 0:
1604 h.nextId(),void 0,function(a){l.push(h.escape(b.key.type===q.Identifier?b.key.name:""+b.key.value)+":"+a)})}),m="{"+l.join(",")+"}",this.assign(b,m));c(b||m);break;case q.ThisExpression:this.assign(b,"s");c(b||"s");break;case q.LocalsExpression:this.assign(b,"l");c(b||"l");break;case q.NGValueParameter:this.assign(b,"v"),c(b||"v")}},getHasOwnProperty:function(a,b){var d=a+"."+b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,
1605 b){if(a)return this.current().body.push(a,"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},
1606 not:function(a){return"!("+a+")"},isNull:function(a){return a+"==null"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a,b)},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},lazyRecurse:function(a,b,d,c,e,f){var g=
1607 this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(A(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(W(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Ya("esc");},nextId:function(a,
1608 b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};Kd.prototype={compile:function(a){var b=this;Z(a,b.$filter);var d,c;if(d=Id(a))c=this.recurse(d);d=Gd(a.body);var e;d&&(e=[],r(d,function(a,c){var d=b.recurse(a);d.isPure=a.isPure;a.input=d;e.push(d);a.watchId=c}));var f=[];r(a.body,function(a){f.push(b.recurse(a.expression))});a=0===a.body.length?E:1===a.body.length?f[0]:function(a,b){var c;r(f,function(d){c=
1609 d(a,b)});return c};c&&(a.assign=function(a,b,d){return c(a,d,b)});e&&(a.inputs=e);return a},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case q.Literal:return this.value(a.value,b);case q.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case q.BinaryExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),
1610 this["binary"+a.operator](c,e,b);case q.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case q.Identifier:return f.identifier(a.name,b,d);case q.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,e,b,d):this.nonComputedMember(c,e,b,d);case q.CallExpression:return g=[],r(a.arguments,function(a){g.push(f.recurse(a))}),
1611 a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var p=[],n=0;n<g.length;++n)p.push(g[n](a,c,d,f));a=e.apply(void 0,p,f);return b?{context:void 0,name:void 0,value:a}:a}:function(a,c,d,f){var p=e(a,c,d,f),n;if(null!=p.value){n=[];for(var s=0;s<g.length;++s)n.push(g[s](a,c,d,f));n=p.value.apply(p.context,n)}return b?{value:n}:n};case q.AssignmentExpression:return c=this.recurse(a.left,!0,1),e=this.recurse(a.right),function(a,d,f,g){var p=
1612 c(a,d,f,g);a=e(a,d,f,g);p.context[p.name]=a;return b?{value:a}:a};case q.ArrayExpression:return g=[],r(a.elements,function(a){g.push(f.recurse(a))}),function(a,c,d,e){for(var f=[],n=0;n<g.length;++n)f.push(g[n](a,c,d,e));return b?{value:f}:f};case q.ObjectExpression:return g=[],r(a.properties,function(a){a.computed?g.push({key:f.recurse(a.key),computed:!0,value:f.recurse(a.value)}):g.push({key:a.key.type===q.Identifier?a.key.name:""+a.key.value,computed:!1,value:f.recurse(a.value)})}),function(a,
1613 c,d,e){for(var f={},n=0;n<g.length;++n)g[n].computed?f[g[n].key(a,c,d,e)]=g[n].value(a,c,d,e):f[g[n].key]=g[n].value(a,c,d,e);return b?{value:f}:f};case q.ThisExpression:return function(a){return b?{value:a}:a};case q.LocalsExpression:return function(a,c){return b?{value:c}:c};case q.NGValueParameter:return function(a,c,d){return b?{value:d}:d}}},"unary+":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=w(d)?+d:0;return b?{value:d}:d}},"unary-":function(a,b){return function(d,c,e,f){d=a(d,c,
1614 e,f);d=w(d)?-d:-0;return b?{value:d}:d}},"unary!":function(a,b){return function(d,c,e,f){d=!a(d,c,e,f);return b?{value:d}:d}},"binary+":function(a,b,d){return function(c,e,f,g){var k=a(c,e,f,g);c=b(c,e,f,g);k=Ed(k,c);return d?{value:k}:k}},"binary-":function(a,b,d){return function(c,e,f,g){var k=a(c,e,f,g);c=b(c,e,f,g);k=(w(k)?k:0)-(w(c)?c:0);return d?{value:k}:k}},"binary*":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)*b(c,e,f,g);return d?{value:c}:c}},"binary/":function(a,b,d){return function(c,
1615 e,f,g){c=a(c,e,f,g)/b(c,e,f,g);return d?{value:c}:c}},"binary%":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)%b(c,e,f,g);return d?{value:c}:c}},"binary===":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)===b(c,e,f,g);return d?{value:c}:c}},"binary!==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!==b(c,e,f,g);return d?{value:c}:c}},"binary==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)==b(c,e,f,g);return d?{value:c}:c}},"binary!=":function(a,b,d){return function(c,
1616 e,f,g){c=a(c,e,f,g)!=b(c,e,f,g);return d?{value:c}:c}},"binary<":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<b(c,e,f,g);return d?{value:c}:c}},"binary>":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=
1617 a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k)?b(e,f,g,k):d(e,f,g,k);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,name:void 0,value:a}:a}},identifier:function(a,b,d){return function(c,e,f,g){c=e&&a in e?e:c;d&&1!==d&&c&&null==c[a]&&(c[a]={});e=c?c[a]:void 0;return b?{context:c,name:a,value:e}:
1618 e}},computedMember:function(a,b,d,c){return function(e,f,g,k){var h=a(e,f,g,k),l,m;null!=h&&(l=b(e,f,g,k),l+="",c&&1!==c&&h&&!h[l]&&(h[l]={}),m=h[l]);return d?{context:h,name:l,value:m}:m}},nonComputedMember:function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k);c&&1!==c&&e&&null==e[b]&&(e[b]={});f=null!=e?e[b]:void 0;return d?{context:e,name:b,value:f}:f}},inputs:function(a,b){return function(d,c,e,f){return f?f[b]:a(d,c,e)}}};Mb.prototype={constructor:Mb,parse:function(a){a=this.getAst(a);var b=
1619 this.astCompiler.compile(a.ast),d=a.ast;b.literal=0===d.body.length||1===d.body.length&&(d.body[0].expression.type===q.Literal||d.body[0].expression.type===q.ArrayExpression||d.body[0].expression.type===q.ObjectExpression);b.constant=a.ast.constant;b.oneTime=a.oneTime;return b},getAst:function(a){var b=!1;a=a.trim();":"===a.charAt(0)&&":"===a.charAt(1)&&(b=!0,a=a.substring(2));return{ast:this.ast.ast(a),oneTime:b}}};var Ea=F("$sce"),V={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",
1620 JS:"js"},Cc=/_([a-z])/g,Ug=F("$templateRequest"),Vg=F("$timeout"),aa=C.document.createElement("a"),Od=ga(C.location.href),Na;aa.href="http://[::1]";var Wg="[::1]"===aa.hostname;Pd.$inject=["$document"];dd.$inject=["$provide"];var Wd=22,Vd=".",Ec="0";Qd.$inject=["$locale"];Sd.$inject=["$locale"];var gh={yyyy:ea("FullYear",4,0,!1,!0),yy:ea("FullYear",2,0,!0,!0),y:ea("FullYear",1,0,!1,!0),MMMM:kb("Month"),MMM:kb("Month",!0),MM:ea("Month",2,1),M:ea("Month",1,1),LLLL:kb("Month",!1,!0),dd:ea("Date",2),
1621 d:ea("Date",1),HH:ea("Hours",2),H:ea("Hours",1),hh:ea("Hours",2,-12),h:ea("Hours",1,-12),mm:ea("Minutes",2),m:ea("Minutes",1),ss:ea("Seconds",2),s:ea("Seconds",1),sss:ea("Milliseconds",3),EEEE:kb("Day"),EEE:kb("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Ob(Math[0<a?"floor":"ceil"](a/60),2)+Ob(Math.abs(a%60),2))},ww:Yd(2),w:Yd(1),G:Fc,GG:Fc,GGG:Fc,GGGG:function(a,b){return 0>=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},
1622 fh=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,eh=/^-?\d+$/;Rd.$inject=["$locale"];var $g=ia(K),ah=ia(ub);Td.$inject=["$parse"];var Me=ia({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===la.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),vb={};r(Gb,function(a,b){function d(a,d,e){a.$watch(e[c],
1623 function(a){e.$set(b,!!a)})}if("multiple"!==a){var c=wa("ng-"+b),e=d;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[c]&&d(a,b,e)});vb[c]=function(){return{restrict:"A",priority:100,link:e}}}});r(td,function(a,b){vb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"===e.ngPattern.charAt(0)&&(c=e.ngPattern.match(ie))){e.$set("ngPattern",new RegExp(c[1],c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});r(["src","srcset","href"],function(a){var b=wa("ng-"+a);vb[b]=
1624 ["$sce",function(d){return{priority:99,link:function(c,e,f){var g=a,k=a;"href"===a&&"[object SVGAnimatedString]"===la.call(e.prop("href"))&&(k="xlinkHref",f.$attr[k]="xlink:href",g=null);f.$set(b,d.getTrustedMediaUrl(f[b]));f.$observe(b,function(b){b?(f.$set(k,b),Ca&&g&&e.prop(g,f[k])):"href"===a&&f.$set(k,null)})}}}]});var lb={$addControl:E,$getControls:ia([]),$$renameControl:function(a,b){a.$name=b},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E,$$setSubmitted:E};Pb.$inject=
1625 ["$element","$attrs","$scope","$animate","$interpolate"];Pb.prototype={$rollbackViewValue:function(){r(this.$$controls,function(a){a.$rollbackViewValue()})},$commitViewValue:function(){r(this.$$controls,function(a){a.$commitViewValue()})},$addControl:function(a){Ja(a.$name,"input");this.$$controls.push(a);a.$name&&(this[a.$name]=a);a.$$parentForm=this},$getControls:function(){return ja(this.$$controls)},$$renameControl:function(a,b){var d=a.$name;this[d]===a&&delete this[d];this[b]=a;a.$name=b},$removeControl:function(a){a.$name&&
1626 this[a.$name]===a&&delete this[a.$name];r(this.$pending,function(b,d){this.$setValidity(d,null,a)},this);r(this.$error,function(b,d){this.$setValidity(d,null,a)},this);r(this.$$success,function(b,d){this.$setValidity(d,null,a)},this);cb(this.$$controls,a);a.$$parentForm=lb},$setDirty:function(){this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element,Vb);this.$dirty=!0;this.$pristine=!1;this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,
1627 Za,Vb+" ng-submitted");this.$dirty=!1;this.$pristine=!0;this.$submitted=!1;r(this.$$controls,function(a){a.$setPristine()})},$setUntouched:function(){r(this.$$controls,function(a){a.$setUntouched()})},$setSubmitted:function(){for(var a=this;a.$$parentForm&&a.$$parentForm!==lb;)a=a.$$parentForm;a.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,"ng-submitted");this.$submitted=!0;r(this.$$controls,function(a){a.$$setSubmitted&&a.$$setSubmitted()})}};ae({clazz:Pb,set:function(a,
1628 b,d){var c=a[b];c?-1===c.indexOf(d)&&c.push(d):a[b]=[d]},unset:function(a,b,d){var c=a[b];c&&(cb(c,d),0===c.length&&delete a[b])}});var ke=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||E}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Pb,compile:function(d,f){d.addClass(Za).addClass(mb);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var p=f[0];if(!("action"in e)){var n=function(b){a.$apply(function(){p.$commitViewValue();
1629 p.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",n);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",n)},0,!1)})}(f[1]||p.$$parentForm).$addControl(p);var s=g?c(p.$name):E;g&&(s(a,p),e.$observe(g,function(b){p.$name!==b&&(s(a,void 0),p.$$parentForm.$$renameControl(p,b),s=c(p.$name),s(a,p))}));d.on("$destroy",function(){p.$$parentForm.$removeControl(p);s(a,void 0);S(p,lb)})}}}}}]},Ne=ke(),Ze=ke(!0),hh=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,
1630 sh=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,th=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,ih=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,le=/^(\d{4,})-(\d{2})-(\d{2})$/,me=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Mc=/^(\d{4,})-W(\d\d)$/,ne=/^(\d{4,})-(\d\d)$/,
1631 oe=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,ce=T();r(["date","datetime-local","month","time","week"],function(a){ce[a]=!0});var pe={text:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c)},date:nb("date",le,Qb(le,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":nb("datetimelocal",me,Qb(me,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:nb("time",oe,Qb(oe,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:nb("week",Mc,function(a,b){if(ha(a))return a;if(A(a)){Mc.lastIndex=0;var d=Mc.exec(a);
1632 if(d){var c=+d[1],e=+d[2],f=d=0,g=0,k=0,h=Xd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),k=b.getMilliseconds());return new Date(c,0,h.getDate()+e,d,f,g,k)}}return NaN},"yyyy-Www"),month:nb("month",ne,Qb(ne,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f,g,k){Ic(a,b,d,c,"number");de(c);Sa(a,b,d,c,e,f);var h;if(w(d.min)||d.ngMin){var l=d.min||k(d.ngMin)(a);h=na(l);c.$validators.min=function(a,b){return c.$isEmpty(b)||z(h)||b>=h};d.$observe("min",function(a){a!==l&&(h=na(a),
1633 l=a,c.$validate())})}if(w(d.max)||d.ngMax){var m=d.max||k(d.ngMax)(a),p=na(m);c.$validators.max=function(a,b){return c.$isEmpty(b)||z(p)||b<=p};d.$observe("max",function(a){a!==m&&(p=na(a),m=a,c.$validate())})}if(w(d.step)||d.ngStep){var n=d.step||k(d.ngStep)(a),s=na(n);c.$validators.step=function(a,b){return c.$isEmpty(b)||z(s)||ee(b,h||0,s)};d.$observe("step",function(a){a!==n&&(s=na(a),n=a,c.$validate())})}},url:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c);c.$validators.url=function(a,b){var d=
1634 a||b;return c.$isEmpty(d)||sh.test(d)}},email:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c);c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||th.test(d)}},radio:function(a,b,d,c){var e=!d.ngTrim||"false"!==U(d.ngTrim);z(d.name)&&b.attr("name",++pb);b.on("change",function(a){var g;b[0].checked&&(g=d.value,e&&(g=U(g)),c.$setViewValue(g,a&&a.type))});c.$render=function(){var a=d.value;e&&(a=U(a));b[0].checked=a===c.$viewValue};d.$observe("value",c.$render)},range:function(a,b,d,c,e,f){function g(a,
1635 c){b.attr(a,d[a]);var e=d[a];d.$observe(a,function(a){a!==e&&(e=a,c(a))})}function k(a){p=na(a);X(c.$modelValue)||(m?(a=b.val(),p>a&&(a=p,b.val(a)),c.$setViewValue(a)):c.$validate())}function h(a){n=na(a);X(c.$modelValue)||(m?(a=b.val(),n<a&&(b.val(n),a=n<p?p:n),c.$setViewValue(a)):c.$validate())}function l(a){s=na(a);X(c.$modelValue)||(m?c.$viewValue!==b.val()&&c.$setViewValue(b.val()):c.$validate())}Ic(a,b,d,c,"range");de(c);Sa(a,b,d,c,e,f);var m=c.$$hasNativeValidators&&"range"===b[0].type,p=m?
1636 0:void 0,n=m?100:void 0,s=m?1:void 0,r=b[0].validity;a=w(d.min);e=w(d.max);f=w(d.step);var q=c.$render;c.$render=m&&w(r.rangeUnderflow)&&w(r.rangeOverflow)?function(){q();c.$setViewValue(b.val())}:q;a&&(p=na(d.min),c.$validators.min=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||z(p)||b>=p},g("min",k));e&&(n=na(d.max),c.$validators.max=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||z(n)||b<=n},g("max",h));f&&(s=na(d.step),c.$validators.step=m?function(){return!r.stepMismatch}:
1637 function(a,b){return c.$isEmpty(b)||z(s)||ee(b,p||0,s)},g("step",l))},checkbox:function(a,b,d,c,e,f,g,k){var h=fe(k,a,"ngTrueValue",d.ngTrueValue,!0),l=fe(k,a,"ngFalseValue",d.ngFalseValue,!1);b.on("change",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=function(a){return!1===a};c.$formatters.push(function(a){return va(a,h)});c.$parsers.push(function(a){return a?h:l})},hidden:E,button:E,submit:E,reset:E,file:E},Yc=["$browser","$sniffer",
1638 "$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,k){k[0]&&(pe[K(g.type)]||pe.text)(e,f,g,k[0],b,a,d,c)}}}}],vf=function(){var a={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(a){this.setAttribute("value",a)}};return{restrict:"E",priority:200,compile:function(b,d){if("hidden"===K(d.type))return{pre:function(b,d,f,g){b=d[0];b.parentNode&&b.parentNode.insertBefore(b,b.nextSibling);Object.defineProperty&&
1639 Object.defineProperty(b,"value",a)}}}}},uh=/^(true|false|\d+)$/,sf=function(){function a(a,d,c){var e=w(c)?c:9===Ca?"":null;a.prop("value",e);d.$set("value",c)}return{restrict:"A",priority:100,compile:function(b,d){return uh.test(d.ngValue)?function(b,d,f){b=b.$eval(f.ngValue);a(d,f,b)}:function(b,d,f){b.$watch(f.ngValue,function(b){a(d,f,b)})}}}},Re=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];
1640 b.$watch(e.ngBind,function(a){c.textContent=ic(a)})}}}}],Te=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=z(a)?"":a})}}}}],Se=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(b){return a.valueOf(b)});d.$$addBindingClass(c);
1641 return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){var d=f(b);c.html(a.getTrustedHtml(d)||"")})}}}}],rf=ia({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),Ue=Kc("",!0),We=Kc("Odd",0),Ve=Kc("Even",1),Xe=Ra({compile:function(a,b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),Ye=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],cd={},vh={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),
1642 function(a){var b=wa("ng-"+a);cd[b]=["$parse","$rootScope","$exceptionHandler",function(d,c,e){return qd(d,c,e,b,a,vh[a])}]});var af=["$animate","$compile",function(a,b){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var k,h,l;d.$watch(e.ngIf,function(d){d?h||g(function(d,f){h=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);k={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),h&&(h.$destroy(),h=null),k&&(l=tb(k.clone),
1643 a.leave(l).done(function(a){!1!==a&&(l=null)}),k=null))})}}}],bf=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",k=e.autoscroll;return function(c,e,m,p,n){var r=0,q,t,x,v=function(){t&&(t.remove(),t=null);q&&(q.$destroy(),q=null);x&&(d.leave(x).done(function(a){!1!==a&&(t=null)}),t=x,x=null)};c.$watch(f,function(f){var m=function(a){!1===
1644 a||!w(k)||k&&!c.$eval(k)||b()},t=++r;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&t===r){var b=c.$new();p.template=a;a=n(b,function(a){v();d.enter(a,null,e).done(m)});q=b;x=a;q.$emit("$includeContentLoaded",f);c.$eval(g)}},function(){c.$$destroyed||t!==r||(v(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(v(),p.template=null)})}}}}],uf=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){la.call(d[0]).match(/SVG/)?
1645 (d.empty(),a(ed(e.template,C.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],cf=Ra({priority:450,compile:function(){return{pre:function(a,b,d){a.$eval(d.ngInit)}}}}),qf=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=d.ngList||", ",f="false"!==d.ngTrim,g=f?U(e):e;c.$parsers.push(function(a){if(!z(a)){var b=[];a&&r(a.split(g),function(a){a&&b.push(f?U(a):a)});return b}});c.$formatters.push(function(a){if(H(a))return a.join(e)});
1646 c.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",$d="ng-invalid",Za="ng-pristine",Vb="ng-dirty",ob=F("ngModel");Rb.$inject="$scope $exceptionHandler $attrs $element $parse $animate $timeout $q $interpolate".split(" ");Rb.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var a=this.$$parse(this.$$attr.ngModel+"()"),b=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(b){var c=this.$$parsedNgModel(b);B(c)&&(c=a(b));return c};this.$$ngModelSet=
1647 function(a,c){B(this.$$parsedNgModel(a))?b(a,{$$$p:c}):this.$$parsedNgModelAssign(a,c)}}else if(!this.$$parsedNgModel.assign)throw ob("nonassign",this.$$attr.ngModel,za(this.$$element));},$render:E,$isEmpty:function(a){return z(a)||""===a||null===a||a!==a},$$updateEmptyClasses:function(a){this.$isEmpty(a)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,
1648 "ng-not-empty"))},$setPristine:function(){this.$dirty=!1;this.$pristine=!0;this.$$animate.removeClass(this.$$element,Vb);this.$$animate.addClass(this.$$element,Za)},$setDirty:function(){this.$dirty=!0;this.$pristine=!1;this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element,Vb);this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1;this.$untouched=!0;this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=
1649 !0;this.$untouched=!1;this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce);this.$viewValue=this.$$lastCommittedViewValue;this.$render()},$validate:function(){if(!X(this.$modelValue)){var a=this.$$lastCommittedViewValue,b=this.$$rawModelValue,d=this.$valid,c=this.$modelValue,e=this.$options.getOption("allowInvalid"),f=this;this.$$runValidators(b,a,function(a){e||d===a||(f.$modelValue=a?b:void 0,f.$modelValue!==
1650 c&&f.$$writeModelToScope())})}},$$runValidators:function(a,b,d){function c(){var c=!0;r(h.$validators,function(d,e){var g=Boolean(d(a,b));c=c&&g;f(e,g)});return c?!0:(r(h.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;r(h.$asyncValidators,function(e,g){var h=e(a,b);if(!h||!B(h.then))throw ob("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?h.$$q.all(c).then(function(){g(d)},E):g(!0)}function f(a,b){k===h.$$currentValidationRunId&&
1651 h.$setValidity(a,b)}function g(a){k===h.$$currentValidationRunId&&d(a)}this.$$currentValidationRunId++;var k=this.$$currentValidationRunId,h=this;(function(){var a=h.$$parserName;if(z(h.$$parserValid))f(a,null);else return h.$$parserValid||(r(h.$validators,function(a,b){f(b,null)}),r(h.$asyncValidators,function(a,b){f(b,null)})),f(a,h.$$parserValid),h.$$parserValid;return!0})()?c()?e():g(!1):g(!1)},$commitViewValue:function(){var a=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce);if(this.$$lastCommittedViewValue!==
1652 a||""===a&&this.$$hasNativeValidators)this.$$updateEmptyClasses(a),this.$$lastCommittedViewValue=a,this.$pristine&&this.$setDirty(),this.$$parseAndValidate()},$$parseAndValidate:function(){var a=this.$$lastCommittedViewValue,b=this;this.$$parserValid=z(a)?void 0:!0;this.$setValidity(this.$$parserName,null);this.$$parserName="parse";if(this.$$parserValid)for(var d=0;d<this.$parsers.length;d++)if(a=this.$parsers[d](a),z(a)){this.$$parserValid=!1;break}X(this.$modelValue)&&(this.$modelValue=this.$$ngModelGet(this.$$scope));
1653 var c=this.$modelValue,e=this.$options.getOption("allowInvalid");this.$$rawModelValue=a;e&&(this.$modelValue=a,b.$modelValue!==c&&b.$$writeModelToScope());this.$$runValidators(a,this.$$lastCommittedViewValue,function(d){e||(b.$modelValue=d?a:void 0,b.$modelValue!==c&&b.$$writeModelToScope())})},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue);r(this.$viewChangeListeners,function(a){try{a()}catch(b){this.$$exceptionHandler(b)}},this)},$setViewValue:function(a,b){this.$viewValue=
1654 a;this.$options.getOption("updateOnDefault")&&this.$$debounceViewValueCommit(b)},$$debounceViewValueCommit:function(a){var b=this.$options.getOption("debounce");W(b[a])?b=b[a]:W(b["default"])&&-1===this.$options.getOption("updateOn").indexOf(a)?b=b["default"]:W(b["*"])&&(b=b["*"]);this.$$timeout.cancel(this.$$pendingDebounce);var d=this;0<b?this.$$pendingDebounce=this.$$timeout(function(){d.$commitViewValue()},b):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply(function(){d.$commitViewValue()})},
1655 $overrideModelOptions:function(a){this.$options=this.$options.createChild(a);this.$$setUpdateOnEvents()},$processModelValue:function(){var a=this.$$format();this.$viewValue!==a&&(this.$$updateEmptyClasses(a),this.$viewValue=this.$$lastCommittedViewValue=a,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,E))},$$format:function(){for(var a=this.$formatters,b=a.length,d=this.$modelValue;b--;)d=a[b](d);return d},$$setModelValue:function(a){this.$modelValue=this.$$rawModelValue=a;this.$$parserValid=
1656 void 0;this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&&this.$$element.off(this.$$updateEvents,this.$$updateEventHandler);if(this.$$updateEvents=this.$options.getOption("updateOn"))this.$$element.on(this.$$updateEvents,this.$$updateEventHandler)},$$updateEventHandler:function(a){this.$$debounceViewValueCommit(a&&a.type)}};ae({clazz:Rb,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]}});var pf=["$rootScope",function(a){return{restrict:"A",require:["ngModel",
1657 "^?form","^?ngModelOptions"],controller:Rb,priority:1,compile:function(b){b.addClass(Za).addClass("ng-untouched").addClass(mb);return{pre:function(a,b,e,f){var g=f[0];b=f[1]||g.$$parentForm;if(f=f[2])g.$options=f.$options;g.$$initGetterSetters();b.$addControl(g);e.$observe("name",function(a){g.$name!==a&&g.$$parentForm.$$renameControl(g,a)});a.$on("$destroy",function(){g.$$parentForm.$removeControl(g)})},post:function(b,c,e,f){function g(){k.$setTouched()}var k=f[0];k.$$setUpdateOnEvents();c.on("blur",
1658 function(){k.$touched||(a.$$phase?b.$evalAsync(g):b.$apply(g))})}}}}}],Sb,wh=/(\s+|^)default(\s+|$)/;Lc.prototype={getOption:function(a){return this.$$options[a]},createChild:function(a){var b=!1;a=S({},a);r(a,function(d,c){"$inherit"===d?"*"===c?b=!0:(a[c]=this.$$options[c],"updateOn"===c&&(a.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===c&&(a.updateOnDefault=!1,a[c]=U(d.replace(wh,function(){a.updateOnDefault=!0;return" "})))},this);b&&(delete a["*"],ge(a,this.$$options));ge(a,Sb.$$options);
1659 return new Lc(a)}};Sb=new Lc({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var tf=function(){function a(a,d){this.$$attrs=a;this.$$scope=d}a.$inject=["$attrs","$scope"];a.prototype={$onInit:function(){var a=this.parentCtrl?this.parentCtrl.$options:Sb,d=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=a.createChild(d)}};return{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:a}},df=Ra({terminal:!0,
1660 priority:1E3}),xh=F("ngOptions"),yh=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,nf=["$compile","$document","$parse",function(a,b,d){function c(a,b,c){function e(a,b,c,d,f){this.selectValue=a;this.viewValue=b;this.label=c;this.group=d;this.disabled=f}function f(a){var b;if(!r&&ya(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&
1661 "$"!==c.charAt(0)&&b.push(c)}return b}var p=a.match(yh);if(!p)throw xh("iexp",a,za(b));var n=p[5]||p[7],r=p[6];a=/ as /.test(p[0])&&p[1];var q=p[9];b=d(p[2]?p[1]:n);var t=a&&d(a)||b,w=q&&d(q),v=q?function(a,b){return w(c,b)}:function(a){return La(a)},x=function(a,b){return v(a,A(a,b))},z=d(p[2]||p[1]),y=d(p[3]||""),J=d(p[4]||""),I=d(p[8]),B={},A=r?function(a,b){B[r]=b;B[n]=a;return B}:function(a){B[n]=a;return B};return{trackBy:q,getTrackByValue:x,getWatchables:d(I,function(a){var b=[];a=a||[];for(var d=
1662 f(a),e=d.length,g=0;g<e;g++){var k=a===d?g:d[g],l=a[k],k=A(l,k),l=v(l,k);b.push(l);if(p[2]||p[1])l=z(c,k),b.push(l);p[4]&&(k=J(c,k),b.push(k))}return b}),getOptions:function(){for(var a=[],b={},d=I(c)||[],g=f(d),k=g.length,n=0;n<k;n++){var p=d===g?n:g[n],r=A(d[p],p),s=t(c,r),p=v(s,r),w=z(c,r),B=y(c,r),r=J(c,r),s=new e(p,s,w,B,r);a.push(s);b[p]=s}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[x(a)]},getViewValueFromOption:function(a){return q?Ia(a.viewValue):a.viewValue}}}}}
1663 var e=C.document.createElement("option"),f=C.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=E},post:function(d,k,h,l){function m(a){var b=(a=v.getOptionFromViewValue(a))&&a.element;b&&!b.selected&&(b.selected=!0);return a}function p(a,b){a.element=b;b.disabled=a.disabled;a.label!==b.label&&(b.label=a.label,b.textContent=a.label);b.value=a.selectValue}var n=l[0],q=l[1],z=h.multiple;l=0;for(var t=k.children(),
1664 B=t.length;l<B;l++)if(""===t[l].value){n.hasEmptyOption=!0;n.emptyOption=t.eq(l);break}k.empty();l=!!n.emptyOption;x(e.cloneNode(!1)).val("?");var v,A=c(h.ngOptions,k,d),C=b[0].createDocumentFragment();n.generateUnknownOptionValue=function(a){return"?"};z?(n.writeValue=function(a){if(v){var b=a&&a.map(m)||[];v.items.forEach(function(a){a.element.selected&&-1===Array.prototype.indexOf.call(b,a)&&(a.element.selected=!1)})}},n.readValue=function(){var a=k.val()||[],b=[];r(a,function(a){(a=v.selectValueMap[a])&&
1665 !a.disabled&&b.push(v.getViewValueFromOption(a))});return b},A.trackBy&&d.$watchCollection(function(){if(H(q.$viewValue))return q.$viewValue.map(function(a){return A.getTrackByValue(a)})},function(){q.$render()})):(n.writeValue=function(a){if(v){var b=k[0].options[k[0].selectedIndex],c=v.getOptionFromViewValue(a);b&&b.removeAttribute("selected");c?(k[0].value!==c.selectValue&&(n.removeUnknownOption(),k[0].value=c.selectValue,c.element.selected=!0),c.element.setAttribute("selected","selected")):n.selectUnknownOrEmptyOption(a)}},
1666 n.readValue=function(){var a=v.selectValueMap[k.val()];return a&&!a.disabled?(n.unselectEmptyOption(),n.removeUnknownOption(),v.getViewValueFromOption(a)):null},A.trackBy&&d.$watch(function(){return A.getTrackByValue(q.$viewValue)},function(){q.$render()}));l&&(a(n.emptyOption)(d),k.prepend(n.emptyOption),8===n.emptyOption[0].nodeType?(n.hasEmptyOption=!1,n.registerOption=function(a,b){""===b.val()&&(n.hasEmptyOption=!0,n.emptyOption=b,n.emptyOption.removeClass("ng-scope"),q.$render(),b.on("$destroy",
1667 function(){var a=n.$isEmptyOptionSelected();n.hasEmptyOption=!1;n.emptyOption=void 0;a&&q.$render()}))}):n.emptyOption.removeClass("ng-scope"));d.$watchCollection(A.getWatchables,function(){var a=v&&n.readValue();if(v)for(var b=v.items.length-1;0<=b;b--){var c=v.items[b];w(c.group)?Fb(c.element.parentNode):Fb(c.element)}v=A.getOptions();var d={};v.items.forEach(function(a){var b;if(w(a.group)){b=d[a.group];b||(b=f.cloneNode(!1),C.appendChild(b),b.label=null===a.group?"null":a.group,d[a.group]=b);
1668 var c=e.cloneNode(!1);b.appendChild(c);p(a,c)}else b=e.cloneNode(!1),C.appendChild(b),p(a,b)});k[0].appendChild(C);q.$render();q.$isEmpty(a)||(b=n.readValue(),(A.trackBy||z?va(a,b):a===b)||(q.$setViewValue(b),q.$render()))})}}}}],ef=["$locale","$interpolate","$log",function(a,b,d){var c=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(f,g,k){function h(a){g.text(a||"")}var l=k.count,m=k.$attr.when&&g.attr(k.$attr.when),p=k.offset||0,n=f.$eval(m)||{},q={},w=b.startSymbol(),t=b.endSymbol(),x=w+l+"-"+
1669 p+t,v=ca.noop,A;r(k,function(a,b){var c=e.exec(b);c&&(c=(c[1]?"-":"")+K(c[2]),n[c]=g.attr(k.$attr[b]))});r(n,function(a,d){q[d]=b(a.replace(c,x))});f.$watch(l,function(b){var c=parseFloat(b),e=X(c);e||c in n||(c=a.pluralCat(c-p));c===A||e&&X(A)||(v(),e=q[c],z(e)?(null!=b&&d.debug("ngPluralize: no rule defined for '"+c+"' in "+m),v=E,h()):v=f.$watch(e,h),A=c)})}}}],qe=F("ngRef"),ff=["$parse",function(a){return{priority:-1,restrict:"A",compile:function(b,d){var c=wa(ua(b)),e=a(d.ngRef),f=e.assign||
1670 function(){throw qe("nonassign",d.ngRef);};return function(a,b,h){var l;if(h.hasOwnProperty("ngRefRead"))if("$element"===h.ngRefRead)l=b;else{if(l=b.data("$"+h.ngRefRead+"Controller"),!l)throw qe("noctrl",h.ngRefRead,d.ngRef);}else l=b.data("$"+c+"Controller");l=l||b;f(a,l);b.on("$destroy",function(){e(a)===l&&f(a,null)})}}}}],gf=["$parse","$animate","$compile",function(a,b,d){var c=F("ngRepeat"),e=function(a,b,c,d,e,f,g){a[c]=d;e&&(a[e]=f);a.$index=b;a.$first=0===b;a.$last=b===g-1;a.$middle=!(a.$first||
1671 a.$last);a.$odd=!(a.$even=0===(b&1))},f=function(a,b,c){return La(c)},g=function(a,b){return b};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(k,h){var l=h.ngRepeat,m=d.$$createComment("end ngRepeat",l),p=l.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!p)throw c("iexp",l);var n=p[1],q=p[2],w=p[3],t=p[4],p=n.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/);if(!p)throw c("iidexp",
1672 n);var x=p[3]||p[1],v=p[2];if(w&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(w)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(w)))throw c("badident",w);var z;if(t){var A={$id:La},y=a(t);z=function(a,b,c,d){v&&(A[v]=b);A[x]=c;A.$index=d;return y(a,A)}}return function(a,d,h,k,n){var p=T();a.$watchCollection(q,function(h){var k,q,t=d[0],s,y=T(),B,C,E,D,H,F,K;w&&(a[w]=h);if(ya(h))H=h,q=z||f;else for(K in q=z||g,H=[],h)ta.call(h,K)&&"$"!==K.charAt(0)&&H.push(K);
1673 B=H.length;K=Array(B);for(k=0;k<B;k++)if(C=h===H?k:H[k],E=h[C],D=q(a,C,E,k),p[D])F=p[D],delete p[D],y[D]=F,K[k]=F;else{if(y[D])throw r(K,function(a){a&&a.scope&&(p[a.id]=a)}),c("dupes",l,D,E);K[k]={id:D,scope:void 0,clone:void 0};y[D]=!0}A&&(A[x]=void 0);for(s in p){F=p[s];D=tb(F.clone);b.leave(D);if(D[0].parentNode)for(k=0,q=D.length;k<q;k++)D[k].$$NG_REMOVED=!0;F.scope.$destroy()}for(k=0;k<B;k++)if(C=h===H?k:H[k],E=h[C],F=K[k],F.scope){s=t;do s=s.nextSibling;while(s&&s.$$NG_REMOVED);F.clone[0]!==
1674 s&&b.move(tb(F.clone),null,t);t=F.clone[F.clone.length-1];e(F.scope,k,x,E,v,C,B)}else n(function(a,c){F.scope=c;var d=m.cloneNode(!1);a[a.length++]=d;b.enter(a,null,t);t=d;F.clone=a;y[F.id]=F;e(F.scope,k,x,E,v,C,B)});p=y})}}}}],hf=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngShow,function(b){a[b?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],$e=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,
1675 d,c){b.$watch(c.ngHide,function(b){a[b?"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],jf=Ra(function(a,b,d){a.$watchCollection(d.ngStyle,function(a,d){d&&a!==d&&(a||(a={}),r(d,function(b,d){null==a[d]&&(a[d]="")}));a&&b.css(a)})}),kf=["$animate","$compile",function(a,b){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(d,c,e,f){var g=[],k=[],h=[],l=[],m=function(a,b){return function(c){!1!==c&&a.splice(b,1)}};d.$watch(e.ngSwitch||
1676 e.on,function(c){for(var d,e;h.length;)a.cancel(h.pop());d=0;for(e=l.length;d<e;++d){var q=tb(k[d].clone);l[d].$destroy();(h[d]=a.leave(q)).done(m(h,d))}k.length=0;l.length=0;(g=f.cases["!"+c]||f.cases["?"])&&r(g,function(c){c.transclude(function(d,e){l.push(e);var f=c.element;d[d.length++]=b.$$createComment("end ngSwitchWhen");k.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],lf=Ra({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){a=d.ngSwitchWhen.split(d.ngSwitchWhenSeparator).sort().filter(function(a,
1677 b,c){return c[b-1]!==a});r(a,function(a){c.cases["!"+a]=c.cases["!"+a]||[];c.cases["!"+a].push({transclude:e,element:b})})}}),mf=Ra({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){c.cases["?"]=c.cases["?"]||[];c.cases["?"].push({transclude:e,element:b})}}),zh=F("ngTransclude"),of=["$compile",function(a){return{restrict:"EAC",compile:function(b){var d=a(b.contents());b.empty();return function(a,b,f,g,k){function h(){d(a,function(a){b.append(a)})}if(!k)throw zh("orphan",
1678 za(b));f.ngTransclude===f.$attr.ngTransclude&&(f.ngTransclude="");f=f.ngTransclude||f.ngTranscludeSlot;k(function(a,c){var d;if(d=a.length)a:{d=0;for(var f=a.length;d<f;d++){var g=a[d];if(g.nodeType!==Pa||g.nodeValue.trim()){d=!0;break a}}d=void 0}d?b.append(a):(h(),c.$destroy())},null,f);f&&!k.isSlotFilled(f)&&h()}}}}],Oe=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,d){"text/ng-template"===d.type&&a.put(d.id,b[0].text)}}}],Ah={$setViewValue:E,$render:E},Bh=["$element",
1679 "$scope",function(a,b){function d(){g||(g=!0,b.$$postDigest(function(){g=!1;e.ngModelCtrl.$render()}))}function c(a){k||(k=!0,b.$$postDigest(function(){b.$$destroyed||(k=!1,e.ngModelCtrl.$setViewValue(e.readValue()),a&&e.ngModelCtrl.$render())}))}var e=this,f=new Hb;e.selectValueMap={};e.ngModelCtrl=Ah;e.multiple=!1;e.unknownOption=x(C.document.createElement("option"));e.hasEmptyOption=!1;e.emptyOption=void 0;e.renderUnknownOption=function(b){b=e.generateUnknownOptionValue(b);e.unknownOption.val(b);
1680 a.prepend(e.unknownOption);Oa(e.unknownOption,!0);a.val(b)};e.updateUnknownOption=function(b){b=e.generateUnknownOptionValue(b);e.unknownOption.val(b);Oa(e.unknownOption,!0);a.val(b)};e.generateUnknownOptionValue=function(a){return"? "+La(a)+" ?"};e.removeUnknownOption=function(){e.unknownOption.parent()&&e.unknownOption.remove()};e.selectEmptyOption=function(){e.emptyOption&&(a.val(""),Oa(e.emptyOption,!0))};e.unselectEmptyOption=function(){e.hasEmptyOption&&Oa(e.emptyOption,!1)};b.$on("$destroy",
1681 function(){e.renderUnknownOption=E});e.readValue=function(){var b=a.val(),b=b in e.selectValueMap?e.selectValueMap[b]:b;return e.hasOption(b)?b:null};e.writeValue=function(b){var c=a[0].options[a[0].selectedIndex];c&&Oa(x(c),!1);e.hasOption(b)?(e.removeUnknownOption(),c=La(b),a.val(c in e.selectValueMap?c:b),Oa(x(a[0].options[a[0].selectedIndex]),!0)):e.selectUnknownOrEmptyOption(b)};e.addOption=function(a,b){if(8!==b[0].nodeType){Ja(a,'"option value"');""===a&&(e.hasEmptyOption=!0,e.emptyOption=
1682 b);var c=f.get(a)||0;f.set(a,c+1);d()}};e.removeOption=function(a){var b=f.get(a);b&&(1===b?(f.delete(a),""===a&&(e.hasEmptyOption=!1,e.emptyOption=void 0)):f.set(a,b-1))};e.hasOption=function(a){return!!f.get(a)};e.$hasEmptyOption=function(){return e.hasEmptyOption};e.$isUnknownOptionSelected=function(){return a[0].options[0]===e.unknownOption[0]};e.$isEmptyOptionSelected=function(){return e.hasEmptyOption&&a[0].options[a[0].selectedIndex]===e.emptyOption[0]};e.selectUnknownOrEmptyOption=function(a){null==
1683 a&&e.emptyOption?(e.removeUnknownOption(),e.selectEmptyOption()):e.unknownOption.parent().length?e.updateUnknownOption(a):e.renderUnknownOption(a)};var g=!1,k=!1;e.registerOption=function(a,b,f,g,k){if(f.$attr.ngValue){var q,r;f.$observe("value",function(a){var d,f=b.prop("selected");w(r)&&(e.removeOption(q),delete e.selectValueMap[r],d=!0);r=La(a);q=a;e.selectValueMap[r]=a;e.addOption(a,b);b.attr("value",r);d&&f&&c()})}else g?f.$observe("value",function(a){e.readValue();var d,f=b.prop("selected");
1684 w(q)&&(e.removeOption(q),d=!0);q=a;e.addOption(a,b);d&&f&&c()}):k?a.$watch(k,function(a,d){f.$set("value",a);var g=b.prop("selected");d!==a&&e.removeOption(d);e.addOption(a,b);d&&g&&c()}):e.addOption(f.value,b);f.$observe("disabled",function(a){if("true"===a||a&&b.prop("selected"))e.multiple?c(!0):(e.ngModelCtrl.$setViewValue(null),e.ngModelCtrl.$render())});b.on("$destroy",function(){var a=e.readValue(),b=f.value;e.removeOption(b);d();(e.multiple&&a&&-1!==a.indexOf(b)||a===b)&&c(!0)})}}],Pe=function(){return{restrict:"E",
1685 require:["select","?ngModel"],controller:Bh,priority:1,link:{pre:function(a,b,d,c){var e=c[0],f=c[1];if(f){if(e.ngModelCtrl=f,b.on("change",function(){e.removeUnknownOption();a.$apply(function(){f.$setViewValue(e.readValue())})}),d.multiple){e.multiple=!0;e.readValue=function(){var a=[];r(b.find("option"),function(b){b.selected&&!b.disabled&&(b=b.value,a.push(b in e.selectValueMap?e.selectValueMap[b]:b))});return a};e.writeValue=function(a){r(b.find("option"),function(b){var c=!!a&&(-1!==Array.prototype.indexOf.call(a,
1686 b.value)||-1!==Array.prototype.indexOf.call(a,e.selectValueMap[b.value]));c!==b.selected&&Oa(x(b),c)})};var g,k=NaN;a.$watch(function(){k!==f.$viewValue||va(g,f.$viewValue)||(g=ja(f.$viewValue),f.$render());k=f.$viewValue});f.$isEmpty=function(a){return!a||0===a.length}}}else e.registerOption=E},post:function(a,b,d,c){var e=c[1];if(e){var f=c[0];e.$render=function(){f.writeValue(e.$viewValue)}}}}}},Qe=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(b,d){var c,e;w(d.ngValue)||
1687 (w(d.value)?c=a(d.value,!0):(e=a(b.text(),!0))||d.$set("value",b.text()));return function(a,b,d){var h=b.parent();(h=h.data("$selectController")||h.parent().data("$selectController"))&&h.registerOption(a,b,d,c,e)}}}}],$c=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.required||a(c.ngRequired)(b);c.required=!0;e.$validators.required=function(a,b){return!f||!e.$isEmpty(b)};c.$observe("required",function(a){f!==a&&(f=a,e.$validate())})}}}}],Zc=["$parse",
1688 function(a){return{restrict:"A",require:"?ngModel",compile:function(b,d){var c,e;d.ngPattern&&(c=d.ngPattern,e="/"===d.ngPattern.charAt(0)&&ie.test(d.ngPattern)?function(){return d.ngPattern}:a(d.ngPattern));return function(a,b,d,h){if(h){var l=d.pattern;d.ngPattern?l=e(a):c=d.pattern;var m=he(l,c,b);d.$observe("pattern",function(a){var d=m;m=he(a,c,b);(d&&d.toString())!==(m&&m.toString())&&h.$validate()});h.$validators.pattern=function(a,b){return h.$isEmpty(b)||z(m)||m.test(b)}}}}}}],bd=["$parse",
1689 function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.maxlength||a(c.ngMaxlength)(b),g=Tb(f);c.$observe("maxlength",function(a){f!==a&&(g=Tb(a),f=a,e.$validate())});e.$validators.maxlength=function(a,b){return 0>g||e.$isEmpty(b)||b.length<=g}}}}}],ad=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.minlength||a(c.ngMinlength)(b),g=Tb(f)||-1;c.$observe("minlength",function(a){f!==a&&(g=Tb(a)||-1,f=a,e.$validate())});
1690 e.$validators.minlength=function(a,b){return e.$isEmpty(b)||b.length>=g}}}}}];C.angular.bootstrap?C.console&&console.log("WARNING: Tried to load AngularJS more than once."):(Fe(),Je(ca),ca.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1==b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,
1691 MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",
1692 shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a,c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),x(function(){Ae(C.document,Uc)}))})(window);
1693 !window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
1658 1694 //# sourceMappingURL=angular.min.js.map
1659 1695
1660 1696 ;/*
1661 AngularJS v1.5.5
1662 (c) 2010-2016 Google, Inc. http://angularjs.org
1697 AngularJS v1.7.7
1698 (c) 2010-2018 Google, Inc. http://angularjs.org
1663 1699 License: MIT
1664 1700 */
1665 (function(n,c){'use strict';function l(b,a,g){var d=g.baseHref(),k=b[0];return function(b,e,f){var g,h;f=f||{};h=f.expires;g=c.isDefined(f.path)?f.path:d;c.isUndefined(e)&&(h="Thu, 01 Jan 1970 00:00:00 GMT",e="");c.isString(h)&&(h=new Date(h));e=encodeURIComponent(b)+"="+encodeURIComponent(e);e=e+(g?";path="+g:"")+(f.domain?";domain="+f.domain:"");e+=h?";expires="+h.toUTCString():"";e+=f.secure?";secure":"";f=e.length+1;4096<f&&a.warn("Cookie '"+b+"' possibly not set or overflowed because it was too large ("+
1666 f+" > 4096 bytes)!");k.cookie=e}}c.module("ngCookies",["ng"]).provider("$cookies",[function(){var b=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(a,g){return{get:function(d){return a()[d]},getObject:function(d){return(d=this.get(d))?c.fromJson(d):d},getAll:function(){return a()},put:function(d,a,m){g(d,a,m?c.extend({},b,m):b)},putObject:function(d,b,a){this.put(d,c.toJson(b),a)},remove:function(a,k){g(a,void 0,k?c.extend({},b,k):b)}}}]}]);c.module("ngCookies").factory("$cookieStore",
1667 ["$cookies",function(b){return{get:function(a){return b.getObject(a)},put:function(a,c){b.putObject(a,c)},remove:function(a){b.remove(a)}}}]);l.$inject=["$document","$log","$browser"];c.module("ngCookies").provider("$$cookieWriter",function(){this.$get=l})})(window,window.angular);
1701 (function(n,e){'use strict';function m(d,k,l){var a=l.baseHref(),h=d[0];return function(f,b,c){var d,g;c=c||{};g=c.expires;d=e.isDefined(c.path)?c.path:a;e.isUndefined(b)&&(g="Thu, 01 Jan 1970 00:00:00 GMT",b="");e.isString(g)&&(g=new Date(g));b=encodeURIComponent(f)+"="+encodeURIComponent(b);b=b+(d?";path="+d:"")+(c.domain?";domain="+c.domain:"");b+=g?";expires="+g.toUTCString():"";b+=c.secure?";secure":"";b+=c.samesite?";samesite="+c.samesite:"";c=b.length+1;4096<c&&k.warn("Cookie '"+f+"' possibly not set or overflowed because it was too large ("+
1702 c+" > 4096 bytes)!");h.cookie=b}}e.module("ngCookies",["ng"]).info({angularVersion:"1.7.7"}).provider("$cookies",[function(){var d=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(k,l){return{get:function(a){return k()[a]},getObject:function(a){return(a=this.get(a))?e.fromJson(a):a},getAll:function(){return k()},put:function(a,h,f){l(a,h,f?e.extend({},d,f):d)},putObject:function(a,d,f){this.put(a,e.toJson(d),f)},remove:function(a,h){l(a,void 0,h?e.extend({},d,h):d)}}}]}]);m.$inject=
1703 ["$document","$log","$browser"];e.module("ngCookies").provider("$$cookieWriter",function(){this.$get=m})})(window,window.angular);
1668 1704 //# sourceMappingURL=angular-cookies.min.js.map
1669 1705
1670 1706 ;/*
1671 AngularJS v1.5.5
1672 (c) 2010-2016 Google, Inc. http://angularjs.org
1707 AngularJS v1.7.7
1708 (c) 2010-2018 Google, Inc. http://angularjs.org
1673 1709 License: MIT
1674 1710 */
1675 (function(C,d){'use strict';function z(r,h,g){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,y){function k(){n&&(g.cancel(n),n=null);l&&(l.$destroy(),l=null);m&&(n=g.leave(m),n.then(function(){n=null}),m=null)}function x(){var b=r.current&&r.current.locals;if(d.isDefined(b&&b.$template)){var b=a.$new(),f=r.current;m=y(b,function(b){g.enter(b,null,m||c).then(function(){!d.isDefined(t)||t&&!a.$eval(t)||h()});k()});l=f.scope=b;l.$emit("$viewContentLoaded");
1676 l.$eval(u)}else k()}var l,m,n,t=b.autoscroll,u=b.onload||"";a.$on("$routeChangeSuccess",x);x()}}}function A(d,h,g){return{restrict:"ECA",priority:-400,link:function(a,c){var b=g.current,f=b.locals;c.html(f.$template);var y=d(c.contents());if(b.controller){f.$scope=a;var k=h(b.controller,f);b.controllerAs&&(a[b.controllerAs]=k);c.data("$ngControllerController",k);c.children().data("$ngControllerController",k)}a[b.resolveAs||"$resolve"]=f;y(a)}}}var w=d.module("ngRoute",["ng"]).provider("$route",function(){function r(a,
1677 c){return d.extend(Object.create(a),c)}function h(a,d){var b=d.caseInsensitiveMatch,f={originalPath:a,regexp:a},g=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[\?\*])?/g,function(a,d,b,c){a="?"===c||"*?"===c?"?":null;c="*"===c||"*?"===c?"*":null;g.push({name:b,optional:!!a});d=d||"";return""+(a?"":d)+"(?:"+(a?d:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=new RegExp("^"+a+"$",b?"i":"");return f}var g={};this.when=function(a,c){var b=
1678 d.copy(c);d.isUndefined(b.reloadOnSearch)&&(b.reloadOnSearch=!0);d.isUndefined(b.caseInsensitiveMatch)&&(b.caseInsensitiveMatch=this.caseInsensitiveMatch);g[a]=d.extend(b,a&&h(a,b));if(a){var f="/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";g[f]=d.extend({redirectTo:a},h(f,b))}return this};this.caseInsensitiveMatch=!1;this.otherwise=function(a){"string"===typeof a&&(a={redirectTo:a});this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest",
1679 "$sce",function(a,c,b,f,h,k,x){function l(b){var e=s.current;(w=(p=n())&&e&&p.$$route===e.$$route&&d.equals(p.pathParams,e.pathParams)&&!p.reloadOnSearch&&!u)||!e&&!p||a.$broadcast("$routeChangeStart",p,e).defaultPrevented&&b&&b.preventDefault()}function m(){var v=s.current,e=p;if(w)v.params=e.params,d.copy(v.params,b),a.$broadcast("$routeUpdate",v);else if(e||v)u=!1,(s.current=e)&&e.redirectTo&&(d.isString(e.redirectTo)?c.path(t(e.redirectTo,e.params)).search(e.params).replace():c.url(e.redirectTo(e.pathParams,
1680 c.path(),c.search())).replace()),f.when(e).then(function(){if(e){var a=d.extend({},e.resolve),b,c;d.forEach(a,function(b,e){a[e]=d.isString(b)?h.get(b):h.invoke(b,null,null,e)});d.isDefined(b=e.template)?d.isFunction(b)&&(b=b(e.params)):d.isDefined(c=e.templateUrl)&&(d.isFunction(c)&&(c=c(e.params)),d.isDefined(c)&&(e.loadedTemplateUrl=x.valueOf(c),b=k(c)));d.isDefined(b)&&(a.$template=b);return f.all(a)}}).then(function(c){e==s.current&&(e&&(e.locals=c,d.copy(e.params,b)),a.$broadcast("$routeChangeSuccess",
1681 e,v))},function(b){e==s.current&&a.$broadcast("$routeChangeError",e,v,b)})}function n(){var a,b;d.forEach(g,function(f,g){var q;if(q=!b){var h=c.path();q=f.keys;var l={};if(f.regexp)if(h=f.regexp.exec(h)){for(var k=1,n=h.length;k<n;++k){var m=q[k-1],p=h[k];m&&p&&(l[m.name]=p)}q=l}else q=null;else q=null;q=a=q}q&&(b=r(f,{params:d.extend({},c.search(),a),pathParams:a}),b.$$route=f)});return b||g[null]&&r(g[null],{params:{},pathParams:{}})}function t(a,b){var c=[];d.forEach((a||"").split(":"),function(a,
1682 d){if(0===d)c.push(a);else{var f=a.match(/(\w+)(?:[?*])?(.*)/),g=f[1];c.push(b[g]);c.push(f[2]||"");delete b[g]}});return c.join("")}var u=!1,p,w,s={routes:g,reload:function(){u=!0;var b={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0;u=!1}};a.$evalAsync(function(){l(b);b.defaultPrevented||m()})},updateParams:function(a){if(this.current&&this.current.$$route)a=d.extend({},this.current.params,a),c.path(t(this.current.$$route.originalPath,a)),c.search(a);else throw B("norout");
1683 }};a.$on("$locationChangeStart",l);a.$on("$locationChangeSuccess",m);return s}]}),B=d.$$minErr("ngRoute");w.provider("$routeParams",function(){this.$get=function(){return{}}});w.directive("ngView",z);w.directive("ngView",A);z.$inject=["$route","$anchorScroll","$animate"];A.$inject=["$compile","$controller","$route"]})(window,window.angular);
1711 (function(I,b){'use strict';function z(b,h){var d=[],c=b.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[?*])?/g,function(b,c,h,k){b="?"===k||"*?"===k;k="*"===k||"*?"===k;d.push({name:h,optional:b});c=c||"";return(b?"(?:"+c:c+"(?:")+(k?"(.+?)":"([^/]+)")+(b?"?)?":")")}).replace(/([/$*])/g,"\\$1");h.ignoreTrailingSlashes&&(c=c.replace(/\/+$/,"")+"/*");return{keys:d,regexp:new RegExp("^"+c+"(?:[?#]|$)",h.caseInsensitiveMatch?"i":"")}}function A(b){p&&b.get("$route")}function v(u,h,d){return{restrict:"ECA",
1712 terminal:!0,priority:400,transclude:"element",link:function(c,f,g,l,k){function q(){r&&(d.cancel(r),r=null);m&&(m.$destroy(),m=null);s&&(r=d.leave(s),r.done(function(b){!1!==b&&(r=null)}),s=null)}function C(){var g=u.current&&u.current.locals;if(b.isDefined(g&&g.$template)){var g=c.$new(),l=u.current;s=k(g,function(g){d.enter(g,null,s||f).done(function(d){!1===d||!b.isDefined(w)||w&&!c.$eval(w)||h()});q()});m=l.scope=g;m.$emit("$viewContentLoaded");m.$eval(p)}else q()}var m,s,r,w=g.autoscroll,p=g.onload||
1713 "";c.$on("$routeChangeSuccess",C);C()}}}function x(b,h,d){return{restrict:"ECA",priority:-400,link:function(c,f){var g=d.current,l=g.locals;f.html(l.$template);var k=b(f.contents());if(g.controller){l.$scope=c;var q=h(g.controller,l);g.controllerAs&&(c[g.controllerAs]=q);f.data("$ngControllerController",q);f.children().data("$ngControllerController",q)}c[g.resolveAs||"$resolve"]=l;k(c)}}}var D,E,F,G,y=b.module("ngRoute",[]).info({angularVersion:"1.7.7"}).provider("$route",function(){function u(d,
1714 c){return b.extend(Object.create(d),c)}D=b.isArray;E=b.isObject;F=b.isDefined;G=b.noop;var h={};this.when=function(d,c){var f;f=void 0;if(D(c)){f=f||[];for(var g=0,l=c.length;g<l;g++)f[g]=c[g]}else if(E(c))for(g in f=f||{},c)if("$"!==g.charAt(0)||"$"!==g.charAt(1))f[g]=c[g];f=f||c;b.isUndefined(f.reloadOnUrl)&&(f.reloadOnUrl=!0);b.isUndefined(f.reloadOnSearch)&&(f.reloadOnSearch=!0);b.isUndefined(f.caseInsensitiveMatch)&&(f.caseInsensitiveMatch=this.caseInsensitiveMatch);h[d]=b.extend(f,{originalPath:d},
1715 d&&z(d,f));d&&(g="/"===d[d.length-1]?d.substr(0,d.length-1):d+"/",h[g]=b.extend({originalPath:d,redirectTo:d},z(g,f)));return this};this.caseInsensitiveMatch=!1;this.otherwise=function(b){"string"===typeof b&&(b={redirectTo:b});this.when(null,b);return this};p=!0;this.eagerInstantiationEnabled=function(b){return F(b)?(p=b,this):p};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce","$browser",function(d,c,f,g,l,k,q,p){function m(a){var e=t.current;n=A();(x=
1716 !B&&n&&e&&n.$$route===e.$$route&&(!n.reloadOnUrl||!n.reloadOnSearch&&b.equals(n.pathParams,e.pathParams)))||!e&&!n||d.$broadcast("$routeChangeStart",n,e).defaultPrevented&&a&&a.preventDefault()}function s(){var a=t.current,e=n;if(x)a.params=e.params,b.copy(a.params,f),d.$broadcast("$routeUpdate",a);else if(e||a){B=!1;t.current=e;var c=g.resolve(e);p.$$incOutstandingRequestCount("$route");c.then(r).then(w).then(function(g){return g&&c.then(y).then(function(c){e===t.current&&(e&&(e.locals=c,b.copy(e.params,
1717 f)),d.$broadcast("$routeChangeSuccess",e,a))})}).catch(function(b){e===t.current&&d.$broadcast("$routeChangeError",e,a,b)}).finally(function(){p.$$completeOutstandingRequest(G,"$route")})}}function r(a){var e={route:a,hasRedirection:!1};if(a)if(a.redirectTo)if(b.isString(a.redirectTo))e.path=v(a.redirectTo,a.params),e.search=a.params,e.hasRedirection=!0;else{var d=c.path(),f=c.search();a=a.redirectTo(a.pathParams,d,f);b.isDefined(a)&&(e.url=a,e.hasRedirection=!0)}else if(a.resolveRedirectTo)return g.resolve(l.invoke(a.resolveRedirectTo)).then(function(a){b.isDefined(a)&&
1718 (e.url=a,e.hasRedirection=!0);return e});return e}function w(a){var b=!0;if(a.route!==t.current)b=!1;else if(a.hasRedirection){var g=c.url(),d=a.url;d?c.url(d).replace():d=c.path(a.path).search(a.search).replace().url();d!==g&&(b=!1)}return b}function y(a){if(a){var e=b.extend({},a.resolve);b.forEach(e,function(a,c){e[c]=b.isString(a)?l.get(a):l.invoke(a,null,null,c)});a=z(a);b.isDefined(a)&&(e.$template=a);return g.all(e)}}function z(a){var e,c;b.isDefined(e=a.template)?b.isFunction(e)&&(e=e(a.params)):
1719 b.isDefined(c=a.templateUrl)&&(b.isFunction(c)&&(c=c(a.params)),b.isDefined(c)&&(a.loadedTemplateUrl=q.valueOf(c),e=k(c)));return e}function A(){var a,e;b.forEach(h,function(d,g){var f;if(f=!e){var h=c.path();f=d.keys;var l={};if(d.regexp)if(h=d.regexp.exec(h)){for(var k=1,p=h.length;k<p;++k){var m=f[k-1],n=h[k];m&&n&&(l[m.name]=n)}f=l}else f=null;else f=null;f=a=f}f&&(e=u(d,{params:b.extend({},c.search(),a),pathParams:a}),e.$$route=d)});return e||h[null]&&u(h[null],{params:{},pathParams:{}})}function v(a,
1720 c){var d=[];b.forEach((a||"").split(":"),function(a,b){if(0===b)d.push(a);else{var f=a.match(/(\w+)(?:[?*])?(.*)/),g=f[1];d.push(c[g]);d.push(f[2]||"");delete c[g]}});return d.join("")}var B=!1,n,x,t={routes:h,reload:function(){B=!0;var a={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0;B=!1}};d.$evalAsync(function(){m(a);a.defaultPrevented||s()})},updateParams:function(a){if(this.current&&this.current.$$route)a=b.extend({},this.current.params,a),c.path(v(this.current.$$route.originalPath,
1721 a)),c.search(a);else throw H("norout");}};d.$on("$locationChangeStart",m);d.$on("$locationChangeSuccess",s);return t}]}).run(A),H=b.$$minErr("ngRoute"),p;A.$inject=["$injector"];y.provider("$routeParams",function(){this.$get=function(){return{}}});y.directive("ngView",v);y.directive("ngView",x);v.$inject=["$route","$anchorScroll","$animate"];x.$inject=["$compile","$controller","$route"]})(window,window.angular);
1684 1722 //# sourceMappingURL=angular-route.min.js.map
1685 1723
1686 1724 ;/*
1687 AngularJS v1.5.5
1688 (c) 2010-2016 Google, Inc. http://angularjs.org
1725 AngularJS v1.7.7
1726 (c) 2010-2018 Google, Inc. http://angularjs.org
1689 1727 License: MIT
1690 1728 */
1691 (function(P,d){'use strict';function G(t,g){g=g||{};d.forEach(g,function(d,q){delete g[q]});for(var q in t)!t.hasOwnProperty(q)||"$"===q.charAt(0)&&"$"===q.charAt(1)||(g[q]=t[q]);return g}var z=d.$$minErr("$resource"),M=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;d.module("ngResource",["ng"]).provider("$resource",function(){var t=/^https?:\/\/[^\/]*/,g=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}};
1692 this.$get=["$http","$log","$q","$timeout",function(q,L,H,I){function A(d,h){return encodeURIComponent(d).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,h?"%20":"+")}function B(d,h){this.template=d;this.defaults=v({},g.defaults,h);this.urlParams={}}function J(e,h,n,k){function c(a,b){var c={};b=v({},h,b);u(b,function(b,h){x(b)&&(b=b());var f;if(b&&b.charAt&&"@"==b.charAt(0)){f=a;var l=b.substr(1);if(null==l||""===l||"hasOwnProperty"===l||!M.test("."+
1693 l))throw z("badmember",l);for(var l=l.split("."),m=0,k=l.length;m<k&&d.isDefined(f);m++){var r=l[m];f=null!==f?f[r]:void 0}}else f=b;c[h]=f});return c}function N(a){return a.resource}function m(a){G(a||{},this)}var t=new B(e,k);n=v({},g.defaults.actions,n);m.prototype.toJSON=function(){var a=v({},this);delete a.$promise;delete a.$resolved;return a};u(n,function(a,b){var h=/^(POST|PUT|PATCH)$/i.test(a.method),e=a.timeout,E=d.isDefined(a.cancellable)?a.cancellable:k&&d.isDefined(k.cancellable)?k.cancellable:
1694 g.defaults.cancellable;e&&!d.isNumber(e)&&(L.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete a.timeout,e=null);m[b]=function(f,l,k,g){var r={},n,w,C;switch(arguments.length){case 4:C=g,w=k;case 3:case 2:if(x(l)){if(x(f)){w=f;C=l;break}w=l;C=k}else{r=f;n=l;w=k;break}case 1:x(f)?
1695 w=f:h?n=f:r=f;break;case 0:break;default:throw z("badargs",arguments.length);}var D=this instanceof m,p=D?n:a.isArray?[]:new m(n),s={},A=a.interceptor&&a.interceptor.response||N,B=a.interceptor&&a.interceptor.responseError||void 0,y,F;u(a,function(a,b){switch(b){default:s[b]=O(a);case "params":case "isArray":case "interceptor":case "cancellable":}});!D&&E&&(y=H.defer(),s.timeout=y.promise,e&&(F=I(y.resolve,e)));h&&(s.data=n);t.setUrlParams(s,v({},c(n,a.params||{}),r),a.url);r=q(s).then(function(f){var c=
1696 f.data;if(c){if(d.isArray(c)!==!!a.isArray)throw z("badcfg",b,a.isArray?"array":"object",d.isArray(c)?"array":"object",s.method,s.url);if(a.isArray)p.length=0,u(c,function(b){"object"===typeof b?p.push(new m(b)):p.push(b)});else{var l=p.$promise;G(c,p);p.$promise=l}}f.resource=p;return f},function(b){(C||K)(b);return H.reject(b)});r["finally"](function(){p.$resolved=!0;!D&&E&&(p.$cancelRequest=d.noop,I.cancel(F),y=F=s.timeout=null)});r=r.then(function(b){var a=A(b);(w||K)(a,b.headers);return a},B);
1697 return D?r:(p.$promise=r,p.$resolved=!1,E&&(p.$cancelRequest=y.resolve),p)};m.prototype["$"+b]=function(a,c,d){x(a)&&(d=c,c=a,a={});a=m[b].call(this,a,this,c,d);return a.$promise||a}});m.bind=function(a){return J(e,v({},h,a),n)};return m}var K=d.noop,u=d.forEach,v=d.extend,O=d.copy,x=d.isFunction;B.prototype={setUrlParams:function(e,h,n){var k=this,c=n||k.template,g,m,q="",a=k.urlParams={};u(c.split(/\W/),function(b){if("hasOwnProperty"===b)throw z("badname");!/^\d+$/.test(b)&&b&&(new RegExp("(^|[^\\\\]):"+
1698 b+"(\\W|$)")).test(c)&&(a[b]={isQueryParamValue:(new RegExp("\\?.*=:"+b+"(?:\\W|$)")).test(c)})});c=c.replace(/\\:/g,":");c=c.replace(t,function(a){q=a;return""});h=h||{};u(k.urlParams,function(a,e){g=h.hasOwnProperty(e)?h[e]:k.defaults[e];d.isDefined(g)&&null!==g?(m=a.isQueryParamValue?A(g,!0):A(g,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),c=c.replace(new RegExp(":"+e+"(\\W|$)","g"),function(a,b){return m+b})):c=c.replace(new RegExp("(/?):"+e+"(\\W|$)","g"),function(a,b,c){return"/"==
1699 c.charAt(0)?c:b+c})});k.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/");c=c.replace(/\/\.(?=\w+($|\?))/,".");e.url=q+c.replace(/\/\\\./,"/.");u(h,function(a,c){k.urlParams[c]||(e.params=e.params||{},e.params[c]=a)})}};return J}]})})(window,window.angular);
1729 (function(T,a){'use strict';function M(m,f){f=f||{};a.forEach(f,function(a,d){delete f[d]});for(var d in m)!m.hasOwnProperty(d)||"$"===d.charAt(0)&&"$"===d.charAt(1)||(f[d]=m[d]);return f}var B=a.$$minErr("$resource"),H=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;a.module("ngResource",["ng"]).info({angularVersion:"1.7.7"}).provider("$resource",function(){var m=/^https?:\/\/\[[^\]]*][^/]*/,f=this;this.defaults={stripTrailingSlashes:!0,cancellable:!1,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",
1730 isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}};this.$get=["$http","$log","$q","$timeout",function(d,F,G,N){function C(a,d){this.template=a;this.defaults=n({},f.defaults,d);this.urlParams={}}var O=a.noop,r=a.forEach,n=a.extend,R=a.copy,P=a.isArray,D=a.isDefined,x=a.isFunction,I=a.isNumber,y=a.$$encodeUriQuery,S=a.$$encodeUriSegment;C.prototype={setUrlParams:function(a,d,f){var g=this,c=f||g.template,s,h,n="",b=g.urlParams=Object.create(null);r(c.split(/\W/),function(a){if("hasOwnProperty"===
1731 a)throw B("badname");!/^\d+$/.test(a)&&a&&(new RegExp("(^|[^\\\\]):"+a+"(\\W|$)")).test(c)&&(b[a]={isQueryParamValue:(new RegExp("\\?.*=:"+a+"(?:\\W|$)")).test(c)})});c=c.replace(/\\:/g,":");c=c.replace(m,function(b){n=b;return""});d=d||{};r(g.urlParams,function(b,a){s=d.hasOwnProperty(a)?d[a]:g.defaults[a];D(s)&&null!==s?(h=b.isQueryParamValue?y(s,!0):S(s),c=c.replace(new RegExp(":"+a+"(\\W|$)","g"),function(b,a){return h+a})):c=c.replace(new RegExp("(/?):"+a+"(\\W|$)","g"),function(b,a,e){return"/"===
1732 e.charAt(0)?e:a+e})});g.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/");c=c.replace(/\/\.(?=\w+($|\?))/,".");a.url=n+c.replace(/\/(\\|%5C)\./,"/.");r(d,function(b,c){g.urlParams[c]||(a.params=a.params||{},a.params[c]=b)})}};return function(m,y,z,g){function c(b,c){var d={};c=n({},y,c);r(c,function(c,f){x(c)&&(c=c(b));var e;if(c&&c.charAt&&"@"===c.charAt(0)){e=b;var k=c.substr(1);if(null==k||""===k||"hasOwnProperty"===k||!H.test("."+k))throw B("badmember",k);for(var k=k.split("."),h=0,
1733 n=k.length;h<n&&a.isDefined(e);h++){var g=k[h];e=null!==e?e[g]:void 0}}else e=c;d[f]=e});return d}function s(b){return b.resource}function h(b){M(b||{},this)}var Q=new C(m,g);z=n({},f.defaults.actions,z);h.prototype.toJSON=function(){var b=n({},this);delete b.$promise;delete b.$resolved;delete b.$cancelRequest;return b};r(z,function(b,a){var f=!0===b.hasBody||!1!==b.hasBody&&/^(POST|PUT|PATCH)$/i.test(b.method),g=b.timeout,m=D(b.cancellable)?b.cancellable:Q.defaults.cancellable;g&&!I(g)&&(F.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),
1734 delete b.timeout,g=null);h[a]=function(e,k,J,y){function z(a){p.catch(O);null!==u&&u.resolve(a)}var K={},v,t,w;switch(arguments.length){case 4:w=y,t=J;case 3:case 2:if(x(k)){if(x(e)){t=e;w=k;break}t=k;w=J}else{K=e;v=k;t=J;break}case 1:x(e)?t=e:f?v=e:K=e;break;case 0:break;default:throw B("badargs",arguments.length);}var E=this instanceof h,l=E?v:b.isArray?[]:new h(v),q={},C=b.interceptor&&b.interceptor.request||void 0,D=b.interceptor&&b.interceptor.requestError||void 0,F=b.interceptor&&b.interceptor.response||
1735 s,H=b.interceptor&&b.interceptor.responseError||G.reject,I=t?function(a){t(a,A.headers,A.status,A.statusText)}:void 0;w=w||void 0;var u,L,A;r(b,function(a,b){switch(b){default:q[b]=R(a);case "params":case "isArray":case "interceptor":case "cancellable":}});!E&&m&&(u=G.defer(),q.timeout=u.promise,g&&(L=N(u.resolve,g)));f&&(q.data=v);Q.setUrlParams(q,n({},c(v,b.params||{}),K),b.url);var p=G.resolve(q).then(C).catch(D).then(d),p=p.then(function(c){var e=c.data;if(e){if(P(e)!==!!b.isArray)throw B("badcfg",
1736 a,b.isArray?"array":"object",P(e)?"array":"object",q.method,q.url);if(b.isArray)l.length=0,r(e,function(a){"object"===typeof a?l.push(new h(a)):l.push(a)});else{var d=l.$promise;M(e,l);l.$promise=d}}c.resource=l;A=c;return F(c)},function(a){a.resource=l;A=a;return H(a)}),p=p["finally"](function(){l.$resolved=!0;!E&&m&&(l.$cancelRequest=O,N.cancel(L),u=L=q.timeout=null)});p.then(I,w);return E?p:(l.$promise=p,l.$resolved=!1,m&&(l.$cancelRequest=z),l)};h.prototype["$"+a]=function(b,c,d){x(b)&&(d=c,c=
1737 b,b={});b=h[a].call(this,b,this,c,d);return b.$promise||b}});return h}}]})})(window,window.angular);
1700 1738 //# sourceMappingURL=angular-resource.min.js.map
1701 1739
1702 1740 ;/*
1703 AngularJS v1.5.5
1704 (c) 2010-2016 Google, Inc. http://angularjs.org
1741 AngularJS v1.7.7
1742 (c) 2010-2018 Google, Inc. http://angularjs.org
1705 1743 License: MIT
1706 1744 */
1707 (function(S,q){'use strict';function Aa(a,b,c){if(!a)throw Ma("areq",b||"?",c||"required");return a}function Ba(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;ba(a)&&(a=a.join(" "));ba(b)&&(b=b.join(" "));return a+" "+b}function Na(a){var b={};a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from);return b}function X(a,b,c){var d="";a=ba(a)?a:a&&P(a)&&a.length?a.split(/\s+/):[];r(a,function(a,f){a&&0<a.length&&(d+=0<f?" ":"",d+=c?b+a:a+b)});return d}function Oa(a){if(a instanceof G)switch(a.length){case 0:return[];
1708 case 1:if(1===a[0].nodeType)return a;break;default:return G(ca(a))}if(1===a.nodeType)return G(a)}function ca(a){if(!a[0])return a;for(var b=0;b<a.length;b++){var c=a[b];if(1==c.nodeType)return c}}function Pa(a,b,c){r(b,function(b){a.addClass(b,c)})}function Qa(a,b,c){r(b,function(b){a.removeClass(b,c)})}function U(a){return function(b,c){c.addClass&&(Pa(a,b,c.addClass),c.addClass=null);c.removeClass&&(Qa(a,b,c.removeClass),c.removeClass=null)}}function pa(a){a=a||{};if(!a.$$prepared){var b=a.domOperation||
1709 Q;a.domOperation=function(){a.$$domOperationFired=!0;b();b=Q};a.$$prepared=!0}return a}function ga(a,b){Ca(a,b);Da(a,b)}function Ca(a,b){b.from&&(a.css(b.from),b.from=null)}function Da(a,b){b.to&&(a.css(b.to),b.to=null)}function V(a,b,c){var d=b.options||{};c=c.options||{};var e=(d.addClass||"")+" "+(c.addClass||""),f=(d.removeClass||"")+" "+(c.removeClass||"");a=Ra(a.attr("class"),e,f);c.preparationClasses&&(d.preparationClasses=Y(c.preparationClasses,d.preparationClasses),delete c.preparationClasses);
1710 e=d.domOperation!==Q?d.domOperation:null;Ea(d,c);e&&(d.domOperation=e);d.addClass=a.addClass?a.addClass:null;d.removeClass=a.removeClass?a.removeClass:null;b.addClass=d.addClass;b.removeClass=d.removeClass;return d}function Ra(a,b,c){function d(a){P(a)&&(a=a.split(" "));var b={};r(a,function(a){a.length&&(b[a]=!0)});return b}var e={};a=d(a);b=d(b);r(b,function(a,b){e[b]=1});c=d(c);r(c,function(a,b){e[b]=1===e[b]?null:-1});var f={addClass:"",removeClass:""};r(e,function(b,c){var d,e;1===b?(d="addClass",
1711 e=!a[c]):-1===b&&(d="removeClass",e=a[c]);e&&(f[d].length&&(f[d]+=" "),f[d]+=c)});return f}function D(a){return a instanceof q.element?a[0]:a}function Sa(a,b,c){var d="";b&&(d=X(b,"ng-",!0));c.addClass&&(d=Y(d,X(c.addClass,"-add")));c.removeClass&&(d=Y(d,X(c.removeClass,"-remove")));d.length&&(c.preparationClasses=d,a.addClass(d))}function qa(a,b){var c=b?"-"+b+"s":"";la(a,[ma,c]);return[ma,c]}function ta(a,b){var c=b?"paused":"",d=Z+"PlayState";la(a,[d,c]);return[d,c]}function la(a,b){a.style[b[0]]=
1712 b[1]}function Y(a,b){return a?b?a+" "+b:a:b}function Fa(a,b,c){var d=Object.create(null),e=a.getComputedStyle(b)||{};r(c,function(a,b){var c=e[a];if(c){var s=c.charAt(0);if("-"===s||"+"===s||0<=s)c=Ta(c);0===c&&(c=null);d[b]=c}});return d}function Ta(a){var b=0;a=a.split(/\s*,\s*/);r(a,function(a){"s"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));a=parseFloat(a)||0;b=b?Math.max(a,b):a});return b}function ua(a){return 0===a||null!=a}function Ga(a,b){var c=T,d=a+"s";b?c+="Duration":d+=" linear all";
1713 return[c,d]}function Ha(){var a=Object.create(null);return{flush:function(){a=Object.create(null)},count:function(b){return(b=a[b])?b.total:0},get:function(b){return(b=a[b])&&b.value},put:function(b,c){a[b]?a[b].total++:a[b]={total:1,value:c}}}}function Ia(a,b,c){r(c,function(c){a[c]=da(a[c])?a[c]:b.style.getPropertyValue(c)})}var Q=q.noop,Ja=q.copy,Ea=q.extend,G=q.element,r=q.forEach,ba=q.isArray,P=q.isString,va=q.isObject,C=q.isUndefined,da=q.isDefined,Ka=q.isFunction,wa=q.isElement,T,xa,Z,ya;C(S.ontransitionend)&&
1714 da(S.onwebkittransitionend)?(T="WebkitTransition",xa="webkitTransitionEnd transitionend"):(T="transition",xa="transitionend");C(S.onanimationend)&&da(S.onwebkitanimationend)?(Z="WebkitAnimation",ya="webkitAnimationEnd animationend"):(Z="animation",ya="animationend");var ra=Z+"Delay",za=Z+"Duration",ma=T+"Delay",La=T+"Duration",Ma=q.$$minErr("ng"),Ua={transitionDuration:La,transitionDelay:ma,transitionProperty:T+"Property",animationDuration:za,animationDelay:ra,animationIterationCount:Z+"IterationCount"},
1715 Va={transitionDuration:La,transitionDelay:ma,animationDuration:za,animationDelay:ra};q.module("ngAnimate",[]).directive("ngAnimateSwap",["$animate","$rootScope",function(a,b){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(b,d,e,f,z){var B,s;b.$watchCollection(e.ngAnimateSwap||e["for"],function(e){B&&a.leave(B);s&&(s.$destroy(),s=null);if(e||0===e)s=b.$new(),z(s,function(b){B=b;a.enter(b,null,d)})})}}}]).directive("ngAnimateChildren",["$interpolate",function(a){return{link:function(b,
1716 c,d){function e(a){c.data("$$ngAnimateChildren","on"===a||"true"===a)}var f=d.ngAnimateChildren;q.isString(f)&&0===f.length?c.data("$$ngAnimateChildren",!0):(e(a(f)(b)),d.$observe("ngAnimateChildren",e))}}}]).factory("$$rAFScheduler",["$$rAF",function(a){function b(a){d=d.concat(a);c()}function c(){if(d.length){for(var b=d.shift(),z=0;z<b.length;z++)b[z]();e||a(function(){e||c()})}}var d,e;d=b.queue=[];b.waitUntilQuiet=function(b){e&&e();e=a(function(){e=null;b();c()})};return b}]).provider("$$animateQueue",
1717 ["$animateProvider",function(a){function b(a){if(!a)return null;a=a.split(" ");var b=Object.create(null);r(a,function(a){b[a]=!0});return b}function c(a,c){if(a&&c){var d=b(c);return a.split(" ").some(function(a){return d[a]})}}function d(a,b,c,d){return f[a].some(function(a){return a(b,c,d)})}function e(a,b){var c=0<(a.addClass||"").length,d=0<(a.removeClass||"").length;return b?c&&d:c||d}var f=this.rules={skip:[],cancel:[],join:[]};f.join.push(function(a,b,c){return!b.structural&&e(b)});f.skip.push(function(a,
1718 b,c){return!b.structural&&!e(b)});f.skip.push(function(a,b,c){return"leave"==c.event&&b.structural});f.skip.push(function(a,b,c){return c.structural&&2===c.state&&!b.structural});f.cancel.push(function(a,b,c){return c.structural&&b.structural});f.cancel.push(function(a,b,c){return 2===c.state&&b.structural});f.cancel.push(function(a,b,d){if(d.structural)return!1;a=b.addClass;b=b.removeClass;var e=d.addClass;d=d.removeClass;return C(a)&&C(b)||C(e)&&C(d)?!1:c(a,d)||c(b,e)});this.$get=["$$rAF","$rootScope",
1719 "$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(b,c,f,v,I,Wa,u,sa,w,x){function R(){var a=!1;return function(b){a?b():c.$$postDigest(function(){a=!0;b()})}}function J(a,b,c){var g=D(b),d=D(a),k=[];(a=h[c])&&r(a,function(a){ia.call(a.node,g)?k.push(a.callback):"leave"===c&&ia.call(a.node,d)&&k.push(a.callback)});return k}function k(a,b,c){var g=ca(b);return a.filter(function(a){return!(a.node===g&&(!c||a.callback===c))})}
1720 function p(a,k,h){function l(c,g,d,h){f(function(){var c=J(oa,a,g);c.length?b(function(){r(c,function(b){b(a,d,h)});"close"!==d||a[0].parentNode||N.off(a)}):"close"!==d||a[0].parentNode||N.off(a)});c.progress(g,d,h)}function A(b){var c=a,g=m;g.preparationClasses&&(c.removeClass(g.preparationClasses),g.preparationClasses=null);g.activeClasses&&(c.removeClass(g.activeClasses),g.activeClasses=null);F(a,m);ga(a,m);m.domOperation();p.complete(!b)}var m=Ja(h),x,oa;if(a=Oa(a))x=D(a),oa=a.parent();var m=
1721 pa(m),p=new u,f=R();ba(m.addClass)&&(m.addClass=m.addClass.join(" "));m.addClass&&!P(m.addClass)&&(m.addClass=null);ba(m.removeClass)&&(m.removeClass=m.removeClass.join(" "));m.removeClass&&!P(m.removeClass)&&(m.removeClass=null);m.from&&!va(m.from)&&(m.from=null);m.to&&!va(m.to)&&(m.to=null);if(!x)return A(),p;h=[x.className,m.addClass,m.removeClass].join(" ");if(!Xa(h))return A(),p;var s=0<=["enter","move","leave"].indexOf(k),t=v[0].hidden,w=!g||t||H.get(x);h=!w&&y.get(x)||{};var I=!!h.state;w||
1722 I&&1==h.state||(w=!K(a,oa,k));if(w)return t&&l(p,k,"start"),A(),t&&l(p,k,"close"),p;s&&L(a);t={structural:s,element:a,event:k,addClass:m.addClass,removeClass:m.removeClass,close:A,options:m,runner:p};if(I){if(d("skip",a,t,h)){if(2===h.state)return A(),p;V(a,h,t);return h.runner}if(d("cancel",a,t,h))if(2===h.state)h.runner.end();else if(h.structural)h.close();else return V(a,h,t),h.runner;else if(d("join",a,t,h))if(2===h.state)V(a,t,{});else return Sa(a,s?k:null,m),k=t.event=h.event,m=V(a,h,t),h.runner}else V(a,
1723 t,{});(I=t.structural)||(I="animate"===t.event&&0<Object.keys(t.options.to||{}).length||e(t));if(!I)return A(),O(a),p;var ia=(h.counter||0)+1;t.counter=ia;M(a,1,t);c.$$postDigest(function(){var b=y.get(x),c=!b,b=b||{},g=0<(a.parent()||[]).length&&("animate"===b.event||b.structural||e(b));if(c||b.counter!==ia||!g){c&&(F(a,m),ga(a,m));if(c||s&&b.event!==k)m.domOperation(),p.end();g||O(a)}else k=!b.structural&&e(b,!0)?"setClass":b.event,M(a,2),b=Wa(a,k,b.options),p.setHost(b),l(p,k,"start",{}),b.done(function(b){A(!b);
1724 (b=y.get(x))&&b.counter===ia&&O(D(a));l(p,k,"close",{})})});return p}function L(a){a=D(a).querySelectorAll("[data-ng-animate]");r(a,function(a){var b=parseInt(a.getAttribute("data-ng-animate")),c=y.get(a);if(c)switch(b){case 2:c.runner.end();case 1:y.remove(a)}})}function O(a){a=D(a);a.removeAttribute("data-ng-animate");y.remove(a)}function l(a,b){return D(a)===D(b)}function K(a,b,c){c=G(v[0].body);var g=l(a,c)||"HTML"===a[0].nodeName,d=l(a,f),h=!1,k,e=H.get(D(a));(a=G.data(a[0],"$ngAnimatePin"))&&
1725 (b=a);for(b=D(b);b;){d||(d=l(b,f));if(1!==b.nodeType)break;a=y.get(b)||{};if(!h){var p=H.get(b);if(!0===p&&!1!==e){e=!0;break}else!1===p&&(e=!1);h=a.structural}if(C(k)||!0===k)a=G.data(b,"$$ngAnimateChildren"),da(a)&&(k=a);if(h&&!1===k)break;g||(g=l(b,c));if(g&&d)break;if(!d&&(a=G.data(b,"$ngAnimatePin"))){b=D(a);continue}b=b.parentNode}return(!h||k)&&!0!==e&&d&&g}function M(a,b,c){c=c||{};c.state=b;a=D(a);a.setAttribute("data-ng-animate",b);c=(b=y.get(a))?Ea(b,c):c;y.put(a,c)}var y=new I,H=new I,
1726 g=null,oa=c.$watch(function(){return 0===sa.totalPendingRequests},function(a){a&&(oa(),c.$$postDigest(function(){c.$$postDigest(function(){null===g&&(g=!0)})}))}),h={},A=a.classNameFilter(),Xa=A?function(a){return A.test(a)}:function(){return!0},F=U(w),ia=S.Node.prototype.contains||function(a){return this===a||!!(this.compareDocumentPosition(a)&16)},N={on:function(a,b,c){var g=ca(b);h[a]=h[a]||[];h[a].push({node:g,callback:c});G(b).on("$destroy",function(){y.get(g)||N.off(a,b,c)})},off:function(a,
1727 b,c){if(1!==arguments.length||q.isString(arguments[0])){var g=h[a];g&&(h[a]=1===arguments.length?null:k(g,b,c))}else for(g in b=arguments[0],h)h[g]=k(h[g],b)},pin:function(a,b){Aa(wa(a),"element","not an element");Aa(wa(b),"parentElement","not an element");a.data("$ngAnimatePin",b)},push:function(a,b,c,g){c=c||{};c.domOperation=g;return p(a,b,c)},enabled:function(a,b){var c=arguments.length;if(0===c)b=!!g;else if(wa(a)){var d=D(a),h=H.get(d);1===c?b=!h:H.put(d,!b)}else b=g=!!a;return b}};return N}]}]).provider("$$animation",
1728 ["$animateProvider",function(a){function b(a){return a.data("$$animationRunner")}var c=this.drivers=[];this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(a,e,f,z,B,s){function v(a){function b(a){if(a.processed)return a;a.processed=!0;var d=a.domNode,L=d.parentNode;e.put(d,a);for(var f;L;){if(f=e.get(L)){f.processed||(f=b(f));break}L=L.parentNode}(f||c).children.push(a);return a}var c={children:[]},d,e=new B;for(d=0;d<a.length;d++){var f=a[d];e.put(f.domNode,
1729 a[d]={domNode:f.domNode,fn:f.fn,children:[]})}for(d=0;d<a.length;d++)b(a[d]);return function(a){var b=[],c=[],d;for(d=0;d<a.children.length;d++)c.push(a.children[d]);a=c.length;var e=0,f=[];for(d=0;d<c.length;d++){var x=c[d];0>=a&&(a=e,e=0,b.push(f),f=[]);f.push(x.fn);x.children.forEach(function(a){e++;c.push(a)});a--}f.length&&b.push(f);return b}(c)}var I=[],q=U(a);return function(u,B,w){function x(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];r(a,function(a){var c=
1730 a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function R(a){var b=[],c={};r(a,function(a,g){var d=D(a.element),e=0<=["enter","move"].indexOf(a.event),d=a.structural?x(d):[];if(d.length){var k=e?"to":"from";r(d,function(a){var b=a.getAttribute("ng-animate-ref");c[b]=c[b]||{};c[b][k]={animationID:g,element:G(a)}})}else b.push(a)});var d={},e={};r(c,function(c,h){var k=c.from,f=c.to;if(k&&f){var p=a[k.animationID],y=a[f.animationID],l=k.animationID.toString();if(!e[l]){var x=e[l]=
1731 {structural:!0,beforeStart:function(){p.beforeStart();y.beforeStart()},close:function(){p.close();y.close()},classes:J(p.classes,y.classes),from:p,to:y,anchors:[]};x.classes.length?b.push(x):(b.push(p),b.push(y))}e[l].anchors.push({out:k.element,"in":f.element})}else k=k?k.animationID:f.animationID,f=k.toString(),d[f]||(d[f]=!0,b.push(a[k]))});return b}function J(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],d=0;d<a.length;d++){var k=a[d];if("ng-"!==k.substring(0,3))for(var e=0;e<b.length;e++)if(k===
1732 b[e]){c.push(k);break}}return c.join(" ")}function k(a){for(var b=c.length-1;0<=b;b--){var d=c[b];if(f.has(d)&&(d=f.get(d)(a)))return d}}function p(a,c){a.from&&a.to?(b(a.from.element).setHost(c),b(a.to.element).setHost(c)):b(a.element).setHost(c)}function L(){var a=b(u);!a||"leave"===B&&w.$$domOperationFired||a.end()}function O(b){u.off("$destroy",L);u.removeData("$$animationRunner");q(u,w);ga(u,w);w.domOperation();y&&a.removeClass(u,y);u.removeClass("ng-animate");K.complete(!b)}w=pa(w);var l=0<=
1733 ["enter","move","leave"].indexOf(B),K=new z({end:function(){O()},cancel:function(){O(!0)}});if(!c.length)return O(),K;u.data("$$animationRunner",K);var M=Ba(u.attr("class"),Ba(w.addClass,w.removeClass)),y=w.tempClasses;y&&(M+=" "+y,w.tempClasses=null);var H;l&&(H="ng-"+B+"-prepare",a.addClass(u,H));I.push({element:u,classes:M,event:B,structural:l,options:w,beforeStart:function(){u.addClass("ng-animate");y&&a.addClass(u,y);H&&(a.removeClass(u,H),H=null)},close:O});u.on("$destroy",L);if(1<I.length)return K;
1734 e.$$postDigest(function(){var a=[];r(I,function(c){b(c.element)?a.push(c):c.close()});I.length=0;var c=R(a),d=[];r(c,function(a){d.push({domNode:D(a.from?a.from.element:a.element),fn:function(){a.beforeStart();var c,d=a.close;if(b(a.anchors?a.from.element||a.to.element:a.element)){var g=k(a);g&&(c=g.start)}c?(c=c(),c.done(function(a){d(!a)}),p(a,c)):d()}})});s(v(d))});return K}}]}]).provider("$animateCss",["$animateProvider",function(a){var b=Ha(),c=Ha();this.$get=["$window","$$jqLite","$$AnimateRunner",
1735 "$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(a,e,f,z,B,s,v,I){function q(a,b){var c=a.parentNode;return(c.$$ngAnimateParentKey||(c.$$ngAnimateParentKey=++R))+"-"+a.getAttribute("class")+"-"+b}function u(k,f,x,s){var l;0<b.count(x)&&(l=c.get(x),l||(f=X(f,"-stagger"),e.addClass(k,f),l=Fa(a,k,s),l.animationDuration=Math.max(l.animationDuration,0),l.transitionDuration=Math.max(l.transitionDuration,0),e.removeClass(k,f),c.put(x,l)));return l||{}}function sa(a){J.push(a);
1736 v.waitUntilQuiet(function(){b.flush();c.flush();for(var a=B(),d=0;d<J.length;d++)J[d](a);J.length=0})}function w(c,e,f){e=b.get(f);e||(e=Fa(a,c,Ua),"infinite"===e.animationIterationCount&&(e.animationIterationCount=1));b.put(f,e);c=e;f=c.animationDelay;e=c.transitionDelay;c.maxDelay=f&&e?Math.max(f,e):f||e;c.maxDuration=Math.max(c.animationDuration*c.animationIterationCount,c.transitionDuration);return c}var x=U(e),R=0,J=[];return function(a,c){function d(){l()}function v(){l(!0)}function l(b){if(!(R||
1737 G&&N)){R=!0;N=!1;g.$$skipPreparationClasses||e.removeClass(a,fa);e.removeClass(a,da);ta(h,!1);qa(h,!1);r(A,function(a){h.style[a[0]]=""});x(a,g);ga(a,g);Object.keys(J).length&&r(J,function(a,b){a?h.style.setProperty(b,a):h.style.removeProperty(b)});if(g.onDone)g.onDone();ea&&ea.length&&a.off(ea.join(" "),y);var c=a.data("$$animateCss");c&&(z.cancel(c[0].timer),a.removeData("$$animateCss"));C&&C.complete(!b)}}function K(a){n.blockTransition&&qa(h,a);n.blockKeyframeAnimation&&ta(h,!!a)}function M(){C=
1738 new f({end:d,cancel:v});sa(Q);l();return{$$willAnimate:!1,start:function(){return C},end:d}}function y(a){a.stopPropagation();var b=a.originalEvent||a;a=b.$manualTimeStamp||Date.now();b=parseFloat(b.elapsedTime.toFixed(3));Math.max(a-V,0)>=S&&b>=m&&(G=!0,l())}function H(){function b(){if(!R){K(!1);r(A,function(a){h.style[a[0]]=a[1]});x(a,g);e.addClass(a,da);if(n.recalculateTimingStyles){na=h.className+" "+fa;ja=q(h,na);E=w(h,na,ja);$=E.maxDelay;ha=Math.max($,0);m=E.maxDuration;if(0===m){l();return}n.hasTransitions=
1739 0<E.transitionDuration;n.hasAnimations=0<E.animationDuration}n.applyAnimationDelay&&($="boolean"!==typeof g.delay&&ua(g.delay)?parseFloat(g.delay):$,ha=Math.max($,0),E.animationDelay=$,aa=[ra,$+"s"],A.push(aa),h.style[aa[0]]=aa[1]);S=1E3*ha;U=1E3*m;if(g.easing){var d,f=g.easing;n.hasTransitions&&(d=T+"TimingFunction",A.push([d,f]),h.style[d]=f);n.hasAnimations&&(d=Z+"TimingFunction",A.push([d,f]),h.style[d]=f)}E.transitionDuration&&ea.push(xa);E.animationDuration&&ea.push(ya);V=Date.now();var H=S+
1740 1.5*U;d=V+H;var f=a.data("$$animateCss")||[],s=!0;if(f.length){var p=f[0];(s=d>p.expectedEndTime)?z.cancel(p.timer):f.push(l)}s&&(H=z(c,H,!1),f[0]={timer:H,expectedEndTime:d},f.push(l),a.data("$$animateCss",f));if(ea.length)a.on(ea.join(" "),y);g.to&&(g.cleanupStyles&&Ia(J,h,Object.keys(g.to)),Da(a,g))}}function c(){var b=a.data("$$animateCss");if(b){for(var d=1;d<b.length;d++)b[d]();a.removeData("$$animateCss")}}if(!R)if(h.parentNode){var d=function(a){if(G)N&&a&&(N=!1,l());else if(N=!a,E.animationDuration)if(a=
1741 ta(h,N),N)A.push(a);else{var b=A,c=b.indexOf(a);0<=a&&b.splice(c,1)}},f=0<ca&&(E.transitionDuration&&0===W.transitionDuration||E.animationDuration&&0===W.animationDuration)&&Math.max(W.animationDelay,W.transitionDelay);f?z(b,Math.floor(f*ca*1E3),!1):b();P.resume=function(){d(!0)};P.pause=function(){d(!1)}}else l()}var g=c||{};g.$$prepared||(g=pa(Ja(g)));var J={},h=D(a);if(!h||!h.parentNode||!I.enabled())return M();var A=[],B=a.attr("class"),F=Na(g),R,N,G,C,P,ha,S,m,U,V,ea=[];if(0===g.duration||!s.animations&&
1742 !s.transitions)return M();var ka=g.event&&ba(g.event)?g.event.join(" "):g.event,Y="",t="";ka&&g.structural?Y=X(ka,"ng-",!0):ka&&(Y=ka);g.addClass&&(t+=X(g.addClass,"-add"));g.removeClass&&(t.length&&(t+=" "),t+=X(g.removeClass,"-remove"));g.applyClassesEarly&&t.length&&x(a,g);var fa=[Y,t].join(" ").trim(),na=B+" "+fa,da=X(fa,"-active"),B=F.to&&0<Object.keys(F.to).length;if(!(0<(g.keyframeStyle||"").length||B||fa))return M();var ja,W;0<g.stagger?(F=parseFloat(g.stagger),W={transitionDelay:F,animationDelay:F,
1743 transitionDuration:0,animationDuration:0}):(ja=q(h,na),W=u(h,fa,ja,Va));g.$$skipPreparationClasses||e.addClass(a,fa);g.transitionStyle&&(F=[T,g.transitionStyle],la(h,F),A.push(F));0<=g.duration&&(F=0<h.style[T].length,F=Ga(g.duration,F),la(h,F),A.push(F));g.keyframeStyle&&(F=[Z,g.keyframeStyle],la(h,F),A.push(F));var ca=W?0<=g.staggerIndex?g.staggerIndex:b.count(ja):0;(ka=0===ca)&&!g.skipBlocking&&qa(h,9999);var E=w(h,na,ja),$=E.maxDelay;ha=Math.max($,0);m=E.maxDuration;var n={};n.hasTransitions=
1744 0<E.transitionDuration;n.hasAnimations=0<E.animationDuration;n.hasTransitionAll=n.hasTransitions&&"all"==E.transitionProperty;n.applyTransitionDuration=B&&(n.hasTransitions&&!n.hasTransitionAll||n.hasAnimations&&!n.hasTransitions);n.applyAnimationDuration=g.duration&&n.hasAnimations;n.applyTransitionDelay=ua(g.delay)&&(n.applyTransitionDuration||n.hasTransitions);n.applyAnimationDelay=ua(g.delay)&&n.hasAnimations;n.recalculateTimingStyles=0<t.length;if(n.applyTransitionDuration||n.applyAnimationDuration)m=
1745 g.duration?parseFloat(g.duration):m,n.applyTransitionDuration&&(n.hasTransitions=!0,E.transitionDuration=m,F=0<h.style[T+"Property"].length,A.push(Ga(m,F))),n.applyAnimationDuration&&(n.hasAnimations=!0,E.animationDuration=m,A.push([za,m+"s"]));if(0===m&&!n.recalculateTimingStyles)return M();if(null!=g.delay){var aa;"boolean"!==typeof g.delay&&(aa=parseFloat(g.delay),ha=Math.max(aa,0));n.applyTransitionDelay&&A.push([ma,aa+"s"]);n.applyAnimationDelay&&A.push([ra,aa+"s"])}null==g.duration&&0<E.transitionDuration&&
1746 (n.recalculateTimingStyles=n.recalculateTimingStyles||ka);S=1E3*ha;U=1E3*m;g.skipBlocking||(n.blockTransition=0<E.transitionDuration,n.blockKeyframeAnimation=0<E.animationDuration&&0<W.animationDelay&&0===W.animationDuration);g.from&&(g.cleanupStyles&&Ia(J,h,Object.keys(g.from)),Ca(a,g));n.blockTransition||n.blockKeyframeAnimation?K(m):g.skipBlocking||qa(h,!1);return{$$willAnimate:!0,end:d,start:function(){if(!R)return P={end:d,cancel:v,resume:null,pause:null},C=new f(P),sa(H),C}}}}]}]).provider("$$animateCssDriver",
1747 ["$$animationProvider",function(a){a.drivers.push("$$animateCssDriver");this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(a,c,d,e,f,z,B){function s(a){return a.replace(/\bng-\S+\b/g,"")}function v(a,b){P(a)&&(a=a.split(" "));P(b)&&(b=b.split(" "));return a.filter(function(a){return-1===b.indexOf(a)}).join(" ")}function I(c,e,f){function k(a){var b={},c=D(a).getBoundingClientRect();r(["width","height","top","left"],function(a){var d=c[a];
1748 switch(a){case "top":d+=C.scrollTop;break;case "left":d+=C.scrollLeft}b[a]=Math.floor(d)+"px"});return b}function p(){var c=s(f.attr("class")||""),d=v(c,l),c=v(l,c),d=a(z,{to:k(f),addClass:"ng-anchor-in "+d,removeClass:"ng-anchor-out "+c,delay:!0});return d.$$willAnimate?d:null}function B(){z.remove();e.removeClass("ng-animate-shim");f.removeClass("ng-animate-shim")}var z=G(D(e).cloneNode(!0)),l=s(z.attr("class")||"");e.addClass("ng-animate-shim");f.addClass("ng-animate-shim");z.addClass("ng-anchor");
1749 w.append(z);var K;c=function(){var c=a(z,{addClass:"ng-anchor-out",delay:!0,from:k(e)});return c.$$willAnimate?c:null}();if(!c&&(K=p(),!K))return B();var M=c||K;return{start:function(){function a(){c&&c.end()}var b,c=M.start();c.done(function(){c=null;if(!K&&(K=p()))return c=K.start(),c.done(function(){c=null;B();b.complete()}),c;B();b.complete()});return b=new d({end:a,cancel:a})}}}function q(a,b,c,e){var f=u(a,Q),s=u(b,Q),z=[];r(e,function(a){(a=I(c,a.out,a["in"]))&&z.push(a)});if(f||s||0!==z.length)return{start:function(){function a(){r(b,
1750 function(a){a.end()})}var b=[];f&&b.push(f.start());s&&b.push(s.start());r(z,function(a){b.push(a.start())});var c=new d({end:a,cancel:a});d.all(b,function(a){c.complete(a)});return c}}}function u(c){var d=c.element,e=c.options||{};c.structural&&(e.event=c.event,e.structural=!0,e.applyClassesEarly=!0,"leave"===c.event&&(e.onDone=e.domOperation));e.preparationClasses&&(e.event=Y(e.event,e.preparationClasses));c=a(d,e);return c.$$willAnimate?c:null}if(!f.animations&&!f.transitions)return Q;var C=B[0].body;
1751 c=D(e);var w=G(c.parentNode&&11===c.parentNode.nodeType||C.contains(c)?c:C);U(z);return function(a){return a.from&&a.to?q(a.from,a.to,a.classes,a.anchors):u(a)}}]}]).provider("$$animateJs",["$animateProvider",function(a){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(b,c,d){function e(c){c=ba(c)?c:c.split(" ");for(var d=[],e={},f=0;f<c.length;f++){var r=c[f],q=a.$$registeredAnimations[r];q&&!e[r]&&(d.push(b.get(q)),e[r]=!0)}return d}var f=U(d);return function(a,b,d,v){function q(){v.domOperation();
1752 f(a,v)}function D(a,b,d,e,g){switch(d){case "animate":b=[b,e.from,e.to,g];break;case "setClass":b=[b,x,G,g];break;case "addClass":b=[b,x,g];break;case "removeClass":b=[b,G,g];break;default:b=[b,g]}b.push(e);if(a=a.apply(a,b))if(Ka(a.start)&&(a=a.start()),a instanceof c)a.done(g);else if(Ka(a))return a;return Q}function u(a,b,d,e,g){var f=[];r(e,function(e){var k=e[g];k&&f.push(function(){var e,g,f=!1,h=function(a){f||(f=!0,(g||Q)(a),e.complete(!a))};e=new c({end:function(){h()},cancel:function(){h(!0)}});
1753 g=D(k,a,b,d,function(a){h(!1===a)});return e})});return f}function C(a,b,d,e,g){var f=u(a,b,d,e,g);if(0===f.length){var h,k;"beforeSetClass"===g?(h=u(a,"removeClass",d,e,"beforeRemoveClass"),k=u(a,"addClass",d,e,"beforeAddClass")):"setClass"===g&&(h=u(a,"removeClass",d,e,"removeClass"),k=u(a,"addClass",d,e,"addClass"));h&&(f=f.concat(h));k&&(f=f.concat(k))}if(0!==f.length)return function(a){var b=[];f.length&&r(f,function(a){b.push(a())});b.length?c.all(b,a):a();return function(a){r(b,function(b){a?
1754 b.cancel():b.end()})}}}var w=!1;3===arguments.length&&va(d)&&(v=d,d=null);v=pa(v);d||(d=a.attr("class")||"",v.addClass&&(d+=" "+v.addClass),v.removeClass&&(d+=" "+v.removeClass));var x=v.addClass,G=v.removeClass,J=e(d),k,p;if(J.length){var L,O;"leave"==b?(O="leave",L="afterLeave"):(O="before"+b.charAt(0).toUpperCase()+b.substr(1),L=b);"enter"!==b&&"move"!==b&&(k=C(a,b,v,J,O));p=C(a,b,v,J,L)}if(k||p){var l;return{$$willAnimate:!0,end:function(){l?l.end():(w=!0,q(),ga(a,v),l=new c,l.complete(!0));return l},
1755 start:function(){function b(c){w=!0;q();ga(a,v);l.complete(c)}if(l)return l;l=new c;var d,e=[];k&&e.push(function(a){d=k(a)});e.length?e.push(function(a){q();a(!0)}):q();p&&e.push(function(a){d=p(a)});l.setHost({end:function(){w||((d||Q)(void 0),b(void 0))},cancel:function(){w||((d||Q)(!0),b(!0))}});c.chain(e,b);return l}}}}}]}]).provider("$$animateJsDriver",["$$animationProvider",function(a){a.drivers.push("$$animateJsDriver");this.$get=["$$animateJs","$$AnimateRunner",function(a,c){function d(c){return a(c.element,
1756 c.event,c.classes,c.options)}return function(a){if(a.from&&a.to){var b=d(a.from),q=d(a.to);if(b||q)return{start:function(){function a(){return function(){r(d,function(a){a.end()})}}var d=[];b&&d.push(b.start());q&&d.push(q.start());c.all(d,function(a){e.complete(a)});var e=new c({end:a(),cancel:a()});return e}}}else return d(a)}}]}])})(window,window.angular);
1745 (function(Y,z){'use strict';function Fa(a,b,c){if(!a)throw Pa("areq",b||"?",c||"required");return a}function Ga(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;Z(a)&&(a=a.join(" "));Z(b)&&(b=b.join(" "));return a+" "+b}function Qa(a){var b={};a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from);return b}function $(a,b,c){var d="";a=Z(a)?a:a&&G(a)&&a.length?a.split(/\s+/):[];s(a,function(a,k){a&&0<a.length&&(d+=0<k?" ":"",d+=c?b+a:a+b)});return d}function Ha(a){if(a instanceof A)switch(a.length){case 0:return a;
1746 case 1:if(1===a[0].nodeType)return a;break;default:return A(va(a))}if(1===a.nodeType)return A(a)}function va(a){if(!a[0])return a;for(var b=0;b<a.length;b++){var c=a[b];if(1===c.nodeType)return c}}function Ra(a,b,c){s(b,function(b){a.addClass(b,c)})}function Sa(a,b,c){s(b,function(b){a.removeClass(b,c)})}function aa(a){return function(b,c){c.addClass&&(Ra(a,b,c.addClass),c.addClass=null);c.removeClass&&(Sa(a,b,c.removeClass),c.removeClass=null)}}function pa(a){a=a||{};if(!a.$$prepared){var b=a.domOperation||
1747 N;a.domOperation=function(){a.$$domOperationFired=!0;b();b=N};a.$$prepared=!0}return a}function ha(a,b){Ia(a,b);Ja(a,b)}function Ia(a,b){b.from&&(a.css(b.from),b.from=null)}function Ja(a,b){b.to&&(a.css(b.to),b.to=null)}function T(a,b,c){var d=b.options||{};c=c.options||{};var f=(d.addClass||"")+" "+(c.addClass||""),k=(d.removeClass||"")+" "+(c.removeClass||"");a=Ta(a.attr("class"),f,k);c.preparationClasses&&(d.preparationClasses=ba(c.preparationClasses,d.preparationClasses),delete c.preparationClasses);
1748 f=d.domOperation!==N?d.domOperation:null;wa(d,c);f&&(d.domOperation=f);d.addClass=a.addClass?a.addClass:null;d.removeClass=a.removeClass?a.removeClass:null;b.addClass=d.addClass;b.removeClass=d.removeClass;return d}function Ta(a,b,c){function d(a){G(a)&&(a=a.split(" "));var c={};s(a,function(a){a.length&&(c[a]=!0)});return c}var f={};a=d(a);b=d(b);s(b,function(a,c){f[c]=1});c=d(c);s(c,function(a,c){f[c]=1===f[c]?null:-1});var k={addClass:"",removeClass:""};s(f,function(c,b){var d,f;1===c?(d="addClass",
1749 f=!a[b]||a[b+"-remove"]):-1===c&&(d="removeClass",f=a[b]||a[b+"-add"]);f&&(k[d].length&&(k[d]+=" "),k[d]+=b)});return k}function K(a){return a instanceof A?a[0]:a}function Ua(a,b,c,d){a="";c&&(a=$(c,"ng-",!0));d.addClass&&(a=ba(a,$(d.addClass,"-add")));d.removeClass&&(a=ba(a,$(d.removeClass,"-remove")));a.length&&(d.preparationClasses=a,b.addClass(a))}function xa(a,b){var c=b?"paused":"",d=ca+"PlayState";ma(a,[d,c]);return[d,c]}function ma(a,b){a.style[b[0]]=b[1]}function ba(a,b){return a?b?a+" "+
1750 b:a:b}function Ka(a,b,c){var d=Object.create(null),f=a.getComputedStyle(b)||{};s(c,function(a,c){var b=f[a];if(b){var L=b.charAt(0);if("-"===L||"+"===L||0<=L)b=Va(b);0===b&&(b=null);d[c]=b}});return d}function Va(a){var b=0;a=a.split(/\s*,\s*/);s(a,function(a){"s"===a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));a=parseFloat(a)||0;b=b?Math.max(a,b):a});return b}function ya(a){return 0===a||null!=a}function La(a,b){var c=M,d=a+"s";b?c+="Duration":d+=" linear all";return[c,d]}function Ma(a,b,c){s(c,
1751 function(c){a[c]=za(a[c])?a[c]:b.style.getPropertyValue(c)})}var M,Aa,ca,Ba;void 0===Y.ontransitionend&&void 0!==Y.onwebkittransitionend?(M="WebkitTransition",Aa="webkitTransitionEnd transitionend"):(M="transition",Aa="transitionend");void 0===Y.onanimationend&&void 0!==Y.onwebkitanimationend?(ca="WebkitAnimation",Ba="webkitAnimationEnd animationend"):(ca="animation",Ba="animationend");var qa=ca+"Delay",Ca=ca+"Duration",na=M+"Delay",Na=M+"Duration",Pa=z.$$minErr("ng"),ra={blockTransitions:function(a,
1752 b){var c=b?"-"+b+"s":"";ma(a,[na,c]);return[na,c]}},Wa={transitionDuration:Na,transitionDelay:na,transitionProperty:M+"Property",animationDuration:Ca,animationDelay:qa,animationIterationCount:ca+"IterationCount"},Xa={transitionDuration:Na,transitionDelay:na,animationDuration:Ca,animationDelay:qa},Da,wa,s,Z,za,sa,Ea,ta,G,R,A,N;z.module("ngAnimate",[],function(){N=z.noop;Da=z.copy;wa=z.extend;A=z.element;s=z.forEach;Z=z.isArray;G=z.isString;ta=z.isObject;R=z.isUndefined;za=z.isDefined;Ea=z.isFunction;
1753 sa=z.isElement}).info({angularVersion:"1.7.7"}).directive("ngAnimateSwap",["$animate",function(a){return{restrict:"A",transclude:"element",terminal:!0,priority:550,link:function(b,c,d,f,k){var e,Q;b.$watchCollection(d.ngAnimateSwap||d["for"],function(b){e&&a.leave(e);Q&&(Q.$destroy(),Q=null);(b||0===b)&&k(function(b,d){e=b;Q=d;a.enter(b,null,c)})})}}}]).directive("ngAnimateChildren",["$interpolate",function(a){return{link:function(b,c,d){function f(a){c.data("$$ngAnimateChildren","on"===a||"true"===
1754 a)}var k=d.ngAnimateChildren;G(k)&&0===k.length?c.data("$$ngAnimateChildren",!0):(f(a(k)(b)),d.$observe("ngAnimateChildren",f))}}}]).factory("$$rAFScheduler",["$$rAF",function(a){function b(a){d=d.concat(a);c()}function c(){if(d.length){for(var b=d.shift(),e=0;e<b.length;e++)b[e]();f||a(function(){f||c()})}}var d,f;d=b.queue=[];b.waitUntilQuiet=function(b){f&&f();f=a(function(){f=null;b();c()})};return b}]).provider("$$animateQueue",["$animateProvider",function(a){function b(a){return{addClass:a.addClass,
1755 removeClass:a.removeClass,from:a.from,to:a.to}}function c(a){if(!a)return null;a=a.split(" ");var b=Object.create(null);s(a,function(a){b[a]=!0});return b}function d(a,b){if(a&&b){var d=c(b);return a.split(" ").some(function(a){return d[a]})}}function f(a,b,c){return e[a].some(function(a){return a(b,c)})}function k(a,b){var c=0<(a.addClass||"").length,d=0<(a.removeClass||"").length;return b?c&&d:c||d}var e=this.rules={skip:[],cancel:[],join:[]};e.join.push(function(a,b){return!a.structural&&k(a)});
1756 e.skip.push(function(a,b){return!a.structural&&!k(a)});e.skip.push(function(a,b){return"leave"===b.event&&a.structural});e.skip.push(function(a,b){return b.structural&&2===b.state&&!a.structural});e.cancel.push(function(a,b){return b.structural&&a.structural});e.cancel.push(function(a,b){return 2===b.state&&a.structural});e.cancel.push(function(a,b){if(b.structural)return!1;var c=a.addClass,f=a.removeClass,k=b.addClass,e=b.removeClass;return R(c)&&R(f)||R(k)&&R(e)?!1:d(c,e)||d(f,k)});this.$get=["$$rAF",
1757 "$rootScope","$rootElement","$document","$$Map","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow","$$isDocumentHidden",function(c,d,e,C,U,oa,H,u,t,I,da){function ia(a){O.delete(a.target)}function v(){var a=!1;return function(b){a?b():d.$$postDigest(function(){a=!0;b()})}}function ua(a,b,c){var g=[],l=m[c];l&&s(l,function(l){Oa.call(l.node,b)?g.push(l.callback):"leave"===c&&Oa.call(l.node,a)&&g.push(l.callback)});return g}function h(a,b,c){var l=va(b);return a.filter(function(a){return!(a.node===
1758 l&&(!c||a.callback===c))})}function q(a,J,w){function e(a,b,l,g){u(function(){var a=ua(ia,m,b);a.length?c(function(){s(a,function(a){a(h,l,g)});"close"!==l||m.parentNode||D.off(m)}):"close"!==l||m.parentNode||D.off(m)});a.progress(b,l,g)}function I(a){var b=h,c=n;c.preparationClasses&&(b.removeClass(c.preparationClasses),c.preparationClasses=null);c.activeClasses&&(b.removeClass(c.activeClasses),c.activeClasses=null);W(h,n);ha(h,n);n.domOperation();q.complete(!a)}var n=Da(w),h=Ha(a),m=K(h),ia=m&&
1759 m.parentNode,n=pa(n),q=new H,u=v();Z(n.addClass)&&(n.addClass=n.addClass.join(" "));n.addClass&&!G(n.addClass)&&(n.addClass=null);Z(n.removeClass)&&(n.removeClass=n.removeClass.join(" "));n.removeClass&&!G(n.removeClass)&&(n.removeClass=null);n.from&&!ta(n.from)&&(n.from=null);n.to&&!ta(n.to)&&(n.to=null);if(!(B&&m&&fa(m,J,w)&&Ya(m,n)))return I(),q;var x=0<=["enter","move","leave"].indexOf(J),r=da(),P=r||O.get(m);w=!P&&y.get(m)||{};var p=!!w.state;P||p&&1===w.state||(P=!E(m,ia,J));if(P)return r&&
1760 e(q,J,"start",b(n)),I(),r&&e(q,J,"close",b(n)),q;x&&F(m);r={structural:x,element:h,event:J,addClass:n.addClass,removeClass:n.removeClass,close:I,options:n,runner:q};if(p){if(f("skip",r,w)){if(2===w.state)return I(),q;T(h,w,r);return w.runner}if(f("cancel",r,w))if(2===w.state)w.runner.end();else if(w.structural)w.close();else return T(h,w,r),w.runner;else if(f("join",r,w))if(2===w.state)T(h,r,{});else return Ua(t,h,x?J:null,n),J=r.event=w.event,n=T(h,w,r),w.runner}else T(h,r,{});(p=r.structural)||
1761 (p="animate"===r.event&&0<Object.keys(r.options.to||{}).length||k(r));if(!p)return I(),g(m),q;var C=(w.counter||0)+1;r.counter=C;l(m,1,r);d.$$postDigest(function(){h=Ha(a);var c=y.get(m),d=!c,c=c||{},t=0<(h.parent()||[]).length&&("animate"===c.event||c.structural||k(c));if(d||c.counter!==C||!t){d&&(W(h,n),ha(h,n));if(d||x&&c.event!==J)n.domOperation(),q.end();t||g(m)}else J=!c.structural&&k(c,!0)?"setClass":c.event,l(m,2),c=oa(h,J,c.options),q.setHost(c),e(q,J,"start",b(n)),c.done(function(a){I(!a);
1762 (a=y.get(m))&&a.counter===C&&g(m);e(q,J,"close",b(n))})});return q}function F(a){a=a.querySelectorAll("[data-ng-animate]");s(a,function(a){var b=parseInt(a.getAttribute("data-ng-animate"),10),c=y.get(a);if(c)switch(b){case 2:c.runner.end();case 1:y.delete(a)}})}function g(a){a.removeAttribute("data-ng-animate");y.delete(a)}function E(a,b,c){c=C[0].body;var l=K(e),g=a===c||"HTML"===a.nodeName,d=a===l,t=!1,m=O.get(a),h;for((a=A.data(a,"$ngAnimatePin"))&&(b=K(a));b;){d||(d=b===l);if(1!==b.nodeType)break;
1763 a=y.get(b)||{};if(!t){var f=O.get(b);if(!0===f&&!1!==m){m=!0;break}else!1===f&&(m=!1);t=a.structural}if(R(h)||!0===h)a=A.data(b,"$$ngAnimateChildren"),za(a)&&(h=a);if(t&&!1===h)break;g||(g=b===c);if(g&&d)break;if(!d&&(a=A.data(b,"$ngAnimatePin"))){b=K(a);continue}b=b.parentNode}return(!t||h)&&!0!==m&&d&&g}function l(a,b,c){c=c||{};c.state=b;a.setAttribute("data-ng-animate",b);c=(b=y.get(a))?wa(b,c):c;y.set(a,c)}var y=new U,O=new U,B=null,P=d.$watch(function(){return 0===u.totalPendingRequests},function(a){a&&
1764 (P(),d.$$postDigest(function(){d.$$postDigest(function(){null===B&&(B=!0)})}))}),m=Object.create(null);U=a.customFilter();var la=a.classNameFilter();I=function(){return!0};var fa=U||I,Ya=la?function(a,b){var c=[a.getAttribute("class"),b.addClass,b.removeClass].join(" ");return la.test(c)}:I,W=aa(t),Oa=Y.Node.prototype.contains||function(a){return this===a||!!(this.compareDocumentPosition(a)&16)},D={on:function(a,b,c){var l=va(b);m[a]=m[a]||[];m[a].push({node:l,callback:c});A(b).on("$destroy",function(){y.get(l)||
1765 D.off(a,b,c)})},off:function(a,b,c){if(1!==arguments.length||G(arguments[0])){var l=m[a];l&&(m[a]=1===arguments.length?null:h(l,b,c))}else for(l in b=arguments[0],m)m[l]=h(m[l],b)},pin:function(a,b){Fa(sa(a),"element","not an element");Fa(sa(b),"parentElement","not an element");a.data("$ngAnimatePin",b)},push:function(a,b,c,l){c=c||{};c.domOperation=l;return q(a,b,c)},enabled:function(a,b){var c=arguments.length;if(0===c)b=!!B;else if(sa(a)){var l=K(a);if(1===c)b=!O.get(l);else{if(!O.has(l))A(a).on("$destroy",
1766 ia);O.set(l,!b)}}else b=B=!!a;return b}};return D}]}]).provider("$$animateCache",function(){var a=0,b=Object.create(null);this.$get=[function(){return{cacheKey:function(b,d,f,k){var e=b.parentNode;b=[e.$$ngAnimateParentKey||(e.$$ngAnimateParentKey=++a),d,b.getAttribute("class")];f&&b.push(f);k&&b.push(k);return b.join(" ")},containsCachedAnimationWithoutDuration:function(a){return(a=b[a])&&!a.isValid||!1},flush:function(){b=Object.create(null)},count:function(a){return(a=b[a])?a.total:0},get:function(a){return(a=
1767 b[a])&&a.value},put:function(a,d,f){b[a]?(b[a].total++,b[a].value=d):b[a]={total:1,value:d,isValid:f}}}}]}).provider("$$animation",["$animateProvider",function(a){var b=this.drivers=[];this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$Map","$$rAFScheduler","$$animateCache",function(a,d,f,k,e,Q,L){function x(a){function b(a){if(a.processed)return a;a.processed=!0;var d=a.domNode,t=d.parentNode;f.set(d,a);for(var h;t;){if(h=f.get(t)){h.processed||(h=b(h));break}t=t.parentNode}(h||
1768 c).children.push(a);return a}var c={children:[]},d,f=new e;for(d=0;d<a.length;d++){var da=a[d];f.set(da.domNode,a[d]={domNode:da.domNode,element:da.element,fn:da.fn,children:[]})}for(d=0;d<a.length;d++)b(a[d]);return function(a){var b=[],c=[],d;for(d=0;d<a.children.length;d++)c.push(a.children[d]);a=c.length;var t=0,f=[];for(d=0;d<c.length;d++){var g=c[d];0>=a&&(a=t,t=0,b.push(f),f=[]);f.push(g);g.children.forEach(function(a){t++;c.push(a)});a--}f.length&&b.push(f);return b}(c)}var C=[],U=aa(a);return function(e,
1769 H,u){function t(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];s(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function I(a){var b=[],c={};s(a,function(a,d){var l=K(a.element),g=0<=["enter","move"].indexOf(a.event),l=a.structural?t(l):[];if(l.length){var f=g?"to":"from";s(l,function(a){var b=a.getAttribute("ng-animate-ref");c[b]=c[b]||{};c[b][f]={animationID:d,element:A(a)}})}else b.push(a)});var d={},g={};s(c,function(c,
1770 t){var f=c.from,e=c.to;if(f&&e){var h=a[f.animationID],k=a[e.animationID],E=f.animationID.toString();if(!g[E]){var I=g[E]={structural:!0,beforeStart:function(){h.beforeStart();k.beforeStart()},close:function(){h.close();k.close()},classes:da(h.classes,k.classes),from:h,to:k,anchors:[]};I.classes.length?b.push(I):(b.push(h),b.push(k))}g[E].anchors.push({out:f.element,"in":e.element})}else f=f?f.animationID:e.animationID,e=f.toString(),d[e]||(d[e]=!0,b.push(a[f]))});return b}function da(a,b){a=a.split(" ");
1771 b=b.split(" ");for(var c=[],d=0;d<a.length;d++){var g=a[d];if("ng-"!==g.substring(0,3))for(var t=0;t<b.length;t++)if(g===b[t]){c.push(g);break}}return c.join(" ")}function ia(a){for(var c=b.length-1;0<=c;c--){var d=f.get(b[c])(a);if(d)return d}}function v(a,b){function c(a){(a=a.data("$$animationRunner"))&&a.setHost(b)}a.from&&a.to?(c(a.from.element),c(a.to.element)):c(a.element)}function ua(){var a=e.data("$$animationRunner");!a||"leave"===H&&u.$$domOperationFired||a.end()}function h(b){e.off("$destroy",
1772 ua);e.removeData("$$animationRunner");U(e,u);ha(e,u);u.domOperation();E&&a.removeClass(e,E);F.complete(!b)}u=pa(u);var q=0<=["enter","move","leave"].indexOf(H),F=new k({end:function(){h()},cancel:function(){h(!0)}});if(!b.length)return h(),F;var g=Ga(e.attr("class"),Ga(u.addClass,u.removeClass)),E=u.tempClasses;E&&(g+=" "+E,u.tempClasses=null);q&&e.data("$$animatePrepareClasses","ng-"+H+"-prepare");e.data("$$animationRunner",F);C.push({element:e,classes:g,event:H,structural:q,options:u,beforeStart:function(){E=
1773 (E?E+" ":"")+"ng-animate";a.addClass(e,E);var b=e.data("$$animatePrepareClasses");b&&a.removeClass(e,b)},close:h});e.on("$destroy",ua);if(1<C.length)return F;d.$$postDigest(function(){var b=[];s(C,function(a){a.element.data("$$animationRunner")?b.push(a):a.close()});C.length=0;var d=I(b),g=[];s(d,function(a){var b=a.from?a.from.element:a.element,c=u.addClass,d=L.cacheKey(b[0],a.event,(c?c+" ":"")+"ng-animate",u.removeClass);g.push({element:b,domNode:K(b),fn:function(){var b,c=a.close;if(L.containsCachedAnimationWithoutDuration(d))c();
1774 else{a.beforeStart();if((a.anchors?a.from.element||a.to.element:a.element).data("$$animationRunner")){var g=ia(a);g&&(b=g.start)}b?(b=b(),b.done(function(a){c(!a)}),v(a,b)):c()}}})});for(var d=x(g),t=0;t<d.length;t++)for(var f=d[t],e=0;e<f.length;e++){var h=f[e],k=h.element;d[t][e]=h.fn;0===t?k.removeData("$$animatePrepareClasses"):(h=k.data("$$animatePrepareClasses"))&&a.addClass(k,h)}Q(d)});return F}}]}]).provider("$animateCss",["$animateProvider",function(a){this.$get=["$window","$$jqLite","$$AnimateRunner",
1775 "$timeout","$$animateCache","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(a,c,d,f,k,e,Q,L,x){function C(d,f,e,x){var v,s="stagger-"+e;0<k.count(e)&&(v=k.get(s),v||(f=$(f,"-stagger"),c.addClass(d,f),v=Ka(a,d,x),v.animationDuration=Math.max(v.animationDuration,0),v.transitionDuration=Math.max(v.transitionDuration,0),c.removeClass(d,f),k.put(s,v,!0)));return v||{}}function U(a){u.push(a);L.waitUntilQuiet(function(){k.flush();for(var a=e(),b=0;b<u.length;b++)u[b](a);u.length=0})}
1776 function z(c,d,f,e){d=k.get(f);d||(d=Ka(a,c,Wa),"infinite"===d.animationIterationCount&&(d.animationIterationCount=1));k.put(f,d,e||0<d.transitionDuration||0<d.animationDuration);c=d;f=c.animationDelay;e=c.transitionDelay;c.maxDelay=f&&e?Math.max(f,e):f||e;c.maxDuration=Math.max(c.animationDuration*c.animationIterationCount,c.transitionDuration);return c}var H=aa(c),u=[];return function(a,b){function e(){v()}function L(){v(!0)}function v(b){if(!(P||la&&m)){P=!0;m=!1;V&&!g.$$skipPreparationClasses&&
1777 c.removeClass(a,V);ba&&c.removeClass(a,ba);xa(l,!1);ra.blockTransitions(l,!1);s(y,function(a){l.style[a[0]]=""});H(a,g);ha(a,g);Object.keys(E).length&&s(E,function(a,b){a?l.style.setProperty(b,a):l.style.removeProperty(b)});if(g.onDone)g.onDone();w&&w.length&&a.off(w.join(" "),q);var d=a.data("$$animateCss");d&&(f.cancel(d[0].timer),a.removeData("$$animateCss"));fa&&fa.complete(!b)}}function u(a){p.blockTransition&&ra.blockTransitions(l,a);p.blockKeyframeAnimation&&xa(l,!!a)}function h(){fa=new d({end:e,
1778 cancel:L});U(N);v();return{$$willAnimate:!1,start:function(){return fa},end:e}}function q(a){a.stopPropagation();var b=a.originalEvent||a;b.target===l&&(a=b.$manualTimeStamp||Date.now(),b=parseFloat(b.elapsedTime.toFixed(3)),Math.max(a-J,0)>=G&&b>=D&&(la=!0,v()))}function F(){function b(){if(!P){u(!1);s(y,function(a){l.style[a[0]]=a[1]});H(a,g);c.addClass(a,ba);if(p.recalculateTimingStyles){T=l.getAttribute("class")+" "+V;ka=k.cacheKey(l,ja,g.addClass,g.removeClass);r=z(l,T,ka,!1);ga=r.maxDelay;W=
1779 Math.max(ga,0);D=r.maxDuration;if(0===D){v();return}p.hasTransitions=0<r.transitionDuration;p.hasAnimations=0<r.animationDuration}p.applyAnimationDelay&&(ga="boolean"!==typeof g.delay&&ya(g.delay)?parseFloat(g.delay):ga,W=Math.max(ga,0),r.animationDelay=ga,ea=[qa,ga+"s"],y.push(ea),l.style[ea[0]]=ea[1]);G=1E3*W;R=1E3*D;if(g.easing){var e,h=g.easing;p.hasTransitions&&(e=M+"TimingFunction",y.push([e,h]),l.style[e]=h);p.hasAnimations&&(e=ca+"TimingFunction",y.push([e,h]),l.style[e]=h)}r.transitionDuration&&
1780 w.push(Aa);r.animationDuration&&w.push(Ba);J=Date.now();var m=G+1.5*R;e=J+m;var h=a.data("$$animateCss")||[],F=!0;if(h.length){var n=h[0];(F=e>n.expectedEndTime)?f.cancel(n.timer):h.push(v)}F&&(m=f(d,m,!1),h[0]={timer:m,expectedEndTime:e},h.push(v),a.data("$$animateCss",h));if(w.length)a.on(w.join(" "),q);g.to&&(g.cleanupStyles&&Ma(E,l,Object.keys(g.to)),Ja(a,g))}}function d(){var b=a.data("$$animateCss");if(b){for(var c=1;c<b.length;c++)b[c]();a.removeData("$$animateCss")}}if(!P)if(l.parentNode){var e=
1781 function(a){if(la)m&&a&&(m=!1,v());else if(m=!a,r.animationDuration)if(a=xa(l,m),m)y.push(a);else{var b=y,c=b.indexOf(a);0<=a&&b.splice(c,1)}},h=0<aa&&(r.transitionDuration&&0===X.transitionDuration||r.animationDuration&&0===X.animationDuration)&&Math.max(X.animationDelay,X.transitionDelay);h?f(b,Math.floor(h*aa*1E3),!1):b();A.resume=function(){e(!0)};A.pause=function(){e(!1)}}else v()}var g=b||{};g.$$prepared||(g=pa(Da(g)));var E={},l=K(a);if(!l||!l.parentNode||!x.enabled())return h();var y=[],O=
1782 a.attr("class"),B=Qa(g),P,m,la,fa,A,W,G,D,R,J,w=[];if(0===g.duration||!Q.animations&&!Q.transitions)return h();var ja=g.event&&Z(g.event)?g.event.join(" "):g.event,Y=ja&&g.structural,n="",S="";Y?n=$(ja,"ng-",!0):ja&&(n=ja);g.addClass&&(S+=$(g.addClass,"-add"));g.removeClass&&(S.length&&(S+=" "),S+=$(g.removeClass,"-remove"));g.applyClassesEarly&&S.length&&H(a,g);var V=[n,S].join(" ").trim(),T=O+" "+V,O=B.to&&0<Object.keys(B.to).length;if(!(0<(g.keyframeStyle||"").length||O||V))return h();var X,ka=
1783 k.cacheKey(l,ja,g.addClass,g.removeClass);if(k.containsCachedAnimationWithoutDuration(ka))return V=null,h();0<g.stagger?(B=parseFloat(g.stagger),X={transitionDelay:B,animationDelay:B,transitionDuration:0,animationDuration:0}):X=C(l,V,ka,Xa);g.$$skipPreparationClasses||c.addClass(a,V);g.transitionStyle&&(B=[M,g.transitionStyle],ma(l,B),y.push(B));0<=g.duration&&(B=0<l.style[M].length,B=La(g.duration,B),ma(l,B),y.push(B));g.keyframeStyle&&(B=[ca,g.keyframeStyle],ma(l,B),y.push(B));var aa=X?0<=g.staggerIndex?
1784 g.staggerIndex:k.count(ka):0;(n=0===aa)&&!g.skipBlocking&&ra.blockTransitions(l,9999);var r=z(l,T,ka,!Y),ga=r.maxDelay;W=Math.max(ga,0);D=r.maxDuration;var p={};p.hasTransitions=0<r.transitionDuration;p.hasAnimations=0<r.animationDuration;p.hasTransitionAll=p.hasTransitions&&"all"===r.transitionProperty;p.applyTransitionDuration=O&&(p.hasTransitions&&!p.hasTransitionAll||p.hasAnimations&&!p.hasTransitions);p.applyAnimationDuration=g.duration&&p.hasAnimations;p.applyTransitionDelay=ya(g.delay)&&(p.applyTransitionDuration||
1785 p.hasTransitions);p.applyAnimationDelay=ya(g.delay)&&p.hasAnimations;p.recalculateTimingStyles=0<S.length;if(p.applyTransitionDuration||p.applyAnimationDuration)D=g.duration?parseFloat(g.duration):D,p.applyTransitionDuration&&(p.hasTransitions=!0,r.transitionDuration=D,B=0<l.style[M+"Property"].length,y.push(La(D,B))),p.applyAnimationDuration&&(p.hasAnimations=!0,r.animationDuration=D,y.push([Ca,D+"s"]));if(0===D&&!p.recalculateTimingStyles)return h();var ba=$(V,"-active");if(null!=g.delay){var ea;
1786 "boolean"!==typeof g.delay&&(ea=parseFloat(g.delay),W=Math.max(ea,0));p.applyTransitionDelay&&y.push([na,ea+"s"]);p.applyAnimationDelay&&y.push([qa,ea+"s"])}null==g.duration&&0<r.transitionDuration&&(p.recalculateTimingStyles=p.recalculateTimingStyles||n);G=1E3*W;R=1E3*D;g.skipBlocking||(p.blockTransition=0<r.transitionDuration,p.blockKeyframeAnimation=0<r.animationDuration&&0<X.animationDelay&&0===X.animationDuration);g.from&&(g.cleanupStyles&&Ma(E,l,Object.keys(g.from)),Ia(a,g));p.blockTransition||
1787 p.blockKeyframeAnimation?u(D):g.skipBlocking||ra.blockTransitions(l,!1);return{$$willAnimate:!0,end:e,start:function(){if(!P)return A={end:e,cancel:L,resume:null,pause:null},fa=new d(A),U(F),fa}}}}]}]).provider("$$animateCssDriver",["$$animationProvider",function(a){a.drivers.push("$$animateCssDriver");this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(a,c,d,f,k,e,Q){function L(a){return a.replace(/\bng-\S+\b/g,"")}function x(a,b){G(a)&&
1788 (a=a.split(" "));G(b)&&(b=b.split(" "));return a.filter(function(a){return-1===b.indexOf(a)}).join(" ")}function C(c,e,f){function k(a){var b={},c=K(a).getBoundingClientRect();s(["width","height","top","left"],function(a){var d=c[a];switch(a){case "top":d+=H.scrollTop;break;case "left":d+=H.scrollLeft}b[a]=Math.floor(d)+"px"});return b}function v(){var c=L(f.attr("class")||""),d=x(c,q),c=x(q,c),d=a(h,{to:k(f),addClass:"ng-anchor-in "+d,removeClass:"ng-anchor-out "+c,delay:!0});return d.$$willAnimate?
1789 d:null}function C(){h.remove();e.removeClass("ng-animate-shim");f.removeClass("ng-animate-shim")}var h=A(K(e).cloneNode(!0)),q=L(h.attr("class")||"");e.addClass("ng-animate-shim");f.addClass("ng-animate-shim");h.addClass("ng-anchor");u.append(h);var F;c=function(){var c=a(h,{addClass:"ng-anchor-out",delay:!0,from:k(e)});return c.$$willAnimate?c:null}();if(!c&&(F=v(),!F))return C();var g=c||F;return{start:function(){function a(){c&&c.end()}var b,c=g.start();c.done(function(){c=null;if(!F&&(F=v()))return c=
1790 F.start(),c.done(function(){c=null;C();b.complete()}),c;C();b.complete()});return b=new d({end:a,cancel:a})}}}function z(a,b,c,e){var f=oa(a,N),k=oa(b,N),h=[];s(e,function(a){(a=C(c,a.out,a["in"]))&&h.push(a)});if(f||k||0!==h.length)return{start:function(){function a(){s(b,function(a){a.end()})}var b=[];f&&b.push(f.start());k&&b.push(k.start());s(h,function(a){b.push(a.start())});var c=new d({end:a,cancel:a});d.all(b,function(a){c.complete(a)});return c}}}function oa(c){var d=c.element,e=c.options||
1791 {};c.structural&&(e.event=c.event,e.structural=!0,e.applyClassesEarly=!0,"leave"===c.event&&(e.onDone=e.domOperation));e.preparationClasses&&(e.event=ba(e.event,e.preparationClasses));c=a(d,e);return c.$$willAnimate?c:null}if(!k.animations&&!k.transitions)return N;var H=Q[0].body;c=K(f);var u=A(c.parentNode&&11===c.parentNode.nodeType||H.contains(c)?c:H);return function(a){return a.from&&a.to?z(a.from,a.to,a.classes,a.anchors):oa(a)}}]}]).provider("$$animateJs",["$animateProvider",function(a){this.$get=
1792 ["$injector","$$AnimateRunner","$$jqLite",function(b,c,d){function f(c){c=Z(c)?c:c.split(" ");for(var d=[],f={},k=0;k<c.length;k++){var s=c[k],z=a.$$registeredAnimations[s];z&&!f[s]&&(d.push(b.get(z)),f[s]=!0)}return d}var k=aa(d);return function(a,b,d,x){function C(){x.domOperation();k(a,x)}function z(a,b,d,f,e){switch(d){case "animate":b=[b,f.from,f.to,e];break;case "setClass":b=[b,t,I,e];break;case "addClass":b=[b,t,e];break;case "removeClass":b=[b,I,e];break;default:b=[b,e]}b.push(f);if(a=a.apply(a,
1793 b))if(Ea(a.start)&&(a=a.start()),a instanceof c)a.done(e);else if(Ea(a))return a;return N}function A(a,b,d,e,f){var h=[];s(e,function(e){var l=e[f];l&&h.push(function(){var e,f,h=!1,k=function(a){h||(h=!0,(f||N)(a),e.complete(!a))};e=new c({end:function(){k()},cancel:function(){k(!0)}});f=z(l,a,b,d,function(a){k(!1===a)});return e})});return h}function H(a,b,d,e,f){var h=A(a,b,d,e,f);if(0===h.length){var k,q;"beforeSetClass"===f?(k=A(a,"removeClass",d,e,"beforeRemoveClass"),q=A(a,"addClass",d,e,"beforeAddClass")):
1794 "setClass"===f&&(k=A(a,"removeClass",d,e,"removeClass"),q=A(a,"addClass",d,e,"addClass"));k&&(h=h.concat(k));q&&(h=h.concat(q))}if(0!==h.length)return function(a){var b=[];h.length&&s(h,function(a){b.push(a())});b.length?c.all(b,a):a();return function(a){s(b,function(b){a?b.cancel():b.end()})}}}var u=!1;3===arguments.length&&ta(d)&&(x=d,d=null);x=pa(x);d||(d=a.attr("class")||"",x.addClass&&(d+=" "+x.addClass),x.removeClass&&(d+=" "+x.removeClass));var t=x.addClass,I=x.removeClass,G=f(d),K,v;if(G.length){var M,
1795 h;"leave"===b?(h="leave",M="afterLeave"):(h="before"+b.charAt(0).toUpperCase()+b.substr(1),M=b);"enter"!==b&&"move"!==b&&(K=H(a,b,x,G,h));v=H(a,b,x,G,M)}if(K||v){var q;return{$$willAnimate:!0,end:function(){q?q.end():(u=!0,C(),ha(a,x),q=new c,q.complete(!0));return q},start:function(){function b(c){u=!0;C();ha(a,x);q.complete(c)}if(q)return q;q=new c;var d,f=[];K&&f.push(function(a){d=K(a)});f.length?f.push(function(a){C();a(!0)}):C();v&&f.push(function(a){d=v(a)});q.setHost({end:function(){u||((d||
1796 N)(void 0),b(void 0))},cancel:function(){u||((d||N)(!0),b(!0))}});c.chain(f,b);return q}}}}}]}]).provider("$$animateJsDriver",["$$animationProvider",function(a){a.drivers.push("$$animateJsDriver");this.$get=["$$animateJs","$$AnimateRunner",function(a,c){function d(c){return a(c.element,c.event,c.classes,c.options)}return function(a){if(a.from&&a.to){var b=d(a.from),e=d(a.to);if(b||e)return{start:function(){function a(){return function(){s(d,function(a){a.end()})}}var d=[];b&&d.push(b.start());e&&
1797 d.push(e.start());c.all(d,function(a){f.complete(a)});var f=new c({end:a(),cancel:a()});return f}}}else return d(a)}}]}])})(window,window.angular);
1757 1798 //# sourceMappingURL=angular-animate.min.js.map
1758 1799
1759 1800 ;/*
@@ -1796,129 +1837,129 b' x.enter(t,h,function(){o.resolve(),$&&$.$emit("$viewContentAnimationEnded"),(a.i'
1796 1837 }
1797 1838 };
1798 1839 });
1799 ;//Copyright (C) 2012 Kory Nunn
1800
1801 //Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
1802
1803 //The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
1804
1805 //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1806
1807 /*
1808
1809 This code is not formatted for readability, but rather run-speed and to assist compilers.
1810
1811 However, the code's intention should be transparent.
1812
1813 *** IE SUPPORT ***
1814
1815 If you require this library to work in IE7, add the following after declaring crel.
1816
1817 var testDiv = document.createElement('div'),
1818 testLabel = document.createElement('label');
1819
1820 testDiv.setAttribute('class', 'a');
1821 testDiv['className'] !== 'a' ? crel.attrMap['class'] = 'className':undefined;
1822 testDiv.setAttribute('name','a');
1823 testDiv['name'] !== 'a' ? crel.attrMap['name'] = function(element, value){
1824 element.id = value;
1825 }:undefined;
1826
1827
1828 testLabel.setAttribute('for', 'a');
1829 testLabel['htmlFor'] !== 'a' ? crel.attrMap['for'] = 'htmlFor':undefined;
1830
1831
1832
1833 */
1834
1835 (function (root, factory) {
1836 if (typeof exports === 'object') {
1837 if (!root.window) {
1838 var jsdom = require('jsdom').jsdom;
1839 root.window = jsdom().parentWindow;
1840 }
1841 module.exports = factory(root.window);
1842 } else if (typeof define === 'function' && define.amd) {
1843 define(factory.bind(null, window));
1844 } else {
1845 root.crel = factory(root.window);
1846 }
1847 }(this, function (window) {
1848 // based on http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object
1849 var isNode = typeof Node === 'object'
1850 ? function (object) { return object instanceof Node }
1851 : function (object) {
1852 return object
1853 && typeof object === 'object'
1854 && typeof object.nodeType === 'number'
1855 && typeof object.nodeName === 'string';
1856 };
1857
1858 function crel(){
1859 var document = window.document,
1860 args = arguments, //Note: assigned to a variable to assist compilers. Saves about 40 bytes in closure compiler. Has negligable effect on performance.
1861 element = document.createElement(args[0]),
1862 child,
1863 settings = args[1],
1864 childIndex = 2,
1865 argumentsLength = args.length,
1866 attributeMap = crel.attrMap;
1867
1868 // shortcut
1869 if(argumentsLength === 1){
1870 return element;
1871 }
1872
1873 if(typeof settings !== 'object' || isNode(settings)) {
1874 --childIndex;
1875 settings = null;
1876 }
1877
1878 // shortcut if there is only one child that is a string
1879 if((argumentsLength - childIndex) === 1 && typeof args[childIndex] === 'string' && element.textContent !== undefined){
1880 element.textContent = args[childIndex];
1881 }else{
1882 for(; childIndex < argumentsLength; ++childIndex){
1883 child = args[childIndex];
1884
1885 if(child == null){
1886 continue;
1887 }
1888
1889 if(!isNode(child)){
1890 child = document.createTextNode(child);
1891 }
1892
1893 element.appendChild(child);
1894 }
1895 }
1896
1897 for(var key in settings){
1898 if(!attributeMap[key]){
1899 element.setAttribute(key, settings[key]);
1900 }else{
1901 var attr = crel.attrMap[key];
1902 if(typeof attr === 'function'){
1903 attr(element, settings[key]);
1904 }else{
1905 element.setAttribute(attr, settings[key]);
1906 }
1907 }
1908 }
1909
1910 return element;
1911 }
1912
1913 // Used for mapping one kind of attribute to the supported version of that in bad browsers.
1914 // String referenced so that compilers maintain the property name.
1915 crel['attrMap'] = {};
1916
1917 // String referenced so that compilers maintain the property name.
1918 crel["isNode"] = isNode;
1919
1920 return crel;
1921 }));
1840 ;//Copyright (C) 2012 Kory Nunn
1841
1842 //Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
1843
1844 //The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
1845
1846 //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1847
1848 /*
1849
1850 This code is not formatted for readability, but rather run-speed and to assist compilers.
1851
1852 However, the code's intention should be transparent.
1853
1854 *** IE SUPPORT ***
1855
1856 If you require this library to work in IE7, add the following after declaring crel.
1857
1858 var testDiv = document.createElement('div'),
1859 testLabel = document.createElement('label');
1860
1861 testDiv.setAttribute('class', 'a');
1862 testDiv['className'] !== 'a' ? crel.attrMap['class'] = 'className':undefined;
1863 testDiv.setAttribute('name','a');
1864 testDiv['name'] !== 'a' ? crel.attrMap['name'] = function(element, value){
1865 element.id = value;
1866 }:undefined;
1867
1868
1869 testLabel.setAttribute('for', 'a');
1870 testLabel['htmlFor'] !== 'a' ? crel.attrMap['for'] = 'htmlFor':undefined;
1871
1872
1873
1874 */
1875
1876 (function (root, factory) {
1877 if (typeof exports === 'object') {
1878 if (!root.window) {
1879 var jsdom = require('jsdom').jsdom;
1880 root.window = jsdom().parentWindow;
1881 }
1882 module.exports = factory(root.window);
1883 } else if (typeof define === 'function' && define.amd) {
1884 define(factory.bind(null, window));
1885 } else {
1886 root.crel = factory(root.window);
1887 }
1888 }(this, function (window) {
1889 // based on http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object
1890 var isNode = typeof Node === 'object'
1891 ? function (object) { return object instanceof Node }
1892 : function (object) {
1893 return object
1894 && typeof object === 'object'
1895 && typeof object.nodeType === 'number'
1896 && typeof object.nodeName === 'string';
1897 };
1898
1899 function crel(){
1900 var document = window.document,
1901 args = arguments, //Note: assigned to a variable to assist compilers. Saves about 40 bytes in closure compiler. Has negligable effect on performance.
1902 element = document.createElement(args[0]),
1903 child,
1904 settings = args[1],
1905 childIndex = 2,
1906 argumentsLength = args.length,
1907 attributeMap = crel.attrMap;
1908
1909 // shortcut
1910 if(argumentsLength === 1){
1911 return element;
1912 }
1913
1914 if(typeof settings !== 'object' || isNode(settings)) {
1915 --childIndex;
1916 settings = null;
1917 }
1918
1919 // shortcut if there is only one child that is a string
1920 if((argumentsLength - childIndex) === 1 && typeof args[childIndex] === 'string' && element.textContent !== undefined){
1921 element.textContent = args[childIndex];
1922 }else{
1923 for(; childIndex < argumentsLength; ++childIndex){
1924 child = args[childIndex];
1925
1926 if(child == null){
1927 continue;
1928 }
1929
1930 if(!isNode(child)){
1931 child = document.createTextNode(child);
1932 }
1933
1934 element.appendChild(child);
1935 }
1936 }
1937
1938 for(var key in settings){
1939 if(!attributeMap[key]){
1940 element.setAttribute(key, settings[key]);
1941 }else{
1942 var attr = crel.attrMap[key];
1943 if(typeof attr === 'function'){
1944 attr(element, settings[key]);
1945 }else{
1946 element.setAttribute(attr, settings[key]);
1947 }
1948 }
1949 }
1950
1951 return element;
1952 }
1953
1954 // Used for mapping one kind of attribute to the supported version of that in bad browsers.
1955 // String referenced so that compilers maintain the property name.
1956 crel['attrMap'] = {};
1957
1958 // String referenced so that compilers maintain the property name.
1959 crel["isNode"] = isNode;
1960
1961 return crel;
1962 }));
1922 1963
1923 1964 ;/*globals define, module, require, document*/
1924 1965 (function (root, factory) {
@@ -7213,10 +7254,13 b" angular.module('appenlight.components.appenlightHeader', [])"
7213 7254
7214 7255 ChannelstreamController.$inject = ['stateHolder', 'AeConfig'];
7215 7256
7216 function AppEnlightFooterController(stateHolder, AeConfig){
7257 function AppEnlightFooterController(stateHolder, AeConfig) {
7217 7258 var vm = this;
7218 vm.AeConfig = AeConfig;
7219 vm.stateHolder = stateHolder;
7259
7260 vm.$onInit = function () {
7261 vm.AeConfig = AeConfig;
7262 vm.stateHolder = stateHolder;
7263 }
7220 7264 }
7221 7265
7222 7266 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -7241,33 +7285,36 b" angular.module('appenlight.components.appenlightHeader', [])"
7241 7285
7242 7286 ChannelstreamController.$inject = ['$state', 'stateHolder', 'AeConfig'];
7243 7287
7244 function AppEnlightHeaderController($state, stateHolder, AeConfig){
7288 function AppEnlightHeaderController($state, stateHolder, AeConfig) {
7245 7289 var vm = this;
7246 vm.AeConfig = AeConfig;
7247 vm.stateHolder = stateHolder;
7248 vm.assignedReports = stateHolder.AeUser.assigned_reports;
7249 vm.latestEvents = stateHolder.AeUser.latest_events;
7250 vm.activeEvents = 0;
7251 _.each(vm.latestEvents, function (event) {
7252 if (event.status === 1 && event.end_date === null) {
7253 vm.activeEvents += 1;
7254 }
7255 });
7256 7290
7257 vm.clickedEvent = function(event){
7291 vm.$onInit = function () {
7292
7293 vm.AeConfig = AeConfig;
7294 vm.stateHolder = stateHolder;
7295 vm.assignedReports = stateHolder.AeUser.assigned_reports;
7296 vm.latestEvents = stateHolder.AeUser.latest_events;
7297 vm.activeEvents = 0;
7298 _.each(vm.latestEvents, function (event) {
7299 if (event.status === 1 && event.end_date === null) {
7300 vm.activeEvents += 1;
7301 }
7302 });
7303 }
7304
7305 vm.clickedEvent = function (event) {
7258 7306 // exception reports
7259 if (_.contains([1,2], event.event_type)){
7260 $state.go('report.list', {resource:event.resource_id, start_date:event.start_date});
7307 if (_.contains([1, 2], event.event_type)) {
7308 $state.go('report.list', {resource: event.resource_id, start_date: event.start_date});
7261 7309 }
7262 7310 // slowness reports
7263 else if (_.contains([3,4], event.event_type)){
7264 $state.go('report.list_slow', {resource:event.resource_id, start_date:event.start_date});
7311 else if (_.contains([3, 4], event.event_type)) {
7312 $state.go('report.list_slow', {resource: event.resource_id, start_date: event.start_date});
7265 7313 }
7266 7314 // uptime reports
7267 else if (_.contains([7,8], event.event_type)){
7268 $state.go('uptime', {resource:event.resource_id, start_date:event.start_date});
7269 }
7270 else{
7315 else if (_.contains([7, 8], event.event_type)) {
7316 $state.go('uptime', {resource: event.resource_id, start_date: event.start_date});
7317 } else {
7271 7318
7272 7319 }
7273 7320 }
@@ -7356,14 +7403,16 b" AdminApplicationsListController.$inject = ['applicationsResource'];"
7356 7403 function AdminApplicationsListController(applicationsResource) {
7357 7404
7358 7405 var vm = this;
7359 vm.loading = {applications: true};
7406 vm.$onInit = function () {
7407 vm.loading = {applications: true};
7360 7408
7361 vm.applications = applicationsResource.query({
7362 root_list: true,
7363 resource_type: 'application'
7364 }, function (data) {
7365 vm.loading = {applications: false};
7366 });
7409 vm.applications = applicationsResource.query({
7410 root_list: true,
7411 resource_type: 'application'
7412 }, function (data) {
7413 vm.loading = {applications: false};
7414 });
7415 }
7367 7416 };
7368 7417
7369 7418 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -7390,29 +7439,30 b" AdminConfigurationViewController.$inject = ['configsResource', 'configsNoIdResou"
7390 7439
7391 7440 function AdminConfigurationViewController(configsResource, configsNoIdResource) {
7392 7441 var vm = this;
7393 vm.loading = {config: true};
7394
7395 var filters = [
7396 'template_footer_html:global',
7397 'list_groups_to_non_admins:global',
7398 'per_application_reports_rate_limit:global',
7399 'per_application_logs_rate_limit:global',
7400 'per_application_metrics_rate_limit:global',
7401 ];
7402
7403 vm.configs = {};
7404
7405 vm.configList = configsResource.query({filter: filters},
7406 function (data) {
7407 vm.loading = {config: false};
7408 _.each(data, function (item) {
7409 if (vm.configs[item.section] === undefined) {
7410 vm.configs[item.section] = {};
7411 }
7412 vm.configs[item.section][item.key] = item;
7413 });
7414 });
7442 vm.$onInit = function () {
7443 vm.loading = {config: true};
7444
7445 var filters = [
7446 'template_footer_html:global',
7447 'list_groups_to_non_admins:global',
7448 'per_application_reports_rate_limit:global',
7449 'per_application_logs_rate_limit:global',
7450 'per_application_metrics_rate_limit:global',
7451 ];
7452
7453 vm.configs = {};
7415 7454
7455 vm.configList = configsResource.query({filter: filters},
7456 function (data) {
7457 vm.loading = {config: false};
7458 _.each(data, function (item) {
7459 if (vm.configs[item.section] === undefined) {
7460 vm.configs[item.section] = {};
7461 }
7462 vm.configs[item.section][item.key] = item;
7463 });
7464 });
7465 }
7416 7466 vm.save = function () {
7417 7467 vm.loading.config = true;
7418 7468 _.each(vm.configList, function (item) {
@@ -7448,59 +7498,61 b" AdminGroupsCreateViewController.$inject = ['$state', 'groupsResource', 'groupsPr"
7448 7498 function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyResource, sectionViewResource) {
7449 7499
7450 7500 var vm = this;
7451 vm.$state = $state;
7452 vm.loading = {
7453 group: false,
7454 resource_permissions: false,
7455 users: false
7456 };
7501 vm.$onInit = function () {
7502 vm.$state = $state;
7503 vm.loading = {
7504 group: false,
7505 resource_permissions: false,
7506 users: false
7507 };
7457 7508
7458 vm.form = {
7459 autocompleteUser: '',
7460 }
7509 vm.form = {
7510 autocompleteUser: '',
7511 }
7461 7512
7462 7513
7463 if (typeof $state.params.groupId !== 'undefined') {
7464 vm.loading.group = true;
7465 var groupId = $state.params.groupId;
7466 vm.group = groupsResource.get({groupId: groupId}, function (data) {
7467 vm.loading.group = false;
7468 });
7514 if (typeof $state.params.groupId !== 'undefined') {
7515 vm.loading.group = true;
7516 var groupId = $state.params.groupId;
7517 vm.group = groupsResource.get({groupId: groupId}, function (data) {
7518 vm.loading.group = false;
7519 });
7469 7520
7470 vm.resource_permissions = groupsPropertyResource.query(
7471 {groupId: groupId, key: 'resource_permissions'}, function (data) {
7472 vm.loading.resource_permissions = false;
7473 var tmpObj = {
7474 'group': {
7475 'application': {},
7476 'dashboard': {}
7477 }
7478 };
7479 _.each(data, function (item) {
7480
7481 var section = tmpObj[item.type][item.resource_type];
7482 if (typeof section[item.resource_id] == 'undefined') {
7483 section[item.resource_id] = {
7484 self: item,
7485 permissions: []
7521 vm.resource_permissions = groupsPropertyResource.query(
7522 {groupId: groupId, key: 'resource_permissions'}, function (data) {
7523 vm.loading.resource_permissions = false;
7524 var tmpObj = {
7525 'group': {
7526 'application': {},
7527 'dashboard': {}
7486 7528 }
7487 }
7488 section[item.resource_id].permissions.push(item.perm_name);
7529 };
7530 _.each(data, function (item) {
7531
7532 var section = tmpObj[item.type][item.resource_type];
7533 if (typeof section[item.resource_id] == 'undefined') {
7534 section[item.resource_id] = {
7535 self: item,
7536 permissions: []
7537 }
7538 }
7539 section[item.resource_id].permissions.push(item.perm_name);
7489 7540
7541 });
7542 vm.resourcePermissions = tmpObj;
7490 7543 });
7491 vm.resourcePermissions = tmpObj;
7492 });
7493 7544
7494 vm.users = groupsPropertyResource.query(
7495 {groupId: groupId, key: 'users'}, function (data) {
7496 vm.loading.users = false;
7497 }, function () {
7498 vm.loading.users = false;
7499 });
7545 vm.users = groupsPropertyResource.query(
7546 {groupId: groupId, key: 'users'}, function (data) {
7547 vm.loading.users = false;
7548 }, function () {
7549 vm.loading.users = false;
7550 });
7551
7552 } else {
7553 var groupId = null;
7554 }
7500 7555
7501 }
7502 else {
7503 var groupId = null;
7504 7556 }
7505 7557
7506 7558 var formResponse = function (response) {
@@ -7517,8 +7569,7 b' function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyR'
7517 7569 setServerValidation(vm.groupForm);
7518 7570 vm.loading.group = false;
7519 7571 }, formResponse);
7520 }
7521 else {
7572 } else {
7522 7573 groupsResource.save(vm.group, function (data) {
7523 7574 $state.go('admin.group.update', {groupId: data.id});
7524 7575 }, formResponse);
@@ -7558,10 +7609,10 b' function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyR'
7558 7609 view: 'search_users',
7559 7610 'user_name': searchPhrase
7560 7611 }).$promise.then(function (data) {
7561 return _.map(data, function (item) {
7562 return item.user;
7563 });
7612 return _.map(data, function (item) {
7613 return item.user;
7564 7614 });
7615 });
7565 7616 }
7566 7617 };
7567 7618
@@ -7590,20 +7641,21 b" AdminGroupsListViewController.$inject = ['$state', 'groupsResource'];"
7590 7641 function AdminGroupsListViewController($state, groupsResource) {
7591 7642
7592 7643 var vm = this;
7593 vm.$state = $state;
7594 vm.loading = {groups: true};
7595
7596 vm.groups = groupsResource.query({}, function (data) {
7597 vm.loading = {groups: false};
7598 vm.activeUsers = _.reduce(vm.groups, function(memo, val){
7599 if (val.status == 1){
7600 return memo + 1;
7601 }
7602 return memo;
7603 }, 0);
7604
7605 });
7606
7644 this.$onInit = function () {
7645 vm.$state = $state;
7646 vm.loading = {groups: true};
7647
7648 vm.groups = groupsResource.query({}, function (data) {
7649 vm.loading = {groups: false};
7650 vm.activeUsers = _.reduce(vm.groups, function (memo, val) {
7651 if (val.status == 1) {
7652 return memo + 1;
7653 }
7654 return memo;
7655 }, 0);
7656
7657 });
7658 }
7607 7659
7608 7660 vm.removeGroup = function (group) {
7609 7661 groupsResource.remove({groupId: group.id}, function (data, responseHeaders) {
@@ -7643,14 +7695,18 b" AdminPartitionsViewController.$inject = ['sectionViewResource'];"
7643 7695
7644 7696 function AdminPartitionsViewController(sectionViewResource) {
7645 7697 var vm = this;
7646 vm.permanentPartitions = [];
7647 vm.dailyPartitions = [];
7648 vm.loading = {partitions: true};
7649 vm.dailyChecked = false;
7650 vm.permChecked = false;
7651 vm.dailyConfirm = '';
7652 vm.permConfirm = '';
7698 this.$onInit = function () {
7699 vm.permanentPartitions = [];
7700 vm.dailyPartitions = [];
7701 vm.loading = {partitions: true};
7702 vm.dailyChecked = false;
7703 vm.permChecked = false;
7704 vm.dailyConfirm = '';
7705 vm.permConfirm = '';
7653 7706
7707 sectionViewResource.get({section: 'admin_section', view: 'partitions'},
7708 vm.loadPartitions);
7709 }
7654 7710
7655 7711 vm.loadPartitions = function (data) {
7656 7712 var permanentPartitions = vm.transformPartitionList(
@@ -7664,17 +7720,15 b' function AdminPartitionsViewController(sectionViewResource) {'
7664 7720
7665 7721 vm.setCheckedList = function (scope) {
7666 7722 var toTest = null;
7667 if (scope === 'dailyPartitions'){
7723 if (scope === 'dailyPartitions') {
7668 7724 toTest = 'dailyChecked';
7669 }
7670 else{
7725 } else {
7671 7726 toTest = 'permChecked';
7672 7727 }
7673 7728
7674 7729 if (vm[toTest]) {
7675 7730 var val = true;
7676 }
7677 else {
7731 } else {
7678 7732 var val = false;
7679 7733 }
7680 7734
@@ -7711,9 +7765,6 b' function AdminPartitionsViewController(sectionViewResource) {'
7711 7765 return outputList;
7712 7766 };
7713 7767
7714 sectionViewResource.get({section:'admin_section', view: 'partitions'},
7715 vm.loadPartitions);
7716
7717 7768 vm.partitionsDelete = function (partitionType) {
7718 7769 var es_indices = [];
7719 7770 var pg_indices = [];
@@ -7732,8 +7783,10 b' function AdminPartitionsViewController(sectionViewResource) {'
7732 7783
7733 7784
7734 7785 vm.loading = {partitions: true};
7735 sectionViewResource.save({section:'admin_section',
7736 view: 'partitions_remove'}, {
7786 sectionViewResource.save({
7787 section: 'admin_section',
7788 view: 'partitions_remove'
7789 }, {
7737 7790 es_indices: es_indices,
7738 7791 pg_indices: pg_indices,
7739 7792 confirm: 'CONFIRM'
@@ -7767,24 +7820,26 b" AdminSystemViewController.$inject = ['sectionViewResource'];"
7767 7820
7768 7821 function AdminSystemViewController(sectionViewResource) {
7769 7822 var vm = this;
7770 vm.tables = [];
7771 vm.loading = {system: true};
7772 sectionViewResource.get({
7773 section: 'admin_section',
7774 view: 'system'
7775 }, null, function (data) {
7776 vm.DBtables = data.db_tables;
7777 vm.ESIndices = data.es_indices;
7778 vm.queueStats = data.queue_stats;
7779 vm.systemLoad = data.system_load;
7780 vm.packages = data.packages;
7781 vm.processInfo = data.process_info;
7782 vm.disks = data.disks;
7783 vm.memory = data.memory;
7784 vm.selfInfo = data.self_info;
7785
7786 vm.loading.system = false;
7787 });
7823 this.$onInit = function () {
7824 vm.tables = [];
7825 vm.loading = {system: true};
7826
7827 sectionViewResource.get({
7828 section: 'admin_section',
7829 view: 'system'
7830 }, null, function (data) {
7831 vm.DBtables = data.db_tables;
7832 vm.ESIndices = data.es_indices;
7833 vm.queueStats = data.queue_stats;
7834 vm.systemLoad = data.system_load;
7835 vm.packages = data.packages;
7836 vm.processInfo = data.process_info;
7837 vm.disks = data.disks;
7838 vm.memory = data.memory;
7839 vm.selfInfo = data.self_info;
7840 vm.loading.system = false;
7841 });
7842 }
7788 7843 };
7789 7844
7790 7845 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -7812,54 +7867,55 b" AdminUsersCreateViewController.$inject = ['$state', 'usersResource', 'usersPrope"
7812 7867 function AdminUsersCreateViewController($state, usersResource, usersPropertyResource, sectionViewResource, AeConfig) {
7813 7868
7814 7869 var vm = this;
7815 vm.$state = $state;
7816 vm.loading = {user: false};
7870 vm.$onInit = function () {
7871 vm.$state = $state;
7872 vm.loading = {user: false};
7817 7873
7818 7874
7819 if (typeof $state.params.userId !== 'undefined') {
7820 vm.loading.user = true;
7821 var userId = $state.params.userId;
7822 vm.user = usersResource.get({userId: userId}, function (data) {
7823 vm.loading.user = false;
7824 // cast to true for angular checkbox
7825 if (vm.user.status === 1) {
7826 vm.user.status = true;
7827 }
7828 });
7875 if (typeof $state.params.userId !== 'undefined') {
7876 vm.loading.user = true;
7877 var userId = $state.params.userId;
7878 vm.user = usersResource.get({userId: userId}, function (data) {
7879 vm.loading.user = false;
7880 // cast to true for angular checkbox
7881 if (vm.user.status === 1) {
7882 vm.user.status = true;
7883 }
7884 });
7829 7885
7830 vm.resource_permissions = usersPropertyResource.query(
7831 {userId: userId, key: 'resource_permissions'}, function (data) {
7832 vm.loading.resource_permissions = false;
7833 var tmpObj = {
7834 'user': {
7835 'application': {},
7836 'dashboard': {}
7837 },
7838 'group': {
7839 'application': {},
7840 'dashboard': {}
7841 }
7842 };
7843 _.each(data, function (item) {
7844
7845 var section = tmpObj[item.type][item.resource_type];
7846 if (typeof section[item.resource_id] == 'undefined'){
7847 section[item.resource_id] = {
7848 self:item,
7849 permissions: []
7886 vm.resource_permissions = usersPropertyResource.query(
7887 {userId: userId, key: 'resource_permissions'}, function (data) {
7888 vm.loading.resource_permissions = false;
7889 var tmpObj = {
7890 'user': {
7891 'application': {},
7892 'dashboard': {}
7893 },
7894 'group': {
7895 'application': {},
7896 'dashboard': {}
7850 7897 }
7851 }
7852 section[item.resource_id].permissions.push(item.perm_name);
7898 };
7899 _.each(data, function (item) {
7900
7901 var section = tmpObj[item.type][item.resource_type];
7902 if (typeof section[item.resource_id] == 'undefined') {
7903 section[item.resource_id] = {
7904 self: item,
7905 permissions: []
7906 }
7907 }
7908 section[item.resource_id].permissions.push(item.perm_name);
7853 7909
7910 });
7911 vm.resourcePermissions = tmpObj;
7854 7912 });
7855 vm.resourcePermissions = tmpObj;
7856 });
7857 7913
7858 }
7859 else {
7860 var userId = null;
7861 vm.user = {
7862 status: true
7914 } else {
7915 var userId = null;
7916 vm.user = {
7917 status: true
7918 }
7863 7919 }
7864 7920 }
7865 7921
@@ -7933,19 +7989,20 b" AdminUserListViewController.$inject = ['usersResource'];"
7933 7989 function AdminUserListViewController(usersResource) {
7934 7990
7935 7991 var vm = this;
7936 vm.loading = {users: true};
7937
7938 vm.users = usersResource.query({}, function (data) {
7939 vm.loading = {users: false};
7940 vm.activeUsers = _.reduce(vm.users, function(memo, val){
7941 if (val.status == 1){
7942 return memo + 1;
7943 }
7944 return memo;
7945 }, 0);
7946
7947 });
7948
7992 vm.$onInit = function () {
7993 vm.loading = {users: true};
7994
7995 vm.users = usersResource.query({}, function (data) {
7996 vm.loading = {users: false};
7997 vm.activeUsers = _.reduce(vm.users, function (memo, val) {
7998 if (val.status == 1) {
7999 return memo + 1;
8000 }
8001 return memo;
8002 }, 0);
8003
8004 });
8005 }
7949 8006
7950 8007 vm.removeUser = function (user) {
7951 8008 usersResource.remove({userId: user.id}, function (data, responseHeaders) {
@@ -7984,9 +8041,12 b" angular.module('appenlight.components.adminView', [])"
7984 8041 AdminViewController.$inject = ['$state', 'AeConfig'];
7985 8042
7986 8043 function AdminViewController($state, AeConfig) {
7987 this.$state = $state;
7988 this.AeConfig = AeConfig;
7989 console.info('AdminViewController');
8044 this.$onInit = function () {
8045 this.$state = $state;
8046 this.AeConfig = AeConfig;
8047 console.info('AdminViewController');
8048 }
8049
7990 8050 }
7991 8051
7992 8052 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -8014,11 +8074,13 b" IntegrationsListViewController.$inject = ['$state', 'applicationsResource'];"
8014 8074 function IntegrationsListViewController($state, applicationsResource) {
8015 8075
8016 8076 var vm = this;
8017 vm.loading = {application: true};
8018 vm.resource = applicationsResource.get({resourceId: $state.params.resourceId}, function (data) {
8019 vm.loading.application = false;
8020 $state.current.data.resource = vm.resource;
8021 });
8077 vm.$onInit = function () {
8078 vm.loading = {application: true};
8079 vm.resource = applicationsResource.get({resourceId: $state.params.resourceId}, function (data) {
8080 vm.loading.application = false;
8081 $state.current.data.resource = vm.resource;
8082 });
8083 }
8022 8084 }
8023 8085
8024 8086 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -8046,11 +8108,13 b" ApplicationsListViewController.$inject = ['$state', 'applicationsResource'];"
8046 8108 function ApplicationsListViewController($state, applicationsResource) {
8047 8109
8048 8110 var vm = this;
8049 vm.$state = $state;
8050 vm.loading = {applications: true};
8051 vm.applications = applicationsResource.query(null, function(){
8052 vm.loading.applications = false;
8053 });
8111 vm.$onInit = function () {
8112 vm.$state = $state;
8113 vm.loading = {applications: true};
8114 vm.applications = applicationsResource.query(null, function () {
8115 vm.loading.applications = false;
8116 });
8117 }
8054 8118 }
8055 8119
8056 8120 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -8073,23 +8137,25 b" angular.module('appenlight.components.applicationsPurgeLogsView', [])"
8073 8137 controller: applicationsPurgeLogsViewController
8074 8138 });
8075 8139
8076 applicationsPurgeLogsViewController.$inject = ['$state' ,'applicationsResource', 'sectionViewResource', 'logsNoIdResource'];
8140 applicationsPurgeLogsViewController.$inject = ['$state', 'applicationsResource', 'sectionViewResource', 'logsNoIdResource'];
8077 8141
8078 8142 function applicationsPurgeLogsViewController($state, applicationsResource, sectionViewResource, logsNoIdResource) {
8079 8143
8080 8144 var vm = this;
8081 vm.$state = $state;
8082 vm.loading = {applications: true};
8145 vm.$onInit = function () {
8146 vm.$state = $state;
8147 vm.loading = {applications: true};
8083 8148
8084 vm.namespace = null;
8085 vm.selectedResource = null;
8086 vm.commonNamespaces = [];
8149 vm.namespace = null;
8150 vm.selectedResource = null;
8151 vm.commonNamespaces = [];
8087 8152
8088 vm.applications = applicationsResource.query({'type':'update_reports'}, function () {
8089 vm.loading.applications = false;
8090 vm.selectedResource = vm.applications[0].resource_id;
8091 vm.getCommonKeys();
8092 });
8153 vm.applications = applicationsResource.query({'type': 'update_reports'}, function () {
8154 vm.loading.applications = false;
8155 vm.selectedResource = vm.applications[0].resource_id;
8156 vm.getCommonKeys();
8157 });
8158 }
8093 8159
8094 8160 /**
8095 8161 * Fetches most commonly used tags in logs
@@ -8106,8 +8172,10 b' function applicationsPurgeLogsViewController($state, applicationsResource, secti'
8106 8172
8107 8173 vm.purgeLogs = function () {
8108 8174 vm.loading.applications = true;
8109 logsNoIdResource.delete({resource:vm.selectedResource,
8110 namespace: vm.namespace}, function(){
8175 logsNoIdResource.delete({
8176 resource: vm.selectedResource,
8177 namespace: vm.namespace
8178 }, function () {
8111 8179 vm.loading.applications = false;
8112 8180 });
8113 8181 }
@@ -8139,41 +8207,41 b' function applicationsUpdateViewController($state, applicationsNoIdResource, appl'
8139 8207 'use strict';
8140 8208
8141 8209 var vm = this;
8142 vm.AeConfig = AeConfig;
8143 vm.$state = $state;
8144 vm.loading = {application: false};
8145
8146 vm.groupingOptions = [
8147 ['url_type', 'Error Type + location'],
8148 ['url_traceback', 'Traceback + location'],
8149 ['traceback_server', 'Traceback + Server'],
8150 ];
8151 var resourceId = $state.params.resourceId;
8152 var options = {};
8153 vm.momentJs = moment;
8154 vm.formTransferModel = {password:''};
8155
8156 // set initial data
8157
8158 if (resourceId === 'new') {
8159 vm.resource = {
8160 resource_id: null,
8161 slow_report_threshold: 10,
8162 error_report_threshold: 10,
8163 allow_permanent_storage: true,
8164 default_grouping: vm.groupingOptions[1][0]
8165 };
8166 }
8167 else {
8168 vm.loading.application = true;
8169 vm.resource = applicationsResource.get({
8170 'resourceId': resourceId
8171 }, function (data) {
8172 vm.loading.application = false;
8173 });
8210 vm.$onInit = function () {
8211 vm.AeConfig = AeConfig;
8212 vm.$state = $state;
8213 vm.loading = {application: false};
8214
8215 vm.groupingOptions = [
8216 ['url_type', 'Error Type + location'],
8217 ['url_traceback', 'Traceback + location'],
8218 ['traceback_server', 'Traceback + Server'],
8219 ];
8220 var resourceId = $state.params.resourceId;
8221 var options = {};
8222 vm.momentJs = moment;
8223 vm.formTransferModel = {password: ''};
8224
8225 // set initial data
8226
8227 if (resourceId === 'new') {
8228 vm.resource = {
8229 resource_id: null,
8230 slow_report_threshold: 10,
8231 error_report_threshold: 10,
8232 allow_permanent_storage: true,
8233 default_grouping: vm.groupingOptions[1][0]
8234 };
8235 } else {
8236 vm.loading.application = true;
8237 vm.resource = applicationsResource.get({
8238 'resourceId': resourceId
8239 }, function (data) {
8240 vm.loading.application = false;
8241 });
8242 }
8174 8243 }
8175 8244
8176
8177 8245 vm.updateBasicForm = function () {
8178 8246 vm.loading.application = true;
8179 8247 if (vm.resource.resource_id === null) {
@@ -8304,15 +8372,16 b" EventBrowserController.$inject = ['eventsNoIdResource', 'eventsResource'];"
8304 8372 function EventBrowserController(eventsNoIdResource, eventsResource) {
8305 8373 console.info('EventBrowserController');
8306 8374 var vm = this;
8375 vm.$onInit = function () {
8307 8376
8308 vm.loading = {events: true};
8309
8310 vm.events = eventsNoIdResource.query(
8311 {key: 'events'},
8312 function (data) {
8313 vm.loading.events = false;
8314 });
8377 vm.loading = {events: true};
8315 8378
8379 vm.events = eventsNoIdResource.query(
8380 {key: 'events'},
8381 function (data) {
8382 vm.loading.events = false;
8383 });
8384 }
8316 8385
8317 8386 vm.closeEvent = function (event) {
8318 8387
@@ -8347,359 +8416,376 b" IndexDashboardController.$inject = ['$rootScope', '$scope', '$location','$cookie"
8347 8416
8348 8417 function IndexDashboardController($rootScope, $scope, $location, $cookies, $interval, stateHolder, applicationsPropertyResource, AeConfig) {
8349 8418 var vm = this;
8350 stateHolder.section = 'dashboard';
8351 vm.timeOptions = {};
8352 var allowed = ['1h', '4h', '12h', '24h', '1w', '2w', '1M'];
8353 _.each(allowed, function (key) {
8354 if (allowed.indexOf(key) !== -1) {
8355 vm.timeOptions[key] = AeConfig.timeOptions[key];
8356 }
8357 });
8358 vm.stateHolder = stateHolder;
8359 vm.urls = AeConfig.urls;
8360 vm.applications = stateHolder.AeUser.applications_map;
8361 vm.show_dashboard = false;
8362 vm.resource = null;
8363 vm.graphType = {selected: null};
8364 vm.timeSpan = vm.timeOptions['1h'];
8365 vm.trendingReports = [];
8366 vm.exceptions = 0;
8367 vm.satisfyingRequests = 0;
8368 vm.toleratedRequests = 0;
8369 vm.frustratingRequests = 0;
8370 vm.uptimeStats = 0;
8371 vm.apdexStats = [];
8372 vm.seriesRequestsData = [];
8373 vm.seriesMetricsData = [];
8374 vm.seriesSlowData = [];
8375 vm.slowCalls = [];
8376 vm.slowURIS = [];
8377
8378 vm.reportChartConfig = {
8379 data: {
8380 json: [],
8381 xFormat: '%Y-%m-%dT%H:%M:%S'
8382 },
8383 color: {
8384 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
8385 },
8386 axis: {
8387 x: {
8388 type: 'timeseries',
8389 tick: {
8390 culling: {
8391 max: 6 // the number of tick texts will be adjusted to less than this value
8392 },
8393 format: '%Y-%m-%d %H:%M'
8419 vm.$onInit = function () {
8420 stateHolder.section = 'dashboard';
8421 vm.timeOptions = {};
8422 var allowed = ['1h', '4h', '12h', '24h', '1w', '2w', '1M'];
8423 _.each(allowed, function (key) {
8424 if (allowed.indexOf(key) !== -1) {
8425 vm.timeOptions[key] = AeConfig.timeOptions[key];
8426 }
8427 });
8428 vm.stateHolder = stateHolder;
8429 vm.urls = AeConfig.urls;
8430 vm.applications = stateHolder.AeUser.applications_map;
8431 vm.show_dashboard = false;
8432 vm.resource = null;
8433 vm.graphType = {selected: null};
8434 vm.timeSpan = vm.timeOptions['1h'];
8435 vm.trendingReports = [];
8436 vm.exceptions = 0;
8437 vm.satisfyingRequests = 0;
8438 vm.toleratedRequests = 0;
8439 vm.frustratingRequests = 0;
8440 vm.uptimeStats = 0;
8441 vm.apdexStats = [];
8442 vm.seriesRequestsData = [];
8443 vm.seriesMetricsData = [];
8444 vm.seriesSlowData = [];
8445 vm.slowCalls = [];
8446 vm.slowURIS = [];
8447
8448 vm.reportChartConfig = {
8449 data: {
8450 json: [],
8451 xFormat: '%Y-%m-%dT%H:%M:%S'
8452 },
8453 color: {
8454 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
8455 },
8456 axis: {
8457 x: {
8458 type: 'timeseries',
8459 tick: {
8460 culling: {
8461 max: 6 // the number of tick texts will be adjusted to less than this value
8462 },
8463 format: '%Y-%m-%d %H:%M'
8464 }
8465 },
8466 y: {
8467 tick: {
8468 count: 5,
8469 format: d3.format('.2s')
8470 }
8394 8471 }
8395 8472 },
8396 y: {
8397 tick: {
8398 count: 5,
8399 format: d3.format('.2s')
8473 subchart: {
8474 show: true,
8475 size: {
8476 height: 20
8400 8477 }
8401 }
8402 },
8403 subchart: {
8404 show: true,
8478 },
8405 8479 size: {
8406 height: 20
8407 }
8408 },
8409 size: {
8410 height: 250
8411 },
8412 zoom: {
8413 rescale: true
8414 },
8415 grid: {
8416 x: {
8417 show: true
8480 height: 250
8418 8481 },
8419 y: {
8420 show: true
8421 }
8422 },
8423 tooltip: {
8424 format: {
8425 title: function (d) {
8426 return '' + d;
8482 zoom: {
8483 rescale: true
8484 },
8485 grid: {
8486 x: {
8487 show: true
8427 8488 },
8428 value: function (v) {
8429 return v
8489 y: {
8490 show: true
8491 }
8492 },
8493 tooltip: {
8494 format: {
8495 title: function (d) {
8496 return '' + d;
8497 },
8498 value: function (v) {
8499 return v
8500 }
8430 8501 }
8431 8502 }
8432 }
8433 };
8434 vm.reportChartData = {};
8503 };
8504 vm.reportChartData = {};
8435 8505
8436 vm.reportSlowChartConfig = {
8437 data: {
8438 json: [],
8439 xFormat: '%Y-%m-%dT%H:%M:%S'
8440 },
8441 color: {
8442 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
8443 },
8444 axis: {
8445 x: {
8446 type: 'timeseries',
8447 tick: {
8448 culling: {
8449 max: 6 // the number of tick texts will be adjusted to less than this value
8450 },
8451 format: '%Y-%m-%d %H:%M'
8506 vm.reportSlowChartConfig = {
8507 data: {
8508 json: [],
8509 xFormat: '%Y-%m-%dT%H:%M:%S'
8510 },
8511 color: {
8512 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
8513 },
8514 axis: {
8515 x: {
8516 type: 'timeseries',
8517 tick: {
8518 culling: {
8519 max: 6 // the number of tick texts will be adjusted to less than this value
8520 },
8521 format: '%Y-%m-%d %H:%M'
8522 }
8523 },
8524 y: {
8525 tick: {
8526 count: 5,
8527 format: d3.format('.2s')
8528 }
8452 8529 }
8453 8530 },
8454 y: {
8455 tick: {
8456 count: 5,
8457 format: d3.format('.2s')
8531 subchart: {
8532 show: true,
8533 size: {
8534 height: 20
8458 8535 }
8459 }
8460 },
8461 subchart: {
8462 show: true,
8536 },
8463 8537 size: {
8464 height: 20
8465 }
8466 },
8467 size: {
8468 height: 250
8469 },
8470 zoom: {
8471 rescale: true
8472 },
8473 grid: {
8474 x: {
8475 show: true
8538 height: 250
8476 8539 },
8477 y: {
8478 show: true
8479 }
8480 },
8481 tooltip: {
8482 format: {
8483 title: function (d) {
8484 return '' + d;
8540 zoom: {
8541 rescale: true
8542 },
8543 grid: {
8544 x: {
8545 show: true
8485 8546 },
8486 value: function (v) {
8487 return v
8547 y: {
8548 show: true
8488 8549 }
8489 }
8490 }
8491 };
8492 vm.reportSlowChartData = {};
8550 },
8551 tooltip: {
8552 format: {
8553 title: function (d) {
8554 return '' + d;
8555 },
8556 value: function (v) {
8557 return v
8558 }
8559 }
8560 }
8561 };
8562 vm.reportSlowChartData = {};
8493 8563
8494 vm.metricsChartConfig = {
8495 data: {
8496 json: [],
8497 xFormat: '%Y-%m-%dT%H:%M:%S',
8498 keys: {
8499 x: 'x',
8500 value: ["main", "sql", "nosql", "tmpl", "remote", "custom"]
8564 vm.metricsChartConfig = {
8565 data: {
8566 json: [],
8567 xFormat: '%Y-%m-%dT%H:%M:%S',
8568 keys: {
8569 x: 'x',
8570 value: ["main", "sql", "nosql", "tmpl", "remote", "custom"]
8571 },
8572 names: {
8573 main: 'View/Application logic',
8574 sql: 'Relational database queries',
8575 nosql: 'NoSql datastore calls',
8576 tmpl: 'Template rendering',
8577 custom: 'Custom timed calls',
8578 remote: 'Requests to remote resources'
8579 },
8580 type: 'area',
8581 groups: [["main", "sql", "nosql", "remote", "custom", "tmpl"]],
8582 order: null
8501 8583 },
8502 names: {
8503 main: 'View/Application logic',
8504 sql: 'Relational database queries',
8505 nosql: 'NoSql datastore calls',
8506 tmpl: 'Template rendering',
8507 custom: 'Custom timed calls',
8508 remote: 'Requests to remote resources'
8584 color: {
8585 pattern: ['#6baed6', '#c7e9c0', '#fd8d3c', '#d6616b', '#ffcc00', '#c6dbef']
8509 8586 },
8510 type: 'area',
8511 groups: [["main", "sql", "nosql", "remote", "custom", "tmpl"]],
8512 order: null
8513 },
8514 color: {
8515 pattern: ['#6baed6', '#c7e9c0', '#fd8d3c', '#d6616b', '#ffcc00', '#c6dbef']
8516 },
8517 axis: {
8518 x: {
8519 type: 'timeseries',
8520 tick: {
8521 culling: {
8522 max: 6 // the number of tick texts will be adjusted to less than this value
8523 },
8524 format: '%Y-%m-%d %H:%M'
8587 axis: {
8588 x: {
8589 type: 'timeseries',
8590 tick: {
8591 culling: {
8592 max: 6 // the number of tick texts will be adjusted to less than this value
8593 },
8594 format: '%Y-%m-%d %H:%M'
8595 }
8596 },
8597 y: {
8598 tick: {
8599 count: 5,
8600 format: d3.format('.2f')
8601 }
8525 8602 }
8526 8603 },
8527 y: {
8528 tick: {
8529 count: 5,
8530 format: d3.format('.2f')
8604 point: {
8605 show: false
8606 },
8607 subchart: {
8608 show: true,
8609 size: {
8610 height: 20
8531 8611 }
8532 }
8533 },
8534 point: {
8535 show: false
8536 },
8537 subchart: {
8538 show: true,
8612 },
8539 8613 size: {
8540 height: 20
8541 }
8542 },
8543 size: {
8544 height: 350
8545 },
8546 zoom: {
8547 rescale: true
8548 },
8549 grid: {
8550 x: {
8551 show: true
8614 height: 350
8552 8615 },
8553 y: {
8554 show: true
8555 }
8556 },
8557 tooltip: {
8558 format: {
8559 title: function (d) {
8560 return '' + d;
8616 zoom: {
8617 rescale: true
8618 },
8619 grid: {
8620 x: {
8621 show: true
8561 8622 },
8562 value: function (v) {
8563 return v
8623 y: {
8624 show: true
8625 }
8626 },
8627 tooltip: {
8628 format: {
8629 title: function (d) {
8630 return '' + d;
8631 },
8632 value: function (v) {
8633 return v
8634 }
8564 8635 }
8565 8636 }
8566 }
8567 };
8568 vm.metricsChartData = {};
8637 };
8638 vm.metricsChartData = {};
8569 8639
8570 vm.responseChartConfig = {
8571 data: {
8572 json: [],
8573 xFormat: '%Y-%m-%dT%H:%M:%S'
8574 },
8575 color: {
8576 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
8577 },
8578 axis: {
8579 x: {
8580 type: 'timeseries',
8581 tick: {
8582 culling: {
8583 max: 6 // the number of tick texts will be adjusted to less than this value
8584 },
8585 format: '%Y-%m-%d %H:%M'
8640 vm.responseChartConfig = {
8641 data: {
8642 json: [],
8643 xFormat: '%Y-%m-%dT%H:%M:%S'
8644 },
8645 color: {
8646 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
8647 },
8648 axis: {
8649 x: {
8650 type: 'timeseries',
8651 tick: {
8652 culling: {
8653 max: 6 // the number of tick texts will be adjusted to less than this value
8654 },
8655 format: '%Y-%m-%d %H:%M'
8656 }
8657 },
8658 y: {
8659 tick: {
8660 count: 5,
8661 format: d3.format('.2f')
8662 }
8586 8663 }
8587 8664 },
8588 y: {
8589 tick: {
8590 count: 5,
8591 format: d3.format('.2f')
8665 point: {
8666 show: false
8667 },
8668 subchart: {
8669 show: true,
8670 size: {
8671 height: 20
8592 8672 }
8593 }
8594 },
8595 point: {
8596 show: false
8597 },
8598 subchart: {
8599 show: true,
8673 },
8600 8674 size: {
8601 height: 20
8602 }
8603 },
8604 size: {
8605 height: 350
8606 },
8607 zoom: {
8608 rescale: true
8609 },
8610 grid: {
8611 x: {
8612 show: true
8675 height: 350
8613 8676 },
8614 y: {
8615 show: true
8616 }
8617 },
8618 tooltip: {
8619 format: {
8620 title: function (d) {
8621 return '' + d;
8677 zoom: {
8678 rescale: true
8679 },
8680 grid: {
8681 x: {
8682 show: true
8622 8683 },
8623 value: function (v) {
8624 return v
8684 y: {
8685 show: true
8686 }
8687 },
8688 tooltip: {
8689 format: {
8690 title: function (d) {
8691 return '' + d;
8692 },
8693 value: function (v) {
8694 return v
8695 }
8625 8696 }
8626 8697 }
8627 }
8628 };
8629 vm.responseChartData = {};
8698 };
8699 vm.responseChartData = {};
8630 8700
8631 vm.requestsChartConfig = {
8632 data: {
8633 json: [],
8634 xFormat: '%Y-%m-%dT%H:%M:%S'
8635 },
8636 color: {
8637 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
8638 },
8639 axis: {
8640 x: {
8641 type: 'timeseries',
8642 tick: {
8643 culling: {
8644 max: 6 // the number of tick texts will be adjusted to less than this value
8645 },
8646 format: '%Y-%m-%d %H:%M'
8701 vm.requestsChartConfig = {
8702 data: {
8703 json: [],
8704 xFormat: '%Y-%m-%dT%H:%M:%S'
8705 },
8706 color: {
8707 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
8708 },
8709 axis: {
8710 x: {
8711 type: 'timeseries',
8712 tick: {
8713 culling: {
8714 max: 6 // the number of tick texts will be adjusted to less than this value
8715 },
8716 format: '%Y-%m-%d %H:%M'
8717 }
8718 },
8719 y: {
8720 tick: {
8721 count: 5,
8722 format: d3.format('.2f')
8723 }
8647 8724 }
8648 8725 },
8649 y: {
8650 tick: {
8651 count: 5,
8652 format: d3.format('.2f')
8726 point: {
8727 show: false
8728 },
8729 subchart: {
8730 show: true,
8731 size: {
8732 height: 20
8653 8733 }
8654 }
8655 },
8656 point: {
8657 show: false
8658 },
8659 subchart: {
8660 show: true,
8734 },
8661 8735 size: {
8662 height: 20
8663 }
8664 },
8665 size: {
8666 height: 350
8667 },
8668 zoom: {
8669 rescale: true
8670 },
8671 grid: {
8672 x: {
8673 show: true
8736 height: 350
8674 8737 },
8675 y: {
8676 show: true
8677 }
8678 },
8679 tooltip: {
8680 format: {
8681 title: function (d) {
8682 return '' + d;
8738 zoom: {
8739 rescale: true
8740 },
8741 grid: {
8742 x: {
8743 show: true
8683 8744 },
8684 value: function (v) {
8685 return v
8745 y: {
8746 show: true
8747 }
8748 },
8749 tooltip: {
8750 format: {
8751 title: function (d) {
8752 return '' + d;
8753 },
8754 value: function (v) {
8755 return v
8756 }
8686 8757 }
8687 8758 }
8688 }
8689 };
8690 vm.requestsChartData = {};
8759 };
8760 vm.requestsChartData = {};
8761
8762 vm.loading = {
8763 'apdex': true,
8764 'reports': true,
8765 'graphs': true,
8766 'slowCalls': true,
8767 'slowURIS': true,
8768 'requestsBreakdown': true,
8769 'series': true
8770 };
8771 vm.stream = {paused: false, filtered: false, messages: [], reports: []};
8691 8772
8692 vm.loading = {
8693 'apdex': true,
8694 'reports': true,
8695 'graphs': true,
8696 'slowCalls': true,
8697 'slowURIS': true,
8698 'requestsBreakdown': true,
8699 'series': true
8700 };
8701 vm.stream = {paused: false, filtered: false, messages: [], reports: []};
8773 vm.intervalId = $interval(function () {
8774 if (_.contains(['30m', "1h"], vm.timeSpan.key)) {
8775 // don't do anything if window is unfocused
8776 if(document.hidden === true){
8777 return ;
8778 }
8779 vm.refreshData();
8780 }
8781 }, 60000);
8702 8782
8783 if (stateHolder.AeUser.applications.length){
8784 vm.show_dashboard = true;
8785 vm.determineStartState();
8786 }
8787
8788 }
8703 8789 $rootScope.$on('channelstream-message.front_dashboard.new_topic', function(event, message){
8704 8790 var ws_report = message.message.report;
8705 8791 if (ws_report.http_status != 500) {
@@ -8788,16 +8874,6 b' function IndexDashboardController($rootScope, $scope, $location, $cookies, $inte'
8788 8874 vm.refreshData();
8789 8875 };
8790 8876
8791 vm.intervalId = $interval(function () {
8792 if (_.contains(['30m', "1h"], vm.timeSpan.key)) {
8793 // don't do anything if window is unfocused
8794 if(document.hidden === true){
8795 return ;
8796 }
8797 vm.refreshData();
8798 }
8799 }, 60000);
8800
8801 8877 vm.fetchApdexStats = function () {
8802 8878 vm.loading.apdex = true;
8803 8879 vm.apdexStats = applicationsPropertyResource.query({
@@ -8978,11 +9054,6 b' function IndexDashboardController($rootScope, $scope, $location, $cookies, $inte'
8978 9054 $scope.$on('$destroy',function(){
8979 9055 $interval.cancel(vm.intervalId);
8980 9056 });
8981
8982 if (stateHolder.AeUser.applications.length){
8983 vm.show_dashboard = true;
8984 vm.determineStartState();
8985 }
8986 9057 }
8987 9058
8988 9059 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -9005,17 +9076,18 b" ApplicationsIntegrationsEditViewController.$inject = ['$state', 'integrationReso"
9005 9076 function ApplicationsIntegrationsEditViewController($state, integrationResource) {
9006 9077
9007 9078 var vm = this;
9008 vm.$state = $state;
9009 vm.loading = {integration: true};
9010 vm.config = integrationResource.get(
9011 {
9012 integration: $state.params.integration,
9013 action: 'setup',
9014 resourceId: $state.params.resourceId
9015 }, function (data) {
9016 vm.loading.integration = false;
9017 });
9018
9079 vm.$onInit = function () {
9080 vm.$state = $state;
9081 vm.loading = {integration: true};
9082 vm.config = integrationResource.get(
9083 {
9084 integration: $state.params.integration,
9085 action: 'setup',
9086 resourceId: $state.params.resourceId
9087 }, function (data) {
9088 vm.loading.integration = false;
9089 });
9090 }
9019 9091 vm.configureIntegration = function () {
9020 9092 console.info('configureIntegration');
9021 9093 vm.loading.integration = true;
@@ -9139,142 +9211,156 b" LogsBrowserController.$inject = ['$location', 'stateHolder', 'typeAheadTagHelper"
9139 9211
9140 9212 function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsNoIdResource, sectionViewResource) {
9141 9213 var vm = this;
9142 vm.logEventsChartConfig = {
9143 data: {
9144 json: [],
9145 xFormat: '%Y-%m-%dT%H:%M:%S'
9146 },
9147 color: {
9148 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
9149 },
9150 axis: {
9151 x: {
9152 type: 'timeseries',
9153 tick: {
9154 format: '%Y-%m-%d'
9214 vm.$onInit = function () {
9215 vm.logEventsChartConfig = {
9216 data: {
9217 json: [],
9218 xFormat: '%Y-%m-%dT%H:%M:%S'
9219 },
9220 color: {
9221 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
9222 },
9223 axis: {
9224 x: {
9225 type: 'timeseries',
9226 tick: {
9227 format: '%Y-%m-%d'
9228 }
9229 },
9230 y: {
9231 tick: {
9232 count: 5,
9233 format: d3.format('.2s')
9234 }
9155 9235 }
9156 9236 },
9157 y: {
9158 tick: {
9159 count: 5,
9160 format: d3.format('.2s')
9237 subchart: {
9238 show: true,
9239 size: {
9240 height: 20
9161 9241 }
9162 }
9163 },
9164 subchart: {
9165 show: true,
9242 },
9166 9243 size: {
9167 height: 20
9168 }
9169 },
9170 size: {
9171 height: 250
9172 },
9173 zoom: {
9174 rescale: true
9175 },
9176 grid: {
9177 x: {
9178 show: true
9244 height: 250
9179 9245 },
9180 y: {
9181 show: true
9182 }
9183 },
9184 tooltip: {
9185 format: {
9186 title: function (d) {
9187 return '' + d;
9246 zoom: {
9247 rescale: true
9248 },
9249 grid: {
9250 x: {
9251 show: true
9188 9252 },
9189 value: function (v) {
9190 return v
9253 y: {
9254 show: true
9255 }
9256 },
9257 tooltip: {
9258 format: {
9259 title: function (d) {
9260 return '' + d;
9261 },
9262 value: function (v) {
9263 return v
9264 }
9191 9265 }
9192 9266 }
9193 }
9194 };
9195 vm.logEventsChartData = {};
9196 stateHolder.section = 'logs';
9197 vm.today = function () {
9198 vm.pickerDate = new Date();
9199 };
9200 vm.today();
9201
9202 vm.applications = stateHolder.AeUser.applications_map;
9203 vm.logsPage = [];
9204 vm.itemCount = 0;
9205 vm.itemsPerPage = 250;
9206 vm.page = 1;
9207 vm.$location = $location;
9208 vm.isLoading = {
9209 logs: true,
9210 series: true
9211 };
9212 vm.filterTypeAheadOptions = [
9213 {
9214 type: 'message',
9215 text: 'message:',
9216 'description': 'Full-text search in your logs',
9217 tag: 'Message',
9218 example: 'message:text-im-looking-for'
9219 },
9220 {
9221 type: 'namespace',
9222 text: 'namespace:',
9223 'description': 'Query logs from specific namespace',
9224 tag: 'Namespace',
9225 example: "namespace:module.foo"
9226 },
9227 {
9228 type: 'resource',
9229 text: 'resource:',
9230 'description': 'Restrict resultset to application',
9231 tag: 'Application',
9232 example: "resource:ID"
9233 },
9234 {
9235 type: 'request_id',
9236 text: 'request_id:',
9237 'description': 'Show logs with specific request id',
9238 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
9239 tag: 'Request ID'
9240 },
9241 {
9242 type: 'level',
9243 text: 'level:',
9244 'description': 'Show entries with specific log level',
9245 example: 'level:warning',
9246 tag: 'Level'
9247 },
9248 {
9249 type: 'server_name',
9250 text: 'server_name:',
9251 'description': 'Show entries tagged with this key/value pair',
9252 example: 'server_name:hostname',
9253 tag: 'Tag'
9254 },
9255 {
9256 type: 'start_date',
9257 text: 'start_date:',
9258 'description': 'Show results newer than this date (press TAB for dropdown)',
9259 example: 'start_date:2014-08-15T13:00',
9260 tag: 'Start Date'
9261 },
9262 {
9263 type: 'end_date',
9264 text: 'end_date:',
9265 'description': 'Show results older than this date (press TAB for dropdown)',
9266 example: 'start_date:2014-08-15T23:59',
9267 tag: 'End Date'
9268 },
9269 {type: 'level', value: 'debug', text: 'level:debug'},
9270 {type: 'level', value: 'info', text: 'level:info'},
9271 {type: 'level', value: 'warning', text: 'level:warning'},
9272 {type: 'level', value: 'critical', text: 'level:critical'}
9273 ];
9274 vm.filterTypeAhead = null;
9275 vm.showDatePicker = false;
9276 vm.manualOpen = false;
9277 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
9267 };
9268 vm.logEventsChartData = {};
9269 stateHolder.section = 'logs';
9270 vm.today = function () {
9271 vm.pickerDate = new Date();
9272 };
9273 vm.today();
9274
9275 vm.applications = stateHolder.AeUser.applications_map;
9276 vm.logsPage = [];
9277 vm.itemCount = 0;
9278 vm.itemsPerPage = 250;
9279 vm.page = 1;
9280 vm.$location = $location;
9281 vm.isLoading = {
9282 logs: true,
9283 series: true
9284 };
9285 vm.filterTypeAheadOptions = [
9286 {
9287 type: 'message',
9288 text: 'message:',
9289 'description': 'Full-text search in your logs',
9290 tag: 'Message',
9291 example: 'message:text-im-looking-for'
9292 },
9293 {
9294 type: 'namespace',
9295 text: 'namespace:',
9296 'description': 'Query logs from specific namespace',
9297 tag: 'Namespace',
9298 example: "namespace:module.foo"
9299 },
9300 {
9301 type: 'resource',
9302 text: 'resource:',
9303 'description': 'Restrict resultset to application',
9304 tag: 'Application',
9305 example: "resource:ID"
9306 },
9307 {
9308 type: 'request_id',
9309 text: 'request_id:',
9310 'description': 'Show logs with specific request id',
9311 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
9312 tag: 'Request ID'
9313 },
9314 {
9315 type: 'level',
9316 text: 'level:',
9317 'description': 'Show entries with specific log level',
9318 example: 'level:warning',
9319 tag: 'Level'
9320 },
9321 {
9322 type: 'server_name',
9323 text: 'server_name:',
9324 'description': 'Show entries tagged with this key/value pair',
9325 example: 'server_name:hostname',
9326 tag: 'Tag'
9327 },
9328 {
9329 type: 'start_date',
9330 text: 'start_date:',
9331 'description': 'Show results newer than this date (press TAB for dropdown)',
9332 example: 'start_date:2014-08-15T13:00',
9333 tag: 'Start Date'
9334 },
9335 {
9336 type: 'end_date',
9337 text: 'end_date:',
9338 'description': 'Show results older than this date (press TAB for dropdown)',
9339 example: 'start_date:2014-08-15T23:59',
9340 tag: 'End Date'
9341 },
9342 {type: 'level', value: 'debug', text: 'level:debug'},
9343 {type: 'level', value: 'info', text: 'level:info'},
9344 {type: 'level', value: 'warning', text: 'level:warning'},
9345 {type: 'level', value: 'critical', text: 'level:critical'}
9346 ];
9347 vm.filterTypeAhead = null;
9348 vm.showDatePicker = false;
9349 vm.manualOpen = false;
9350 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
9351
9352 _.each(vm.applications, function (item) {
9353 vm.filterTypeAheadOptions.push({
9354 type: 'resource',
9355 text: 'resource:' + item.resource_id + ':' + item.resource_name,
9356 example: 'resource:' + item.resource_id,
9357 'tag': item.resource_name,
9358 'description': 'Restrict resultset to this application'
9359 });
9360 });
9361 console.info('page load');
9362 vm.refresh();
9363 }
9278 9364 vm.removeSearchTag = function (tag) {
9279 9365 $location.search(tag.type, null);
9280 9366 vm.refresh();
@@ -9289,17 +9375,6 b' function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsN'
9289 9375 vm.refresh();
9290 9376 };
9291 9377
9292
9293 _.each(vm.applications, function (item) {
9294 vm.filterTypeAheadOptions.push({
9295 type: 'resource',
9296 text: 'resource:' + item.resource_id + ':' + item.resource_name,
9297 example: 'resource:' + item.resource_id,
9298 'tag': item.resource_name,
9299 'description': 'Restrict resultset to this application'
9300 });
9301 });
9302
9303 9378 vm.typeAheadTag = function (event) {
9304 9379 var text = vm.filterTypeAhead;
9305 9380 if (_.isObject(vm.filterTypeAhead)) {
@@ -9405,8 +9480,7 b' function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsN'
9405 9480 vm.fetchLogs(params);
9406 9481 vm.fetchSeriesData(params);
9407 9482 };
9408 console.info('page load');
9409 vm.refresh();
9483
9410 9484 }
9411 9485
9412 9486 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -9435,78 +9509,98 b" ReportViewController.$inject = ['$window', '$location', '$state', '$uibModal',"
9435 9509
9436 9510 function ReportViewController($window, $location, $state, $uibModal, $cookies, reportGroupPropertyResource, reportGroupResource, logsNoIdResource, stateHolder) {
9437 9511 var vm = this;
9438 vm.window = $window;
9439 vm.stateHolder = stateHolder;
9440 vm.$state = $state;
9441 vm.reportHistoryConfig = {
9442 data: {
9443 json: [],
9444 xFormat: '%Y-%m-%dT%H:%M:%S'
9445 },
9446 color: {
9447 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
9448 },
9449 axis: {
9450 x: {
9451 type: 'timeseries',
9452 tick: {
9453 format: '%Y-%m-%d'
9512 vm.$onInit = function () {
9513 vm.window = $window;
9514 vm.stateHolder = stateHolder;
9515 vm.$state = $state;
9516 vm.reportHistoryConfig = {
9517 data: {
9518 json: [],
9519 xFormat: '%Y-%m-%dT%H:%M:%S'
9520 },
9521 color: {
9522 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
9523 },
9524 axis: {
9525 x: {
9526 type: 'timeseries',
9527 tick: {
9528 format: '%Y-%m-%d'
9529 }
9530 },
9531 y: {
9532 tick: {
9533 count: 5,
9534 format: d3.format('.2s')
9535 }
9454 9536 }
9455 9537 },
9456 y: {
9457 tick: {
9458 count: 5,
9459 format: d3.format('.2s')
9538 subchart: {
9539 show: true,
9540 size: {
9541 height: 20
9460 9542 }
9461 }
9462 },
9463 subchart: {
9464 show: true,
9543 },
9465 9544 size: {
9466 height: 20
9467 }
9468 },
9469 size: {
9470 height: 250
9471 },
9472 zoom: {
9473 rescale: true
9474 },
9475 grid: {
9476 x: {
9477 show: true
9545 height: 250
9478 9546 },
9479 y: {
9480 show: true
9481 }
9482 },
9483 tooltip: {
9484 format: {
9485 title: function (d) {
9486 return '' + d;
9547 zoom: {
9548 rescale: true
9549 },
9550 grid: {
9551 x: {
9552 show: true
9487 9553 },
9488 value: function (v) {
9489 return v
9554 y: {
9555 show: true
9556 }
9557 },
9558 tooltip: {
9559 format: {
9560 title: function (d) {
9561 return '' + d;
9562 },
9563 value: function (v) {
9564 return v
9565 }
9490 9566 }
9491 9567 }
9568 };
9569 vm.mentionedPeople = [];
9570 vm.reportHistoryData = {};
9571 vm.textTraceback = true;
9572 vm.rawTraceback = '';
9573 vm.traceback = '';
9574 vm.reportType = 'report';
9575 vm.report = null;
9576 vm.showLong = false;
9577 vm.reportLogs = null;
9578 vm.requestStats = null;
9579 vm.comment = null;
9580 vm.is_loading = {
9581 report: true,
9582 logs: true,
9583 history: true
9584 };
9585
9586 vm.tabs = {
9587 slow_calls:false,
9588 request_details:false,
9589 logs:false,
9590 comments:false,
9591 affected_users:false
9592 };
9593 if ($cookies.selectedReportTab) {
9594 vm.tabs[$cookies.selectedReportTab] = true;
9492 9595 }
9493 };
9494 vm.mentionedPeople = [];
9495 vm.reportHistoryData = {};
9496 vm.textTraceback = true;
9497 vm.rawTraceback = '';
9498 vm.traceback = '';
9499 vm.reportType = 'report';
9500 vm.report = null;
9501 vm.showLong = false;
9502 vm.reportLogs = null;
9503 vm.requestStats = null;
9504 vm.comment = null;
9505 vm.is_loading = {
9506 report: true,
9507 logs: true,
9508 history: true
9509 };
9596 else{
9597 $cookies.selectedReportTab = 'request_details';
9598 vm.tabs.request_details = true;
9599 }
9600
9601 // load report
9602 vm.fetchReport();
9603 }
9510 9604
9511 9605 vm.searchMentionedPeople = function(term){
9512 9606 //vm.mentionedPeople = [];
@@ -9525,7 +9619,7 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
9525 9619 });
9526 9620
9527 9621 var result = _.filter(users, function(u){
9528 return u.label.toLowerCase().indexOf(term) !== -1;
9622 return u.label.toLowerCase().indexOf(term) !== -1;
9529 9623 });
9530 9624 vm.mentionedPeople = result;
9531 9625 });
@@ -9542,21 +9636,6 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
9542 9636 $location.search(tag, value);
9543 9637 };
9544 9638
9545 vm.tabs = {
9546 slow_calls:false,
9547 request_details:false,
9548 logs:false,
9549 comments:false,
9550 affected_users:false
9551 };
9552 if ($cookies.selectedReportTab) {
9553 vm.tabs[$cookies.selectedReportTab] = true;
9554 }
9555 else{
9556 $cookies.selectedReportTab = 'request_details';
9557 vm.tabs.request_details = true;
9558 }
9559
9560 9639 vm.fetchLogs = function () {
9561 9640 if (!vm.report.request_id){
9562 9641 return
@@ -9582,6 +9661,7 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
9582 9661 };
9583 9662
9584 9663 vm.fetchReport = function () {
9664
9585 9665 vm.is_loading.report = true;
9586 9666 reportGroupResource.get($state.params, function (data) {
9587 9667 vm.is_loading.report = false;
@@ -9757,11 +9837,6 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
9757 9837 });
9758 9838
9759 9839 };
9760
9761 // load report
9762 vm.fetchReport();
9763
9764
9765 9840 }
9766 9841
9767 9842 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -9788,133 +9863,173 b" reportsBrowserViewController.$inject = ['$location', '$cookies',"
9788 9863 'stateHolder', 'typeAheadTagHelper', 'reportsResource'];
9789 9864
9790 9865 function reportsBrowserViewController($location, $cookies, stateHolder,
9791 typeAheadTagHelper, reportsResource) {
9866 typeAheadTagHelper, reportsResource) {
9792 9867 var vm = this;
9793 vm.applications = stateHolder.AeUser.applications_map;
9794 stateHolder.section = 'reports';
9795 vm.today = function () {
9796 vm.pickerDate = new Date();
9797 };
9798 vm.today();
9799 vm.reportsPage = [];
9800 vm.page = 1;
9801 vm.itemCount = 0;
9802 vm.itemsPerPage = 250;
9803 typeAheadTagHelper.tags = [];
9804 vm.searchParams = {tags: [], page: 1, type: 'report'};
9805 vm.is_loading = false;
9806 vm.filterTypeAheadOptions = [
9807 {
9808 type: 'error',
9809 text: 'error:',
9810 'description': 'Full-text search in your reports',
9811 example: 'error:text-im-looking-for',
9812 tag: 'Error'
9813 },
9814 {
9815 type: 'view_name',
9816 text: 'view_name:',
9817 'description': 'Query reports occured in specific views',
9818 example: "view_name:module.foo",
9819 tag: 'View Name'
9820 },
9821 {
9822 type: 'resource',
9823 text: 'resource:',
9824 'description': 'Restrict resultset to application',
9825 example: "resource:ID",
9826 tag: 'Application'
9827 },
9828 {
9829 type: 'priority',
9830 text: 'priority:',
9831 'description': 'Show reports with specific priority',
9832 example: 'priority:8',
9833 tag: 'Priority'
9834 },
9835 {
9836 type: 'min_occurences',
9837 text: 'min_occurences:',
9838 'description': 'Show reports from groups with at least X occurences',
9839 example: 'min_occurences:25',
9840 tag: 'Occurences'
9841 },
9842 {
9843 type: 'url_path',
9844 text: 'url_path:',
9845 'description': 'Show reports from specific URL paths',
9846 example: 'url_path:/foo/bar/baz',
9847 tag: 'Url Path'
9848 },
9849 {
9850 type: 'url_domain',
9851 text: 'url_domain:',
9852 'description': 'Show reports from specific domain',
9853 example: 'url_domain:domain.com',
9854 tag: 'Domain'
9855 },
9856 {
9857 type: 'report_status',
9858 text: 'report_status:',
9859 'description': 'Show reports from groups with specific status',
9860 example: 'report_status:never_reviewed',
9861 tag: 'Status'
9862 },
9863 {
9864 type: 'request_id',
9865 text: 'request_id:',
9866 'description': 'Show reports with specific request id',
9867 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
9868 tag: 'Request ID'
9869 },
9870 {
9871 type: 'server_name',
9872 text: 'server_name:',
9873 'description': 'Show reports tagged with this key/value pair',
9874 example: 'server_name:hostname',
9875 tag: 'Tag'
9876 },
9877 {
9878 type: 'http_status',
9879 text: 'http_status:',
9880 'description': 'Show reports with specific HTTP status code',
9881 example: "http_status:",
9882 tag: 'HTTP Status'
9883 },
9884 {
9885 type: 'http_status',
9886 text: 'http_status:500',
9887 'description': 'Show reports with specific HTTP status code',
9888 example: "http_status:500",
9889 tag: 'HTTP Status'
9890 },
9891 {
9892 type: 'http_status',
9893 text: 'http_status:404',
9894 'description': 'Include 404 reports in your search',
9895 example: "http_status:404",
9896 tag: 'HTTP Status'
9897 },
9898 {
9899 type: 'start_date',
9900 text: 'start_date:',
9901 'description': 'Show reports newer than this date (press TAB for dropdown)',
9902 example: 'start_date:2014-08-15T13:00',
9903 tag: 'Start Date'
9904 },
9905 {
9906 type: 'end_date',
9907 text: 'end_date:',
9908 'description': 'Show reports older than this date (press TAB for dropdown)',
9909 example: 'start_date:2014-08-15T23:59',
9910 tag: 'End Date'
9911 }
9912 ];
9913
9914 vm.filterTypeAhead = undefined;
9915 vm.showDatePicker = false;
9916 vm.manualOpen = false;
9917 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
9868 vm.$onInit = function () {
9869 vm.applications = stateHolder.AeUser.applications_map;
9870 stateHolder.section = 'reports';
9871 vm.today = function () {
9872 vm.pickerDate = new Date();
9873 };
9874 vm.today();
9875 vm.reportsPage = [];
9876 vm.page = 1;
9877 vm.itemCount = 0;
9878 vm.itemsPerPage = 250;
9879 typeAheadTagHelper.tags = [];
9880 vm.searchParams = {tags: [], page: 1, type: 'report'};
9881 vm.is_loading = false;
9882 vm.filterTypeAheadOptions = [
9883 {
9884 type: 'error',
9885 text: 'error:',
9886 'description': 'Full-text search in your reports',
9887 example: 'error:text-im-looking-for',
9888 tag: 'Error'
9889 },
9890 {
9891 type: 'view_name',
9892 text: 'view_name:',
9893 'description': 'Query reports occured in specific views',
9894 example: "view_name:module.foo",
9895 tag: 'View Name'
9896 },
9897 {
9898 type: 'resource',
9899 text: 'resource:',
9900 'description': 'Restrict resultset to application',
9901 example: "resource:ID",
9902 tag: 'Application'
9903 },
9904 {
9905 type: 'priority',
9906 text: 'priority:',
9907 'description': 'Show reports with specific priority',
9908 example: 'priority:8',
9909 tag: 'Priority'
9910 },
9911 {
9912 type: 'min_occurences',
9913 text: 'min_occurences:',
9914 'description': 'Show reports from groups with at least X occurences',
9915 example: 'min_occurences:25',
9916 tag: 'Occurences'
9917 },
9918 {
9919 type: 'url_path',
9920 text: 'url_path:',
9921 'description': 'Show reports from specific URL paths',
9922 example: 'url_path:/foo/bar/baz',
9923 tag: 'Url Path'
9924 },
9925 {
9926 type: 'url_domain',
9927 text: 'url_domain:',
9928 'description': 'Show reports from specific domain',
9929 example: 'url_domain:domain.com',
9930 tag: 'Domain'
9931 },
9932 {
9933 type: 'report_status',
9934 text: 'report_status:',
9935 'description': 'Show reports from groups with specific status',
9936 example: 'report_status:never_reviewed',
9937 tag: 'Status'
9938 },
9939 {
9940 type: 'request_id',
9941 text: 'request_id:',
9942 'description': 'Show reports with specific request id',
9943 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
9944 tag: 'Request ID'
9945 },
9946 {
9947 type: 'server_name',
9948 text: 'server_name:',
9949 'description': 'Show reports tagged with this key/value pair',
9950 example: 'server_name:hostname',
9951 tag: 'Tag'
9952 },
9953 {
9954 type: 'http_status',
9955 text: 'http_status:',
9956 'description': 'Show reports with specific HTTP status code',
9957 example: "http_status:",
9958 tag: 'HTTP Status'
9959 },
9960 {
9961 type: 'http_status',
9962 text: 'http_status:500',
9963 'description': 'Show reports with specific HTTP status code',
9964 example: "http_status:500",
9965 tag: 'HTTP Status'
9966 },
9967 {
9968 type: 'http_status',
9969 text: 'http_status:404',
9970 'description': 'Include 404 reports in your search',
9971 example: "http_status:404",
9972 tag: 'HTTP Status'
9973 },
9974 {
9975 type: 'start_date',
9976 text: 'start_date:',
9977 'description': 'Show reports newer than this date (press TAB for dropdown)',
9978 example: 'start_date:2014-08-15T13:00',
9979 tag: 'Start Date'
9980 },
9981 {
9982 type: 'end_date',
9983 text: 'end_date:',
9984 'description': 'Show reports older than this date (press TAB for dropdown)',
9985 example: 'start_date:2014-08-15T23:59',
9986 tag: 'End Date'
9987 }
9988 ];
9989
9990 vm.filterTypeAhead = undefined;
9991 vm.showDatePicker = false;
9992 vm.manualOpen = false;
9993 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
9994
9995 vm.notRelativeTime = false;
9996 if ($cookies.notRelativeTime) {
9997 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
9998 }
9999
10000 _.each(_.range(1, 11), function (priority) {
10001 vm.filterTypeAheadOptions.push({
10002 type: 'priority',
10003 text: 'priority:' + priority.toString(),
10004 description: 'Show entries with specific priority',
10005 example: 'priority:' + priority,
10006 tag: 'Priority'
10007 });
10008 });
10009 _.each(['never_reviewed', 'reviewed', 'fixed', 'public'], function (status) {
10010 vm.filterTypeAheadOptions.push({
10011 type: 'report_status',
10012 text: 'report_status:' + status,
10013 'description': 'Show only reports with this status',
10014 example: 'report_status:' + status,
10015 tag: 'Status ' + status.toUpperCase()
10016 });
10017 });
10018 _.each(stateHolder.AeUser.applications, function (item) {
10019 vm.filterTypeAheadOptions.push({
10020 type: 'resource',
10021 text: 'resource:' + item.resource_id + ':' + item.resource_name,
10022 example: 'resource:' + item.resource_id,
10023 'tag': item.resource_name,
10024 'description': 'Restrict resultset to this application'
10025 });
10026 });
10027
10028 // initial load
10029 vm.refresh();
10030
10031 }
10032
9918 10033 vm.removeSearchTag = function (tag) {
9919 10034 $location.search(tag.type, null);
9920 10035 vm.refresh();
@@ -9923,44 +10038,12 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
9923 10038 $location.search(tag.type, tag.value);
9924 10039 vm.refresh();
9925 10040 };
9926 vm.notRelativeTime = false;
9927 if ($cookies.notRelativeTime) {
9928 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
9929 }
9930 10041
9931 10042 vm.changeRelativeTime = function () {
9932 10043 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
9933 10044 };
9934 10045
9935 _.each(_.range(1, 11), function (priority) {
9936 vm.filterTypeAheadOptions.push({
9937 type: 'priority',
9938 text: 'priority:' + priority.toString(),
9939 description: 'Show entries with specific priority',
9940 example: 'priority:' + priority,
9941 tag: 'Priority'
9942 });
9943 });
9944 _.each(['never_reviewed', 'reviewed', 'fixed', 'public'], function (status) {
9945 vm.filterTypeAheadOptions.push({
9946 type: 'report_status',
9947 text: 'report_status:' + status,
9948 'description': 'Show only reports with this status',
9949 example: 'report_status:' + status,
9950 tag: 'Status ' + status.toUpperCase()
9951 });
9952 });
9953 _.each(stateHolder.AeUser.applications, function (item) {
9954 vm.filterTypeAheadOptions.push({
9955 type: 'resource',
9956 text: 'resource:' + item.resource_id + ':' + item.resource_name,
9957 example: 'resource:' + item.resource_id,
9958 'tag': item.resource_name,
9959 'description': 'Restrict resultset to this application'
9960 });
9961 });
9962
9963 vm.paginationChange = function(){
10046 vm.paginationChange = function () {
9964 10047 $location.search('page', vm.page);
9965 10048 vm.refresh();
9966 10049 };
@@ -9988,8 +10071,7 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
9988 10071 if (tagValue) {
9989 10072 tag.value = tagValue.join(':');
9990 10073 }
9991 }
9992 else {
10074 } else {
9993 10075 tag.type = 'error';
9994 10076 tag.value = parsed.join(':');
9995 10077 }
@@ -9998,8 +10080,7 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
9998 10080 if ('start_date:' == text) {
9999 10081 vm.showDatePicker = true;
10000 10082 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
10001 }
10002 else if ('end_date:' == text) {
10083 } else if ('end_date:' == text) {
10003 10084 vm.showDatePicker = true;
10004 10085 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
10005 10086 }
@@ -10014,11 +10095,10 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
10014 10095 vm.filterTypeAhead = undefined;
10015 10096 };
10016 10097
10017 vm.pickerDateChanged = function(){
10098 vm.pickerDateChanged = function () {
10018 10099 if (vm.filterTypeAhead.indexOf('start_date:') == '0') {
10019 10100 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
10020 }
10021 else if (vm.filterTypeAhead.indexOf('end_date:') == '0') {
10101 } else if (vm.filterTypeAhead.indexOf('end_date:') == '0') {
10022 10102 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
10023 10103 }
10024 10104 vm.showDatePicker = false;
@@ -10029,16 +10109,13 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
10029 10109 if (report.group.public) {
10030 10110 report.presentation.className = 'public';
10031 10111 report.presentation.tooltip = 'Public';
10032 }
10033 else if (report.group.fixed) {
10112 } else if (report.group.fixed) {
10034 10113 report.presentation.className = 'fixed';
10035 10114 report.presentation.tooltip = 'Fixed';
10036 }
10037 else if (report.group.read) {
10115 } else if (report.group.read) {
10038 10116 report.presentation.className = 'reviewed';
10039 10117 report.presentation.tooltip = 'Reviewed';
10040 }
10041 else {
10118 } else {
10042 10119 report.presentation.className = 'new';
10043 10120 report.presentation.tooltip = 'New';
10044 10121 }
@@ -10069,15 +10146,14 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
10069 10146 vm.refresh();
10070 10147 };
10071 10148
10072 vm.refresh = function(){
10149 vm.refresh = function () {
10073 10150 vm.searchParams = parseSearchToTags($location.search());
10074 10151 vm.page = Number(vm.searchParams.page) || 1;
10075 10152 var params = parseTagsToSearch(vm.searchParams);
10076 10153
10077 10154 vm.fetchReports(params);
10078 10155 };
10079 // initial load
10080 vm.refresh();
10156
10081 10157 }
10082 10158
10083 10159 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -10109,109 +10185,149 b" ReportsSlowBrowserViewController.$inject = ['$location', '$cookies',"
10109 10185
10110 10186 function ReportsSlowBrowserViewController($location, $cookies, stateHolder, typeAheadTagHelper, slowReportsResource) {
10111 10187 var vm = this;
10112 vm.applications = stateHolder.AeUser.applications_map;
10113 stateHolder.section = 'slow_reports';
10114 vm.today = function () {
10115 vm.pickerDate = new Date();
10116 };
10117 vm.today();
10118 vm.reportsPage = [];
10119 vm.page = 1;
10120 vm.itemCount = 0;
10121 vm.itemsPerPage = 250;
10122 typeAheadTagHelper.tags = [];
10123 vm.searchParams = {tags: [], page: 1, type: 'slow_report'};
10124 vm.is_loading = false;
10125 vm.filterTypeAheadOptions = [
10126 {
10127 type: 'view_name',
10128 text: 'view_name:',
10129 'description': 'Query reports occured in specific views',
10130 tag: 'View Name',
10131 example: "view_name:module.foo"
10132 },
10133 {
10134 type: 'resource',
10135 text: 'resource:',
10136 'description': 'Restrict resultset to application',
10137 tag: 'Application',
10138 example: "resource:ID"
10139 },
10140 {
10141 type: 'priority',
10142 text: 'priority:',
10143 'description': 'Show reports with specific priority',
10144 example: 'priority:8',
10145 tag: 'Priority'
10146 },
10147 {
10148 type: 'min_occurences',
10149 text: 'min_occurences:',
10150 'description': 'Show reports from groups with at least X occurences',
10151 example: 'min_occurences:25',
10152 tag: 'Min. occurences'
10153 },
10154 {
10155 type: 'min_duration',
10156 text: 'min_duration:',
10157 'description': 'Show reports from groups with average duration >= Xs',
10158 example: 'min_duration:4.5',
10159 tag: 'Min. duration'
10160 },
10161 {
10162 type: 'url_path',
10163 text: 'url_path:',
10164 'description': 'Show reports from specific URL paths',
10165 example: 'url_path:/foo/bar/baz',
10166 tag: 'Url Path'
10167 },
10168 {
10169 type: 'url_domain',
10170 text: 'url_domain:',
10171 'description': 'Show reports from specific domain',
10172 example: 'url_domain:domain.com',
10173 tag: 'Domain'
10174 },
10175 {
10176 type: 'request_id',
10177 text: 'request_id:',
10178 'description': 'Show reports with specific request id',
10179 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
10180 tag: 'Request ID'
10181 },
10182 {
10183 type: 'report_status',
10184 text: 'report_status:',
10185 'description': 'Show reports from groups with specific status',
10186 example: 'report_status:never_reviewed',
10187 tag: 'Status'
10188 },
10189 {
10190 type: 'server_name',
10191 text: 'server_name:',
10192 'description': 'Show reports tagged with this key/value pair',
10193 example: 'server_name:hostname',
10194 tag: 'Tag'
10195 },
10196 {
10197 type: 'start_date',
10198 text: 'start_date:',
10199 'description': 'Show reports newer than this date (press TAB for dropdown)',
10200 example: 'start_date:2014-08-15T13:00',
10201 tag: 'Start Date'
10202 },
10203 {
10204 type: 'end_date',
10205 text: 'end_date:',
10206 'description': 'Show reports older than this date (press TAB for dropdown)',
10207 example: 'start_date:2014-08-15T23:59',
10208 tag: 'End Date'
10209 }
10210 ];
10211
10212 vm.filterTypeAhead = undefined;
10213 vm.showDatePicker = false;
10214 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
10188 vm.$onInit = function () {
10189 vm.applications = stateHolder.AeUser.applications_map;
10190 stateHolder.section = 'slow_reports';
10191 vm.today = function () {
10192 vm.pickerDate = new Date();
10193 };
10194 vm.today();
10195 vm.reportsPage = [];
10196 vm.page = 1;
10197 vm.itemCount = 0;
10198 vm.itemsPerPage = 250;
10199 typeAheadTagHelper.tags = [];
10200 vm.searchParams = {tags: [], page: 1, type: 'slow_report'};
10201 vm.is_loading = false;
10202 vm.filterTypeAheadOptions = [
10203 {
10204 type: 'view_name',
10205 text: 'view_name:',
10206 'description': 'Query reports occured in specific views',
10207 tag: 'View Name',
10208 example: "view_name:module.foo"
10209 },
10210 {
10211 type: 'resource',
10212 text: 'resource:',
10213 'description': 'Restrict resultset to application',
10214 tag: 'Application',
10215 example: "resource:ID"
10216 },
10217 {
10218 type: 'priority',
10219 text: 'priority:',
10220 'description': 'Show reports with specific priority',
10221 example: 'priority:8',
10222 tag: 'Priority'
10223 },
10224 {
10225 type: 'min_occurences',
10226 text: 'min_occurences:',
10227 'description': 'Show reports from groups with at least X occurences',
10228 example: 'min_occurences:25',
10229 tag: 'Min. occurences'
10230 },
10231 {
10232 type: 'min_duration',
10233 text: 'min_duration:',
10234 'description': 'Show reports from groups with average duration >= Xs',
10235 example: 'min_duration:4.5',
10236 tag: 'Min. duration'
10237 },
10238 {
10239 type: 'url_path',
10240 text: 'url_path:',
10241 'description': 'Show reports from specific URL paths',
10242 example: 'url_path:/foo/bar/baz',
10243 tag: 'Url Path'
10244 },
10245 {
10246 type: 'url_domain',
10247 text: 'url_domain:',
10248 'description': 'Show reports from specific domain',
10249 example: 'url_domain:domain.com',
10250 tag: 'Domain'
10251 },
10252 {
10253 type: 'request_id',
10254 text: 'request_id:',
10255 'description': 'Show reports with specific request id',
10256 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
10257 tag: 'Request ID'
10258 },
10259 {
10260 type: 'report_status',
10261 text: 'report_status:',
10262 'description': 'Show reports from groups with specific status',
10263 example: 'report_status:never_reviewed',
10264 tag: 'Status'
10265 },
10266 {
10267 type: 'server_name',
10268 text: 'server_name:',
10269 'description': 'Show reports tagged with this key/value pair',
10270 example: 'server_name:hostname',
10271 tag: 'Tag'
10272 },
10273 {
10274 type: 'start_date',
10275 text: 'start_date:',
10276 'description': 'Show reports newer than this date (press TAB for dropdown)',
10277 example: 'start_date:2014-08-15T13:00',
10278 tag: 'Start Date'
10279 },
10280 {
10281 type: 'end_date',
10282 text: 'end_date:',
10283 'description': 'Show reports older than this date (press TAB for dropdown)',
10284 example: 'start_date:2014-08-15T23:59',
10285 tag: 'End Date'
10286 }
10287 ];
10288
10289 vm.filterTypeAhead = undefined;
10290 vm.showDatePicker = false;
10291 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
10292
10293 vm.manualOpen = false;
10294 vm.notRelativeTime = false;
10295 if ($cookies.notRelativeTime) {
10296 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
10297 }
10298
10299 _.each(_.range(1, 11), function (priority) {
10300 vm.filterTypeAheadOptions.push({
10301 type: 'priority',
10302 text: 'priority:' + priority.toString(),
10303 description: 'Show entries with specific priority',
10304 example: 'priority:' + priority,
10305 tag: 'Priority'
10306 });
10307 });
10308 _.each(['never_reviewed', 'reviewed', 'fixed', 'public'], function (status) {
10309 vm.filterTypeAheadOptions.push({
10310 type: 'report_status',
10311 text: 'report_status:' + status,
10312 'description': 'Show only reports with this status',
10313 example: 'report_status:' + status,
10314 tag: 'Status ' + status.toUpperCase()
10315 });
10316 });
10317 _.each(stateHolder.AeUser.applications, function (item) {
10318 vm.filterTypeAheadOptions.push({
10319 type: 'resource',
10320 text: 'resource:' + item.resource_id + ':' + item.resource_name,
10321 example: 'resource:' + item.resource_id,
10322 'tag': item.resource_name,
10323 'description': 'Restrict resultset to this application'
10324 });
10325 });
10326
10327 //initial load
10328 vm.refresh();
10329 }
10330
10215 10331 vm.removeSearchTag = function (tag) {
10216 10332 $location.search(tag.type, null);
10217 10333 vm.refresh();
@@ -10220,45 +10336,12 b' function ReportsSlowBrowserViewController($location, $cookies, stateHolder, type'
10220 10336 $location.search(tag.type, tag.value);
10221 10337 vm.refresh();
10222 10338 };
10223 vm.manualOpen = false;
10224 vm.notRelativeTime = false;
10225 if ($cookies.notRelativeTime) {
10226 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
10227 }
10228 10339
10229 10340
10230 10341 vm.changeRelativeTime = function () {
10231 10342 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
10232 10343 };
10233 10344
10234 _.each(_.range(1, 11), function (priority) {
10235 vm.filterTypeAheadOptions.push({
10236 type: 'priority',
10237 text: 'priority:' + priority.toString(),
10238 description: 'Show entries with specific priority',
10239 example: 'priority:' + priority,
10240 tag: 'Priority'
10241 });
10242 });
10243 _.each(['never_reviewed', 'reviewed', 'fixed', 'public'], function (status) {
10244 vm.filterTypeAheadOptions.push({
10245 type: 'report_status',
10246 text: 'report_status:' + status,
10247 'description': 'Show only reports with this status',
10248 example: 'report_status:' + status,
10249 tag: 'Status ' + status.toUpperCase()
10250 });
10251 });
10252 _.each(stateHolder.AeUser.applications, function (item) {
10253 vm.filterTypeAheadOptions.push({
10254 type: 'resource',
10255 text: 'resource:' + item.resource_id + ':' + item.resource_name,
10256 example: 'resource:' + item.resource_id,
10257 'tag': item.resource_name,
10258 'description': 'Restrict resultset to this application'
10259 });
10260 });
10261
10262 10345 vm.typeAheadTag = function (event) {
10263 10346 var text = vm.filterTypeAhead;
10264 10347 if (_.isObject(vm.filterTypeAhead)) {
@@ -10369,8 +10452,6 b' function ReportsSlowBrowserViewController($location, $cookies, stateHolder, type'
10369 10452 vm.fetchReports(params);
10370 10453 };
10371 10454
10372 //initial load
10373 vm.refresh();
10374 10455 }
10375 10456
10376 10457 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -10396,9 +10477,11 b" angular.module('appenlight.components.settingsView', [])"
10396 10477 SettingsViewController.$inject = ['$state', 'AeConfig'];
10397 10478
10398 10479 function SettingsViewController($state, AeConfig) {
10399 this.$state = $state;
10400 this.AeConfig = AeConfig;
10401 console.info('SettingsViewController');
10480 this.$onInit = function () {
10481 this.$state = $state;
10482 this.AeConfig = AeConfig;
10483 console.info('SettingsViewController');
10484 }
10402 10485 }
10403 10486
10404 10487 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -10421,15 +10504,17 b" angular.module('appenlight.components.userAlertChannelsEmailNewView', [])"
10421 10504 controller: AlertChannelsEmailController
10422 10505 });
10423 10506
10424 AlertChannelsEmailController.$inject = ['$state','userSelfPropertyResource'];
10507 AlertChannelsEmailController.$inject = ['$state', 'userSelfPropertyResource'];
10425 10508
10426 10509 function AlertChannelsEmailController($state, userSelfPropertyResource) {
10427 10510
10428 10511 var vm = this;
10429 vm.$state = $state;
10430 vm.loading = {email: false};
10431 vm.form = {};
10432
10512 vm.$onInit = function () {
10513 var vm = this;
10514 vm.$state = $state;
10515 vm.loading = {email: false};
10516 vm.form = {};
10517 }
10433 10518 vm.createChannel = function () {
10434 10519 vm.loading.email = true;
10435 10520
@@ -10467,75 +10552,76 b" angular.module('appenlight.components.userAlertChannelsListView', [])"
10467 10552 controller: userAlertChannelsListViewController
10468 10553 });
10469 10554
10470 userAlertChannelsListViewController.$inject = ['$state','userSelfPropertyResource', 'applicationsNoIdResource'];
10555 userAlertChannelsListViewController.$inject = ['$state', 'userSelfPropertyResource', 'applicationsNoIdResource'];
10471 10556
10472 10557 function userAlertChannelsListViewController($state, userSelfPropertyResource, applicationsNoIdResource) {
10473 10558
10474 10559 var vm = this;
10475 vm.$state = $state;
10476 vm.loading = {channels: true, applications: true, actions:true};
10560 vm.$onInit = function () {
10561 vm.$state = $state;
10562 vm.loading = {channels: true, applications: true, actions: true};
10477 10563
10478 vm.alertChannels = userSelfPropertyResource.query({key: 'alert_channels'},
10479 function (data) {
10480 vm.loading.channels = false;
10481 });
10564 vm.alertChannels = userSelfPropertyResource.query({key: 'alert_channels'},
10565 function (data) {
10566 vm.loading.channels = false;
10567 });
10482 10568
10483 vm.alertActions = userSelfPropertyResource.query({key: 'alert_actions'},
10484 function (data) {
10485 vm.loading.actions = false;
10486 });
10569 vm.alertActions = userSelfPropertyResource.query({key: 'alert_actions'},
10570 function (data) {
10571 vm.loading.actions = false;
10572 });
10487 10573
10488 vm.applications = applicationsNoIdResource.query({permission: 'view'},
10489 function (data) {
10490 vm.loading.applications = false;
10491 });
10574 vm.applications = applicationsNoIdResource.query({permission: 'view'},
10575 function (data) {
10576 vm.loading.applications = false;
10577 });
10492 10578
10493 var allOps = {
10494 'eq': 'Equal',
10495 'ne': 'Not equal',
10496 'ge': 'Greater or equal',
10497 'gt': 'Greater than',
10498 'le': 'Lesser or equal',
10499 'lt': 'Lesser than',
10500 'startswith': 'Starts with',
10501 'endswith': 'Ends with',
10502 'contains': 'Contains'
10503 };
10504
10505 var fieldOps = {};
10506 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
10507 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
10508 fieldOps['duration'] = ['ge', 'le'];
10509 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
10510 'contains'];
10511 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
10512 'contains'];
10513 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
10514 'contains'];
10515 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
10516 'contains'];
10517 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
10518
10519 var possibleFields = {
10520 '__AND__': 'All met (composite rule)',
10521 '__OR__': 'One met (composite rule)',
10522 '__NOT__': 'Not met (composite rule)',
10523 'http_status': 'HTTP Status',
10524 'duration': 'Request duration',
10525 'group:priority': 'Group -> Priority',
10526 'url_domain': 'Domain',
10527 'url_path': 'URL Path',
10528 'error': 'Error',
10529 'tags:server_name': 'Tag -> Server name',
10530 'group:occurences': 'Group -> Occurences'
10531 };
10532
10533 vm.ruleDefinitions = {
10534 fieldOps: fieldOps,
10535 allOps: allOps,
10536 possibleFields: possibleFields
10537 };
10579 var allOps = {
10580 'eq': 'Equal',
10581 'ne': 'Not equal',
10582 'ge': 'Greater or equal',
10583 'gt': 'Greater than',
10584 'le': 'Lesser or equal',
10585 'lt': 'Lesser than',
10586 'startswith': 'Starts with',
10587 'endswith': 'Ends with',
10588 'contains': 'Contains'
10589 };
10590
10591 var fieldOps = {};
10592 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
10593 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
10594 fieldOps['duration'] = ['ge', 'le'];
10595 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
10596 'contains'];
10597 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
10598 'contains'];
10599 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
10600 'contains'];
10601 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
10602 'contains'];
10603 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
10604
10605 var possibleFields = {
10606 '__AND__': 'All met (composite rule)',
10607 '__OR__': 'One met (composite rule)',
10608 '__NOT__': 'Not met (composite rule)',
10609 'http_status': 'HTTP Status',
10610 'duration': 'Request duration',
10611 'group:priority': 'Group -> Priority',
10612 'url_domain': 'Domain',
10613 'url_path': 'URL Path',
10614 'error': 'Error',
10615 'tags:server_name': 'Tag -> Server name',
10616 'group:occurences': 'Group -> Occurences'
10617 };
10538 10618
10619 vm.ruleDefinitions = {
10620 fieldOps: fieldOps,
10621 allOps: allOps,
10622 possibleFields: possibleFields
10623 };
10624 }
10539 10625 vm.addAction = function (channel) {
10540 10626
10541 10627 userSelfPropertyResource.save({key: 'alert_channels_rules'}, {}, function (data) {
@@ -10569,7 +10655,7 b' function userAlertChannelsListViewController($state, userSelfPropertyResource, a'
10569 10655 channel_name: channel.channel_name,
10570 10656 channel_value: channel.channel_value
10571 10657 }, function () {
10572 vm.alertChannels = _.filter(vm.alertChannels, function(item){
10658 vm.alertChannels = _.filter(vm.alertChannels, function (item) {
10573 10659 return item != channel;
10574 10660 });
10575 10661 });
@@ -10603,16 +10689,17 b" userAuthTokensViewController.$inject = ['$state', 'userSelfPropertyResource', 'A"
10603 10689 function userAuthTokensViewController($state, userSelfPropertyResource, AeConfig) {
10604 10690
10605 10691 var vm = this;
10606 vm.$state = $state;
10607 vm.loading = {tokens: true};
10608
10609 vm.expireOptions = AeConfig.timeOptions;
10692 vm.$onInit = function () {
10693 vm.$state = $state;
10694 vm.loading = {tokens: true};
10610 10695
10611 vm.tokens = userSelfPropertyResource.query({key: 'auth_tokens'},
10612 function (data) {
10613 vm.loading.tokens = false;
10614 });
10696 vm.expireOptions = AeConfig.timeOptions;
10615 10697
10698 vm.tokens = userSelfPropertyResource.query({key: 'auth_tokens'},
10699 function (data) {
10700 vm.loading.tokens = false;
10701 });
10702 }
10616 10703 vm.addToken = function () {
10617 10704 vm.loading.tokens = true;
10618 10705 userSelfPropertyResource.save({key: 'auth_tokens'},
@@ -10669,17 +10756,18 b" UserIdentitiesController.$inject = ['$state', 'userSelfPropertyResource', 'AeCon"
10669 10756 function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {
10670 10757
10671 10758 var vm = this;
10672 vm.$state = $state;
10673 vm.AeConfig = AeConfig;
10674 vm.loading = {identities: true};
10675
10676 vm.identities = userSelfPropertyResource.query(
10677 {key: 'external_identities'},
10678 function (data) {
10679 vm.loading.identities = false;
10680
10681 });
10759 vm.$onInit = function () {
10760 vm.$state = $state;
10761 vm.AeConfig = AeConfig;
10762 vm.loading = {identities: true};
10682 10763
10764 vm.identities = userSelfPropertyResource.query(
10765 {key: 'external_identities'},
10766 function (data) {
10767 vm.loading.identities = false;
10768
10769 });
10770 }
10683 10771 vm.removeProvider = function (provider) {
10684 10772
10685 10773 userSelfPropertyResource.delete(
@@ -10689,7 +10777,7 b' function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {'
10689 10777 id: provider.id
10690 10778 },
10691 10779 function (status) {
10692 if (status){
10780 if (status) {
10693 10781 vm.identities = _.filter(vm.identities, function (item) {
10694 10782 return item != provider
10695 10783 });
@@ -10724,10 +10812,11 b" UserPasswordViewController.$inject = ['$state', 'userSelfPropertyResource'];"
10724 10812 function UserPasswordViewController($state, userSelfPropertyResource) {
10725 10813
10726 10814 var vm = this;
10727 vm.$state = $state;
10728 vm.loading = {password: false};
10729 vm.form = {};
10730
10815 vm.$onInit = function () {
10816 vm.$state = $state;
10817 vm.loading = {password: false};
10818 vm.form = {};
10819 }
10731 10820 vm.updatePassword = function () {
10732 10821 vm.loading.password = true;
10733 10822
@@ -10771,14 +10860,15 b" UserProfileViewController.$inject = ['$state', 'userSelfResource'];"
10771 10860 function UserProfileViewController($state, userSelfResource) {
10772 10861
10773 10862 var vm = this;
10774 vm.$state = $state;
10775 vm.loading = {profile: true};
10776
10777 vm.user = userSelfResource.get(null, function (data) {
10778 vm.loading.profile = false;
10779
10780 });
10863 vm.$onInit = function () {
10864 vm.$state = $state;
10865 vm.loading = {profile: true};
10781 10866
10867 vm.user = userSelfResource.get(null, function (data) {
10868 vm.loading.profile = false;
10869
10870 });
10871 }
10782 10872 vm.updateProfile = function () {
10783 10873 vm.loading.profile = true;
10784 10874
@@ -10863,19 +10953,21 b" BitbucketIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'in"
10863 10953
10864 10954 function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
10865 10955 var vm = this;
10866 vm.loading = true;
10867 vm.assignees = [];
10868 vm.report = report;
10869 vm.integrationName = integrationName;
10870 vm.statuses = [];
10871 vm.priorities = [];
10872 vm.error_messages = [];
10873 vm.form = {
10874 content: '\n' +
10875 'Issue created for report: ' +
10876 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
10877 };
10878
10956 vm.$onInit = function () {
10957 vm.loading = true;
10958 vm.assignees = [];
10959 vm.report = report;
10960 vm.integrationName = integrationName;
10961 vm.statuses = [];
10962 vm.priorities = [];
10963 vm.error_messages = [];
10964 vm.form = {
10965 content: '\n' +
10966 'Issue created for report: ' +
10967 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
10968 };
10969 vm.fetchInfo();
10970 }
10879 10971 vm.fetchInfo = function () {
10880 10972 integrationResource.get({
10881 10973 resourceId: vm.report.resource_id,
@@ -10894,8 +10986,7 b' function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integration'
10894 10986 }, function (error_data) {
10895 10987 if (error_data.data.error_messages) {
10896 10988 vm.error_messages = error_data.data.error_messages;
10897 }
10898 else {
10989 } else {
10899 10990 vm.error_messages = ['There was a problem processing your request'];
10900 10991 }
10901 10992 });
@@ -10919,8 +11010,7 b' function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integration'
10919 11010 }, function (error_data) {
10920 11011 if (error_data.data.error_messages) {
10921 11012 vm.error_messages = error_data.data.error_messages;
10922 }
10923 else {
11013 } else {
10924 11014 vm.error_messages = ['There was a problem processing your request'];
10925 11015 }
10926 11016 });
@@ -10928,7 +11018,6 b' function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integration'
10928 11018 vm.cancel = function () {
10929 11019 $uibModalInstance.dismiss('cancel');
10930 11020 };
10931 vm.fetchInfo();
10932 11021 }
10933 11022
10934 11023 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -10952,19 +11041,21 b" GithubIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'integ"
10952 11041
10953 11042 function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
10954 11043 var vm = this;
10955 vm.loading = true;
10956 vm.assignees = [];
10957 vm.report = report;
10958 vm.integrationName = integrationName;
10959 vm.statuses = [];
10960 vm.assignees = [];
10961 vm.error_messages = [];
10962 vm.form = {
10963 content: '\n' +
10964 'Issue created for report: ' +
10965 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
10966 };
10967
11044 vm.$onInit = function () {
11045 vm.loading = true;
11046 vm.assignees = [];
11047 vm.report = report;
11048 vm.integrationName = integrationName;
11049 vm.statuses = [];
11050 vm.assignees = [];
11051 vm.error_messages = [];
11052 vm.form = {
11053 content: '\n' +
11054 'Issue created for report: ' +
11055 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
11056 };
11057 vm.fetchInfo();
11058 }
10968 11059 vm.fetchInfo = function () {
10969 11060 integrationResource.get({
10970 11061 resourceId: vm.report.resource_id,
@@ -10975,8 +11066,7 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
10975 11066 vm.loading = false;
10976 11067 if (data.error_messages) {
10977 11068 vm.error_messages = data.error_messages;
10978 }
10979 else {
11069 } else {
10980 11070 vm.assignees = data.assignees;
10981 11071 vm.statuses = data.statuses;
10982 11072 vm.form.responsible = vm.assignees[0];
@@ -10985,8 +11075,7 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
10985 11075 }, function (error_data) {
10986 11076 if (error_data.data.error_messages) {
10987 11077 vm.error_messages = error_data.data.error_messages;
10988 }
10989 else {
11078 } else {
10990 11079 vm.error_messages = ['There was a problem processing your request'];
10991 11080 }
10992 11081 });
@@ -11003,15 +11092,13 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
11003 11092 vm.loading = false;
11004 11093 if (data.error_messages) {
11005 11094 vm.error_messages = data.error_messages;
11006 }
11007 else {
11095 } else {
11008 11096 $uibModalInstance.dismiss('success');
11009 11097 }
11010 11098 }, function (error_data) {
11011 11099 if (error_data.data.error_messages) {
11012 11100 vm.error_messages = error_data.data.error_messages;
11013 }
11014 else {
11101 } else {
11015 11102 vm.error_messages = ['There was a problem processing your request'];
11016 11103 }
11017 11104 });
@@ -11019,7 +11106,6 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
11019 11106 vm.cancel = function () {
11020 11107 $uibModalInstance.dismiss('cancel');
11021 11108 };
11022 vm.fetchInfo();
11023 11109 }
11024 11110
11025 11111 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -11043,20 +11129,22 b" JiraIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'integra"
11043 11129
11044 11130 function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
11045 11131 var vm = this;
11046 vm.loading = true;
11047 vm.assignees = [];
11048 vm.report = report;
11049 vm.integrationName = integrationName;
11050 vm.statuses = [];
11051 vm.priorities = [];
11052 vm.issue_types = [];
11053 vm.error_messages = [];
11054 vm.form = {
11055 content: '\n' +
11056 'Issue created for report: ' +
11057 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
11058 };
11059
11132 vm.$onInit = function () {
11133 vm.loading = true;
11134 vm.assignees = [];
11135 vm.report = report;
11136 vm.integrationName = integrationName;
11137 vm.statuses = [];
11138 vm.priorities = [];
11139 vm.issue_types = [];
11140 vm.error_messages = [];
11141 vm.form = {
11142 content: '\n' +
11143 'Issue created for report: ' +
11144 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
11145 };
11146 vm.fetchInfo();
11147 }
11060 11148 vm.fetchInfo = function () {
11061 11149 integrationResource.get({
11062 11150 resourceId: vm.report.resource_id,
@@ -11078,8 +11166,7 b' function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName,'
11078 11166
11079 11167 if (error_data.data.error_messages) {
11080 11168 vm.error_messages = error_data.data.error_messages;
11081 }
11082 else {
11169 } else {
11083 11170 vm.error_messages = ['There was a problem processing your request'];
11084 11171 }
11085 11172 });
@@ -11103,8 +11190,7 b' function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName,'
11103 11190 }, function (error_data) {
11104 11191 if (error_data.data.error_messages) {
11105 11192 vm.error_messages = error_data.data.error_messages;
11106 }
11107 else {
11193 } else {
11108 11194 vm.error_messages = ['There was a problem processing your request'];
11109 11195 }
11110 11196 });
@@ -11112,7 +11198,6 b' function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName,'
11112 11198 vm.cancel = function () {
11113 11199 $uibModalInstance.dismiss('cancel');
11114 11200 };
11115 vm.fetchInfo();
11116 11201 }
11117 11202
11118 11203 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -11134,22 +11219,24 b" AssignReportCtrl.$inject = ['$uibModalInstance', 'reportGroupPropertyResource', "
11134 11219
11135 11220 function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report) {
11136 11221 var vm = this;
11137 vm.loading = true;
11138 vm.assignedUsers = [];
11139 vm.unAssignedUsers = [];
11140 vm.report = report;
11141 vm.fetchAssignments = function () {
11142 reportGroupPropertyResource.get({
11143 groupId: vm.report.group_id,
11144 key: 'assigned_users'
11145 }, null,
11146 function (data) {
11147 vm.assignedUsers = data.assigned;
11148 vm.unAssignedUsers = data.unassigned;
11149 vm.loading = false;
11150 });
11222 vm.$onInit = function () {
11223 vm.loading = true;
11224 vm.assignedUsers = [];
11225 vm.unAssignedUsers = [];
11226 vm.report = report;
11227 vm.fetchAssignments = function () {
11228 reportGroupPropertyResource.get({
11229 groupId: vm.report.group_id,
11230 key: 'assigned_users'
11231 }, null,
11232 function (data) {
11233 vm.assignedUsers = data.assigned;
11234 vm.unAssignedUsers = data.unassigned;
11235 vm.loading = false;
11236 });
11237 }
11238 vm.fetchAssignments();
11151 11239 }
11152
11153 11240 vm.reassignUser = function (user) {
11154 11241 var is_assigned = vm.assignedUsers.indexOf(user);
11155 11242 if (is_assigned != -1) {
@@ -11191,9 +11278,6 b' function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report'
11191 11278 vm.cancel = function () {
11192 11279 $uibModalInstance.dismiss('cancel');
11193 11280 };
11194
11195 vm.fetchAssignments();
11196
11197 11281 }
11198 11282
11199 11283 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -11481,64 +11565,65 b" ApplicationPermissionsController.$inject = ['sectionViewResource',"
11481 11565
11482 11566 function ApplicationPermissionsController(sectionViewResource, applicationsPropertyResource , groupsResource) {
11483 11567 var vm = this;
11484 vm.form = {
11485 autocompleteUser: '',
11486 selectedGroup: null,
11487 selectedUserPermissions: {},
11488 selectedGroupPermissions: {}
11489 }
11490 vm.possibleGroups = groupsResource.query(null, function(){
11491 if (vm.possibleGroups.length > 0){
11492 vm.form.selectedGroup = vm.possibleGroups[0].id;
11493 }
11494 });
11495
11496 vm.possibleUsers = [];
11497 _.each(vm.resource.possible_permissions, function (perm) {
11498 vm.form.selectedUserPermissions[perm] = false;
11499 vm.form.selectedGroupPermissions[perm] = false;
11500 });
11501
11502 /**
11503 * Converts the permission list into {user, permission_list objects}
11504 * for rendering in templates
11505 * **/
11506 var tmpObj = {
11507 user: {},
11508 group: {}
11509 };
11510 _.each(vm.currentPermissions, function (perm) {
11568 vm.$onInit = function () {
11569 vm.form = {
11570 autocompleteUser: '',
11571 selectedGroup: null,
11572 selectedUserPermissions: {},
11573 selectedGroupPermissions: {}
11574 }
11575 vm.possibleGroups = groupsResource.query(null, function () {
11576 if (vm.possibleGroups.length > 0) {
11577 vm.form.selectedGroup = vm.possibleGroups[0].id;
11578 }
11579 });
11511 11580
11512 if (perm.type == 'user') {
11513 if (typeof tmpObj[perm.type][perm.user_name] === 'undefined') {
11514 tmpObj[perm.type][perm.user_name] = {
11515 self: perm,
11516 permissions: []
11581 vm.possibleUsers = [];
11582 _.each(vm.resource.possible_permissions, function (perm) {
11583 vm.form.selectedUserPermissions[perm] = false;
11584 vm.form.selectedGroupPermissions[perm] = false;
11585 });
11586
11587 /**
11588 * Converts the permission list into {user, permission_list objects}
11589 * for rendering in templates
11590 * **/
11591 var tmpObj = {
11592 user: {},
11593 group: {}
11594 };
11595 _.each(vm.currentPermissions, function (perm) {
11596
11597 if (perm.type == 'user') {
11598 if (typeof tmpObj[perm.type][perm.user_name] === 'undefined') {
11599 tmpObj[perm.type][perm.user_name] = {
11600 self: perm,
11601 permissions: []
11602 }
11517 11603 }
11518 }
11519 if (tmpObj[perm.type][perm.user_name].permissions.indexOf(perm.perm_name) === -1) {
11520 tmpObj[perm.type][perm.user_name].permissions.push(perm.perm_name);
11521 }
11522 }
11523 else {
11524 if (typeof tmpObj[perm.type][perm.group_name] === 'undefined') {
11525 tmpObj[perm.type][perm.group_name] = {
11526 self: perm,
11527 permissions: []
11604 if (tmpObj[perm.type][perm.user_name].permissions.indexOf(perm.perm_name) === -1) {
11605 tmpObj[perm.type][perm.user_name].permissions.push(perm.perm_name);
11606 }
11607 } else {
11608 if (typeof tmpObj[perm.type][perm.group_name] === 'undefined') {
11609 tmpObj[perm.type][perm.group_name] = {
11610 self: perm,
11611 permissions: []
11612 }
11613 }
11614 if (tmpObj[perm.type][perm.group_name].permissions.indexOf(perm.perm_name) === -1) {
11615 tmpObj[perm.type][perm.group_name].permissions.push(perm.perm_name);
11528 11616 }
11529 }
11530 if (tmpObj[perm.type][perm.group_name].permissions.indexOf(perm.perm_name) === -1) {
11531 tmpObj[perm.type][perm.group_name].permissions.push(perm.perm_name);
11532 }
11533 11617
11534 }
11535 });
11536 vm.currentPermissions = {
11537 user: _.values(tmpObj.user),
11538 group: _.values(tmpObj.group),
11539 };
11618 }
11619 });
11620 vm.currentPermissions = {
11621 user: _.values(tmpObj.user),
11622 group: _.values(tmpObj.group),
11623 };
11624
11625 }
11540 11626
11541
11542 11627
11543 11628 vm.searchUsers = function (searchPhrase) {
11544 11629
@@ -11701,8 +11786,10 b" angular.module('appenlight.directives.pluginConfig', []).directive('pluginConfig"
11701 11786 PluginConfig.$inject = ['stateHolder'];
11702 11787
11703 11788 function PluginConfig(stateHolder) {
11704 this.plugins = {};
11705 this.inclusions = stateHolder.plugins.inclusions[this.section];
11789 this.$onInit = function () {
11790 this.plugins = {};
11791 this.inclusions = stateHolder.plugins.inclusions[this.section];
11792 }
11706 11793 }
11707 11794 });
11708 11795
@@ -11723,69 +11810,71 b" angular.module('appenlight.directives.pluginConfig', []).directive('pluginConfig"
11723 11810 angular.module('appenlight.directives.postProcessAction', []).directive('postProcessAction', ['applicationsPropertyResource', function (applicationsPropertyResource) {
11724 11811 return {
11725 11812 scope: {},
11726 bindToController:{
11813 bindToController: {
11727 11814 action: '=',
11728 11815 resource: '='
11729 11816 },
11730 controller:postProcessActionController,
11731 controllerAs:'ctrl',
11817 controller: postProcessActionController,
11818 controllerAs: 'ctrl',
11732 11819 restrict: 'E',
11733 11820 templateUrl: 'directives/postprocess_action/postprocess_action.html'
11734 11821 };
11735 function postProcessActionController(){
11736 var vm = this;
11737
11738 var allOps = {
11739 'eq': 'Equal',
11740 'ne': 'Not equal',
11741 'ge': 'Greater or equal',
11742 'gt': 'Greater than',
11743 'le': 'Lesser or equal',
11744 'lt': 'Lesser than',
11745 'startswith': 'Starts with',
11746 'endswith': 'Ends with',
11747 'contains': 'Contains'
11748 };
11749
11750 var fieldOps = {};
11751 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
11752 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
11753 fieldOps['duration'] = ['ge', 'le'];
11754 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
11755 'contains'];
11756 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
11757 'contains'];
11758 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
11759 'contains'];
11760 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
11761 'contains'];
11762 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
11763 11822
11764 var possibleFields = {
11765 '__AND__': 'All met (composite rule)',
11766 '__OR__': 'One met (composite rule)',
11767 '__NOT__': 'Not met (composite rule)',
11768 'http_status': 'HTTP Status',
11769 'duration': 'Request duration',
11770 'group:priority': 'Group -> Priority',
11771 'url_domain': 'Domain',
11772 'url_path': 'URL Path',
11773 'error': 'Error',
11774 'tags:server_name': 'Tag -> Server name',
11775 'group:occurences': 'Group -> Occurences'
11776 };
11823 function postProcessActionController() {
11824 var vm = this;
11825 vm.$onInit = function () {
11826
11827 var allOps = {
11828 'eq': 'Equal',
11829 'ne': 'Not equal',
11830 'ge': 'Greater or equal',
11831 'gt': 'Greater than',
11832 'le': 'Lesser or equal',
11833 'lt': 'Lesser than',
11834 'startswith': 'Starts with',
11835 'endswith': 'Ends with',
11836 'contains': 'Contains'
11837 };
11777 11838
11778 vm.ruleDefinitions = {
11779 fieldOps: fieldOps,
11780 allOps: allOps,
11781 possibleFields: possibleFields
11782 };
11839 var fieldOps = {};
11840 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
11841 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
11842 fieldOps['duration'] = ['ge', 'le'];
11843 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
11844 'contains'];
11845 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
11846 'contains'];
11847 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
11848 'contains'];
11849 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
11850 'contains'];
11851 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
11852
11853 var possibleFields = {
11854 '__AND__': 'All met (composite rule)',
11855 '__OR__': 'One met (composite rule)',
11856 '__NOT__': 'Not met (composite rule)',
11857 'http_status': 'HTTP Status',
11858 'duration': 'Request duration',
11859 'group:priority': 'Group -> Priority',
11860 'url_domain': 'Domain',
11861 'url_path': 'URL Path',
11862 'error': 'Error',
11863 'tags:server_name': 'Tag -> Server name',
11864 'group:occurences': 'Group -> Occurences'
11865 };
11783 11866
11784 vm.possibleActions = [
11785 ['1', 'Priority +1'],
11786 ['-1', 'Priority -1']
11787 ];
11867 vm.ruleDefinitions = {
11868 fieldOps: fieldOps,
11869 allOps: allOps,
11870 possibleFields: possibleFields
11871 };
11788 11872
11873 vm.possibleActions = [
11874 ['1', 'Priority +1'],
11875 ['-1', 'Priority -1']
11876 ];
11877 }
11789 11878 vm.deleteAction = function (action) {
11790 11879 applicationsPropertyResource.remove({
11791 11880 pkey: vm.action.pkey,
@@ -11816,7 +11905,7 b" angular.module('appenlight.directives.postProcessAction', []).directive('postPro"
11816 11905 });
11817 11906 };
11818 11907
11819 vm.setDirty = function() {
11908 vm.setDirty = function () {
11820 11909 vm.action.dirty = true;
11821 11910
11822 11911 };
@@ -11874,20 +11963,36 b' angular.module(\'appenlight.directives.recursive\', []).directive("recursive", fun'
11874 11963 angular.module('appenlight.directives.reportAlertAction', []).directive('reportAlertAction', ['userSelfPropertyResource', function (userSelfPropertyResource) {
11875 11964 return {
11876 11965 scope: {},
11877 bindToController:{
11966 bindToController: {
11878 11967 action: '=',
11879 11968 applications: '=',
11880 11969 possibleChannels: '=',
11881 11970 actions: '=',
11882 11971 ruleDefinitions: '='
11883 11972 },
11884 controller:reportAlertActionController,
11885 controllerAs:'ctrl',
11973 controller: reportAlertActionController,
11974 controllerAs: 'ctrl',
11886 11975 restrict: 'E',
11887 11976 templateUrl: 'directives/report_alert_action/report_alert_action.html'
11888 11977 };
11889 function reportAlertActionController(){
11978
11979 function reportAlertActionController() {
11890 11980 var vm = this;
11981 vm.$onInit = function () {
11982 vm.possibleNotifications = [
11983 ['always', 'Always'],
11984 ['only_first', 'Only New'],
11985 ];
11986
11987 vm.possibleChannels = _.filter(vm.possibleChannels, function (c) {
11988 return c.supports_report_alerting
11989 }
11990 );
11991
11992 if (vm.possibleChannels.length > 0) {
11993 vm.channelToBind = vm.possibleChannels[0];
11994 }
11995 }
11891 11996 vm.deleteAction = function (actions, action) {
11892 11997 var get = {
11893 11998 key: 'alert_channels_rules',
@@ -11899,7 +12004,7 b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
11899 12004
11900 12005 };
11901 12006
11902 vm.bindChannel = function(){
12007 vm.bindChannel = function () {
11903 12008 var post = {
11904 12009 channel_pkey: vm.channelToBind.pkey,
11905 12010 action_pkey: vm.action.pkey
@@ -11916,7 +12021,7 b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
11916 12021 });
11917 12022 };
11918 12023
11919 vm.unBindChannel = function(channel){
12024 vm.unBindChannel = function (channel) {
11920 12025 userSelfPropertyResource.delete({
11921 12026 key: 'alert_channels_actions_binds',
11922 12027 channel_pkey: channel.pkey,
@@ -11949,20 +12054,7 b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
11949 12054 });
11950 12055 };
11951 12056
11952 vm.possibleNotifications = [
11953 ['always', 'Always'],
11954 ['only_first', 'Only New'],
11955 ];
11956
11957 vm.possibleChannels = _.filter(vm.possibleChannels, function(c){
11958 return c.supports_report_alerting }
11959 );
11960
11961 if (vm.possibleChannels.length > 0){
11962 vm.channelToBind = vm.possibleChannels[0];
11963 }
11964
11965 vm.setDirty = function() {
12057 vm.setDirty = function () {
11966 12058 vm.action.dirty = true;
11967 12059
11968 12060 };
@@ -11987,7 +12079,7 b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
11987 12079 angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly', ['userSelfPropertyResource', function (userSelfPropertyResource) {
11988 12080 return {
11989 12081 scope: {},
11990 bindToController:{
12082 bindToController: {
11991 12083 parentObj: '=',
11992 12084 rule: '=',
11993 12085 ruleDefinitions: '=',
@@ -11996,16 +12088,19 b" angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly"
11996 12088 },
11997 12089 restrict: 'E',
11998 12090 templateUrl: 'directives/rule_read_only/rule_read_only.html',
11999 controller:RuleController,
12000 controllerAs:'rule_ctrlr'
12091 controller: RuleController,
12092 controllerAs: 'rule_ctrlr'
12001 12093 }
12002 function RuleController(){
12094
12095 function RuleController() {
12003 12096 var vm = this;
12004 vm.readOnlyPossibleFields = {};
12005 var labelPairs = _.pairs(vm.parentObj.config);
12006 _.each(labelPairs, function (entry) {
12007 vm.readOnlyPossibleFields[entry[0]] = entry[1].human_label;
12008 });
12097 vm.$onInit = function () {
12098 vm.readOnlyPossibleFields = {};
12099 var labelPairs = _.pairs(vm.parentObj.config);
12100 _.each(labelPairs, function (entry) {
12101 vm.readOnlyPossibleFields[entry[0]] = entry[1].human_label;
12102 });
12103 }
12009 12104 }
12010 12105 }]);
12011 12106
@@ -12040,10 +12135,10 b" angular.module('appenlight.directives.rule', []).directive('rule', function () {"
12040 12135 };
12041 12136 function RuleController(){
12042 12137 var vm = this;
12043
12044 vm.rule.dirty = false;
12045 vm.oldField = vm.rule.field;
12046
12138 vm.$onInit = function () {
12139 vm.rule.dirty = false;
12140 vm.oldField = vm.rule.field;
12141 }
12047 12142 vm.add = function () {
12048 12143 vm.rule.rules.push(
12049 12144 {op: "eq", field: 'http_status', value: ""}
@@ -20,16 +20,16 b''
20 20 "tests"
21 21 ],
22 22 "dependencies": {
23 "angular": "1.5.5",
24 "angular-resource": "1.5.5",
25 "angular-cookies": "1.5.5",
26 "angular-sanitize": "1.5.5",
27 "angular-animate": "1.5.5",
28 "angular-touch": "1.5.5",
29 "angular-route": "1.5.5",
30 "angular-messages": "1.5.5",
31 "angular-mocks": "1.5.5",
32 "angular-scenario": "1.5.5",
23 "angular": "1.7.7",
24 "angular-resource": "1.7.7",
25 "angular-cookies": "1.7.7",
26 "angular-sanitize": "1.7.7",
27 "angular-animate": "1.7.7",
28 "angular-touch": "1.7.7",
29 "angular-route": "1.7.7",
30 "angular-messages": "1.7.7",
31 "angular-mocks": "1.7.7",
32 "angular-scenario": "1.7.7",
33 33 "angular-bootstrap": "1.3.2",
34 34 "angular-ui-router": "1.0.0-beta.3",
35 35 "angular-toArrayFilter" : "1.0.1",
@@ -1,8 +1,8 b''
1 1 {
2 2 "name": "errormator",
3 "description": "JS layer for Errormator",
3 "description": "JS layer for AppEnlight",
4 4 "devDependencies": {
5 "bower": "1.7.9",
5 "bower": "^1.8.8",
6 6 "bower-requirejs": "1.2.0",
7 7 "grunt": "1.0.1",
8 8 "grunt-angular-templates": "1.0.4",
@@ -17,9 +17,12 b''
17 17 "grunt-contrib-uglify": "1.0.1",
18 18 "grunt-contrib-watch": "1.0.0",
19 19 "grunt-remove-logging": "0.2.0",
20 "ini": "1.3.4",
20 21 "karma": "0.13.22",
21 22 "underscore": "1.8.3",
22 "yo": "1.8.4",
23 "ini": "1.3.4"
23 "yo": "1.8.4"
24 },
25 "dependencies": {
26 "grunt-cli": "^1.3.2"
24 27 }
25 28 }
@@ -20,8 +20,11 b" angular.module('appenlight.components.appenlightHeader', [])"
20 20
21 21 ChannelstreamController.$inject = ['stateHolder', 'AeConfig'];
22 22
23 function AppEnlightFooterController(stateHolder, AeConfig){
23 function AppEnlightFooterController(stateHolder, AeConfig) {
24 24 var vm = this;
25 vm.AeConfig = AeConfig;
26 vm.stateHolder = stateHolder;
25
26 vm.$onInit = function () {
27 vm.AeConfig = AeConfig;
28 vm.stateHolder = stateHolder;
29 }
27 30 }
@@ -20,33 +20,36 b" angular.module('appenlight.components.appenlightHeader', [])"
20 20
21 21 ChannelstreamController.$inject = ['$state', 'stateHolder', 'AeConfig'];
22 22
23 function AppEnlightHeaderController($state, stateHolder, AeConfig){
23 function AppEnlightHeaderController($state, stateHolder, AeConfig) {
24 24 var vm = this;
25 vm.AeConfig = AeConfig;
26 vm.stateHolder = stateHolder;
27 vm.assignedReports = stateHolder.AeUser.assigned_reports;
28 vm.latestEvents = stateHolder.AeUser.latest_events;
29 vm.activeEvents = 0;
30 _.each(vm.latestEvents, function (event) {
31 if (event.status === 1 && event.end_date === null) {
32 vm.activeEvents += 1;
33 }
34 });
35 25
36 vm.clickedEvent = function(event){
26 vm.$onInit = function () {
27
28 vm.AeConfig = AeConfig;
29 vm.stateHolder = stateHolder;
30 vm.assignedReports = stateHolder.AeUser.assigned_reports;
31 vm.latestEvents = stateHolder.AeUser.latest_events;
32 vm.activeEvents = 0;
33 _.each(vm.latestEvents, function (event) {
34 if (event.status === 1 && event.end_date === null) {
35 vm.activeEvents += 1;
36 }
37 });
38 }
39
40 vm.clickedEvent = function (event) {
37 41 // exception reports
38 if (_.contains([1,2], event.event_type)){
39 $state.go('report.list', {resource:event.resource_id, start_date:event.start_date});
42 if (_.contains([1, 2], event.event_type)) {
43 $state.go('report.list', {resource: event.resource_id, start_date: event.start_date});
40 44 }
41 45 // slowness reports
42 else if (_.contains([3,4], event.event_type)){
43 $state.go('report.list_slow', {resource:event.resource_id, start_date:event.start_date});
46 else if (_.contains([3, 4], event.event_type)) {
47 $state.go('report.list_slow', {resource: event.resource_id, start_date: event.start_date});
44 48 }
45 49 // uptime reports
46 else if (_.contains([7,8], event.event_type)){
47 $state.go('uptime', {resource:event.resource_id, start_date:event.start_date});
48 }
49 else{
50 else if (_.contains([7, 8], event.event_type)) {
51 $state.go('uptime', {resource: event.resource_id, start_date: event.start_date});
52 } else {
50 53 console.log('other');
51 54 }
52 55 }
@@ -23,12 +23,14 b" AdminApplicationsListController.$inject = ['applicationsResource'];"
23 23 function AdminApplicationsListController(applicationsResource) {
24 24 console.debug('AdminApplicationsListController');
25 25 var vm = this;
26 vm.loading = {applications: true};
26 vm.$onInit = function () {
27 vm.loading = {applications: true};
27 28
28 vm.applications = applicationsResource.query({
29 root_list: true,
30 resource_type: 'application'
31 }, function (data) {
32 vm.loading = {applications: false};
33 });
29 vm.applications = applicationsResource.query({
30 root_list: true,
31 resource_type: 'application'
32 }, function (data) {
33 vm.loading = {applications: false};
34 });
35 }
34 36 };
@@ -22,29 +22,30 b" AdminConfigurationViewController.$inject = ['configsResource', 'configsNoIdResou"
22 22
23 23 function AdminConfigurationViewController(configsResource, configsNoIdResource) {
24 24 var vm = this;
25 vm.loading = {config: true};
26
27 var filters = [
28 'template_footer_html:global',
29 'list_groups_to_non_admins:global',
30 'per_application_reports_rate_limit:global',
31 'per_application_logs_rate_limit:global',
32 'per_application_metrics_rate_limit:global',
33 ];
34
35 vm.configs = {};
36
37 vm.configList = configsResource.query({filter: filters},
38 function (data) {
39 vm.loading = {config: false};
40 _.each(data, function (item) {
41 if (vm.configs[item.section] === undefined) {
42 vm.configs[item.section] = {};
43 }
44 vm.configs[item.section][item.key] = item;
25 vm.$onInit = function () {
26 vm.loading = {config: true};
27
28 var filters = [
29 'template_footer_html:global',
30 'list_groups_to_non_admins:global',
31 'per_application_reports_rate_limit:global',
32 'per_application_logs_rate_limit:global',
33 'per_application_metrics_rate_limit:global',
34 ];
35
36 vm.configs = {};
37
38 vm.configList = configsResource.query({filter: filters},
39 function (data) {
40 vm.loading = {config: false};
41 _.each(data, function (item) {
42 if (vm.configs[item.section] === undefined) {
43 vm.configs[item.section] = {};
44 }
45 vm.configs[item.section][item.key] = item;
46 });
45 47 });
46 });
47
48 }
48 49 vm.save = function () {
49 50 vm.loading.config = true;
50 51 _.each(vm.configList, function (item) {
@@ -23,60 +23,62 b" AdminGroupsCreateViewController.$inject = ['$state', 'groupsResource', 'groupsPr"
23 23 function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyResource, sectionViewResource) {
24 24 console.debug('AdminGroupsCreateController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {
28 group: false,
29 resource_permissions: false,
30 users: false
31 };
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {
29 group: false,
30 resource_permissions: false,
31 users: false
32 };
32 33
33 vm.form = {
34 autocompleteUser: '',
35 }
34 vm.form = {
35 autocompleteUser: '',
36 }
36 37
37 38
38 if (typeof $state.params.groupId !== 'undefined') {
39 vm.loading.group = true;
40 var groupId = $state.params.groupId;
41 vm.group = groupsResource.get({groupId: groupId}, function (data) {
42 vm.loading.group = false;
43 });
39 if (typeof $state.params.groupId !== 'undefined') {
40 vm.loading.group = true;
41 var groupId = $state.params.groupId;
42 vm.group = groupsResource.get({groupId: groupId}, function (data) {
43 vm.loading.group = false;
44 });
44 45
45 vm.resource_permissions = groupsPropertyResource.query(
46 {groupId: groupId, key: 'resource_permissions'}, function (data) {
47 vm.loading.resource_permissions = false;
48 var tmpObj = {
49 'group': {
50 'application': {},
51 'dashboard': {}
52 }
53 };
54 _.each(data, function (item) {
55 console.log(item);
56 var section = tmpObj[item.type][item.resource_type];
57 if (typeof section[item.resource_id] == 'undefined') {
58 section[item.resource_id] = {
59 self: item,
60 permissions: []
46 vm.resource_permissions = groupsPropertyResource.query(
47 {groupId: groupId, key: 'resource_permissions'}, function (data) {
48 vm.loading.resource_permissions = false;
49 var tmpObj = {
50 'group': {
51 'application': {},
52 'dashboard': {}
53 }
54 };
55 _.each(data, function (item) {
56 console.log(item);
57 var section = tmpObj[item.type][item.resource_type];
58 if (typeof section[item.resource_id] == 'undefined') {
59 section[item.resource_id] = {
60 self: item,
61 permissions: []
62 }
61 63 }
62 }
63 section[item.resource_id].permissions.push(item.perm_name);
64 section[item.resource_id].permissions.push(item.perm_name);
64 65
66 });
67 console.log(tmpObj)
68 vm.resourcePermissions = tmpObj;
65 69 });
66 console.log(tmpObj)
67 vm.resourcePermissions = tmpObj;
68 });
69 70
70 vm.users = groupsPropertyResource.query(
71 {groupId: groupId, key: 'users'}, function (data) {
72 vm.loading.users = false;
73 }, function () {
74 vm.loading.users = false;
75 });
71 vm.users = groupsPropertyResource.query(
72 {groupId: groupId, key: 'users'}, function (data) {
73 vm.loading.users = false;
74 }, function () {
75 vm.loading.users = false;
76 });
77
78 } else {
79 var groupId = null;
80 }
76 81
77 }
78 else {
79 var groupId = null;
80 82 }
81 83
82 84 var formResponse = function (response) {
@@ -93,8 +95,7 b' function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyR'
93 95 setServerValidation(vm.groupForm);
94 96 vm.loading.group = false;
95 97 }, formResponse);
96 }
97 else {
98 } else {
98 99 groupsResource.save(vm.group, function (data) {
99 100 $state.go('admin.group.update', {groupId: data.id});
100 101 }, formResponse);
@@ -134,9 +135,9 b' function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyR'
134 135 view: 'search_users',
135 136 'user_name': searchPhrase
136 137 }).$promise.then(function (data) {
137 return _.map(data, function (item) {
138 return item.user;
139 });
138 return _.map(data, function (item) {
139 return item.user;
140 140 });
141 });
141 142 }
142 143 };
@@ -23,24 +23,25 b" AdminGroupsListViewController.$inject = ['$state', 'groupsResource'];"
23 23 function AdminGroupsListViewController($state, groupsResource) {
24 24 console.debug('AdminGroupsListViewController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {groups: true};
28
29 vm.groups = groupsResource.query({}, function (data) {
30 vm.loading = {groups: false};
31 vm.activeUsers = _.reduce(vm.groups, function(memo, val){
32 if (val.status == 1){
33 return memo + 1;
34 }
35 return memo;
36 }, 0);
37 console.log(vm.groups);
38 });
26 this.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {groups: true};
39 29
30 vm.groups = groupsResource.query({}, function (data) {
31 vm.loading = {groups: false};
32 vm.activeUsers = _.reduce(vm.groups, function (memo, val) {
33 if (val.status == 1) {
34 return memo + 1;
35 }
36 return memo;
37 }, 0);
38 console.log(vm.groups);
39 });
40 }
40 41
41 42 vm.removeGroup = function (group) {
42 43 groupsResource.remove({groupId: group.id}, function (data, responseHeaders) {
43 console.log('x',data, responseHeaders());
44 console.log('x', data, responseHeaders());
44 45 if (data) {
45 46 var index = vm.groups.indexOf(group);
46 47 if (index !== -1) {
@@ -22,14 +22,18 b" AdminPartitionsViewController.$inject = ['sectionViewResource'];"
22 22
23 23 function AdminPartitionsViewController(sectionViewResource) {
24 24 var vm = this;
25 vm.permanentPartitions = [];
26 vm.dailyPartitions = [];
27 vm.loading = {partitions: true};
28 vm.dailyChecked = false;
29 vm.permChecked = false;
30 vm.dailyConfirm = '';
31 vm.permConfirm = '';
25 this.$onInit = function () {
26 vm.permanentPartitions = [];
27 vm.dailyPartitions = [];
28 vm.loading = {partitions: true};
29 vm.dailyChecked = false;
30 vm.permChecked = false;
31 vm.dailyConfirm = '';
32 vm.permConfirm = '';
32 33
34 sectionViewResource.get({section: 'admin_section', view: 'partitions'},
35 vm.loadPartitions);
36 }
33 37
34 38 vm.loadPartitions = function (data) {
35 39 var permanentPartitions = vm.transformPartitionList(
@@ -43,17 +47,15 b' function AdminPartitionsViewController(sectionViewResource) {'
43 47
44 48 vm.setCheckedList = function (scope) {
45 49 var toTest = null;
46 if (scope === 'dailyPartitions'){
50 if (scope === 'dailyPartitions') {
47 51 toTest = 'dailyChecked';
48 }
49 else{
52 } else {
50 53 toTest = 'permChecked';
51 54 }
52 55
53 56 if (vm[toTest]) {
54 57 var val = true;
55 }
56 else {
58 } else {
57 59 var val = false;
58 60 }
59 61 console.log('scope', scope);
@@ -90,9 +92,6 b' function AdminPartitionsViewController(sectionViewResource) {'
90 92 return outputList;
91 93 };
92 94
93 sectionViewResource.get({section:'admin_section', view: 'partitions'},
94 vm.loadPartitions);
95
96 95 vm.partitionsDelete = function (partitionType) {
97 96 var es_indices = [];
98 97 var pg_indices = [];
@@ -111,8 +110,10 b' function AdminPartitionsViewController(sectionViewResource) {'
111 110 console.log(es_indices, pg_indices);
112 111
113 112 vm.loading = {partitions: true};
114 sectionViewResource.save({section:'admin_section',
115 view: 'partitions_remove'}, {
113 sectionViewResource.save({
114 section: 'admin_section',
115 view: 'partitions_remove'
116 }, {
116 117 es_indices: es_indices,
117 118 pg_indices: pg_indices,
118 119 confirm: 'CONFIRM'
@@ -22,22 +22,24 b" AdminSystemViewController.$inject = ['sectionViewResource'];"
22 22
23 23 function AdminSystemViewController(sectionViewResource) {
24 24 var vm = this;
25 vm.tables = [];
26 vm.loading = {system: true};
27 sectionViewResource.get({
28 section: 'admin_section',
29 view: 'system'
30 }, null, function (data) {
31 vm.DBtables = data.db_tables;
32 vm.ESIndices = data.es_indices;
33 vm.queueStats = data.queue_stats;
34 vm.systemLoad = data.system_load;
35 vm.packages = data.packages;
36 vm.processInfo = data.process_info;
37 vm.disks = data.disks;
38 vm.memory = data.memory;
39 vm.selfInfo = data.self_info;
25 this.$onInit = function () {
26 vm.tables = [];
27 vm.loading = {system: true};
40 28
41 vm.loading.system = false;
42 });
29 sectionViewResource.get({
30 section: 'admin_section',
31 view: 'system'
32 }, null, function (data) {
33 vm.DBtables = data.db_tables;
34 vm.ESIndices = data.es_indices;
35 vm.queueStats = data.queue_stats;
36 vm.systemLoad = data.system_load;
37 vm.packages = data.packages;
38 vm.processInfo = data.process_info;
39 vm.disks = data.disks;
40 vm.memory = data.memory;
41 vm.selfInfo = data.self_info;
42 vm.loading.system = false;
43 });
44 }
43 45 };
@@ -23,55 +23,56 b" AdminUsersCreateViewController.$inject = ['$state', 'usersResource', 'usersPrope"
23 23 function AdminUsersCreateViewController($state, usersResource, usersPropertyResource, sectionViewResource, AeConfig) {
24 24 console.debug('AdminUsersCreateViewController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {user: false};
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {user: false};
28 29
29 30
30 if (typeof $state.params.userId !== 'undefined') {
31 vm.loading.user = true;
32 var userId = $state.params.userId;
33 vm.user = usersResource.get({userId: userId}, function (data) {
34 vm.loading.user = false;
35 // cast to true for angular checkbox
36 if (vm.user.status === 1) {
37 vm.user.status = true;
38 }
39 });
31 if (typeof $state.params.userId !== 'undefined') {
32 vm.loading.user = true;
33 var userId = $state.params.userId;
34 vm.user = usersResource.get({userId: userId}, function (data) {
35 vm.loading.user = false;
36 // cast to true for angular checkbox
37 if (vm.user.status === 1) {
38 vm.user.status = true;
39 }
40 });
40 41
41 vm.resource_permissions = usersPropertyResource.query(
42 {userId: userId, key: 'resource_permissions'}, function (data) {
43 vm.loading.resource_permissions = false;
44 var tmpObj = {
45 'user': {
46 'application': {},
47 'dashboard': {}
48 },
49 'group': {
50 'application': {},
51 'dashboard': {}
52 }
53 };
54 _.each(data, function (item) {
55 console.log(item);
56 var section = tmpObj[item.type][item.resource_type];
57 if (typeof section[item.resource_id] == 'undefined'){
58 section[item.resource_id] = {
59 self:item,
60 permissions: []
42 vm.resource_permissions = usersPropertyResource.query(
43 {userId: userId, key: 'resource_permissions'}, function (data) {
44 vm.loading.resource_permissions = false;
45 var tmpObj = {
46 'user': {
47 'application': {},
48 'dashboard': {}
49 },
50 'group': {
51 'application': {},
52 'dashboard': {}
61 53 }
62 }
63 section[item.resource_id].permissions.push(item.perm_name);
54 };
55 _.each(data, function (item) {
56 console.log(item);
57 var section = tmpObj[item.type][item.resource_type];
58 if (typeof section[item.resource_id] == 'undefined') {
59 section[item.resource_id] = {
60 self: item,
61 permissions: []
62 }
63 }
64 section[item.resource_id].permissions.push(item.perm_name);
64 65
66 });
67 console.log(tmpObj)
68 vm.resourcePermissions = tmpObj;
65 69 });
66 console.log(tmpObj)
67 vm.resourcePermissions = tmpObj;
68 });
69 70
70 }
71 else {
72 var userId = null;
73 vm.user = {
74 status: true
71 } else {
72 var userId = null;
73 vm.user = {
74 status: true
75 }
75 76 }
76 77 }
77 78
@@ -23,19 +23,20 b" AdminUserListViewController.$inject = ['usersResource'];"
23 23 function AdminUserListViewController(usersResource) {
24 24 console.debug('AdminUsersController');
25 25 var vm = this;
26 vm.loading = {users: true};
27
28 vm.users = usersResource.query({}, function (data) {
29 vm.loading = {users: false};
30 vm.activeUsers = _.reduce(vm.users, function(memo, val){
31 if (val.status == 1){
32 return memo + 1;
33 }
34 return memo;
35 }, 0);
36 console.log(vm.users);
37 });
26 vm.$onInit = function () {
27 vm.loading = {users: true};
38 28
29 vm.users = usersResource.query({}, function (data) {
30 vm.loading = {users: false};
31 vm.activeUsers = _.reduce(vm.users, function (memo, val) {
32 if (val.status == 1) {
33 return memo + 1;
34 }
35 return memo;
36 }, 0);
37 console.log(vm.users);
38 });
39 }
39 40
40 41 vm.removeUser = function (user) {
41 42 usersResource.remove({userId: user.id}, function (data, responseHeaders) {
@@ -21,7 +21,10 b" angular.module('appenlight.components.adminView', [])"
21 21 AdminViewController.$inject = ['$state', 'AeConfig'];
22 22
23 23 function AdminViewController($state, AeConfig) {
24 this.$state = $state;
25 this.AeConfig = AeConfig;
26 console.info('AdminViewController');
24 this.$onInit = function () {
25 this.$state = $state;
26 this.AeConfig = AeConfig;
27 console.info('AdminViewController');
28 }
29
27 30 }
@@ -23,9 +23,11 b" IntegrationsListViewController.$inject = ['$state', 'applicationsResource'];"
23 23 function IntegrationsListViewController($state, applicationsResource) {
24 24 console.debug('IntegrationsListController');
25 25 var vm = this;
26 vm.loading = {application: true};
27 vm.resource = applicationsResource.get({resourceId: $state.params.resourceId}, function (data) {
28 vm.loading.application = false;
29 $state.current.data.resource = vm.resource;
30 });
26 vm.$onInit = function () {
27 vm.loading = {application: true};
28 vm.resource = applicationsResource.get({resourceId: $state.params.resourceId}, function (data) {
29 vm.loading.application = false;
30 $state.current.data.resource = vm.resource;
31 });
32 }
31 33 }
@@ -23,9 +23,11 b" ApplicationsListViewController.$inject = ['$state', 'applicationsResource'];"
23 23 function ApplicationsListViewController($state, applicationsResource) {
24 24 console.debug('ApplicationsListController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {applications: true};
28 vm.applications = applicationsResource.query(null, function(){
29 vm.loading.applications = false;
30 });
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {applications: true};
29 vm.applications = applicationsResource.query(null, function () {
30 vm.loading.applications = false;
31 });
32 }
31 33 }
@@ -18,23 +18,25 b" angular.module('appenlight.components.applicationsPurgeLogsView', [])"
18 18 controller: applicationsPurgeLogsViewController
19 19 });
20 20
21 applicationsPurgeLogsViewController.$inject = ['$state' ,'applicationsResource', 'sectionViewResource', 'logsNoIdResource'];
21 applicationsPurgeLogsViewController.$inject = ['$state', 'applicationsResource', 'sectionViewResource', 'logsNoIdResource'];
22 22
23 23 function applicationsPurgeLogsViewController($state, applicationsResource, sectionViewResource, logsNoIdResource) {
24 24 console.debug('applicationsPurgeLogsViewController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {applications: true};
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {applications: true};
28 29
29 vm.namespace = null;
30 vm.selectedResource = null;
31 vm.commonNamespaces = [];
30 vm.namespace = null;
31 vm.selectedResource = null;
32 vm.commonNamespaces = [];
32 33
33 vm.applications = applicationsResource.query({'type':'update_reports'}, function () {
34 vm.loading.applications = false;
35 vm.selectedResource = vm.applications[0].resource_id;
36 vm.getCommonKeys();
37 });
34 vm.applications = applicationsResource.query({'type': 'update_reports'}, function () {
35 vm.loading.applications = false;
36 vm.selectedResource = vm.applications[0].resource_id;
37 vm.getCommonKeys();
38 });
39 }
38 40
39 41 /**
40 42 * Fetches most commonly used tags in logs
@@ -51,8 +53,10 b' function applicationsPurgeLogsViewController($state, applicationsResource, secti'
51 53
52 54 vm.purgeLogs = function () {
53 55 vm.loading.applications = true;
54 logsNoIdResource.delete({resource:vm.selectedResource,
55 namespace: vm.namespace}, function(){
56 logsNoIdResource.delete({
57 resource: vm.selectedResource,
58 namespace: vm.namespace
59 }, function () {
56 60 vm.loading.applications = false;
57 61 });
58 62 }
@@ -24,41 +24,41 b' function applicationsUpdateViewController($state, applicationsNoIdResource, appl'
24 24 'use strict';
25 25 console.debug('applicationsUpdateView');
26 26 var vm = this;
27 vm.AeConfig = AeConfig;
28 vm.$state = $state;
29 vm.loading = {application: false};
27 vm.$onInit = function () {
28 vm.AeConfig = AeConfig;
29 vm.$state = $state;
30 vm.loading = {application: false};
30 31
31 vm.groupingOptions = [
32 ['url_type', 'Error Type + location'],
33 ['url_traceback', 'Traceback + location'],
34 ['traceback_server', 'Traceback + Server'],
35 ];
36 var resourceId = $state.params.resourceId;
37 var options = {};
38 vm.momentJs = moment;
39 vm.formTransferModel = {password:''};
32 vm.groupingOptions = [
33 ['url_type', 'Error Type + location'],
34 ['url_traceback', 'Traceback + location'],
35 ['traceback_server', 'Traceback + Server'],
36 ];
37 var resourceId = $state.params.resourceId;
38 var options = {};
39 vm.momentJs = moment;
40 vm.formTransferModel = {password: ''};
40 41
41 // set initial data
42 // set initial data
42 43
43 if (resourceId === 'new') {
44 vm.resource = {
45 resource_id: null,
46 slow_report_threshold: 10,
47 error_report_threshold: 10,
48 allow_permanent_storage: true,
49 default_grouping: vm.groupingOptions[1][0]
50 };
51 }
52 else {
53 vm.loading.application = true;
54 vm.resource = applicationsResource.get({
55 'resourceId': resourceId
56 }, function (data) {
57 vm.loading.application = false;
58 });
44 if (resourceId === 'new') {
45 vm.resource = {
46 resource_id: null,
47 slow_report_threshold: 10,
48 error_report_threshold: 10,
49 allow_permanent_storage: true,
50 default_grouping: vm.groupingOptions[1][0]
51 };
52 } else {
53 vm.loading.application = true;
54 vm.resource = applicationsResource.get({
55 'resourceId': resourceId
56 }, function (data) {
57 vm.loading.application = false;
58 });
59 }
59 60 }
60 61
61
62 62 vm.updateBasicForm = function () {
63 63 vm.loading.application = true;
64 64 if (vm.resource.resource_id === null) {
@@ -23,15 +23,16 b" EventBrowserController.$inject = ['eventsNoIdResource', 'eventsResource'];"
23 23 function EventBrowserController(eventsNoIdResource, eventsResource) {
24 24 console.info('EventBrowserController');
25 25 var vm = this;
26 vm.$onInit = function () {
26 27
27 vm.loading = {events: true};
28
29 vm.events = eventsNoIdResource.query(
30 {key: 'events'},
31 function (data) {
32 vm.loading.events = false;
33 });
28 vm.loading = {events: true};
34 29
30 vm.events = eventsNoIdResource.query(
31 {key: 'events'},
32 function (data) {
33 vm.loading.events = false;
34 });
35 }
35 36
36 37 vm.closeEvent = function (event) {
37 38 console.log('closeEvent');
This diff has been collapsed as it changes many lines, (664 lines changed) Show them Hide them
@@ -22,359 +22,376 b" IndexDashboardController.$inject = ['$rootScope', '$scope', '$location','$cookie"
22 22
23 23 function IndexDashboardController($rootScope, $scope, $location, $cookies, $interval, stateHolder, applicationsPropertyResource, AeConfig) {
24 24 var vm = this;
25 stateHolder.section = 'dashboard';
26 vm.timeOptions = {};
27 var allowed = ['1h', '4h', '12h', '24h', '1w', '2w', '1M'];
28 _.each(allowed, function (key) {
29 if (allowed.indexOf(key) !== -1) {
30 vm.timeOptions[key] = AeConfig.timeOptions[key];
31 }
32 });
33 vm.stateHolder = stateHolder;
34 vm.urls = AeConfig.urls;
35 vm.applications = stateHolder.AeUser.applications_map;
36 vm.show_dashboard = false;
37 vm.resource = null;
38 vm.graphType = {selected: null};
39 vm.timeSpan = vm.timeOptions['1h'];
40 vm.trendingReports = [];
41 vm.exceptions = 0;
42 vm.satisfyingRequests = 0;
43 vm.toleratedRequests = 0;
44 vm.frustratingRequests = 0;
45 vm.uptimeStats = 0;
46 vm.apdexStats = [];
47 vm.seriesRequestsData = [];
48 vm.seriesMetricsData = [];
49 vm.seriesSlowData = [];
50 vm.slowCalls = [];
51 vm.slowURIS = [];
52
53 vm.reportChartConfig = {
54 data: {
55 json: [],
56 xFormat: '%Y-%m-%dT%H:%M:%S'
57 },
58 color: {
59 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
60 },
61 axis: {
62 x: {
63 type: 'timeseries',
64 tick: {
65 culling: {
66 max: 6 // the number of tick texts will be adjusted to less than this value
67 },
68 format: '%Y-%m-%d %H:%M'
25 vm.$onInit = function () {
26 stateHolder.section = 'dashboard';
27 vm.timeOptions = {};
28 var allowed = ['1h', '4h', '12h', '24h', '1w', '2w', '1M'];
29 _.each(allowed, function (key) {
30 if (allowed.indexOf(key) !== -1) {
31 vm.timeOptions[key] = AeConfig.timeOptions[key];
32 }
33 });
34 vm.stateHolder = stateHolder;
35 vm.urls = AeConfig.urls;
36 vm.applications = stateHolder.AeUser.applications_map;
37 vm.show_dashboard = false;
38 vm.resource = null;
39 vm.graphType = {selected: null};
40 vm.timeSpan = vm.timeOptions['1h'];
41 vm.trendingReports = [];
42 vm.exceptions = 0;
43 vm.satisfyingRequests = 0;
44 vm.toleratedRequests = 0;
45 vm.frustratingRequests = 0;
46 vm.uptimeStats = 0;
47 vm.apdexStats = [];
48 vm.seriesRequestsData = [];
49 vm.seriesMetricsData = [];
50 vm.seriesSlowData = [];
51 vm.slowCalls = [];
52 vm.slowURIS = [];
53
54 vm.reportChartConfig = {
55 data: {
56 json: [],
57 xFormat: '%Y-%m-%dT%H:%M:%S'
58 },
59 color: {
60 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
61 },
62 axis: {
63 x: {
64 type: 'timeseries',
65 tick: {
66 culling: {
67 max: 6 // the number of tick texts will be adjusted to less than this value
68 },
69 format: '%Y-%m-%d %H:%M'
70 }
71 },
72 y: {
73 tick: {
74 count: 5,
75 format: d3.format('.2s')
76 }
69 77 }
70 78 },
71 y: {
72 tick: {
73 count: 5,
74 format: d3.format('.2s')
79 subchart: {
80 show: true,
81 size: {
82 height: 20
75 83 }
76 }
77 },
78 subchart: {
79 show: true,
84 },
80 85 size: {
81 height: 20
82 }
83 },
84 size: {
85 height: 250
86 },
87 zoom: {
88 rescale: true
89 },
90 grid: {
91 x: {
92 show: true
93 },
94 y: {
95 show: true
96 }
97 },
98 tooltip: {
99 format: {
100 title: function (d) {
101 return '' + d;
86 height: 250
87 },
88 zoom: {
89 rescale: true
90 },
91 grid: {
92 x: {
93 show: true
102 94 },
103 value: function (v) {
104 return v
95 y: {
96 show: true
105 97 }
106 }
107 }
108 };
109 vm.reportChartData = {};
110
111 vm.reportSlowChartConfig = {
112 data: {
113 json: [],
114 xFormat: '%Y-%m-%dT%H:%M:%S'
115 },
116 color: {
117 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
118 },
119 axis: {
120 x: {
121 type: 'timeseries',
122 tick: {
123 culling: {
124 max: 6 // the number of tick texts will be adjusted to less than this value
98 },
99 tooltip: {
100 format: {
101 title: function (d) {
102 return '' + d;
125 103 },
126 format: '%Y-%m-%d %H:%M'
104 value: function (v) {
105 return v
106 }
127 107 }
108 }
109 };
110 vm.reportChartData = {};
111
112 vm.reportSlowChartConfig = {
113 data: {
114 json: [],
115 xFormat: '%Y-%m-%dT%H:%M:%S'
128 116 },
129 y: {
130 tick: {
131 count: 5,
132 format: d3.format('.2s')
117 color: {
118 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
119 },
120 axis: {
121 x: {
122 type: 'timeseries',
123 tick: {
124 culling: {
125 max: 6 // the number of tick texts will be adjusted to less than this value
126 },
127 format: '%Y-%m-%d %H:%M'
128 }
129 },
130 y: {
131 tick: {
132 count: 5,
133 format: d3.format('.2s')
134 }
133 135 }
134 }
135 },
136 subchart: {
137 show: true,
136 },
137 subchart: {
138 show: true,
139 size: {
140 height: 20
141 }
142 },
138 143 size: {
139 height: 20
140 }
141 },
142 size: {
143 height: 250
144 },
145 zoom: {
146 rescale: true
147 },
148 grid: {
149 x: {
150 show: true
151 },
152 y: {
153 show: true
154 }
155 },
156 tooltip: {
157 format: {
158 title: function (d) {
159 return '' + d;
144 height: 250
145 },
146 zoom: {
147 rescale: true
148 },
149 grid: {
150 x: {
151 show: true
160 152 },
161 value: function (v) {
162 return v
153 y: {
154 show: true
163 155 }
164 }
165 }
166 };
167 vm.reportSlowChartData = {};
168
169 vm.metricsChartConfig = {
170 data: {
171 json: [],
172 xFormat: '%Y-%m-%dT%H:%M:%S',
173 keys: {
174 x: 'x',
175 value: ["main", "sql", "nosql", "tmpl", "remote", "custom"]
176 },
177 names: {
178 main: 'View/Application logic',
179 sql: 'Relational database queries',
180 nosql: 'NoSql datastore calls',
181 tmpl: 'Template rendering',
182 custom: 'Custom timed calls',
183 remote: 'Requests to remote resources'
184 },
185 type: 'area',
186 groups: [["main", "sql", "nosql", "remote", "custom", "tmpl"]],
187 order: null
188 },
189 color: {
190 pattern: ['#6baed6', '#c7e9c0', '#fd8d3c', '#d6616b', '#ffcc00', '#c6dbef']
191 },
192 axis: {
193 x: {
194 type: 'timeseries',
195 tick: {
196 culling: {
197 max: 6 // the number of tick texts will be adjusted to less than this value
156 },
157 tooltip: {
158 format: {
159 title: function (d) {
160 return '' + d;
198 161 },
199 format: '%Y-%m-%d %H:%M'
162 value: function (v) {
163 return v
164 }
165 }
166 }
167 };
168 vm.reportSlowChartData = {};
169
170 vm.metricsChartConfig = {
171 data: {
172 json: [],
173 xFormat: '%Y-%m-%dT%H:%M:%S',
174 keys: {
175 x: 'x',
176 value: ["main", "sql", "nosql", "tmpl", "remote", "custom"]
177 },
178 names: {
179 main: 'View/Application logic',
180 sql: 'Relational database queries',
181 nosql: 'NoSql datastore calls',
182 tmpl: 'Template rendering',
183 custom: 'Custom timed calls',
184 remote: 'Requests to remote resources'
185 },
186 type: 'area',
187 groups: [["main", "sql", "nosql", "remote", "custom", "tmpl"]],
188 order: null
189 },
190 color: {
191 pattern: ['#6baed6', '#c7e9c0', '#fd8d3c', '#d6616b', '#ffcc00', '#c6dbef']
192 },
193 axis: {
194 x: {
195 type: 'timeseries',
196 tick: {
197 culling: {
198 max: 6 // the number of tick texts will be adjusted to less than this value
199 },
200 format: '%Y-%m-%d %H:%M'
201 }
202 },
203 y: {
204 tick: {
205 count: 5,
206 format: d3.format('.2f')
207 }
200 208 }
201 209 },
202 y: {
203 tick: {
204 count: 5,
205 format: d3.format('.2f')
210 point: {
211 show: false
212 },
213 subchart: {
214 show: true,
215 size: {
216 height: 20
206 217 }
207 }
208 },
209 point: {
210 show: false
211 },
212 subchart: {
213 show: true,
218 },
214 219 size: {
215 height: 20
216 }
217 },
218 size: {
219 height: 350
220 },
221 zoom: {
222 rescale: true
223 },
224 grid: {
225 x: {
226 show: true
227 },
228 y: {
229 show: true
230 }
231 },
232 tooltip: {
233 format: {
234 title: function (d) {
235 return '' + d;
220 height: 350
221 },
222 zoom: {
223 rescale: true
224 },
225 grid: {
226 x: {
227 show: true
236 228 },
237 value: function (v) {
238 return v
229 y: {
230 show: true
239 231 }
240 }
241 }
242 };
243 vm.metricsChartData = {};
244
245 vm.responseChartConfig = {
246 data: {
247 json: [],
248 xFormat: '%Y-%m-%dT%H:%M:%S'
249 },
250 color: {
251 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
252 },
253 axis: {
254 x: {
255 type: 'timeseries',
256 tick: {
257 culling: {
258 max: 6 // the number of tick texts will be adjusted to less than this value
232 },
233 tooltip: {
234 format: {
235 title: function (d) {
236 return '' + d;
259 237 },
260 format: '%Y-%m-%d %H:%M'
238 value: function (v) {
239 return v
240 }
261 241 }
242 }
243 };
244 vm.metricsChartData = {};
245
246 vm.responseChartConfig = {
247 data: {
248 json: [],
249 xFormat: '%Y-%m-%dT%H:%M:%S'
262 250 },
263 y: {
264 tick: {
265 count: 5,
266 format: d3.format('.2f')
251 color: {
252 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
253 },
254 axis: {
255 x: {
256 type: 'timeseries',
257 tick: {
258 culling: {
259 max: 6 // the number of tick texts will be adjusted to less than this value
260 },
261 format: '%Y-%m-%d %H:%M'
262 }
263 },
264 y: {
265 tick: {
266 count: 5,
267 format: d3.format('.2f')
268 }
267 269 }
268 }
269 },
270 point: {
271 show: false
272 },
273 subchart: {
274 show: true,
270 },
271 point: {
272 show: false
273 },
274 subchart: {
275 show: true,
276 size: {
277 height: 20
278 }
279 },
275 280 size: {
276 height: 20
277 }
278 },
279 size: {
280 height: 350
281 },
282 zoom: {
283 rescale: true
284 },
285 grid: {
286 x: {
287 show: true
288 },
289 y: {
290 show: true
291 }
292 },
293 tooltip: {
294 format: {
295 title: function (d) {
296 return '' + d;
281 height: 350
282 },
283 zoom: {
284 rescale: true
285 },
286 grid: {
287 x: {
288 show: true
297 289 },
298 value: function (v) {
299 return v
290 y: {
291 show: true
300 292 }
301 }
302 }
303 };
304 vm.responseChartData = {};
305
306 vm.requestsChartConfig = {
307 data: {
308 json: [],
309 xFormat: '%Y-%m-%dT%H:%M:%S'
310 },
311 color: {
312 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
313 },
314 axis: {
315 x: {
316 type: 'timeseries',
317 tick: {
318 culling: {
319 max: 6 // the number of tick texts will be adjusted to less than this value
293 },
294 tooltip: {
295 format: {
296 title: function (d) {
297 return '' + d;
320 298 },
321 format: '%Y-%m-%d %H:%M'
299 value: function (v) {
300 return v
301 }
322 302 }
303 }
304 };
305 vm.responseChartData = {};
306
307 vm.requestsChartConfig = {
308 data: {
309 json: [],
310 xFormat: '%Y-%m-%dT%H:%M:%S'
311 },
312 color: {
313 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
323 314 },
324 y: {
325 tick: {
326 count: 5,
327 format: d3.format('.2f')
315 axis: {
316 x: {
317 type: 'timeseries',
318 tick: {
319 culling: {
320 max: 6 // the number of tick texts will be adjusted to less than this value
321 },
322 format: '%Y-%m-%d %H:%M'
323 }
324 },
325 y: {
326 tick: {
327 count: 5,
328 format: d3.format('.2f')
329 }
328 330 }
329 }
330 },
331 point: {
332 show: false
333 },
334 subchart: {
335 show: true,
331 },
332 point: {
333 show: false
334 },
335 subchart: {
336 show: true,
337 size: {
338 height: 20
339 }
340 },
336 341 size: {
337 height: 20
338 }
339 },
340 size: {
341 height: 350
342 },
343 zoom: {
344 rescale: true
345 },
346 grid: {
347 x: {
348 show: true
349 },
350 y: {
351 show: true
352 }
353 },
354 tooltip: {
355 format: {
356 title: function (d) {
357 return '' + d;
342 height: 350
343 },
344 zoom: {
345 rescale: true
346 },
347 grid: {
348 x: {
349 show: true
358 350 },
359 value: function (v) {
360 return v
351 y: {
352 show: true
361 353 }
354 },
355 tooltip: {
356 format: {
357 title: function (d) {
358 return '' + d;
359 },
360 value: function (v) {
361 return v
362 }
363 }
364 }
365 };
366 vm.requestsChartData = {};
367
368 vm.loading = {
369 'apdex': true,
370 'reports': true,
371 'graphs': true,
372 'slowCalls': true,
373 'slowURIS': true,
374 'requestsBreakdown': true,
375 'series': true
376 };
377 vm.stream = {paused: false, filtered: false, messages: [], reports: []};
378
379 vm.intervalId = $interval(function () {
380 if (_.contains(['30m', "1h"], vm.timeSpan.key)) {
381 // don't do anything if window is unfocused
382 if(document.hidden === true){
383 return ;
384 }
385 vm.refreshData();
362 386 }
387 }, 60000);
388
389 if (stateHolder.AeUser.applications.length){
390 vm.show_dashboard = true;
391 vm.determineStartState();
363 392 }
364 };
365 vm.requestsChartData = {};
366
367 vm.loading = {
368 'apdex': true,
369 'reports': true,
370 'graphs': true,
371 'slowCalls': true,
372 'slowURIS': true,
373 'requestsBreakdown': true,
374 'series': true
375 };
376 vm.stream = {paused: false, filtered: false, messages: [], reports: []};
377 393
394 }
378 395 $rootScope.$on('channelstream-message.front_dashboard.new_topic', function(event, message){
379 396 var ws_report = message.message.report;
380 397 if (ws_report.http_status != 500) {
@@ -463,16 +480,6 b' function IndexDashboardController($rootScope, $scope, $location, $cookies, $inte'
463 480 vm.refreshData();
464 481 };
465 482
466 vm.intervalId = $interval(function () {
467 if (_.contains(['30m', "1h"], vm.timeSpan.key)) {
468 // don't do anything if window is unfocused
469 if(document.hidden === true){
470 return ;
471 }
472 vm.refreshData();
473 }
474 }, 60000);
475
476 483 vm.fetchApdexStats = function () {
477 484 vm.loading.apdex = true;
478 485 vm.apdexStats = applicationsPropertyResource.query({
@@ -653,9 +660,4 b' function IndexDashboardController($rootScope, $scope, $location, $cookies, $inte'
653 660 $scope.$on('$destroy',function(){
654 661 $interval.cancel(vm.intervalId);
655 662 });
656
657 if (stateHolder.AeUser.applications.length){
658 vm.show_dashboard = true;
659 vm.determineStartState();
660 }
661 663 }
@@ -18,17 +18,18 b" ApplicationsIntegrationsEditViewController.$inject = ['$state', 'integrationReso"
18 18 function ApplicationsIntegrationsEditViewController($state, integrationResource) {
19 19 console.debug('IntegrationController');
20 20 var vm = this;
21 vm.$state = $state;
22 vm.loading = {integration: true};
23 vm.config = integrationResource.get(
24 {
25 integration: $state.params.integration,
26 action: 'setup',
27 resourceId: $state.params.resourceId
28 }, function (data) {
29 vm.loading.integration = false;
30 });
31
21 vm.$onInit = function () {
22 vm.$state = $state;
23 vm.loading = {integration: true};
24 vm.config = integrationResource.get(
25 {
26 integration: $state.params.integration,
27 action: 'setup',
28 resourceId: $state.params.resourceId
29 }, function (data) {
30 vm.loading.integration = false;
31 });
32 }
32 33 vm.configureIntegration = function () {
33 34 console.info('configureIntegration');
34 35 vm.loading.integration = true;
@@ -22,142 +22,156 b" LogsBrowserController.$inject = ['$location', 'stateHolder', 'typeAheadTagHelper"
22 22
23 23 function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsNoIdResource, sectionViewResource) {
24 24 var vm = this;
25 vm.logEventsChartConfig = {
26 data: {
27 json: [],
28 xFormat: '%Y-%m-%dT%H:%M:%S'
29 },
30 color: {
31 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
32 },
33 axis: {
34 x: {
35 type: 'timeseries',
36 tick: {
37 format: '%Y-%m-%d'
25 vm.$onInit = function () {
26 vm.logEventsChartConfig = {
27 data: {
28 json: [],
29 xFormat: '%Y-%m-%dT%H:%M:%S'
30 },
31 color: {
32 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
33 },
34 axis: {
35 x: {
36 type: 'timeseries',
37 tick: {
38 format: '%Y-%m-%d'
39 }
40 },
41 y: {
42 tick: {
43 count: 5,
44 format: d3.format('.2s')
45 }
38 46 }
39 47 },
40 y: {
41 tick: {
42 count: 5,
43 format: d3.format('.2s')
48 subchart: {
49 show: true,
50 size: {
51 height: 20
44 52 }
45 }
46 },
47 subchart: {
48 show: true,
53 },
49 54 size: {
50 height: 20
51 }
52 },
53 size: {
54 height: 250
55 },
56 zoom: {
57 rescale: true
58 },
59 grid: {
60 x: {
61 show: true
55 height: 250
62 56 },
63 y: {
64 show: true
65 }
66 },
67 tooltip: {
68 format: {
69 title: function (d) {
70 return '' + d;
57 zoom: {
58 rescale: true
59 },
60 grid: {
61 x: {
62 show: true
71 63 },
72 value: function (v) {
73 return v
64 y: {
65 show: true
66 }
67 },
68 tooltip: {
69 format: {
70 title: function (d) {
71 return '' + d;
72 },
73 value: function (v) {
74 return v
75 }
74 76 }
75 77 }
76 }
77 };
78 vm.logEventsChartData = {};
79 stateHolder.section = 'logs';
80 vm.today = function () {
81 vm.pickerDate = new Date();
82 };
83 vm.today();
78 };
79 vm.logEventsChartData = {};
80 stateHolder.section = 'logs';
81 vm.today = function () {
82 vm.pickerDate = new Date();
83 };
84 vm.today();
84 85
85 vm.applications = stateHolder.AeUser.applications_map;
86 vm.logsPage = [];
87 vm.itemCount = 0;
88 vm.itemsPerPage = 250;
89 vm.page = 1;
90 vm.$location = $location;
91 vm.isLoading = {
92 logs: true,
93 series: true
94 };
95 vm.filterTypeAheadOptions = [
96 {
97 type: 'message',
98 text: 'message:',
99 'description': 'Full-text search in your logs',
100 tag: 'Message',
101 example: 'message:text-im-looking-for'
102 },
103 {
104 type: 'namespace',
105 text: 'namespace:',
106 'description': 'Query logs from specific namespace',
107 tag: 'Namespace',
108 example: "namespace:module.foo"
109 },
110 {
111 type: 'resource',
112 text: 'resource:',
113 'description': 'Restrict resultset to application',
114 tag: 'Application',
115 example: "resource:ID"
116 },
117 {
118 type: 'request_id',
119 text: 'request_id:',
120 'description': 'Show logs with specific request id',
121 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
122 tag: 'Request ID'
123 },
124 {
125 type: 'level',
126 text: 'level:',
127 'description': 'Show entries with specific log level',
128 example: 'level:warning',
129 tag: 'Level'
130 },
131 {
132 type: 'server_name',
133 text: 'server_name:',
134 'description': 'Show entries tagged with this key/value pair',
135 example: 'server_name:hostname',
136 tag: 'Tag'
137 },
138 {
139 type: 'start_date',
140 text: 'start_date:',
141 'description': 'Show results newer than this date (press TAB for dropdown)',
142 example: 'start_date:2014-08-15T13:00',
143 tag: 'Start Date'
144 },
145 {
146 type: 'end_date',
147 text: 'end_date:',
148 'description': 'Show results older than this date (press TAB for dropdown)',
149 example: 'start_date:2014-08-15T23:59',
150 tag: 'End Date'
151 },
152 {type: 'level', value: 'debug', text: 'level:debug'},
153 {type: 'level', value: 'info', text: 'level:info'},
154 {type: 'level', value: 'warning', text: 'level:warning'},
155 {type: 'level', value: 'critical', text: 'level:critical'}
156 ];
157 vm.filterTypeAhead = null;
158 vm.showDatePicker = false;
159 vm.manualOpen = false;
160 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
86 vm.applications = stateHolder.AeUser.applications_map;
87 vm.logsPage = [];
88 vm.itemCount = 0;
89 vm.itemsPerPage = 250;
90 vm.page = 1;
91 vm.$location = $location;
92 vm.isLoading = {
93 logs: true,
94 series: true
95 };
96 vm.filterTypeAheadOptions = [
97 {
98 type: 'message',
99 text: 'message:',
100 'description': 'Full-text search in your logs',
101 tag: 'Message',
102 example: 'message:text-im-looking-for'
103 },
104 {
105 type: 'namespace',
106 text: 'namespace:',
107 'description': 'Query logs from specific namespace',
108 tag: 'Namespace',
109 example: "namespace:module.foo"
110 },
111 {
112 type: 'resource',
113 text: 'resource:',
114 'description': 'Restrict resultset to application',
115 tag: 'Application',
116 example: "resource:ID"
117 },
118 {
119 type: 'request_id',
120 text: 'request_id:',
121 'description': 'Show logs with specific request id',
122 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
123 tag: 'Request ID'
124 },
125 {
126 type: 'level',
127 text: 'level:',
128 'description': 'Show entries with specific log level',
129 example: 'level:warning',
130 tag: 'Level'
131 },
132 {
133 type: 'server_name',
134 text: 'server_name:',
135 'description': 'Show entries tagged with this key/value pair',
136 example: 'server_name:hostname',
137 tag: 'Tag'
138 },
139 {
140 type: 'start_date',
141 text: 'start_date:',
142 'description': 'Show results newer than this date (press TAB for dropdown)',
143 example: 'start_date:2014-08-15T13:00',
144 tag: 'Start Date'
145 },
146 {
147 type: 'end_date',
148 text: 'end_date:',
149 'description': 'Show results older than this date (press TAB for dropdown)',
150 example: 'start_date:2014-08-15T23:59',
151 tag: 'End Date'
152 },
153 {type: 'level', value: 'debug', text: 'level:debug'},
154 {type: 'level', value: 'info', text: 'level:info'},
155 {type: 'level', value: 'warning', text: 'level:warning'},
156 {type: 'level', value: 'critical', text: 'level:critical'}
157 ];
158 vm.filterTypeAhead = null;
159 vm.showDatePicker = false;
160 vm.manualOpen = false;
161 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
162
163 _.each(vm.applications, function (item) {
164 vm.filterTypeAheadOptions.push({
165 type: 'resource',
166 text: 'resource:' + item.resource_id + ':' + item.resource_name,
167 example: 'resource:' + item.resource_id,
168 'tag': item.resource_name,
169 'description': 'Restrict resultset to this application'
170 });
171 });
172 console.info('page load');
173 vm.refresh();
174 }
161 175 vm.removeSearchTag = function (tag) {
162 176 $location.search(tag.type, null);
163 177 vm.refresh();
@@ -172,17 +186,6 b' function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsN'
172 186 vm.refresh();
173 187 };
174 188
175
176 _.each(vm.applications, function (item) {
177 vm.filterTypeAheadOptions.push({
178 type: 'resource',
179 text: 'resource:' + item.resource_id + ':' + item.resource_name,
180 example: 'resource:' + item.resource_id,
181 'tag': item.resource_name,
182 'description': 'Restrict resultset to this application'
183 });
184 });
185
186 189 vm.typeAheadTag = function (event) {
187 190 var text = vm.filterTypeAhead;
188 191 if (_.isObject(vm.filterTypeAhead)) {
@@ -288,6 +291,5 b' function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsN'
288 291 vm.fetchLogs(params);
289 292 vm.fetchSeriesData(params);
290 293 };
291 console.info('page load');
292 vm.refresh();
294
293 295 }
@@ -24,78 +24,98 b" ReportViewController.$inject = ['$window', '$location', '$state', '$uibModal',"
24 24
25 25 function ReportViewController($window, $location, $state, $uibModal, $cookies, reportGroupPropertyResource, reportGroupResource, logsNoIdResource, stateHolder) {
26 26 var vm = this;
27 vm.window = $window;
28 vm.stateHolder = stateHolder;
29 vm.$state = $state;
30 vm.reportHistoryConfig = {
31 data: {
32 json: [],
33 xFormat: '%Y-%m-%dT%H:%M:%S'
34 },
35 color: {
36 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
37 },
38 axis: {
39 x: {
40 type: 'timeseries',
41 tick: {
42 format: '%Y-%m-%d'
27 vm.$onInit = function () {
28 vm.window = $window;
29 vm.stateHolder = stateHolder;
30 vm.$state = $state;
31 vm.reportHistoryConfig = {
32 data: {
33 json: [],
34 xFormat: '%Y-%m-%dT%H:%M:%S'
35 },
36 color: {
37 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
38 },
39 axis: {
40 x: {
41 type: 'timeseries',
42 tick: {
43 format: '%Y-%m-%d'
44 }
45 },
46 y: {
47 tick: {
48 count: 5,
49 format: d3.format('.2s')
50 }
43 51 }
44 52 },
45 y: {
46 tick: {
47 count: 5,
48 format: d3.format('.2s')
53 subchart: {
54 show: true,
55 size: {
56 height: 20
49 57 }
50 }
51 },
52 subchart: {
53 show: true,
58 },
54 59 size: {
55 height: 20
56 }
57 },
58 size: {
59 height: 250
60 },
61 zoom: {
62 rescale: true
63 },
64 grid: {
65 x: {
66 show: true
60 height: 250
67 61 },
68 y: {
69 show: true
70 }
71 },
72 tooltip: {
73 format: {
74 title: function (d) {
75 return '' + d;
62 zoom: {
63 rescale: true
64 },
65 grid: {
66 x: {
67 show: true
76 68 },
77 value: function (v) {
78 return v
69 y: {
70 show: true
71 }
72 },
73 tooltip: {
74 format: {
75 title: function (d) {
76 return '' + d;
77 },
78 value: function (v) {
79 return v
80 }
79 81 }
80 82 }
83 };
84 vm.mentionedPeople = [];
85 vm.reportHistoryData = {};
86 vm.textTraceback = true;
87 vm.rawTraceback = '';
88 vm.traceback = '';
89 vm.reportType = 'report';
90 vm.report = null;
91 vm.showLong = false;
92 vm.reportLogs = null;
93 vm.requestStats = null;
94 vm.comment = null;
95 vm.is_loading = {
96 report: true,
97 logs: true,
98 history: true
99 };
100
101 vm.tabs = {
102 slow_calls:false,
103 request_details:false,
104 logs:false,
105 comments:false,
106 affected_users:false
107 };
108 if ($cookies.selectedReportTab) {
109 vm.tabs[$cookies.selectedReportTab] = true;
110 }
111 else{
112 $cookies.selectedReportTab = 'request_details';
113 vm.tabs.request_details = true;
81 114 }
82 };
83 vm.mentionedPeople = [];
84 vm.reportHistoryData = {};
85 vm.textTraceback = true;
86 vm.rawTraceback = '';
87 vm.traceback = '';
88 vm.reportType = 'report';
89 vm.report = null;
90 vm.showLong = false;
91 vm.reportLogs = null;
92 vm.requestStats = null;
93 vm.comment = null;
94 vm.is_loading = {
95 report: true,
96 logs: true,
97 history: true
98 };
115
116 // load report
117 vm.fetchReport();
118 }
99 119
100 120 vm.searchMentionedPeople = function(term){
101 121 //vm.mentionedPeople = [];
@@ -114,7 +134,7 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
114 134 });
115 135
116 136 var result = _.filter(users, function(u){
117 return u.label.toLowerCase().indexOf(term) !== -1;
137 return u.label.toLowerCase().indexOf(term) !== -1;
118 138 });
119 139 vm.mentionedPeople = result;
120 140 });
@@ -131,21 +151,6 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
131 151 $location.search(tag, value);
132 152 };
133 153
134 vm.tabs = {
135 slow_calls:false,
136 request_details:false,
137 logs:false,
138 comments:false,
139 affected_users:false
140 };
141 if ($cookies.selectedReportTab) {
142 vm.tabs[$cookies.selectedReportTab] = true;
143 }
144 else{
145 $cookies.selectedReportTab = 'request_details';
146 vm.tabs.request_details = true;
147 }
148
149 154 vm.fetchLogs = function () {
150 155 if (!vm.report.request_id){
151 156 return
@@ -171,6 +176,7 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
171 176 };
172 177
173 178 vm.fetchReport = function () {
179 console.log(vm);
174 180 vm.is_loading.report = true;
175 181 reportGroupResource.get($state.params, function (data) {
176 182 vm.is_loading.report = false;
@@ -346,9 +352,4 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
346 352 });
347 353
348 354 };
349
350 // load report
351 vm.fetchReport();
352
353
354 355 }
@@ -22,133 +22,173 b" reportsBrowserViewController.$inject = ['$location', '$cookies',"
22 22 'stateHolder', 'typeAheadTagHelper', 'reportsResource'];
23 23
24 24 function reportsBrowserViewController($location, $cookies, stateHolder,
25 typeAheadTagHelper, reportsResource) {
25 typeAheadTagHelper, reportsResource) {
26 26 var vm = this;
27 vm.applications = stateHolder.AeUser.applications_map;
28 stateHolder.section = 'reports';
29 vm.today = function () {
30 vm.pickerDate = new Date();
31 };
32 vm.today();
33 vm.reportsPage = [];
34 vm.page = 1;
35 vm.itemCount = 0;
36 vm.itemsPerPage = 250;
37 typeAheadTagHelper.tags = [];
38 vm.searchParams = {tags: [], page: 1, type: 'report'};
39 vm.is_loading = false;
40 vm.filterTypeAheadOptions = [
41 {
42 type: 'error',
43 text: 'error:',
44 'description': 'Full-text search in your reports',
45 example: 'error:text-im-looking-for',
46 tag: 'Error'
47 },
48 {
49 type: 'view_name',
50 text: 'view_name:',
51 'description': 'Query reports occured in specific views',
52 example: "view_name:module.foo",
53 tag: 'View Name'
54 },
55 {
56 type: 'resource',
57 text: 'resource:',
58 'description': 'Restrict resultset to application',
59 example: "resource:ID",
60 tag: 'Application'
61 },
62 {
63 type: 'priority',
64 text: 'priority:',
65 'description': 'Show reports with specific priority',
66 example: 'priority:8',
67 tag: 'Priority'
68 },
69 {
70 type: 'min_occurences',
71 text: 'min_occurences:',
72 'description': 'Show reports from groups with at least X occurences',
73 example: 'min_occurences:25',
74 tag: 'Occurences'
75 },
76 {
77 type: 'url_path',
78 text: 'url_path:',
79 'description': 'Show reports from specific URL paths',
80 example: 'url_path:/foo/bar/baz',
81 tag: 'Url Path'
82 },
83 {
84 type: 'url_domain',
85 text: 'url_domain:',
86 'description': 'Show reports from specific domain',
87 example: 'url_domain:domain.com',
88 tag: 'Domain'
89 },
90 {
91 type: 'report_status',
92 text: 'report_status:',
93 'description': 'Show reports from groups with specific status',
94 example: 'report_status:never_reviewed',
95 tag: 'Status'
96 },
97 {
98 type: 'request_id',
99 text: 'request_id:',
100 'description': 'Show reports with specific request id',
101 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
102 tag: 'Request ID'
103 },
104 {
105 type: 'server_name',
106 text: 'server_name:',
107 'description': 'Show reports tagged with this key/value pair',
108 example: 'server_name:hostname',
109 tag: 'Tag'
110 },
111 {
112 type: 'http_status',
113 text: 'http_status:',
114 'description': 'Show reports with specific HTTP status code',
115 example: "http_status:",
116 tag: 'HTTP Status'
117 },
118 {
119 type: 'http_status',
120 text: 'http_status:500',
121 'description': 'Show reports with specific HTTP status code',
122 example: "http_status:500",
123 tag: 'HTTP Status'
124 },
125 {
126 type: 'http_status',
127 text: 'http_status:404',
128 'description': 'Include 404 reports in your search',
129 example: "http_status:404",
130 tag: 'HTTP Status'
131 },
132 {
133 type: 'start_date',
134 text: 'start_date:',
135 'description': 'Show reports newer than this date (press TAB for dropdown)',
136 example: 'start_date:2014-08-15T13:00',
137 tag: 'Start Date'
138 },
139 {
140 type: 'end_date',
141 text: 'end_date:',
142 'description': 'Show reports older than this date (press TAB for dropdown)',
143 example: 'start_date:2014-08-15T23:59',
144 tag: 'End Date'
27 vm.$onInit = function () {
28 vm.applications = stateHolder.AeUser.applications_map;
29 stateHolder.section = 'reports';
30 vm.today = function () {
31 vm.pickerDate = new Date();
32 };
33 vm.today();
34 vm.reportsPage = [];
35 vm.page = 1;
36 vm.itemCount = 0;
37 vm.itemsPerPage = 250;
38 typeAheadTagHelper.tags = [];
39 vm.searchParams = {tags: [], page: 1, type: 'report'};
40 vm.is_loading = false;
41 vm.filterTypeAheadOptions = [
42 {
43 type: 'error',
44 text: 'error:',
45 'description': 'Full-text search in your reports',
46 example: 'error:text-im-looking-for',
47 tag: 'Error'
48 },
49 {
50 type: 'view_name',
51 text: 'view_name:',
52 'description': 'Query reports occured in specific views',
53 example: "view_name:module.foo",
54 tag: 'View Name'
55 },
56 {
57 type: 'resource',
58 text: 'resource:',
59 'description': 'Restrict resultset to application',
60 example: "resource:ID",
61 tag: 'Application'
62 },
63 {
64 type: 'priority',
65 text: 'priority:',
66 'description': 'Show reports with specific priority',
67 example: 'priority:8',
68 tag: 'Priority'
69 },
70 {
71 type: 'min_occurences',
72 text: 'min_occurences:',
73 'description': 'Show reports from groups with at least X occurences',
74 example: 'min_occurences:25',
75 tag: 'Occurences'
76 },
77 {
78 type: 'url_path',
79 text: 'url_path:',
80 'description': 'Show reports from specific URL paths',
81 example: 'url_path:/foo/bar/baz',
82 tag: 'Url Path'
83 },
84 {
85 type: 'url_domain',
86 text: 'url_domain:',
87 'description': 'Show reports from specific domain',
88 example: 'url_domain:domain.com',
89 tag: 'Domain'
90 },
91 {
92 type: 'report_status',
93 text: 'report_status:',
94 'description': 'Show reports from groups with specific status',
95 example: 'report_status:never_reviewed',
96 tag: 'Status'
97 },
98 {
99 type: 'request_id',
100 text: 'request_id:',
101 'description': 'Show reports with specific request id',
102 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
103 tag: 'Request ID'
104 },
105 {
106 type: 'server_name',
107 text: 'server_name:',
108 'description': 'Show reports tagged with this key/value pair',
109 example: 'server_name:hostname',
110 tag: 'Tag'
111 },
112 {
113 type: 'http_status',
114 text: 'http_status:',
115 'description': 'Show reports with specific HTTP status code',
116 example: "http_status:",
117 tag: 'HTTP Status'
118 },
119 {
120 type: 'http_status',
121 text: 'http_status:500',
122 'description': 'Show reports with specific HTTP status code',
123 example: "http_status:500",
124 tag: 'HTTP Status'
125 },
126 {
127 type: 'http_status',
128 text: 'http_status:404',
129 'description': 'Include 404 reports in your search',
130 example: "http_status:404",
131 tag: 'HTTP Status'
132 },
133 {
134 type: 'start_date',
135 text: 'start_date:',
136 'description': 'Show reports newer than this date (press TAB for dropdown)',
137 example: 'start_date:2014-08-15T13:00',
138 tag: 'Start Date'
139 },
140 {
141 type: 'end_date',
142 text: 'end_date:',
143 'description': 'Show reports older than this date (press TAB for dropdown)',
144 example: 'start_date:2014-08-15T23:59',
145 tag: 'End Date'
146 }
147 ];
148
149 vm.filterTypeAhead = undefined;
150 vm.showDatePicker = false;
151 vm.manualOpen = false;
152 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
153
154 vm.notRelativeTime = false;
155 if ($cookies.notRelativeTime) {
156 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
145 157 }
146 ];
147 158
148 vm.filterTypeAhead = undefined;
149 vm.showDatePicker = false;
150 vm.manualOpen = false;
151 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
159 _.each(_.range(1, 11), function (priority) {
160 vm.filterTypeAheadOptions.push({
161 type: 'priority',
162 text: 'priority:' + priority.toString(),
163 description: 'Show entries with specific priority',
164 example: 'priority:' + priority,
165 tag: 'Priority'
166 });
167 });
168 _.each(['never_reviewed', 'reviewed', 'fixed', 'public'], function (status) {
169 vm.filterTypeAheadOptions.push({
170 type: 'report_status',
171 text: 'report_status:' + status,
172 'description': 'Show only reports with this status',
173 example: 'report_status:' + status,
174 tag: 'Status ' + status.toUpperCase()
175 });
176 });
177 _.each(stateHolder.AeUser.applications, function (item) {
178 vm.filterTypeAheadOptions.push({
179 type: 'resource',
180 text: 'resource:' + item.resource_id + ':' + item.resource_name,
181 example: 'resource:' + item.resource_id,
182 'tag': item.resource_name,
183 'description': 'Restrict resultset to this application'
184 });
185 });
186
187 // initial load
188 vm.refresh();
189
190 }
191
152 192 vm.removeSearchTag = function (tag) {
153 193 $location.search(tag.type, null);
154 194 vm.refresh();
@@ -157,44 +197,12 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
157 197 $location.search(tag.type, tag.value);
158 198 vm.refresh();
159 199 };
160 vm.notRelativeTime = false;
161 if ($cookies.notRelativeTime) {
162 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
163 }
164 200
165 201 vm.changeRelativeTime = function () {
166 202 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
167 203 };
168 204
169 _.each(_.range(1, 11), function (priority) {
170 vm.filterTypeAheadOptions.push({
171 type: 'priority',
172 text: 'priority:' + priority.toString(),
173 description: 'Show entries with specific priority',
174 example: 'priority:' + priority,
175 tag: 'Priority'
176 });
177 });
178 _.each(['never_reviewed', 'reviewed', 'fixed', 'public'], function (status) {
179 vm.filterTypeAheadOptions.push({
180 type: 'report_status',
181 text: 'report_status:' + status,
182 'description': 'Show only reports with this status',
183 example: 'report_status:' + status,
184 tag: 'Status ' + status.toUpperCase()
185 });
186 });
187 _.each(stateHolder.AeUser.applications, function (item) {
188 vm.filterTypeAheadOptions.push({
189 type: 'resource',
190 text: 'resource:' + item.resource_id + ':' + item.resource_name,
191 example: 'resource:' + item.resource_id,
192 'tag': item.resource_name,
193 'description': 'Restrict resultset to this application'
194 });
195 });
196
197 vm.paginationChange = function(){
205 vm.paginationChange = function () {
198 206 $location.search('page', vm.page);
199 207 vm.refresh();
200 208 };
@@ -222,8 +230,7 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
222 230 if (tagValue) {
223 231 tag.value = tagValue.join(':');
224 232 }
225 }
226 else {
233 } else {
227 234 tag.type = 'error';
228 235 tag.value = parsed.join(':');
229 236 }
@@ -232,8 +239,7 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
232 239 if ('start_date:' == text) {
233 240 vm.showDatePicker = true;
234 241 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
235 }
236 else if ('end_date:' == text) {
242 } else if ('end_date:' == text) {
237 243 vm.showDatePicker = true;
238 244 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
239 245 }
@@ -248,11 +254,10 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
248 254 vm.filterTypeAhead = undefined;
249 255 };
250 256
251 vm.pickerDateChanged = function(){
257 vm.pickerDateChanged = function () {
252 258 if (vm.filterTypeAhead.indexOf('start_date:') == '0') {
253 259 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
254 }
255 else if (vm.filterTypeAhead.indexOf('end_date:') == '0') {
260 } else if (vm.filterTypeAhead.indexOf('end_date:') == '0') {
256 261 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
257 262 }
258 263 vm.showDatePicker = false;
@@ -263,16 +268,13 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
263 268 if (report.group.public) {
264 269 report.presentation.className = 'public';
265 270 report.presentation.tooltip = 'Public';
266 }
267 else if (report.group.fixed) {
271 } else if (report.group.fixed) {
268 272 report.presentation.className = 'fixed';
269 273 report.presentation.tooltip = 'Fixed';
270 }
271 else if (report.group.read) {
274 } else if (report.group.read) {
272 275 report.presentation.className = 'reviewed';
273 276 report.presentation.tooltip = 'Reviewed';
274 }
275 else {
277 } else {
276 278 report.presentation.className = 'new';
277 279 report.presentation.tooltip = 'New';
278 280 }
@@ -303,13 +305,12 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
303 305 vm.refresh();
304 306 };
305 307
306 vm.refresh = function(){
308 vm.refresh = function () {
307 309 vm.searchParams = parseSearchToTags($location.search());
308 310 vm.page = Number(vm.searchParams.page) || 1;
309 311 var params = parseTagsToSearch(vm.searchParams);
310 312 console.log(params);
311 313 vm.fetchReports(params);
312 314 };
313 // initial load
314 vm.refresh();
315
315 316 }
@@ -27,109 +27,149 b" ReportsSlowBrowserViewController.$inject = ['$location', '$cookies',"
27 27
28 28 function ReportsSlowBrowserViewController($location, $cookies, stateHolder, typeAheadTagHelper, slowReportsResource) {
29 29 var vm = this;
30 vm.applications = stateHolder.AeUser.applications_map;
31 stateHolder.section = 'slow_reports';
32 vm.today = function () {
33 vm.pickerDate = new Date();
34 };
35 vm.today();
36 vm.reportsPage = [];
37 vm.page = 1;
38 vm.itemCount = 0;
39 vm.itemsPerPage = 250;
40 typeAheadTagHelper.tags = [];
41 vm.searchParams = {tags: [], page: 1, type: 'slow_report'};
42 vm.is_loading = false;
43 vm.filterTypeAheadOptions = [
44 {
45 type: 'view_name',
46 text: 'view_name:',
47 'description': 'Query reports occured in specific views',
48 tag: 'View Name',
49 example: "view_name:module.foo"
50 },
51 {
52 type: 'resource',
53 text: 'resource:',
54 'description': 'Restrict resultset to application',
55 tag: 'Application',
56 example: "resource:ID"
57 },
58 {
59 type: 'priority',
60 text: 'priority:',
61 'description': 'Show reports with specific priority',
62 example: 'priority:8',
63 tag: 'Priority'
64 },
65 {
66 type: 'min_occurences',
67 text: 'min_occurences:',
68 'description': 'Show reports from groups with at least X occurences',
69 example: 'min_occurences:25',
70 tag: 'Min. occurences'
71 },
72 {
73 type: 'min_duration',
74 text: 'min_duration:',
75 'description': 'Show reports from groups with average duration >= Xs',
76 example: 'min_duration:4.5',
77 tag: 'Min. duration'
78 },
79 {
80 type: 'url_path',
81 text: 'url_path:',
82 'description': 'Show reports from specific URL paths',
83 example: 'url_path:/foo/bar/baz',
84 tag: 'Url Path'
85 },
86 {
87 type: 'url_domain',
88 text: 'url_domain:',
89 'description': 'Show reports from specific domain',
90 example: 'url_domain:domain.com',
91 tag: 'Domain'
92 },
93 {
94 type: 'request_id',
95 text: 'request_id:',
96 'description': 'Show reports with specific request id',
97 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
98 tag: 'Request ID'
99 },
100 {
101 type: 'report_status',
102 text: 'report_status:',
103 'description': 'Show reports from groups with specific status',
104 example: 'report_status:never_reviewed',
105 tag: 'Status'
106 },
107 {
108 type: 'server_name',
109 text: 'server_name:',
110 'description': 'Show reports tagged with this key/value pair',
111 example: 'server_name:hostname',
112 tag: 'Tag'
113 },
114 {
115 type: 'start_date',
116 text: 'start_date:',
117 'description': 'Show reports newer than this date (press TAB for dropdown)',
118 example: 'start_date:2014-08-15T13:00',
119 tag: 'Start Date'
120 },
121 {
122 type: 'end_date',
123 text: 'end_date:',
124 'description': 'Show reports older than this date (press TAB for dropdown)',
125 example: 'start_date:2014-08-15T23:59',
126 tag: 'End Date'
30 vm.$onInit = function () {
31 vm.applications = stateHolder.AeUser.applications_map;
32 stateHolder.section = 'slow_reports';
33 vm.today = function () {
34 vm.pickerDate = new Date();
35 };
36 vm.today();
37 vm.reportsPage = [];
38 vm.page = 1;
39 vm.itemCount = 0;
40 vm.itemsPerPage = 250;
41 typeAheadTagHelper.tags = [];
42 vm.searchParams = {tags: [], page: 1, type: 'slow_report'};
43 vm.is_loading = false;
44 vm.filterTypeAheadOptions = [
45 {
46 type: 'view_name',
47 text: 'view_name:',
48 'description': 'Query reports occured in specific views',
49 tag: 'View Name',
50 example: "view_name:module.foo"
51 },
52 {
53 type: 'resource',
54 text: 'resource:',
55 'description': 'Restrict resultset to application',
56 tag: 'Application',
57 example: "resource:ID"
58 },
59 {
60 type: 'priority',
61 text: 'priority:',
62 'description': 'Show reports with specific priority',
63 example: 'priority:8',
64 tag: 'Priority'
65 },
66 {
67 type: 'min_occurences',
68 text: 'min_occurences:',
69 'description': 'Show reports from groups with at least X occurences',
70 example: 'min_occurences:25',
71 tag: 'Min. occurences'
72 },
73 {
74 type: 'min_duration',
75 text: 'min_duration:',
76 'description': 'Show reports from groups with average duration >= Xs',
77 example: 'min_duration:4.5',
78 tag: 'Min. duration'
79 },
80 {
81 type: 'url_path',
82 text: 'url_path:',
83 'description': 'Show reports from specific URL paths',
84 example: 'url_path:/foo/bar/baz',
85 tag: 'Url Path'
86 },
87 {
88 type: 'url_domain',
89 text: 'url_domain:',
90 'description': 'Show reports from specific domain',
91 example: 'url_domain:domain.com',
92 tag: 'Domain'
93 },
94 {
95 type: 'request_id',
96 text: 'request_id:',
97 'description': 'Show reports with specific request id',
98 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
99 tag: 'Request ID'
100 },
101 {
102 type: 'report_status',
103 text: 'report_status:',
104 'description': 'Show reports from groups with specific status',
105 example: 'report_status:never_reviewed',
106 tag: 'Status'
107 },
108 {
109 type: 'server_name',
110 text: 'server_name:',
111 'description': 'Show reports tagged with this key/value pair',
112 example: 'server_name:hostname',
113 tag: 'Tag'
114 },
115 {
116 type: 'start_date',
117 text: 'start_date:',
118 'description': 'Show reports newer than this date (press TAB for dropdown)',
119 example: 'start_date:2014-08-15T13:00',
120 tag: 'Start Date'
121 },
122 {
123 type: 'end_date',
124 text: 'end_date:',
125 'description': 'Show reports older than this date (press TAB for dropdown)',
126 example: 'start_date:2014-08-15T23:59',
127 tag: 'End Date'
128 }
129 ];
130
131 vm.filterTypeAhead = undefined;
132 vm.showDatePicker = false;
133 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
134
135 vm.manualOpen = false;
136 vm.notRelativeTime = false;
137 if ($cookies.notRelativeTime) {
138 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
127 139 }
128 ];
129 140
130 vm.filterTypeAhead = undefined;
131 vm.showDatePicker = false;
132 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
141 _.each(_.range(1, 11), function (priority) {
142 vm.filterTypeAheadOptions.push({
143 type: 'priority',
144 text: 'priority:' + priority.toString(),
145 description: 'Show entries with specific priority',
146 example: 'priority:' + priority,
147 tag: 'Priority'
148 });
149 });
150 _.each(['never_reviewed', 'reviewed', 'fixed', 'public'], function (status) {
151 vm.filterTypeAheadOptions.push({
152 type: 'report_status',
153 text: 'report_status:' + status,
154 'description': 'Show only reports with this status',
155 example: 'report_status:' + status,
156 tag: 'Status ' + status.toUpperCase()
157 });
158 });
159 _.each(stateHolder.AeUser.applications, function (item) {
160 vm.filterTypeAheadOptions.push({
161 type: 'resource',
162 text: 'resource:' + item.resource_id + ':' + item.resource_name,
163 example: 'resource:' + item.resource_id,
164 'tag': item.resource_name,
165 'description': 'Restrict resultset to this application'
166 });
167 });
168
169 //initial load
170 vm.refresh();
171 }
172
133 173 vm.removeSearchTag = function (tag) {
134 174 $location.search(tag.type, null);
135 175 vm.refresh();
@@ -138,45 +178,12 b' function ReportsSlowBrowserViewController($location, $cookies, stateHolder, type'
138 178 $location.search(tag.type, tag.value);
139 179 vm.refresh();
140 180 };
141 vm.manualOpen = false;
142 vm.notRelativeTime = false;
143 if ($cookies.notRelativeTime) {
144 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
145 }
146 181
147 182
148 183 vm.changeRelativeTime = function () {
149 184 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
150 185 };
151 186
152 _.each(_.range(1, 11), function (priority) {
153 vm.filterTypeAheadOptions.push({
154 type: 'priority',
155 text: 'priority:' + priority.toString(),
156 description: 'Show entries with specific priority',
157 example: 'priority:' + priority,
158 tag: 'Priority'
159 });
160 });
161 _.each(['never_reviewed', 'reviewed', 'fixed', 'public'], function (status) {
162 vm.filterTypeAheadOptions.push({
163 type: 'report_status',
164 text: 'report_status:' + status,
165 'description': 'Show only reports with this status',
166 example: 'report_status:' + status,
167 tag: 'Status ' + status.toUpperCase()
168 });
169 });
170 _.each(stateHolder.AeUser.applications, function (item) {
171 vm.filterTypeAheadOptions.push({
172 type: 'resource',
173 text: 'resource:' + item.resource_id + ':' + item.resource_name,
174 example: 'resource:' + item.resource_id,
175 'tag': item.resource_name,
176 'description': 'Restrict resultset to this application'
177 });
178 });
179
180 187 vm.typeAheadTag = function (event) {
181 188 var text = vm.filterTypeAhead;
182 189 if (_.isObject(vm.filterTypeAhead)) {
@@ -287,6 +294,4 b' function ReportsSlowBrowserViewController($location, $cookies, stateHolder, type'
287 294 vm.fetchReports(params);
288 295 };
289 296
290 //initial load
291 vm.refresh();
292 297 }
@@ -21,7 +21,9 b" angular.module('appenlight.components.settingsView', [])"
21 21 SettingsViewController.$inject = ['$state', 'AeConfig'];
22 22
23 23 function SettingsViewController($state, AeConfig) {
24 this.$state = $state;
25 this.AeConfig = AeConfig;
26 console.info('SettingsViewController');
24 this.$onInit = function () {
25 this.$state = $state;
26 this.AeConfig = AeConfig;
27 console.info('SettingsViewController');
28 }
27 29 }
@@ -18,15 +18,17 b" angular.module('appenlight.components.userAlertChannelsEmailNewView', [])"
18 18 controller: AlertChannelsEmailController
19 19 });
20 20
21 AlertChannelsEmailController.$inject = ['$state','userSelfPropertyResource'];
21 AlertChannelsEmailController.$inject = ['$state', 'userSelfPropertyResource'];
22 22
23 23 function AlertChannelsEmailController($state, userSelfPropertyResource) {
24 24 console.debug('AlertChannelsEmailController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {email: false};
28 vm.form = {};
29
26 vm.$onInit = function () {
27 var vm = this;
28 vm.$state = $state;
29 vm.loading = {email: false};
30 vm.form = {};
31 }
30 32 vm.createChannel = function () {
31 33 vm.loading.email = true;
32 34 console.log('createChannel');
@@ -18,75 +18,76 b" angular.module('appenlight.components.userAlertChannelsListView', [])"
18 18 controller: userAlertChannelsListViewController
19 19 });
20 20
21 userAlertChannelsListViewController.$inject = ['$state','userSelfPropertyResource', 'applicationsNoIdResource'];
21 userAlertChannelsListViewController.$inject = ['$state', 'userSelfPropertyResource', 'applicationsNoIdResource'];
22 22
23 23 function userAlertChannelsListViewController($state, userSelfPropertyResource, applicationsNoIdResource) {
24 24 console.debug('AlertChannelsController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {channels: true, applications: true, actions:true};
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {channels: true, applications: true, actions: true};
28 29
29 vm.alertChannels = userSelfPropertyResource.query({key: 'alert_channels'},
30 function (data) {
31 vm.loading.channels = false;
32 });
33
34 vm.alertActions = userSelfPropertyResource.query({key: 'alert_actions'},
35 function (data) {
36 vm.loading.actions = false;
37 });
30 vm.alertChannels = userSelfPropertyResource.query({key: 'alert_channels'},
31 function (data) {
32 vm.loading.channels = false;
33 });
38 34
39 vm.applications = applicationsNoIdResource.query({permission: 'view'},
40 function (data) {
41 vm.loading.applications = false;
42 });
35 vm.alertActions = userSelfPropertyResource.query({key: 'alert_actions'},
36 function (data) {
37 vm.loading.actions = false;
38 });
43 39
44 var allOps = {
45 'eq': 'Equal',
46 'ne': 'Not equal',
47 'ge': 'Greater or equal',
48 'gt': 'Greater than',
49 'le': 'Lesser or equal',
50 'lt': 'Lesser than',
51 'startswith': 'Starts with',
52 'endswith': 'Ends with',
53 'contains': 'Contains'
54 };
40 vm.applications = applicationsNoIdResource.query({permission: 'view'},
41 function (data) {
42 vm.loading.applications = false;
43 });
55 44
56 var fieldOps = {};
57 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
58 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
59 fieldOps['duration'] = ['ge', 'le'];
60 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
61 'contains'];
62 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
63 'contains'];
64 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
65 'contains'];
66 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
67 'contains'];
68 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
45 var allOps = {
46 'eq': 'Equal',
47 'ne': 'Not equal',
48 'ge': 'Greater or equal',
49 'gt': 'Greater than',
50 'le': 'Lesser or equal',
51 'lt': 'Lesser than',
52 'startswith': 'Starts with',
53 'endswith': 'Ends with',
54 'contains': 'Contains'
55 };
69 56
70 var possibleFields = {
71 '__AND__': 'All met (composite rule)',
72 '__OR__': 'One met (composite rule)',
73 '__NOT__': 'Not met (composite rule)',
74 'http_status': 'HTTP Status',
75 'duration': 'Request duration',
76 'group:priority': 'Group -> Priority',
77 'url_domain': 'Domain',
78 'url_path': 'URL Path',
79 'error': 'Error',
80 'tags:server_name': 'Tag -> Server name',
81 'group:occurences': 'Group -> Occurences'
82 };
57 var fieldOps = {};
58 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
59 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
60 fieldOps['duration'] = ['ge', 'le'];
61 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
62 'contains'];
63 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
64 'contains'];
65 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
66 'contains'];
67 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
68 'contains'];
69 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
83 70
84 vm.ruleDefinitions = {
85 fieldOps: fieldOps,
86 allOps: allOps,
87 possibleFields: possibleFields
88 };
71 var possibleFields = {
72 '__AND__': 'All met (composite rule)',
73 '__OR__': 'One met (composite rule)',
74 '__NOT__': 'Not met (composite rule)',
75 'http_status': 'HTTP Status',
76 'duration': 'Request duration',
77 'group:priority': 'Group -> Priority',
78 'url_domain': 'Domain',
79 'url_path': 'URL Path',
80 'error': 'Error',
81 'tags:server_name': 'Tag -> Server name',
82 'group:occurences': 'Group -> Occurences'
83 };
89 84
85 vm.ruleDefinitions = {
86 fieldOps: fieldOps,
87 allOps: allOps,
88 possibleFields: possibleFields
89 };
90 }
90 91 vm.addAction = function (channel) {
91 92 console.log('test');
92 93 userSelfPropertyResource.save({key: 'alert_channels_rules'}, {}, function (data) {
@@ -120,7 +121,7 b' function userAlertChannelsListViewController($state, userSelfPropertyResource, a'
120 121 channel_name: channel.channel_name,
121 122 channel_value: channel.channel_value
122 123 }, function () {
123 vm.alertChannels = _.filter(vm.alertChannels, function(item){
124 vm.alertChannels = _.filter(vm.alertChannels, function (item) {
124 125 return item != channel;
125 126 });
126 127 });
@@ -23,16 +23,17 b" userAuthTokensViewController.$inject = ['$state', 'userSelfPropertyResource', 'A"
23 23 function userAuthTokensViewController($state, userSelfPropertyResource, AeConfig) {
24 24 console.debug('userAuthTokensViewController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {tokens: true};
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {tokens: true};
28 29
29 vm.expireOptions = AeConfig.timeOptions;
30
31 vm.tokens = userSelfPropertyResource.query({key: 'auth_tokens'},
32 function (data) {
33 vm.loading.tokens = false;
34 });
30 vm.expireOptions = AeConfig.timeOptions;
35 31
32 vm.tokens = userSelfPropertyResource.query({key: 'auth_tokens'},
33 function (data) {
34 vm.loading.tokens = false;
35 });
36 }
36 37 vm.addToken = function () {
37 38 vm.loading.tokens = true;
38 39 userSelfPropertyResource.save({key: 'auth_tokens'},
@@ -23,17 +23,18 b" UserIdentitiesController.$inject = ['$state', 'userSelfPropertyResource', 'AeCon"
23 23 function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {
24 24 console.debug('UserIdentitiesController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.AeConfig = AeConfig;
28 vm.loading = {identities: true};
29
30 vm.identities = userSelfPropertyResource.query(
31 {key: 'external_identities'},
32 function (data) {
33 vm.loading.identities = false;
34 console.log(vm.identities);
35 });
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.AeConfig = AeConfig;
29 vm.loading = {identities: true};
36 30
31 vm.identities = userSelfPropertyResource.query(
32 {key: 'external_identities'},
33 function (data) {
34 vm.loading.identities = false;
35 console.log(vm.identities);
36 });
37 }
37 38 vm.removeProvider = function (provider) {
38 39 console.log('provider', provider);
39 40 userSelfPropertyResource.delete(
@@ -43,7 +44,7 b' function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {'
43 44 id: provider.id
44 45 },
45 46 function (status) {
46 if (status){
47 if (status) {
47 48 vm.identities = _.filter(vm.identities, function (item) {
48 49 return item != provider
49 50 });
@@ -23,10 +23,11 b" UserPasswordViewController.$inject = ['$state', 'userSelfPropertyResource'];"
23 23 function UserPasswordViewController($state, userSelfPropertyResource) {
24 24 console.debug('UserPasswordViewController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {password: false};
28 vm.form = {};
29
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {password: false};
29 vm.form = {};
30 }
30 31 vm.updatePassword = function () {
31 32 vm.loading.password = true;
32 33 console.log('updatePassword');
@@ -23,14 +23,15 b" UserProfileViewController.$inject = ['$state', 'userSelfResource'];"
23 23 function UserProfileViewController($state, userSelfResource) {
24 24 console.debug('UserProfileViewController');
25 25 var vm = this;
26 vm.$state = $state;
27 vm.loading = {profile: true};
28
29 vm.user = userSelfResource.get(null, function (data) {
30 vm.loading.profile = false;
31 console.log('loaded profile');
32 });
26 vm.$onInit = function () {
27 vm.$state = $state;
28 vm.loading = {profile: true};
33 29
30 vm.user = userSelfResource.get(null, function (data) {
31 vm.loading.profile = false;
32 console.log('loaded profile');
33 });
34 }
34 35 vm.updateProfile = function () {
35 36 vm.loading.profile = true;
36 37
@@ -19,19 +19,21 b" BitbucketIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'in"
19 19
20 20 function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
21 21 var vm = this;
22 vm.loading = true;
23 vm.assignees = [];
24 vm.report = report;
25 vm.integrationName = integrationName;
26 vm.statuses = [];
27 vm.priorities = [];
28 vm.error_messages = [];
29 vm.form = {
30 content: '\n' +
31 'Issue created for report: ' +
32 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
33 };
34
22 vm.$onInit = function () {
23 vm.loading = true;
24 vm.assignees = [];
25 vm.report = report;
26 vm.integrationName = integrationName;
27 vm.statuses = [];
28 vm.priorities = [];
29 vm.error_messages = [];
30 vm.form = {
31 content: '\n' +
32 'Issue created for report: ' +
33 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
34 };
35 vm.fetchInfo();
36 }
35 37 vm.fetchInfo = function () {
36 38 integrationResource.get({
37 39 resourceId: vm.report.resource_id,
@@ -50,8 +52,7 b' function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integration'
50 52 }, function (error_data) {
51 53 if (error_data.data.error_messages) {
52 54 vm.error_messages = error_data.data.error_messages;
53 }
54 else {
55 } else {
55 56 vm.error_messages = ['There was a problem processing your request'];
56 57 }
57 58 });
@@ -75,8 +76,7 b' function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integration'
75 76 }, function (error_data) {
76 77 if (error_data.data.error_messages) {
77 78 vm.error_messages = error_data.data.error_messages;
78 }
79 else {
79 } else {
80 80 vm.error_messages = ['There was a problem processing your request'];
81 81 }
82 82 });
@@ -84,5 +84,4 b' function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integration'
84 84 vm.cancel = function () {
85 85 $uibModalInstance.dismiss('cancel');
86 86 };
87 vm.fetchInfo();
88 87 }
@@ -19,19 +19,21 b" GithubIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'integ"
19 19
20 20 function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
21 21 var vm = this;
22 vm.loading = true;
23 vm.assignees = [];
24 vm.report = report;
25 vm.integrationName = integrationName;
26 vm.statuses = [];
27 vm.assignees = [];
28 vm.error_messages = [];
29 vm.form = {
30 content: '\n' +
31 'Issue created for report: ' +
32 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
33 };
34
22 vm.$onInit = function () {
23 vm.loading = true;
24 vm.assignees = [];
25 vm.report = report;
26 vm.integrationName = integrationName;
27 vm.statuses = [];
28 vm.assignees = [];
29 vm.error_messages = [];
30 vm.form = {
31 content: '\n' +
32 'Issue created for report: ' +
33 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
34 };
35 vm.fetchInfo();
36 }
35 37 vm.fetchInfo = function () {
36 38 integrationResource.get({
37 39 resourceId: vm.report.resource_id,
@@ -42,8 +44,7 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
42 44 vm.loading = false;
43 45 if (data.error_messages) {
44 46 vm.error_messages = data.error_messages;
45 }
46 else {
47 } else {
47 48 vm.assignees = data.assignees;
48 49 vm.statuses = data.statuses;
49 50 vm.form.responsible = vm.assignees[0];
@@ -52,8 +53,7 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
52 53 }, function (error_data) {
53 54 if (error_data.data.error_messages) {
54 55 vm.error_messages = error_data.data.error_messages;
55 }
56 else {
56 } else {
57 57 vm.error_messages = ['There was a problem processing your request'];
58 58 }
59 59 });
@@ -70,15 +70,13 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
70 70 vm.loading = false;
71 71 if (data.error_messages) {
72 72 vm.error_messages = data.error_messages;
73 }
74 else {
73 } else {
75 74 $uibModalInstance.dismiss('success');
76 75 }
77 76 }, function (error_data) {
78 77 if (error_data.data.error_messages) {
79 78 vm.error_messages = error_data.data.error_messages;
80 }
81 else {
79 } else {
82 80 vm.error_messages = ['There was a problem processing your request'];
83 81 }
84 82 });
@@ -86,5 +84,4 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
86 84 vm.cancel = function () {
87 85 $uibModalInstance.dismiss('cancel');
88 86 };
89 vm.fetchInfo();
90 87 }
@@ -19,20 +19,22 b" JiraIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'integra"
19 19
20 20 function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
21 21 var vm = this;
22 vm.loading = true;
23 vm.assignees = [];
24 vm.report = report;
25 vm.integrationName = integrationName;
26 vm.statuses = [];
27 vm.priorities = [];
28 vm.issue_types = [];
29 vm.error_messages = [];
30 vm.form = {
31 content: '\n' +
32 'Issue created for report: ' +
33 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
34 };
35
22 vm.$onInit = function () {
23 vm.loading = true;
24 vm.assignees = [];
25 vm.report = report;
26 vm.integrationName = integrationName;
27 vm.statuses = [];
28 vm.priorities = [];
29 vm.issue_types = [];
30 vm.error_messages = [];
31 vm.form = {
32 content: '\n' +
33 'Issue created for report: ' +
34 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
35 };
36 vm.fetchInfo();
37 }
36 38 vm.fetchInfo = function () {
37 39 integrationResource.get({
38 40 resourceId: vm.report.resource_id,
@@ -54,8 +56,7 b' function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName,'
54 56 console.log('ERROR');
55 57 if (error_data.data.error_messages) {
56 58 vm.error_messages = error_data.data.error_messages;
57 }
58 else {
59 } else {
59 60 vm.error_messages = ['There was a problem processing your request'];
60 61 }
61 62 });
@@ -79,8 +80,7 b' function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName,'
79 80 }, function (error_data) {
80 81 if (error_data.data.error_messages) {
81 82 vm.error_messages = error_data.data.error_messages;
82 }
83 else {
83 } else {
84 84 vm.error_messages = ['There was a problem processing your request'];
85 85 }
86 86 });
@@ -88,5 +88,4 b' function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName,'
88 88 vm.cancel = function () {
89 89 $uibModalInstance.dismiss('cancel');
90 90 };
91 vm.fetchInfo();
92 91 }
@@ -17,22 +17,24 b" AssignReportCtrl.$inject = ['$uibModalInstance', 'reportGroupPropertyResource', "
17 17
18 18 function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report) {
19 19 var vm = this;
20 vm.loading = true;
21 vm.assignedUsers = [];
22 vm.unAssignedUsers = [];
23 vm.report = report;
24 vm.fetchAssignments = function () {
25 reportGroupPropertyResource.get({
26 groupId: vm.report.group_id,
27 key: 'assigned_users'
28 }, null,
29 function (data) {
30 vm.assignedUsers = data.assigned;
31 vm.unAssignedUsers = data.unassigned;
32 vm.loading = false;
33 });
20 vm.$onInit = function () {
21 vm.loading = true;
22 vm.assignedUsers = [];
23 vm.unAssignedUsers = [];
24 vm.report = report;
25 vm.fetchAssignments = function () {
26 reportGroupPropertyResource.get({
27 groupId: vm.report.group_id,
28 key: 'assigned_users'
29 }, null,
30 function (data) {
31 vm.assignedUsers = data.assigned;
32 vm.unAssignedUsers = data.unassigned;
33 vm.loading = false;
34 });
35 }
36 vm.fetchAssignments();
34 37 }
35
36 38 vm.reassignUser = function (user) {
37 39 var is_assigned = vm.assignedUsers.indexOf(user);
38 40 if (is_assigned != -1) {
@@ -74,7 +76,4 b' function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report'
74 76 vm.cancel = function () {
75 77 $uibModalInstance.dismiss('cancel');
76 78 };
77
78 vm.fetchAssignments();
79
80 79 }
@@ -21,64 +21,65 b" ApplicationPermissionsController.$inject = ['sectionViewResource',"
21 21
22 22 function ApplicationPermissionsController(sectionViewResource, applicationsPropertyResource , groupsResource) {
23 23 var vm = this;
24 vm.form = {
25 autocompleteUser: '',
26 selectedGroup: null,
27 selectedUserPermissions: {},
28 selectedGroupPermissions: {}
29 }
30 vm.possibleGroups = groupsResource.query(null, function(){
31 if (vm.possibleGroups.length > 0){
32 vm.form.selectedGroup = vm.possibleGroups[0].id;
24 vm.$onInit = function () {
25 vm.form = {
26 autocompleteUser: '',
27 selectedGroup: null,
28 selectedUserPermissions: {},
29 selectedGroupPermissions: {}
33 30 }
34 });
35 console.log('g', vm.possibleGroups);
36 vm.possibleUsers = [];
37 _.each(vm.resource.possible_permissions, function (perm) {
38 vm.form.selectedUserPermissions[perm] = false;
39 vm.form.selectedGroupPermissions[perm] = false;
40 });
41
42 /**
43 * Converts the permission list into {user, permission_list objects}
44 * for rendering in templates
45 * **/
46 var tmpObj = {
47 user: {},
48 group: {}
49 };
50 _.each(vm.currentPermissions, function (perm) {
51 console.log(perm);
52 if (perm.type == 'user') {
53 if (typeof tmpObj[perm.type][perm.user_name] === 'undefined') {
54 tmpObj[perm.type][perm.user_name] = {
55 self: perm,
56 permissions: []
57 }
31 vm.possibleGroups = groupsResource.query(null, function () {
32 if (vm.possibleGroups.length > 0) {
33 vm.form.selectedGroup = vm.possibleGroups[0].id;
58 34 }
59 if (tmpObj[perm.type][perm.user_name].permissions.indexOf(perm.perm_name) === -1) {
60 tmpObj[perm.type][perm.user_name].permissions.push(perm.perm_name);
61 }
62 }
63 else {
64 if (typeof tmpObj[perm.type][perm.group_name] === 'undefined') {
65 tmpObj[perm.type][perm.group_name] = {
66 self: perm,
67 permissions: []
35 });
36 console.log('g', vm.possibleGroups);
37 vm.possibleUsers = [];
38 _.each(vm.resource.possible_permissions, function (perm) {
39 vm.form.selectedUserPermissions[perm] = false;
40 vm.form.selectedGroupPermissions[perm] = false;
41 });
42
43 /**
44 * Converts the permission list into {user, permission_list objects}
45 * for rendering in templates
46 * **/
47 var tmpObj = {
48 user: {},
49 group: {}
50 };
51 _.each(vm.currentPermissions, function (perm) {
52 console.log(perm);
53 if (perm.type == 'user') {
54 if (typeof tmpObj[perm.type][perm.user_name] === 'undefined') {
55 tmpObj[perm.type][perm.user_name] = {
56 self: perm,
57 permissions: []
58 }
59 }
60 if (tmpObj[perm.type][perm.user_name].permissions.indexOf(perm.perm_name) === -1) {
61 tmpObj[perm.type][perm.user_name].permissions.push(perm.perm_name);
62 }
63 } else {
64 if (typeof tmpObj[perm.type][perm.group_name] === 'undefined') {
65 tmpObj[perm.type][perm.group_name] = {
66 self: perm,
67 permissions: []
68 }
69 }
70 if (tmpObj[perm.type][perm.group_name].permissions.indexOf(perm.perm_name) === -1) {
71 tmpObj[perm.type][perm.group_name].permissions.push(perm.perm_name);
68 72 }
69 }
70 if (tmpObj[perm.type][perm.group_name].permissions.indexOf(perm.perm_name) === -1) {
71 tmpObj[perm.type][perm.group_name].permissions.push(perm.perm_name);
72 }
73 73
74 }
75 });
76 vm.currentPermissions = {
77 user: _.values(tmpObj.user),
78 group: _.values(tmpObj.group),
79 };
74 }
75 });
76 vm.currentPermissions = {
77 user: _.values(tmpObj.user),
78 group: _.values(tmpObj.group),
79 };
80 console.log('test', tmpObj, vm.currentPermissions);
81 }
80 82
81 console.log('test', tmpObj, vm.currentPermissions);
82 83
83 84 vm.searchUsers = function (searchPhrase) {
84 85 console.log('SEARCHING');
@@ -28,7 +28,9 b" angular.module('appenlight.directives.pluginConfig', []).directive('pluginConfig"
28 28 PluginConfig.$inject = ['stateHolder'];
29 29
30 30 function PluginConfig(stateHolder) {
31 this.plugins = {};
32 this.inclusions = stateHolder.plugins.inclusions[this.section];
31 this.$onInit = function () {
32 this.plugins = {};
33 this.inclusions = stateHolder.plugins.inclusions[this.section];
34 }
33 35 }
34 36 });
@@ -15,69 +15,71 b''
15 15 angular.module('appenlight.directives.postProcessAction', []).directive('postProcessAction', ['applicationsPropertyResource', function (applicationsPropertyResource) {
16 16 return {
17 17 scope: {},
18 bindToController:{
18 bindToController: {
19 19 action: '=',
20 20 resource: '='
21 21 },
22 controller:postProcessActionController,
23 controllerAs:'ctrl',
22 controller: postProcessActionController,
23 controllerAs: 'ctrl',
24 24 restrict: 'E',
25 25 templateUrl: 'directives/postprocess_action/postprocess_action.html'
26 26 };
27 function postProcessActionController(){
28 var vm = this;
29 console.log(vm);
30 var allOps = {
31 'eq': 'Equal',
32 'ne': 'Not equal',
33 'ge': 'Greater or equal',
34 'gt': 'Greater than',
35 'le': 'Lesser or equal',
36 'lt': 'Lesser than',
37 'startswith': 'Starts with',
38 'endswith': 'Ends with',
39 'contains': 'Contains'
40 };
41 27
42 var fieldOps = {};
43 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
44 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
45 fieldOps['duration'] = ['ge', 'le'];
46 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
47 'contains'];
48 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
49 'contains'];
50 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
51 'contains'];
52 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
53 'contains'];
54 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
28 function postProcessActionController() {
29 var vm = this;
30 vm.$onInit = function () {
31 console.log(vm);
32 var allOps = {
33 'eq': 'Equal',
34 'ne': 'Not equal',
35 'ge': 'Greater or equal',
36 'gt': 'Greater than',
37 'le': 'Lesser or equal',
38 'lt': 'Lesser than',
39 'startswith': 'Starts with',
40 'endswith': 'Ends with',
41 'contains': 'Contains'
42 };
55 43
56 var possibleFields = {
57 '__AND__': 'All met (composite rule)',
58 '__OR__': 'One met (composite rule)',
59 '__NOT__': 'Not met (composite rule)',
60 'http_status': 'HTTP Status',
61 'duration': 'Request duration',
62 'group:priority': 'Group -> Priority',
63 'url_domain': 'Domain',
64 'url_path': 'URL Path',
65 'error': 'Error',
66 'tags:server_name': 'Tag -> Server name',
67 'group:occurences': 'Group -> Occurences'
68 };
44 var fieldOps = {};
45 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
46 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
47 fieldOps['duration'] = ['ge', 'le'];
48 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
49 'contains'];
50 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
51 'contains'];
52 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
53 'contains'];
54 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
55 'contains'];
56 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
69 57
70 vm.ruleDefinitions = {
71 fieldOps: fieldOps,
72 allOps: allOps,
73 possibleFields: possibleFields
74 };
58 var possibleFields = {
59 '__AND__': 'All met (composite rule)',
60 '__OR__': 'One met (composite rule)',
61 '__NOT__': 'Not met (composite rule)',
62 'http_status': 'HTTP Status',
63 'duration': 'Request duration',
64 'group:priority': 'Group -> Priority',
65 'url_domain': 'Domain',
66 'url_path': 'URL Path',
67 'error': 'Error',
68 'tags:server_name': 'Tag -> Server name',
69 'group:occurences': 'Group -> Occurences'
70 };
75 71
76 vm.possibleActions = [
77 ['1', 'Priority +1'],
78 ['-1', 'Priority -1']
79 ];
72 vm.ruleDefinitions = {
73 fieldOps: fieldOps,
74 allOps: allOps,
75 possibleFields: possibleFields
76 };
80 77
78 vm.possibleActions = [
79 ['1', 'Priority +1'],
80 ['-1', 'Priority -1']
81 ];
82 }
81 83 vm.deleteAction = function (action) {
82 84 applicationsPropertyResource.remove({
83 85 pkey: vm.action.pkey,
@@ -108,7 +110,7 b" angular.module('appenlight.directives.postProcessAction', []).directive('postPro"
108 110 });
109 111 };
110 112
111 vm.setDirty = function() {
113 vm.setDirty = function () {
112 114 vm.action.dirty = true;
113 115 console.log('set dirty');
114 116 };
@@ -15,20 +15,36 b''
15 15 angular.module('appenlight.directives.reportAlertAction', []).directive('reportAlertAction', ['userSelfPropertyResource', function (userSelfPropertyResource) {
16 16 return {
17 17 scope: {},
18 bindToController:{
18 bindToController: {
19 19 action: '=',
20 20 applications: '=',
21 21 possibleChannels: '=',
22 22 actions: '=',
23 23 ruleDefinitions: '='
24 24 },
25 controller:reportAlertActionController,
26 controllerAs:'ctrl',
25 controller: reportAlertActionController,
26 controllerAs: 'ctrl',
27 27 restrict: 'E',
28 28 templateUrl: 'directives/report_alert_action/report_alert_action.html'
29 29 };
30 function reportAlertActionController(){
30
31 function reportAlertActionController() {
31 32 var vm = this;
33 vm.$onInit = function () {
34 vm.possibleNotifications = [
35 ['always', 'Always'],
36 ['only_first', 'Only New'],
37 ];
38
39 vm.possibleChannels = _.filter(vm.possibleChannels, function (c) {
40 return c.supports_report_alerting
41 }
42 );
43
44 if (vm.possibleChannels.length > 0) {
45 vm.channelToBind = vm.possibleChannels[0];
46 }
47 }
32 48 vm.deleteAction = function (actions, action) {
33 49 var get = {
34 50 key: 'alert_channels_rules',
@@ -40,7 +56,7 b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
40 56
41 57 };
42 58
43 vm.bindChannel = function(){
59 vm.bindChannel = function () {
44 60 var post = {
45 61 channel_pkey: vm.channelToBind.pkey,
46 62 action_pkey: vm.action.pkey
@@ -57,7 +73,7 b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
57 73 });
58 74 };
59 75
60 vm.unBindChannel = function(channel){
76 vm.unBindChannel = function (channel) {
61 77 userSelfPropertyResource.delete({
62 78 key: 'alert_channels_actions_binds',
63 79 channel_pkey: channel.pkey,
@@ -90,20 +106,7 b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
90 106 });
91 107 };
92 108
93 vm.possibleNotifications = [
94 ['always', 'Always'],
95 ['only_first', 'Only New'],
96 ];
97
98 vm.possibleChannels = _.filter(vm.possibleChannels, function(c){
99 return c.supports_report_alerting }
100 );
101
102 if (vm.possibleChannels.length > 0){
103 vm.channelToBind = vm.possibleChannels[0];
104 }
105
106 vm.setDirty = function() {
109 vm.setDirty = function () {
107 110 vm.action.dirty = true;
108 111 console.log('set dirty');
109 112 };
@@ -29,10 +29,10 b" angular.module('appenlight.directives.rule', []).directive('rule', function () {"
29 29 };
30 30 function RuleController(){
31 31 var vm = this;
32
33 vm.rule.dirty = false;
34 vm.oldField = vm.rule.field;
35
32 vm.$onInit = function () {
33 vm.rule.dirty = false;
34 vm.oldField = vm.rule.field;
35 }
36 36 vm.add = function () {
37 37 vm.rule.rules.push(
38 38 {op: "eq", field: 'http_status', value: ""}
@@ -15,7 +15,7 b''
15 15 angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly', ['userSelfPropertyResource', function (userSelfPropertyResource) {
16 16 return {
17 17 scope: {},
18 bindToController:{
18 bindToController: {
19 19 parentObj: '=',
20 20 rule: '=',
21 21 ruleDefinitions: '=',
@@ -24,15 +24,18 b" angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly"
24 24 },
25 25 restrict: 'E',
26 26 templateUrl: 'directives/rule_read_only/rule_read_only.html',
27 controller:RuleController,
28 controllerAs:'rule_ctrlr'
27 controller: RuleController,
28 controllerAs: 'rule_ctrlr'
29 29 }
30 function RuleController(){
30
31 function RuleController() {
31 32 var vm = this;
32 vm.readOnlyPossibleFields = {};
33 var labelPairs = _.pairs(vm.parentObj.config);
34 _.each(labelPairs, function (entry) {
35 vm.readOnlyPossibleFields[entry[0]] = entry[1].human_label;
36 });
33 vm.$onInit = function () {
34 vm.readOnlyPossibleFields = {};
35 var labelPairs = _.pairs(vm.parentObj.config);
36 _.each(labelPairs, function (entry) {
37 vm.readOnlyPossibleFields[entry[0]] = entry[1].human_label;
38 });
39 }
37 40 }
38 41 }]);
General Comments 0
You need to be logged in to leave comments. Login now