##// 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 }).call(this);
1343 }).call(this);
1344
1344
1345 ;/*
1345 ;/*
1346 AngularJS v1.5.5
1346 AngularJS v1.7.7
1347 (c) 2010-2016 Google, Inc. http://angularjs.org
1347 (c) 2010-2018 Google, Inc. http://angularjs.org
1348 License: MIT
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;
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 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)&&
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 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):
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 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"!==
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 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)&&
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 $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)&&
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 (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));
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 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=[],
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 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&&
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 "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,
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 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,
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 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)}}
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 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("&"):""}
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 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))});
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 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)}]);
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 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=
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 "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,
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 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=
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 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)&&
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 (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",
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 "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,
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 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,
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 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,
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 $$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,
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 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)});
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 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,
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 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=
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 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,
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 " ").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,
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 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,
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 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=
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;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=
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 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"]=
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}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)):
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 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];
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("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,
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 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,
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 {$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,
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 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===
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 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();
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 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!==
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 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",
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 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=
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 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]},
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 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,
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 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\-]+)(?:\:([^;]+))?;?)/,
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 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=
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 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",
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 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=
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 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<
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 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,
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 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,
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 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);
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 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,
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 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]),
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 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)&&
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 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));
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 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]});
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 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=
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 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=
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 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;
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 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=
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 !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]&&
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 (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=
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 !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=
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 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,
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 $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=
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 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=
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 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,
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 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==
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 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!==
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 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=
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 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,
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 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=
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 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]&&
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 (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};
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 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===
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 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,
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)},$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=
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 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(),
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 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=
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 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,
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 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=
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 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,
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 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)+
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 "="+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;
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 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",
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 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,
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 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)?
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 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(),
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 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),
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 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&&
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 "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=
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 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}}}
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 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",
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 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);
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 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;
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 }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);
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 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("");
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 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,
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 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),
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 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);
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 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,
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);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);
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 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=
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 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,
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){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,
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 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();
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 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"]=
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 !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||
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 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&&
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 (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__"===
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 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||
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 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;
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 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=
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 !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;
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 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;
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 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,
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 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){":"===
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 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&&
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 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);
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 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;
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 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,
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 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,
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 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,
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,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)?
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 (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];
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 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=
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.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,
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 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=
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 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=
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 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=
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 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,
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 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,
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 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>
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 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;
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 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&&
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 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==
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 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||
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 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]=
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 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);
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 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=
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 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;
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 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",
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 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]=
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 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],
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 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},
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 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,
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 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"===
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 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,
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 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)"+
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 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",
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 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=
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 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]||{},
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={},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);
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 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===
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 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],
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 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<
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 (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=
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 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,
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 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=
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 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()?
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.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=
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 [],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===
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 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,
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 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"===
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 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,
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 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];
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 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);
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 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);
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 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<
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 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)&&
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 '"'==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&&
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 !(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)>=
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 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",
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 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",
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 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))}})}}}]}
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 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,
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,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,
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 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]")||
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 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+
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 "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,
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 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"===
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 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",
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 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,
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 "$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]=
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 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&&
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 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=
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,"$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,
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 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(" "),
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 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=
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 !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,
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 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);
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 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,
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 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=
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 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=
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 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,
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 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=
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 ["$$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);
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 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)},
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 "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=
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 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(){};
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 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",
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 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"),
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 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!==
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 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",
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 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++;
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 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||
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 "\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,
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 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",
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 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)})},
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 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)||
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 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";
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 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);
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=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()},
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 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=
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 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(),
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;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(")")):
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.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,
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 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(")"!==
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 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}},
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 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===
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 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))?
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 (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);
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 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",
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 "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,
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 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,
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 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,
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 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",
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.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())||
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.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)),
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 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=
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 [],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");
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 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,
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 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,
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 "=",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+
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 "!=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),
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 ";")},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=
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 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,
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){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===
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 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),
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 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),
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 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,
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 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))}),
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 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,
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 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);
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 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,
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 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,
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 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,
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 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),
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 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",
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 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),
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 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+))(.*)/,
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 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,
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 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]"===
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 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",
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 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&&
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 (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,
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 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(" ")),
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 "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=
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 "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",
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 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,
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 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,
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 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);
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 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=
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 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:"@",
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 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,
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 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,
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 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",
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 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,
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 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",
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 "$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);
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 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"),
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 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")};
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 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())})}};
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 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=
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 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;
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 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,
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 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===
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.$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]||
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 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",
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 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]+?))?$/,
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 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)},
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 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===
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 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=
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 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);
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 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=
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 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=
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 !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")):
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 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,
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 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,
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 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",
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 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,
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 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,
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 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,
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){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["!"+
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]||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,
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 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},
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 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(),
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 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=
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 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())})});
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 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",
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 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",
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 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=
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 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+=
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 "";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(" "),
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 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,
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 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>');
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 //# sourceMappingURL=angular.min.js.map
1694 //# sourceMappingURL=angular.min.js.map
1659
1695
1660 ;/*
1696 ;/*
1661 AngularJS v1.5.5
1697 AngularJS v1.7.7
1662 (c) 2010-2016 Google, Inc. http://angularjs.org
1698 (c) 2010-2018 Google, Inc. http://angularjs.org
1663 License: MIT
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 ("+
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 ("+
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",
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=
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);
1703 ["$document","$log","$browser"];e.module("ngCookies").provider("$$cookieWriter",function(){this.$get=m})})(window,window.angular);
1668 //# sourceMappingURL=angular-cookies.min.js.map
1704 //# sourceMappingURL=angular-cookies.min.js.map
1669
1705
1670 ;/*
1706 ;/*
1671 AngularJS v1.5.5
1707 AngularJS v1.7.7
1672 (c) 2010-2016 Google, Inc. http://angularjs.org
1708 (c) 2010-2018 Google, Inc. http://angularjs.org
1673 License: MIT
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");
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",
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,
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||
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=
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,
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",
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},
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,
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=
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",
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,
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,
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)&&
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");
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)):
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);
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 //# sourceMappingURL=angular-route.min.js.map
1722 //# sourceMappingURL=angular-route.min.js.map
1685
1723
1686 ;/*
1724 ;/*
1687 AngularJS v1.5.5
1725 AngularJS v1.7.7
1688 (c) 2010-2016 Google, Inc. http://angularjs.org
1726 (c) 2010-2018 Google, Inc. http://angularjs.org
1689 License: MIT
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"}}};
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",
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("."+
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"===
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:
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"/"===
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)?
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,
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=
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."),
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);
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||
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("(^|[^\\\\]):"+
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",
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"/"==
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=
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);
1737 b,b={});b=h[a].call(this,b,this,c,d);return b.$promise||b}});return h}}]})})(window,window.angular);
1700 //# sourceMappingURL=angular-resource.min.js.map
1738 //# sourceMappingURL=angular-resource.min.js.map
1701
1739
1702 ;/*
1740 ;/*
1703 AngularJS v1.5.5
1741 AngularJS v1.7.7
1704 (c) 2010-2016 Google, Inc. http://angularjs.org
1742 (c) 2010-2018 Google, Inc. http://angularjs.org
1705 License: MIT
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[];
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;
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||
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||
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);
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);
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",
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",
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]]=
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+" "+
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";
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,
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)&&
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,
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"},
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;
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,
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"===
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",
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,
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,
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)});
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",
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",
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))})}
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===
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=
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&&
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||
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&&
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,
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)||
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);
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);
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"))&&
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;
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,
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&&
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,
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)||
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",
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",
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,
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=
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=
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||
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]=
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,
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===
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,
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<=
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(" ");
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;
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",
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",
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=
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);
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();
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||
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",
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=
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})}
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=
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&&
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+
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,
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=
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=
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&&
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&&
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,
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=
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=
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=
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=
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=
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&&
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?
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",
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||
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];
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;
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");
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||
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,
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)&&
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;
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?
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();
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=
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)}});
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||
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?
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=
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},
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,
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,
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")):
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);
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 //# sourceMappingURL=angular-animate.min.js.map
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
1840 ;//Copyright (C) 2012 Kory Nunn
1800
1841
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:
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:
1802
1843
1803 //The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
1844 //The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
1804
1845
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.
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.
1806
1847
1807 /*
1848 /*
1808
1849
1809 This code is not formatted for readability, but rather run-speed and to assist compilers.
1850 This code is not formatted for readability, but rather run-speed and to assist compilers.
1810
1851
1811 However, the code's intention should be transparent.
1852 However, the code's intention should be transparent.
1812
1853
1813 *** IE SUPPORT ***
1854 *** IE SUPPORT ***
1814
1855
1815 If you require this library to work in IE7, add the following after declaring crel.
1856 If you require this library to work in IE7, add the following after declaring crel.
1816
1857
1817 var testDiv = document.createElement('div'),
1858 var testDiv = document.createElement('div'),
1818 testLabel = document.createElement('label');
1859 testLabel = document.createElement('label');
1819
1860
1820 testDiv.setAttribute('class', 'a');
1861 testDiv.setAttribute('class', 'a');
1821 testDiv['className'] !== 'a' ? crel.attrMap['class'] = 'className':undefined;
1862 testDiv['className'] !== 'a' ? crel.attrMap['class'] = 'className':undefined;
1822 testDiv.setAttribute('name','a');
1863 testDiv.setAttribute('name','a');
1823 testDiv['name'] !== 'a' ? crel.attrMap['name'] = function(element, value){
1864 testDiv['name'] !== 'a' ? crel.attrMap['name'] = function(element, value){
1824 element.id = value;
1865 element.id = value;
1825 }:undefined;
1866 }:undefined;
1826
1867
1827
1868
1828 testLabel.setAttribute('for', 'a');
1869 testLabel.setAttribute('for', 'a');
1829 testLabel['htmlFor'] !== 'a' ? crel.attrMap['for'] = 'htmlFor':undefined;
1870 testLabel['htmlFor'] !== 'a' ? crel.attrMap['for'] = 'htmlFor':undefined;
1830
1871
1831
1872
1832
1873
1833 */
1874 */
1834
1875
1835 (function (root, factory) {
1876 (function (root, factory) {
1836 if (typeof exports === 'object') {
1877 if (typeof exports === 'object') {
1837 if (!root.window) {
1878 if (!root.window) {
1838 var jsdom = require('jsdom').jsdom;
1879 var jsdom = require('jsdom').jsdom;
1839 root.window = jsdom().parentWindow;
1880 root.window = jsdom().parentWindow;
1840 }
1881 }
1841 module.exports = factory(root.window);
1882 module.exports = factory(root.window);
1842 } else if (typeof define === 'function' && define.amd) {
1883 } else if (typeof define === 'function' && define.amd) {
1843 define(factory.bind(null, window));
1884 define(factory.bind(null, window));
1844 } else {
1885 } else {
1845 root.crel = factory(root.window);
1886 root.crel = factory(root.window);
1846 }
1887 }
1847 }(this, function (window) {
1888 }(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
1889 // 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'
1890 var isNode = typeof Node === 'object'
1850 ? function (object) { return object instanceof Node }
1891 ? function (object) { return object instanceof Node }
1851 : function (object) {
1892 : function (object) {
1852 return object
1893 return object
1853 && typeof object === 'object'
1894 && typeof object === 'object'
1854 && typeof object.nodeType === 'number'
1895 && typeof object.nodeType === 'number'
1855 && typeof object.nodeName === 'string';
1896 && typeof object.nodeName === 'string';
1856 };
1897 };
1857
1898
1858 function crel(){
1899 function crel(){
1859 var document = window.document,
1900 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.
1901 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]),
1902 element = document.createElement(args[0]),
1862 child,
1903 child,
1863 settings = args[1],
1904 settings = args[1],
1864 childIndex = 2,
1905 childIndex = 2,
1865 argumentsLength = args.length,
1906 argumentsLength = args.length,
1866 attributeMap = crel.attrMap;
1907 attributeMap = crel.attrMap;
1867
1908
1868 // shortcut
1909 // shortcut
1869 if(argumentsLength === 1){
1910 if(argumentsLength === 1){
1870 return element;
1911 return element;
1871 }
1912 }
1872
1913
1873 if(typeof settings !== 'object' || isNode(settings)) {
1914 if(typeof settings !== 'object' || isNode(settings)) {
1874 --childIndex;
1915 --childIndex;
1875 settings = null;
1916 settings = null;
1876 }
1917 }
1877
1918
1878 // shortcut if there is only one child that is a string
1919 // shortcut if there is only one child that is a string
1879 if((argumentsLength - childIndex) === 1 && typeof args[childIndex] === 'string' && element.textContent !== undefined){
1920 if((argumentsLength - childIndex) === 1 && typeof args[childIndex] === 'string' && element.textContent !== undefined){
1880 element.textContent = args[childIndex];
1921 element.textContent = args[childIndex];
1881 }else{
1922 }else{
1882 for(; childIndex < argumentsLength; ++childIndex){
1923 for(; childIndex < argumentsLength; ++childIndex){
1883 child = args[childIndex];
1924 child = args[childIndex];
1884
1925
1885 if(child == null){
1926 if(child == null){
1886 continue;
1927 continue;
1887 }
1928 }
1888
1929
1889 if(!isNode(child)){
1930 if(!isNode(child)){
1890 child = document.createTextNode(child);
1931 child = document.createTextNode(child);
1891 }
1932 }
1892
1933
1893 element.appendChild(child);
1934 element.appendChild(child);
1894 }
1935 }
1895 }
1936 }
1896
1937
1897 for(var key in settings){
1938 for(var key in settings){
1898 if(!attributeMap[key]){
1939 if(!attributeMap[key]){
1899 element.setAttribute(key, settings[key]);
1940 element.setAttribute(key, settings[key]);
1900 }else{
1941 }else{
1901 var attr = crel.attrMap[key];
1942 var attr = crel.attrMap[key];
1902 if(typeof attr === 'function'){
1943 if(typeof attr === 'function'){
1903 attr(element, settings[key]);
1944 attr(element, settings[key]);
1904 }else{
1945 }else{
1905 element.setAttribute(attr, settings[key]);
1946 element.setAttribute(attr, settings[key]);
1906 }
1947 }
1907 }
1948 }
1908 }
1949 }
1909
1950
1910 return element;
1951 return element;
1911 }
1952 }
1912
1953
1913 // Used for mapping one kind of attribute to the supported version of that in bad browsers.
1954 // 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.
1955 // String referenced so that compilers maintain the property name.
1915 crel['attrMap'] = {};
1956 crel['attrMap'] = {};
1916
1957
1917 // String referenced so that compilers maintain the property name.
1958 // String referenced so that compilers maintain the property name.
1918 crel["isNode"] = isNode;
1959 crel["isNode"] = isNode;
1919
1960
1920 return crel;
1961 return crel;
1921 }));
1962 }));
1922
1963
1923 ;/*globals define, module, require, document*/
1964 ;/*globals define, module, require, document*/
1924 (function (root, factory) {
1965 (function (root, factory) {
@@ -7213,10 +7254,13 b" angular.module('appenlight.components.appenlightHeader', [])"
7213
7254
7214 ChannelstreamController.$inject = ['stateHolder', 'AeConfig'];
7255 ChannelstreamController.$inject = ['stateHolder', 'AeConfig'];
7215
7256
7216 function AppEnlightFooterController(stateHolder, AeConfig){
7257 function AppEnlightFooterController(stateHolder, AeConfig) {
7217 var vm = this;
7258 var vm = this;
7218 vm.AeConfig = AeConfig;
7259
7219 vm.stateHolder = stateHolder;
7260 vm.$onInit = function () {
7261 vm.AeConfig = AeConfig;
7262 vm.stateHolder = stateHolder;
7263 }
7220 }
7264 }
7221
7265
7222 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
7266 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -7241,33 +7285,36 b" angular.module('appenlight.components.appenlightHeader', [])"
7241
7285
7242 ChannelstreamController.$inject = ['$state', 'stateHolder', 'AeConfig'];
7286 ChannelstreamController.$inject = ['$state', 'stateHolder', 'AeConfig'];
7243
7287
7244 function AppEnlightHeaderController($state, stateHolder, AeConfig){
7288 function AppEnlightHeaderController($state, stateHolder, AeConfig) {
7245 var vm = this;
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 // exception reports
7306 // exception reports
7259 if (_.contains([1,2], event.event_type)){
7307 if (_.contains([1, 2], event.event_type)) {
7260 $state.go('report.list', {resource:event.resource_id, start_date:event.start_date});
7308 $state.go('report.list', {resource: event.resource_id, start_date: event.start_date});
7261 }
7309 }
7262 // slowness reports
7310 // slowness reports
7263 else if (_.contains([3,4], event.event_type)){
7311 else if (_.contains([3, 4], event.event_type)) {
7264 $state.go('report.list_slow', {resource:event.resource_id, start_date:event.start_date});
7312 $state.go('report.list_slow', {resource: event.resource_id, start_date: event.start_date});
7265 }
7313 }
7266 // uptime reports
7314 // uptime reports
7267 else if (_.contains([7,8], event.event_type)){
7315 else if (_.contains([7, 8], event.event_type)) {
7268 $state.go('uptime', {resource:event.resource_id, start_date:event.start_date});
7316 $state.go('uptime', {resource: event.resource_id, start_date: event.start_date});
7269 }
7317 } else {
7270 else{
7271
7318
7272 }
7319 }
7273 }
7320 }
@@ -7356,14 +7403,16 b" AdminApplicationsListController.$inject = ['applicationsResource'];"
7356 function AdminApplicationsListController(applicationsResource) {
7403 function AdminApplicationsListController(applicationsResource) {
7357
7404
7358 var vm = this;
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({
7409 vm.applications = applicationsResource.query({
7362 root_list: true,
7410 root_list: true,
7363 resource_type: 'application'
7411 resource_type: 'application'
7364 }, function (data) {
7412 }, function (data) {
7365 vm.loading = {applications: false};
7413 vm.loading = {applications: false};
7366 });
7414 });
7415 }
7367 };
7416 };
7368
7417
7369 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
7418 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -7390,29 +7439,30 b" AdminConfigurationViewController.$inject = ['configsResource', 'configsNoIdResou"
7390
7439
7391 function AdminConfigurationViewController(configsResource, configsNoIdResource) {
7440 function AdminConfigurationViewController(configsResource, configsNoIdResource) {
7392 var vm = this;
7441 var vm = this;
7393 vm.loading = {config: true};
7442 vm.$onInit = function () {
7394
7443 vm.loading = {config: true};
7395 var filters = [
7444
7396 'template_footer_html:global',
7445 var filters = [
7397 'list_groups_to_non_admins:global',
7446 'template_footer_html:global',
7398 'per_application_reports_rate_limit:global',
7447 'list_groups_to_non_admins:global',
7399 'per_application_logs_rate_limit:global',
7448 'per_application_reports_rate_limit:global',
7400 'per_application_metrics_rate_limit:global',
7449 'per_application_logs_rate_limit:global',
7401 ];
7450 'per_application_metrics_rate_limit:global',
7402
7451 ];
7403 vm.configs = {};
7452
7404
7453 vm.configs = {};
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 });
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 vm.save = function () {
7466 vm.save = function () {
7417 vm.loading.config = true;
7467 vm.loading.config = true;
7418 _.each(vm.configList, function (item) {
7468 _.each(vm.configList, function (item) {
@@ -7448,59 +7498,61 b" AdminGroupsCreateViewController.$inject = ['$state', 'groupsResource', 'groupsPr"
7448 function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyResource, sectionViewResource) {
7498 function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyResource, sectionViewResource) {
7449
7499
7450 var vm = this;
7500 var vm = this;
7451 vm.$state = $state;
7501 vm.$onInit = function () {
7452 vm.loading = {
7502 vm.$state = $state;
7453 group: false,
7503 vm.loading = {
7454 resource_permissions: false,
7504 group: false,
7455 users: false
7505 resource_permissions: false,
7456 };
7506 users: false
7507 };
7457
7508
7458 vm.form = {
7509 vm.form = {
7459 autocompleteUser: '',
7510 autocompleteUser: '',
7460 }
7511 }
7461
7512
7462
7513
7463 if (typeof $state.params.groupId !== 'undefined') {
7514 if (typeof $state.params.groupId !== 'undefined') {
7464 vm.loading.group = true;
7515 vm.loading.group = true;
7465 var groupId = $state.params.groupId;
7516 var groupId = $state.params.groupId;
7466 vm.group = groupsResource.get({groupId: groupId}, function (data) {
7517 vm.group = groupsResource.get({groupId: groupId}, function (data) {
7467 vm.loading.group = false;
7518 vm.loading.group = false;
7468 });
7519 });
7469
7520
7470 vm.resource_permissions = groupsPropertyResource.query(
7521 vm.resource_permissions = groupsPropertyResource.query(
7471 {groupId: groupId, key: 'resource_permissions'}, function (data) {
7522 {groupId: groupId, key: 'resource_permissions'}, function (data) {
7472 vm.loading.resource_permissions = false;
7523 vm.loading.resource_permissions = false;
7473 var tmpObj = {
7524 var tmpObj = {
7474 'group': {
7525 'group': {
7475 'application': {},
7526 'application': {},
7476 'dashboard': {}
7527 '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: []
7486 }
7528 }
7487 }
7529 };
7488 section[item.resource_id].permissions.push(item.perm_name);
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(
7545 vm.users = groupsPropertyResource.query(
7495 {groupId: groupId, key: 'users'}, function (data) {
7546 {groupId: groupId, key: 'users'}, function (data) {
7496 vm.loading.users = false;
7547 vm.loading.users = false;
7497 }, function () {
7548 }, function () {
7498 vm.loading.users = false;
7549 vm.loading.users = false;
7499 });
7550 });
7551
7552 } else {
7553 var groupId = null;
7554 }
7500
7555
7501 }
7502 else {
7503 var groupId = null;
7504 }
7556 }
7505
7557
7506 var formResponse = function (response) {
7558 var formResponse = function (response) {
@@ -7517,8 +7569,7 b' function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyR'
7517 setServerValidation(vm.groupForm);
7569 setServerValidation(vm.groupForm);
7518 vm.loading.group = false;
7570 vm.loading.group = false;
7519 }, formResponse);
7571 }, formResponse);
7520 }
7572 } else {
7521 else {
7522 groupsResource.save(vm.group, function (data) {
7573 groupsResource.save(vm.group, function (data) {
7523 $state.go('admin.group.update', {groupId: data.id});
7574 $state.go('admin.group.update', {groupId: data.id});
7524 }, formResponse);
7575 }, formResponse);
@@ -7558,10 +7609,10 b' function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyR'
7558 view: 'search_users',
7609 view: 'search_users',
7559 'user_name': searchPhrase
7610 'user_name': searchPhrase
7560 }).$promise.then(function (data) {
7611 }).$promise.then(function (data) {
7561 return _.map(data, function (item) {
7612 return _.map(data, function (item) {
7562 return item.user;
7613 return item.user;
7563 });
7564 });
7614 });
7615 });
7565 }
7616 }
7566 };
7617 };
7567
7618
@@ -7590,20 +7641,21 b" AdminGroupsListViewController.$inject = ['$state', 'groupsResource'];"
7590 function AdminGroupsListViewController($state, groupsResource) {
7641 function AdminGroupsListViewController($state, groupsResource) {
7591
7642
7592 var vm = this;
7643 var vm = this;
7593 vm.$state = $state;
7644 this.$onInit = function () {
7594 vm.loading = {groups: true};
7645 vm.$state = $state;
7595
7646 vm.loading = {groups: true};
7596 vm.groups = groupsResource.query({}, function (data) {
7647
7597 vm.loading = {groups: false};
7648 vm.groups = groupsResource.query({}, function (data) {
7598 vm.activeUsers = _.reduce(vm.groups, function(memo, val){
7649 vm.loading = {groups: false};
7599 if (val.status == 1){
7650 vm.activeUsers = _.reduce(vm.groups, function (memo, val) {
7600 return memo + 1;
7651 if (val.status == 1) {
7601 }
7652 return memo + 1;
7602 return memo;
7653 }
7603 }, 0);
7654 return memo;
7604
7655 }, 0);
7605 });
7656
7606
7657 });
7658 }
7607
7659
7608 vm.removeGroup = function (group) {
7660 vm.removeGroup = function (group) {
7609 groupsResource.remove({groupId: group.id}, function (data, responseHeaders) {
7661 groupsResource.remove({groupId: group.id}, function (data, responseHeaders) {
@@ -7643,14 +7695,18 b" AdminPartitionsViewController.$inject = ['sectionViewResource'];"
7643
7695
7644 function AdminPartitionsViewController(sectionViewResource) {
7696 function AdminPartitionsViewController(sectionViewResource) {
7645 var vm = this;
7697 var vm = this;
7646 vm.permanentPartitions = [];
7698 this.$onInit = function () {
7647 vm.dailyPartitions = [];
7699 vm.permanentPartitions = [];
7648 vm.loading = {partitions: true};
7700 vm.dailyPartitions = [];
7649 vm.dailyChecked = false;
7701 vm.loading = {partitions: true};
7650 vm.permChecked = false;
7702 vm.dailyChecked = false;
7651 vm.dailyConfirm = '';
7703 vm.permChecked = false;
7652 vm.permConfirm = '';
7704 vm.dailyConfirm = '';
7705 vm.permConfirm = '';
7653
7706
7707 sectionViewResource.get({section: 'admin_section', view: 'partitions'},
7708 vm.loadPartitions);
7709 }
7654
7710
7655 vm.loadPartitions = function (data) {
7711 vm.loadPartitions = function (data) {
7656 var permanentPartitions = vm.transformPartitionList(
7712 var permanentPartitions = vm.transformPartitionList(
@@ -7664,17 +7720,15 b' function AdminPartitionsViewController(sectionViewResource) {'
7664
7720
7665 vm.setCheckedList = function (scope) {
7721 vm.setCheckedList = function (scope) {
7666 var toTest = null;
7722 var toTest = null;
7667 if (scope === 'dailyPartitions'){
7723 if (scope === 'dailyPartitions') {
7668 toTest = 'dailyChecked';
7724 toTest = 'dailyChecked';
7669 }
7725 } else {
7670 else{
7671 toTest = 'permChecked';
7726 toTest = 'permChecked';
7672 }
7727 }
7673
7728
7674 if (vm[toTest]) {
7729 if (vm[toTest]) {
7675 var val = true;
7730 var val = true;
7676 }
7731 } else {
7677 else {
7678 var val = false;
7732 var val = false;
7679 }
7733 }
7680
7734
@@ -7711,9 +7765,6 b' function AdminPartitionsViewController(sectionViewResource) {'
7711 return outputList;
7765 return outputList;
7712 };
7766 };
7713
7767
7714 sectionViewResource.get({section:'admin_section', view: 'partitions'},
7715 vm.loadPartitions);
7716
7717 vm.partitionsDelete = function (partitionType) {
7768 vm.partitionsDelete = function (partitionType) {
7718 var es_indices = [];
7769 var es_indices = [];
7719 var pg_indices = [];
7770 var pg_indices = [];
@@ -7732,8 +7783,10 b' function AdminPartitionsViewController(sectionViewResource) {'
7732
7783
7733
7784
7734 vm.loading = {partitions: true};
7785 vm.loading = {partitions: true};
7735 sectionViewResource.save({section:'admin_section',
7786 sectionViewResource.save({
7736 view: 'partitions_remove'}, {
7787 section: 'admin_section',
7788 view: 'partitions_remove'
7789 }, {
7737 es_indices: es_indices,
7790 es_indices: es_indices,
7738 pg_indices: pg_indices,
7791 pg_indices: pg_indices,
7739 confirm: 'CONFIRM'
7792 confirm: 'CONFIRM'
@@ -7767,24 +7820,26 b" AdminSystemViewController.$inject = ['sectionViewResource'];"
7767
7820
7768 function AdminSystemViewController(sectionViewResource) {
7821 function AdminSystemViewController(sectionViewResource) {
7769 var vm = this;
7822 var vm = this;
7770 vm.tables = [];
7823 this.$onInit = function () {
7771 vm.loading = {system: true};
7824 vm.tables = [];
7772 sectionViewResource.get({
7825 vm.loading = {system: true};
7773 section: 'admin_section',
7826
7774 view: 'system'
7827 sectionViewResource.get({
7775 }, null, function (data) {
7828 section: 'admin_section',
7776 vm.DBtables = data.db_tables;
7829 view: 'system'
7777 vm.ESIndices = data.es_indices;
7830 }, null, function (data) {
7778 vm.queueStats = data.queue_stats;
7831 vm.DBtables = data.db_tables;
7779 vm.systemLoad = data.system_load;
7832 vm.ESIndices = data.es_indices;
7780 vm.packages = data.packages;
7833 vm.queueStats = data.queue_stats;
7781 vm.processInfo = data.process_info;
7834 vm.systemLoad = data.system_load;
7782 vm.disks = data.disks;
7835 vm.packages = data.packages;
7783 vm.memory = data.memory;
7836 vm.processInfo = data.process_info;
7784 vm.selfInfo = data.self_info;
7837 vm.disks = data.disks;
7785
7838 vm.memory = data.memory;
7786 vm.loading.system = false;
7839 vm.selfInfo = data.self_info;
7787 });
7840 vm.loading.system = false;
7841 });
7842 }
7788 };
7843 };
7789
7844
7790 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
7845 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -7812,54 +7867,55 b" AdminUsersCreateViewController.$inject = ['$state', 'usersResource', 'usersPrope"
7812 function AdminUsersCreateViewController($state, usersResource, usersPropertyResource, sectionViewResource, AeConfig) {
7867 function AdminUsersCreateViewController($state, usersResource, usersPropertyResource, sectionViewResource, AeConfig) {
7813
7868
7814 var vm = this;
7869 var vm = this;
7815 vm.$state = $state;
7870 vm.$onInit = function () {
7816 vm.loading = {user: false};
7871 vm.$state = $state;
7872 vm.loading = {user: false};
7817
7873
7818
7874
7819 if (typeof $state.params.userId !== 'undefined') {
7875 if (typeof $state.params.userId !== 'undefined') {
7820 vm.loading.user = true;
7876 vm.loading.user = true;
7821 var userId = $state.params.userId;
7877 var userId = $state.params.userId;
7822 vm.user = usersResource.get({userId: userId}, function (data) {
7878 vm.user = usersResource.get({userId: userId}, function (data) {
7823 vm.loading.user = false;
7879 vm.loading.user = false;
7824 // cast to true for angular checkbox
7880 // cast to true for angular checkbox
7825 if (vm.user.status === 1) {
7881 if (vm.user.status === 1) {
7826 vm.user.status = true;
7882 vm.user.status = true;
7827 }
7883 }
7828 });
7884 });
7829
7885
7830 vm.resource_permissions = usersPropertyResource.query(
7886 vm.resource_permissions = usersPropertyResource.query(
7831 {userId: userId, key: 'resource_permissions'}, function (data) {
7887 {userId: userId, key: 'resource_permissions'}, function (data) {
7832 vm.loading.resource_permissions = false;
7888 vm.loading.resource_permissions = false;
7833 var tmpObj = {
7889 var tmpObj = {
7834 'user': {
7890 'user': {
7835 'application': {},
7891 'application': {},
7836 'dashboard': {}
7892 'dashboard': {}
7837 },
7893 },
7838 'group': {
7894 'group': {
7839 'application': {},
7895 'application': {},
7840 'dashboard': {}
7896 '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: []
7850 }
7897 }
7851 }
7898 };
7852 section[item.resource_id].permissions.push(item.perm_name);
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 }
7914 } else {
7859 else {
7915 var userId = null;
7860 var userId = null;
7916 vm.user = {
7861 vm.user = {
7917 status: true
7862 status: true
7918 }
7863 }
7919 }
7864 }
7920 }
7865
7921
@@ -7933,19 +7989,20 b" AdminUserListViewController.$inject = ['usersResource'];"
7933 function AdminUserListViewController(usersResource) {
7989 function AdminUserListViewController(usersResource) {
7934
7990
7935 var vm = this;
7991 var vm = this;
7936 vm.loading = {users: true};
7992 vm.$onInit = function () {
7937
7993 vm.loading = {users: true};
7938 vm.users = usersResource.query({}, function (data) {
7994
7939 vm.loading = {users: false};
7995 vm.users = usersResource.query({}, function (data) {
7940 vm.activeUsers = _.reduce(vm.users, function(memo, val){
7996 vm.loading = {users: false};
7941 if (val.status == 1){
7997 vm.activeUsers = _.reduce(vm.users, function (memo, val) {
7942 return memo + 1;
7998 if (val.status == 1) {
7943 }
7999 return memo + 1;
7944 return memo;
8000 }
7945 }, 0);
8001 return memo;
7946
8002 }, 0);
7947 });
8003
7948
8004 });
8005 }
7949
8006
7950 vm.removeUser = function (user) {
8007 vm.removeUser = function (user) {
7951 usersResource.remove({userId: user.id}, function (data, responseHeaders) {
8008 usersResource.remove({userId: user.id}, function (data, responseHeaders) {
@@ -7984,9 +8041,12 b" angular.module('appenlight.components.adminView', [])"
7984 AdminViewController.$inject = ['$state', 'AeConfig'];
8041 AdminViewController.$inject = ['$state', 'AeConfig'];
7985
8042
7986 function AdminViewController($state, AeConfig) {
8043 function AdminViewController($state, AeConfig) {
7987 this.$state = $state;
8044 this.$onInit = function () {
7988 this.AeConfig = AeConfig;
8045 this.$state = $state;
7989 console.info('AdminViewController');
8046 this.AeConfig = AeConfig;
8047 console.info('AdminViewController');
8048 }
8049
7990 }
8050 }
7991
8051
7992 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
8052 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -8014,11 +8074,13 b" IntegrationsListViewController.$inject = ['$state', 'applicationsResource'];"
8014 function IntegrationsListViewController($state, applicationsResource) {
8074 function IntegrationsListViewController($state, applicationsResource) {
8015
8075
8016 var vm = this;
8076 var vm = this;
8017 vm.loading = {application: true};
8077 vm.$onInit = function () {
8018 vm.resource = applicationsResource.get({resourceId: $state.params.resourceId}, function (data) {
8078 vm.loading = {application: true};
8019 vm.loading.application = false;
8079 vm.resource = applicationsResource.get({resourceId: $state.params.resourceId}, function (data) {
8020 $state.current.data.resource = vm.resource;
8080 vm.loading.application = false;
8021 });
8081 $state.current.data.resource = vm.resource;
8082 });
8083 }
8022 }
8084 }
8023
8085
8024 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
8086 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -8046,11 +8108,13 b" ApplicationsListViewController.$inject = ['$state', 'applicationsResource'];"
8046 function ApplicationsListViewController($state, applicationsResource) {
8108 function ApplicationsListViewController($state, applicationsResource) {
8047
8109
8048 var vm = this;
8110 var vm = this;
8049 vm.$state = $state;
8111 vm.$onInit = function () {
8050 vm.loading = {applications: true};
8112 vm.$state = $state;
8051 vm.applications = applicationsResource.query(null, function(){
8113 vm.loading = {applications: true};
8052 vm.loading.applications = false;
8114 vm.applications = applicationsResource.query(null, function () {
8053 });
8115 vm.loading.applications = false;
8116 });
8117 }
8054 }
8118 }
8055
8119
8056 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
8120 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -8073,23 +8137,25 b" angular.module('appenlight.components.applicationsPurgeLogsView', [])"
8073 controller: applicationsPurgeLogsViewController
8137 controller: applicationsPurgeLogsViewController
8074 });
8138 });
8075
8139
8076 applicationsPurgeLogsViewController.$inject = ['$state' ,'applicationsResource', 'sectionViewResource', 'logsNoIdResource'];
8140 applicationsPurgeLogsViewController.$inject = ['$state', 'applicationsResource', 'sectionViewResource', 'logsNoIdResource'];
8077
8141
8078 function applicationsPurgeLogsViewController($state, applicationsResource, sectionViewResource, logsNoIdResource) {
8142 function applicationsPurgeLogsViewController($state, applicationsResource, sectionViewResource, logsNoIdResource) {
8079
8143
8080 var vm = this;
8144 var vm = this;
8081 vm.$state = $state;
8145 vm.$onInit = function () {
8082 vm.loading = {applications: true};
8146 vm.$state = $state;
8147 vm.loading = {applications: true};
8083
8148
8084 vm.namespace = null;
8149 vm.namespace = null;
8085 vm.selectedResource = null;
8150 vm.selectedResource = null;
8086 vm.commonNamespaces = [];
8151 vm.commonNamespaces = [];
8087
8152
8088 vm.applications = applicationsResource.query({'type':'update_reports'}, function () {
8153 vm.applications = applicationsResource.query({'type': 'update_reports'}, function () {
8089 vm.loading.applications = false;
8154 vm.loading.applications = false;
8090 vm.selectedResource = vm.applications[0].resource_id;
8155 vm.selectedResource = vm.applications[0].resource_id;
8091 vm.getCommonKeys();
8156 vm.getCommonKeys();
8092 });
8157 });
8158 }
8093
8159
8094 /**
8160 /**
8095 * Fetches most commonly used tags in logs
8161 * Fetches most commonly used tags in logs
@@ -8106,8 +8172,10 b' function applicationsPurgeLogsViewController($state, applicationsResource, secti'
8106
8172
8107 vm.purgeLogs = function () {
8173 vm.purgeLogs = function () {
8108 vm.loading.applications = true;
8174 vm.loading.applications = true;
8109 logsNoIdResource.delete({resource:vm.selectedResource,
8175 logsNoIdResource.delete({
8110 namespace: vm.namespace}, function(){
8176 resource: vm.selectedResource,
8177 namespace: vm.namespace
8178 }, function () {
8111 vm.loading.applications = false;
8179 vm.loading.applications = false;
8112 });
8180 });
8113 }
8181 }
@@ -8139,41 +8207,41 b' function applicationsUpdateViewController($state, applicationsNoIdResource, appl'
8139 'use strict';
8207 'use strict';
8140
8208
8141 var vm = this;
8209 var vm = this;
8142 vm.AeConfig = AeConfig;
8210 vm.$onInit = function () {
8143 vm.$state = $state;
8211 vm.AeConfig = AeConfig;
8144 vm.loading = {application: false};
8212 vm.$state = $state;
8145
8213 vm.loading = {application: false};
8146 vm.groupingOptions = [
8214
8147 ['url_type', 'Error Type + location'],
8215 vm.groupingOptions = [
8148 ['url_traceback', 'Traceback + location'],
8216 ['url_type', 'Error Type + location'],
8149 ['traceback_server', 'Traceback + Server'],
8217 ['url_traceback', 'Traceback + location'],
8150 ];
8218 ['traceback_server', 'Traceback + Server'],
8151 var resourceId = $state.params.resourceId;
8219 ];
8152 var options = {};
8220 var resourceId = $state.params.resourceId;
8153 vm.momentJs = moment;
8221 var options = {};
8154 vm.formTransferModel = {password:''};
8222 vm.momentJs = moment;
8155
8223 vm.formTransferModel = {password: ''};
8156 // set initial data
8224
8157
8225 // set initial data
8158 if (resourceId === 'new') {
8226
8159 vm.resource = {
8227 if (resourceId === 'new') {
8160 resource_id: null,
8228 vm.resource = {
8161 slow_report_threshold: 10,
8229 resource_id: null,
8162 error_report_threshold: 10,
8230 slow_report_threshold: 10,
8163 allow_permanent_storage: true,
8231 error_report_threshold: 10,
8164 default_grouping: vm.groupingOptions[1][0]
8232 allow_permanent_storage: true,
8165 };
8233 default_grouping: vm.groupingOptions[1][0]
8166 }
8234 };
8167 else {
8235 } else {
8168 vm.loading.application = true;
8236 vm.loading.application = true;
8169 vm.resource = applicationsResource.get({
8237 vm.resource = applicationsResource.get({
8170 'resourceId': resourceId
8238 'resourceId': resourceId
8171 }, function (data) {
8239 }, function (data) {
8172 vm.loading.application = false;
8240 vm.loading.application = false;
8173 });
8241 });
8242 }
8174 }
8243 }
8175
8244
8176
8177 vm.updateBasicForm = function () {
8245 vm.updateBasicForm = function () {
8178 vm.loading.application = true;
8246 vm.loading.application = true;
8179 if (vm.resource.resource_id === null) {
8247 if (vm.resource.resource_id === null) {
@@ -8304,15 +8372,16 b" EventBrowserController.$inject = ['eventsNoIdResource', 'eventsResource'];"
8304 function EventBrowserController(eventsNoIdResource, eventsResource) {
8372 function EventBrowserController(eventsNoIdResource, eventsResource) {
8305 console.info('EventBrowserController');
8373 console.info('EventBrowserController');
8306 var vm = this;
8374 var vm = this;
8375 vm.$onInit = function () {
8307
8376
8308 vm.loading = {events: true};
8377 vm.loading = {events: true};
8309
8310 vm.events = eventsNoIdResource.query(
8311 {key: 'events'},
8312 function (data) {
8313 vm.loading.events = false;
8314 });
8315
8378
8379 vm.events = eventsNoIdResource.query(
8380 {key: 'events'},
8381 function (data) {
8382 vm.loading.events = false;
8383 });
8384 }
8316
8385
8317 vm.closeEvent = function (event) {
8386 vm.closeEvent = function (event) {
8318
8387
@@ -8347,359 +8416,376 b" IndexDashboardController.$inject = ['$rootScope', '$scope', '$location','$cookie"
8347
8416
8348 function IndexDashboardController($rootScope, $scope, $location, $cookies, $interval, stateHolder, applicationsPropertyResource, AeConfig) {
8417 function IndexDashboardController($rootScope, $scope, $location, $cookies, $interval, stateHolder, applicationsPropertyResource, AeConfig) {
8349 var vm = this;
8418 var vm = this;
8350 stateHolder.section = 'dashboard';
8419 vm.$onInit = function () {
8351 vm.timeOptions = {};
8420 stateHolder.section = 'dashboard';
8352 var allowed = ['1h', '4h', '12h', '24h', '1w', '2w', '1M'];
8421 vm.timeOptions = {};
8353 _.each(allowed, function (key) {
8422 var allowed = ['1h', '4h', '12h', '24h', '1w', '2w', '1M'];
8354 if (allowed.indexOf(key) !== -1) {
8423 _.each(allowed, function (key) {
8355 vm.timeOptions[key] = AeConfig.timeOptions[key];
8424 if (allowed.indexOf(key) !== -1) {
8356 }
8425 vm.timeOptions[key] = AeConfig.timeOptions[key];
8357 });
8426 }
8358 vm.stateHolder = stateHolder;
8427 });
8359 vm.urls = AeConfig.urls;
8428 vm.stateHolder = stateHolder;
8360 vm.applications = stateHolder.AeUser.applications_map;
8429 vm.urls = AeConfig.urls;
8361 vm.show_dashboard = false;
8430 vm.applications = stateHolder.AeUser.applications_map;
8362 vm.resource = null;
8431 vm.show_dashboard = false;
8363 vm.graphType = {selected: null};
8432 vm.resource = null;
8364 vm.timeSpan = vm.timeOptions['1h'];
8433 vm.graphType = {selected: null};
8365 vm.trendingReports = [];
8434 vm.timeSpan = vm.timeOptions['1h'];
8366 vm.exceptions = 0;
8435 vm.trendingReports = [];
8367 vm.satisfyingRequests = 0;
8436 vm.exceptions = 0;
8368 vm.toleratedRequests = 0;
8437 vm.satisfyingRequests = 0;
8369 vm.frustratingRequests = 0;
8438 vm.toleratedRequests = 0;
8370 vm.uptimeStats = 0;
8439 vm.frustratingRequests = 0;
8371 vm.apdexStats = [];
8440 vm.uptimeStats = 0;
8372 vm.seriesRequestsData = [];
8441 vm.apdexStats = [];
8373 vm.seriesMetricsData = [];
8442 vm.seriesRequestsData = [];
8374 vm.seriesSlowData = [];
8443 vm.seriesMetricsData = [];
8375 vm.slowCalls = [];
8444 vm.seriesSlowData = [];
8376 vm.slowURIS = [];
8445 vm.slowCalls = [];
8377
8446 vm.slowURIS = [];
8378 vm.reportChartConfig = {
8447
8379 data: {
8448 vm.reportChartConfig = {
8380 json: [],
8449 data: {
8381 xFormat: '%Y-%m-%dT%H:%M:%S'
8450 json: [],
8382 },
8451 xFormat: '%Y-%m-%dT%H:%M:%S'
8383 color: {
8452 },
8384 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
8453 color: {
8385 },
8454 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
8386 axis: {
8455 },
8387 x: {
8456 axis: {
8388 type: 'timeseries',
8457 x: {
8389 tick: {
8458 type: 'timeseries',
8390 culling: {
8459 tick: {
8391 max: 6 // the number of tick texts will be adjusted to less than this value
8460 culling: {
8392 },
8461 max: 6 // the number of tick texts will be adjusted to less than this value
8393 format: '%Y-%m-%d %H:%M'
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: {
8473 subchart: {
8397 tick: {
8474 show: true,
8398 count: 5,
8475 size: {
8399 format: d3.format('.2s')
8476 height: 20
8400 }
8477 }
8401 }
8478 },
8402 },
8403 subchart: {
8404 show: true,
8405 size: {
8479 size: {
8406 height: 20
8480 height: 250
8407 }
8408 },
8409 size: {
8410 height: 250
8411 },
8412 zoom: {
8413 rescale: true
8414 },
8415 grid: {
8416 x: {
8417 show: true
8418 },
8481 },
8419 y: {
8482 zoom: {
8420 show: true
8483 rescale: true
8421 }
8484 },
8422 },
8485 grid: {
8423 tooltip: {
8486 x: {
8424 format: {
8487 show: true
8425 title: function (d) {
8426 return '' + d;
8427 },
8488 },
8428 value: function (v) {
8489 y: {
8429 return v
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 }
8503 };
8433 };
8504 vm.reportChartData = {};
8434 vm.reportChartData = {};
8435
8505
8436 vm.reportSlowChartConfig = {
8506 vm.reportSlowChartConfig = {
8437 data: {
8507 data: {
8438 json: [],
8508 json: [],
8439 xFormat: '%Y-%m-%dT%H:%M:%S'
8509 xFormat: '%Y-%m-%dT%H:%M:%S'
8440 },
8510 },
8441 color: {
8511 color: {
8442 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
8512 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
8443 },
8513 },
8444 axis: {
8514 axis: {
8445 x: {
8515 x: {
8446 type: 'timeseries',
8516 type: 'timeseries',
8447 tick: {
8517 tick: {
8448 culling: {
8518 culling: {
8449 max: 6 // the number of tick texts will be adjusted to less than this value
8519 max: 6 // the number of tick texts will be adjusted to less than this value
8450 },
8520 },
8451 format: '%Y-%m-%d %H:%M'
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: {
8531 subchart: {
8455 tick: {
8532 show: true,
8456 count: 5,
8533 size: {
8457 format: d3.format('.2s')
8534 height: 20
8458 }
8535 }
8459 }
8536 },
8460 },
8461 subchart: {
8462 show: true,
8463 size: {
8537 size: {
8464 height: 20
8538 height: 250
8465 }
8466 },
8467 size: {
8468 height: 250
8469 },
8470 zoom: {
8471 rescale: true
8472 },
8473 grid: {
8474 x: {
8475 show: true
8476 },
8539 },
8477 y: {
8540 zoom: {
8478 show: true
8541 rescale: true
8479 }
8542 },
8480 },
8543 grid: {
8481 tooltip: {
8544 x: {
8482 format: {
8545 show: true
8483 title: function (d) {
8484 return '' + d;
8485 },
8546 },
8486 value: function (v) {
8547 y: {
8487 return v
8548 show: true
8488 }
8549 }
8489 }
8550 },
8490 }
8551 tooltip: {
8491 };
8552 format: {
8492 vm.reportSlowChartData = {};
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 = {
8564 vm.metricsChartConfig = {
8495 data: {
8565 data: {
8496 json: [],
8566 json: [],
8497 xFormat: '%Y-%m-%dT%H:%M:%S',
8567 xFormat: '%Y-%m-%dT%H:%M:%S',
8498 keys: {
8568 keys: {
8499 x: 'x',
8569 x: 'x',
8500 value: ["main", "sql", "nosql", "tmpl", "remote", "custom"]
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: {
8584 color: {
8503 main: 'View/Application logic',
8585 pattern: ['#6baed6', '#c7e9c0', '#fd8d3c', '#d6616b', '#ffcc00', '#c6dbef']
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'
8509 },
8586 },
8510 type: 'area',
8587 axis: {
8511 groups: [["main", "sql", "nosql", "remote", "custom", "tmpl"]],
8588 x: {
8512 order: null
8589 type: 'timeseries',
8513 },
8590 tick: {
8514 color: {
8591 culling: {
8515 pattern: ['#6baed6', '#c7e9c0', '#fd8d3c', '#d6616b', '#ffcc00', '#c6dbef']
8592 max: 6 // the number of tick texts will be adjusted to less than this value
8516 },
8593 },
8517 axis: {
8594 format: '%Y-%m-%d %H:%M'
8518 x: {
8595 }
8519 type: 'timeseries',
8596 },
8520 tick: {
8597 y: {
8521 culling: {
8598 tick: {
8522 max: 6 // the number of tick texts will be adjusted to less than this value
8599 count: 5,
8523 },
8600 format: d3.format('.2f')
8524 format: '%Y-%m-%d %H:%M'
8601 }
8525 }
8602 }
8526 },
8603 },
8527 y: {
8604 point: {
8528 tick: {
8605 show: false
8529 count: 5,
8606 },
8530 format: d3.format('.2f')
8607 subchart: {
8608 show: true,
8609 size: {
8610 height: 20
8531 }
8611 }
8532 }
8612 },
8533 },
8534 point: {
8535 show: false
8536 },
8537 subchart: {
8538 show: true,
8539 size: {
8613 size: {
8540 height: 20
8614 height: 350
8541 }
8542 },
8543 size: {
8544 height: 350
8545 },
8546 zoom: {
8547 rescale: true
8548 },
8549 grid: {
8550 x: {
8551 show: true
8552 },
8615 },
8553 y: {
8616 zoom: {
8554 show: true
8617 rescale: true
8555 }
8618 },
8556 },
8619 grid: {
8557 tooltip: {
8620 x: {
8558 format: {
8621 show: true
8559 title: function (d) {
8560 return '' + d;
8561 },
8622 },
8562 value: function (v) {
8623 y: {
8563 return v
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 }
8637 };
8567 };
8638 vm.metricsChartData = {};
8568 vm.metricsChartData = {};
8569
8639
8570 vm.responseChartConfig = {
8640 vm.responseChartConfig = {
8571 data: {
8641 data: {
8572 json: [],
8642 json: [],
8573 xFormat: '%Y-%m-%dT%H:%M:%S'
8643 xFormat: '%Y-%m-%dT%H:%M:%S'
8574 },
8644 },
8575 color: {
8645 color: {
8576 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
8646 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
8577 },
8647 },
8578 axis: {
8648 axis: {
8579 x: {
8649 x: {
8580 type: 'timeseries',
8650 type: 'timeseries',
8581 tick: {
8651 tick: {
8582 culling: {
8652 culling: {
8583 max: 6 // the number of tick texts will be adjusted to less than this value
8653 max: 6 // the number of tick texts will be adjusted to less than this value
8584 },
8654 },
8585 format: '%Y-%m-%d %H:%M'
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: {
8665 point: {
8589 tick: {
8666 show: false
8590 count: 5,
8667 },
8591 format: d3.format('.2f')
8668 subchart: {
8669 show: true,
8670 size: {
8671 height: 20
8592 }
8672 }
8593 }
8673 },
8594 },
8595 point: {
8596 show: false
8597 },
8598 subchart: {
8599 show: true,
8600 size: {
8674 size: {
8601 height: 20
8675 height: 350
8602 }
8603 },
8604 size: {
8605 height: 350
8606 },
8607 zoom: {
8608 rescale: true
8609 },
8610 grid: {
8611 x: {
8612 show: true
8613 },
8676 },
8614 y: {
8677 zoom: {
8615 show: true
8678 rescale: true
8616 }
8679 },
8617 },
8680 grid: {
8618 tooltip: {
8681 x: {
8619 format: {
8682 show: true
8620 title: function (d) {
8621 return '' + d;
8622 },
8683 },
8623 value: function (v) {
8684 y: {
8624 return v
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 }
8698 };
8628 };
8699 vm.responseChartData = {};
8629 vm.responseChartData = {};
8630
8700
8631 vm.requestsChartConfig = {
8701 vm.requestsChartConfig = {
8632 data: {
8702 data: {
8633 json: [],
8703 json: [],
8634 xFormat: '%Y-%m-%dT%H:%M:%S'
8704 xFormat: '%Y-%m-%dT%H:%M:%S'
8635 },
8705 },
8636 color: {
8706 color: {
8637 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
8707 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
8638 },
8708 },
8639 axis: {
8709 axis: {
8640 x: {
8710 x: {
8641 type: 'timeseries',
8711 type: 'timeseries',
8642 tick: {
8712 tick: {
8643 culling: {
8713 culling: {
8644 max: 6 // the number of tick texts will be adjusted to less than this value
8714 max: 6 // the number of tick texts will be adjusted to less than this value
8645 },
8715 },
8646 format: '%Y-%m-%d %H:%M'
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: {
8726 point: {
8650 tick: {
8727 show: false
8651 count: 5,
8728 },
8652 format: d3.format('.2f')
8729 subchart: {
8730 show: true,
8731 size: {
8732 height: 20
8653 }
8733 }
8654 }
8734 },
8655 },
8656 point: {
8657 show: false
8658 },
8659 subchart: {
8660 show: true,
8661 size: {
8735 size: {
8662 height: 20
8736 height: 350
8663 }
8664 },
8665 size: {
8666 height: 350
8667 },
8668 zoom: {
8669 rescale: true
8670 },
8671 grid: {
8672 x: {
8673 show: true
8674 },
8737 },
8675 y: {
8738 zoom: {
8676 show: true
8739 rescale: true
8677 }
8740 },
8678 },
8741 grid: {
8679 tooltip: {
8742 x: {
8680 format: {
8743 show: true
8681 title: function (d) {
8682 return '' + d;
8683 },
8744 },
8684 value: function (v) {
8745 y: {
8685 return v
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 }
8759 };
8689 };
8760 vm.requestsChartData = {};
8690 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 = {
8773 vm.intervalId = $interval(function () {
8693 'apdex': true,
8774 if (_.contains(['30m', "1h"], vm.timeSpan.key)) {
8694 'reports': true,
8775 // don't do anything if window is unfocused
8695 'graphs': true,
8776 if(document.hidden === true){
8696 'slowCalls': true,
8777 return ;
8697 'slowURIS': true,
8778 }
8698 'requestsBreakdown': true,
8779 vm.refreshData();
8699 'series': true
8780 }
8700 };
8781 }, 60000);
8701 vm.stream = {paused: false, filtered: false, messages: [], reports: []};
8702
8782
8783 if (stateHolder.AeUser.applications.length){
8784 vm.show_dashboard = true;
8785 vm.determineStartState();
8786 }
8787
8788 }
8703 $rootScope.$on('channelstream-message.front_dashboard.new_topic', function(event, message){
8789 $rootScope.$on('channelstream-message.front_dashboard.new_topic', function(event, message){
8704 var ws_report = message.message.report;
8790 var ws_report = message.message.report;
8705 if (ws_report.http_status != 500) {
8791 if (ws_report.http_status != 500) {
@@ -8788,16 +8874,6 b' function IndexDashboardController($rootScope, $scope, $location, $cookies, $inte'
8788 vm.refreshData();
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 vm.fetchApdexStats = function () {
8877 vm.fetchApdexStats = function () {
8802 vm.loading.apdex = true;
8878 vm.loading.apdex = true;
8803 vm.apdexStats = applicationsPropertyResource.query({
8879 vm.apdexStats = applicationsPropertyResource.query({
@@ -8978,11 +9054,6 b' function IndexDashboardController($rootScope, $scope, $location, $cookies, $inte'
8978 $scope.$on('$destroy',function(){
9054 $scope.$on('$destroy',function(){
8979 $interval.cancel(vm.intervalId);
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 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
9059 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -9005,17 +9076,18 b" ApplicationsIntegrationsEditViewController.$inject = ['$state', 'integrationReso"
9005 function ApplicationsIntegrationsEditViewController($state, integrationResource) {
9076 function ApplicationsIntegrationsEditViewController($state, integrationResource) {
9006
9077
9007 var vm = this;
9078 var vm = this;
9008 vm.$state = $state;
9079 vm.$onInit = function () {
9009 vm.loading = {integration: true};
9080 vm.$state = $state;
9010 vm.config = integrationResource.get(
9081 vm.loading = {integration: true};
9011 {
9082 vm.config = integrationResource.get(
9012 integration: $state.params.integration,
9083 {
9013 action: 'setup',
9084 integration: $state.params.integration,
9014 resourceId: $state.params.resourceId
9085 action: 'setup',
9015 }, function (data) {
9086 resourceId: $state.params.resourceId
9016 vm.loading.integration = false;
9087 }, function (data) {
9017 });
9088 vm.loading.integration = false;
9018
9089 });
9090 }
9019 vm.configureIntegration = function () {
9091 vm.configureIntegration = function () {
9020 console.info('configureIntegration');
9092 console.info('configureIntegration');
9021 vm.loading.integration = true;
9093 vm.loading.integration = true;
@@ -9139,142 +9211,156 b" LogsBrowserController.$inject = ['$location', 'stateHolder', 'typeAheadTagHelper"
9139
9211
9140 function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsNoIdResource, sectionViewResource) {
9212 function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsNoIdResource, sectionViewResource) {
9141 var vm = this;
9213 var vm = this;
9142 vm.logEventsChartConfig = {
9214 vm.$onInit = function () {
9143 data: {
9215 vm.logEventsChartConfig = {
9144 json: [],
9216 data: {
9145 xFormat: '%Y-%m-%dT%H:%M:%S'
9217 json: [],
9146 },
9218 xFormat: '%Y-%m-%dT%H:%M:%S'
9147 color: {
9219 },
9148 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
9220 color: {
9149 },
9221 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
9150 axis: {
9222 },
9151 x: {
9223 axis: {
9152 type: 'timeseries',
9224 x: {
9153 tick: {
9225 type: 'timeseries',
9154 format: '%Y-%m-%d'
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: {
9237 subchart: {
9158 tick: {
9238 show: true,
9159 count: 5,
9239 size: {
9160 format: d3.format('.2s')
9240 height: 20
9161 }
9241 }
9162 }
9242 },
9163 },
9164 subchart: {
9165 show: true,
9166 size: {
9243 size: {
9167 height: 20
9244 height: 250
9168 }
9169 },
9170 size: {
9171 height: 250
9172 },
9173 zoom: {
9174 rescale: true
9175 },
9176 grid: {
9177 x: {
9178 show: true
9179 },
9245 },
9180 y: {
9246 zoom: {
9181 show: true
9247 rescale: true
9182 }
9248 },
9183 },
9249 grid: {
9184 tooltip: {
9250 x: {
9185 format: {
9251 show: true
9186 title: function (d) {
9187 return '' + d;
9188 },
9252 },
9189 value: function (v) {
9253 y: {
9190 return v
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 }
9267 };
9194 };
9268 vm.logEventsChartData = {};
9195 vm.logEventsChartData = {};
9269 stateHolder.section = 'logs';
9196 stateHolder.section = 'logs';
9270 vm.today = function () {
9197 vm.today = function () {
9271 vm.pickerDate = new Date();
9198 vm.pickerDate = new Date();
9272 };
9199 };
9273 vm.today();
9200 vm.today();
9274
9201
9275 vm.applications = stateHolder.AeUser.applications_map;
9202 vm.applications = stateHolder.AeUser.applications_map;
9276 vm.logsPage = [];
9203 vm.logsPage = [];
9277 vm.itemCount = 0;
9204 vm.itemCount = 0;
9278 vm.itemsPerPage = 250;
9205 vm.itemsPerPage = 250;
9279 vm.page = 1;
9206 vm.page = 1;
9280 vm.$location = $location;
9207 vm.$location = $location;
9281 vm.isLoading = {
9208 vm.isLoading = {
9282 logs: true,
9209 logs: true,
9283 series: true
9210 series: true
9284 };
9211 };
9285 vm.filterTypeAheadOptions = [
9212 vm.filterTypeAheadOptions = [
9286 {
9213 {
9287 type: 'message',
9214 type: 'message',
9288 text: 'message:',
9215 text: 'message:',
9289 'description': 'Full-text search in your logs',
9216 'description': 'Full-text search in your logs',
9290 tag: 'Message',
9217 tag: 'Message',
9291 example: 'message:text-im-looking-for'
9218 example: 'message:text-im-looking-for'
9292 },
9219 },
9293 {
9220 {
9294 type: 'namespace',
9221 type: 'namespace',
9295 text: 'namespace:',
9222 text: 'namespace:',
9296 'description': 'Query logs from specific namespace',
9223 'description': 'Query logs from specific namespace',
9297 tag: 'Namespace',
9224 tag: 'Namespace',
9298 example: "namespace:module.foo"
9225 example: "namespace:module.foo"
9299 },
9226 },
9300 {
9227 {
9301 type: 'resource',
9228 type: 'resource',
9302 text: 'resource:',
9229 text: 'resource:',
9303 'description': 'Restrict resultset to application',
9230 'description': 'Restrict resultset to application',
9304 tag: 'Application',
9231 tag: 'Application',
9305 example: "resource:ID"
9232 example: "resource:ID"
9306 },
9233 },
9307 {
9234 {
9308 type: 'request_id',
9235 type: 'request_id',
9309 text: 'request_id:',
9236 text: 'request_id:',
9310 'description': 'Show logs with specific request id',
9237 'description': 'Show logs with specific request id',
9311 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
9238 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
9312 tag: 'Request ID'
9239 tag: 'Request ID'
9313 },
9240 },
9314 {
9241 {
9315 type: 'level',
9242 type: 'level',
9316 text: 'level:',
9243 text: 'level:',
9317 'description': 'Show entries with specific log level',
9244 'description': 'Show entries with specific log level',
9318 example: 'level:warning',
9245 example: 'level:warning',
9319 tag: 'Level'
9246 tag: 'Level'
9320 },
9247 },
9321 {
9248 {
9322 type: 'server_name',
9249 type: 'server_name',
9323 text: 'server_name:',
9250 text: 'server_name:',
9324 'description': 'Show entries tagged with this key/value pair',
9251 'description': 'Show entries tagged with this key/value pair',
9325 example: 'server_name:hostname',
9252 example: 'server_name:hostname',
9326 tag: 'Tag'
9253 tag: 'Tag'
9327 },
9254 },
9328 {
9255 {
9329 type: 'start_date',
9256 type: 'start_date',
9330 text: 'start_date:',
9257 text: 'start_date:',
9331 'description': 'Show results newer than this date (press TAB for dropdown)',
9258 'description': 'Show results newer than this date (press TAB for dropdown)',
9332 example: 'start_date:2014-08-15T13:00',
9259 example: 'start_date:2014-08-15T13:00',
9333 tag: 'Start Date'
9260 tag: 'Start Date'
9334 },
9261 },
9335 {
9262 {
9336 type: 'end_date',
9263 type: 'end_date',
9337 text: 'end_date:',
9264 text: 'end_date:',
9338 'description': 'Show results older than this date (press TAB for dropdown)',
9265 'description': 'Show results older than this date (press TAB for dropdown)',
9339 example: 'start_date:2014-08-15T23:59',
9266 example: 'start_date:2014-08-15T23:59',
9340 tag: 'End Date'
9267 tag: 'End Date'
9341 },
9268 },
9342 {type: 'level', value: 'debug', text: 'level:debug'},
9269 {type: 'level', value: 'debug', text: 'level:debug'},
9343 {type: 'level', value: 'info', text: 'level:info'},
9270 {type: 'level', value: 'info', text: 'level:info'},
9344 {type: 'level', value: 'warning', text: 'level:warning'},
9271 {type: 'level', value: 'warning', text: 'level:warning'},
9345 {type: 'level', value: 'critical', text: 'level:critical'}
9272 {type: 'level', value: 'critical', text: 'level:critical'}
9346 ];
9273 ];
9347 vm.filterTypeAhead = null;
9274 vm.filterTypeAhead = null;
9348 vm.showDatePicker = false;
9275 vm.showDatePicker = false;
9349 vm.manualOpen = false;
9276 vm.manualOpen = false;
9350 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
9277 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 vm.removeSearchTag = function (tag) {
9364 vm.removeSearchTag = function (tag) {
9279 $location.search(tag.type, null);
9365 $location.search(tag.type, null);
9280 vm.refresh();
9366 vm.refresh();
@@ -9289,17 +9375,6 b' function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsN'
9289 vm.refresh();
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 vm.typeAheadTag = function (event) {
9378 vm.typeAheadTag = function (event) {
9304 var text = vm.filterTypeAhead;
9379 var text = vm.filterTypeAhead;
9305 if (_.isObject(vm.filterTypeAhead)) {
9380 if (_.isObject(vm.filterTypeAhead)) {
@@ -9405,8 +9480,7 b' function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsN'
9405 vm.fetchLogs(params);
9480 vm.fetchLogs(params);
9406 vm.fetchSeriesData(params);
9481 vm.fetchSeriesData(params);
9407 };
9482 };
9408 console.info('page load');
9483
9409 vm.refresh();
9410 }
9484 }
9411
9485
9412 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
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 function ReportViewController($window, $location, $state, $uibModal, $cookies, reportGroupPropertyResource, reportGroupResource, logsNoIdResource, stateHolder) {
9510 function ReportViewController($window, $location, $state, $uibModal, $cookies, reportGroupPropertyResource, reportGroupResource, logsNoIdResource, stateHolder) {
9437 var vm = this;
9511 var vm = this;
9438 vm.window = $window;
9512 vm.$onInit = function () {
9439 vm.stateHolder = stateHolder;
9513 vm.window = $window;
9440 vm.$state = $state;
9514 vm.stateHolder = stateHolder;
9441 vm.reportHistoryConfig = {
9515 vm.$state = $state;
9442 data: {
9516 vm.reportHistoryConfig = {
9443 json: [],
9517 data: {
9444 xFormat: '%Y-%m-%dT%H:%M:%S'
9518 json: [],
9445 },
9519 xFormat: '%Y-%m-%dT%H:%M:%S'
9446 color: {
9520 },
9447 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
9521 color: {
9448 },
9522 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
9449 axis: {
9523 },
9450 x: {
9524 axis: {
9451 type: 'timeseries',
9525 x: {
9452 tick: {
9526 type: 'timeseries',
9453 format: '%Y-%m-%d'
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: {
9538 subchart: {
9457 tick: {
9539 show: true,
9458 count: 5,
9540 size: {
9459 format: d3.format('.2s')
9541 height: 20
9460 }
9542 }
9461 }
9543 },
9462 },
9463 subchart: {
9464 show: true,
9465 size: {
9544 size: {
9466 height: 20
9545 height: 250
9467 }
9468 },
9469 size: {
9470 height: 250
9471 },
9472 zoom: {
9473 rescale: true
9474 },
9475 grid: {
9476 x: {
9477 show: true
9478 },
9546 },
9479 y: {
9547 zoom: {
9480 show: true
9548 rescale: true
9481 }
9549 },
9482 },
9550 grid: {
9483 tooltip: {
9551 x: {
9484 format: {
9552 show: true
9485 title: function (d) {
9486 return '' + d;
9487 },
9553 },
9488 value: function (v) {
9554 y: {
9489 return v
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 };
9596 else{
9494 vm.mentionedPeople = [];
9597 $cookies.selectedReportTab = 'request_details';
9495 vm.reportHistoryData = {};
9598 vm.tabs.request_details = true;
9496 vm.textTraceback = true;
9599 }
9497 vm.rawTraceback = '';
9600
9498 vm.traceback = '';
9601 // load report
9499 vm.reportType = 'report';
9602 vm.fetchReport();
9500 vm.report = null;
9603 }
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 };
9510
9604
9511 vm.searchMentionedPeople = function(term){
9605 vm.searchMentionedPeople = function(term){
9512 //vm.mentionedPeople = [];
9606 //vm.mentionedPeople = [];
@@ -9525,7 +9619,7 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
9525 });
9619 });
9526
9620
9527 var result = _.filter(users, function(u){
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 vm.mentionedPeople = result;
9624 vm.mentionedPeople = result;
9531 });
9625 });
@@ -9542,21 +9636,6 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
9542 $location.search(tag, value);
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 vm.fetchLogs = function () {
9639 vm.fetchLogs = function () {
9561 if (!vm.report.request_id){
9640 if (!vm.report.request_id){
9562 return
9641 return
@@ -9582,6 +9661,7 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
9582 };
9661 };
9583
9662
9584 vm.fetchReport = function () {
9663 vm.fetchReport = function () {
9664
9585 vm.is_loading.report = true;
9665 vm.is_loading.report = true;
9586 reportGroupResource.get($state.params, function (data) {
9666 reportGroupResource.get($state.params, function (data) {
9587 vm.is_loading.report = false;
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 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
9842 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -9788,133 +9863,173 b" reportsBrowserViewController.$inject = ['$location', '$cookies',"
9788 'stateHolder', 'typeAheadTagHelper', 'reportsResource'];
9863 'stateHolder', 'typeAheadTagHelper', 'reportsResource'];
9789
9864
9790 function reportsBrowserViewController($location, $cookies, stateHolder,
9865 function reportsBrowserViewController($location, $cookies, stateHolder,
9791 typeAheadTagHelper, reportsResource) {
9866 typeAheadTagHelper, reportsResource) {
9792 var vm = this;
9867 var vm = this;
9793 vm.applications = stateHolder.AeUser.applications_map;
9868 vm.$onInit = function () {
9794 stateHolder.section = 'reports';
9869 vm.applications = stateHolder.AeUser.applications_map;
9795 vm.today = function () {
9870 stateHolder.section = 'reports';
9796 vm.pickerDate = new Date();
9871 vm.today = function () {
9797 };
9872 vm.pickerDate = new Date();
9798 vm.today();
9873 };
9799 vm.reportsPage = [];
9874 vm.today();
9800 vm.page = 1;
9875 vm.reportsPage = [];
9801 vm.itemCount = 0;
9876 vm.page = 1;
9802 vm.itemsPerPage = 250;
9877 vm.itemCount = 0;
9803 typeAheadTagHelper.tags = [];
9878 vm.itemsPerPage = 250;
9804 vm.searchParams = {tags: [], page: 1, type: 'report'};
9879 typeAheadTagHelper.tags = [];
9805 vm.is_loading = false;
9880 vm.searchParams = {tags: [], page: 1, type: 'report'};
9806 vm.filterTypeAheadOptions = [
9881 vm.is_loading = false;
9807 {
9882 vm.filterTypeAheadOptions = [
9808 type: 'error',
9883 {
9809 text: 'error:',
9884 type: 'error',
9810 'description': 'Full-text search in your reports',
9885 text: 'error:',
9811 example: 'error:text-im-looking-for',
9886 'description': 'Full-text search in your reports',
9812 tag: 'Error'
9887 example: 'error:text-im-looking-for',
9813 },
9888 tag: 'Error'
9814 {
9889 },
9815 type: 'view_name',
9890 {
9816 text: 'view_name:',
9891 type: 'view_name',
9817 'description': 'Query reports occured in specific views',
9892 text: 'view_name:',
9818 example: "view_name:module.foo",
9893 'description': 'Query reports occured in specific views',
9819 tag: 'View Name'
9894 example: "view_name:module.foo",
9820 },
9895 tag: 'View Name'
9821 {
9896 },
9822 type: 'resource',
9897 {
9823 text: 'resource:',
9898 type: 'resource',
9824 'description': 'Restrict resultset to application',
9899 text: 'resource:',
9825 example: "resource:ID",
9900 'description': 'Restrict resultset to application',
9826 tag: 'Application'
9901 example: "resource:ID",
9827 },
9902 tag: 'Application'
9828 {
9903 },
9829 type: 'priority',
9904 {
9830 text: 'priority:',
9905 type: 'priority',
9831 'description': 'Show reports with specific priority',
9906 text: 'priority:',
9832 example: 'priority:8',
9907 'description': 'Show reports with specific priority',
9833 tag: 'Priority'
9908 example: 'priority:8',
9834 },
9909 tag: 'Priority'
9835 {
9910 },
9836 type: 'min_occurences',
9911 {
9837 text: 'min_occurences:',
9912 type: 'min_occurences',
9838 'description': 'Show reports from groups with at least X occurences',
9913 text: 'min_occurences:',
9839 example: 'min_occurences:25',
9914 'description': 'Show reports from groups with at least X occurences',
9840 tag: 'Occurences'
9915 example: 'min_occurences:25',
9841 },
9916 tag: 'Occurences'
9842 {
9917 },
9843 type: 'url_path',
9918 {
9844 text: 'url_path:',
9919 type: 'url_path',
9845 'description': 'Show reports from specific URL paths',
9920 text: 'url_path:',
9846 example: 'url_path:/foo/bar/baz',
9921 'description': 'Show reports from specific URL paths',
9847 tag: 'Url Path'
9922 example: 'url_path:/foo/bar/baz',
9848 },
9923 tag: 'Url Path'
9849 {
9924 },
9850 type: 'url_domain',
9925 {
9851 text: 'url_domain:',
9926 type: 'url_domain',
9852 'description': 'Show reports from specific domain',
9927 text: 'url_domain:',
9853 example: 'url_domain:domain.com',
9928 'description': 'Show reports from specific domain',
9854 tag: 'Domain'
9929 example: 'url_domain:domain.com',
9855 },
9930 tag: 'Domain'
9856 {
9931 },
9857 type: 'report_status',
9932 {
9858 text: 'report_status:',
9933 type: 'report_status',
9859 'description': 'Show reports from groups with specific status',
9934 text: 'report_status:',
9860 example: 'report_status:never_reviewed',
9935 'description': 'Show reports from groups with specific status',
9861 tag: 'Status'
9936 example: 'report_status:never_reviewed',
9862 },
9937 tag: 'Status'
9863 {
9938 },
9864 type: 'request_id',
9939 {
9865 text: 'request_id:',
9940 type: 'request_id',
9866 'description': 'Show reports with specific request id',
9941 text: 'request_id:',
9867 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
9942 'description': 'Show reports with specific request id',
9868 tag: 'Request ID'
9943 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
9869 },
9944 tag: 'Request ID'
9870 {
9945 },
9871 type: 'server_name',
9946 {
9872 text: 'server_name:',
9947 type: 'server_name',
9873 'description': 'Show reports tagged with this key/value pair',
9948 text: 'server_name:',
9874 example: 'server_name:hostname',
9949 'description': 'Show reports tagged with this key/value pair',
9875 tag: 'Tag'
9950 example: 'server_name:hostname',
9876 },
9951 tag: 'Tag'
9877 {
9952 },
9878 type: 'http_status',
9953 {
9879 text: 'http_status:',
9954 type: 'http_status',
9880 'description': 'Show reports with specific HTTP status code',
9955 text: 'http_status:',
9881 example: "http_status:",
9956 'description': 'Show reports with specific HTTP status code',
9882 tag: 'HTTP Status'
9957 example: "http_status:",
9883 },
9958 tag: 'HTTP Status'
9884 {
9959 },
9885 type: 'http_status',
9960 {
9886 text: 'http_status:500',
9961 type: 'http_status',
9887 'description': 'Show reports with specific HTTP status code',
9962 text: 'http_status:500',
9888 example: "http_status:500",
9963 'description': 'Show reports with specific HTTP status code',
9889 tag: 'HTTP Status'
9964 example: "http_status:500",
9890 },
9965 tag: 'HTTP Status'
9891 {
9966 },
9892 type: 'http_status',
9967 {
9893 text: 'http_status:404',
9968 type: 'http_status',
9894 'description': 'Include 404 reports in your search',
9969 text: 'http_status:404',
9895 example: "http_status:404",
9970 'description': 'Include 404 reports in your search',
9896 tag: 'HTTP Status'
9971 example: "http_status:404",
9897 },
9972 tag: 'HTTP Status'
9898 {
9973 },
9899 type: 'start_date',
9974 {
9900 text: 'start_date:',
9975 type: 'start_date',
9901 'description': 'Show reports newer than this date (press TAB for dropdown)',
9976 text: 'start_date:',
9902 example: 'start_date:2014-08-15T13:00',
9977 'description': 'Show reports newer than this date (press TAB for dropdown)',
9903 tag: 'Start Date'
9978 example: 'start_date:2014-08-15T13:00',
9904 },
9979 tag: 'Start Date'
9905 {
9980 },
9906 type: 'end_date',
9981 {
9907 text: 'end_date:',
9982 type: 'end_date',
9908 'description': 'Show reports older than this date (press TAB for dropdown)',
9983 text: 'end_date:',
9909 example: 'start_date:2014-08-15T23:59',
9984 'description': 'Show reports older than this date (press TAB for dropdown)',
9910 tag: 'End Date'
9985 example: 'start_date:2014-08-15T23:59',
9911 }
9986 tag: 'End Date'
9912 ];
9987 }
9913
9988 ];
9914 vm.filterTypeAhead = undefined;
9989
9915 vm.showDatePicker = false;
9990 vm.filterTypeAhead = undefined;
9916 vm.manualOpen = false;
9991 vm.showDatePicker = false;
9917 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
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 vm.removeSearchTag = function (tag) {
10033 vm.removeSearchTag = function (tag) {
9919 $location.search(tag.type, null);
10034 $location.search(tag.type, null);
9920 vm.refresh();
10035 vm.refresh();
@@ -9923,44 +10038,12 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
9923 $location.search(tag.type, tag.value);
10038 $location.search(tag.type, tag.value);
9924 vm.refresh();
10039 vm.refresh();
9925 };
10040 };
9926 vm.notRelativeTime = false;
9927 if ($cookies.notRelativeTime) {
9928 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
9929 }
9930
10041
9931 vm.changeRelativeTime = function () {
10042 vm.changeRelativeTime = function () {
9932 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
10043 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
9933 };
10044 };
9934
10045
9935 _.each(_.range(1, 11), function (priority) {
10046 vm.paginationChange = function () {
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(){
9964 $location.search('page', vm.page);
10047 $location.search('page', vm.page);
9965 vm.refresh();
10048 vm.refresh();
9966 };
10049 };
@@ -9988,8 +10071,7 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
9988 if (tagValue) {
10071 if (tagValue) {
9989 tag.value = tagValue.join(':');
10072 tag.value = tagValue.join(':');
9990 }
10073 }
9991 }
10074 } else {
9992 else {
9993 tag.type = 'error';
10075 tag.type = 'error';
9994 tag.value = parsed.join(':');
10076 tag.value = parsed.join(':');
9995 }
10077 }
@@ -9998,8 +10080,7 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
9998 if ('start_date:' == text) {
10080 if ('start_date:' == text) {
9999 vm.showDatePicker = true;
10081 vm.showDatePicker = true;
10000 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
10082 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
10001 }
10083 } else if ('end_date:' == text) {
10002 else if ('end_date:' == text) {
10003 vm.showDatePicker = true;
10084 vm.showDatePicker = true;
10004 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
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 vm.filterTypeAhead = undefined;
10095 vm.filterTypeAhead = undefined;
10015 };
10096 };
10016
10097
10017 vm.pickerDateChanged = function(){
10098 vm.pickerDateChanged = function () {
10018 if (vm.filterTypeAhead.indexOf('start_date:') == '0') {
10099 if (vm.filterTypeAhead.indexOf('start_date:') == '0') {
10019 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
10100 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
10020 }
10101 } else if (vm.filterTypeAhead.indexOf('end_date:') == '0') {
10021 else if (vm.filterTypeAhead.indexOf('end_date:') == '0') {
10022 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
10102 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
10023 }
10103 }
10024 vm.showDatePicker = false;
10104 vm.showDatePicker = false;
@@ -10029,16 +10109,13 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
10029 if (report.group.public) {
10109 if (report.group.public) {
10030 report.presentation.className = 'public';
10110 report.presentation.className = 'public';
10031 report.presentation.tooltip = 'Public';
10111 report.presentation.tooltip = 'Public';
10032 }
10112 } else if (report.group.fixed) {
10033 else if (report.group.fixed) {
10034 report.presentation.className = 'fixed';
10113 report.presentation.className = 'fixed';
10035 report.presentation.tooltip = 'Fixed';
10114 report.presentation.tooltip = 'Fixed';
10036 }
10115 } else if (report.group.read) {
10037 else if (report.group.read) {
10038 report.presentation.className = 'reviewed';
10116 report.presentation.className = 'reviewed';
10039 report.presentation.tooltip = 'Reviewed';
10117 report.presentation.tooltip = 'Reviewed';
10040 }
10118 } else {
10041 else {
10042 report.presentation.className = 'new';
10119 report.presentation.className = 'new';
10043 report.presentation.tooltip = 'New';
10120 report.presentation.tooltip = 'New';
10044 }
10121 }
@@ -10069,15 +10146,14 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
10069 vm.refresh();
10146 vm.refresh();
10070 };
10147 };
10071
10148
10072 vm.refresh = function(){
10149 vm.refresh = function () {
10073 vm.searchParams = parseSearchToTags($location.search());
10150 vm.searchParams = parseSearchToTags($location.search());
10074 vm.page = Number(vm.searchParams.page) || 1;
10151 vm.page = Number(vm.searchParams.page) || 1;
10075 var params = parseTagsToSearch(vm.searchParams);
10152 var params = parseTagsToSearch(vm.searchParams);
10076
10153
10077 vm.fetchReports(params);
10154 vm.fetchReports(params);
10078 };
10155 };
10079 // initial load
10156
10080 vm.refresh();
10081 }
10157 }
10082
10158
10083 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
10159 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -10109,109 +10185,149 b" ReportsSlowBrowserViewController.$inject = ['$location', '$cookies',"
10109
10185
10110 function ReportsSlowBrowserViewController($location, $cookies, stateHolder, typeAheadTagHelper, slowReportsResource) {
10186 function ReportsSlowBrowserViewController($location, $cookies, stateHolder, typeAheadTagHelper, slowReportsResource) {
10111 var vm = this;
10187 var vm = this;
10112 vm.applications = stateHolder.AeUser.applications_map;
10188 vm.$onInit = function () {
10113 stateHolder.section = 'slow_reports';
10189 vm.applications = stateHolder.AeUser.applications_map;
10114 vm.today = function () {
10190 stateHolder.section = 'slow_reports';
10115 vm.pickerDate = new Date();
10191 vm.today = function () {
10116 };
10192 vm.pickerDate = new Date();
10117 vm.today();
10193 };
10118 vm.reportsPage = [];
10194 vm.today();
10119 vm.page = 1;
10195 vm.reportsPage = [];
10120 vm.itemCount = 0;
10196 vm.page = 1;
10121 vm.itemsPerPage = 250;
10197 vm.itemCount = 0;
10122 typeAheadTagHelper.tags = [];
10198 vm.itemsPerPage = 250;
10123 vm.searchParams = {tags: [], page: 1, type: 'slow_report'};
10199 typeAheadTagHelper.tags = [];
10124 vm.is_loading = false;
10200 vm.searchParams = {tags: [], page: 1, type: 'slow_report'};
10125 vm.filterTypeAheadOptions = [
10201 vm.is_loading = false;
10126 {
10202 vm.filterTypeAheadOptions = [
10127 type: 'view_name',
10203 {
10128 text: 'view_name:',
10204 type: 'view_name',
10129 'description': 'Query reports occured in specific views',
10205 text: 'view_name:',
10130 tag: 'View Name',
10206 'description': 'Query reports occured in specific views',
10131 example: "view_name:module.foo"
10207 tag: 'View Name',
10132 },
10208 example: "view_name:module.foo"
10133 {
10209 },
10134 type: 'resource',
10210 {
10135 text: 'resource:',
10211 type: 'resource',
10136 'description': 'Restrict resultset to application',
10212 text: 'resource:',
10137 tag: 'Application',
10213 'description': 'Restrict resultset to application',
10138 example: "resource:ID"
10214 tag: 'Application',
10139 },
10215 example: "resource:ID"
10140 {
10216 },
10141 type: 'priority',
10217 {
10142 text: 'priority:',
10218 type: 'priority',
10143 'description': 'Show reports with specific priority',
10219 text: 'priority:',
10144 example: 'priority:8',
10220 'description': 'Show reports with specific priority',
10145 tag: 'Priority'
10221 example: 'priority:8',
10146 },
10222 tag: 'Priority'
10147 {
10223 },
10148 type: 'min_occurences',
10224 {
10149 text: 'min_occurences:',
10225 type: 'min_occurences',
10150 'description': 'Show reports from groups with at least X occurences',
10226 text: 'min_occurences:',
10151 example: 'min_occurences:25',
10227 'description': 'Show reports from groups with at least X occurences',
10152 tag: 'Min. occurences'
10228 example: 'min_occurences:25',
10153 },
10229 tag: 'Min. occurences'
10154 {
10230 },
10155 type: 'min_duration',
10231 {
10156 text: 'min_duration:',
10232 type: 'min_duration',
10157 'description': 'Show reports from groups with average duration >= Xs',
10233 text: 'min_duration:',
10158 example: 'min_duration:4.5',
10234 'description': 'Show reports from groups with average duration >= Xs',
10159 tag: 'Min. duration'
10235 example: 'min_duration:4.5',
10160 },
10236 tag: 'Min. duration'
10161 {
10237 },
10162 type: 'url_path',
10238 {
10163 text: 'url_path:',
10239 type: 'url_path',
10164 'description': 'Show reports from specific URL paths',
10240 text: 'url_path:',
10165 example: 'url_path:/foo/bar/baz',
10241 'description': 'Show reports from specific URL paths',
10166 tag: 'Url Path'
10242 example: 'url_path:/foo/bar/baz',
10167 },
10243 tag: 'Url Path'
10168 {
10244 },
10169 type: 'url_domain',
10245 {
10170 text: 'url_domain:',
10246 type: 'url_domain',
10171 'description': 'Show reports from specific domain',
10247 text: 'url_domain:',
10172 example: 'url_domain:domain.com',
10248 'description': 'Show reports from specific domain',
10173 tag: 'Domain'
10249 example: 'url_domain:domain.com',
10174 },
10250 tag: 'Domain'
10175 {
10251 },
10176 type: 'request_id',
10252 {
10177 text: 'request_id:',
10253 type: 'request_id',
10178 'description': 'Show reports with specific request id',
10254 text: 'request_id:',
10179 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
10255 'description': 'Show reports with specific request id',
10180 tag: 'Request ID'
10256 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
10181 },
10257 tag: 'Request ID'
10182 {
10258 },
10183 type: 'report_status',
10259 {
10184 text: 'report_status:',
10260 type: 'report_status',
10185 'description': 'Show reports from groups with specific status',
10261 text: 'report_status:',
10186 example: 'report_status:never_reviewed',
10262 'description': 'Show reports from groups with specific status',
10187 tag: 'Status'
10263 example: 'report_status:never_reviewed',
10188 },
10264 tag: 'Status'
10189 {
10265 },
10190 type: 'server_name',
10266 {
10191 text: 'server_name:',
10267 type: 'server_name',
10192 'description': 'Show reports tagged with this key/value pair',
10268 text: 'server_name:',
10193 example: 'server_name:hostname',
10269 'description': 'Show reports tagged with this key/value pair',
10194 tag: 'Tag'
10270 example: 'server_name:hostname',
10195 },
10271 tag: 'Tag'
10196 {
10272 },
10197 type: 'start_date',
10273 {
10198 text: 'start_date:',
10274 type: 'start_date',
10199 'description': 'Show reports newer than this date (press TAB for dropdown)',
10275 text: 'start_date:',
10200 example: 'start_date:2014-08-15T13:00',
10276 'description': 'Show reports newer than this date (press TAB for dropdown)',
10201 tag: 'Start Date'
10277 example: 'start_date:2014-08-15T13:00',
10202 },
10278 tag: 'Start Date'
10203 {
10279 },
10204 type: 'end_date',
10280 {
10205 text: 'end_date:',
10281 type: 'end_date',
10206 'description': 'Show reports older than this date (press TAB for dropdown)',
10282 text: 'end_date:',
10207 example: 'start_date:2014-08-15T23:59',
10283 'description': 'Show reports older than this date (press TAB for dropdown)',
10208 tag: 'End Date'
10284 example: 'start_date:2014-08-15T23:59',
10209 }
10285 tag: 'End Date'
10210 ];
10286 }
10211
10287 ];
10212 vm.filterTypeAhead = undefined;
10288
10213 vm.showDatePicker = false;
10289 vm.filterTypeAhead = undefined;
10214 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
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 vm.removeSearchTag = function (tag) {
10331 vm.removeSearchTag = function (tag) {
10216 $location.search(tag.type, null);
10332 $location.search(tag.type, null);
10217 vm.refresh();
10333 vm.refresh();
@@ -10220,45 +10336,12 b' function ReportsSlowBrowserViewController($location, $cookies, stateHolder, type'
10220 $location.search(tag.type, tag.value);
10336 $location.search(tag.type, tag.value);
10221 vm.refresh();
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 vm.changeRelativeTime = function () {
10341 vm.changeRelativeTime = function () {
10231 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
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 vm.typeAheadTag = function (event) {
10345 vm.typeAheadTag = function (event) {
10263 var text = vm.filterTypeAhead;
10346 var text = vm.filterTypeAhead;
10264 if (_.isObject(vm.filterTypeAhead)) {
10347 if (_.isObject(vm.filterTypeAhead)) {
@@ -10369,8 +10452,6 b' function ReportsSlowBrowserViewController($location, $cookies, stateHolder, type'
10369 vm.fetchReports(params);
10452 vm.fetchReports(params);
10370 };
10453 };
10371
10454
10372 //initial load
10373 vm.refresh();
10374 }
10455 }
10375
10456
10376 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
10457 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -10396,9 +10477,11 b" angular.module('appenlight.components.settingsView', [])"
10396 SettingsViewController.$inject = ['$state', 'AeConfig'];
10477 SettingsViewController.$inject = ['$state', 'AeConfig'];
10397
10478
10398 function SettingsViewController($state, AeConfig) {
10479 function SettingsViewController($state, AeConfig) {
10399 this.$state = $state;
10480 this.$onInit = function () {
10400 this.AeConfig = AeConfig;
10481 this.$state = $state;
10401 console.info('SettingsViewController');
10482 this.AeConfig = AeConfig;
10483 console.info('SettingsViewController');
10484 }
10402 }
10485 }
10403
10486
10404 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
10487 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -10421,15 +10504,17 b" angular.module('appenlight.components.userAlertChannelsEmailNewView', [])"
10421 controller: AlertChannelsEmailController
10504 controller: AlertChannelsEmailController
10422 });
10505 });
10423
10506
10424 AlertChannelsEmailController.$inject = ['$state','userSelfPropertyResource'];
10507 AlertChannelsEmailController.$inject = ['$state', 'userSelfPropertyResource'];
10425
10508
10426 function AlertChannelsEmailController($state, userSelfPropertyResource) {
10509 function AlertChannelsEmailController($state, userSelfPropertyResource) {
10427
10510
10428 var vm = this;
10511 var vm = this;
10429 vm.$state = $state;
10512 vm.$onInit = function () {
10430 vm.loading = {email: false};
10513 var vm = this;
10431 vm.form = {};
10514 vm.$state = $state;
10432
10515 vm.loading = {email: false};
10516 vm.form = {};
10517 }
10433 vm.createChannel = function () {
10518 vm.createChannel = function () {
10434 vm.loading.email = true;
10519 vm.loading.email = true;
10435
10520
@@ -10467,75 +10552,76 b" angular.module('appenlight.components.userAlertChannelsListView', [])"
10467 controller: userAlertChannelsListViewController
10552 controller: userAlertChannelsListViewController
10468 });
10553 });
10469
10554
10470 userAlertChannelsListViewController.$inject = ['$state','userSelfPropertyResource', 'applicationsNoIdResource'];
10555 userAlertChannelsListViewController.$inject = ['$state', 'userSelfPropertyResource', 'applicationsNoIdResource'];
10471
10556
10472 function userAlertChannelsListViewController($state, userSelfPropertyResource, applicationsNoIdResource) {
10557 function userAlertChannelsListViewController($state, userSelfPropertyResource, applicationsNoIdResource) {
10473
10558
10474 var vm = this;
10559 var vm = this;
10475 vm.$state = $state;
10560 vm.$onInit = function () {
10476 vm.loading = {channels: true, applications: true, actions:true};
10561 vm.$state = $state;
10562 vm.loading = {channels: true, applications: true, actions: true};
10477
10563
10478 vm.alertChannels = userSelfPropertyResource.query({key: 'alert_channels'},
10564 vm.alertChannels = userSelfPropertyResource.query({key: 'alert_channels'},
10479 function (data) {
10565 function (data) {
10480 vm.loading.channels = false;
10566 vm.loading.channels = false;
10481 });
10567 });
10482
10568
10483 vm.alertActions = userSelfPropertyResource.query({key: 'alert_actions'},
10569 vm.alertActions = userSelfPropertyResource.query({key: 'alert_actions'},
10484 function (data) {
10570 function (data) {
10485 vm.loading.actions = false;
10571 vm.loading.actions = false;
10486 });
10572 });
10487
10573
10488 vm.applications = applicationsNoIdResource.query({permission: 'view'},
10574 vm.applications = applicationsNoIdResource.query({permission: 'view'},
10489 function (data) {
10575 function (data) {
10490 vm.loading.applications = false;
10576 vm.loading.applications = false;
10491 });
10577 });
10492
10578
10493 var allOps = {
10579 var allOps = {
10494 'eq': 'Equal',
10580 'eq': 'Equal',
10495 'ne': 'Not equal',
10581 'ne': 'Not equal',
10496 'ge': 'Greater or equal',
10582 'ge': 'Greater or equal',
10497 'gt': 'Greater than',
10583 'gt': 'Greater than',
10498 'le': 'Lesser or equal',
10584 'le': 'Lesser or equal',
10499 'lt': 'Lesser than',
10585 'lt': 'Lesser than',
10500 'startswith': 'Starts with',
10586 'startswith': 'Starts with',
10501 'endswith': 'Ends with',
10587 'endswith': 'Ends with',
10502 'contains': 'Contains'
10588 'contains': 'Contains'
10503 };
10589 };
10504
10590
10505 var fieldOps = {};
10591 var fieldOps = {};
10506 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
10592 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
10507 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
10593 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
10508 fieldOps['duration'] = ['ge', 'le'];
10594 fieldOps['duration'] = ['ge', 'le'];
10509 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
10595 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
10510 'contains'];
10596 'contains'];
10511 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
10597 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
10512 'contains'];
10598 'contains'];
10513 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
10599 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
10514 'contains'];
10600 'contains'];
10515 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
10601 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
10516 'contains'];
10602 'contains'];
10517 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
10603 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
10518
10604
10519 var possibleFields = {
10605 var possibleFields = {
10520 '__AND__': 'All met (composite rule)',
10606 '__AND__': 'All met (composite rule)',
10521 '__OR__': 'One met (composite rule)',
10607 '__OR__': 'One met (composite rule)',
10522 '__NOT__': 'Not met (composite rule)',
10608 '__NOT__': 'Not met (composite rule)',
10523 'http_status': 'HTTP Status',
10609 'http_status': 'HTTP Status',
10524 'duration': 'Request duration',
10610 'duration': 'Request duration',
10525 'group:priority': 'Group -> Priority',
10611 'group:priority': 'Group -> Priority',
10526 'url_domain': 'Domain',
10612 'url_domain': 'Domain',
10527 'url_path': 'URL Path',
10613 'url_path': 'URL Path',
10528 'error': 'Error',
10614 'error': 'Error',
10529 'tags:server_name': 'Tag -> Server name',
10615 'tags:server_name': 'Tag -> Server name',
10530 'group:occurences': 'Group -> Occurences'
10616 'group:occurences': 'Group -> Occurences'
10531 };
10617 };
10532
10533 vm.ruleDefinitions = {
10534 fieldOps: fieldOps,
10535 allOps: allOps,
10536 possibleFields: possibleFields
10537 };
10538
10618
10619 vm.ruleDefinitions = {
10620 fieldOps: fieldOps,
10621 allOps: allOps,
10622 possibleFields: possibleFields
10623 };
10624 }
10539 vm.addAction = function (channel) {
10625 vm.addAction = function (channel) {
10540
10626
10541 userSelfPropertyResource.save({key: 'alert_channels_rules'}, {}, function (data) {
10627 userSelfPropertyResource.save({key: 'alert_channels_rules'}, {}, function (data) {
@@ -10569,7 +10655,7 b' function userAlertChannelsListViewController($state, userSelfPropertyResource, a'
10569 channel_name: channel.channel_name,
10655 channel_name: channel.channel_name,
10570 channel_value: channel.channel_value
10656 channel_value: channel.channel_value
10571 }, function () {
10657 }, function () {
10572 vm.alertChannels = _.filter(vm.alertChannels, function(item){
10658 vm.alertChannels = _.filter(vm.alertChannels, function (item) {
10573 return item != channel;
10659 return item != channel;
10574 });
10660 });
10575 });
10661 });
@@ -10603,16 +10689,17 b" userAuthTokensViewController.$inject = ['$state', 'userSelfPropertyResource', 'A"
10603 function userAuthTokensViewController($state, userSelfPropertyResource, AeConfig) {
10689 function userAuthTokensViewController($state, userSelfPropertyResource, AeConfig) {
10604
10690
10605 var vm = this;
10691 var vm = this;
10606 vm.$state = $state;
10692 vm.$onInit = function () {
10607 vm.loading = {tokens: true};
10693 vm.$state = $state;
10608
10694 vm.loading = {tokens: true};
10609 vm.expireOptions = AeConfig.timeOptions;
10610
10695
10611 vm.tokens = userSelfPropertyResource.query({key: 'auth_tokens'},
10696 vm.expireOptions = AeConfig.timeOptions;
10612 function (data) {
10613 vm.loading.tokens = false;
10614 });
10615
10697
10698 vm.tokens = userSelfPropertyResource.query({key: 'auth_tokens'},
10699 function (data) {
10700 vm.loading.tokens = false;
10701 });
10702 }
10616 vm.addToken = function () {
10703 vm.addToken = function () {
10617 vm.loading.tokens = true;
10704 vm.loading.tokens = true;
10618 userSelfPropertyResource.save({key: 'auth_tokens'},
10705 userSelfPropertyResource.save({key: 'auth_tokens'},
@@ -10669,17 +10756,18 b" UserIdentitiesController.$inject = ['$state', 'userSelfPropertyResource', 'AeCon"
10669 function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {
10756 function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {
10670
10757
10671 var vm = this;
10758 var vm = this;
10672 vm.$state = $state;
10759 vm.$onInit = function () {
10673 vm.AeConfig = AeConfig;
10760 vm.$state = $state;
10674 vm.loading = {identities: true};
10761 vm.AeConfig = AeConfig;
10675
10762 vm.loading = {identities: true};
10676 vm.identities = userSelfPropertyResource.query(
10677 {key: 'external_identities'},
10678 function (data) {
10679 vm.loading.identities = false;
10680
10681 });
10682
10763
10764 vm.identities = userSelfPropertyResource.query(
10765 {key: 'external_identities'},
10766 function (data) {
10767 vm.loading.identities = false;
10768
10769 });
10770 }
10683 vm.removeProvider = function (provider) {
10771 vm.removeProvider = function (provider) {
10684
10772
10685 userSelfPropertyResource.delete(
10773 userSelfPropertyResource.delete(
@@ -10689,7 +10777,7 b' function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {'
10689 id: provider.id
10777 id: provider.id
10690 },
10778 },
10691 function (status) {
10779 function (status) {
10692 if (status){
10780 if (status) {
10693 vm.identities = _.filter(vm.identities, function (item) {
10781 vm.identities = _.filter(vm.identities, function (item) {
10694 return item != provider
10782 return item != provider
10695 });
10783 });
@@ -10724,10 +10812,11 b" UserPasswordViewController.$inject = ['$state', 'userSelfPropertyResource'];"
10724 function UserPasswordViewController($state, userSelfPropertyResource) {
10812 function UserPasswordViewController($state, userSelfPropertyResource) {
10725
10813
10726 var vm = this;
10814 var vm = this;
10727 vm.$state = $state;
10815 vm.$onInit = function () {
10728 vm.loading = {password: false};
10816 vm.$state = $state;
10729 vm.form = {};
10817 vm.loading = {password: false};
10730
10818 vm.form = {};
10819 }
10731 vm.updatePassword = function () {
10820 vm.updatePassword = function () {
10732 vm.loading.password = true;
10821 vm.loading.password = true;
10733
10822
@@ -10771,14 +10860,15 b" UserProfileViewController.$inject = ['$state', 'userSelfResource'];"
10771 function UserProfileViewController($state, userSelfResource) {
10860 function UserProfileViewController($state, userSelfResource) {
10772
10861
10773 var vm = this;
10862 var vm = this;
10774 vm.$state = $state;
10863 vm.$onInit = function () {
10775 vm.loading = {profile: true};
10864 vm.$state = $state;
10776
10865 vm.loading = {profile: true};
10777 vm.user = userSelfResource.get(null, function (data) {
10778 vm.loading.profile = false;
10779
10780 });
10781
10866
10867 vm.user = userSelfResource.get(null, function (data) {
10868 vm.loading.profile = false;
10869
10870 });
10871 }
10782 vm.updateProfile = function () {
10872 vm.updateProfile = function () {
10783 vm.loading.profile = true;
10873 vm.loading.profile = true;
10784
10874
@@ -10863,19 +10953,21 b" BitbucketIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'in"
10863
10953
10864 function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
10954 function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
10865 var vm = this;
10955 var vm = this;
10866 vm.loading = true;
10956 vm.$onInit = function () {
10867 vm.assignees = [];
10957 vm.loading = true;
10868 vm.report = report;
10958 vm.assignees = [];
10869 vm.integrationName = integrationName;
10959 vm.report = report;
10870 vm.statuses = [];
10960 vm.integrationName = integrationName;
10871 vm.priorities = [];
10961 vm.statuses = [];
10872 vm.error_messages = [];
10962 vm.priorities = [];
10873 vm.form = {
10963 vm.error_messages = [];
10874 content: '\n' +
10964 vm.form = {
10875 'Issue created for report: ' +
10965 content: '\n' +
10876 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
10966 'Issue created for report: ' +
10877 };
10967 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
10878
10968 };
10969 vm.fetchInfo();
10970 }
10879 vm.fetchInfo = function () {
10971 vm.fetchInfo = function () {
10880 integrationResource.get({
10972 integrationResource.get({
10881 resourceId: vm.report.resource_id,
10973 resourceId: vm.report.resource_id,
@@ -10894,8 +10986,7 b' function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integration'
10894 }, function (error_data) {
10986 }, function (error_data) {
10895 if (error_data.data.error_messages) {
10987 if (error_data.data.error_messages) {
10896 vm.error_messages = error_data.data.error_messages;
10988 vm.error_messages = error_data.data.error_messages;
10897 }
10989 } else {
10898 else {
10899 vm.error_messages = ['There was a problem processing your request'];
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 }, function (error_data) {
11010 }, function (error_data) {
10920 if (error_data.data.error_messages) {
11011 if (error_data.data.error_messages) {
10921 vm.error_messages = error_data.data.error_messages;
11012 vm.error_messages = error_data.data.error_messages;
10922 }
11013 } else {
10923 else {
10924 vm.error_messages = ['There was a problem processing your request'];
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 vm.cancel = function () {
11018 vm.cancel = function () {
10929 $uibModalInstance.dismiss('cancel');
11019 $uibModalInstance.dismiss('cancel');
10930 };
11020 };
10931 vm.fetchInfo();
10932 }
11021 }
10933
11022
10934 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
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 function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
11042 function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
10954 var vm = this;
11043 var vm = this;
10955 vm.loading = true;
11044 vm.$onInit = function () {
10956 vm.assignees = [];
11045 vm.loading = true;
10957 vm.report = report;
11046 vm.assignees = [];
10958 vm.integrationName = integrationName;
11047 vm.report = report;
10959 vm.statuses = [];
11048 vm.integrationName = integrationName;
10960 vm.assignees = [];
11049 vm.statuses = [];
10961 vm.error_messages = [];
11050 vm.assignees = [];
10962 vm.form = {
11051 vm.error_messages = [];
10963 content: '\n' +
11052 vm.form = {
10964 'Issue created for report: ' +
11053 content: '\n' +
10965 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
11054 'Issue created for report: ' +
10966 };
11055 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
10967
11056 };
11057 vm.fetchInfo();
11058 }
10968 vm.fetchInfo = function () {
11059 vm.fetchInfo = function () {
10969 integrationResource.get({
11060 integrationResource.get({
10970 resourceId: vm.report.resource_id,
11061 resourceId: vm.report.resource_id,
@@ -10975,8 +11066,7 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
10975 vm.loading = false;
11066 vm.loading = false;
10976 if (data.error_messages) {
11067 if (data.error_messages) {
10977 vm.error_messages = data.error_messages;
11068 vm.error_messages = data.error_messages;
10978 }
11069 } else {
10979 else {
10980 vm.assignees = data.assignees;
11070 vm.assignees = data.assignees;
10981 vm.statuses = data.statuses;
11071 vm.statuses = data.statuses;
10982 vm.form.responsible = vm.assignees[0];
11072 vm.form.responsible = vm.assignees[0];
@@ -10985,8 +11075,7 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
10985 }, function (error_data) {
11075 }, function (error_data) {
10986 if (error_data.data.error_messages) {
11076 if (error_data.data.error_messages) {
10987 vm.error_messages = error_data.data.error_messages;
11077 vm.error_messages = error_data.data.error_messages;
10988 }
11078 } else {
10989 else {
10990 vm.error_messages = ['There was a problem processing your request'];
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 vm.loading = false;
11092 vm.loading = false;
11004 if (data.error_messages) {
11093 if (data.error_messages) {
11005 vm.error_messages = data.error_messages;
11094 vm.error_messages = data.error_messages;
11006 }
11095 } else {
11007 else {
11008 $uibModalInstance.dismiss('success');
11096 $uibModalInstance.dismiss('success');
11009 }
11097 }
11010 }, function (error_data) {
11098 }, function (error_data) {
11011 if (error_data.data.error_messages) {
11099 if (error_data.data.error_messages) {
11012 vm.error_messages = error_data.data.error_messages;
11100 vm.error_messages = error_data.data.error_messages;
11013 }
11101 } else {
11014 else {
11015 vm.error_messages = ['There was a problem processing your request'];
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 vm.cancel = function () {
11106 vm.cancel = function () {
11020 $uibModalInstance.dismiss('cancel');
11107 $uibModalInstance.dismiss('cancel');
11021 };
11108 };
11022 vm.fetchInfo();
11023 }
11109 }
11024
11110
11025 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
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 function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
11130 function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
11045 var vm = this;
11131 var vm = this;
11046 vm.loading = true;
11132 vm.$onInit = function () {
11047 vm.assignees = [];
11133 vm.loading = true;
11048 vm.report = report;
11134 vm.assignees = [];
11049 vm.integrationName = integrationName;
11135 vm.report = report;
11050 vm.statuses = [];
11136 vm.integrationName = integrationName;
11051 vm.priorities = [];
11137 vm.statuses = [];
11052 vm.issue_types = [];
11138 vm.priorities = [];
11053 vm.error_messages = [];
11139 vm.issue_types = [];
11054 vm.form = {
11140 vm.error_messages = [];
11055 content: '\n' +
11141 vm.form = {
11056 'Issue created for report: ' +
11142 content: '\n' +
11057 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
11143 'Issue created for report: ' +
11058 };
11144 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
11059
11145 };
11146 vm.fetchInfo();
11147 }
11060 vm.fetchInfo = function () {
11148 vm.fetchInfo = function () {
11061 integrationResource.get({
11149 integrationResource.get({
11062 resourceId: vm.report.resource_id,
11150 resourceId: vm.report.resource_id,
@@ -11078,8 +11166,7 b' function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName,'
11078
11166
11079 if (error_data.data.error_messages) {
11167 if (error_data.data.error_messages) {
11080 vm.error_messages = error_data.data.error_messages;
11168 vm.error_messages = error_data.data.error_messages;
11081 }
11169 } else {
11082 else {
11083 vm.error_messages = ['There was a problem processing your request'];
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 }, function (error_data) {
11190 }, function (error_data) {
11104 if (error_data.data.error_messages) {
11191 if (error_data.data.error_messages) {
11105 vm.error_messages = error_data.data.error_messages;
11192 vm.error_messages = error_data.data.error_messages;
11106 }
11193 } else {
11107 else {
11108 vm.error_messages = ['There was a problem processing your request'];
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 vm.cancel = function () {
11198 vm.cancel = function () {
11113 $uibModalInstance.dismiss('cancel');
11199 $uibModalInstance.dismiss('cancel');
11114 };
11200 };
11115 vm.fetchInfo();
11116 }
11201 }
11117
11202
11118 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
11203 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -11134,22 +11219,24 b" AssignReportCtrl.$inject = ['$uibModalInstance', 'reportGroupPropertyResource', "
11134
11219
11135 function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report) {
11220 function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report) {
11136 var vm = this;
11221 var vm = this;
11137 vm.loading = true;
11222 vm.$onInit = function () {
11138 vm.assignedUsers = [];
11223 vm.loading = true;
11139 vm.unAssignedUsers = [];
11224 vm.assignedUsers = [];
11140 vm.report = report;
11225 vm.unAssignedUsers = [];
11141 vm.fetchAssignments = function () {
11226 vm.report = report;
11142 reportGroupPropertyResource.get({
11227 vm.fetchAssignments = function () {
11143 groupId: vm.report.group_id,
11228 reportGroupPropertyResource.get({
11144 key: 'assigned_users'
11229 groupId: vm.report.group_id,
11145 }, null,
11230 key: 'assigned_users'
11146 function (data) {
11231 }, null,
11147 vm.assignedUsers = data.assigned;
11232 function (data) {
11148 vm.unAssignedUsers = data.unassigned;
11233 vm.assignedUsers = data.assigned;
11149 vm.loading = false;
11234 vm.unAssignedUsers = data.unassigned;
11150 });
11235 vm.loading = false;
11236 });
11237 }
11238 vm.fetchAssignments();
11151 }
11239 }
11152
11153 vm.reassignUser = function (user) {
11240 vm.reassignUser = function (user) {
11154 var is_assigned = vm.assignedUsers.indexOf(user);
11241 var is_assigned = vm.assignedUsers.indexOf(user);
11155 if (is_assigned != -1) {
11242 if (is_assigned != -1) {
@@ -11191,9 +11278,6 b' function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report'
11191 vm.cancel = function () {
11278 vm.cancel = function () {
11192 $uibModalInstance.dismiss('cancel');
11279 $uibModalInstance.dismiss('cancel');
11193 };
11280 };
11194
11195 vm.fetchAssignments();
11196
11197 }
11281 }
11198
11282
11199 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
11283 ;// Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors
@@ -11481,64 +11565,65 b" ApplicationPermissionsController.$inject = ['sectionViewResource',"
11481
11565
11482 function ApplicationPermissionsController(sectionViewResource, applicationsPropertyResource , groupsResource) {
11566 function ApplicationPermissionsController(sectionViewResource, applicationsPropertyResource , groupsResource) {
11483 var vm = this;
11567 var vm = this;
11484 vm.form = {
11568 vm.$onInit = function () {
11485 autocompleteUser: '',
11569 vm.form = {
11486 selectedGroup: null,
11570 autocompleteUser: '',
11487 selectedUserPermissions: {},
11571 selectedGroup: null,
11488 selectedGroupPermissions: {}
11572 selectedUserPermissions: {},
11489 }
11573 selectedGroupPermissions: {}
11490 vm.possibleGroups = groupsResource.query(null, function(){
11574 }
11491 if (vm.possibleGroups.length > 0){
11575 vm.possibleGroups = groupsResource.query(null, function () {
11492 vm.form.selectedGroup = vm.possibleGroups[0].id;
11576 if (vm.possibleGroups.length > 0) {
11493 }
11577 vm.form.selectedGroup = vm.possibleGroups[0].id;
11494 });
11578 }
11495
11579 });
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) {
11511
11580
11512 if (perm.type == 'user') {
11581 vm.possibleUsers = [];
11513 if (typeof tmpObj[perm.type][perm.user_name] === 'undefined') {
11582 _.each(vm.resource.possible_permissions, function (perm) {
11514 tmpObj[perm.type][perm.user_name] = {
11583 vm.form.selectedUserPermissions[perm] = false;
11515 self: perm,
11584 vm.form.selectedGroupPermissions[perm] = false;
11516 permissions: []
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 }
11604 if (tmpObj[perm.type][perm.user_name].permissions.indexOf(perm.perm_name) === -1) {
11519 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);
11520 tmpObj[perm.type][perm.user_name].permissions.push(perm.perm_name);
11606 }
11521 }
11607 } else {
11522 }
11608 if (typeof tmpObj[perm.type][perm.group_name] === 'undefined') {
11523 else {
11609 tmpObj[perm.type][perm.group_name] = {
11524 if (typeof tmpObj[perm.type][perm.group_name] === 'undefined') {
11610 self: perm,
11525 tmpObj[perm.type][perm.group_name] = {
11611 permissions: []
11526 self: perm,
11612 }
11527 permissions: []
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 }
11618 }
11535 });
11619 });
11536 vm.currentPermissions = {
11620 vm.currentPermissions = {
11537 user: _.values(tmpObj.user),
11621 user: _.values(tmpObj.user),
11538 group: _.values(tmpObj.group),
11622 group: _.values(tmpObj.group),
11539 };
11623 };
11624
11625 }
11540
11626
11541
11542
11627
11543 vm.searchUsers = function (searchPhrase) {
11628 vm.searchUsers = function (searchPhrase) {
11544
11629
@@ -11701,8 +11786,10 b" angular.module('appenlight.directives.pluginConfig', []).directive('pluginConfig"
11701 PluginConfig.$inject = ['stateHolder'];
11786 PluginConfig.$inject = ['stateHolder'];
11702
11787
11703 function PluginConfig(stateHolder) {
11788 function PluginConfig(stateHolder) {
11704 this.plugins = {};
11789 this.$onInit = function () {
11705 this.inclusions = stateHolder.plugins.inclusions[this.section];
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 angular.module('appenlight.directives.postProcessAction', []).directive('postProcessAction', ['applicationsPropertyResource', function (applicationsPropertyResource) {
11810 angular.module('appenlight.directives.postProcessAction', []).directive('postProcessAction', ['applicationsPropertyResource', function (applicationsPropertyResource) {
11724 return {
11811 return {
11725 scope: {},
11812 scope: {},
11726 bindToController:{
11813 bindToController: {
11727 action: '=',
11814 action: '=',
11728 resource: '='
11815 resource: '='
11729 },
11816 },
11730 controller:postProcessActionController,
11817 controller: postProcessActionController,
11731 controllerAs:'ctrl',
11818 controllerAs: 'ctrl',
11732 restrict: 'E',
11819 restrict: 'E',
11733 templateUrl: 'directives/postprocess_action/postprocess_action.html'
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 = {
11823 function postProcessActionController() {
11765 '__AND__': 'All met (composite rule)',
11824 var vm = this;
11766 '__OR__': 'One met (composite rule)',
11825 vm.$onInit = function () {
11767 '__NOT__': 'Not met (composite rule)',
11826
11768 'http_status': 'HTTP Status',
11827 var allOps = {
11769 'duration': 'Request duration',
11828 'eq': 'Equal',
11770 'group:priority': 'Group -> Priority',
11829 'ne': 'Not equal',
11771 'url_domain': 'Domain',
11830 'ge': 'Greater or equal',
11772 'url_path': 'URL Path',
11831 'gt': 'Greater than',
11773 'error': 'Error',
11832 'le': 'Lesser or equal',
11774 'tags:server_name': 'Tag -> Server name',
11833 'lt': 'Lesser than',
11775 'group:occurences': 'Group -> Occurences'
11834 'startswith': 'Starts with',
11776 };
11835 'endswith': 'Ends with',
11836 'contains': 'Contains'
11837 };
11777
11838
11778 vm.ruleDefinitions = {
11839 var fieldOps = {};
11779 fieldOps: fieldOps,
11840 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
11780 allOps: allOps,
11841 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
11781 possibleFields: possibleFields
11842 fieldOps['duration'] = ['ge', 'le'];
11782 };
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 = [
11867 vm.ruleDefinitions = {
11785 ['1', 'Priority +1'],
11868 fieldOps: fieldOps,
11786 ['-1', 'Priority -1']
11869 allOps: allOps,
11787 ];
11870 possibleFields: possibleFields
11871 };
11788
11872
11873 vm.possibleActions = [
11874 ['1', 'Priority +1'],
11875 ['-1', 'Priority -1']
11876 ];
11877 }
11789 vm.deleteAction = function (action) {
11878 vm.deleteAction = function (action) {
11790 applicationsPropertyResource.remove({
11879 applicationsPropertyResource.remove({
11791 pkey: vm.action.pkey,
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 vm.action.dirty = true;
11909 vm.action.dirty = true;
11821
11910
11822 };
11911 };
@@ -11874,20 +11963,36 b' angular.module(\'appenlight.directives.recursive\', []).directive("recursive", fun'
11874 angular.module('appenlight.directives.reportAlertAction', []).directive('reportAlertAction', ['userSelfPropertyResource', function (userSelfPropertyResource) {
11963 angular.module('appenlight.directives.reportAlertAction', []).directive('reportAlertAction', ['userSelfPropertyResource', function (userSelfPropertyResource) {
11875 return {
11964 return {
11876 scope: {},
11965 scope: {},
11877 bindToController:{
11966 bindToController: {
11878 action: '=',
11967 action: '=',
11879 applications: '=',
11968 applications: '=',
11880 possibleChannels: '=',
11969 possibleChannels: '=',
11881 actions: '=',
11970 actions: '=',
11882 ruleDefinitions: '='
11971 ruleDefinitions: '='
11883 },
11972 },
11884 controller:reportAlertActionController,
11973 controller: reportAlertActionController,
11885 controllerAs:'ctrl',
11974 controllerAs: 'ctrl',
11886 restrict: 'E',
11975 restrict: 'E',
11887 templateUrl: 'directives/report_alert_action/report_alert_action.html'
11976 templateUrl: 'directives/report_alert_action/report_alert_action.html'
11888 };
11977 };
11889 function reportAlertActionController(){
11978
11979 function reportAlertActionController() {
11890 var vm = this;
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 vm.deleteAction = function (actions, action) {
11996 vm.deleteAction = function (actions, action) {
11892 var get = {
11997 var get = {
11893 key: 'alert_channels_rules',
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 var post = {
12008 var post = {
11904 channel_pkey: vm.channelToBind.pkey,
12009 channel_pkey: vm.channelToBind.pkey,
11905 action_pkey: vm.action.pkey
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 userSelfPropertyResource.delete({
12025 userSelfPropertyResource.delete({
11921 key: 'alert_channels_actions_binds',
12026 key: 'alert_channels_actions_binds',
11922 channel_pkey: channel.pkey,
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 = [
12057 vm.setDirty = function () {
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() {
11966 vm.action.dirty = true;
12058 vm.action.dirty = true;
11967
12059
11968 };
12060 };
@@ -11987,7 +12079,7 b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
11987 angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly', ['userSelfPropertyResource', function (userSelfPropertyResource) {
12079 angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly', ['userSelfPropertyResource', function (userSelfPropertyResource) {
11988 return {
12080 return {
11989 scope: {},
12081 scope: {},
11990 bindToController:{
12082 bindToController: {
11991 parentObj: '=',
12083 parentObj: '=',
11992 rule: '=',
12084 rule: '=',
11993 ruleDefinitions: '=',
12085 ruleDefinitions: '=',
@@ -11996,16 +12088,19 b" angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly"
11996 },
12088 },
11997 restrict: 'E',
12089 restrict: 'E',
11998 templateUrl: 'directives/rule_read_only/rule_read_only.html',
12090 templateUrl: 'directives/rule_read_only/rule_read_only.html',
11999 controller:RuleController,
12091 controller: RuleController,
12000 controllerAs:'rule_ctrlr'
12092 controllerAs: 'rule_ctrlr'
12001 }
12093 }
12002 function RuleController(){
12094
12095 function RuleController() {
12003 var vm = this;
12096 var vm = this;
12004 vm.readOnlyPossibleFields = {};
12097 vm.$onInit = function () {
12005 var labelPairs = _.pairs(vm.parentObj.config);
12098 vm.readOnlyPossibleFields = {};
12006 _.each(labelPairs, function (entry) {
12099 var labelPairs = _.pairs(vm.parentObj.config);
12007 vm.readOnlyPossibleFields[entry[0]] = entry[1].human_label;
12100 _.each(labelPairs, function (entry) {
12008 });
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 function RuleController(){
12136 function RuleController(){
12042 var vm = this;
12137 var vm = this;
12043
12138 vm.$onInit = function () {
12044 vm.rule.dirty = false;
12139 vm.rule.dirty = false;
12045 vm.oldField = vm.rule.field;
12140 vm.oldField = vm.rule.field;
12046
12141 }
12047 vm.add = function () {
12142 vm.add = function () {
12048 vm.rule.rules.push(
12143 vm.rule.rules.push(
12049 {op: "eq", field: 'http_status', value: ""}
12144 {op: "eq", field: 'http_status', value: ""}
@@ -20,16 +20,16 b''
20 "tests"
20 "tests"
21 ],
21 ],
22 "dependencies": {
22 "dependencies": {
23 "angular": "1.5.5",
23 "angular": "1.7.7",
24 "angular-resource": "1.5.5",
24 "angular-resource": "1.7.7",
25 "angular-cookies": "1.5.5",
25 "angular-cookies": "1.7.7",
26 "angular-sanitize": "1.5.5",
26 "angular-sanitize": "1.7.7",
27 "angular-animate": "1.5.5",
27 "angular-animate": "1.7.7",
28 "angular-touch": "1.5.5",
28 "angular-touch": "1.7.7",
29 "angular-route": "1.5.5",
29 "angular-route": "1.7.7",
30 "angular-messages": "1.5.5",
30 "angular-messages": "1.7.7",
31 "angular-mocks": "1.5.5",
31 "angular-mocks": "1.7.7",
32 "angular-scenario": "1.5.5",
32 "angular-scenario": "1.7.7",
33 "angular-bootstrap": "1.3.2",
33 "angular-bootstrap": "1.3.2",
34 "angular-ui-router": "1.0.0-beta.3",
34 "angular-ui-router": "1.0.0-beta.3",
35 "angular-toArrayFilter" : "1.0.1",
35 "angular-toArrayFilter" : "1.0.1",
@@ -1,8 +1,8 b''
1 {
1 {
2 "name": "errormator",
2 "name": "errormator",
3 "description": "JS layer for Errormator",
3 "description": "JS layer for AppEnlight",
4 "devDependencies": {
4 "devDependencies": {
5 "bower": "1.7.9",
5 "bower": "^1.8.8",
6 "bower-requirejs": "1.2.0",
6 "bower-requirejs": "1.2.0",
7 "grunt": "1.0.1",
7 "grunt": "1.0.1",
8 "grunt-angular-templates": "1.0.4",
8 "grunt-angular-templates": "1.0.4",
@@ -17,9 +17,12 b''
17 "grunt-contrib-uglify": "1.0.1",
17 "grunt-contrib-uglify": "1.0.1",
18 "grunt-contrib-watch": "1.0.0",
18 "grunt-contrib-watch": "1.0.0",
19 "grunt-remove-logging": "0.2.0",
19 "grunt-remove-logging": "0.2.0",
20 "ini": "1.3.4",
20 "karma": "0.13.22",
21 "karma": "0.13.22",
21 "underscore": "1.8.3",
22 "underscore": "1.8.3",
22 "yo": "1.8.4",
23 "yo": "1.8.4"
23 "ini": "1.3.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 ChannelstreamController.$inject = ['stateHolder', 'AeConfig'];
21 ChannelstreamController.$inject = ['stateHolder', 'AeConfig'];
22
22
23 function AppEnlightFooterController(stateHolder, AeConfig){
23 function AppEnlightFooterController(stateHolder, AeConfig) {
24 var vm = this;
24 var vm = this;
25 vm.AeConfig = AeConfig;
25
26 vm.stateHolder = stateHolder;
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 ChannelstreamController.$inject = ['$state', 'stateHolder', 'AeConfig'];
21 ChannelstreamController.$inject = ['$state', 'stateHolder', 'AeConfig'];
22
22
23 function AppEnlightHeaderController($state, stateHolder, AeConfig){
23 function AppEnlightHeaderController($state, stateHolder, AeConfig) {
24 var vm = this;
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 // exception reports
41 // exception reports
38 if (_.contains([1,2], event.event_type)){
42 if (_.contains([1, 2], event.event_type)) {
39 $state.go('report.list', {resource:event.resource_id, start_date:event.start_date});
43 $state.go('report.list', {resource: event.resource_id, start_date: event.start_date});
40 }
44 }
41 // slowness reports
45 // slowness reports
42 else if (_.contains([3,4], event.event_type)){
46 else if (_.contains([3, 4], event.event_type)) {
43 $state.go('report.list_slow', {resource:event.resource_id, start_date:event.start_date});
47 $state.go('report.list_slow', {resource: event.resource_id, start_date: event.start_date});
44 }
48 }
45 // uptime reports
49 // uptime reports
46 else if (_.contains([7,8], event.event_type)){
50 else if (_.contains([7, 8], event.event_type)) {
47 $state.go('uptime', {resource:event.resource_id, start_date:event.start_date});
51 $state.go('uptime', {resource: event.resource_id, start_date: event.start_date});
48 }
52 } else {
49 else{
50 console.log('other');
53 console.log('other');
51 }
54 }
52 }
55 }
@@ -23,12 +23,14 b" AdminApplicationsListController.$inject = ['applicationsResource'];"
23 function AdminApplicationsListController(applicationsResource) {
23 function AdminApplicationsListController(applicationsResource) {
24 console.debug('AdminApplicationsListController');
24 console.debug('AdminApplicationsListController');
25 var vm = this;
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 vm.applications = applicationsResource.query({
29 root_list: true,
30 root_list: true,
30 resource_type: 'application'
31 resource_type: 'application'
31 }, function (data) {
32 }, function (data) {
32 vm.loading = {applications: false};
33 vm.loading = {applications: false};
33 });
34 });
35 }
34 };
36 };
@@ -22,29 +22,30 b" AdminConfigurationViewController.$inject = ['configsResource', 'configsNoIdResou"
22
22
23 function AdminConfigurationViewController(configsResource, configsNoIdResource) {
23 function AdminConfigurationViewController(configsResource, configsNoIdResource) {
24 var vm = this;
24 var vm = this;
25 vm.loading = {config: true};
25 vm.$onInit = function () {
26
26 vm.loading = {config: true};
27 var filters = [
27
28 'template_footer_html:global',
28 var filters = [
29 'list_groups_to_non_admins:global',
29 'template_footer_html:global',
30 'per_application_reports_rate_limit:global',
30 'list_groups_to_non_admins:global',
31 'per_application_logs_rate_limit:global',
31 'per_application_reports_rate_limit:global',
32 'per_application_metrics_rate_limit:global',
32 'per_application_logs_rate_limit:global',
33 ];
33 'per_application_metrics_rate_limit:global',
34
34 ];
35 vm.configs = {};
35
36
36 vm.configs = {};
37 vm.configList = configsResource.query({filter: filters},
37
38 function (data) {
38 vm.configList = configsResource.query({filter: filters},
39 vm.loading = {config: false};
39 function (data) {
40 _.each(data, function (item) {
40 vm.loading = {config: false};
41 if (vm.configs[item.section] === undefined) {
41 _.each(data, function (item) {
42 vm.configs[item.section] = {};
42 if (vm.configs[item.section] === undefined) {
43 }
43 vm.configs[item.section] = {};
44 vm.configs[item.section][item.key] = item;
44 }
45 vm.configs[item.section][item.key] = item;
46 });
45 });
47 });
46 });
48 }
47
48 vm.save = function () {
49 vm.save = function () {
49 vm.loading.config = true;
50 vm.loading.config = true;
50 _.each(vm.configList, function (item) {
51 _.each(vm.configList, function (item) {
@@ -23,60 +23,62 b" AdminGroupsCreateViewController.$inject = ['$state', 'groupsResource', 'groupsPr"
23 function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyResource, sectionViewResource) {
23 function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyResource, sectionViewResource) {
24 console.debug('AdminGroupsCreateController');
24 console.debug('AdminGroupsCreateController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {
27 vm.$state = $state;
28 group: false,
28 vm.loading = {
29 resource_permissions: false,
29 group: false,
30 users: false
30 resource_permissions: false,
31 };
31 users: false
32 };
32
33
33 vm.form = {
34 vm.form = {
34 autocompleteUser: '',
35 autocompleteUser: '',
35 }
36 }
36
37
37
38
38 if (typeof $state.params.groupId !== 'undefined') {
39 if (typeof $state.params.groupId !== 'undefined') {
39 vm.loading.group = true;
40 vm.loading.group = true;
40 var groupId = $state.params.groupId;
41 var groupId = $state.params.groupId;
41 vm.group = groupsResource.get({groupId: groupId}, function (data) {
42 vm.group = groupsResource.get({groupId: groupId}, function (data) {
42 vm.loading.group = false;
43 vm.loading.group = false;
43 });
44 });
44
45
45 vm.resource_permissions = groupsPropertyResource.query(
46 vm.resource_permissions = groupsPropertyResource.query(
46 {groupId: groupId, key: 'resource_permissions'}, function (data) {
47 {groupId: groupId, key: 'resource_permissions'}, function (data) {
47 vm.loading.resource_permissions = false;
48 vm.loading.resource_permissions = false;
48 var tmpObj = {
49 var tmpObj = {
49 'group': {
50 'group': {
50 'application': {},
51 'application': {},
51 'dashboard': {}
52 'dashboard': {}
52 }
53 }
53 };
54 };
54 _.each(data, function (item) {
55 _.each(data, function (item) {
55 console.log(item);
56 console.log(item);
56 var section = tmpObj[item.type][item.resource_type];
57 var section = tmpObj[item.type][item.resource_type];
57 if (typeof section[item.resource_id] == 'undefined') {
58 if (typeof section[item.resource_id] == 'undefined') {
58 section[item.resource_id] = {
59 section[item.resource_id] = {
59 self: item,
60 self: item,
60 permissions: []
61 permissions: []
62 }
61 }
63 }
62 }
64 section[item.resource_id].permissions.push(item.perm_name);
63 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 vm.users = groupsPropertyResource.query(
71 {groupId: groupId, key: 'users'}, function (data) {
72 {groupId: groupId, key: 'users'}, function (data) {
72 vm.loading.users = false;
73 vm.loading.users = false;
73 }, function () {
74 }, function () {
74 vm.loading.users = false;
75 vm.loading.users = false;
75 });
76 });
77
78 } else {
79 var groupId = null;
80 }
76
81
77 }
78 else {
79 var groupId = null;
80 }
82 }
81
83
82 var formResponse = function (response) {
84 var formResponse = function (response) {
@@ -93,8 +95,7 b' function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyR'
93 setServerValidation(vm.groupForm);
95 setServerValidation(vm.groupForm);
94 vm.loading.group = false;
96 vm.loading.group = false;
95 }, formResponse);
97 }, formResponse);
96 }
98 } else {
97 else {
98 groupsResource.save(vm.group, function (data) {
99 groupsResource.save(vm.group, function (data) {
99 $state.go('admin.group.update', {groupId: data.id});
100 $state.go('admin.group.update', {groupId: data.id});
100 }, formResponse);
101 }, formResponse);
@@ -134,9 +135,9 b' function AdminGroupsCreateViewController($state, groupsResource, groupsPropertyR'
134 view: 'search_users',
135 view: 'search_users',
135 'user_name': searchPhrase
136 'user_name': searchPhrase
136 }).$promise.then(function (data) {
137 }).$promise.then(function (data) {
137 return _.map(data, function (item) {
138 return _.map(data, function (item) {
138 return item.user;
139 return item.user;
139 });
140 });
140 });
141 });
141 }
142 }
142 };
143 };
@@ -23,24 +23,25 b" AdminGroupsListViewController.$inject = ['$state', 'groupsResource'];"
23 function AdminGroupsListViewController($state, groupsResource) {
23 function AdminGroupsListViewController($state, groupsResource) {
24 console.debug('AdminGroupsListViewController');
24 console.debug('AdminGroupsListViewController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 this.$onInit = function () {
27 vm.loading = {groups: true};
27 vm.$state = $state;
28
28 vm.loading = {groups: true};
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 });
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 vm.removeGroup = function (group) {
42 vm.removeGroup = function (group) {
42 groupsResource.remove({groupId: group.id}, function (data, responseHeaders) {
43 groupsResource.remove({groupId: group.id}, function (data, responseHeaders) {
43 console.log('x',data, responseHeaders());
44 console.log('x', data, responseHeaders());
44 if (data) {
45 if (data) {
45 var index = vm.groups.indexOf(group);
46 var index = vm.groups.indexOf(group);
46 if (index !== -1) {
47 if (index !== -1) {
@@ -22,14 +22,18 b" AdminPartitionsViewController.$inject = ['sectionViewResource'];"
22
22
23 function AdminPartitionsViewController(sectionViewResource) {
23 function AdminPartitionsViewController(sectionViewResource) {
24 var vm = this;
24 var vm = this;
25 vm.permanentPartitions = [];
25 this.$onInit = function () {
26 vm.dailyPartitions = [];
26 vm.permanentPartitions = [];
27 vm.loading = {partitions: true};
27 vm.dailyPartitions = [];
28 vm.dailyChecked = false;
28 vm.loading = {partitions: true};
29 vm.permChecked = false;
29 vm.dailyChecked = false;
30 vm.dailyConfirm = '';
30 vm.permChecked = false;
31 vm.permConfirm = '';
31 vm.dailyConfirm = '';
32 vm.permConfirm = '';
32
33
34 sectionViewResource.get({section: 'admin_section', view: 'partitions'},
35 vm.loadPartitions);
36 }
33
37
34 vm.loadPartitions = function (data) {
38 vm.loadPartitions = function (data) {
35 var permanentPartitions = vm.transformPartitionList(
39 var permanentPartitions = vm.transformPartitionList(
@@ -43,17 +47,15 b' function AdminPartitionsViewController(sectionViewResource) {'
43
47
44 vm.setCheckedList = function (scope) {
48 vm.setCheckedList = function (scope) {
45 var toTest = null;
49 var toTest = null;
46 if (scope === 'dailyPartitions'){
50 if (scope === 'dailyPartitions') {
47 toTest = 'dailyChecked';
51 toTest = 'dailyChecked';
48 }
52 } else {
49 else{
50 toTest = 'permChecked';
53 toTest = 'permChecked';
51 }
54 }
52
55
53 if (vm[toTest]) {
56 if (vm[toTest]) {
54 var val = true;
57 var val = true;
55 }
58 } else {
56 else {
57 var val = false;
59 var val = false;
58 }
60 }
59 console.log('scope', scope);
61 console.log('scope', scope);
@@ -90,9 +92,6 b' function AdminPartitionsViewController(sectionViewResource) {'
90 return outputList;
92 return outputList;
91 };
93 };
92
94
93 sectionViewResource.get({section:'admin_section', view: 'partitions'},
94 vm.loadPartitions);
95
96 vm.partitionsDelete = function (partitionType) {
95 vm.partitionsDelete = function (partitionType) {
97 var es_indices = [];
96 var es_indices = [];
98 var pg_indices = [];
97 var pg_indices = [];
@@ -111,8 +110,10 b' function AdminPartitionsViewController(sectionViewResource) {'
111 console.log(es_indices, pg_indices);
110 console.log(es_indices, pg_indices);
112
111
113 vm.loading = {partitions: true};
112 vm.loading = {partitions: true};
114 sectionViewResource.save({section:'admin_section',
113 sectionViewResource.save({
115 view: 'partitions_remove'}, {
114 section: 'admin_section',
115 view: 'partitions_remove'
116 }, {
116 es_indices: es_indices,
117 es_indices: es_indices,
117 pg_indices: pg_indices,
118 pg_indices: pg_indices,
118 confirm: 'CONFIRM'
119 confirm: 'CONFIRM'
@@ -22,22 +22,24 b" AdminSystemViewController.$inject = ['sectionViewResource'];"
22
22
23 function AdminSystemViewController(sectionViewResource) {
23 function AdminSystemViewController(sectionViewResource) {
24 var vm = this;
24 var vm = this;
25 vm.tables = [];
25 this.$onInit = function () {
26 vm.loading = {system: true};
26 vm.tables = [];
27 sectionViewResource.get({
27 vm.loading = {system: true};
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;
40
28
41 vm.loading.system = false;
29 sectionViewResource.get({
42 });
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 function AdminUsersCreateViewController($state, usersResource, usersPropertyResource, sectionViewResource, AeConfig) {
23 function AdminUsersCreateViewController($state, usersResource, usersPropertyResource, sectionViewResource, AeConfig) {
24 console.debug('AdminUsersCreateViewController');
24 console.debug('AdminUsersCreateViewController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {user: false};
27 vm.$state = $state;
28 vm.loading = {user: false};
28
29
29
30
30 if (typeof $state.params.userId !== 'undefined') {
31 if (typeof $state.params.userId !== 'undefined') {
31 vm.loading.user = true;
32 vm.loading.user = true;
32 var userId = $state.params.userId;
33 var userId = $state.params.userId;
33 vm.user = usersResource.get({userId: userId}, function (data) {
34 vm.user = usersResource.get({userId: userId}, function (data) {
34 vm.loading.user = false;
35 vm.loading.user = false;
35 // cast to true for angular checkbox
36 // cast to true for angular checkbox
36 if (vm.user.status === 1) {
37 if (vm.user.status === 1) {
37 vm.user.status = true;
38 vm.user.status = true;
38 }
39 }
39 });
40 });
40
41
41 vm.resource_permissions = usersPropertyResource.query(
42 vm.resource_permissions = usersPropertyResource.query(
42 {userId: userId, key: 'resource_permissions'}, function (data) {
43 {userId: userId, key: 'resource_permissions'}, function (data) {
43 vm.loading.resource_permissions = false;
44 vm.loading.resource_permissions = false;
44 var tmpObj = {
45 var tmpObj = {
45 'user': {
46 'user': {
46 'application': {},
47 'application': {},
47 'dashboard': {}
48 'dashboard': {}
48 },
49 },
49 'group': {
50 'group': {
50 'application': {},
51 'application': {},
51 'dashboard': {}
52 '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: []
61 }
53 }
62 }
54 };
63 section[item.resource_id].permissions.push(item.perm_name);
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 {
71 else {
72 var userId = null;
72 var userId = null;
73 vm.user = {
73 vm.user = {
74 status: true
74 status: true
75 }
75 }
76 }
76 }
77 }
77
78
@@ -23,19 +23,20 b" AdminUserListViewController.$inject = ['usersResource'];"
23 function AdminUserListViewController(usersResource) {
23 function AdminUserListViewController(usersResource) {
24 console.debug('AdminUsersController');
24 console.debug('AdminUsersController');
25 var vm = this;
25 var vm = this;
26 vm.loading = {users: true};
26 vm.$onInit = function () {
27
27 vm.loading = {users: true};
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 });
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 vm.removeUser = function (user) {
41 vm.removeUser = function (user) {
41 usersResource.remove({userId: user.id}, function (data, responseHeaders) {
42 usersResource.remove({userId: user.id}, function (data, responseHeaders) {
@@ -21,7 +21,10 b" angular.module('appenlight.components.adminView', [])"
21 AdminViewController.$inject = ['$state', 'AeConfig'];
21 AdminViewController.$inject = ['$state', 'AeConfig'];
22
22
23 function AdminViewController($state, AeConfig) {
23 function AdminViewController($state, AeConfig) {
24 this.$state = $state;
24 this.$onInit = function () {
25 this.AeConfig = AeConfig;
25 this.$state = $state;
26 console.info('AdminViewController');
26 this.AeConfig = AeConfig;
27 console.info('AdminViewController');
28 }
29
27 }
30 }
@@ -23,9 +23,11 b" IntegrationsListViewController.$inject = ['$state', 'applicationsResource'];"
23 function IntegrationsListViewController($state, applicationsResource) {
23 function IntegrationsListViewController($state, applicationsResource) {
24 console.debug('IntegrationsListController');
24 console.debug('IntegrationsListController');
25 var vm = this;
25 var vm = this;
26 vm.loading = {application: true};
26 vm.$onInit = function () {
27 vm.resource = applicationsResource.get({resourceId: $state.params.resourceId}, function (data) {
27 vm.loading = {application: true};
28 vm.loading.application = false;
28 vm.resource = applicationsResource.get({resourceId: $state.params.resourceId}, function (data) {
29 $state.current.data.resource = vm.resource;
29 vm.loading.application = false;
30 });
30 $state.current.data.resource = vm.resource;
31 });
32 }
31 }
33 }
@@ -23,9 +23,11 b" ApplicationsListViewController.$inject = ['$state', 'applicationsResource'];"
23 function ApplicationsListViewController($state, applicationsResource) {
23 function ApplicationsListViewController($state, applicationsResource) {
24 console.debug('ApplicationsListController');
24 console.debug('ApplicationsListController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {applications: true};
27 vm.$state = $state;
28 vm.applications = applicationsResource.query(null, function(){
28 vm.loading = {applications: true};
29 vm.loading.applications = false;
29 vm.applications = applicationsResource.query(null, function () {
30 });
30 vm.loading.applications = false;
31 });
32 }
31 }
33 }
@@ -18,23 +18,25 b" angular.module('appenlight.components.applicationsPurgeLogsView', [])"
18 controller: applicationsPurgeLogsViewController
18 controller: applicationsPurgeLogsViewController
19 });
19 });
20
20
21 applicationsPurgeLogsViewController.$inject = ['$state' ,'applicationsResource', 'sectionViewResource', 'logsNoIdResource'];
21 applicationsPurgeLogsViewController.$inject = ['$state', 'applicationsResource', 'sectionViewResource', 'logsNoIdResource'];
22
22
23 function applicationsPurgeLogsViewController($state, applicationsResource, sectionViewResource, logsNoIdResource) {
23 function applicationsPurgeLogsViewController($state, applicationsResource, sectionViewResource, logsNoIdResource) {
24 console.debug('applicationsPurgeLogsViewController');
24 console.debug('applicationsPurgeLogsViewController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {applications: true};
27 vm.$state = $state;
28 vm.loading = {applications: true};
28
29
29 vm.namespace = null;
30 vm.namespace = null;
30 vm.selectedResource = null;
31 vm.selectedResource = null;
31 vm.commonNamespaces = [];
32 vm.commonNamespaces = [];
32
33
33 vm.applications = applicationsResource.query({'type':'update_reports'}, function () {
34 vm.applications = applicationsResource.query({'type': 'update_reports'}, function () {
34 vm.loading.applications = false;
35 vm.loading.applications = false;
35 vm.selectedResource = vm.applications[0].resource_id;
36 vm.selectedResource = vm.applications[0].resource_id;
36 vm.getCommonKeys();
37 vm.getCommonKeys();
37 });
38 });
39 }
38
40
39 /**
41 /**
40 * Fetches most commonly used tags in logs
42 * Fetches most commonly used tags in logs
@@ -51,8 +53,10 b' function applicationsPurgeLogsViewController($state, applicationsResource, secti'
51
53
52 vm.purgeLogs = function () {
54 vm.purgeLogs = function () {
53 vm.loading.applications = true;
55 vm.loading.applications = true;
54 logsNoIdResource.delete({resource:vm.selectedResource,
56 logsNoIdResource.delete({
55 namespace: vm.namespace}, function(){
57 resource: vm.selectedResource,
58 namespace: vm.namespace
59 }, function () {
56 vm.loading.applications = false;
60 vm.loading.applications = false;
57 });
61 });
58 }
62 }
@@ -24,41 +24,41 b' function applicationsUpdateViewController($state, applicationsNoIdResource, appl'
24 'use strict';
24 'use strict';
25 console.debug('applicationsUpdateView');
25 console.debug('applicationsUpdateView');
26 var vm = this;
26 var vm = this;
27 vm.AeConfig = AeConfig;
27 vm.$onInit = function () {
28 vm.$state = $state;
28 vm.AeConfig = AeConfig;
29 vm.loading = {application: false};
29 vm.$state = $state;
30 vm.loading = {application: false};
30
31
31 vm.groupingOptions = [
32 vm.groupingOptions = [
32 ['url_type', 'Error Type + location'],
33 ['url_type', 'Error Type + location'],
33 ['url_traceback', 'Traceback + location'],
34 ['url_traceback', 'Traceback + location'],
34 ['traceback_server', 'Traceback + Server'],
35 ['traceback_server', 'Traceback + Server'],
35 ];
36 ];
36 var resourceId = $state.params.resourceId;
37 var resourceId = $state.params.resourceId;
37 var options = {};
38 var options = {};
38 vm.momentJs = moment;
39 vm.momentJs = moment;
39 vm.formTransferModel = {password:''};
40 vm.formTransferModel = {password: ''};
40
41
41 // set initial data
42 // set initial data
42
43
43 if (resourceId === 'new') {
44 if (resourceId === 'new') {
44 vm.resource = {
45 vm.resource = {
45 resource_id: null,
46 resource_id: null,
46 slow_report_threshold: 10,
47 slow_report_threshold: 10,
47 error_report_threshold: 10,
48 error_report_threshold: 10,
48 allow_permanent_storage: true,
49 allow_permanent_storage: true,
49 default_grouping: vm.groupingOptions[1][0]
50 default_grouping: vm.groupingOptions[1][0]
50 };
51 };
51 }
52 } else {
52 else {
53 vm.loading.application = true;
53 vm.loading.application = true;
54 vm.resource = applicationsResource.get({
54 vm.resource = applicationsResource.get({
55 'resourceId': resourceId
55 'resourceId': resourceId
56 }, function (data) {
56 }, function (data) {
57 vm.loading.application = false;
57 vm.loading.application = false;
58 });
58 });
59 }
59 }
60 }
60
61
61
62 vm.updateBasicForm = function () {
62 vm.updateBasicForm = function () {
63 vm.loading.application = true;
63 vm.loading.application = true;
64 if (vm.resource.resource_id === null) {
64 if (vm.resource.resource_id === null) {
@@ -23,15 +23,16 b" EventBrowserController.$inject = ['eventsNoIdResource', 'eventsResource'];"
23 function EventBrowserController(eventsNoIdResource, eventsResource) {
23 function EventBrowserController(eventsNoIdResource, eventsResource) {
24 console.info('EventBrowserController');
24 console.info('EventBrowserController');
25 var vm = this;
25 var vm = this;
26 vm.$onInit = function () {
26
27
27 vm.loading = {events: true};
28 vm.loading = {events: true};
28
29 vm.events = eventsNoIdResource.query(
30 {key: 'events'},
31 function (data) {
32 vm.loading.events = false;
33 });
34
29
30 vm.events = eventsNoIdResource.query(
31 {key: 'events'},
32 function (data) {
33 vm.loading.events = false;
34 });
35 }
35
36
36 vm.closeEvent = function (event) {
37 vm.closeEvent = function (event) {
37 console.log('closeEvent');
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 function IndexDashboardController($rootScope, $scope, $location, $cookies, $interval, stateHolder, applicationsPropertyResource, AeConfig) {
23 function IndexDashboardController($rootScope, $scope, $location, $cookies, $interval, stateHolder, applicationsPropertyResource, AeConfig) {
24 var vm = this;
24 var vm = this;
25 stateHolder.section = 'dashboard';
25 vm.$onInit = function () {
26 vm.timeOptions = {};
26 stateHolder.section = 'dashboard';
27 var allowed = ['1h', '4h', '12h', '24h', '1w', '2w', '1M'];
27 vm.timeOptions = {};
28 _.each(allowed, function (key) {
28 var allowed = ['1h', '4h', '12h', '24h', '1w', '2w', '1M'];
29 if (allowed.indexOf(key) !== -1) {
29 _.each(allowed, function (key) {
30 vm.timeOptions[key] = AeConfig.timeOptions[key];
30 if (allowed.indexOf(key) !== -1) {
31 }
31 vm.timeOptions[key] = AeConfig.timeOptions[key];
32 });
32 }
33 vm.stateHolder = stateHolder;
33 });
34 vm.urls = AeConfig.urls;
34 vm.stateHolder = stateHolder;
35 vm.applications = stateHolder.AeUser.applications_map;
35 vm.urls = AeConfig.urls;
36 vm.show_dashboard = false;
36 vm.applications = stateHolder.AeUser.applications_map;
37 vm.resource = null;
37 vm.show_dashboard = false;
38 vm.graphType = {selected: null};
38 vm.resource = null;
39 vm.timeSpan = vm.timeOptions['1h'];
39 vm.graphType = {selected: null};
40 vm.trendingReports = [];
40 vm.timeSpan = vm.timeOptions['1h'];
41 vm.exceptions = 0;
41 vm.trendingReports = [];
42 vm.satisfyingRequests = 0;
42 vm.exceptions = 0;
43 vm.toleratedRequests = 0;
43 vm.satisfyingRequests = 0;
44 vm.frustratingRequests = 0;
44 vm.toleratedRequests = 0;
45 vm.uptimeStats = 0;
45 vm.frustratingRequests = 0;
46 vm.apdexStats = [];
46 vm.uptimeStats = 0;
47 vm.seriesRequestsData = [];
47 vm.apdexStats = [];
48 vm.seriesMetricsData = [];
48 vm.seriesRequestsData = [];
49 vm.seriesSlowData = [];
49 vm.seriesMetricsData = [];
50 vm.slowCalls = [];
50 vm.seriesSlowData = [];
51 vm.slowURIS = [];
51 vm.slowCalls = [];
52
52 vm.slowURIS = [];
53 vm.reportChartConfig = {
53
54 data: {
54 vm.reportChartConfig = {
55 json: [],
55 data: {
56 xFormat: '%Y-%m-%dT%H:%M:%S'
56 json: [],
57 },
57 xFormat: '%Y-%m-%dT%H:%M:%S'
58 color: {
58 },
59 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
59 color: {
60 },
60 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
61 axis: {
61 },
62 x: {
62 axis: {
63 type: 'timeseries',
63 x: {
64 tick: {
64 type: 'timeseries',
65 culling: {
65 tick: {
66 max: 6 // the number of tick texts will be adjusted to less than this value
66 culling: {
67 },
67 max: 6 // the number of tick texts will be adjusted to less than this value
68 format: '%Y-%m-%d %H:%M'
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: {
79 subchart: {
72 tick: {
80 show: true,
73 count: 5,
81 size: {
74 format: d3.format('.2s')
82 height: 20
75 }
83 }
76 }
84 },
77 },
78 subchart: {
79 show: true,
80 size: {
85 size: {
81 height: 20
86 height: 250
82 }
87 },
83 },
88 zoom: {
84 size: {
89 rescale: true
85 height: 250
90 },
86 },
91 grid: {
87 zoom: {
92 x: {
88 rescale: true
93 show: 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;
102 },
94 },
103 value: function (v) {
95 y: {
104 return v
96 show: true
105 }
97 }
106 }
98 },
107 }
99 tooltip: {
108 };
100 format: {
109 vm.reportChartData = {};
101 title: function (d) {
110
102 return '' + d;
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
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: {
117 color: {
130 tick: {
118 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
131 count: 5,
119 },
132 format: d3.format('.2s')
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 }
136 },
135 },
137 subchart: {
136 subchart: {
138 show: true,
137 show: true,
139 size: {
140 height: 20
141 }
142 },
138 size: {
143 size: {
139 height: 20
144 height: 250
140 }
145 },
141 },
146 zoom: {
142 size: {
147 rescale: true
143 height: 250
148 },
144 },
149 grid: {
145 zoom: {
150 x: {
146 rescale: true
151 show: 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;
160 },
152 },
161 value: function (v) {
153 y: {
162 return v
154 show: true
163 }
155 }
164 }
156 },
165 }
157 tooltip: {
166 };
158 format: {
167 vm.reportSlowChartData = {};
159 title: function (d) {
168
160 return '' + d;
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
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: {
210 point: {
203 tick: {
211 show: false
204 count: 5,
212 },
205 format: d3.format('.2f')
213 subchart: {
214 show: true,
215 size: {
216 height: 20
206 }
217 }
207 }
218 },
208 },
209 point: {
210 show: false
211 },
212 subchart: {
213 show: true,
214 size: {
219 size: {
215 height: 20
220 height: 350
216 }
221 },
217 },
222 zoom: {
218 size: {
223 rescale: true
219 height: 350
224 },
220 },
225 grid: {
221 zoom: {
226 x: {
222 rescale: true
227 show: 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;
236 },
228 },
237 value: function (v) {
229 y: {
238 return v
230 show: true
239 }
231 }
240 }
232 },
241 }
233 tooltip: {
242 };
234 format: {
243 vm.metricsChartData = {};
235 title: function (d) {
244
236 return '' + d;
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
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: {
251 color: {
264 tick: {
252 pattern: ['#d6616b', '#6baed6', '#fd8d3c']
265 count: 5,
253 },
266 format: d3.format('.2f')
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 }
270 },
269 },
271 point: {
270 point: {
272 show: false
271 show: false
273 },
272 },
274 subchart: {
273 subchart: {
275 show: true,
274 show: true,
276 size: {
277 height: 20
278 }
279 },
275 size: {
280 size: {
276 height: 20
281 height: 350
277 }
282 },
278 },
283 zoom: {
279 size: {
284 rescale: true
280 height: 350
285 },
281 },
286 grid: {
282 zoom: {
287 x: {
283 rescale: true
288 show: 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;
297 },
289 },
298 value: function (v) {
290 y: {
299 return v
291 show: true
300 }
292 }
301 }
293 },
302 }
294 tooltip: {
303 };
295 format: {
304 vm.responseChartData = {};
296 title: function (d) {
305
297 return '' + d;
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
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: {
315 axis: {
325 tick: {
316 x: {
326 count: 5,
317 type: 'timeseries',
327 format: d3.format('.2f')
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 }
331 },
330 },
332 point: {
331 point: {
333 show: false
332 show: false
334 },
333 },
335 subchart: {
334 subchart: {
336 show: true,
335 show: true,
337 size: {
338 height: 20
339 }
340 },
336 size: {
341 size: {
337 height: 20
342 height: 350
338 }
343 },
339 },
344 zoom: {
340 size: {
345 rescale: true
341 height: 350
346 },
342 },
347 grid: {
343 zoom: {
348 x: {
344 rescale: true
349 show: 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;
358 },
350 },
359 value: function (v) {
351 y: {
360 return v
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 $rootScope.$on('channelstream-message.front_dashboard.new_topic', function(event, message){
395 $rootScope.$on('channelstream-message.front_dashboard.new_topic', function(event, message){
379 var ws_report = message.message.report;
396 var ws_report = message.message.report;
380 if (ws_report.http_status != 500) {
397 if (ws_report.http_status != 500) {
@@ -463,16 +480,6 b' function IndexDashboardController($rootScope, $scope, $location, $cookies, $inte'
463 vm.refreshData();
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 vm.fetchApdexStats = function () {
483 vm.fetchApdexStats = function () {
477 vm.loading.apdex = true;
484 vm.loading.apdex = true;
478 vm.apdexStats = applicationsPropertyResource.query({
485 vm.apdexStats = applicationsPropertyResource.query({
@@ -653,9 +660,4 b' function IndexDashboardController($rootScope, $scope, $location, $cookies, $inte'
653 $scope.$on('$destroy',function(){
660 $scope.$on('$destroy',function(){
654 $interval.cancel(vm.intervalId);
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 function ApplicationsIntegrationsEditViewController($state, integrationResource) {
18 function ApplicationsIntegrationsEditViewController($state, integrationResource) {
19 console.debug('IntegrationController');
19 console.debug('IntegrationController');
20 var vm = this;
20 var vm = this;
21 vm.$state = $state;
21 vm.$onInit = function () {
22 vm.loading = {integration: true};
22 vm.$state = $state;
23 vm.config = integrationResource.get(
23 vm.loading = {integration: true};
24 {
24 vm.config = integrationResource.get(
25 integration: $state.params.integration,
25 {
26 action: 'setup',
26 integration: $state.params.integration,
27 resourceId: $state.params.resourceId
27 action: 'setup',
28 }, function (data) {
28 resourceId: $state.params.resourceId
29 vm.loading.integration = false;
29 }, function (data) {
30 });
30 vm.loading.integration = false;
31
31 });
32 }
32 vm.configureIntegration = function () {
33 vm.configureIntegration = function () {
33 console.info('configureIntegration');
34 console.info('configureIntegration');
34 vm.loading.integration = true;
35 vm.loading.integration = true;
@@ -22,142 +22,156 b" LogsBrowserController.$inject = ['$location', 'stateHolder', 'typeAheadTagHelper"
22
22
23 function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsNoIdResource, sectionViewResource) {
23 function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsNoIdResource, sectionViewResource) {
24 var vm = this;
24 var vm = this;
25 vm.logEventsChartConfig = {
25 vm.$onInit = function () {
26 data: {
26 vm.logEventsChartConfig = {
27 json: [],
27 data: {
28 xFormat: '%Y-%m-%dT%H:%M:%S'
28 json: [],
29 },
29 xFormat: '%Y-%m-%dT%H:%M:%S'
30 color: {
30 },
31 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
31 color: {
32 },
32 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
33 axis: {
33 },
34 x: {
34 axis: {
35 type: 'timeseries',
35 x: {
36 tick: {
36 type: 'timeseries',
37 format: '%Y-%m-%d'
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: {
48 subchart: {
41 tick: {
49 show: true,
42 count: 5,
50 size: {
43 format: d3.format('.2s')
51 height: 20
44 }
52 }
45 }
53 },
46 },
47 subchart: {
48 show: true,
49 size: {
54 size: {
50 height: 20
55 height: 250
51 }
52 },
53 size: {
54 height: 250
55 },
56 zoom: {
57 rescale: true
58 },
59 grid: {
60 x: {
61 show: true
62 },
56 },
63 y: {
57 zoom: {
64 show: true
58 rescale: true
65 }
59 },
66 },
60 grid: {
67 tooltip: {
61 x: {
68 format: {
62 show: true
69 title: function (d) {
70 return '' + d;
71 },
63 },
72 value: function (v) {
64 y: {
73 return v
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 }
78 };
77 };
79 vm.logEventsChartData = {};
78 vm.logEventsChartData = {};
80 stateHolder.section = 'logs';
79 stateHolder.section = 'logs';
81 vm.today = function () {
80 vm.today = function () {
82 vm.pickerDate = new Date();
81 vm.pickerDate = new Date();
83 };
82 };
84 vm.today();
83 vm.today();
84
85
85 vm.applications = stateHolder.AeUser.applications_map;
86 vm.applications = stateHolder.AeUser.applications_map;
86 vm.logsPage = [];
87 vm.logsPage = [];
87 vm.itemCount = 0;
88 vm.itemCount = 0;
88 vm.itemsPerPage = 250;
89 vm.itemsPerPage = 250;
89 vm.page = 1;
90 vm.page = 1;
90 vm.$location = $location;
91 vm.$location = $location;
91 vm.isLoading = {
92 vm.isLoading = {
92 logs: true,
93 logs: true,
93 series: true
94 series: true
94 };
95 };
95 vm.filterTypeAheadOptions = [
96 vm.filterTypeAheadOptions = [
96 {
97 {
97 type: 'message',
98 type: 'message',
98 text: 'message:',
99 text: 'message:',
99 'description': 'Full-text search in your logs',
100 'description': 'Full-text search in your logs',
100 tag: 'Message',
101 tag: 'Message',
101 example: 'message:text-im-looking-for'
102 example: 'message:text-im-looking-for'
102 },
103 },
103 {
104 {
104 type: 'namespace',
105 type: 'namespace',
105 text: 'namespace:',
106 text: 'namespace:',
106 'description': 'Query logs from specific namespace',
107 'description': 'Query logs from specific namespace',
107 tag: 'Namespace',
108 tag: 'Namespace',
108 example: "namespace:module.foo"
109 example: "namespace:module.foo"
109 },
110 },
110 {
111 {
111 type: 'resource',
112 type: 'resource',
112 text: 'resource:',
113 text: 'resource:',
113 'description': 'Restrict resultset to application',
114 'description': 'Restrict resultset to application',
114 tag: 'Application',
115 tag: 'Application',
115 example: "resource:ID"
116 example: "resource:ID"
116 },
117 },
117 {
118 {
118 type: 'request_id',
119 type: 'request_id',
119 text: 'request_id:',
120 text: 'request_id:',
120 'description': 'Show logs with specific request id',
121 'description': 'Show logs with specific request id',
121 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
122 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
122 tag: 'Request ID'
123 tag: 'Request ID'
123 },
124 },
124 {
125 {
125 type: 'level',
126 type: 'level',
126 text: 'level:',
127 text: 'level:',
127 'description': 'Show entries with specific log level',
128 'description': 'Show entries with specific log level',
128 example: 'level:warning',
129 example: 'level:warning',
129 tag: 'Level'
130 tag: 'Level'
130 },
131 },
131 {
132 {
132 type: 'server_name',
133 type: 'server_name',
133 text: 'server_name:',
134 text: 'server_name:',
134 'description': 'Show entries tagged with this key/value pair',
135 'description': 'Show entries tagged with this key/value pair',
135 example: 'server_name:hostname',
136 example: 'server_name:hostname',
136 tag: 'Tag'
137 tag: 'Tag'
137 },
138 },
138 {
139 {
139 type: 'start_date',
140 type: 'start_date',
140 text: 'start_date:',
141 text: 'start_date:',
141 'description': 'Show results newer than this date (press TAB for dropdown)',
142 'description': 'Show results newer than this date (press TAB for dropdown)',
142 example: 'start_date:2014-08-15T13:00',
143 example: 'start_date:2014-08-15T13:00',
143 tag: 'Start Date'
144 tag: 'Start Date'
144 },
145 },
145 {
146 {
146 type: 'end_date',
147 type: 'end_date',
147 text: 'end_date:',
148 text: 'end_date:',
148 'description': 'Show results older than this date (press TAB for dropdown)',
149 'description': 'Show results older than this date (press TAB for dropdown)',
149 example: 'start_date:2014-08-15T23:59',
150 example: 'start_date:2014-08-15T23:59',
150 tag: 'End Date'
151 tag: 'End Date'
151 },
152 },
152 {type: 'level', value: 'debug', text: 'level:debug'},
153 {type: 'level', value: 'debug', text: 'level:debug'},
153 {type: 'level', value: 'info', text: 'level:info'},
154 {type: 'level', value: 'info', text: 'level:info'},
154 {type: 'level', value: 'warning', text: 'level:warning'},
155 {type: 'level', value: 'warning', text: 'level:warning'},
155 {type: 'level', value: 'critical', text: 'level:critical'}
156 {type: 'level', value: 'critical', text: 'level:critical'}
156 ];
157 ];
157 vm.filterTypeAhead = null;
158 vm.filterTypeAhead = null;
158 vm.showDatePicker = false;
159 vm.showDatePicker = false;
159 vm.manualOpen = false;
160 vm.manualOpen = false;
160 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
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 vm.removeSearchTag = function (tag) {
175 vm.removeSearchTag = function (tag) {
162 $location.search(tag.type, null);
176 $location.search(tag.type, null);
163 vm.refresh();
177 vm.refresh();
@@ -172,17 +186,6 b' function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsN'
172 vm.refresh();
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 vm.typeAheadTag = function (event) {
189 vm.typeAheadTag = function (event) {
187 var text = vm.filterTypeAhead;
190 var text = vm.filterTypeAhead;
188 if (_.isObject(vm.filterTypeAhead)) {
191 if (_.isObject(vm.filterTypeAhead)) {
@@ -288,6 +291,5 b' function LogsBrowserController($location, stateHolder, typeAheadTagHelper, logsN'
288 vm.fetchLogs(params);
291 vm.fetchLogs(params);
289 vm.fetchSeriesData(params);
292 vm.fetchSeriesData(params);
290 };
293 };
291 console.info('page load');
294
292 vm.refresh();
293 }
295 }
@@ -24,78 +24,98 b" ReportViewController.$inject = ['$window', '$location', '$state', '$uibModal',"
24
24
25 function ReportViewController($window, $location, $state, $uibModal, $cookies, reportGroupPropertyResource, reportGroupResource, logsNoIdResource, stateHolder) {
25 function ReportViewController($window, $location, $state, $uibModal, $cookies, reportGroupPropertyResource, reportGroupResource, logsNoIdResource, stateHolder) {
26 var vm = this;
26 var vm = this;
27 vm.window = $window;
27 vm.$onInit = function () {
28 vm.stateHolder = stateHolder;
28 vm.window = $window;
29 vm.$state = $state;
29 vm.stateHolder = stateHolder;
30 vm.reportHistoryConfig = {
30 vm.$state = $state;
31 data: {
31 vm.reportHistoryConfig = {
32 json: [],
32 data: {
33 xFormat: '%Y-%m-%dT%H:%M:%S'
33 json: [],
34 },
34 xFormat: '%Y-%m-%dT%H:%M:%S'
35 color: {
35 },
36 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
36 color: {
37 },
37 pattern: ['#6baed6', '#e6550d', '#74c476', '#fdd0a2', '#8c564b']
38 axis: {
38 },
39 x: {
39 axis: {
40 type: 'timeseries',
40 x: {
41 tick: {
41 type: 'timeseries',
42 format: '%Y-%m-%d'
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: {
53 subchart: {
46 tick: {
54 show: true,
47 count: 5,
55 size: {
48 format: d3.format('.2s')
56 height: 20
49 }
57 }
50 }
58 },
51 },
52 subchart: {
53 show: true,
54 size: {
59 size: {
55 height: 20
60 height: 250
56 }
57 },
58 size: {
59 height: 250
60 },
61 zoom: {
62 rescale: true
63 },
64 grid: {
65 x: {
66 show: true
67 },
61 },
68 y: {
62 zoom: {
69 show: true
63 rescale: true
70 }
64 },
71 },
65 grid: {
72 tooltip: {
66 x: {
73 format: {
67 show: true
74 title: function (d) {
75 return '' + d;
76 },
68 },
77 value: function (v) {
69 y: {
78 return v
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 };
115
83 vm.mentionedPeople = [];
116 // load report
84 vm.reportHistoryData = {};
117 vm.fetchReport();
85 vm.textTraceback = true;
118 }
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 };
99
119
100 vm.searchMentionedPeople = function(term){
120 vm.searchMentionedPeople = function(term){
101 //vm.mentionedPeople = [];
121 //vm.mentionedPeople = [];
@@ -114,7 +134,7 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
114 });
134 });
115
135
116 var result = _.filter(users, function(u){
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 vm.mentionedPeople = result;
139 vm.mentionedPeople = result;
120 });
140 });
@@ -131,21 +151,6 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
131 $location.search(tag, value);
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 vm.fetchLogs = function () {
154 vm.fetchLogs = function () {
150 if (!vm.report.request_id){
155 if (!vm.report.request_id){
151 return
156 return
@@ -171,6 +176,7 b' function ReportViewController($window, $location, $state, $uibModal, $cookies, r'
171 };
176 };
172
177
173 vm.fetchReport = function () {
178 vm.fetchReport = function () {
179 console.log(vm);
174 vm.is_loading.report = true;
180 vm.is_loading.report = true;
175 reportGroupResource.get($state.params, function (data) {
181 reportGroupResource.get($state.params, function (data) {
176 vm.is_loading.report = false;
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 'stateHolder', 'typeAheadTagHelper', 'reportsResource'];
22 'stateHolder', 'typeAheadTagHelper', 'reportsResource'];
23
23
24 function reportsBrowserViewController($location, $cookies, stateHolder,
24 function reportsBrowserViewController($location, $cookies, stateHolder,
25 typeAheadTagHelper, reportsResource) {
25 typeAheadTagHelper, reportsResource) {
26 var vm = this;
26 var vm = this;
27 vm.applications = stateHolder.AeUser.applications_map;
27 vm.$onInit = function () {
28 stateHolder.section = 'reports';
28 vm.applications = stateHolder.AeUser.applications_map;
29 vm.today = function () {
29 stateHolder.section = 'reports';
30 vm.pickerDate = new Date();
30 vm.today = function () {
31 };
31 vm.pickerDate = new Date();
32 vm.today();
32 };
33 vm.reportsPage = [];
33 vm.today();
34 vm.page = 1;
34 vm.reportsPage = [];
35 vm.itemCount = 0;
35 vm.page = 1;
36 vm.itemsPerPage = 250;
36 vm.itemCount = 0;
37 typeAheadTagHelper.tags = [];
37 vm.itemsPerPage = 250;
38 vm.searchParams = {tags: [], page: 1, type: 'report'};
38 typeAheadTagHelper.tags = [];
39 vm.is_loading = false;
39 vm.searchParams = {tags: [], page: 1, type: 'report'};
40 vm.filterTypeAheadOptions = [
40 vm.is_loading = false;
41 {
41 vm.filterTypeAheadOptions = [
42 type: 'error',
42 {
43 text: 'error:',
43 type: 'error',
44 'description': 'Full-text search in your reports',
44 text: 'error:',
45 example: 'error:text-im-looking-for',
45 'description': 'Full-text search in your reports',
46 tag: 'Error'
46 example: 'error:text-im-looking-for',
47 },
47 tag: 'Error'
48 {
48 },
49 type: 'view_name',
49 {
50 text: 'view_name:',
50 type: 'view_name',
51 'description': 'Query reports occured in specific views',
51 text: 'view_name:',
52 example: "view_name:module.foo",
52 'description': 'Query reports occured in specific views',
53 tag: 'View Name'
53 example: "view_name:module.foo",
54 },
54 tag: 'View Name'
55 {
55 },
56 type: 'resource',
56 {
57 text: 'resource:',
57 type: 'resource',
58 'description': 'Restrict resultset to application',
58 text: 'resource:',
59 example: "resource:ID",
59 'description': 'Restrict resultset to application',
60 tag: 'Application'
60 example: "resource:ID",
61 },
61 tag: 'Application'
62 {
62 },
63 type: 'priority',
63 {
64 text: 'priority:',
64 type: 'priority',
65 'description': 'Show reports with specific priority',
65 text: 'priority:',
66 example: 'priority:8',
66 'description': 'Show reports with specific priority',
67 tag: 'Priority'
67 example: 'priority:8',
68 },
68 tag: 'Priority'
69 {
69 },
70 type: 'min_occurences',
70 {
71 text: 'min_occurences:',
71 type: 'min_occurences',
72 'description': 'Show reports from groups with at least X occurences',
72 text: 'min_occurences:',
73 example: 'min_occurences:25',
73 'description': 'Show reports from groups with at least X occurences',
74 tag: 'Occurences'
74 example: 'min_occurences:25',
75 },
75 tag: 'Occurences'
76 {
76 },
77 type: 'url_path',
77 {
78 text: 'url_path:',
78 type: 'url_path',
79 'description': 'Show reports from specific URL paths',
79 text: 'url_path:',
80 example: 'url_path:/foo/bar/baz',
80 'description': 'Show reports from specific URL paths',
81 tag: 'Url Path'
81 example: 'url_path:/foo/bar/baz',
82 },
82 tag: 'Url Path'
83 {
83 },
84 type: 'url_domain',
84 {
85 text: 'url_domain:',
85 type: 'url_domain',
86 'description': 'Show reports from specific domain',
86 text: 'url_domain:',
87 example: 'url_domain:domain.com',
87 'description': 'Show reports from specific domain',
88 tag: 'Domain'
88 example: 'url_domain:domain.com',
89 },
89 tag: 'Domain'
90 {
90 },
91 type: 'report_status',
91 {
92 text: 'report_status:',
92 type: 'report_status',
93 'description': 'Show reports from groups with specific status',
93 text: 'report_status:',
94 example: 'report_status:never_reviewed',
94 'description': 'Show reports from groups with specific status',
95 tag: 'Status'
95 example: 'report_status:never_reviewed',
96 },
96 tag: 'Status'
97 {
97 },
98 type: 'request_id',
98 {
99 text: 'request_id:',
99 type: 'request_id',
100 'description': 'Show reports with specific request id',
100 text: 'request_id:',
101 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
101 'description': 'Show reports with specific request id',
102 tag: 'Request ID'
102 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
103 },
103 tag: 'Request ID'
104 {
104 },
105 type: 'server_name',
105 {
106 text: 'server_name:',
106 type: 'server_name',
107 'description': 'Show reports tagged with this key/value pair',
107 text: 'server_name:',
108 example: 'server_name:hostname',
108 'description': 'Show reports tagged with this key/value pair',
109 tag: 'Tag'
109 example: 'server_name:hostname',
110 },
110 tag: 'Tag'
111 {
111 },
112 type: 'http_status',
112 {
113 text: 'http_status:',
113 type: 'http_status',
114 'description': 'Show reports with specific HTTP status code',
114 text: 'http_status:',
115 example: "http_status:",
115 'description': 'Show reports with specific HTTP status code',
116 tag: 'HTTP Status'
116 example: "http_status:",
117 },
117 tag: 'HTTP Status'
118 {
118 },
119 type: 'http_status',
119 {
120 text: 'http_status:500',
120 type: 'http_status',
121 'description': 'Show reports with specific HTTP status code',
121 text: 'http_status:500',
122 example: "http_status:500",
122 'description': 'Show reports with specific HTTP status code',
123 tag: 'HTTP Status'
123 example: "http_status:500",
124 },
124 tag: 'HTTP Status'
125 {
125 },
126 type: 'http_status',
126 {
127 text: 'http_status:404',
127 type: 'http_status',
128 'description': 'Include 404 reports in your search',
128 text: 'http_status:404',
129 example: "http_status:404",
129 'description': 'Include 404 reports in your search',
130 tag: 'HTTP Status'
130 example: "http_status:404",
131 },
131 tag: 'HTTP Status'
132 {
132 },
133 type: 'start_date',
133 {
134 text: 'start_date:',
134 type: 'start_date',
135 'description': 'Show reports newer than this date (press TAB for dropdown)',
135 text: 'start_date:',
136 example: 'start_date:2014-08-15T13:00',
136 'description': 'Show reports newer than this date (press TAB for dropdown)',
137 tag: 'Start Date'
137 example: 'start_date:2014-08-15T13:00',
138 },
138 tag: 'Start Date'
139 {
139 },
140 type: 'end_date',
140 {
141 text: 'end_date:',
141 type: 'end_date',
142 'description': 'Show reports older than this date (press TAB for dropdown)',
142 text: 'end_date:',
143 example: 'start_date:2014-08-15T23:59',
143 'description': 'Show reports older than this date (press TAB for dropdown)',
144 tag: 'End Date'
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;
159 _.each(_.range(1, 11), function (priority) {
149 vm.showDatePicker = false;
160 vm.filterTypeAheadOptions.push({
150 vm.manualOpen = false;
161 type: 'priority',
151 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
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 vm.removeSearchTag = function (tag) {
192 vm.removeSearchTag = function (tag) {
153 $location.search(tag.type, null);
193 $location.search(tag.type, null);
154 vm.refresh();
194 vm.refresh();
@@ -157,44 +197,12 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
157 $location.search(tag.type, tag.value);
197 $location.search(tag.type, tag.value);
158 vm.refresh();
198 vm.refresh();
159 };
199 };
160 vm.notRelativeTime = false;
161 if ($cookies.notRelativeTime) {
162 vm.notRelativeTime = JSON.parse($cookies.notRelativeTime);
163 }
164
200
165 vm.changeRelativeTime = function () {
201 vm.changeRelativeTime = function () {
166 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
202 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
167 };
203 };
168
204
169 _.each(_.range(1, 11), function (priority) {
205 vm.paginationChange = function () {
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(){
198 $location.search('page', vm.page);
206 $location.search('page', vm.page);
199 vm.refresh();
207 vm.refresh();
200 };
208 };
@@ -222,8 +230,7 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
222 if (tagValue) {
230 if (tagValue) {
223 tag.value = tagValue.join(':');
231 tag.value = tagValue.join(':');
224 }
232 }
225 }
233 } else {
226 else {
227 tag.type = 'error';
234 tag.type = 'error';
228 tag.value = parsed.join(':');
235 tag.value = parsed.join(':');
229 }
236 }
@@ -232,8 +239,7 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
232 if ('start_date:' == text) {
239 if ('start_date:' == text) {
233 vm.showDatePicker = true;
240 vm.showDatePicker = true;
234 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
241 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
235 }
242 } else if ('end_date:' == text) {
236 else if ('end_date:' == text) {
237 vm.showDatePicker = true;
243 vm.showDatePicker = true;
238 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
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 vm.filterTypeAhead = undefined;
254 vm.filterTypeAhead = undefined;
249 };
255 };
250
256
251 vm.pickerDateChanged = function(){
257 vm.pickerDateChanged = function () {
252 if (vm.filterTypeAhead.indexOf('start_date:') == '0') {
258 if (vm.filterTypeAhead.indexOf('start_date:') == '0') {
253 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
259 vm.filterTypeAhead = 'start_date:' + moment(vm.pickerDate).utc().format();
254 }
260 } else if (vm.filterTypeAhead.indexOf('end_date:') == '0') {
255 else if (vm.filterTypeAhead.indexOf('end_date:') == '0') {
256 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
261 vm.filterTypeAhead = 'end_date:' + moment(vm.pickerDate).utc().hour(23).minute(59).format();
257 }
262 }
258 vm.showDatePicker = false;
263 vm.showDatePicker = false;
@@ -263,16 +268,13 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
263 if (report.group.public) {
268 if (report.group.public) {
264 report.presentation.className = 'public';
269 report.presentation.className = 'public';
265 report.presentation.tooltip = 'Public';
270 report.presentation.tooltip = 'Public';
266 }
271 } else if (report.group.fixed) {
267 else if (report.group.fixed) {
268 report.presentation.className = 'fixed';
272 report.presentation.className = 'fixed';
269 report.presentation.tooltip = 'Fixed';
273 report.presentation.tooltip = 'Fixed';
270 }
274 } else if (report.group.read) {
271 else if (report.group.read) {
272 report.presentation.className = 'reviewed';
275 report.presentation.className = 'reviewed';
273 report.presentation.tooltip = 'Reviewed';
276 report.presentation.tooltip = 'Reviewed';
274 }
277 } else {
275 else {
276 report.presentation.className = 'new';
278 report.presentation.className = 'new';
277 report.presentation.tooltip = 'New';
279 report.presentation.tooltip = 'New';
278 }
280 }
@@ -303,13 +305,12 b' function reportsBrowserViewController($location, $cookies, stateHolder,'
303 vm.refresh();
305 vm.refresh();
304 };
306 };
305
307
306 vm.refresh = function(){
308 vm.refresh = function () {
307 vm.searchParams = parseSearchToTags($location.search());
309 vm.searchParams = parseSearchToTags($location.search());
308 vm.page = Number(vm.searchParams.page) || 1;
310 vm.page = Number(vm.searchParams.page) || 1;
309 var params = parseTagsToSearch(vm.searchParams);
311 var params = parseTagsToSearch(vm.searchParams);
310 console.log(params);
312 console.log(params);
311 vm.fetchReports(params);
313 vm.fetchReports(params);
312 };
314 };
313 // initial load
315
314 vm.refresh();
315 }
316 }
@@ -27,109 +27,149 b" ReportsSlowBrowserViewController.$inject = ['$location', '$cookies',"
27
27
28 function ReportsSlowBrowserViewController($location, $cookies, stateHolder, typeAheadTagHelper, slowReportsResource) {
28 function ReportsSlowBrowserViewController($location, $cookies, stateHolder, typeAheadTagHelper, slowReportsResource) {
29 var vm = this;
29 var vm = this;
30 vm.applications = stateHolder.AeUser.applications_map;
30 vm.$onInit = function () {
31 stateHolder.section = 'slow_reports';
31 vm.applications = stateHolder.AeUser.applications_map;
32 vm.today = function () {
32 stateHolder.section = 'slow_reports';
33 vm.pickerDate = new Date();
33 vm.today = function () {
34 };
34 vm.pickerDate = new Date();
35 vm.today();
35 };
36 vm.reportsPage = [];
36 vm.today();
37 vm.page = 1;
37 vm.reportsPage = [];
38 vm.itemCount = 0;
38 vm.page = 1;
39 vm.itemsPerPage = 250;
39 vm.itemCount = 0;
40 typeAheadTagHelper.tags = [];
40 vm.itemsPerPage = 250;
41 vm.searchParams = {tags: [], page: 1, type: 'slow_report'};
41 typeAheadTagHelper.tags = [];
42 vm.is_loading = false;
42 vm.searchParams = {tags: [], page: 1, type: 'slow_report'};
43 vm.filterTypeAheadOptions = [
43 vm.is_loading = false;
44 {
44 vm.filterTypeAheadOptions = [
45 type: 'view_name',
45 {
46 text: 'view_name:',
46 type: 'view_name',
47 'description': 'Query reports occured in specific views',
47 text: 'view_name:',
48 tag: 'View Name',
48 'description': 'Query reports occured in specific views',
49 example: "view_name:module.foo"
49 tag: 'View Name',
50 },
50 example: "view_name:module.foo"
51 {
51 },
52 type: 'resource',
52 {
53 text: 'resource:',
53 type: 'resource',
54 'description': 'Restrict resultset to application',
54 text: 'resource:',
55 tag: 'Application',
55 'description': 'Restrict resultset to application',
56 example: "resource:ID"
56 tag: 'Application',
57 },
57 example: "resource:ID"
58 {
58 },
59 type: 'priority',
59 {
60 text: 'priority:',
60 type: 'priority',
61 'description': 'Show reports with specific priority',
61 text: 'priority:',
62 example: 'priority:8',
62 'description': 'Show reports with specific priority',
63 tag: 'Priority'
63 example: 'priority:8',
64 },
64 tag: 'Priority'
65 {
65 },
66 type: 'min_occurences',
66 {
67 text: 'min_occurences:',
67 type: 'min_occurences',
68 'description': 'Show reports from groups with at least X occurences',
68 text: 'min_occurences:',
69 example: 'min_occurences:25',
69 'description': 'Show reports from groups with at least X occurences',
70 tag: 'Min. occurences'
70 example: 'min_occurences:25',
71 },
71 tag: 'Min. occurences'
72 {
72 },
73 type: 'min_duration',
73 {
74 text: 'min_duration:',
74 type: 'min_duration',
75 'description': 'Show reports from groups with average duration >= Xs',
75 text: 'min_duration:',
76 example: 'min_duration:4.5',
76 'description': 'Show reports from groups with average duration >= Xs',
77 tag: 'Min. duration'
77 example: 'min_duration:4.5',
78 },
78 tag: 'Min. duration'
79 {
79 },
80 type: 'url_path',
80 {
81 text: 'url_path:',
81 type: 'url_path',
82 'description': 'Show reports from specific URL paths',
82 text: 'url_path:',
83 example: 'url_path:/foo/bar/baz',
83 'description': 'Show reports from specific URL paths',
84 tag: 'Url Path'
84 example: 'url_path:/foo/bar/baz',
85 },
85 tag: 'Url Path'
86 {
86 },
87 type: 'url_domain',
87 {
88 text: 'url_domain:',
88 type: 'url_domain',
89 'description': 'Show reports from specific domain',
89 text: 'url_domain:',
90 example: 'url_domain:domain.com',
90 'description': 'Show reports from specific domain',
91 tag: 'Domain'
91 example: 'url_domain:domain.com',
92 },
92 tag: 'Domain'
93 {
93 },
94 type: 'request_id',
94 {
95 text: 'request_id:',
95 type: 'request_id',
96 'description': 'Show reports with specific request id',
96 text: 'request_id:',
97 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
97 'description': 'Show reports with specific request id',
98 tag: 'Request ID'
98 example: "request_id:883143dc572e4c38aceae92af0ea5ae0",
99 },
99 tag: 'Request ID'
100 {
100 },
101 type: 'report_status',
101 {
102 text: 'report_status:',
102 type: 'report_status',
103 'description': 'Show reports from groups with specific status',
103 text: 'report_status:',
104 example: 'report_status:never_reviewed',
104 'description': 'Show reports from groups with specific status',
105 tag: 'Status'
105 example: 'report_status:never_reviewed',
106 },
106 tag: 'Status'
107 {
107 },
108 type: 'server_name',
108 {
109 text: 'server_name:',
109 type: 'server_name',
110 'description': 'Show reports tagged with this key/value pair',
110 text: 'server_name:',
111 example: 'server_name:hostname',
111 'description': 'Show reports tagged with this key/value pair',
112 tag: 'Tag'
112 example: 'server_name:hostname',
113 },
113 tag: 'Tag'
114 {
114 },
115 type: 'start_date',
115 {
116 text: 'start_date:',
116 type: 'start_date',
117 'description': 'Show reports newer than this date (press TAB for dropdown)',
117 text: 'start_date:',
118 example: 'start_date:2014-08-15T13:00',
118 'description': 'Show reports newer than this date (press TAB for dropdown)',
119 tag: 'Start Date'
119 example: 'start_date:2014-08-15T13:00',
120 },
120 tag: 'Start Date'
121 {
121 },
122 type: 'end_date',
122 {
123 text: 'end_date:',
123 type: 'end_date',
124 'description': 'Show reports older than this date (press TAB for dropdown)',
124 text: 'end_date:',
125 example: 'start_date:2014-08-15T23:59',
125 'description': 'Show reports older than this date (press TAB for dropdown)',
126 tag: 'End Date'
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;
141 _.each(_.range(1, 11), function (priority) {
131 vm.showDatePicker = false;
142 vm.filterTypeAheadOptions.push({
132 vm.aheadFilter = typeAheadTagHelper.aheadFilter;
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 vm.removeSearchTag = function (tag) {
173 vm.removeSearchTag = function (tag) {
134 $location.search(tag.type, null);
174 $location.search(tag.type, null);
135 vm.refresh();
175 vm.refresh();
@@ -138,45 +178,12 b' function ReportsSlowBrowserViewController($location, $cookies, stateHolder, type'
138 $location.search(tag.type, tag.value);
178 $location.search(tag.type, tag.value);
139 vm.refresh();
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 vm.changeRelativeTime = function () {
183 vm.changeRelativeTime = function () {
149 $cookies.notRelativeTime = JSON.stringify(vm.notRelativeTime);
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 vm.typeAheadTag = function (event) {
187 vm.typeAheadTag = function (event) {
181 var text = vm.filterTypeAhead;
188 var text = vm.filterTypeAhead;
182 if (_.isObject(vm.filterTypeAhead)) {
189 if (_.isObject(vm.filterTypeAhead)) {
@@ -287,6 +294,4 b' function ReportsSlowBrowserViewController($location, $cookies, stateHolder, type'
287 vm.fetchReports(params);
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 SettingsViewController.$inject = ['$state', 'AeConfig'];
21 SettingsViewController.$inject = ['$state', 'AeConfig'];
22
22
23 function SettingsViewController($state, AeConfig) {
23 function SettingsViewController($state, AeConfig) {
24 this.$state = $state;
24 this.$onInit = function () {
25 this.AeConfig = AeConfig;
25 this.$state = $state;
26 console.info('SettingsViewController');
26 this.AeConfig = AeConfig;
27 console.info('SettingsViewController');
28 }
27 }
29 }
@@ -18,15 +18,17 b" angular.module('appenlight.components.userAlertChannelsEmailNewView', [])"
18 controller: AlertChannelsEmailController
18 controller: AlertChannelsEmailController
19 });
19 });
20
20
21 AlertChannelsEmailController.$inject = ['$state','userSelfPropertyResource'];
21 AlertChannelsEmailController.$inject = ['$state', 'userSelfPropertyResource'];
22
22
23 function AlertChannelsEmailController($state, userSelfPropertyResource) {
23 function AlertChannelsEmailController($state, userSelfPropertyResource) {
24 console.debug('AlertChannelsEmailController');
24 console.debug('AlertChannelsEmailController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {email: false};
27 var vm = this;
28 vm.form = {};
28 vm.$state = $state;
29
29 vm.loading = {email: false};
30 vm.form = {};
31 }
30 vm.createChannel = function () {
32 vm.createChannel = function () {
31 vm.loading.email = true;
33 vm.loading.email = true;
32 console.log('createChannel');
34 console.log('createChannel');
@@ -18,75 +18,76 b" angular.module('appenlight.components.userAlertChannelsListView', [])"
18 controller: userAlertChannelsListViewController
18 controller: userAlertChannelsListViewController
19 });
19 });
20
20
21 userAlertChannelsListViewController.$inject = ['$state','userSelfPropertyResource', 'applicationsNoIdResource'];
21 userAlertChannelsListViewController.$inject = ['$state', 'userSelfPropertyResource', 'applicationsNoIdResource'];
22
22
23 function userAlertChannelsListViewController($state, userSelfPropertyResource, applicationsNoIdResource) {
23 function userAlertChannelsListViewController($state, userSelfPropertyResource, applicationsNoIdResource) {
24 console.debug('AlertChannelsController');
24 console.debug('AlertChannelsController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {channels: true, applications: true, actions:true};
27 vm.$state = $state;
28 vm.loading = {channels: true, applications: true, actions: true};
28
29
29 vm.alertChannels = userSelfPropertyResource.query({key: 'alert_channels'},
30 vm.alertChannels = userSelfPropertyResource.query({key: 'alert_channels'},
30 function (data) {
31 function (data) {
31 vm.loading.channels = false;
32 vm.loading.channels = false;
32 });
33 });
33
34 vm.alertActions = userSelfPropertyResource.query({key: 'alert_actions'},
35 function (data) {
36 vm.loading.actions = false;
37 });
38
34
39 vm.applications = applicationsNoIdResource.query({permission: 'view'},
35 vm.alertActions = userSelfPropertyResource.query({key: 'alert_actions'},
40 function (data) {
36 function (data) {
41 vm.loading.applications = false;
37 vm.loading.actions = false;
42 });
38 });
43
39
44 var allOps = {
40 vm.applications = applicationsNoIdResource.query({permission: 'view'},
45 'eq': 'Equal',
41 function (data) {
46 'ne': 'Not equal',
42 vm.loading.applications = false;
47 'ge': 'Greater or equal',
43 });
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 };
55
44
56 var fieldOps = {};
45 var allOps = {
57 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
46 'eq': 'Equal',
58 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
47 'ne': 'Not equal',
59 fieldOps['duration'] = ['ge', 'le'];
48 'ge': 'Greater or equal',
60 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
49 'gt': 'Greater than',
61 'contains'];
50 'le': 'Lesser or equal',
62 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
51 'lt': 'Lesser than',
63 'contains'];
52 'startswith': 'Starts with',
64 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
53 'endswith': 'Ends with',
65 'contains'];
54 'contains': 'Contains'
66 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
55 };
67 'contains'];
68 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
69
56
70 var possibleFields = {
57 var fieldOps = {};
71 '__AND__': 'All met (composite rule)',
58 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
72 '__OR__': 'One met (composite rule)',
59 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
73 '__NOT__': 'Not met (composite rule)',
60 fieldOps['duration'] = ['ge', 'le'];
74 'http_status': 'HTTP Status',
61 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
75 'duration': 'Request duration',
62 'contains'];
76 'group:priority': 'Group -> Priority',
63 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
77 'url_domain': 'Domain',
64 'contains'];
78 'url_path': 'URL Path',
65 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
79 'error': 'Error',
66 'contains'];
80 'tags:server_name': 'Tag -> Server name',
67 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
81 'group:occurences': 'Group -> Occurences'
68 'contains'];
82 };
69 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
83
70
84 vm.ruleDefinitions = {
71 var possibleFields = {
85 fieldOps: fieldOps,
72 '__AND__': 'All met (composite rule)',
86 allOps: allOps,
73 '__OR__': 'One met (composite rule)',
87 possibleFields: possibleFields
74 '__NOT__': 'Not met (composite rule)',
88 };
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 vm.addAction = function (channel) {
91 vm.addAction = function (channel) {
91 console.log('test');
92 console.log('test');
92 userSelfPropertyResource.save({key: 'alert_channels_rules'}, {}, function (data) {
93 userSelfPropertyResource.save({key: 'alert_channels_rules'}, {}, function (data) {
@@ -120,7 +121,7 b' function userAlertChannelsListViewController($state, userSelfPropertyResource, a'
120 channel_name: channel.channel_name,
121 channel_name: channel.channel_name,
121 channel_value: channel.channel_value
122 channel_value: channel.channel_value
122 }, function () {
123 }, function () {
123 vm.alertChannels = _.filter(vm.alertChannels, function(item){
124 vm.alertChannels = _.filter(vm.alertChannels, function (item) {
124 return item != channel;
125 return item != channel;
125 });
126 });
126 });
127 });
@@ -23,16 +23,17 b" userAuthTokensViewController.$inject = ['$state', 'userSelfPropertyResource', 'A"
23 function userAuthTokensViewController($state, userSelfPropertyResource, AeConfig) {
23 function userAuthTokensViewController($state, userSelfPropertyResource, AeConfig) {
24 console.debug('userAuthTokensViewController');
24 console.debug('userAuthTokensViewController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {tokens: true};
27 vm.$state = $state;
28 vm.loading = {tokens: true};
28
29
29 vm.expireOptions = AeConfig.timeOptions;
30 vm.expireOptions = AeConfig.timeOptions;
30
31 vm.tokens = userSelfPropertyResource.query({key: 'auth_tokens'},
32 function (data) {
33 vm.loading.tokens = false;
34 });
35
31
32 vm.tokens = userSelfPropertyResource.query({key: 'auth_tokens'},
33 function (data) {
34 vm.loading.tokens = false;
35 });
36 }
36 vm.addToken = function () {
37 vm.addToken = function () {
37 vm.loading.tokens = true;
38 vm.loading.tokens = true;
38 userSelfPropertyResource.save({key: 'auth_tokens'},
39 userSelfPropertyResource.save({key: 'auth_tokens'},
@@ -23,17 +23,18 b" UserIdentitiesController.$inject = ['$state', 'userSelfPropertyResource', 'AeCon"
23 function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {
23 function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {
24 console.debug('UserIdentitiesController');
24 console.debug('UserIdentitiesController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.AeConfig = AeConfig;
27 vm.$state = $state;
28 vm.loading = {identities: true};
28 vm.AeConfig = AeConfig;
29
29 vm.loading = {identities: true};
30 vm.identities = userSelfPropertyResource.query(
31 {key: 'external_identities'},
32 function (data) {
33 vm.loading.identities = false;
34 console.log(vm.identities);
35 });
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 vm.removeProvider = function (provider) {
38 vm.removeProvider = function (provider) {
38 console.log('provider', provider);
39 console.log('provider', provider);
39 userSelfPropertyResource.delete(
40 userSelfPropertyResource.delete(
@@ -43,7 +44,7 b' function UserIdentitiesController($state, userSelfPropertyResource, AeConfig) {'
43 id: provider.id
44 id: provider.id
44 },
45 },
45 function (status) {
46 function (status) {
46 if (status){
47 if (status) {
47 vm.identities = _.filter(vm.identities, function (item) {
48 vm.identities = _.filter(vm.identities, function (item) {
48 return item != provider
49 return item != provider
49 });
50 });
@@ -23,10 +23,11 b" UserPasswordViewController.$inject = ['$state', 'userSelfPropertyResource'];"
23 function UserPasswordViewController($state, userSelfPropertyResource) {
23 function UserPasswordViewController($state, userSelfPropertyResource) {
24 console.debug('UserPasswordViewController');
24 console.debug('UserPasswordViewController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {password: false};
27 vm.$state = $state;
28 vm.form = {};
28 vm.loading = {password: false};
29
29 vm.form = {};
30 }
30 vm.updatePassword = function () {
31 vm.updatePassword = function () {
31 vm.loading.password = true;
32 vm.loading.password = true;
32 console.log('updatePassword');
33 console.log('updatePassword');
@@ -23,14 +23,15 b" UserProfileViewController.$inject = ['$state', 'userSelfResource'];"
23 function UserProfileViewController($state, userSelfResource) {
23 function UserProfileViewController($state, userSelfResource) {
24 console.debug('UserProfileViewController');
24 console.debug('UserProfileViewController');
25 var vm = this;
25 var vm = this;
26 vm.$state = $state;
26 vm.$onInit = function () {
27 vm.loading = {profile: true};
27 vm.$state = $state;
28
28 vm.loading = {profile: true};
29 vm.user = userSelfResource.get(null, function (data) {
30 vm.loading.profile = false;
31 console.log('loaded profile');
32 });
33
29
30 vm.user = userSelfResource.get(null, function (data) {
31 vm.loading.profile = false;
32 console.log('loaded profile');
33 });
34 }
34 vm.updateProfile = function () {
35 vm.updateProfile = function () {
35 vm.loading.profile = true;
36 vm.loading.profile = true;
36
37
@@ -19,19 +19,21 b" BitbucketIntegrationCtrl.$inject = ['$uibModalInstance', '$state', 'report', 'in"
19
19
20 function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
20 function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
21 var vm = this;
21 var vm = this;
22 vm.loading = true;
22 vm.$onInit = function () {
23 vm.assignees = [];
23 vm.loading = true;
24 vm.report = report;
24 vm.assignees = [];
25 vm.integrationName = integrationName;
25 vm.report = report;
26 vm.statuses = [];
26 vm.integrationName = integrationName;
27 vm.priorities = [];
27 vm.statuses = [];
28 vm.error_messages = [];
28 vm.priorities = [];
29 vm.form = {
29 vm.error_messages = [];
30 content: '\n' +
30 vm.form = {
31 'Issue created for report: ' +
31 content: '\n' +
32 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
32 'Issue created for report: ' +
33 };
33 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
34
34 };
35 vm.fetchInfo();
36 }
35 vm.fetchInfo = function () {
37 vm.fetchInfo = function () {
36 integrationResource.get({
38 integrationResource.get({
37 resourceId: vm.report.resource_id,
39 resourceId: vm.report.resource_id,
@@ -50,8 +52,7 b' function BitbucketIntegrationCtrl($uibModalInstance, $state, report, integration'
50 }, function (error_data) {
52 }, function (error_data) {
51 if (error_data.data.error_messages) {
53 if (error_data.data.error_messages) {
52 vm.error_messages = error_data.data.error_messages;
54 vm.error_messages = error_data.data.error_messages;
53 }
55 } else {
54 else {
55 vm.error_messages = ['There was a problem processing your request'];
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 }, function (error_data) {
76 }, function (error_data) {
76 if (error_data.data.error_messages) {
77 if (error_data.data.error_messages) {
77 vm.error_messages = error_data.data.error_messages;
78 vm.error_messages = error_data.data.error_messages;
78 }
79 } else {
79 else {
80 vm.error_messages = ['There was a problem processing your request'];
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 vm.cancel = function () {
84 vm.cancel = function () {
85 $uibModalInstance.dismiss('cancel');
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 function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
20 function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
21 var vm = this;
21 var vm = this;
22 vm.loading = true;
22 vm.$onInit = function () {
23 vm.assignees = [];
23 vm.loading = true;
24 vm.report = report;
24 vm.assignees = [];
25 vm.integrationName = integrationName;
25 vm.report = report;
26 vm.statuses = [];
26 vm.integrationName = integrationName;
27 vm.assignees = [];
27 vm.statuses = [];
28 vm.error_messages = [];
28 vm.assignees = [];
29 vm.form = {
29 vm.error_messages = [];
30 content: '\n' +
30 vm.form = {
31 'Issue created for report: ' +
31 content: '\n' +
32 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
32 'Issue created for report: ' +
33 };
33 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
34
34 };
35 vm.fetchInfo();
36 }
35 vm.fetchInfo = function () {
37 vm.fetchInfo = function () {
36 integrationResource.get({
38 integrationResource.get({
37 resourceId: vm.report.resource_id,
39 resourceId: vm.report.resource_id,
@@ -42,8 +44,7 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
42 vm.loading = false;
44 vm.loading = false;
43 if (data.error_messages) {
45 if (data.error_messages) {
44 vm.error_messages = data.error_messages;
46 vm.error_messages = data.error_messages;
45 }
47 } else {
46 else {
47 vm.assignees = data.assignees;
48 vm.assignees = data.assignees;
48 vm.statuses = data.statuses;
49 vm.statuses = data.statuses;
49 vm.form.responsible = vm.assignees[0];
50 vm.form.responsible = vm.assignees[0];
@@ -52,8 +53,7 b' function GithubIntegrationCtrl($uibModalInstance, $state, report, integrationNam'
52 }, function (error_data) {
53 }, function (error_data) {
53 if (error_data.data.error_messages) {
54 if (error_data.data.error_messages) {
54 vm.error_messages = error_data.data.error_messages;
55 vm.error_messages = error_data.data.error_messages;
55 }
56 } else {
56 else {
57 vm.error_messages = ['There was a problem processing your request'];
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 vm.loading = false;
70 vm.loading = false;
71 if (data.error_messages) {
71 if (data.error_messages) {
72 vm.error_messages = data.error_messages;
72 vm.error_messages = data.error_messages;
73 }
73 } else {
74 else {
75 $uibModalInstance.dismiss('success');
74 $uibModalInstance.dismiss('success');
76 }
75 }
77 }, function (error_data) {
76 }, function (error_data) {
78 if (error_data.data.error_messages) {
77 if (error_data.data.error_messages) {
79 vm.error_messages = error_data.data.error_messages;
78 vm.error_messages = error_data.data.error_messages;
80 }
79 } else {
81 else {
82 vm.error_messages = ['There was a problem processing your request'];
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 vm.cancel = function () {
84 vm.cancel = function () {
87 $uibModalInstance.dismiss('cancel');
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 function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
20 function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName, integrationResource) {
21 var vm = this;
21 var vm = this;
22 vm.loading = true;
22 vm.$onInit = function () {
23 vm.assignees = [];
23 vm.loading = true;
24 vm.report = report;
24 vm.assignees = [];
25 vm.integrationName = integrationName;
25 vm.report = report;
26 vm.statuses = [];
26 vm.integrationName = integrationName;
27 vm.priorities = [];
27 vm.statuses = [];
28 vm.issue_types = [];
28 vm.priorities = [];
29 vm.error_messages = [];
29 vm.issue_types = [];
30 vm.form = {
30 vm.error_messages = [];
31 content: '\n' +
31 vm.form = {
32 'Issue created for report: ' +
32 content: '\n' +
33 $state.href('report.view_detail', {groupId:report.group_id, reportId:report.id}, {absolute:true})
33 'Issue created for report: ' +
34 };
34 $state.href('report.view_detail', {groupId: report.group_id, reportId: report.id}, {absolute: true})
35
35 };
36 vm.fetchInfo();
37 }
36 vm.fetchInfo = function () {
38 vm.fetchInfo = function () {
37 integrationResource.get({
39 integrationResource.get({
38 resourceId: vm.report.resource_id,
40 resourceId: vm.report.resource_id,
@@ -54,8 +56,7 b' function JiraIntegrationCtrl($uibModalInstance, $state, report, integrationName,'
54 console.log('ERROR');
56 console.log('ERROR');
55 if (error_data.data.error_messages) {
57 if (error_data.data.error_messages) {
56 vm.error_messages = error_data.data.error_messages;
58 vm.error_messages = error_data.data.error_messages;
57 }
59 } else {
58 else {
59 vm.error_messages = ['There was a problem processing your request'];
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 }, function (error_data) {
80 }, function (error_data) {
80 if (error_data.data.error_messages) {
81 if (error_data.data.error_messages) {
81 vm.error_messages = error_data.data.error_messages;
82 vm.error_messages = error_data.data.error_messages;
82 }
83 } else {
83 else {
84 vm.error_messages = ['There was a problem processing your request'];
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 vm.cancel = function () {
88 vm.cancel = function () {
89 $uibModalInstance.dismiss('cancel');
89 $uibModalInstance.dismiss('cancel');
90 };
90 };
91 vm.fetchInfo();
92 }
91 }
@@ -17,22 +17,24 b" AssignReportCtrl.$inject = ['$uibModalInstance', 'reportGroupPropertyResource', "
17
17
18 function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report) {
18 function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report) {
19 var vm = this;
19 var vm = this;
20 vm.loading = true;
20 vm.$onInit = function () {
21 vm.assignedUsers = [];
21 vm.loading = true;
22 vm.unAssignedUsers = [];
22 vm.assignedUsers = [];
23 vm.report = report;
23 vm.unAssignedUsers = [];
24 vm.fetchAssignments = function () {
24 vm.report = report;
25 reportGroupPropertyResource.get({
25 vm.fetchAssignments = function () {
26 groupId: vm.report.group_id,
26 reportGroupPropertyResource.get({
27 key: 'assigned_users'
27 groupId: vm.report.group_id,
28 }, null,
28 key: 'assigned_users'
29 function (data) {
29 }, null,
30 vm.assignedUsers = data.assigned;
30 function (data) {
31 vm.unAssignedUsers = data.unassigned;
31 vm.assignedUsers = data.assigned;
32 vm.loading = false;
32 vm.unAssignedUsers = data.unassigned;
33 });
33 vm.loading = false;
34 });
35 }
36 vm.fetchAssignments();
34 }
37 }
35
36 vm.reassignUser = function (user) {
38 vm.reassignUser = function (user) {
37 var is_assigned = vm.assignedUsers.indexOf(user);
39 var is_assigned = vm.assignedUsers.indexOf(user);
38 if (is_assigned != -1) {
40 if (is_assigned != -1) {
@@ -74,7 +76,4 b' function AssignReportCtrl($uibModalInstance, reportGroupPropertyResource, report'
74 vm.cancel = function () {
76 vm.cancel = function () {
75 $uibModalInstance.dismiss('cancel');
77 $uibModalInstance.dismiss('cancel');
76 };
78 };
77
78 vm.fetchAssignments();
79
80 }
79 }
@@ -21,64 +21,65 b" ApplicationPermissionsController.$inject = ['sectionViewResource',"
21
21
22 function ApplicationPermissionsController(sectionViewResource, applicationsPropertyResource , groupsResource) {
22 function ApplicationPermissionsController(sectionViewResource, applicationsPropertyResource , groupsResource) {
23 var vm = this;
23 var vm = this;
24 vm.form = {
24 vm.$onInit = function () {
25 autocompleteUser: '',
25 vm.form = {
26 selectedGroup: null,
26 autocompleteUser: '',
27 selectedUserPermissions: {},
27 selectedGroup: null,
28 selectedGroupPermissions: {}
28 selectedUserPermissions: {},
29 }
29 selectedGroupPermissions: {}
30 vm.possibleGroups = groupsResource.query(null, function(){
31 if (vm.possibleGroups.length > 0){
32 vm.form.selectedGroup = vm.possibleGroups[0].id;
33 }
30 }
34 });
31 vm.possibleGroups = groupsResource.query(null, function () {
35 console.log('g', vm.possibleGroups);
32 if (vm.possibleGroups.length > 0) {
36 vm.possibleUsers = [];
33 vm.form.selectedGroup = vm.possibleGroups[0].id;
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 }
58 }
34 }
59 if (tmpObj[perm.type][perm.user_name].permissions.indexOf(perm.perm_name) === -1) {
35 });
60 tmpObj[perm.type][perm.user_name].permissions.push(perm.perm_name);
36 console.log('g', vm.possibleGroups);
61 }
37 vm.possibleUsers = [];
62 }
38 _.each(vm.resource.possible_permissions, function (perm) {
63 else {
39 vm.form.selectedUserPermissions[perm] = false;
64 if (typeof tmpObj[perm.type][perm.group_name] === 'undefined') {
40 vm.form.selectedGroupPermissions[perm] = false;
65 tmpObj[perm.type][perm.group_name] = {
41 });
66 self: perm,
42
67 permissions: []
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 }
74 }
75 });
75 });
76 vm.currentPermissions = {
76 vm.currentPermissions = {
77 user: _.values(tmpObj.user),
77 user: _.values(tmpObj.user),
78 group: _.values(tmpObj.group),
78 group: _.values(tmpObj.group),
79 };
79 };
80 console.log('test', tmpObj, vm.currentPermissions);
81 }
80
82
81 console.log('test', tmpObj, vm.currentPermissions);
82
83
83 vm.searchUsers = function (searchPhrase) {
84 vm.searchUsers = function (searchPhrase) {
84 console.log('SEARCHING');
85 console.log('SEARCHING');
@@ -28,7 +28,9 b" angular.module('appenlight.directives.pluginConfig', []).directive('pluginConfig"
28 PluginConfig.$inject = ['stateHolder'];
28 PluginConfig.$inject = ['stateHolder'];
29
29
30 function PluginConfig(stateHolder) {
30 function PluginConfig(stateHolder) {
31 this.plugins = {};
31 this.$onInit = function () {
32 this.inclusions = stateHolder.plugins.inclusions[this.section];
32 this.plugins = {};
33 this.inclusions = stateHolder.plugins.inclusions[this.section];
34 }
33 }
35 }
34 });
36 });
@@ -15,69 +15,71 b''
15 angular.module('appenlight.directives.postProcessAction', []).directive('postProcessAction', ['applicationsPropertyResource', function (applicationsPropertyResource) {
15 angular.module('appenlight.directives.postProcessAction', []).directive('postProcessAction', ['applicationsPropertyResource', function (applicationsPropertyResource) {
16 return {
16 return {
17 scope: {},
17 scope: {},
18 bindToController:{
18 bindToController: {
19 action: '=',
19 action: '=',
20 resource: '='
20 resource: '='
21 },
21 },
22 controller:postProcessActionController,
22 controller: postProcessActionController,
23 controllerAs:'ctrl',
23 controllerAs: 'ctrl',
24 restrict: 'E',
24 restrict: 'E',
25 templateUrl: 'directives/postprocess_action/postprocess_action.html'
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 = {};
28 function postProcessActionController() {
43 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
29 var vm = this;
44 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
30 vm.$onInit = function () {
45 fieldOps['duration'] = ['ge', 'le'];
31 console.log(vm);
46 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
32 var allOps = {
47 'contains'];
33 'eq': 'Equal',
48 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
34 'ne': 'Not equal',
49 'contains'];
35 'ge': 'Greater or equal',
50 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
36 'gt': 'Greater than',
51 'contains'];
37 'le': 'Lesser or equal',
52 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
38 'lt': 'Lesser than',
53 'contains'];
39 'startswith': 'Starts with',
54 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
40 'endswith': 'Ends with',
41 'contains': 'Contains'
42 };
55
43
56 var possibleFields = {
44 var fieldOps = {};
57 '__AND__': 'All met (composite rule)',
45 fieldOps['http_status'] = ['eq', 'ne', 'ge', 'le'];
58 '__OR__': 'One met (composite rule)',
46 fieldOps['group:priority'] = ['eq', 'ne', 'ge', 'le'];
59 '__NOT__': 'Not met (composite rule)',
47 fieldOps['duration'] = ['ge', 'le'];
60 'http_status': 'HTTP Status',
48 fieldOps['url_domain'] = ['eq', 'ne', 'startswith', 'endswith',
61 'duration': 'Request duration',
49 'contains'];
62 'group:priority': 'Group -> Priority',
50 fieldOps['url_path'] = ['eq', 'ne', 'startswith', 'endswith',
63 'url_domain': 'Domain',
51 'contains'];
64 'url_path': 'URL Path',
52 fieldOps['error'] = ['eq', 'ne', 'startswith', 'endswith',
65 'error': 'Error',
53 'contains'];
66 'tags:server_name': 'Tag -> Server name',
54 fieldOps['tags:server_name'] = ['eq', 'ne', 'startswith', 'endswith',
67 'group:occurences': 'Group -> Occurences'
55 'contains'];
68 };
56 fieldOps['group:occurences'] = ['eq', 'ne', 'ge', 'le'];
69
57
70 vm.ruleDefinitions = {
58 var possibleFields = {
71 fieldOps: fieldOps,
59 '__AND__': 'All met (composite rule)',
72 allOps: allOps,
60 '__OR__': 'One met (composite rule)',
73 possibleFields: possibleFields
61 '__NOT__': 'Not met (composite rule)',
74 };
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 = [
72 vm.ruleDefinitions = {
77 ['1', 'Priority +1'],
73 fieldOps: fieldOps,
78 ['-1', 'Priority -1']
74 allOps: allOps,
79 ];
75 possibleFields: possibleFields
76 };
80
77
78 vm.possibleActions = [
79 ['1', 'Priority +1'],
80 ['-1', 'Priority -1']
81 ];
82 }
81 vm.deleteAction = function (action) {
83 vm.deleteAction = function (action) {
82 applicationsPropertyResource.remove({
84 applicationsPropertyResource.remove({
83 pkey: vm.action.pkey,
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 vm.action.dirty = true;
114 vm.action.dirty = true;
113 console.log('set dirty');
115 console.log('set dirty');
114 };
116 };
@@ -15,20 +15,36 b''
15 angular.module('appenlight.directives.reportAlertAction', []).directive('reportAlertAction', ['userSelfPropertyResource', function (userSelfPropertyResource) {
15 angular.module('appenlight.directives.reportAlertAction', []).directive('reportAlertAction', ['userSelfPropertyResource', function (userSelfPropertyResource) {
16 return {
16 return {
17 scope: {},
17 scope: {},
18 bindToController:{
18 bindToController: {
19 action: '=',
19 action: '=',
20 applications: '=',
20 applications: '=',
21 possibleChannels: '=',
21 possibleChannels: '=',
22 actions: '=',
22 actions: '=',
23 ruleDefinitions: '='
23 ruleDefinitions: '='
24 },
24 },
25 controller:reportAlertActionController,
25 controller: reportAlertActionController,
26 controllerAs:'ctrl',
26 controllerAs: 'ctrl',
27 restrict: 'E',
27 restrict: 'E',
28 templateUrl: 'directives/report_alert_action/report_alert_action.html'
28 templateUrl: 'directives/report_alert_action/report_alert_action.html'
29 };
29 };
30 function reportAlertActionController(){
30
31 function reportAlertActionController() {
31 var vm = this;
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 vm.deleteAction = function (actions, action) {
48 vm.deleteAction = function (actions, action) {
33 var get = {
49 var get = {
34 key: 'alert_channels_rules',
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 var post = {
60 var post = {
45 channel_pkey: vm.channelToBind.pkey,
61 channel_pkey: vm.channelToBind.pkey,
46 action_pkey: vm.action.pkey
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 userSelfPropertyResource.delete({
77 userSelfPropertyResource.delete({
62 key: 'alert_channels_actions_binds',
78 key: 'alert_channels_actions_binds',
63 channel_pkey: channel.pkey,
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 = [
109 vm.setDirty = function () {
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() {
107 vm.action.dirty = true;
110 vm.action.dirty = true;
108 console.log('set dirty');
111 console.log('set dirty');
109 };
112 };
@@ -29,10 +29,10 b" angular.module('appenlight.directives.rule', []).directive('rule', function () {"
29 };
29 };
30 function RuleController(){
30 function RuleController(){
31 var vm = this;
31 var vm = this;
32
32 vm.$onInit = function () {
33 vm.rule.dirty = false;
33 vm.rule.dirty = false;
34 vm.oldField = vm.rule.field;
34 vm.oldField = vm.rule.field;
35
35 }
36 vm.add = function () {
36 vm.add = function () {
37 vm.rule.rules.push(
37 vm.rule.rules.push(
38 {op: "eq", field: 'http_status', value: ""}
38 {op: "eq", field: 'http_status', value: ""}
@@ -15,7 +15,7 b''
15 angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly', ['userSelfPropertyResource', function (userSelfPropertyResource) {
15 angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly', ['userSelfPropertyResource', function (userSelfPropertyResource) {
16 return {
16 return {
17 scope: {},
17 scope: {},
18 bindToController:{
18 bindToController: {
19 parentObj: '=',
19 parentObj: '=',
20 rule: '=',
20 rule: '=',
21 ruleDefinitions: '=',
21 ruleDefinitions: '=',
@@ -24,15 +24,18 b" angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly"
24 },
24 },
25 restrict: 'E',
25 restrict: 'E',
26 templateUrl: 'directives/rule_read_only/rule_read_only.html',
26 templateUrl: 'directives/rule_read_only/rule_read_only.html',
27 controller:RuleController,
27 controller: RuleController,
28 controllerAs:'rule_ctrlr'
28 controllerAs: 'rule_ctrlr'
29 }
29 }
30 function RuleController(){
30
31 function RuleController() {
31 var vm = this;
32 var vm = this;
32 vm.readOnlyPossibleFields = {};
33 vm.$onInit = function () {
33 var labelPairs = _.pairs(vm.parentObj.config);
34 vm.readOnlyPossibleFields = {};
34 _.each(labelPairs, function (entry) {
35 var labelPairs = _.pairs(vm.parentObj.config);
35 vm.readOnlyPossibleFields[entry[0]] = entry[1].human_label;
36 _.each(labelPairs, function (entry) {
36 });
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