function uiUploader(n){"use strict";function r(n){for(var i=0;i<n.length;i++)t.files.push(n[i])}function u(){return t.files}function i(n){t.options=n;for(var i=0;i<t.files.length;i++){if(t.activeUploads==t.options.concurrency)break;t.files[i].active||s(t.files[i],t.options.url)}}function f(n){t.files.splice(t.files.indexOf(n),1)}function e(){t.files.splice(0,t.files.length)}function o(n){var i=["n/a","bytes","KiB","MiB","GiB","TB","PB","EiB","ZiB","YiB"],t=+Math.floor(Math.log(n)/Math.log(1024));return(n/Math.pow(1024,t)).toFixed(t?1:0)+" "+i[isNaN(n)?0:t+1]}function s(n,r){var u,f,e,s="";if(t.activeUploads+=1,n.active=!0,u=new window.XMLHttpRequest,f=new window.FormData,u.open("POST",r),u.upload.onloadstart=function(){},u.upload.onprogress=function(i){if(i.lengthComputable){n.loaded=i.loaded;n.humanSize=o(i.loaded);t.options.onProgress(n)}},u.onload=function(){t.activeUploads-=1;i(t.options);t.options.onCompleted(n,u.responseText)},u.onerror=function(){},s)for(e in s)s.hasOwnProperty(e)&&f.append(e,s[e]);return f.append("file",n,n.name),u.send(f),u}var t=this;return t.files=[],t.options={},t.activeUploads=0,n.info("uiUploader loaded"),{addFiles:r,getFiles:u,files:t.files,startUpload:i,removeFile:f,removeAll:e}}(function(n,t,i){"use strict";function y(n){return function(){var r=arguments[0],f="["+(n?n+":":"")+r+"] ",e=arguments[1],u=arguments,o=function(n){return typeof n=="function"?n.toString().replace(/ \{[\s\S]*$/,""):typeof n=="undefined"?"undefined":typeof n!="string"?JSON.stringify(n):n},t,i;for(t=f+e.replace(/\{\d+\}/g,function(n){var i=+n.slice(1,-1),t;return i+2<u.length?(t=u[i+2],typeof t=="function")?t.toString().replace(/ ?\{[\s\S]*$/,""):typeof t=="undefined"?"undefined":typeof t!="string"?et(t):t:n}),t=t+"\nhttp://errors.angularjs.org/1.2.25/"+(n?n+"/":"")+r,i=2;i<arguments.length;i++)t=t+(i==2?"?":"&")+"p"+(i-2)+"="+encodeURIComponent(o(arguments[i]));return new Error(t)}}function bi(n){if(n==null||oi(n))return!1;var t=n.length;return n.nodeType===1&&t?!0:e(n)||o(n)||t===0||typeof t=="number"&&t>0&&t-1 in n}function r(n,t,i){var u;if(n)if(c(n))for(u in n)u!="prototype"&&u!="length"&&u!="name"&&(!n.hasOwnProperty||n.hasOwnProperty(u))&&t.call(i,n[u],u);else if(o(n)||bi(n))for(u=0;u<n.length;u++)t.call(i,n[u],u);else if(n.forEach&&n.forEach!==r)n.forEach(t,i);else for(u in n)n.hasOwnProperty(u)&&t.call(i,n[u],u);return n}function gf(n){var t=[];for(var i in n)n.hasOwnProperty(i)&&t.push(i);return t.sort()}function vs(n,t,i){for(var r=gf(n),u=0;u<r.length;u++)t.call(i,n[r[u]],r[u]);return r}function ne(n){return function(t,i){n(i,t)}}function ar(){for(var n=ht.length,t;n;){if(n--,t=ht[n].charCodeAt(0),t==57)return ht[n]="A",ht.join("");if(t==90)ht[n]="0";else return ht[n]=String.fromCharCode(t+1),ht.join("")}return ht.unshift("0"),ht.join("")}function te(n,t){t?n.$$hashKey=t:delete n.$$hashKey}function h(n){var t=n.$$hashKey;return r(arguments,function(t){t!==n&&r(t,function(t,i){n[i]=t})}),te(n,t),n}function k(n){return parseInt(n,10)}function ie(n,t){return h(new(h(function(){},{prototype:n})),t)}function s(){}function ki(n){return n}function nt(n){return function(){return n}}function l(n){return typeof n=="undefined"}function f(n){return typeof n!="undefined"}function a(n){return n!=null&&typeof n=="object"}function e(n){return typeof n=="string"}function vr(n){return typeof n=="number"}function pt(n){return ti.call(n)==="[object Date]"}function c(n){return typeof n=="function"}function yr(n){return ti.call(n)==="[object RegExp]"}function oi(n){return n&&n.document&&n.location&&n.alert&&n.setInterval}function pr(n){return n&&n.$evalAsync&&n.$watch}function ys(n){return ti.call(n)==="[object File]"}function ps(n){return ti.call(n)==="[object Blob]"}function wr(n){return n&&c(n.then)}function ws(n){return!!(n&&(n.nodeName||n.prop&&n.attr&&n.find))}function bs(n,t,i){var u=[];return r(n,function(n,r,f){u.push(t.call(i,n,r,f))}),u}function ks(n,t){return di(n,t)!=-1}function di(n,t){if(n.indexOf)return n.indexOf(t);for(var i=0;i<n.length;i++)if(t===n[i])return i;return-1}function gi(n,t){var i=di(n,t);return i>=0&&n.splice(i,1),t}function si(n,t,i,u){var h,f,e,c,s;if(oi(n)||pr(n))throw yi("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(t){if(n===t)throw yi("cpi","Can't copy! Source and destination are identical.");if(i=i||[],u=u||[],a(n)){if(h=di(i,n),h!==-1)return u[h];i.push(n);u.push(t)}if(o(n))for(t.length=0,e=0;e<n.length;e++)f=si(n[e],null,i,u),a(n[e])&&(i.push(n[e]),u.push(f)),t.push(f);else{c=t.$$hashKey;o(t)?t.length=0:r(t,function(n,i){delete t[i]});for(s in n)f=si(n[s],null,i,u),a(n[s])&&(i.push(n[s]),u.push(f)),t[s]=f;te(t,c)}}else t=n,n&&(o(n)?t=si(n,[],i,u):pt(n)?t=new Date(n.getTime()):yr(n)?(t=new RegExp(n.source,n.toString().match(/[^\/]*$/)[0]),t.lastIndex=n.lastIndex):a(n)&&(t=si(n,{},i,u)));return t}function ft(n,t){var r,i;if(o(n))for(t=t||[],r=0;r<n.length;r++)t[r]=n[r];else if(a(n)){t=t||{};for(i in n)!lr.call(n,i)||i.charAt(0)==="$"&&i.charAt(1)==="$"||(t[i]=n[i])}return t||n}function ii(n,t){if(n===t)return!0;if(n===null||t===null)return!1;if(n!==n&&t!==t)return!0;var f=typeof n,s=typeof t,e,r,u;if(f==s&&f=="object")if(o(n)){if(!o(t))return!1;if((e=n.length)==t.length){for(r=0;r<e;r++)if(!ii(n[r],t[r]))return!1;return!0}}else{if(pt(n))return pt(t)?isNaN(n.getTime())&&isNaN(t.getTime())||n.getTime()===t.getTime():!1;if(yr(n)&&yr(t))return n.toString()==t.toString();if(pr(n)||pr(t)||oi(n)||oi(t)||o(t))return!1;u={};for(r in n)if(r.charAt(0)!=="$"&&!c(n[r])){if(!ii(n[r],t[r]))return!1;u[r]=!0}for(r in t)if(!u.hasOwnProperty(r)&&r.charAt(0)!=="$"&&t[r]!==i&&!c(t[r]))return!1;return!0}return!1}function au(n,t,i){return n.concat(lu.call(t,i))}function vu(n,t){return lu.call(n,t||0)}function yu(n,t){var i=arguments.length>2?vu(arguments,2):[];return!c(t)||t instanceof RegExp?t:i.length?function(){return arguments.length?t.apply(n,i.concat(lu.call(arguments,0))):t.apply(n,i)}:function(){return arguments.length?t.apply(n,arguments):t.call(n)}}function ds(n,r){var u=r;return typeof n=="string"&&n.charAt(0)==="$"?u=i:oi(r)?u="$WINDOW":r&&t===r?u="$DOCUMENT":pr(r)&&(u="$SCOPE"),u}function et(n,t){return typeof n=="undefined"?i:JSON.stringify(n,ds,t?"  ":null)}function re(n){return e(n)?JSON.parse(n):n}function nr(n){if(typeof n=="function")n=!0;else if(n&&n.length!==0){var t=v(""+n);n=!(t=="f"||t=="0"||t=="false"||t=="no"||t=="n"||t=="[]")}else n=!1;return n}function ot(n){n=u(n).clone();try{n.empty()}catch(i){}var t=u("<div>").append(n).html();try{return n[0].nodeType===3?v(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(n,t){return"<"+v(t)})}catch(i){return v(t)}}function ue(n){try{return decodeURIComponent(n)}catch(t){}}function fe(n){var i={},u,t;return r((n||"").split("&"),function(n){if(n&&(u=n.replace(/\+/g,"%20").split("="),t=ue(u[0]),f(t))){var r=f(u[1])?ue(u[1]):!0;lr.call(i,t)?o(i[t])?i[t].push(r):i[t]=[i[t],r]:i[t]=r}}),i}function pu(n){var t=[];return r(n,function(n,i){o(n)?r(n,function(n){t.push(ri(i,!0)+(n===!0?"":"="+ri(n,!0)))}):t.push(ri(i,!0)+(n===!0?"":"="+ri(n,!0)))}),t.length?t.join("&"):""}function br(n){return ri(n,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ri(n,t){return encodeURIComponent(n).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function gs(n,i){function e(n){n&&s.push(n)}var s=[n],u,f,o=["ng:app","ng-app","x-ng-app","data-ng-app"],h=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;r(o,function(i){o[i]=!0;e(t.getElementById(i));i=i.replace(":","\\:");n.querySelectorAll&&(r(n.querySelectorAll("."+i),e),r(n.querySelectorAll("."+i+"\\:"),e),r(n.querySelectorAll("["+i+"]"),e))});r(s,function(n){if(!u){var i=" "+n.className+" ",t=h.exec(i);t?(u=n,f=(t[2]||"").replace(/\s+/g,",")):r(n.attributes,function(t){!u&&o[t.name]&&(u=n,f=t.value)})}});u&&i(u,f?[f]:[])}function ee(i,f){var e=function(){var r,n;if(i=u(i),i.injector()){r=i[0]===t?"document":ot(i);throw yi("btstrpd","App Already Bootstrapped with this Element '{0}'",r.replace(/</,"&lt;").replace(/>/,"&gt;"));}return f=f||[],f.unshift(["$provide",function(n){n.value("$rootElement",i)}]),f.unshift("ng"),n=pe(f),n.invoke(["$rootScope","$rootElement","$compile","$injector","$animate",function(n,t,i,r){n.$apply(function(){t.data("$injector",r);i(t)(n)})}]),n},o=/^NG_DEFER_BOOTSTRAP!/;if(n&&!o.test(n.name))return e();n.name=n.name.replace(o,"");pi.resumeBootstrap=function(n){r(n,function(n){f.push(n)});e()}}function kr(n,t){return t=t||"_",n.replace(oe,function(n,i){return(i?t:"")+n.toLowerCase()})}function nh(){yt=n.jQuery;yt&&yt.fn.on?(u=yt,h(yt.fn,{scope:fi.scope,isolateScope:fi.isolateScope,controller:fi.controller,injector:fi.injector,inheritedData:fi.inheritedData}),du("remove",!0,!0,!1),du("empty",!1,!1,!1),du("html",!1,!1,!0)):u=w;pi.element=u}function wu(n,t,i){if(!n)throw yi("areq","Argument '{0}' is {1}",t||"?",i||"required");return n}function tr(n,t,i){return i&&o(n)&&(n=n[n.length-1]),wu(c(n),t,"not a function, got "+(n&&typeof n=="object"?n.constructor.name||"Object":typeof n)),n}function ui(n,t){if(n==="hasOwnProperty")throw yi("badname","hasOwnProperty is not a valid {0} name",t);}function se(n,t,i){var r;if(!t)return n;var u=t.split("."),f,e=n,o=u.length;for(r=0;r<o;r++)f=u[r],n&&(n=(e=n)[f]);return!i&&c(n)?yu(e,n):n}function bu(n){var i=n[0],f=n[n.length-1],t,r;if(i===f)return u(i);t=i;r=[t];do{if(t=t.nextSibling,!t)break;r.push(t)}while(t!==f);return u(r)}function th(n){function t(n,t,i){return n[t]||(n[t]=i())}var r=y("$injector"),u=y("ng"),i=t(n,"angular",Object);return i.$$minErr=i.$$minErr||y,t(i,"module",function(){var n={};return function(i,f,e){var o=function(n,t){if(n==="hasOwnProperty")throw u("badname","hasOwnProperty is not a valid {0} name",t);};return o(i,"module"),f&&n.hasOwnProperty(i)&&(n[i]=null),t(n,i,function(){function n(n,i,r){return function(){return t[r||"push"]([n,i,arguments]),s}}if(!f)throw r("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",i);var t=[],u=[],o=n("$injector","invoke"),s={_invokeQueue:t,_runBlocks:u,requires:f,name:i,provider:n("$provide","provider"),factory:n("$provide","factory"),service:n("$provide","service"),value:n("$provide","value"),constant:n("$provide","constant","unshift"),animation:n("$animateProvider","register"),filter:n("$filterProvider","register"),controller:n("$controllerProvider","register"),directive:n("$compileProvider","directive"),config:o,run:function(n){return u.push(n),this}};return e&&o(e),s})}})}function ih(t){h(t,{bootstrap:ee,copy:si,extend:h,equals:ii,element:u,forEach:r,injector:pe,noop:s,bind:yu,toJson:et,fromJson:re,identity:ki,isUndefined:l,isDefined:f,isString:e,isFunction:c,isObject:a,isNumber:vr,isElement:ws,isArray:o,version:he,isDate:pt,lowercase:v,uppercase:ni,callbacks:{counter:0},$$minErr:y,$$csp:hi});wi=th(n);try{wi("ngLocale")}catch(i){wi("ngLocale",[]).provider("$locale",vc)}wi("ng",["ngLocale"],["$provide",function(n){n.provider({$$sanitizeUri:ol});n.provider("$compile",ke).directive({a:ns,input:es,textarea:es,form:ia,script:ny,select:ry,style:fy,option:uy,ngBind:da,ngBindHtml:nv,ngBindTemplate:ga,ngClass:tv,ngClassEven:rv,ngClassOdd:iv,ngCloak:uv,ngController:fv,ngForm:ra,ngHide:pv,ngIf:ov,ngInclude:sv,ngInit:cv,ngNonBindable:lv,ngPluralize:av,ngRepeat:vv,ngShow:yv,ngStyle:wv,ngSwitch:bv,ngSwitchWhen:kv,ngSwitchDefault:dv,ngOptions:iy,ngTransclude:gv,ngModel:ya,ngList:wa,ngChange:pa,required:os,ngRequired:os,ngValue:ka}).directive({ngInclude:hv}).directive(eu).directive(ss);n.provider({$anchorScroll:dh,$animate:be,$browser:tc,$cacheFactory:ic,$controller:uc,$document:fc,$exceptionHandler:ec,$filter:ao,$interpolate:lc,$interval:ac,$http:oc,$httpBackend:hc,$location:bc,$log:kc,$parse:il,$rootScope:el,$q:rl,$sce:ll,$sceDelegate:cl,$sniffer:al,$templateCache:rc,$timeout:vl,$window:yl,$$rAF:fl,$$asyncCallback:gh})}])}function uh(){return++rh}function ur(n){return n.replace(fh,function(n,t,i,r){return r?i.toUpperCase():i}).replace(eh,"Moz$1")}function du(n,t,i,r){function e(n){var s=i&&n?[this.filter(n)]:[this],h=t,c,e,a,l,o,v,y;if(!r||n!=null)while(s.length)for(c=s.shift(),e=0,a=c.length;e<a;e++)for(l=u(c[e]),h?l.triggerHandler("$destroy"):h=!h,o=0,v=(y=l.children()).length;o<v;o++)s.push(yt(y[o]));return f.apply(this,arguments)}var f=yt.fn[n];f=f.$original||f;e.$original=f;yt.fn[n]=e}function gu(n){return!sh.test(n)}function lh(n,t){var i,o,r,u=t.createDocumentFragment(),e=[],s,f,h;if(gu(n))e.push(t.createTextNode(n));else{for(i=u.appendChild(t.createElement("div")),o=(hh.exec(n)||["",""])[1].toLowerCase(),r=it[o]||it._default,i.innerHTML="<div>&#160;<\/div>"+r[1]+n.replace(ch,"<$1><\/$2>")+r[2],i.removeChild(i.firstChild),s=r[0];s--;)i=i.lastChild;for(f=0,h=i.childNodes.length;f<h;++f)e.push(i.childNodes[f]);i=u.firstChild;i.textContent=""}return u.textContent="",u.innerHTML="",e}function ah(n,i){i=i||t;var r;return(r=oh.exec(n))?[i.createElement(r[1])]:lh(n,i)}function w(n){if(n instanceof w)return n;if(e(n)&&(n=g(n)),!(this instanceof w)){if(e(n)&&n.charAt(0)!="<")throw ku("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new w(n)}if(e(n)){ff(this,ah(n));var i=u(t.createDocumentFragment());i.append(this)}else ff(this,n)}function nf(n){return n.cloneNode(!0)}function ci(n){tf(n);for(var t=0,i=n.childNodes||[];t<i.length;t++)ci(i[t])}function ce(n,t,i,u){if(f(u))throw ku("offargs","jqLite#off() does not support the `selector` argument");var e=ct(n,"events"),o=ct(n,"handle");o&&(l(t)?r(e,function(t,i){rr(n,i,t);delete e[i]}):r(t.split(" "),function(t){l(i)?(rr(n,t,e[t]),delete e[t]):gi(e[t]||[],i)}))}function tf(n,t){var u=n.ng339,r=ir[u];if(r){if(t){delete ir[u].data[t];return}r.handle&&(r.events.$destroy&&r.handle({},"$destroy"),ce(n));delete ir[u];n.ng339=i}}function ct(n,t,i){var u=n.ng339,r=ir[u||-1];if(f(i))r||(n.ng339=u=uh(),r=ir[u]={}),r[t]=i;else return r&&r[t]}function rf(n,t,i){var r=ct(n,"data"),u=f(i),e=!u&&f(t),o=e&&!a(t);if(r||o||ct(n,"data",r={}),u)r[t]=i;else if(e){if(o)return r&&r[t];h(r,t)}else return r}function uf(n,t){return n.getAttribute?(" "+(n.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1:!1}function gr(n,t){t&&n.setAttribute&&r(t.split(" "),function(t){n.setAttribute("class",g((" "+(n.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+g(t)+" "," ")))})}function nu(n,t){if(t&&n.setAttribute){var i=(" "+(n.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");r(t.split(" "),function(n){n=g(n);i.indexOf(" "+n+" ")===-1&&(i+=n+" ")});n.setAttribute("class",g(i))}}function ff(n,t){if(t){t=!t.nodeName&&f(t.length)&&!oi(t)?t:[t];for(var i=0;i<t.length;i++)n.push(t[i])}}function le(n,t){return tu(n,"$"+(t||"ngController")+"Controller")}function tu(n,t,r){var e,f,s;for(n.nodeType==9&&(n=n.documentElement),e=o(t)?t:[t];n;){for(f=0,s=e.length;f<s;f++)if((r=u.data(n,e[f]))!==i)return r;n=n.parentNode||n.nodeType===11&&n.host}}function ae(n){for(var t=0,i=n.childNodes;t<i.length;t++)ci(i[t]);while(n.firstChild)n.removeChild(n.firstChild)}function ve(n,t){var i=fr[t.toLowerCase()];return i&&ef[n.nodeName]&&i}function vh(n,i){var u=function(u,f){var e,o;u.preventDefault||(u.preventDefault=function(){u.returnValue=!1});u.stopPropagation||(u.stopPropagation=function(){u.cancelBubble=!0});u.target||(u.target=u.srcElement||t);l(u.defaultPrevented)&&(e=u.preventDefault,u.preventDefault=function(){u.defaultPrevented=!0;e.call(u)},u.defaultPrevented=!1);u.isDefaultPrevented=function(){return u.defaultPrevented||u.returnValue===!1};o=ft(i[f||u.type]||[]);r(o,function(t){t.call(n,u)});p<=8?(u.preventDefault=null,u.stopPropagation=null,u.isDefaultPrevented=null):(delete u.preventDefault,delete u.stopPropagation,delete u.isDefaultPrevented)};return u.elem=n,u}function li(n,t){var u=typeof n,r;return u=="function"||u=="object"&&n!==null?typeof(r=n.$$hashKey)=="function"?r=n.$$hashKey():r===i&&(r=n.$$hashKey=(t||ar)()):r=n,u+":"+r}function er(n,t){if(t){var i=0;this.nextUid=function(){return++i}}r(n,this.put,this)}function ye(n){var t,u,f,i;return typeof n=="function"?(t=n.$inject)||(t=[],n.length&&(u=n.toString().replace(kh,""),f=u.match(ph),r(f[1].split(wh),function(n){n.replace(bh,function(n,i,r){t.push(r)})})),n.$inject=t):o(n)?(i=n.length-1,tr(n[i],"fn"),t=n.slice(0,i)):tr(n,"fn",!0),t}function pe(n){function f(n){return function(t,i){if(a(t))r(t,ne(n));else return n(t,i)}}function b(n,r){if(ui(n,"service"),(c(r)||o(r))&&(r=t.instantiate(r)),!r.$get)throw or("pget","Provider '{0}' must define $get factory method.",n);return i[n+h]=r}function p(n,t){return b(n,{$get:t})}function g(n,t){return p(n,["$injector",function(n){return n.instantiate(t)}])}function tt(n,t){return p(n,nt(t))}function it(n,t){ui(n,"constant");i[n]=t;y[n]=t}function rt(n,i){var r=t.get(n+h),f=r.$get;r.$get=function(){var n=u.invoke(f,r);return u.invoke(i,null,{$delegate:n})}}function k(n){var i=[],u,s,f,h;return r(n,function(n){if(!w.get(n)){w.put(n,!0);try{if(e(n))for(u=wi(n),i=i.concat(k(u.requires)).concat(u._runBlocks),s=u._invokeQueue,f=0,h=s.length;f<h;f++){var l=s[f],a=t.get(l[0]);a[l[1]].apply(a,l[2])}else c(n)?i.push(t.invoke(n)):o(n)?i.push(t.invoke(n)):tr(n,"module")}catch(r){o(n)&&(n=n[n.length-1]);r.message&&r.stack&&r.stack.indexOf(r.message)==-1&&(r=r.message+"\n"+r.stack);throw or("modulerr","Failed to instantiate module {0} due to:\n{1}",n,r.stack||r.message||r);}}}),i}function d(n,t){function r(i){if(n.hasOwnProperty(i)){if(n[i]===v)throw or("cdep","Circular dependency found: {0}",i+" <- "+l.join(" <- "));return n[i]}try{return l.unshift(i),n[i]=v,n[i]=t(i)}catch(r){n[i]===v&&delete n[i];throw r;}finally{l.shift()}}function u(n,t,i){for(var s=[],h=ye(n),u,f=0,e=h.length;f<e;f++){if(u=h[f],typeof u!="string")throw or("itkn","Incorrect injection token! Expected service name as string, got {0}",u);s.push(i&&i.hasOwnProperty(u)?i[u]:r(u))}return o(n)&&(n=n[e]),n.apply(t,s)}function f(n,t){var f=function(){},r,i;return f.prototype=(o(n)?n[n.length-1]:n).prototype,r=new f,i=u(n,r,t),a(i)||c(i)?i:r}return{invoke:u,instantiate:f,get:r,annotate:ye,has:function(t){return i.hasOwnProperty(t+h)||n.hasOwnProperty(t)}}}var v={},h="Provider",l=[],w=new er([],!0),i={$provide:{provider:f(b),factory:f(p),service:f(g),value:f(tt),constant:f(it),decorator:rt}},t=i.$injector=d(i,function(){throw or("unpr","Unknown provider: {0}",l.join(" <- "));}),y={},u=y.$injector=d(y,function(n){var i=t.get(n+h);return u.invoke(i.$get,i)});return r(k(n),function(n){u.invoke(n||s)}),u}function dh(){var n=!0;this.disableAutoScrolling=function(){n=!1};this.$get=["$window","$location","$rootScope",function(t,i,u){function o(n){var t=null;return r(n,function(n){t||v(n.nodeName)!=="a"||(t=n)}),t}function e(){var n=i.hash(),r;n?(r=f.getElementById(n))?r.scrollIntoView():(r=o(f.getElementsByName(n)))?r.scrollIntoView():n==="top"&&t.scrollTo(0,0):t.scrollTo(0,0)}var f=t.document;return n&&u.$watch(function(){return i.hash()},function(){u.$evalAsync(e)}),e}]}function gh(){this.$get=["$$rAF","$timeout",function(n,t){return n.supported?function(t){return n(t)}:function(n){return t(n,0,!1)}}]}function nc(n,t,f,o){function nt(n){try{n.apply(null,vu(arguments,1))}finally{if(a--,a===0)while(w.length)try{w.pop()()}catch(t){f.error(t)}}}function ct(n,t){(function i(){r(b,function(n){n()});ot=t(i,n)})()}function d(){(it=null,k!=h.url())&&(k=h.url(),r(rt,function(n){n(h.url())}))}var h=this,v=t[0],c=n.location,y=n.history,et=n.setTimeout,ht=n.clearTimeout,p={},a,w,b,ot,rt,ut;h.isMock=!1;a=0;w=[];h.$$completeOutstandingRequest=nt;h.$$incOutstandingRequestCount=function(){a++};h.notifyWhenNoOutstandingRequests=function(n){r(b,function(n){n()});a===0?n():w.push(n)};b=[];h.addPollFn=function(n){return l(ot)&&ct(100,et),b.push(n),n};var k=c.href,tt=t.find("base"),it=null;h.url=function(t,i){return c!==n.location&&(c=n.location),y!==n.history&&(y=n.history),t?k==t?void 0:(k=t,o.history?i?y.replaceState(null,"",t):(y.pushState(null,"",t),tt.attr("href",tt.attr("href"))):(it=t,i?c.replace(t):c.href=t),h):it||c.href.replace(/%27/g,"'")};rt=[];ut=!1;h.onUrlChange=function(t){if(!ut){if(o.history)u(n).on("popstate",d);if(o.hashchange)u(n).on("hashchange",d);else h.addPollFn(d);ut=!0}return rt.push(t),t};h.$$checkUrlChange=d;h.baseHref=function(){var n=tt.attr("href");return n?n.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var g={},ft="",st=h.baseHref();h.cookies=function(n,t){var s,h,r,u,o;if(n)t===i?v.cookie=escape(n)+"=;path="+st+";expires=Thu, 01 Jan 1970 00:00:00 GMT":e(t)&&(s=(v.cookie=escape(n)+"="+escape(t)+";path="+st).length+1,s>4096&&f.warn("Cookie '"+n+"' possibly not set or overflowed because it was too large ("+s+" > 4096 bytes)!"));else{if(v.cookie!==ft)for(ft=v.cookie,h=ft.split("; "),g={},u=0;u<h.length;u++)r=h[u],o=r.indexOf("="),o>0&&(n=unescape(r.substring(0,o)),g[n]===i&&(g[n]=unescape(r.substring(o+1))));return g}};h.defer=function(n,t){var i;return a++,i=et(function(){delete p[i];nt(n)},t||0),p[i]=!0,i};h.defer.cancel=function(n){return p[n]?(delete p[n],ht(n),nt(s),!0):!1}}function tc(){this.$get=["$window","$log","$sniffer","$document",function(n,t,i,r){return new nc(n,r,t,i)}]}function ic(){this.$get=function(){function t(t,i){function v(n){n!=f&&(r?r==n&&(r=n.n):r=n,c(n.n,n.p),c(n,f),f=n,f.n=null)}function c(n,t){n!=t&&(n&&(n.p=t),t&&(t.n=n))}if(t in n)throw y("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var o=0,a=h({},i,{id:t}),e={},s=i&&i.capacity||Number.MAX_VALUE,u={},f=null,r=null;return n[t]={put:function(n,t){if(s<Number.MAX_VALUE){var i=u[n]||(u[n]={key:n});v(i)}if(!l(t))return n in e||o++,e[n]=t,o>s&&this.remove(r.key),t},get:function(n){if(s<Number.MAX_VALUE){var t=u[n];if(!t)return;v(t)}return e[n]},remove:function(n){if(s<Number.MAX_VALUE){var t=u[n];if(!t)return;t==f&&(f=t.p);t==r&&(r=t.n);c(t.n,t.p);delete u[n]}delete e[n];o--},removeAll:function(){e={};o=0;u={};f=r=null},destroy:function(){e=null;a=null;u=null;delete n[t]},info:function(){return h({},a,{size:o})}}}var n={};return t.info=function(){var t={};return r(n,function(n,i){t[i]=n.info()}),t},t.get=function(t){return n[t]},t}}function rc(){this.$get=["$cacheFactory",function(n){return n("templates")}]}function ke(n,s){var l={},v="Directive",y=/^\s*directive\:\s*([\d\w_\-]+)\s+(.*)$/,w=/(([\d\w_\-]+)(?:\:([^;]+))?;?)/,b=/^(on[a-z]+|formaction)$/;this.directive=function k(t,i){return ui(t,"directive"),e(t)?(wu(i,"directiveFactory"),l.hasOwnProperty(t)||(l[t]=[],n.factory(t+v,["$injector","$exceptionHandler",function(n,i){var u=[];return r(l[t],function(r,f){try{var e=n.invoke(r);c(e)?e={compile:nt(e)}:!e.compile&&e.link&&(e.compile=nt(e.link));e.priority=e.priority||0;e.index=f;e.name=e.name||t;e.require=e.require||e.controller&&e.name;e.restrict=e.restrict||"A";u.push(e)}catch(o){i(o)}}),u}])),l[t].push(i)):r(t,ne(k)),this};this.aHrefSanitizationWhitelist=function(n){return f(n)?(s.aHrefSanitizationWhitelist(n),this):s.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(n){return f(n)?(s.imgSrcSanitizationWhitelist(n),this):s.imgSrcSanitizationWhitelist()};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(n,f,s,k,d,nt,tt,it,ut,et,st,ht){function bt(n,t,i,f,e){n instanceof u||(n=u(n));r(n,function(t,i){t.nodeType==3&&t.nodeValue.match(/\S+/)&&(n[i]=t=u(t).wrap("<span><\/span>").parent()[0])});var o=kt(n,t,n,i,f,e);return ct(n,"ng-scope"),function(t,i,u,f){var e,s,c,l,h;for(wu(t,"scope"),e=i?fi.clone.call(n):n,r(u,function(n,t){e.data("$"+t+"Controller",n)}),s=0,c=e.length;s<c;s++)l=e[s],h=l.nodeType,(h===1||h===9)&&e.eq(s).data("$scope",t);return i&&i(e,t),o&&o(t,e,e,f),e}}function ct(n,t){try{n.addClass(t)}catch(i){}}function kt(n,t,r,f,e,o){function w(n,r,f,e){for(var s,h,l,a,y,v,p,w=r.length,b=new Array(w),o=0;o<w;o++)b[o]=r[o];for(o=0,v=0,y=c.length;o<y;v++)l=b[v],s=c[o++],h=c[o++],s?(s.scope?(a=n.$new(),u.data(l,"$scope",a)):a=n,p=s.transcludeOnThisElement?vt(n,s.transclude,e):!s.templateOnThisElement&&e?e:!e&&t?vt(n,t):null,s(h,a,l,f,p)):h&&h(n,l.childNodes,i,e)}for(var c=[],l,a,s,v,y,p,h=0;h<n.length;h++)l=new wt,a=dt(n[h],[],l,h===0?f:i,e),s=a.length?oi(a,n[h],l,t,r,null,[],[],o):null,s&&s.scope&&ct(l.$$element,"ng-scope"),y=s&&s.terminal||!(v=n[h].childNodes)||!v.length?null:kt(v,s?(s.transcludeOnThisElement||!s.templateOnThisElement)&&s.transclude:t),c.push(s,y),p=p||s||y,o=null;return p?w:null}function vt(n,t,i){return function(r,u,f){var o=!1,e;if(r||(r=n.$new(),r.$$transcluded=!0,o=!0),e=t(r,u,f,i),o)e.on("$destroy",function(){r.$destroy()});return e}}function dt(n,t,i,r,u){var it=n.nodeType,rt=i.$attr,s,h,k,d,tt;switch(it){case 1:yt(t,lt(ei(n).toLowerCase()),"E",r,u);for(var l,o,f,c,a,nt,v=n.attributes,b=0,ut=v&&v.length;b<ut;b++)k=!1,d=!1,l=v[b],(!p||p>=8||l.specified)&&(o=l.name,a=g(l.value),c=lt(o),(nt=li.test(c))&&(o=kr(c.substr(6),"-")),tt=c.replace(/(Start|End)$/,""),c===tt+"Start"&&(k=o,d=o.substr(0,o.length-5)+"end",o=o.substr(0,o.length-6)),f=lt(o.toLowerCase()),rt[f]=o,(nt||!i.hasOwnProperty(f))&&(i[f]=a,ve(n,f)&&(i[f]=!0)),wi(n,t,a,f),yt(t,f,"A",r,u,k,d));if(h=n.className,e(h)&&h!=="")while(s=w.exec(h))f=lt(s[2]),yt(t,f,"C",r,u)&&(i[f]=g(s[3])),h=h.substr(s.index+s[0].length);break;case 3:yi(t,n.nodeValue);break;case 8:try{s=y.exec(n.nodeValue);s&&(f=lt(s[1]),yt(t,f,"M",r,u)&&(i[f]=g(s[2])))}catch(ft){}}return t.sort(vi),t}function ri(n,t,i){var r=[],f=0,e;if(t&&n.hasAttribute&&n.hasAttribute(t)){e=n;do{if(!n)throw rt("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,i);n.nodeType==1&&(n.hasAttribute(t)&&f++,n.hasAttribute(i)&&f--);r.push(n);n=n.nextSibling}while(f>0)}else r.push(n);return u(r)}function ui(n,t,i){return function(r,u,f,e,o){return u=ri(u[0],t,i),n(r,u,f,e,o)}}function oi(n,h,l,v,y,p,w,b,k){function tr(n,t,i,r){n&&(i&&(n=ui(n,i,r)),n.require=d.require,n.directiveName=st,(it===d||d.$$isolateScope)&&(n=ci(n,{isolateScope:!0})),w.push(n));t&&(i&&(t=ui(t,i,r)),t.require=d.require,t.directiveName=st,(it===d||d.$$isolateScope)&&(t=ci(t,{isolateScope:!0})),b.push(t))}function di(n,t,i,u){var f,s="data",h=!1;if(e(t)){while((f=t.charAt(0))=="^"||f=="?")t=t.substr(1),f=="^"&&(s="inheritedData"),h=h||f=="?";if(f=null,u&&s==="data"&&(f=u[t]),f=f||i[s]("$"+t+"Controller"),!f&&!h)throw rt("ctreq","Controller '{0}', required by directive '{1}', can't be found!",t,n);return f}return o(t)&&(f=[],r(t,function(t){f.push(di(n,t,i,u))})),f}function kt(n,t,e,o,c){function vt(n,t){var r;return arguments.length<2&&(t=n,n=i),vi&&(r=g),c(n,t,r)}var v,y,k,st,p,d,a,g={},ut,ht,et;for(v=h===e?l:ft(l,new wt(u(e),l.$attr)),y=v.$$element,it&&(ht=/^\s*([@=&])(\??)\s*(\w*)\s*$/,a=t.$new(!0),lt&&(lt===it||lt===it.$$originalDirective)?y.data("$isolateScope",a):y.data("$isolateScopeNoTemplate",a),ct(y,"ng-isolate-scope"),r(it.scope,function(n,i){var o=n.match(ht)||[],r=o[3]||i,l=o[2]=="?",h=o[1],e,u,c,s;a.$$isolateBindings[i]=h+r;switch(h){case"@":v.$observe(r,function(n){a[i]=n});v.$$observers[r].$$scope=t;v[r]&&(a[i]=f(v[r])(t));break;case"=":if(l&&!v[r])return;u=nt(v[r]);s=u.literal?ii:function(n,t){return n===t||n!==n&&t!==t};c=u.assign||function(){e=a[i]=u(t);throw rt("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",v[r],it.name);};e=a[i]=u(t);a.$watch(function(){var n=u(t);return s(n,a[i])||(s(n,e)?c(t,n=a[i]):a[i]=n),e=n},null,u.literal);break;case"&":u=nt(v[r]);a[i]=function(n){return u(t,n)};break;default:throw rt("iscp","Invalid isolate scope definition for directive '{0}'. Definition: {... {1}: '{2}' ...}",it.name,i,n);}})),ut=c&&vt,yt&&r(yt,function(n){var r={$scope:n===it||n.$$isolateScope?a:t,$element:y,$attrs:v,$transclude:ut},i;d=n.controller;d=="@"&&(d=v[n.name]);i=tt(d,r);g[n.name]=i;vi||y.data("$"+n.name+"Controller",i);n.controllerAs&&(r.$scope[n.controllerAs]=i)}),k=0,st=w.length;k<st;k++)try{p=w[k];p(p.isolateScope?a:t,y,v,p.require&&di(p.directiveName,p.require,y,g),ut)}catch(at){s(at,ot(y))}for(et=t,it&&(it.template||it.templateUrl===null)&&(et=a),n&&n(et,e.childNodes,i,c),k=b.length-1;k>=0;k--)try{p=b[k];p(p.isolateScope?a:t,y,v,p.require&&di(p.directiveName,p.require,y,g),ut)}catch(at){s(at,ot(y))}}var vt,pi,ei,wi;k=k||{};var ni=-Number.MAX_VALUE,oi,yt=k.controllerDirectives,it=k.newIsolateScopeDirective,lt=k.templateDirective,li=k.nonTlbTranscludeDirective,bi=!1,ki=!1,vi=k.hasElementTranscludeDirective,ut=l.$$element=u(h),d,st,ht,yi=p,fi=v,gt,et;for(vt=0,pi=n.length;vt<pi;vt++){if(d=n[vt],ei=d.$$start,wi=d.$$end,ei&&(ut=ri(h,ei,wi)),ht=i,ni>d.priority)break;if((et=d.scope)&&(oi=oi||d,d.templateUrl||(at("new/isolated scope",it,d,ut),a(et)&&(it=d))),st=d.name,!d.templateUrl&&d.controller&&(et=d.controller,yt=yt||{},at("'"+st+"' controller",yt[st],d,ut),yt[st]=d),(et=d.transclude)&&(bi=!0,d.$$tlb||(at("transclusion",li,d,ut),li=d),et=="element"?(vi=!0,ni=d.priority,ht=ut,ut=l.$$element=u(t.createComment(" "+st+": "+l[st]+" ")),h=ut[0],pt(y,vu(ht),h),fi=bt(ht,v,ni,yi&&yi.name,{nonTlbTranscludeDirective:li})):(ht=u(nf(h)).contents(),ut.empty(),fi=bt(ht,v))),d.template)if(ki=!0,at("template",lt,d,ut),lt=d,et=c(d.template)?d.template(ut,l):d.template,et=ti(et),d.replace){if(yi=d,ht=gu(et)?[]:u(g(et)),h=ht[0],ht.length!=1||h.nodeType!==1)throw rt("tplrt","Template for directive '{0}' must have exactly one root element. {1}",st,"");pt(y,ut,h);var gi={$attr:{}},nr=dt(h,[],gi),ir=n.splice(vt+1,n.length-(vt+1));it&&si(nr);n=n.concat(nr).concat(ir);hi(l,gi);pi=n.length}else ut.html(et);if(d.templateUrl)ki=!0,at("template",lt,d,ut),lt=d,d.replace&&(yi=d),kt=ai(n.splice(vt,n.length-vt),ut,l,y,bi&&fi,w,b,{controllerDirectives:yt,newIsolateScopeDirective:it,templateDirective:lt,nonTlbTranscludeDirective:li}),pi=n.length;else if(d.compile)try{gt=d.compile(ut,l,fi);c(gt)?tr(null,gt,ei,wi):gt&&tr(gt.pre,gt.post,ei,wi)}catch(rr){s(rr,ot(ut))}d.terminal&&(kt.terminal=!0,ni=Math.max(ni,d.priority))}return kt.scope=oi&&oi.scope===!0,kt.transcludeOnThisElement=bi,kt.templateOnThisElement=ki,kt.transclude=fi,k.hasElementTranscludeDirective=vi,kt}function si(n){for(var t=0,i=n.length;t<i;t++)n[t]=ie(n[t],{$$isolateScope:!0})}function yt(t,r,u,f,e,o,h){var a;if(r===e)return null;if(a=null,l.hasOwnProperty(r))for(var c,p=n.get(r+v),y=0,w=p.length;y<w;y++)try{c=p[y];(f===i||f>c.priority)&&c.restrict.indexOf(u)!=-1&&(o&&(c=ie(c,{$$start:o,$$end:h})),t.push(c),a=c)}catch(b){s(b)}return a}function hi(n,t){var u=t.$attr,f=n.$attr,i=n.$$element;r(n,function(i,r){r.charAt(0)!="$"&&(t[r]&&t[r]!==i&&(i+=(r==="style"?";":" ")+t[r]),n.$set(r,i,!0,u[r]))});r(t,function(t,r){r=="class"?(ct(i,t),n["class"]=(n["class"]?n["class"]+" ":"")+t):r=="style"?(i.attr("style",i.attr("style")+";"+t),n.style=(n.style?n.style+";":"")+t):r.charAt(0)=="$"||n.hasOwnProperty(r)||(n[r]=t,f[r]=u[r])})}function ai(n,t,i,f,e,o,s,l){var v=[],p,w,b=t[0],y=n.shift(),tt=h({},y,{templateUrl:null,transclude:null,replace:null,$$originalDirective:y}),nt=c(y.templateUrl)?y.templateUrl(t,i):y.templateUrl;return t.empty(),k.get(et.getTrustedResourceUrl(nt),{cache:d}).success(function(h){var c,d,it,et,ut,ht;if(h=ti(h),y.replace){if(it=gu(h)?[]:u(g(h)),c=it[0],it.length!=1||c.nodeType!==1)throw rt("tplrt","Template for directive '{0}' must have exactly one root element. {1}",y.name,nt);d={$attr:{}};pt(f,t,c);ut=dt(c,[],d);a(y.scope)&&si(ut);n=ut.concat(n);hi(i,d)}else c=b,t.html(h);for(n.unshift(tt),p=oi(n,c,i,e,t,y,o,s,l),r(f,function(n,i){n==c&&(f[i]=t[0])}),w=kt(t[0].childNodes,e);v.length;){var ot=v.shift(),ft=v.shift(),lt=v.shift(),st=v.shift(),k=t[0];ft!==b&&(ht=ft.className,l.hasElementTranscludeDirective&&y.replace||(k=nf(c)),pt(lt,u(ft),k),ct(u(k),ht));et=p.transcludeOnThisElement?vt(ot,p.transclude,st):st;p(w,ot,k,f,et)}v=null}).error(function(n,t,i,r){throw rt("tpload","Failed to load template: {0}",r.url);}),function(n,t,i,r,u){var f=u;v?(v.push(t),v.push(i),v.push(r),v.push(f)):(p.transcludeOnThisElement&&(f=vt(t,p.transclude,u)),p(w,t,i,r,f))}}function vi(n,t){var i=t.priority-n.priority;return i!==0?i:n.name!==t.name?n.name<t.name?-1:1:n.index-t.index}function at(n,t,i,r){if(t)throw rt("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",t.name,i.name,n,ot(r));}function yi(n,t){var i=f(t,!0);i&&n.push({priority:0,compile:function(n){var r=n.parent(),t=r.length;return t&&ct(n.parent(),"ng-binding"),function(n,r){var u=r.parent(),f=u.data("$binding")||[];f.push(i);u.data("$binding",f);t||ct(u,"ng-binding");n.$watch(i,function(n){r[0].nodeValue=n})}}})}function pi(n,t){if(t=="srcdoc")return et.HTML;var i=ei(n);if(t=="xlinkHref"||i=="FORM"&&t=="action"||i!="IMG"&&(t=="src"||t=="ngSrc"))return et.RESOURCE_URL}function wi(n,t,i,r){var u=f(i,!0);if(u){if(r==="multiple"&&ei(n)==="SELECT")throw rt("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",ot(n));t.push({priority:100,compile:function(){return{pre:function(t,i,e){var o=e.$$observers||(e.$$observers={});if(b.test(r))throw rt("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");(u=f(e[r],!0,pi(n,r)),u)&&(e[r]=u(t),(o[r]||(o[r]=[])).$$inter=!0,(e.$$observers&&e.$$observers[r].$$scope||t).$watch(u,function(n,t){r==="class"&&n!=t?e.$updateClass(n,t):e.$set(r,n)}))}}}})}}function pt(n,i,r){var e=i[0],a=i.length,v=e.parentNode,f,y,c,s,w,l;if(n)for(f=0,y=n.length;f<y;f++)if(n[f]==e){n[f++]=r;for(var o=f,h=o+a-1,p=n.length;o<p;o++,h++)h<p?n[o]=n[h]:delete n[o];n.length-=a-1;break}for(v&&v.replaceChild(r,e),c=t.createDocumentFragment(),c.appendChild(e),r[u.expando]=e[u.expando],s=1,w=i.length;s<w;s++)l=i[s],u(l).remove(),c.appendChild(l),delete i[s];i[0]=r;i.length=1}function ci(n,t){return h(function(){return n.apply(null,arguments)},n,t)}var wt=function(n,t){this.$$element=n;this.$attr=t||{}};wt.prototype={$normalize:lt,$addClass:function(n){n&&n.length>0&&st.addClass(this.$$element,n)},$removeClass:function(n){n&&n.length>0&&st.removeClass(this.$$element,n)},$updateClass:function(n,t){var i=ge(n,t),r=ge(t,n);i.length===0?st.removeClass(this.$$element,r):r.length===0?st.addClass(this.$$element,i):st.setClass(this.$$element,i,r)},$set:function(n,t,u,f){var h=ve(this.$$element[0],n),e,o;h&&(this.$$element.prop(n,t),f=h);this[n]=t;f?this.$attr[n]=f:(f=this.$attr[n],f||(this.$attr[n]=f=kr(n,"-")));e=ei(this.$$element);(e==="A"&&n==="href"||e==="IMG"&&n==="src")&&(this[n]=t=ht(t,n==="src"));u!==!1&&(t===null||t===i?this.$$element.removeAttr(f):this.$$element.attr(f,t));o=this.$$observers;o&&r(o[n],function(n){try{n(t)}catch(i){s(i)}})},$observe:function(n,t){var i=this,r=i.$$observers||(i.$$observers={}),u=r[n]||(r[n]=[]);return u.push(t),it.$evalAsync(function(){u.$$inter||t(i[n])}),t}};var gt=f.startSymbol(),ni=f.endSymbol(),ti=gt=="{{"||ni=="}}"?ki:function(n){return n.replace(/\{\{/g,gt).replace(/}}/g,ni)},li=/^ngAttr[A-Z]/;return bt}]}function lt(n){return ur(n.replace(de,""))}function ge(n,t){var u="",e=n.split(/\s+/),o=t.split(/\s+/),i,f,r;n:for(i=0;i<e.length;i++){for(f=e[i],r=0;r<o.length;r++)if(f==o[r])continue n;u+=(u.length>0?" ":"")+f}return u}function uc(){var n={},t=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(t,i){ui(t,"controller");a(t)?h(n,t):n[t]=i};this.$get=["$injector","$window",function(i,r){return function(u,f){var h,c,o,s;if(e(u)&&(c=u.match(t),o=c[1],s=c[3],u=n.hasOwnProperty(o)?n[o]:se(f.$scope,o,!0)||se(r,o,!0),tr(u,o,!0)),h=i.instantiate(u,f),s){if(!(f&&typeof f.$scope=="object"))throw y("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",o||u.name,s);f.$scope[s]=h}return h}}]}function fc(){this.$get=["$window",function(n){return u(n.document)}]}function ec(){this.$get=["$log",function(n){return function(){n.error.apply(n,arguments)}}]}function no(n){var t={},i,u,f;return n?(r(n.split("\n"),function(n){f=n.indexOf(":");i=v(g(n.substr(0,f)));u=g(n.substr(f+1));i&&(t[i]=t[i]?t[i]+", "+u:u)}),t):t}function to(n){var t=a(n)?n:i;return function(i){return(t||(t=no(n)),i)?t[v(i)]||null:t}}function io(n,t,i){return c(i)?i(n,t):(r(i,function(i){n=i(n,t)}),n)}function of(n){return 200<=n&&n<300}function oc(){var u=/^\s*(\[|\{[^\{])/,s=/[\}\]]\s*$/,y=/^\)\]\}',?\n/,t={"Content-Type":"application/json;charset=utf-8"},n=this.defaults={transformResponse:[function(n){return e(n)&&(n=n.replace(y,""),u.test(n)&&s.test(n)&&(n=re(n))),n}],transformRequest:[function(n){return a(n)&&!ys(n)&&!ps(n)?et(n):n}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ft(t),put:ft(t),patch:ft(t)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},p=this.interceptors=[],w=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(t,u,s,y,b,k){function d(t){function y(n){var t=h({},n,{data:io(n.data,n.headers,f.transformResponse)});return of(n.status)?t:b.reject(t)}function w(t){function s(n){var t;r(n,function(i,r){c(i)&&(t=i(),t!=null?n[r]=t:delete n[r])})}var i=n.headers,u=h({},t.headers),f,e,o;i=h({},i.common,i[v(t.method)]);n:for(f in i){e=v(f);for(o in u)if(v(o)===e)continue n;u[f]=i[f]}return s(u),u}var f={method:"get",transformRequest:n.transformRequest,transformResponse:n.transformResponse},e=w(t),s,a;h(f,t);f.headers=e;f.method=ni(f.method);var p=function(t){e=t.headers;var i=io(t.data,to(e),t.transformRequest);return l(i)&&r(e,function(n,t){v(t)==="content-type"&&delete e[t]}),l(t.withCredentials)&&!l(n.withCredentials)&&(t.withCredentials=n.withCredentials),rt(t,i,e).then(y,y)},o=[p,i],u=b.when(f);for(r(g,function(n){(n.request||n.requestError)&&o.unshift(n.request,n.requestError);(n.response||n.responseError)&&o.push(n.response,n.responseError)});o.length;)s=o.shift(),a=o.shift(),u=u.then(s,a);return u.success=function(n){return u.then(function(t){n(t.data,t.status,t.headers,f)}),u},u.error=function(n){return u.then(null,function(t){n(t.data,t.status,t.headers,f)}),u},u}function tt(){r(arguments,function(n){d[n]=function(t,i){return d(h(i||{},{method:n,url:t}))}})}function it(){r(arguments,function(n){d[n]=function(t,i,r){return d(h(r||{},{method:n,url:t,data:i}))}})}function rt(r,e,s){function it(n,t,i,r){c&&(of(n)?c.put(v,[n,t,no(i),r]):c.remove(v));tt(t,n,i,r);y.$$phase||y.$apply()}function tt(n,t,i,u){t=Math.max(t,0);(of(t)?w.resolve:w.reject)({data:n,status:t,headers:to(i),config:r,statusText:u})}function p(){var n=di(d.pendingRequests,r);n!==-1&&d.pendingRequests.splice(n,1)}var w=b.defer(),k=w.promise,c,h,v=ut(r.url,r.params),g;if(d.pendingRequests.push(r),k.then(p,p),(r.cache||n.cache)&&r.cache!==!1&&(r.method==="GET"||r.method==="JSONP")&&(c=a(r.cache)?r.cache:a(n.cache)?n.cache:nt),c)if(h=c.get(v),f(h)){if(wr(h))return h.then(p,p),h;o(h)?tt(h[1],h[0],ft(h[2]),h[3]):tt(h,200,{},"OK")}else c.put(v,k);return l(h)&&(g=lo(r.url)?u.cookies()[r.xsrfCookieName||n.xsrfCookieName]:i,g&&(s[r.xsrfHeaderName||n.xsrfHeaderName]=g),t(r.method,v,e,it,s,r.timeout,r.withCredentials,r.responseType)),k}function ut(n,t){if(!t)return n;var i=[];return vs(t,function(n,t){n===null||l(n)||(o(n)||(n=[n]),r(n,function(n){a(n)&&(n=pt(n)?n.toISOString():et(n));i.push(ri(t)+"="+ri(n))}))}),i.length>0&&(n+=(n.indexOf("?")==-1?"?":"&")+i.join("&")),n}var nt=s("$http"),g=[];return r(p,function(n){g.unshift(e(n)?k.get(n):k.invoke(n))}),r(w,function(n,t){var i=e(n)?k.get(n):k.invoke(n);g.splice(t,0,{response:function(n){return i(b.when(n))},responseError:function(n){return i(b.reject(n))}})}),d.pendingRequests=[],tt("get","delete","head","jsonp"),it("post","put"),d.defaults=n,d}]}function sc(t){if(p<=8&&(!t.match(/^(get|post|head|put|delete|options)$/i)||!n.XMLHttpRequest))return new n.ActiveXObject("Microsoft.XMLHTTP");if(n.XMLHttpRequest)return new n.XMLHttpRequest;throw y("$httpBackend")("noxhr","This browser does not support XMLHttpRequest.");}function hc(){this.$get=["$browser","$window","$document",function(n,t,i){return cc(n,sc,n.defer,t.angular.callbacks,i[0])}]}function cc(n,t,i,u,o){function c(n,t,i){var r=o.createElement("script"),f=null;return r.type="text/javascript",r.src=n,r.async=!0,f=function(n){rr(r,"load",f);rr(r,"error",f);o.body.removeChild(r);r=null;var e=-1,s="unknown";n&&(n.type!=="load"||u[t].called||(n={type:"error"}),s=n.type,e=n.type==="error"?404:200);i&&i(e,s)},dr(r,"load",f),dr(r,"error",f),p<=8&&(r.onreadystatechange=function(){e(r.readyState)&&/loaded|complete/.test(r.readyState)&&(r.onreadystatechange=null,f({type:"load"}))}),o.body.appendChild(r),f}var h=-1;return function(e,o,l,a,y,w,b,k){function rt(){nt=h;tt&&tt();d&&d.abort()}function ut(t,r,u,f,e){it&&i.cancel(it);tt=d=null;r===0&&(r=u?200:kt(o).protocol=="file"?404:0);r=r===1223?204:r;e=e||"";t(r,u,f,e);n.$$completeOutstandingRequest(s)}var nt,g,tt,d,it;if(n.$$incOutstandingRequestCount(),o=o||n.url(),v(e)=="jsonp")g="_"+(u.counter++).toString(36),u[g]=function(n){u[g].data=n;u[g].called=!0},tt=c(o.replace("JSON_CALLBACK","angular.callbacks."+g),g,function(n,t){ut(a,n,u[g].data,"",t);u[g]=s});else{if(d=t(e),d.open(e,o,!0),r(y,function(n,t){f(n)&&d.setRequestHeader(t,n)}),d.onreadystatechange=function(){if(d&&d.readyState==4){var n=null,t=null,i="";nt!==h&&(n=d.getAllResponseHeaders(),t="response"in d?d.response:d.responseText);nt===h&&p<10||(i=d.statusText);ut(a,nt||d.status,t,n,i)}},b&&(d.withCredentials=!0),k)try{d.responseType=k}catch(ft){if(k!=="json")throw ft;}d.send(l||null)}w>0?it=i(rt,w):wr(w)&&w.then(rt)}}function lc(){var n="{{",t="}}";this.startSymbol=function(t){return t?(n=t,this):n};this.endSymbol=function(n){return n?(t=n,this):t};this.$get=["$parse","$exceptionHandler","$sce",function(i,r,u){function f(f,s,h){for(var y,p,c=0,l=[],a=f.length,b=!1,v,k,w=[];c<a;)(y=f.indexOf(n,c))!=-1&&(p=f.indexOf(t,y+e))!=-1?(c!=y&&l.push(f.substring(c,y)),l.push(v=i(k=f.substring(y+e,p))),v.exp=k,c=p+o,b=!0):(c!=a&&l.push(f.substring(c)),c=a);if((a=l.length)||(l.push(""),a=1),h&&l.length>1)throw sf("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",f);if(!s||b)return w.length=a,v=function(n){var i,e,t,o;try{for(i=0,e=a;i<e;i++){if(typeof(t=l[i])=="function")if(t=t(n),t=h?u.getTrusted(h,t):u.valueOf(t),t==null)t="";else switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=et(t)}w[i]=t}return w.join("")}catch(s){o=sf("interr","Can't interpolate: {0}\n{1}",f,s.toString());r(o)}},v.exp=f,v.parts=l,v}var e=n.length,o=t.length;return f.startSymbol=function(){return n},f.endSymbol=function(){return t},f}]}function ac(){this.$get=["$rootScope","$window","$q",function(n,t,i){function u(u,e,o,s){var a=t.setInterval,v=t.clearInterval,c=i.defer(),h=c.promise,l=0,y=f(s)&&!s;return o=f(o)?o:0,h.then(null,null,u),h.$$intervalId=a(function(){c.notify(l++);o>0&&l>=o&&(c.resolve(l),v(h.$$intervalId),delete r[h.$$intervalId]);y||n.$apply()},e),r[h.$$intervalId]=c,h}var r={};return u.cancel=function(n){return n&&n.$$intervalId in r?(r[n.$$intervalId].reject("canceled"),t.clearInterval(n.$$intervalId),delete r[n.$$intervalId],!0):!1},u}]}function vc(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a",short:"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(n){return n===1?"one":"other"}}}}function cf(n){for(var t=n.split("/"),i=t.length;i--;)t[i]=br(t[i]);return t.join("/")}function ro(n,t,i){var r=kt(n,i);t.$$protocol=r.protocol;t.$$host=r.hostname;t.$$port=k(r.port)||pc[r.protocol]||null}function uo(n,t,i){var u=n.charAt(0)!=="/",r;u&&(n="/"+n);r=kt(n,i);t.$$path=decodeURIComponent(u&&r.pathname.charAt(0)==="/"?r.pathname.substring(1):r.pathname);t.$$search=fe(r.search);t.$$hash=decodeURIComponent(r.hash);t.$$path&&t.$$path.charAt(0)!="/"&&(t.$$path="/"+t.$$path)}function at(n,t){if(t.indexOf(n)===0)return t.substr(n.length)}function sr(n){var t=n.indexOf("#");return t==-1?n:n.substr(0,t)}function lf(n){return n.substr(0,sr(n).lastIndexOf("/")+1)}function wc(n){return n.substring(0,n.indexOf("/",n.indexOf("//")+2))}function fo(n,t){this.$$html5=!0;t=t||"";var r=lf(n);ro(n,this,n);this.$$parse=function(t){var i=at(r,t);if(!e(i))throw hf("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,r);uo(i,this,n);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var n=pu(this.$$search),t=this.$$hash?"#"+br(this.$$hash):"";this.$$url=cf(this.$$path)+(n?"?"+n:"")+t;this.$$absUrl=r+this.$$url.substr(1)};this.$$rewrite=function(u){var f,e;return(f=at(n,u))!==i?(e=f,(f=at(t,f))!==i?r+(at("/",f)||f):n+e):(f=at(r,u))!==i?r+f:r==u+"/"?r:void 0}}function af(n,t){var i=lf(n);ro(n,this,n);this.$$parse=function(r){function o(n,t,i){var u=/^\/[A-Z]:(\/.*)/,r;return(t.indexOf(i)===0&&(t=t.replace(i,"")),u.exec(t))?n:(r=u.exec(n),r?r[1]:n)}var u=at(n,r)||at(i,r),f=u.charAt(0)=="#"?at(t,u):this.$$html5?u:"";if(!e(f))throw hf("ihshprfx",'Invalid url "{0}", missing hash prefix "{1}".',r,t);uo(f,this,n);this.$$path=o(this.$$path,f,n);this.$$compose()};this.$$compose=function(){var i=pu(this.$$search),r=this.$$hash?"#"+br(this.$$hash):"";this.$$url=cf(this.$$path)+(i?"?"+i:"")+r;this.$$absUrl=n+(this.$$url?t+this.$$url:"")};this.$$rewrite=function(t){if(sr(n)==sr(t))return t}}function vf(n,t){this.$$html5=!0;af.apply(this,arguments);var i=lf(n);this.$$rewrite=function(r){var u;return n==sr(r)?r:(u=at(i,r))?n+t+u:i===r+"/"?i:void 0};this.$$compose=function(){var i=pu(this.$$search),r=this.$$hash?"#"+br(this.$$hash):"";this.$$url=cf(this.$$path)+(i?"?"+i:"")+r;this.$$absUrl=n+t+this.$$url}}function iu(n){return function(){return this[n]}}function eo(n,t){return function(i){return l(i)?this[n]:(this[n]=t(i),this.$$compose(),this)}}function bc(){var t="",i=!1;this.hashPrefix=function(n){return f(n)?(t=n,this):t};this.html5Mode=function(n){return f(n)?(i=n,this):i};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(r,f,e,o){function w(n){r.$broadcast("$locationChangeSuccess",s.absUrl(),n)}var s,c,b=f.baseHref(),l=f.url(),h,p,y;i?(h=wc(l)+(b||"/"),c=e.history?fo:vf):(h=sr(l),c=af);s=new c(h,"#"+t);s.$$parse(s.$$rewrite(l));p=/^\s*(javascript|mailto):/i;o.on("click",function(i){var l,e,y,d,w,k,b,g;if(!i.ctrlKey&&!i.metaKey&&i.which!=2){for(l=u(i.target);v(l[0].nodeName)!=="a";)if(l[0]===o[0]||!(l=l.parent())[0])return;if(e=l.prop("href"),a(e)&&e.toString()==="[object SVGAnimatedString]"&&(e=kt(e.animVal).href),!p.test(e)){if(c===vf&&(y=l.attr("href")||l.attr("xlink:href"),y&&y.indexOf("://")<0))if(d="#"+t,y[0]=="/")e=h+d+y;else if(y[0]=="#")e=h+d+(s.path()||"/")+y;else{for(w=s.path().split("/"),k=y.split("/"),w.length!==2||w[1]||(w.length=1),b=0;b<k.length;b++)if(k[b]==".")continue;else k[b]==".."?w.pop():k[b].length&&w.push(k[b]);e=h+d+w.join("/")}g=s.$$rewrite(e);e&&!l.attr("target")&&g&&!i.isDefaultPrevented()&&(i.preventDefault(),g!=f.url()&&(s.$$parse(g),r.$apply(),n.angular["ff-684208-preventDefault"]=!0))}}});s.absUrl()!=l&&f.url(s.absUrl(),!0);f.onUrlChange(function(n){s.absUrl()!=n&&(r.$evalAsync(function(){var t=s.absUrl();s.$$parse(n);r.$broadcast("$locationChangeStart",n,t).defaultPrevented?(s.$$parse(t),f.url(t)):w(t)}),r.$$phase||r.$digest())});return y=0,r.$watch(function(){var n=f.url(),t=s.$$replace;return y&&n==s.absUrl()||(y++,r.$evalAsync(function(){r.$broadcast("$locationChangeStart",s.absUrl(),n).defaultPrevented?s.$$parse(n):(f.url(s.absUrl(),t),w(n))})),s.$$replace=!1,y}),s}]}function kc(){var n=!0,t=this;this.debugEnabled=function(t){return f(t)?(n=t,this):n};this.$get=["$window",function(i){function f(n){return n instanceof Error&&(n.stack?n=n.message&&n.stack.indexOf(n.message)===-1?"Error: "+n.message+"\n"+n.stack:n.stack:n.sourceURL&&(n=n.message+"\n"+n.sourceURL+":"+n.line)),n}function u(n){var t=i.console||{},u=t[n]||t.log||s,e=!1;try{e=!!u.apply}catch(o){}return e?function(){var n=[];return r(arguments,function(t){n.push(f(t))}),u.apply(t,n)}:function(n,t){u(n,t==null?"":t)}}return{log:u("log"),info:u("info"),warn:u("warn"),error:u("error"),debug:function(){var i=u("debug");return function(){n&&i.apply(t,arguments)}}()}}]}function st(n,t){if(n==="__defineGetter__"||n==="__defineSetter__"||n==="__lookupGetter__"||n==="__lookupSetter__"||n==="__proto__")throw ut("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return n}function bt(n,t){if(n)if(n.constructor===n)throw ut("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);else if(n.document&&n.location&&n.alert&&n.setInterval)throw ut("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);else if(n.children&&(n.nodeName||n.prop&&n.attr&&n.find))throw ut("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);else if(n===Object)throw ut("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t);return n}function nl(n,t){if(n)if(n.constructor===n)throw ut("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);else if(n===dc||n===gc||oo&&n===oo)throw ut("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t);}function ru(n,t,r,u,f){var s,e,h,o;for(bt(n,u),f=f||{},s=t.split("."),h=0;s.length>1;h++)e=st(s.shift(),u),o=bt(n[e],u),o||(o={},n[e]=o),n=o,n.then&&f.unwrapPromises&&(wt(u),"$$v"in n||function(n){n.then(function(t){n.$$v=t})}(n),n.$$v===i&&(n.$$v={}),n=n.$$v);return e=st(s.shift(),u),bt(n[e],u),n[e]=r,r}function so(n,t,r,u,f,e,o){return st(n,e),st(t,e),st(r,e),st(u,e),st(f,e),o.unwrapPromises?function(o,s){var h=s&&s.hasOwnProperty(n)?s:o,c;return h==null?h:(h=h[n],h&&h.then&&(wt(e),"$$v"in h||(c=h,c.$$v=i,c.then(function(n){c.$$v=n})),h=h.$$v),!t)?h:h==null?i:(h=h[t],h&&h.then&&(wt(e),"$$v"in h||(c=h,c.$$v=i,c.then(function(n){c.$$v=n})),h=h.$$v),!r)?h:h==null?i:(h=h[r],h&&h.then&&(wt(e),"$$v"in h||(c=h,c.$$v=i,c.then(function(n){c.$$v=n})),h=h.$$v),!u)?h:h==null?i:(h=h[u],h&&h.then&&(wt(e),"$$v"in h||(c=h,c.$$v=i,c.then(function(n){c.$$v=n})),h=h.$$v),!f)?h:h==null?i:(h=h[f],h&&h.then&&(wt(e),"$$v"in h||(c=h,c.$$v=i,c.then(function(n){c.$$v=n})),h=h.$$v),h)}:function(e,o){var s=o&&o.hasOwnProperty(n)?o:e;return s==null?s:(s=s[n],!t)?s:s==null?i:(s=s[t],!r)?s:s==null?i:(s=s[r],!u)?s:s==null?i:(s=s[u],!f)?s:s==null?i:s[f]}}function ho(n,t,u){var f,h,o,e,s;return uu.hasOwnProperty(n)?uu[n]:(f=n.split("."),h=f.length,t.csp?o=h<6?so(f[0],f[1],f[2],f[3],f[4],u,t):function(n,r){var e=0,o;do o=so(f[e++],f[e++],f[e++],f[e++],f[e++],u,t)(n,r),r=i,n=o;while(e<h);return o}:(e="var p;\n",r(f,function(n,i){st(n,u);e+="if(s == null) return undefined;\ns="+(i?"s":'((k&&k.hasOwnProperty("'+n+'"))?k:s)')+'["'+n+'"];\n'+(t.unwrapPromises?'if (s && s.then) {\n pw("'+u.replace(/(["\r\n])/g,"\\$1")+'");\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n':"")}),e+="return s;",s=new Function("s","k","pw",e),s.toString=nt(e),o=t.unwrapPromises?function(n,t){return s(n,t,wt)}:s),n!=="hasOwnProperty"&&(uu[n]=o),o)}function il(){var t={},n={csp:!1,unwrapPromises:!1,logPromiseWarnings:!0};this.unwrapPromises=function(t){return f(t)?(n.unwrapPromises=!!t,this):n.unwrapPromises};this.logPromiseWarnings=function(t){return f(t)?(n.logPromiseWarnings=t,this):n.logPromiseWarnings};this.$get=["$filter","$sniffer","$log",function(i,r,u){return n.csp=r.csp,wt=function(t){n.logPromiseWarnings&&!yf.hasOwnProperty(t)&&(yf[t]=!0,u.warn("[$parse] Promise found in the expression `"+t+"`. Automatic unwrapping of promises in Angular expressions is deprecated."))},function(r){var u,f,e;switch(typeof r){case"string":return t.hasOwnProperty(r)?t[r]:(f=new pf(n),e=new ai(f,i,n),u=e.parse(r),r!=="hasOwnProperty"&&(t[r]=u),u);case"function":return r;default:return s}}}]}function rl(){this.$get=["$rootScope","$exceptionHandler",function(n,t){return ul(function(t){n.$evalAsync(t)},t)}]}function ul(n,t){function f(n){return n}function h(n){return s(n)}function v(n){var i=u(),f=0,t=o(n)?[]:{};return r(n,function(n,r){f++;e(n).then(function(n){t.hasOwnProperty(r)||(t[r]=n,--f||i.resolve(t))},function(n){t.hasOwnProperty(r)||i.reject(n)})}),f===0&&i.resolve(t),i.promise}var u=function(){var r=[],o,s;return s={resolve:function(t){if(r){var u=r;r=i;o=e(t);u.length&&n(function(){for(var n,t=0,i=u.length;t<i;t++)n=u[t],o.then(n[0],n[1],n[2])})}},reject:function(n){s.resolve(l(n))},notify:function(t){if(r){var i=r;r.length&&n(function(){for(var r,n=0,u=i.length;n<u;n++)r=i[n],r[2](t)})}},promise:{then:function(n,i,e){var s=u(),l=function(i){try{s.resolve((c(n)?n:f)(i))}catch(r){s.reject(r);t(r)}},a=function(n){try{s.resolve((c(i)?i:h)(n))}catch(r){s.reject(r);t(r)}},v=function(n){try{s.notify((c(e)?e:f)(n))}catch(i){t(i)}};return r?r.push([l,a,v]):o.then(l,a,v),s.promise},"catch":function(n){return this.then(null,n)},"finally":function(n){function t(n,t){var i=u();return t?i.resolve(n):i.reject(n),i.promise}function i(i,r){var u=null;try{u=(n||f)()}catch(e){return t(e,!1)}return wr(u)?u.then(function(){return t(i,r)},function(n){return t(n,!1)}):t(i,r)}return this.then(function(n){return i(n,!0)},function(n){return i(n,!1)})}}}},e=function(t){return wr(t)?t:{then:function(i){var r=u();return n(function(){r.resolve(i(t))}),r.promise}}},s=function(n){var t=u();return t.reject(n),t.promise},l=function(i){return{then:function(r,f){var e=u();return n(function(){try{e.resolve((c(f)?f:h)(i))}catch(n){e.reject(n);t(n)}}),e.promise}}},a=function(i,r,o,l){var v=u(),a,w=function(n){try{return(c(r)?r:f)(n)}catch(i){return t(i),s(i)}},y=function(n){try{return(c(o)?o:h)(n)}catch(i){return t(i),s(i)}},p=function(n){try{return(c(l)?l:f)(n)}catch(i){t(i)}};return n(function(){e(i).then(function(n){a||(a=!0,v.resolve(e(n).then(w,y,p)))},function(n){a||(a=!0,v.resolve(y(n)))},function(n){a||v.notify(p(n))})}),v.promise};return{defer:u,reject:s,when:a,all:v}}function fl(){this.$get=["$window","$timeout",function(n,t){var i=n.requestAnimationFrame||n.webkitRequestAnimationFrame||n.mozRequestAnimationFrame,f=n.cancelAnimationFrame||n.webkitCancelAnimationFrame||n.mozCancelAnimationFrame||n.webkitCancelRequestAnimationFrame,r=!!i,u=r?function(n){var t=i(n);return function(){f(t)}}:function(n){var i=t(n,16.66,!1);return function(){t.cancel(i)}};return u.supported=r,u}]}function el(){var t=10,i=y("$rootScope"),n=null;this.digestTtl=function(n){return arguments.length&&(t=n),t};this.$get=["$injector","$exceptionHandler","$parse","$browser",function(u,f,e,o){function v(){this.$id=ar();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this["this"]=this.$root=this;this.$$destroyed=!1;this.$$asyncQueue=[];this.$$postDigestQueue=[];this.$$listeners={};this.$$listenerCount={};this.$$isolateBindings={}}function y(n){if(h.$$phase)throw i("inprog","{0} already in progress",h.$$phase);h.$$phase=n}function l(){h.$$phase=null}function p(n,t){var i=e(n);return tr(i,t),i}function w(n,t,i){do n.$$listenerCount[i]-=t,n.$$listenerCount[i]===0&&delete n.$$listenerCount[i];while(n=n.$parent)}function b(){}v.prototype={constructor:v,$new:function(n){var t;return n?(t=new v,t.$root=this.$root,t.$$asyncQueue=this.$$asyncQueue,t.$$postDigestQueue=this.$$postDigestQueue):(this.$$childScopeClass||(this.$$childScopeClass=function(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$id=ar();this.$$childScopeClass=null},this.$$childScopeClass.prototype=this),t=new this.$$childScopeClass),t["this"]=t,t.$parent=this,t.$$prevSibling=this.$$childTail,this.$$childHead?(this.$$childTail.$$nextSibling=t,this.$$childTail=t):this.$$childHead=this.$$childTail=t,t},$watch:function(t,i,r){var e=this,o=p(t,"watch"),f=e.$$watchers,u={fn:i,last:b,get:o,exp:t,eq:!!r},h,l;return n=null,c(i)||(h=p(i||s,"listener"),u.fn=function(n,t,i){h(i)}),typeof t=="string"&&o.constant&&(l=u.fn,u.fn=function(n,t,i){l.call(this,n,t,i);gi(f,u)}),f||(f=e.$$watchers=[]),f.unshift(u),function(){gi(f,u);n=null}},$watchCollection:function(n,t){function p(){var e,n,o,t;if(i=y(s),a(i))if(bi(i))for(r!==h&&(r=h,f=r.length=0,u++),e=i.length,f!==e&&(u++,r.length=f=e),t=0;t<e;t++)o=r[t]!==r[t]&&i[t]!==i[t],o||r[t]===i[t]||(u++,r[t]=i[t]);else{r!==c&&(r=c={},f=0,u++);e=0;for(n in i)i.hasOwnProperty(n)&&(e++,r.hasOwnProperty(n)?(o=r[n]!==r[n]&&i[n]!==i[n],o||r[n]===i[n]||(u++,r[n]=i[n])):(f++,r[n]=i[n],u++));if(f>e){u++;for(n in r)r.hasOwnProperty(n)&&!i.hasOwnProperty(n)&&(f--,delete r[n])}}else r!==i&&(r=i,u++);return u}function w(){var n,r;if(l?(l=!1,t(i,i,s)):t(i,o,s),v)if(a(i))if(bi(i))for(o=new Array(i.length),n=0;n<i.length;n++)o[n]=i[n];else{o={};for(r in i)lr.call(i,r)&&(o[r]=i[r])}else o=i}var s=this,i,r,o,v=t.length>1,u=0,y=e(n),h=[],c={},l=!0,f=0;return this.$watch(p,w)},$digest:function(){var r,e,s,w,a=this.$$asyncQueue,ut=this.$$postDigestQueue,k,h,d=t,g,u,nt=this,v=[],p,tt,it;y("$digest");o.$$checkUrlChange();n=null;do{for(h=!1,u=nt;a.length;){try{it=a.shift();it.scope.$eval(it.expression)}catch(rt){l();f(rt)}n=null}n:do{if(w=u.$$watchers)for(k=w.length;k--;)try{if(r=w[k],r)if((e=r.get(u))===(s=r.last)||(r.eq?ii(e,s):typeof e=="number"&&typeof s=="number"&&isNaN(e)&&isNaN(s))){if(r===n){h=!1;break n}}else h=!0,n=r,r.last=r.eq?si(e,null):e,r.fn(e,s===b?e:s,u),d<5&&(p=4-d,v[p]||(v[p]=[]),tt=c(r.exp)?"fn: "+(r.exp.name||r.exp.toString()):r.exp,tt+="; newVal: "+et(e)+"; oldVal: "+et(s),v[p].push(tt))}catch(rt){l();f(rt)}if(!(g=u.$$childHead||u!==nt&&u.$$nextSibling))while(u!==nt&&!(g=u.$$nextSibling))u=u.$parent}while(u=g);if((h||a.length)&&!d--){l();throw i("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",t,et(v));}}while(h||a.length);for(l();ut.length;)try{ut.shift()()}catch(rt){f(rt)}},$destroy:function(){if(!this.$$destroyed){var n=this.$parent;(this.$broadcast("$destroy"),this.$$destroyed=!0,this!==h)&&(r(this.$$listenerCount,yu(null,w,this)),n.$$childHead==this&&(n.$$childHead=this.$$nextSibling),n.$$childTail==this&&(n.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=null,this.$$listeners={},this.$$watchers=this.$$asyncQueue=this.$$postDigestQueue=[],this.$destroy=this.$digest=this.$apply=s,this.$on=this.$watch=function(){return s})}},$eval:function(n,t){return e(n)(this,t)},$evalAsync:function(n){h.$$phase||h.$$asyncQueue.length||o.defer(function(){h.$$asyncQueue.length&&h.$digest()});this.$$asyncQueue.push({scope:this,expression:n})},$$postDigest:function(n){this.$$postDigestQueue.push(n)},$apply:function(n){try{return y("$apply"),this.$eval(n)}catch(t){f(t)}finally{l();try{h.$digest()}catch(t){f(t);throw t;}}},$on:function(n,t){var r=this.$$listeners[n],i,u;r||(this.$$listeners[n]=r=[]);r.push(t);i=this;do i.$$listenerCount[n]||(i.$$listenerCount[n]=0),i.$$listenerCount[n]++;while(i=i.$parent);return u=this,function(){r[di(r,t)]=null;w(u,1,n)}},$emit:function(n){var s=[],r,i=this,o=!1,u={name:n,targetScope:i,stopPropagation:function(){o=!0},preventDefault:function(){u.defaultPrevented=!0},defaultPrevented:!1},h=au([u],arguments,1),t,e;do{for(r=i.$$listeners[n]||s,u.currentScope=i,t=0,e=r.length;t<e;t++){if(!r[t]){r.splice(t,1);t--;e--;continue}try{r[t].apply(null,h)}catch(c){f(c)}}if(o)return u;i=i.$parent}while(i);return u},$broadcast:function(n){for(var r=this,t=r,o=r,e={name:n,targetScope:r,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1},h=au([e],arguments,1),u,i,s;t=o;){for(e.currentScope=t,u=t.$$listeners[n]||[],i=0,s=u.length;i<s;i++){if(!u[i]){u.splice(i,1);i--;s--;continue}try{u[i].apply(null,h)}catch(c){f(c)}}if(!(o=t.$$listenerCount[n]&&t.$$childHead||t!==r&&t.$$nextSibling))while(t!==r&&!(o=t.$$nextSibling))t=t.$parent}return e}};var h=new v;return h}]}function ol(){var n=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return f(t)?(n=t,this):n};this.imgSrcSanitizationWhitelist=function(n){return f(n)?(t=n,this):t};this.$get=function(){return function(i,r){var f=r?t:n,u;return(!p||p>=8)&&(u=kt(i).href,u!==""&&!u.match(f))?"unsafe:"+u:i}}}function sl(n){return n.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")}function hl(n){if(n==="self")return n;if(e(n)){if(n.indexOf("***")>-1)throw vt("iwcard","Illegal sequence *** in string matcher.  String: {0}",n);return n=sl(n).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+n+"$")}if(yr(n))return new RegExp("^"+n.source+"$");throw vt("imatcher",'Matchers may only be "self", string patterns or RegExp objects');}function co(n){var t=[];return f(n)&&r(n,function(n){t.push(hl(n))}),t}function cl(){this.SCE_CONTEXTS=tt;var n=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(n=co(t)),n};this.resourceUrlBlacklist=function(n){return arguments.length&&(t=co(n)),t};this.$get=["$injector",function(r){function s(n,t){return n==="self"?lo(t):!!n.exec(t.href)}function h(i){for(var e=kt(i.toString()),f=!1,r=0,u=n.length;r<u;r++)if(s(n[r],e)){f=!0;break}if(f)for(r=0,u=t.length;r<u;r++)if(s(t[r],e)){f=!1;break}return f}function f(n){var t=function(n){this.$$unwrapTrustedValue=function(){return n}};return n&&(t.prototype=new n),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function c(n,t){var r=u.hasOwnProperty(n)?u[n]:null;if(!r)throw vt("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",n,t);if(t===null||t===i||t==="")return t;if(typeof t!="string")throw vt("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",n);return new r(t)}function l(n){return n instanceof e?n.$$unwrapTrustedValue():n}function a(n,t){if(t===null||t===i||t==="")return t;var r=u.hasOwnProperty(n)?u[n]:null;if(r&&t instanceof r)return t.$$unwrapTrustedValue();if(n===tt.RESOURCE_URL){if(h(t))return t;throw vt("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",t.toString());}else if(n===tt.HTML)return o(t);throw vt("unsafe","Attempting to use an unsafe value in a safe context.");}var o=function(){throw vt("unsafe","Attempting to use an unsafe value in a safe context.");},e,u;return r.has("$sanitize")&&(o=r.get("$sanitize")),e=f(),u={},u[tt.HTML]=f(e),u[tt.CSS]=f(e),u[tt.URL]=f(e),u[tt.JS]=f(e),u[tt.RESOURCE_URL]=f(u[tt.URL]),{trustAs:c,getTrusted:a,valueOf:l}}]}function ll(){var n=!0;this.enabled=function(t){return arguments.length&&(n=!!t),n};this.$get=["$parse","$sniffer","$sceDelegate",function(t,i,u){var f;if(n&&i.msie&&i.msieDocumentMode<8)throw vt("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 9 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");f=ft(tt);f.isEnabled=function(){return n};f.trustAs=u.trustAs;f.getTrusted=u.getTrusted;f.valueOf=u.valueOf;n||(f.trustAs=f.getTrusted=function(n,t){return t},f.valueOf=ki);f.parseAs=function(n,i){var r=t(i);return r.literal&&r.constant?r:function(t,i){return f.getTrusted(n,r(t,i))}};var e=f.parseAs,o=f.getTrusted,s=f.trustAs;return r(tt,function(n,t){var i=v(t);f[ur("parse_as_"+i)]=function(t){return e(n,t)};f[ur("get_trusted_"+i)]=function(t){return o(n,t)};f[ur("trust_as_"+i)]=function(t){return s(n,t)}}),f}]}function al(){this.$get=["$window","$document",function(n,t){var s={},h=k((/android (\d+)/.exec(v((n.navigator||{}).userAgent))||[])[1]),w=/Boxee/i.test((n.navigator||{}).userAgent),u=t[0]||{},c=u.documentMode,i,r=u.body&&u.body.style,f=!1,o=!1,a,y;if(r){for(y in r)if(a=/^(Moz|webkit|O|ms)(?=[A-Z])/.exec(y)){i=a[0];i=i.substr(0,1).toUpperCase()+i.substr(1);break}i||(i="WebkitOpacity"in r&&"webkit");f=!!("transition"in r||i+"Transition"in r);o=!!("animation"in r||i+"Animation"in r);!h||f&&o||(f=e(u.body.style.webkitTransition),o=e(u.body.style.webkitAnimation))}return{history:!!(n.history&&n.history.pushState&&!(h<4)&&!w),hashchange:"onhashchange"in n&&(!c||c>7),hasEvent:function(n){if(n=="input"&&p==9)return!1;if(l(s[n])){var t=u.createElement("div");s[n]="on"+n in t}return s[n]},csp:hi(),vendorPrefix:i,transitions:f,animations:o,android:h,msie:p,msieDocumentMode:c}}]}function vl(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(n,t,i,r){function e(e,o,s){var h=i.defer(),c=h.promise,a=f(s)&&!s,l;return l=t.defer(function(){try{h.resolve(e())}catch(t){h.reject(t);r(t)}finally{delete u[c.$$timeoutId]}a||n.$apply()},o),c.$$timeoutId=l,u[l]=h,c}var u={};return e.cancel=function(n){return n&&n.$$timeoutId in u?(u[n.$$timeoutId].reject("canceled"),delete u[n.$$timeoutId],t.defer.cancel(n.$$timeoutId)):!1},e}]}function kt(n){var t=n;return p&&(b.setAttribute("href",t),t=b.href),b.setAttribute("href",t),{href:b.href,protocol:b.protocol?b.protocol.replace(/:$/,""):"",host:b.host,search:b.search?b.search.replace(/^\?/,""):"",hash:b.hash?b.hash.replace(/^#/,""):"",hostname:b.hostname,port:b.port,pathname:b.pathname.charAt(0)==="/"?b.pathname:"/"+b.pathname}}function lo(n){var t=e(n)?kt(n):n;return t.protocol===wf.protocol&&t.host===wf.host}function yl(){this.$get=nt(n)}function ao(n){function t(u,f){if(a(u)){var e={};return r(u,function(n,i){e[i]=t(i,n)}),e}return n.factory(u+i,f)}var i="Filter";this.register=t;this.$get=["$injector",function(n){return function(t){return n.get(t+i)}}];t("currency",vo);t("date",wo);t("filter",pl);t("json",na);t("limitTo",ta);t("lowercase",bo);t("number",yo);t("orderBy",go);t("uppercase",ko)}function pl(){return function(n,t,i){var e,r,u,c,s,f,h;if(!o(n))return n;e=typeof i;r=[];r.check=function(n){for(var t=0;t<r.length;t++)if(!r[t](n))return!1;return!0};e!=="function"&&(i=e==="boolean"&&i?function(n,t){return pi.equals(n,t)}:function(n,t){if(n&&t&&typeof n=="object"&&typeof t=="object"){for(var r in n)if(r.charAt(0)!=="$"&&lr.call(n,r)&&i(n[r],t[r]))return!0;return!1}return t=(""+t).toLowerCase(),(""+n).toLowerCase().indexOf(t)>-1});u=function(n,t){var f,r;if(typeof t=="string"&&t.charAt(0)==="!")return!u(n,t.substr(1));switch(typeof n){case"boolean":case"number":case"string":return i(n,t);case"object":switch(typeof t){case"object":return i(n,t);default:for(f in n)if(f.charAt(0)!=="$"&&u(n[f],t))return!0}return!1;case"array":for(r=0;r<n.length;r++)if(u(n[r],t))return!0;return!1;default:return!1}};switch(typeof t){case"boolean":case"number":case"string":t={$:t};case"object":for(c in t)(function(n){typeof t[n]!="undefined"&&r.push(function(i){return u(n=="$"?i:i&&i[n],t[n])})})(c);break;case"function":r.push(t);break;default:return n}for(s=[],f=0;f<n.length;f++)h=n[f],r.check(h)&&s.push(h);return s}}function vo(n){var t=n.NUMBER_FORMATS;return function(n,i){return l(i)&&(i=t.CURRENCY_SYM),po(n,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,2).replace(/\u00A4/g,i)}}function yo(n){var t=n.NUMBER_FORMATS;return function(n,i){return po(n,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,i)}}function po(n,t,i,r,u){var c,y,k,o,s;if(n==null||!isFinite(n)||a(n))return"";c=n<0;n=Math.abs(n);var h=n+"",e="",v=[],b=!1;if(h.indexOf("e")!==-1&&(y=h.match(/([\d\.]+)e(-?)(\d+)/),y&&y[2]=="-"&&y[3]>u+1?(h="0",n=0):(e=h,b=!0)),b)u>0&&n>-1&&n<1&&(e=n.toFixed(u));else{k=(h.split(bf)[1]||"").length;l(u)&&(u=Math.min(Math.max(t.minFrac,k),t.maxFrac));n=+(Math.round(+(n.toString()+"e"+u)).toString()+"e"+-u);n===0&&(c=!1);o=(""+n).split(bf);s=o[0];o=o[1]||"";var f,p=0,w=t.lgSize,d=t.gSize;if(s.length>=w+d)for(p=s.length-w,f=0;f<p;f++)(p-f)%d==0&&f!==0&&(e+=i),e+=s.charAt(f);for(f=p;f<s.length;f++)(s.length-f)%w==0&&f!==0&&(e+=i),e+=s.charAt(f);while(o.length<u)o+="0";u&&u!=="0"&&(e+=r+o.substr(0,u))}return v.push(c?t.negPre:t.posPre),v.push(e),v.push(c?t.negSuf:t.posSuf),v.join("")}function kf(n,t,i){var r="";for(n<0&&(r="-",n=-n),n=""+n;n.length<t;)n="0"+n;return i&&(n=n.substr(n.length-t)),r+n}function d(n,t,i,r){return i=i||0,function(u){var f=u["get"+n]();return(i>0||f>-i)&&(f+=i),f===0&&i==-12&&(f=12),kf(f,t,r)}}function fu(n,t){return function(i,r){var u=i["get"+n](),f=ni(t?"SHORT"+n:n);return r[f][u]}}function wl(n){var t=-1*n.getTimezoneOffset(),i=t>=0?"+":"";return i+(kf(Math[t>0?"floor":"ceil"](t/60),2)+kf(Math.abs(t%60),2))}function bl(n,t){return n.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function wo(n){function i(n){var i;if(i=n.match(t)){var r=new Date(0),u=0,f=0,e=i[8]?r.setUTCFullYear:r.setFullYear,o=i[8]?r.setUTCHours:r.setHours;i[9]&&(u=k(i[9]+i[10]),f=k(i[9]+i[11]));e.call(r,k(i[1]),k(i[2])-1,k(i[3]));var s=k(i[4]||0)-u,h=k(i[5]||0)-f,c=k(i[6]||0),l=Math.round(parseFloat("0."+(i[7]||0))*1e3);return o.call(r,s,h,c,l),r}return n}var t=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(t,u){var h="",f=[],o,s;if(u=u||"mediumDate",u=n.DATETIME_FORMATS[u]||u,e(t)&&(t=gl.test(t)?k(t):i(t)),vr(t)&&(t=new Date(t)),!pt(t))return t;while(u)s=dl.exec(u),s?(f=au(f,s,1),u=f.pop()):(f.push(u),u=null);return r(f,function(i){o=kl[i];h+=o?o(t,n.DATETIME_FORMATS):i.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),h}}function na(){return function(n){return et(n,!0)}}function ta(){return function(n,t){if(!o(n)&&!e(n))return n;if(t=Math.abs(Number(t))===Infinity?Number(t):k(t),e(n))return t?t>=0?n.slice(0,t):n.slice(t,n.length):"";var u=[],i,r;for(t>n.length?t=n.length:t<-n.length&&(t=-n.length),t>0?(i=0,r=t):(i=n.length+t,r=n.length);i<r;i++)u.push(n[i]);return u}}function go(n){return function(t,i,r){function c(n,t){for(var u,r=0;r<i.length;r++)if(u=i[r](n,t),u!==0)return u;return 0}function s(n,t){return nr(t)?function(t,i){return n(i,t)}:n}function h(n,t){var i=typeof n,r=typeof t;return i==r?(pt(n)&&pt(t)&&(n=n.valueOf(),t=t.valueOf()),i=="string"&&(n=n.toLowerCase(),t=t.toLowerCase()),n===t)?0:n<t?-1:1:i<r?-1:1}var f,u;if(!bi(t)||!i)return t;for(i=o(i)?i:[i],i=bs(i,function(t){var r=!1,i=t||ki,u;return e(t)&&((t.charAt(0)=="+"||t.charAt(0)=="-")&&(r=t.charAt(0)=="-",t=t.substring(1)),i=n(t),i.constant)?(u=i(),s(function(n,t){return h(n[u],t[u])},r)):s(function(n,t){return h(i(n),i(t))},r)}),f=[],u=0;u<t.length;u++)f.push(t[u]);return f.sort(s(c,r))}}function dt(n){return c(n)&&(n={link:n}),n.restrict=n.restrict||"AC",nt(n)}function ts(n,t,i,u){function e(t,i){i=i?"-"+kr(i,"-"):"";u.setClass(n,(t?su:hu)+i,(t?hu:su)+i)}var f=this,o=n.parent().controller("form")||cr,s=0,h=f.$error={},c=[];f.$name=t.name||t.ngForm;f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;o.$addControl(f);n.addClass(vi);e(!0);f.$addControl=function(n){ui(n.$name,"input");c.push(n);n.$name&&(f[n.$name]=n)};f.$removeControl=function(n){n.$name&&f[n.$name]===n&&delete f[n.$name];r(h,function(t,i){f.$setValidity(i,!0,n)});gi(c,n)};f.$setValidity=function(n,t,i){var r=h[n];if(t)r&&(gi(r,i),r.length||(s--,s||(e(t),f.$valid=!0,f.$invalid=!1),h[n]=!1,e(!0,n),o.$setValidity(n,!0,f)));else{if(s||e(t),r){if(ks(r,i))return}else h[n]=r=[],s++,e(!1,n),o.$setValidity(n,!1,f);r.push(i);f.$valid=!1;f.$invalid=!0}};f.$setDirty=function(){u.removeClass(n,vi);u.addClass(n,cu);f.$dirty=!0;f.$pristine=!1;o.$setDirty()};f.$setPristine=function(){u.removeClass(n,cu);u.addClass(n,vi);f.$dirty=!1;f.$pristine=!0;r(c,function(n){n.$setPristine()})}}function gt(n,t,r,u){return n.$setValidity(t,r),r?u:i}function us(n,t){var i,r;if(t)for(i=0;i<t.length;++i)if(r=t[i],n[r])return!0;return!1}function oa(n,t,i,r,u){if(a(u)){n.$$hasNativeValidators=!0;var f=function(f){if(!n.$error[t]&&!us(u,r)&&us(u,i)){n.$setValidity(t,!1);return}return f};n.$parsers.push(f)}}function ou(n,t,i,r,u,f){var nt=t.prop(hs),tt=t[0].placeholder,ut={},ft=v(t[0].type),s,o,l,a,e,h,c,w,it,b,rt,d;if(r.$$validityState=nt,!u.android){s=!1;t.on("compositionstart",function(){s=!0});t.on("compositionend",function(){s=!1;o()})}if(o=function(u){var f,e;if(!s){if(f=t.val(),p&&(u||ut).type==="input"&&t[0].placeholder!==tt){tt=t[0].placeholder;return}ft!=="password"&&nr(i.ngTrim||"T")&&(f=g(f));e=nt&&r.$$hasNativeValidators;(r.$viewValue!==f||f===""&&e)&&(n.$root.$$phase?r.$setViewValue(f):n.$apply(function(){r.$setViewValue(f)}))}},u.hasEvent("input"))t.on("input",o);else{a=function(){l||(l=f.defer(function(){o();l=null}))};t.on("keydown",function(n){var t=n.keyCode;t===91||15<t&&t<19||37<=t&&t<=40||a()});if(u.hasEvent("paste"))t.on("paste cut",a)}t.on("change",o);r.$render=function(){t.val(r.$isEmpty(r.$viewValue)?"":r.$viewValue)};e=i.ngPattern;e&&(w=function(n,t){return gt(r,"pattern",r.$isEmpty(t)||n.test(t),t)},c=e.match(/^\/(.*)\/([gim]*)$/),c?(e=new RegExp(c[1],c[2]),h=function(n){return w(e,n)}):h=function(i){var r=n.$eval(e);if(!r||!r.test)throw y("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",e,r,ot(t));return w(r,i)},r.$formatters.push(h),r.$parsers.push(h));i.ngMinlength&&(it=k(i.ngMinlength),b=function(n){return gt(r,"minlength",r.$isEmpty(n)||n.length>=it,n)},r.$parsers.push(b),r.$formatters.push(b));i.ngMaxlength&&(rt=k(i.ngMaxlength),d=function(n){return gt(r,"maxlength",r.$isEmpty(n)||n.length<=rt,n)},r.$parsers.push(d),r.$formatters.push(d))}function sa(n,t,r,u,f,e){var o,s;ou(n,t,r,u,f,e);u.$parsers.push(function(n){var t=u.$isEmpty(n);return t||ea.test(n)?(u.$setValidity("number",!0),n===""?null:t?n:parseFloat(n)):(u.$setValidity("number",!1),i)});oa(u,"number",fs,null,u.$$validityState);u.$formatters.push(function(n){return u.$isEmpty(n)?"":""+n});r.min&&(o=function(n){var t=parseFloat(r.min);return gt(u,"min",u.$isEmpty(n)||n>=t,n)},u.$parsers.push(o),u.$formatters.push(o));r.max&&(s=function(n){var t=parseFloat(r.max);return gt(u,"max",u.$isEmpty(n)||n<=t,n)},u.$parsers.push(s),u.$formatters.push(s));u.$formatters.push(function(n){return gt(u,"number",u.$isEmpty(n)||vr(n),n)})}function ha(n,t,i,r,u,f){ou(n,t,i,r,u,f);var e=function(n){return gt(r,"url",r.$isEmpty(n)||ua.test(n),n)};r.$formatters.push(e);r.$parsers.push(e)}function ca(n,t,i,r,u,f){ou(n,t,i,r,u,f);var e=function(n){return gt(r,"email",r.$isEmpty(n)||fa.test(n),n)};r.$formatters.push(e);r.$parsers.push(e)}function la(n,t,i,r){l(i.name)&&t.attr("name",ar());t.on("click",function(){t[0].checked&&n.$apply(function(){r.$setViewValue(i.value)})});r.$render=function(){var n=i.value;t[0].checked=n==r.$viewValue};i.$observe("value",r.$render)}function aa(n,t,i,r){var u=i.ngTrueValue,f=i.ngFalseValue;e(u)||(u=!0);e(f)||(f=!1);t.on("click",function(){n.$apply(function(){r.$setViewValue(t[0].checked)})});r.$render=function(){t[0].checked=r.$viewValue};r.$isEmpty=function(n){return n!==u};r.$formatters.push(function(n){return n===u});r.$parsers.push(function(n){return n?u:f})}function df(n,t){return n="ngClass"+n,["$animate",function(i){function f(n,t){var f=[],i,u,r;n:for(i=0;i<n.length;i++){for(u=n[i],r=0;r<t.length;r++)if(u==t[r])continue n;f.push(u)}return f}function u(n){if(o(n))return n;if(e(n))return n.split(" ");if(a(n)){var t=[];return r(n,function(n,i){n&&(t=t.concat(i.split(" ")))}),t}return n}return{restrict:"AC",link:function(e,o,s){function l(n){var t=c(n,1);s.$addClass(t)}function v(n){var t=c(n,-1);s.$removeClass(t)}function c(n,t){var i=o.data("$classCounts")||{},u=[];return r(n,function(n){(t>0||i[n])&&(i[n]=(i[n]||0)+t,i[n]===+(t>0)&&u.push(n))}),o.data("$classCounts",i),u.join(" ")}function y(n,t){var r=f(t,n),u=f(n,t);u=c(u,-1);r=c(r,1);r.length===0?i.removeClass(o,u):u.length===0?i.addClass(o,r):i.setClass(o,r,u)}function a(n){var i,r;(t===!0||e.$index%2===t)&&(i=u(n||[]),h?ii(n,h)||(r=u(h),y(r,i)):l(i));h=ft(n)}var h;e.$watch(s[n],a,!0);s.$observe("class",function(){a(e.$eval(s[n]))});n!=="ngClass"&&e.$watch("$index",function(i,r){var o=i&1,f;o!==(r&1)&&(f=u(e.$eval(s[n])),o===t?l(f):v(f))})}}}]}var hs="validity",v=function(n){return e(n)?n.toLowerCase():n},lr=Object.prototype.hasOwnProperty,ni=function(n){return e(n)?n.toUpperCase():n},cs=function(n){return e(n)?n.replace(/[A-Z]/g,function(n){return String.fromCharCode(n.charCodeAt(0)|32)}):n},ls=function(n){return e(n)?n.replace(/[a-z]/g,function(n){return String.fromCharCode(n.charCodeAt(0)&-33)}):n},o,g,hi,oe,he,fi,fr,ef,we,be,rt,de,sf,ut,yf,wt,ai,uu,vt,tt,b,wf,bf,bo,ko,ns,eu,cr,fs;"i"!=="I".toLowerCase()&&(v=cs,ni=ls);var p,u,yt,lu=[].slice,as=[].push,ti=Object.prototype.toString,yi=y("ng"),pi=n.angular||(n.angular={}),wi,ei,ht=["0","0","0"];p=k((/msie (\d+)/.exec(v(navigator.userAgent))||[])[1]);isNaN(p)&&(p=k((/trident\/.*; rv:(\d+)/.exec(v(navigator.userAgent))||[])[1]));s.$inject=[];ki.$inject=[];o=function(){return c(Array.isArray)?Array.isArray:function(n){return ti.call(n)==="[object Array]"}}();g=function(){return String.prototype.trim?function(n){return e(n)?n.trim():n}:function(n){return e(n)?n.replace(/^\s\s*/,"").replace(/\s\s*$/,""):n}}();ei=p<9?function(n){return n=n.nodeName?n:n[0],n.scopeName&&n.scopeName!="HTML"?ni(n.scopeName+":"+n.nodeName):n.nodeName}:function(n){return n.nodeName?n.nodeName:n[0].nodeName};hi=function(){if(f(hi.isActive_))return hi.isActive_;var n=!!(t.querySelector("[ng-csp]")||t.querySelector("[data-ng-csp]"));if(!n)try{new Function("")}catch(i){n=!0}return hi.isActive_=n};oe=/[A-Z]/g;he={full:"1.2.25",major:1,minor:2,dot:25,codeName:"hypnotic-gesticulation"};w.expando="ng339";var ir=w.cache={},rh=1,dr=n.document.addEventListener?function(n,t,i){n.addEventListener(t,i,!1)}:function(n,t,i){n.attachEvent("on"+t,i)},rr=n.document.removeEventListener?function(n,t,i){n.removeEventListener(t,i,!1)}:function(n,t,i){n.detachEvent("on"+t,i)},cy=w._data=function(n){return this.cache[n[this.expando]]||{}};var fh=/([\:\-\_]+(.))/g,eh=/^moz([A-Z])/,ku=y("jqLite");var oh=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,sh=/<|&#?\w+;/,hh=/<([\w:]+)/,ch=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,it={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,"",""]};it.optgroup=it.option;it.tbody=it.tfoot=it.colgroup=it.caption=it.thead;it.th=it.td;fi=w.prototype={ready:function(i){function r(){u||(u=!0,i())}var u=!1;if(t.readyState==="complete")setTimeout(r);else{this.on("DOMContentLoaded",r);w(n).on("load",r)}},toString:function(){var n=[];return r(this,function(t){n.push(""+t)}),"["+n.join(", ")+"]"},eq:function(n){return n>=0?u(this[n]):u(this[this.length+n])},length:0,push:as,sort:[].sort,splice:[].splice};fr={};r("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(n){fr[v(n)]=n});ef={};r("input,select,option,textarea,button,form,details".split(","),function(n){ef[ni(n)]=!0});r({data:rf,removeData:tf},function(n,t){w[t]=n});r({data:rf,inheritedData:tu,scope:function(n){return u.data(n,"$scope")||tu(n.parentNode||n,["$isolateScope","$scope"])},isolateScope:function(n){return u.data(n,"$isolateScope")||u.data(n,"$isolateScopeNoTemplate")},controller:le,injector:function(n){return tu(n,"$injector")},removeAttr:function(n,t){n.removeAttribute(t)},hasClass:uf,css:function(n,t,r){if(t=ur(t),f(r))n.style[t]=r;else{var u;return p<=8&&(u=n.currentStyle&&n.currentStyle[t],u===""&&(u="auto")),u=u||n.style[t],p<=8&&(u=u===""?i:u),u}},attr:function(n,t,r){var u=v(t),e;if(fr[u])if(f(r))r?(n[t]=!0,n.setAttribute(t,u)):(n[t]=!1,n.removeAttribute(u));else return n[t]||(n.attributes.getNamedItem(t)||s).specified?u:i;else if(f(r))n.setAttribute(t,r);else if(n.getAttribute)return e=n.getAttribute(t,2),e===null?i:e},prop:function(n,t,i){if(f(i))n[t]=i;else return n[t]},text:function(){function t(t,i){var r=n[t.nodeType];if(l(i))return r?t[r]:"";t[r]=i}var n=[];return p<9?(n[1]="innerText",n[3]="nodeValue"):n[1]=n[3]="textContent",t.$dv="",t}(),val:function(n,t){if(l(t)){if(ei(n)==="SELECT"&&n.multiple){var i=[];return r(n.options,function(n){n.selected&&i.push(n.value||n.text)}),i.length===0?null:i}return n.value}n.value=t},html:function(n,t){if(l(t))return n.innerHTML;for(var i=0,r=n.childNodes;i<r.length;i++)ci(r[i]);n.innerHTML=t},empty:ae},function(n,t){w.prototype[t]=function(t,r){var u,s,e=this.length,f,c,o,h;if(n!==ae&&(n.length==2&&n!==uf&&n!==le?t:r)===i){if(a(t)){for(u=0;u<e;u++)if(n===rf)n(this[u],t);else for(s in t)n(this[u],s,t[s]);return this}for(f=n.$dv,c=f===i?Math.min(e,1):e,o=0;o<c;o++)h=n(this[o],t,r),f=f?f+h:h;return f}for(u=0;u<e;u++)n(this[u],t,r);return this}});r({removeData:tf,dealoc:ci,on:function yh(n,i,u,e){if(f(e))throw ku("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");var o=ct(n,"events"),s=ct(n,"handle");o||ct(n,"events",o={});s||ct(n,"handle",s=vh(n,o));r(i.split(" "),function(i){var r=o[i],f,e;r||(i=="mouseenter"||i=="mouseleave"?(f=t.body.contains||t.body.compareDocumentPosition?function(n,t){var r=n.nodeType===9?n.documentElement:n,i=t&&t.parentNode;return n===i||!!(i&&i.nodeType===1&&(r.contains?r.contains(i):n.compareDocumentPosition&&n.compareDocumentPosition(i)&16))}:function(n,t){if(t)while(t=t.parentNode)if(t===n)return!0;return!1},o[i]=[],e={mouseleave:"mouseout",mouseenter:"mouseover"},yh(n,e[i],function(n){var r=this,t=n.relatedTarget;t&&(t===r||f(r,t))||s(n,i)})):(dr(n,i,s),o[i]=[]),r=o[i]);r.push(u)})},off:ce,one:function(n,t,i){n=u(n);n.on(t,function r(){n.off(t,i);n.off(t,r)});n.on(t,i)},replaceWith:function(n,t){var i,u=n.parentNode;ci(n);r(new w(t),function(t){i?u.insertBefore(t,i.nextSibling):u.replaceChild(t,n);i=t})},children:function(n){var t=[];return r(n.childNodes,function(n){n.nodeType===1&&t.push(n)}),t},contents:function(n){return n.contentDocument||n.childNodes||[]},append:function(n,t){r(new w(t),function(t){(n.nodeType===1||n.nodeType===11)&&n.appendChild(t)})},prepend:function(n,t){if(n.nodeType===1){var i=n.firstChild;r(new w(t),function(t){n.insertBefore(t,i)})}},wrap:function(n,t){t=u(t)[0];var i=n.parentNode;i&&i.replaceChild(t,n);t.appendChild(n)},remove:function(n){ci(n);var t=n.parentNode;t&&t.removeChild(n)},after:function(n,t){var i=n,u=n.parentNode;r(new w(t),function(n){u.insertBefore(n,i.nextSibling);i=n})},addClass:nu,removeClass:gr,toggleClass:function(n,t,i){t&&r(t.split(" "),function(t){var r=i;l(r)&&(r=!uf(n,t));(r?nu:gr)(n,t)})},parent:function(n){var t=n.parentNode;return t&&t.nodeType!==11?t:null},next:function(n){if(n.nextElementSibling)return n.nextElementSibling;for(var t=n.nextSibling;t!=null&&t.nodeType!==1;)t=t.nextSibling;return t},find:function(n,t){return n.getElementsByTagName?n.getElementsByTagName(t):[]},clone:nf,triggerHandler:function(n,t,i){var u,f,e,o=t.type||t,c=(ct(n,"events")||{})[o];c&&(u={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopPropagation:s,type:o,target:n},t.type&&(u=h(u,t)),f=ft(c),e=i?[u].concat(i):[u],r(f,function(t){t.apply(n,e)}))}},function(n,t){w.prototype[t]=function(t,i,r){for(var e,o=0;o<this.length;o++)l(e)?(e=n(this[o],t,i,r),f(e)&&(e=u(e))):ff(e,n(this[o],t,i,r));return f(e)?e:this};w.prototype.bind=w.prototype.on;w.prototype.unbind=w.prototype.off});er.prototype={put:function(n,t){this[li(n,this.nextUid)]=t},get:function(n){return this[li(n,this.nextUid)]},remove:function(n){var t=this[n=li(n,this.nextUid)];return delete this[n],t}};var ph=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,wh=/,/,bh=/^\s*(_?)(\S+?)\1\s*$/,kh=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,or=y("$injector");we=y("$animate");be=["$provide",function(n){this.$$selectors={};this.register=function(t,i){var r=t+"-animation";if(t&&t.charAt(0)!=".")throw we("notcsel","Expecting class selector starting with '.' got '{0}'.",t);this.$$selectors[t.substr(1)]=r;n.factory(r,i)};this.classNameFilter=function(n){return arguments.length===1&&(this.$$classNameFilter=n instanceof RegExp?n:null),this.$$classNameFilter};this.$get=["$timeout","$$asyncCallback",function(n,t){function i(n){n&&t(n)}return{enter:function(n,t,r,u){r?r.after(n):(t&&t[0]||(t=r.parent()),t.append(n));i(u)},leave:function(n,t){n.remove();i(t)},move:function(n,t,i,r){this.enter(n,t,i,r)},addClass:function(n,t,u){t=e(t)?t:o(t)?t.join(" "):"";r(n,function(n){nu(n,t)});i(u)},removeClass:function(n,t,u){t=e(t)?t:o(t)?t.join(" "):"";r(n,function(n){gr(n,t)});i(u)},setClass:function(n,t,u,f){r(n,function(n){nu(n,t);gr(n,u)});i(f)},enabled:s}}]}];rt=y("$compile");ke.$inject=["$provide","$$sanitizeUriProvider"];de=/^(x[\:\-_]|data[\:\-_])/i;sf=y("$interpolate");var yc=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,pc={http:80,https:443,ftp:21},hf=y("$location");vf.prototype=af.prototype=fo.prototype={$$html5:!1,$$replace:!1,absUrl:iu("$$absUrl"),url:function(n){if(l(n))return this.$$url;var t=yc.exec(n);return t[1]&&this.path(decodeURIComponent(t[1])),(t[2]||t[1])&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:iu("$$protocol"),host:iu("$$host"),port:iu("$$port"),path:eo("$$path",function(n){return n=n?n.toString():"",n.charAt(0)=="/"?n:"/"+n}),search:function(n,t){switch(arguments.length){case 0:return this.$$search;case 1:if(e(n)||vr(n))n=n.toString(),this.$$search=fe(n);else if(a(n))r(n,function(t,i){t==null&&delete n[i]}),this.$$search=n;else throw hf("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");break;default:l(t)||t===null?delete this.$$search[n]:this.$$search[n]=t}return this.$$compose(),this},hash:eo("$$hash",function(n){return n?n.toString():""}),replace:function(){return this.$$replace=!0,this}};ut=y("$parse");yf={};var dc=Function.prototype.call,gc=Function.prototype.apply,oo=Function.prototype.bind;var hr={"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:s,"+":function(n,t,r,u){return(r=r(n,t),u=u(n,t),f(r))?f(u)?r+u:r:f(u)?u:i},"-":function(n,t,i,r){return i=i(n,t),r=r(n,t),(f(i)?i:0)-(f(r)?r:0)},"*":function(n,t,i,r){return i(n,t)*r(n,t)},"/":function(n,t,i,r){return i(n,t)/r(n,t)},"%":function(n,t,i,r){return i(n,t)%r(n,t)},"^":function(n,t,i,r){return i(n,t)^r(n,t)},"=":s,"===":function(n,t,i,r){return i(n,t)===r(n,t)},"!==":function(n,t,i,r){return i(n,t)!==r(n,t)},"==":function(n,t,i,r){return i(n,t)==r(n,t)},"!=":function(n,t,i,r){return i(n,t)!=r(n,t)},"<":function(n,t,i,r){return i(n,t)<r(n,t)},">":function(n,t,i,r){return i(n,t)>r(n,t)},"<=":function(n,t,i,r){return i(n,t)<=r(n,t)},">=":function(n,t,i,r){return i(n,t)>=r(n,t)},"&&":function(n,t,i,r){return i(n,t)&&r(n,t)},"||":function(n,t,i,r){return i(n,t)||r(n,t)},"&":function(n,t,i,r){return i(n,t)&r(n,t)},"|":function(n,t,i,r){return r(n,t)(n,t,i(n,t))},"!":function(n,t,i){return!i(n,t)}},tl={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},pf=function(n){this.options=n};pf.prototype={constructor:pf,lex:function(n){for(this.text=n,this.index=0,this.ch=i,this.lastCh=":",this.tokens=[];this.index<this.text.length;){if(this.ch=this.text.charAt(this.index),this.is("\"'"))this.readString(this.ch);else if(this.isNumber(this.ch)||this.is(".")&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(this.ch))this.readIdent();else if(this.is("(){}[].,;:?"))this.tokens.push({index:this.index,text:this.ch}),this.index++;else if(this.isWhitespace(this.ch)){this.index++;continue}else{var t=this.ch+this.peek(),r=t+this.peek(2),u=hr[this.ch],f=hr[t],e=hr[r];e?(this.tokens.push({index:this.index,text:r,fn:e}),this.index+=3):f?(this.tokens.push({index:this.index,text:t,fn:f}),this.index+=2):u?(this.tokens.push({index:this.index,text:this.ch,fn:u}),this.index+=1):this.throwError("Unexpected next character ",this.index,this.index+1)}this.lastCh=this.ch}return this.tokens},is:function(n){return n.indexOf(this.ch)!==-1},was:function(n){return n.indexOf(this.lastCh)!==-1},peek:function(n){var t=n||1;return this.index+t<this.text.length?this.text.charAt(this.index+t):!1},isNumber:function(n){return"0"<=n&&n<="9"},isWhitespace:function(n){return n===" "||n==="\r"||n==="\t"||n==="\n"||n==='\v'||n===" "},isIdent:function(n){return"a"<=n&&n<="z"||"A"<=n&&n<="Z"||"_"===n||n==="$"},isExpOperator:function(n){return n==="-"||n==="+"||this.isNumber(n)},throwError:function(n,t,i){i=i||this.index;var r=f(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,i)+"]":" "+i;throw ut("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",n,r,this.text);},readNumber:function(){for(var n="",r=this.index,t,i;this.index<this.text.length;){if(t=v(this.text.charAt(this.index)),t=="."||this.isNumber(t))n+=t;else if(i=this.peek(),t=="e"&&this.isExpOperator(i))n+=t;else if(this.isExpOperator(t)&&i&&this.isNumber(i)&&n.charAt(n.length-1)=="e")n+=t;else if(!this.isExpOperator(t)||i&&this.isNumber(i)||n.charAt(n.length-1)!="e")break;else this.throwError("Invalid exponent");this.index++}n=1*n;this.tokens.push({index:r,text:n,literal:!0,constant:!0,fn:function(){return n}})},readIdent:function(){for(var o=this,n="",f=this.index,i,u,e,t,r,s;this.index<this.text.length;){if(t=this.text.charAt(this.index),t==="."||this.isIdent(t)||this.isNumber(t))t==="."&&(i=this.index),n+=t;else break;this.index++}if(i)for(u=this.index;u<this.text.length;){if(t=this.text.charAt(u),t==="("){e=n.substr(i-f+1);n=n.substr(0,i-f);this.index=u;break}if(this.isWhitespace(t))u++;else break}r={index:f,text:n};hr.hasOwnProperty(n)?(r.fn=hr[n],r.literal=!0,r.constant=!0):(s=ho(n,this.options,this.text),r.fn=h(function(n,t){return s(n,t)},{assign:function(t,i){return ru(t,n,i,o.text,o.options)}}));this.tokens.push(r);e&&(this.tokens.push({index:i,text:"."}),this.tokens.push({index:i+1,text:e}))},readString:function(n){var f=this.index,t,r,o;this.index++;for(var i="",e=n,u=!1;this.index<this.text.length;){if(t=this.text.charAt(this.index),e+=t,u)t==="u"?(r=this.text.substring(this.index+1,this.index+5),r.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+r+"]"),this.index+=4,i+=String.fromCharCode(parseInt(r,16))):(o=tl[t],i=i+(o||t)),u=!1;else if(t==="\\")u=!0;else{if(t===n){this.index++;this.tokens.push({index:f,text:e,string:i,literal:!0,constant:!0,fn:function(){return i}});return}i+=t}this.index++}this.throwError("Unterminated quote",f)}};ai=function(n,t,i){this.lexer=n;this.$filter=t;this.options=i};ai.ZERO=h(function(){return 0},{constant:!0});ai.prototype={constructor:ai,parse:function(n){this.text=n;this.tokens=this.lexer.lex(n);var t=this.statements();return this.tokens.length!==0&&this.throwError("is an unexpected token",this.tokens[0]),t.literal=!!t.literal,t.constant=!!t.constant,t},primary:function(){var n,t,i,r;for(this.expect("(")?(n=this.filterChain(),this.consume(")")):this.expect("[")?n=this.arrayDeclaration():this.expect("{")?n=this.object():(t=this.expect(),n=t.fn,n||this.throwError("not a primary expression",t),n.literal=!!t.literal,n.constant=!!t.constant);i=this.expect("(","[",".");)i.text==="("?(n=this.functionCall(n,r),r=null):i.text==="["?(r=n,n=this.objectIndex(n)):i.text==="."?(r=n,n=this.fieldAccess(n)):this.throwError("IMPOSSIBLE");return n},throwError:function(n,t){throw ut("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,n,t.index+1,this.text,this.text.substring(t.index));},peekToken:function(){if(this.tokens.length===0)throw ut("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(n,t,i,r){if(this.tokens.length>0){var f=this.tokens[0],u=f.text;if(u===n||u===t||u===i||u===r||!n&&!t&&!i&&!r)return f}return!1},expect:function(n,t,i,r){var u=this.peek(n,t,i,r);return u?(this.tokens.shift(),u):!1},consume:function(n){this.expect(n)||this.throwError("is unexpected, expecting ["+n+"]",this.peek())},unaryFn:function(n,t){return h(function(i,r){return n(i,r,t)},{constant:t.constant})},ternaryFn:function(n,t,i){return h(function(r,u){return n(r,u)?t(r,u):i(r,u)},{constant:n.constant&&t.constant&&i.constant})},binaryFn:function(n,t,i){return h(function(r,u){return t(r,u,n,i)},{constant:n.constant&&i.constant})},statements:function(){for(var n=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&n.push(this.filterChain()),!this.expect(";"))return n.length===1?n[0]:function(t,i){for(var u,f,r=0;r<n.length;r++)u=n[r],u&&(f=u(t,i));return f}},filterChain:function(){for(var n=this.expression(),t;;)if(t=this.expect("|"))n=this.binaryFn(n,t.fn,this.filter());else return n},filter:function(){for(var t=this.expect(),r=this.$filter(t.text),n=[],i;;)if(t=this.expect(":"))n.push(this.expression());else return i=function(t,i,u){for(var e=[u],f=0;f<n.length;f++)e.push(n[f](t,i));return r.apply(t,e)},function(){return i}},expression:function(){return this.assignment()},assignment:function(){var n=this.ternary(),i,t;return(t=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,t.index)+"] can not be assigned to",t),i=this.ternary(),function(t,r){return n.assign(t,i(t,r),r)}):n},ternary:function(){var t=this.logicalOR(),i,n;if(n=this.expect("?")){if(i=this.assignment(),n=this.expect(":"))return this.ternaryFn(t,i,this.assignment());this.throwError("expected :",n)}else return t},logicalOR:function(){for(var n=this.logicalAND(),t;;)if(t=this.expect("||"))n=this.binaryFn(n,t.fn,this.logicalAND());else return n},logicalAND:function(){var n=this.equality(),t;return(t=this.expect("&&"))&&(n=this.binaryFn(n,t.fn,this.logicalAND())),n},equality:function(){var n=this.relational(),t;return(t=this.expect("==","!=","===","!=="))&&(n=this.binaryFn(n,t.fn,this.equality())),n},relational:function(){var n=this.additive(),t;return(t=this.expect("<",">","<=",">="))&&(n=this.binaryFn(n,t.fn,this.relational())),n},additive:function(){for(var n=this.multiplicative(),t;t=this.expect("+","-");)n=this.binaryFn(n,t.fn,this.multiplicative());return n},multiplicative:function(){for(var n=this.unary(),t;t=this.expect("*","/","%");)n=this.binaryFn(n,t.fn,this.unary());return n},unary:function(){var n;return this.expect("+")?this.primary():(n=this.expect("-"))?this.binaryFn(ai.ZERO,n.fn,this.unary()):(n=this.expect("!"))?this.unaryFn(n.fn,this.unary()):this.primary()},fieldAccess:function(n){var t=this,i=this.expect().text,r=ho(i,this.options,this.text);return h(function(t,i,u){return r(u||n(t,i))},{assign:function(r,u,f){var e=n(r,f);return e||n.assign(r,e={}),ru(e,i,u,t.text,t.options)}})},objectIndex:function(n){var t=this,r=this.expression();return this.consume("]"),h(function(u,f){var s=n(u,f),h=r(u,f),e,o;return(st(h,t.text),!s)?i:(e=bt(s[h],t.text),e&&e.then&&t.options.unwrapPromises&&(o=e,"$$v"in e||(o.$$v=i,o.then(function(n){o.$$v=n})),e=e.$$v),e)},{assign:function(i,u,f){var o=st(r(i,f),t.text),e=bt(n(i,f),t.text);return e||n.assign(i,e={}),e[o]=u}})},functionCall:function(n,t){var r=[],i;if(this.peekToken().text!==")")do r.push(this.expression());while(this.expect(","));return this.consume(")"),i=this,function(u,f){for(var o,l,e=[],h=t?t(u,f):u,c=0;c<r.length;c++)e.push(bt(r[c](u,f),i.text));return o=n(u,f,h)||s,bt(h,i.text),nl(o,i.text),l=o.apply?o.apply(h,e):o(e[0],e[1],e[2],e[3],e[4]),bt(l,i.text)}},arrayDeclaration:function(){var n=[],i=!0,t;if(this.peekToken().text!=="]")do{if(this.peek("]"))break;t=this.expression();n.push(t);t.constant||(i=!1)}while(this.expect(","));return this.consume("]"),h(function(t,i){for(var u=[],r=0;r<n.length;r++)u.push(n[r](t,i));return u},{literal:!0,constant:i})},object:function(){var n=[],r=!0,t,u,i;if(this.peekToken().text!=="}")do{if(this.peek("}"))break;t=this.expect();u=t.string||t.text;this.consume(":");i=this.expression();n.push({key:u,value:i});i.constant||(r=!1)}while(this.expect(","));return this.consume("}"),h(function(t,i){for(var u,f={},r=0;r<n.length;r++)u=n[r],f[u.key]=u.value(t,i);return f},{literal:!0,constant:r})}};uu={};vt=y("$sce");tt={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"};b=t.createElement("a");wf=kt(n.location.href,!0);ao.$inject=["$provide"];vo.$inject=["$locale"];yo.$inject=["$locale"];bf=".";var kl={yyyy:d("FullYear",4),yy:d("FullYear",2,0,!0),y:d("FullYear",1),MMMM:fu("Month"),MMM:fu("Month",!0),MM:d("Month",2,1),M:d("Month",1,1),dd:d("Date",2),d:d("Date",1),HH:d("Hours",2),H:d("Hours",1),hh:d("Hours",2,-12),h:d("Hours",1,-12),mm:d("Minutes",2),m:d("Minutes",1),ss:d("Seconds",2),s:d("Seconds",1),sss:d("Milliseconds",3),EEEE:fu("Day"),EEE:fu("Day",!0),a:bl,Z:wl},dl=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,gl=/^\-?\d+$/;wo.$inject=["$locale"];bo=nt(v);ko=nt(ni);go.$inject=["$parse"];ns=nt({restrict:"E",compile:function(n,i){return p<=8&&(i.href||i.name||i.$set("href",""),n.append(t.createComment("IE fix"))),!i.href&&!i.xlinkHref&&!i.name?function(n,t){var i=ti.call(t.prop("href"))==="[object SVGAnimatedString]"?"xlink:href":"href";t.on("click",function(n){t.attr(i)||n.preventDefault()})}:void 0}});eu={};r(fr,function(n,t){if(n!="multiple"){var i=lt("ng-"+t);eu[i]=function(){return{priority:100,link:function(n,r,u){n.$watch(u[i],function(n){u.$set(t,!!n)})}}}}});r(["src","srcset","href"],function(n){var t=lt("ng-"+n);eu[t]=function(){return{priority:99,link:function(i,r,u){var e=n,f=n;n==="href"&&ti.call(r.prop("href"))==="[object SVGAnimatedString]"&&(f="xlinkHref",u.$attr[f]="xlink:href",e=null);u.$observe(t,function(t){if(!t){n==="href"&&u.$set(f,null);return}u.$set(f,t);p&&e&&r.prop(e,u[f])})}}}});cr={$addControl:s,$removeControl:s,$setValidity:s,$setDirty:s,$setPristine:s};ts.$inject=["$element","$attrs","$scope","$animate"];var is=function(n){return["$timeout",function(t){return{name:"form",restrict:n?"EAC":"E",controller:ts,compile:function(){return{pre:function(n,r,u,f){var o,s,e;if(!u.action){o=function(n){n.preventDefault?n.preventDefault():n.returnValue=!1};dr(r[0],"submit",o);r.on("$destroy",function(){t(function(){rr(r[0],"submit",o)},0,!1)})}if(s=r.parent().controller("form"),e=u.name||u.ngForm,e&&ru(n,e,f,e),s)r.on("$destroy",function(){s.$removeControl(f);e&&ru(n,e,i,e);h(f,cr)})}}}}}]},ia=is(),ra=is(!0),ua=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,fa=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,ea=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,rs={text:ou,number:sa,url:ha,email:ca,radio:la,checkbox:aa,hidden:s,button:s,submit:s,reset:s,file:s};fs=["badInput"];var es=["$browser","$sniffer",function(n,t){return{restrict:"E",require:"?ngModel",link:function(i,r,u,f){f&&(rs[v(u.type)]||rs.text)(i,r,u,f,t,n)}}}],su="ng-valid",hu="ng-invalid",vi="ng-pristine",cu="ng-dirty",va=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate",function(n,t,i,u,f,e){function h(n,t){t=t?"-"+kr(t,"-"):"";e.removeClass(u,(n?hu:su)+t);e.addClass(u,(n?su:hu)+t)}var c,a,o;if(this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$name=i.name,c=f(i.ngModel),a=c.assign,!a)throw y("ngModel")("nonassign","Expression '{0}' is non-assignable. Element: {1}",i.ngModel,ot(u));this.$render=s;this.$isEmpty=function(n){return l(n)||n===""||n===null||n!==n};var w=u.inheritedData("$formController")||cr,v=0,p=this.$error={};u.addClass(vi);h(!0);this.$setValidity=function(n,t){p[n]!==!t&&(t?(p[n]&&v--,v||(h(!0),this.$valid=!0,this.$invalid=!1)):(h(!1),this.$invalid=!0,this.$valid=!1,v++),p[n]=!t,h(t,n),w.$setValidity(n,t,this))};this.$setPristine=function(){this.$dirty=!1;this.$pristine=!0;e.removeClass(u,cu);e.addClass(u,vi)};this.$setViewValue=function(i){this.$viewValue=i;this.$pristine&&(this.$dirty=!0,this.$pristine=!1,e.removeClass(u,vi),e.addClass(u,cu),w.$setDirty());r(this.$parsers,function(n){i=n(i)});this.$modelValue!==i&&(this.$modelValue=i,a(n,i),r(this.$viewChangeListeners,function(n){try{n()}catch(i){t(i)}}))};o=this;n.$watch(function(){var t=c(n),i,r;if(o.$modelValue!==t){for(i=o.$formatters,r=i.length,o.$modelValue=t;r--;)t=i[r](t);o.$viewValue!==t&&(o.$viewValue=t,o.$render())}return t})}],ya=function(){return{require:["ngModel","^?form"],controller:va,link:function(n,t,i,r){var u=r[0],f=r[1]||cr;f.$addControl(u);n.$on("$destroy",function(){f.$removeControl(u)})}}},pa=nt({require:"ngModel",link:function(n,t,i,r){r.$viewChangeListeners.push(function(){n.$eval(i.ngChange)})}}),os=function(){return{require:"?ngModel",link:function(n,t,i,r){if(r){i.required=!0;var u=function(n){if(i.required&&r.$isEmpty(n)){r.$setValidity("required",!1);return}return r.$setValidity("required",!0),n};r.$formatters.push(u);r.$parsers.unshift(u);i.$observe("required",function(){u(r.$viewValue)})}}}},wa=function(){return{require:"ngModel",link:function(n,t,u,f){var e=/\/(.*)\//.exec(u.ngList),s=e&&new RegExp(e[1])||u.ngList||",",h=function(n){if(!l(n)){var t=[];return n&&r(n.split(s),function(n){n&&t.push(g(n))}),t}};f.$parsers.push(h);f.$formatters.push(function(n){return o(n)?n.join(", "):i});f.$isEmpty=function(n){return!n||!n.length}}}},ba=/^(true|false|\d+)$/,ka=function(){return{priority:100,compile:function(n,t){return ba.test(t.ngValue)?function(n,t,i){i.$set("value",n.$eval(i.ngValue))}:function(n,t,i){n.$watch(i.ngValue,function(n){i.$set("value",n)})}}}},da=dt({compile:function(n){return n.addClass("ng-binding"),function(n,t,r){t.data("$binding",r.ngBind);n.$watch(r.ngBind,function(n){t.text(n==i?"":n)})}}}),ga=["$interpolate",function(n){return function(t,i,r){var u=n(i.attr(r.$attr.ngBindTemplate));i.addClass("ng-binding").data("$binding",u);r.$observe("ngBindTemplate",function(n){i.text(n)})}}],nv=["$sce","$parse",function(n,t){return{compile:function(i){return i.addClass("ng-binding"),function(i,r,u){function e(){return(f(i)||"").toString()}r.data("$binding",u.ngBindHtml);var f=t(u.ngBindHtml);i.$watch(e,function(){r.html(n.getTrustedHtml(f(i))||"")})}}}}];var tv=df("",!0),iv=df("Odd",0),rv=df("Even",1),uv=dt({compile:function(n,t){t.$set("ngCloak",i);n.removeClass("ng-cloak")}}),fv=[function(){return{scope:!0,controller:"@",priority:500}}],ss={},ev={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(n){var t=lt("ng-"+n);ss[t]=["$parse","$rootScope",function(i,r){return{compile:function(u,f){var e=i(f[t]);return function(t,i){i.on(n,function(i){var u=function(){e(t,{$event:i})};ev[n]&&r.$$phase?t.$evalAsync(u):t.$apply(u)})}}}}]});var ov=["$animate",function(n){return{transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(i,r,u,f,e){var h,o,s;i.$watch(u.ngIf,function(f){nr(f)?o||(o=i.$new(),e(o,function(i){i[i.length++]=t.createComment(" end ngIf: "+u.ngIf+" ");h={clone:i};n.enter(i,r.parent(),r)})):(s&&(s.remove(),s=null),o&&(o.$destroy(),o=null),h&&(s=bu(h.clone),n.leave(s,function(){s=null}),h=null))})}}}],sv=["$http","$templateCache","$anchorScroll","$animate","$sce",function(n,t,i,r,u){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:pi.noop,compile:function(e,o){var h=o.ngInclude||o.src,c=o.onload||"",s=o.autoscroll;return function(e,o,l,a,v){var b=0,y,p,w,k=function(){p&&(p.remove(),p=null);y&&(y.$destroy(),y=null);w&&(r.leave(w,function(){p=null}),p=w,w=null)};e.$watch(u.parseAsResourceUrl(h),function(u){var l=function(){f(s)&&(!s||e.$eval(s))&&i()},h=++b;u?(n.get(u,{cache:t}).success(function(n){var t,i;h===b&&(t=e.$new(),a.template=n,i=v(t,function(n){k();r.enter(n,null,o,l)}),y=t,w=i,y.$emit("$includeContentLoaded"),e.$eval(c))}).error(function(){h===b&&k()}),e.$emit("$includeContentRequested")):(k(),a.template=null)})}}}}],hv=["$compile",function(n){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(t,i,r,u){i.html(u.template);n(i.contents())(t)}}}],cv=dt({priority:450,compile:function(){return{pre:function(n,t,i){n.$eval(i.ngInit)}}}}),lv=dt({terminal:!0,priority:1e3}),av=["$locale","$interpolate",function(n,t){var i=/{}/g;return{restrict:"EA",link:function(u,f,e){var s=e.count,l=e.$attr.when&&f.attr(e.$attr.when),h=e.offset||0,o=u.$eval(l)||{},c={},a=t.startSymbol(),y=t.endSymbol(),p=/^when(Minus)?(.+)$/;r(e,function(n,t){p.test(t)&&(o[v(t.replace("when","").replace("Minus","-"))]=f.attr(e.$attr[t]))});r(o,function(n,r){c[r]=t(n.replace(i,a+s+"-"+h+y))});u.$watch(function(){var t=parseFloat(u.$eval(s));return isNaN(t)?"":(t in o||(t=n.pluralCat(t-h)),c[t](u,f,!0))},function(n){f.text(n)})}}}],vv=["$parse","$animate",function(n,i){function s(n){return n.clone[0]}function o(n){return n.clone[n.clone.length-1]}var e="$$NG_REMOVED",f=y("ngRepeat");return{transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,link:function(h,c,l,a,v){var b=l.ngRepeat,y=b.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),d,it,g,rt,ut,nt,ft,tt,w,k={$id:li},p;if(!y)throw f("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",b);if(nt=y[1],ft=y[2],d=y[3],d?(it=n(d),g=function(n,t,i){return w&&(k[w]=n),k[tt]=t,k.$index=i,it(h,k)}):(rt=function(n,t){return li(t)},ut=function(n){return n}),y=nt.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/),!y)throw f("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",nt);tt=y[3]||y[1];w=y[2];p={};h.$watchCollection(ft,function(n){var l,ct,ft=c[0],ot,st={},vt,y,k,ht,nt,lt,d,a,it=[],at;if(bi(n))d=n,lt=g||rt;else{lt=g||ut;d=[];for(k in n)n.hasOwnProperty(k)&&k.charAt(0)!="$"&&d.push(k);d.sort()}for(vt=d.length,ct=it.length=d.length,l=0;l<ct;l++)if(k=n===d?l:d[l],ht=n[k],nt=lt(k,ht,l),ui(nt,"`track by` id"),p.hasOwnProperty(nt))a=p[nt],delete p[nt],st[nt]=a,it[l]=a;else if(st.hasOwnProperty(nt)){r(it,function(n){n&&n.scope&&(p[n.id]=n)});throw f("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",b,nt,et(ht));}else it[l]={id:nt},st[nt]=!1;for(k in p)p.hasOwnProperty(k)&&(a=p[k],at=bu(a.clone),i.leave(at),r(at,function(n){n[e]=!0}),a.scope.$destroy());for(l=0,ct=d.length;l<ct;l++){if(k=n===d?l:d[l],ht=n[k],a=it[l],it[l-1]&&(ft=o(it[l-1])),a.scope){y=a.scope;ot=ft;do ot=ot.nextSibling;while(ot&&ot[e]);s(a)!=ot&&i.move(bu(a.clone),null,u(ft));ft=o(a)}else y=h.$new();y[tt]=ht;w&&(y[w]=k);y.$index=l;y.$first=l===0;y.$last=l===vt-1;y.$middle=!(y.$first||y.$last);y.$odd=!(y.$even=(l&1)==0);a.scope||v(y,function(n){n[n.length++]=t.createComment(" end ngRepeat: "+b+" ");i.enter(n,null,u(ft));ft=n;a.scope=y;a.clone=n;st[a.id]=a})}p=st})}}}],yv=["$animate",function(n){return function(t,i,r){t.$watch(r.ngShow,function(t){n[nr(t)?"removeClass":"addClass"](i,"ng-hide")})}}],pv=["$animate",function(n){return function(t,i,r){t.$watch(r.ngHide,function(t){n[nr(t)?"addClass":"removeClass"](i,"ng-hide")})}}],wv=dt(function(n,t,i){n.$watch(i.ngStyle,function(n,i){i&&n!==i&&r(i,function(n,i){t.css(i,"")});n&&t.css(n)},!0)}),bv=["$animate",function(n){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(t,i,u,f){var c=u.ngSwitch||u.on,h=[],s=[],e=[],o=[];t.$watch(c,function(i){for(var a,c=0,l=e.length;c<l;++c)e[c].remove();for(e.length=0,c=0,l=o.length;c<l;++c)a=s[c],o[c].$destroy(),e[c]=a,n.leave(a,function(){e.splice(c,1)});s.length=0;o.length=0;(h=f.cases["!"+i]||f.cases["?"])&&(t.$eval(u.change),r(h,function(i){var r=t.$new();o.push(r);i.transclude(r,function(t){var r=i.element;s.push(t);n.enter(t,r.parent(),r)})}))})}}}],kv=dt({transclude:"element",priority:800,require:"^ngSwitch",link:function(n,t,i,r,u){r.cases["!"+i.ngSwitchWhen]=r.cases["!"+i.ngSwitchWhen]||[];r.cases["!"+i.ngSwitchWhen].push({transclude:u,element:t})}}),dv=dt({transclude:"element",priority:800,require:"^ngSwitch",link:function(n,t,i,r,u){r.cases["?"]=r.cases["?"]||[];r.cases["?"].push({transclude:u,element:t})}}),gv=dt({link:function(n,t,i,r,u){if(!u)throw y("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",ot(t));u(function(n){t.empty();t.append(n)})}}),ny=["$templateCache",function(n){return{restrict:"E",terminal:!0,compile:function(t,i){if(i.type=="text/ng-template"){var r=i.id,u=t[0].text;n.put(r,u)}}}}],ty=y("ngOptions"),iy=nt({terminal:!0}),ry=["$compile","$parse",function(n,e){var h=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\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]+?))?$/,c={$setViewValue:s};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(n,t,i){var r=this,f={},e=c,o,u;r.databound=i.ngModel;r.init=function(n,t,i){e=n;o=t;u=i};r.addOption=function(t){ui(t,'"option value"');f[t]=!0;e.$viewValue==t&&(n.val(t),u.parent()&&u.remove())};r.removeOption=function(n){this.hasOption(n)&&(delete f[n],e.$viewValue==n&&this.renderUnknownOption(n))};r.renderUnknownOption=function(t){var i="? "+li(t)+" ?";u.val(i);n.prepend(u);n.val(i);u.prop("selected",!0)};r.hasOption=function(n){return f.hasOwnProperty(n)};t.$on("$destroy",function(){r.renderUnknownOption=s})}],link:function(s,c,a,v){function st(n,t,i,r){i.$render=function(){var n=i.$viewValue;r.hasOption(n)?(k.parent()&&k.remove(),t.val(n),n===""&&nt.prop("selected",!0)):l(n)&&nt?t.val(""):r.renderUnknownOption(n)};t.on("change",function(){n.$apply(function(){k.parent()&&k.remove();i.$setViewValue(t.val())})})}function ht(n,t,i){var u;i.$render=function(){var n=new er(i.$viewValue);r(t.find("option"),function(t){t.selected=f(n.get(t.value))})};n.$watch(function(){ii(u,i.$viewValue)||(u=ft(i.$viewValue),i.$render())});t.on("change",function(){n.$apply(function(){var n=[];r(t.find("option"),function(t){t.selected&&n.push(t.value)});i.$setViewValue(n)})})}function ct(t,r,u){function ft(){var r=!1,n,f,i;if(w)if(n=u.$modelValue,s&&o(n))for(r=new er([]),f={},i=0;i<n.length;i++)f[l]=n[i],r.put(s(t,f),n[i]);else r=new er(n);return r}function k(){for(var st={"":[]},yt=[""],o,it,n,k,g,h,pt=u.$modelValue,wt=d(t)||[],bt=a?gf(wt):wt,ht,dt,vt,et,c={},ct,lt=ft(),e,ot,at,kt,i=0;vt=bt.length,i<vt;i++){if(ht=i,a){if(ht=bt[i],ht.charAt(0)==="$")continue;c[a]=ht}c[l]=wt[ht];o=tt(t,c)||"";(it=st[o])||(it=st[o]=[],yt.push(o));w?ct=f(lt.remove(s?s(t,c):b(t,c))):(s?(kt={},kt[l]=pt,ct=s(t,kt)===s(t,c)):ct=pt===b(t,c),lt=lt||ct);at=nt(t,c);at=f(at)?at:"";it.push({id:s?s(t,c):a?bt[i]:i,label:at,selected:ct})}for(w||(y||pt===null?st[""].unshift({id:"",label:"",selected:!lt}):lt||st[""].unshift({id:"?",label:"",selected:!0})),et=0,dt=yt.length;et<dt;et++){for(o=yt[et],it=st[o],v.length<=et?(k={element:ut.clone().attr("label",o),label:it.label},g=[k],v.push(g),r.append(k.element)):(g=v[et],k=g[0],k.label!=o&&k.element.attr("label",k.label=o)),e=null,i=0,vt=it.length;i<vt;i++)n=it[i],(h=g[i+1])?(e=h.element,h.label!==n.label&&e.text(h.label=n.label),h.id!==n.id&&e.val(h.id=n.id),e[0].selected!==n.selected&&(e.prop("selected",h.selected=n.selected),p&&e.prop("selected",h.selected))):(n.id===""&&y?ot=y:(ot=rt.clone()).val(n.id).prop("selected",n.selected).attr("selected",n.selected).text(n.label),g.push(h={element:ot,label:n.label,id:n.id,selected:n.selected}),e?e.after(ot):k.element.append(ot),e=ot);for(i++;g.length>i;)g.pop().element.remove()}while(v.length>et)v.pop()[0].element.remove()}var c;if(!(c=g.match(h)))throw ty("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",g,ot(r));var nt=e(c[2]||c[1]),l=c[4]||c[6],a=c[5],tt=e(c[3]||""),b=e(c[2]?c[1]:l),d=e(c[7]),it=c[8],s=it?e(c[8]):null,v=[[{element:r,label:""}]];y&&(n(y)(t),y.removeClass("ng-scope"),y.remove());r.empty();r.on("change",function(){t.$apply(function(){var p,h=d(t)||[],n={},f,o,g,c,y,nt,tt,e;if(w){for(o=[],y=0,tt=v.length;y<tt;y++)for(p=v[y],c=1,nt=p.length;c<nt;c++)if((g=p[c].element)[0].selected){if(f=g.val(),a&&(n[a]=f),s){for(e=0;e<h.length;e++)if(n[l]=h[e],s(t,n)==f)break}else n[l]=h[f];o.push(b(t,n))}}else if(f=r.val(),f=="?")o=i;else if(f==="")o=null;else if(s){for(e=0;e<h.length;e++)if(n[l]=h[e],s(t,n)==f){o=b(t,n);break}}else n[l]=h[f],a&&(n[a]=f),o=b(t,n);u.$setViewValue(o);k()})});u.$render=k;t.$watchCollection(d,k);t.$watchCollection(function(){var u={},i=d(t),r,n,f;if(i){for(r=new Array(i.length),n=0,f=i.length;n<f;n++)u[l]=i[n],r[n]=nt(t,u);return r}},k);w&&t.$watchCollection(function(){return u.$modelValue},k)}if(v[1]){for(var it=v[0],b=v[1],w=a.multiple,g=a.ngOptions,y=!1,nt,rt=u(t.createElement("option")),ut=u(t.createElement("optgroup")),k=rt.clone(),d=0,tt=c.children(),et=tt.length;d<et;d++)if(tt[d].value===""){nt=y=tt.eq(d);break}it.init(b,y,k);w&&(b.$isEmpty=function(n){return!n||n.length===0});g?ct(s,c,b):w?ht(s,c,b):st(s,c,b,it)}}}}],uy=["$interpolate",function(n){var t={addOption:s,removeOption:s};return{restrict:"E",priority:100,compile:function(i,r){if(l(r.value)){var u=n(i.text(),!0);u||r.$set("value",i.text())}return function(n,i,r){var e="$selectController",o=i.parent(),f=o.data(e)||o.parent().data(e);f&&f.databound?i.prop("selected",!1):f=t;u?n.$watch(u,function(n,t){r.$set("value",n);n!==t&&f.removeOption(t);f.addOption(n)}):f.addOption(r.value);i.on("$destroy",function(){f.removeOption(r.value)})}}}}],fy=nt({restrict:"E",terminal:!0});if(n.angular.bootstrap){console.log("WARNING: Tried to load angular more than once.");return}nh();ih(pi);u(t).ready(function(){gs(t,ee)})})(window,document);window.angular.$$csp()||window.angular.element(document).find("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{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}.ng-hide-add-active,.ng-hide-remove{display:block!important;}<\/style>'),function(n,t){"use strict";function f(){function i(n,i){return t.extend(new(t.extend(function(){},{prototype:n})),i)}function r(n,t){var r=t.caseInsensitiveMatch,i={originalPath:n,regexp:n},u=i.keys=[];return n=n.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(n,t,i,r){var f=r==="?"?r:null,e=r==="*"?r:null;return u.push({name:i,optional:!!f}),t=t||"",""+(f?"":t)+"(?:"+(f?t:"")+(e&&"(.+?)"||"([^/]+)")+(f||"")+")"+(f||"")}).replace(/([\/$\*])/g,"\\$1"),i.regexp=new RegExp("^"+n+"$",r?"i":""),i}var n={};this.when=function(i,u){if(n[i]=t.extend({reloadOnSearch:!0},u,i&&r(i,u)),i){var f=i[i.length-1]=="/"?i.substr(0,i.length-1):i+"/";n[f]=t.extend({redirectTo:i},r(f,u))}return this};this.otherwise=function(n){return this.when(null,n),this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(r,u,f,e,o,s,h,c){function y(n,t){var s=t.keys,e={},r,i,o,u,f;if(!t.regexp||(r=t.regexp.exec(n),!r))return null;for(i=1,o=r.length;i<o;++i)u=s[i-1],f=r[i],u&&f&&(e[u.name]=f);return e}function v(){var n=p(),i=l.current;n&&i&&n.$$route===i.$$route&&t.equals(n.pathParams,i.pathParams)&&!n.reloadOnSearch&&!a?(i.params=n.params,t.copy(i.params,f),r.$broadcast("$routeUpdate",i)):(n||i)&&(a=!1,r.$broadcast("$routeChangeStart",n,i),l.current=n,n&&n.redirectTo&&(t.isString(n.redirectTo)?u.path(w(n.redirectTo,n.params)).search(n.params).replace():u.url(n.redirectTo(n.pathParams,u.path(),u.search())).replace()),e.when(n).then(function(){if(n){var u=t.extend({},n.resolve),r,i;return t.forEach(u,function(n,i){u[i]=t.isString(n)?o.get(n):o.invoke(n)}),t.isDefined(r=n.template)?t.isFunction(r)&&(r=r(n.params)):t.isDefined(i=n.templateUrl)&&(t.isFunction(i)&&(i=i(n.params)),i=c.getTrustedResourceUrl(i),t.isDefined(i)&&(n.loadedTemplateUrl=i,r=s.get(i,{cache:h}).then(function(n){return n.data}))),t.isDefined(r)&&(u.$template=r),e.all(u)}}).then(function(u){n==l.current&&(n&&(n.locals=u,t.copy(n.params,f)),r.$broadcast("$routeChangeSuccess",n,i))},function(t){n==l.current&&r.$broadcast("$routeChangeError",n,i,t)}))}function p(){var f,r;return t.forEach(n,function(n){!r&&(f=y(u.path(),n))&&(r=i(n,{params:t.extend({},u.search(),f),pathParams:f}),r.$$route=n)}),r||n[null]&&i(n[null],{params:{},pathParams:{}})}function w(n,i){var r=[];return t.forEach((n||"").split(":"),function(n,t){if(t===0)r.push(n);else{var u=n.match(/(\w+)(.*)/),f=u[1];r.push(i[f]);r.push(u[2]||"");delete i[f]}}),r.join("")}var a=!1,l={routes:n,reload:function(){a=!0;r.$evalAsync(v)}};return r.$on("$locationChangeSuccess",v),l}]}function e(){this.$get=function(){return{}}}function r(n,i,r){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(u,f,e,o,s){function v(){l&&(l.remove(),l=null);h&&(h.$destroy(),h=null);c&&(r.leave(c,function(){l=null}),l=c,c=null)}function y(){var e=n.current&&n.current.locals,l=e&&e.$template;if(t.isDefined(l)){var o=u.$new(),y=n.current,w=s(o,function(n){r.enter(n,null,c||f,function(){t.isDefined(a)&&(!a||u.$eval(a))&&i()});v()});c=w;h=y.scope=o;h.$emit("$viewContentLoaded");h.$eval(p)}else v()}var h,c,l,a=e.autoscroll,p=e.onload||"";u.$on("$routeChangeSuccess",y);y()}}}function u(n,t,i){return{restrict:"ECA",priority:-400,link:function(r,u){var f=i.current,o=f.locals,s,e;u.html(o.$template);s=n(u.contents());f.controller&&(o.$scope=r,e=t(f.controller,o),f.controllerAs&&(r[f.controllerAs]=e),u.data("$ngControllerController",e),u.children().data("$ngControllerController",e));s(r)}}}var i=t.module("ngRoute",["ng"]).provider("$route",f);i.provider("$routeParams",e);i.directive("ngView",r);i.directive("ngView",u);r.$inject=["$route","$anchorScroll","$animate"];u.$inject=["$compile","$controller","$route"]}(window,window.angular);angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(n,t,i){function u(n){for(var t in n)if(void 0!==f.style[t])return n[t]}var r=function(u,f,e){e=e||{};var s=n.defer(),o=r[e.animation?"animationEndEventName":"transitionEndEventName"],h=function(){i.$apply(function(){u.unbind(o,h);s.resolve(u)})};return o&&u.bind(o,h),t(function(){angular.isString(f)?u.addClass(f):angular.isFunction(f)?f(u):angular.isObject(f)&&u.css(f);o||s.resolve(u)}),s.promise.cancel=function(){o&&u.unbind(o,h);s.reject("Transition cancelled")},s.promise},f=document.createElement("trans");return r.transitionEndEventName=u({WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}),r.animationEndEventName=u({WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"}),r}]);angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(n){return{link:function(t,i,r){function e(t){function f(){u===r&&(u=void 0)}var r=n(i,t);return u&&u.cancel(),u=r,r.then(f,f),r}function h(){f?(f=!1,o()):(i.removeClass("collapse").addClass("collapsing"),e({height:i[0].scrollHeight+"px"}).then(o))}function o(){i.removeClass("collapsing");i.addClass("collapse in");i.css({height:"auto"})}function c(){f?(f=!1,s(),i.css({height:0})):(i.css({height:i[0].scrollHeight+"px"}),i[0].offsetWidth,i.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(s))}function s(){i.removeClass("collapsing");i.addClass("collapse")}var u,f=!0;t.$watch(r.collapse,function(n){n?c():h()})}}}]);angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(n,t,i){this.groups=[];this.closeOthers=function(r){var u=angular.isDefined(t.closeOthers)?n.$eval(t.closeOthers):i.closeOthers;u&&angular.forEach(this.groups,function(n){n!==r&&(n.isOpen=!1)})};this.addGroup=function(n){var t=this;this.groups.push(n);n.$on("$destroy",function(){t.removeGroup(n)})};this.removeGroup=function(n){var t=this.groups.indexOf(n);-1!==t&&this.groups.splice(t,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(n){this.heading=n}},link:function(n,t,i,r){r.addGroup(n);n.$watch("isOpen",function(t){t&&r.closeOthers(n)});n.toggleOpen=function(){n.isDisabled||(n.isOpen=!n.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(n,t,i,r,u){r.setHeading(u(n,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(n,t,i,r){n.$watch(function(){return r[i.accordionTransclude]},function(n){n&&(t.html(""),t.append(n))})}}});angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(n,t){n.closeable="close"in t}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}});angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(n,t,i){t.addClass("ng-binding").data("$binding",i.bindHtmlUnsafe);n.$watch(i.bindHtmlUnsafe,function(n){t.html(n||"")})}});angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(n){this.activeClass=n.activeClass||"active";this.toggleEvent=n.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,n.$eval(i.btnRadio)))};t.bind(f.toggleEvent,function(){var r=t.hasClass(f.activeClass);(!r||angular.isDefined(i.uncheckable))&&n.$apply(function(){u.$setViewValue(r?null:n.$eval(i.btnRadio));u.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){function e(){return o(i.btnCheckboxTrue,!0)}function s(){return o(i.btnCheckboxFalse,!1)}function o(t,i){var r=n.$eval(t);return angular.isDefined(r)?r:i}var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,e()))};t.bind(f.toggleEvent,function(){n.$apply(function(){u.$setViewValue(t.hasClass(f.activeClass)?s():e());u.$render()})})}}});angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition",function(n,t,i){function e(){h();var i=+n.interval;!isNaN(i)&&i>=0&&(o=t(l,i))}function h(){o&&(t.cancel(o),o=null)}function l(){s?(n.next(),e()):n.pause()}var o,s,u=this,r=u.slides=n.slides=[],f=-1,c;u.currentSlide=null;c=!1;u.select=n.select=function(o,s){function l(){c||(u.currentSlide&&angular.isString(s)&&!n.noTransition&&o.$element?(o.$element.addClass(s),o.$element[0].offsetWidth,angular.forEach(r,function(n){angular.extend(n,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(o,{direction:s,active:!0,entering:!0}),angular.extend(u.currentSlide||{},{direction:s,leaving:!0}),n.$currentTransition=i(o.$element,{}),function(t,i){n.$currentTransition.then(function(){h(t,i)},function(){h(t,i)})}(o,u.currentSlide)):h(o,u.currentSlide),u.currentSlide=o,f=a,e())}function h(t,i){angular.extend(t,{direction:"",active:!0,leaving:!1,entering:!1});angular.extend(i||{},{direction:"",active:!1,leaving:!1,entering:!1});n.$currentTransition=null}var a=r.indexOf(o);void 0===s&&(s=a>f?"next":"prev");o&&o!==u.currentSlide&&(n.$currentTransition?(n.$currentTransition.cancel(),t(l)):l())};n.$on("$destroy",function(){c=!0});u.indexOfSlide=function(n){return r.indexOf(n)};n.next=function(){var t=(f+1)%r.length;if(!n.$currentTransition)return u.select(r[t],"next")};n.prev=function(){var t=0>f-1?r.length-1:f-1;if(!n.$currentTransition)return u.select(r[t],"prev")};n.isActive=function(n){return u.currentSlide===n};n.$watch("interval",e);n.$on("$destroy",h);n.play=function(){s||(s=!0,e())};n.pause=function(){n.noPause||(s=!1,h())};u.addSlide=function(t,i){t.$element=i;r.push(t);1===r.length||t.active?(u.select(r[r.length-1]),1==r.length&&n.play()):t.active=!1};u.removeSlide=function(n){var t=r.indexOf(n);r.splice(t,1);r.length>0&&n.active?u.select(t>=r.length?r[t-1]:r[t]):f>t&&f--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(n,t,i,r){r.addSlide(n,t);n.$on("$destroy",function(){r.removeSlide(n)});n.$watch("active",function(t){t&&r.select(n)})}}});angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(n,t){function i(n,t,i){return 1===t&&i>28?29===i&&(n%4==0&&n%100!=0||n%400==0):3===t||5===t||8===t||10===t?31>i:!0}this.parsers={};var r={yyyy:{regex:"\\d{4}",apply:function(n){this.year=+n}},yy:{regex:"\\d{2}",apply:function(n){this.year=+n+2e3}},y:{regex:"\\d{1,4}",apply:function(n){this.year=+n}},MMMM:{regex:n.DATETIME_FORMATS.MONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.MONTH.indexOf(t)}},MMM:{regex:n.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.SHORTMONTH.indexOf(t)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(n){this.month=n-1}},M:{regex:"[1-9]|1[0-2]",apply:function(n){this.month=n-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},EEEE:{regex:n.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:n.DATETIME_FORMATS.SHORTDAY.join("|")}};this.createParser=function(n){var u=[],i=n.split("");return angular.forEach(r,function(t,r){var f=n.indexOf(r),e,o;if(f>-1){for(n=n.split(""),i[f]="("+t.regex+")",n[f]="$",e=f+1,o=f+r.length;o>e;e++)i[e]="",n[e]="$";n=n.join("");u.push({index:f,apply:t.apply})}}),{regex:new RegExp("^"+i.join("")+"$"),map:t(u,"index")}};this.parse=function(t,r){var o;if(!angular.isString(t))return t;r=n.DATETIME_FORMATS[r]||r;this.parsers[r]||(this.parsers[r]=this.createParser(r));var s=this.parsers[r],c=s.regex,l=s.map,f=t.match(c);if(f&&f.length){for(var h,u={year:1900,month:0,date:1,hours:0},e=1,a=f.length;a>e;e++)o=l[e-1],o.apply&&o.apply.call(u,f[e]);return i(u.year,u.month,u.date)&&(h=new Date(u.year,u.month,u.date,u.hours)),h}}}]);angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(n,t){function i(n,i){return n.currentStyle?n.currentStyle[i]:t.getComputedStyle?t.getComputedStyle(n)[i]:n.style[i]}function r(n){return"static"===(i(n,"position")||"static")}var u=function(t){for(var u=n[0],i=t.offsetParent||u;i&&i!==u&&r(i);)i=i.offsetParent;return i||u};return{position:function(t){var e=this.offset(t),r={top:0,left:0},i=u(t[0]),f;return i!=n[0]&&(r=this.offset(angular.element(i)),r.top+=i.clientTop-i.scrollTop,r.left+=i.clientLeft-i.scrollLeft),f=t[0].getBoundingClientRect(),{width:f.width||t.prop("offsetWidth"),height:f.height||t.prop("offsetHeight"),top:e.top-r.top,left:e.left-r.left}},offset:function(i){var r=i[0].getBoundingClientRect();return{width:r.width||i.prop("offsetWidth"),height:r.height||i.prop("offsetHeight"),top:r.top+(t.pageYOffset||n[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||n[0].documentElement.scrollLeft)}},positionElements:function(n,t,i,r){var u,h,c,f,a=i.split("-"),l=a[0],e=a[1]||"center",o,s;u=r?this.offset(n):this.position(n);h=t.prop("offsetWidth");c=t.prop("offsetHeight");o={center:function(){return u.left+u.width/2-h/2},left:function(){return u.left},right:function(){return u.left+u.width}};s={center:function(){return u.top+u.height/2-c/2},top:function(){return u.top},bottom:function(){return u.top+u.height}};switch(l){case"right":f={top:s[e](),left:o[l]()};break;case"left":f={top:s[e](),left:u.left-h};break;case"bottom":f={top:s[l](),left:o[e]()};break;default:f={top:u.top-c,left:o[e]()}}return f}}}]);angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(n,t,i,r,u,f,e,o){var s=this,h={$setViewValue:angular.noop},c;this.modes=["day","month","year"];angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(i,u){s[i]=angular.isDefined(t[i])?8>u?r(t[i])(n.$parent):n.$parent.$eval(t[i]):o[i]});angular.forEach(["minDate","maxDate"],function(r){t[r]?n.$parent.$watch(i(t[r]),function(n){s[r]=n?new Date(n):null;s.refreshView()}):s[r]=o[r]?new Date(o[r]):null});n.datepickerMode=n.datepickerMode||o.datepickerMode;n.uniqueId="datepicker-"+n.$id+"-"+Math.floor(1e4*Math.random());this.activeDate=angular.isDefined(t.initDate)?n.$parent.$eval(t.initDate):new Date;n.isActive=function(t){return 0===s.compare(t.date,s.activeDate)?(n.activeDateId=t.uid,!0):!1};this.init=function(n){h=n;h.$render=function(){s.render()}};this.render=function(){if(h.$modelValue){var n=new Date(h.$modelValue),t=!isNaN(n);t?this.activeDate=n:f.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');h.$setValidity("date",t)}this.refreshView()};this.refreshView=function(){if(this.element){this._refreshView();var n=h.$modelValue?new Date(h.$modelValue):null;h.$setValidity("date-disabled",!n||this.element&&!this.isDisabled(n))}};this.createDateObject=function(n,t){var i=h.$modelValue?new Date(h.$modelValue):null;return{date:n,label:e(n,t),selected:i&&0===this.compare(n,i),disabled:this.isDisabled(n),current:0===this.compare(n,new Date)}};this.isDisabled=function(i){return this.minDate&&this.compare(i,this.minDate)<0||this.maxDate&&this.compare(i,this.maxDate)>0||t.dateDisabled&&n.dateDisabled({date:i,mode:n.datepickerMode})};this.split=function(n,t){for(var i=[];n.length>0;)i.push(n.splice(0,t));return i};n.select=function(t){if(n.datepickerMode===s.minMode){var i=h.$modelValue?new Date(h.$modelValue):new Date(0,0,0,0,0,0,0);i.setFullYear(t.getFullYear(),t.getMonth(),t.getDate());h.$setViewValue(i);h.$render()}else s.activeDate=t,n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)-1]};n.move=function(n){var t=s.activeDate.getFullYear()+n*(s.step.years||0),i=s.activeDate.getMonth()+n*(s.step.months||0);s.activeDate.setFullYear(t,i,1);s.refreshView()};n.toggleMode=function(t){t=t||1;n.datepickerMode===s.maxMode&&1===t||n.datepickerMode===s.minMode&&-1===t||(n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)+t])};n.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};c=function(){u(function(){s.element[0].focus()},0,!1)};n.$on("datepicker.focus",c);n.keydown=function(t){var i=n.keys[t.which];if(i&&!t.shiftKey&&!t.altKey)if(t.preventDefault(),t.stopPropagation(),"enter"===i||"space"===i){if(s.isDisabled(s.activeDate))return;n.select(s.activeDate);c()}else!t.ctrlKey||"up"!==i&&"down"!==i?(s.handleKeyDown(i,t),s.refreshView()):(n.toggleMode("up"===i?1:-1),c())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}}).directive("daypicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(t,i,r,u){function f(n,t){return 1!==t||n%4!=0||n%100==0&&n%400!=0?s[t]:29}function e(n,t){var r=new Array(t),i=new Date(n),u=0;for(i.setHours(12);t>u;)r[u++]=new Date(i),i.setDate(i.getDate()+1);return r}function o(n){var t=new Date(n),i;return t.setDate(t.getDate()+4-(t.getDay()||7)),i=t.getTime(),t.setMonth(0),t.setDate(1),Math.floor(Math.round((i-t)/864e5)/7)+1}t.showWeeks=u.showWeeks;u.step={months:1};u.element=i;var s=[31,28,31,30,31,30,31,31,30,31,30,31];u._refreshView=function(){var p=u.activeDate.getFullYear(),h=u.activeDate.getMonth(),c=new Date(p,h,1),s=u.startingDay-c.getDay(),l=s>0?7-s:-s,a=new Date(c),i,r,f,v,y;for(l>0&&a.setDate(-l+1),i=e(a,42),r=0;42>r;r++)i[r]=angular.extend(u.createDateObject(i[r],u.formatDay),{secondary:i[r].getMonth()!==h,uid:t.uniqueId+"-"+r});for(t.labels=new Array(7),f=0;7>f;f++)t.labels[f]={abbr:n(i[f].date,u.formatDayHeader),full:n(i[f].date,"EEEE")};if(t.title=n(u.activeDate,u.formatDayTitle),t.rows=u.split(i,7),t.showWeeks)for(t.weekNumbers=[],v=o(t.rows[0][0].date),y=t.rows.length;t.weekNumbers.push(v++)<y;);};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth(),n.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())};u.handleKeyDown=function(n){var t=u.activeDate.getDate(),i;"left"===n?t-=1:"up"===n?t-=7:"right"===n?t+=1:"down"===n?t+=7:"pageup"===n||"pagedown"===n?(i=u.activeDate.getMonth()+("pageup"===n?-1:1),u.activeDate.setMonth(i,1),t=Math.min(f(u.activeDate.getFullYear(),u.activeDate.getMonth()),t)):"home"===n?t=1:"end"===n&&(t=f(u.activeDate.getFullYear(),u.activeDate.getMonth()));u.activeDate.setDate(t)};u.refreshView()}}}]).directive("monthpicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(t,i,r,u){u.step={years:1};u.element=i;u._refreshView=function(){for(var r=new Array(12),f=u.activeDate.getFullYear(),i=0;12>i;i++)r[i]=angular.extend(u.createDateObject(new Date(f,i,1),u.formatMonth),{uid:t.uniqueId+"-"+i});t.title=n(u.activeDate,u.formatMonthTitle);t.rows=u.split(r,3)};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth())-new Date(t.getFullYear(),t.getMonth())};u.handleKeyDown=function(n){var t=u.activeDate.getMonth(),i;"left"===n?t-=1:"up"===n?t-=3:"right"===n?t+=1:"down"===n?t+=3:"pageup"===n||"pagedown"===n?(i=u.activeDate.getFullYear()+("pageup"===n?-1:1),u.activeDate.setFullYear(i)):"home"===n?t=0:"end"===n&&(t=11);u.activeDate.setMonth(t)};u.refreshView()}}}]).directive("yearpicker",["dateFilter",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(n,t,i,r){function f(n){return parseInt((n-1)/u,10)*u+1}var u=r.yearRange;r.step={years:u};r.element=t;r._refreshView=function(){for(var i=new Array(u),t=0,e=f(r.activeDate.getFullYear());u>t;t++)i[t]=angular.extend(r.createDateObject(new Date(e+t,0,1),r.formatYear),{uid:n.uniqueId+"-"+t});n.title=[i[0].label,i[u-1].label].join(" - ");n.rows=r.split(i,5)};r.compare=function(n,t){return n.getFullYear()-t.getFullYear()};r.handleKeyDown=function(n){var t=r.activeDate.getFullYear();"left"===n?t-=1:"up"===n?t-=5:"right"===n?t+=1:"down"===n?t+=5:"pageup"===n||"pagedown"===n?t+=("pageup"===n?-1:1)*r.step.years:"home"===n?t=f(r.activeDate.getFullYear()):"end"===n&&(t=f(r.activeDate.getFullYear())+u-1);r.activeDate.setFullYear(t)};r.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(n,t,i,r,u,f,e){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(o,s,h,c){function b(n){return n.replace(/([A-Z])/g,function(n){return"-"+n.toLowerCase()})}function k(n){if(n){if(angular.isDate(n)&&!isNaN(n))return c.$setValidity("date",!0),n;if(angular.isString(n)){var t=f.parse(n,p)||new Date(n);return isNaN(t)?void c.$setValidity("date",!1):(c.$setValidity("date",!0),t)}return void c.$setValidity("date",!1)}return c.$setValidity("date",!0),null}var p,g=angular.isDefined(h.closeOnDateSelection)?o.$parent.$eval(h.closeOnDateSelection):e.closeOnDateSelection,d=angular.isDefined(h.datepickerAppendToBody)?o.$parent.$eval(h.datepickerAppendToBody):e.appendToBody,l,a,v,w,y;o.showButtonBar=angular.isDefined(h.showButtonBar)?o.$parent.$eval(h.showButtonBar):e.showButtonBar;o.getText=function(n){return o[n+"Text"]||e[n+"Text"]};h.$observe("datepickerPopup",function(n){p=n||e.datepickerPopup;c.$render()});l=angular.element("<div datepicker-popup-wrap><div datepicker><\/div><\/div>");l.attr({"ng-model":"date","ng-change":"dateSelection()"});a=angular.element(l.children()[0]);h.datepickerOptions&&angular.forEach(o.$parent.$eval(h.datepickerOptions),function(n,t){a.attr(b(t),n)});angular.forEach(["minDate","maxDate"],function(n){h[n]&&(o.$parent.$watch(t(h[n]),function(t){o[n]=t}),a.attr(b(n),n))});h.dateDisabled&&a.attr("date-disabled","dateDisabled({ date: date, mode: mode })");c.$parsers.unshift(k);o.dateSelection=function(n){angular.isDefined(n)&&(o.date=n);c.$setViewValue(o.date);c.$render();g&&(o.isOpen=!1,s[0].focus())};s.bind("input change keyup",function(){o.$apply(function(){o.date=c.$modelValue})});c.$render=function(){var n=c.$viewValue?u(c.$viewValue,p):"";s.val(n);o.date=k(c.$modelValue)};v=function(n){o.isOpen&&n.target!==s[0]&&o.$apply(function(){o.isOpen=!1})};w=function(n){o.keydown(n)};s.bind("keydown",w);o.keydown=function(n){27===n.which?(n.preventDefault(),n.stopPropagation(),o.close()):40!==n.which||o.isOpen||(o.isOpen=!0)};o.$watch("isOpen",function(n){n?(o.$broadcast("datepicker.focus"),o.position=d?r.offset(s):r.position(s),o.position.top=o.position.top+s.prop("offsetHeight"),i.bind("click",v)):i.unbind("click",v)});o.select=function(n){if("today"===n){var t=new Date;angular.isDate(c.$modelValue)?(n=new Date(c.$modelValue),n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate())):n=new Date(t.setHours(0,0,0,0))}o.dateSelection(n)};o.close=function(){o.isOpen=!1;s[0].focus()};y=n(l)(o);d?i.find("body").append(y):s.after(y);o.$on("$destroy",function(){y.remove();s.unbind("keydown",w);i.unbind("click",v)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(n,t){t.bind("click",function(n){n.preventDefault();n.stopPropagation()})}}});angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(n){var t=null,i,r;this.open=function(u){t||(n.bind("click",i),n.bind("keydown",r));t&&t!==u&&(t.isOpen=!1);t=u};this.close=function(u){t===u&&(t=null,n.unbind("click",i),n.unbind("keydown",r))};i=function(n){n&&n.isDefaultPrevented()||t.$apply(function(){t.isOpen=!1})};r=function(n){27===n.which&&(t.focusToggleElement(),i())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(n,t,i,r,u,f){var s,o=this,e=n.$new(),c=r.openClass,h=angular.noop,l=t.onToggle?i(t.onToggle):angular.noop;this.init=function(r){o.$element=r;t.isOpen&&(s=i(t.isOpen),h=s.assign,n.$watch(s,function(n){e.isOpen=!!n}))};this.toggle=function(n){return e.isOpen=arguments.length?!!n:!e.isOpen};this.isOpen=function(){return e.isOpen};e.focusToggleElement=function(){o.toggleElement&&o.toggleElement[0].focus()};e.$watch("isOpen",function(t,i){f[t?"addClass":"removeClass"](o.$element,c);t?(e.focusToggleElement(),u.open(e)):u.close(e);h(n,t);angular.isDefined(t)&&t!==i&&l(n,{open:!!t})});n.$on("$locationChangeSuccess",function(){e.isOpen=!1});n.$on("$destroy",function(){e.$destroy()})}]).directive("dropdown",function(){return{restrict:"CA",controller:"DropdownController",link:function(n,t,i,r){r.init(t)}}}).directive("dropdownToggle",function(){return{restrict:"CA",require:"?^dropdown",link:function(n,t,i,r){if(r){r.toggleElement=t;var u=function(u){u.preventDefault();t.hasClass("disabled")||i.disabled||n.$apply(function(){r.toggle()})};t.bind("click",u);t.attr({"aria-haspopup":!0,"aria-expanded":!1});n.$watch(r.isOpen,function(n){t.attr("aria-expanded",!!n)});n.$on("$destroy",function(){t.unbind("click",u)})}}}});angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var n=[];return{add:function(t,i){n.push({key:t,value:i})},get:function(t){for(var i=0;i<n.length;i++)if(t==n[i].key)return n[i]},keys:function(){for(var i=[],t=0;t<n.length;t++)i.push(n[t].key);return i},top:function(){return n[n.length-1]},remove:function(t){for(var r=-1,i=0;i<n.length;i++)if(t==n[i].key){r=i;break}return n.splice(r,1)[0]},removeTop:function(){return n.splice(n.length-1,1)[0]},length:function(){return n.length}}}}}).directive("modalBackdrop",["$timeout",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(t){t.animate=!1;n(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(n,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(n,t){return t.templateUrl||"template/modal/window.html"},link:function(i,r,u){r.addClass(u.windowClass||"");i.size=u.size;t(function(){i.animate=!0;r[0].focus()});i.close=function(t){var i=n.getTop();i&&i.value.backdrop&&"static"!=i.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),n.dismiss(i.key,"backdrop click"))}}}}]).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(n,t,i,r,u,f){function c(){for(var t=-1,i=e.keys(),n=0;n<i.length;n++)e.get(i[n]).value.backdrop&&(t=n);return t}function l(n){var r=i.find("body").eq(0),t=e.get(n).value;e.remove(n);a(t.modalDomEl,t.modalScope,300,function(){t.modalScope.$destroy();r.toggleClass(v,e.length()>0);y()})}function y(){if(h&&-1==c()){var n=o;a(h,o,150,function(){n.$destroy();n=null});h=void 0;o=void 0}}function a(i,r,u,f){function e(){e.done||(e.done=!0,i.remove(),f&&f())}var o,s;r.animate=!1;o=n.transitionEndEventName;o?(s=t(e,u),i.bind(o,function(){t.cancel(s);e();r.$apply()})):t(e,0)}var h,o,v="modal-open",e=f.createNew(),s={};return u.$watch(c,function(n){o&&(o.index=n)}),i.bind("keydown",function(n){var t;27===n.which&&(t=e.top(),t&&t.value.keyboard&&(n.preventDefault(),u.$apply(function(){s.dismiss(t.key,"escape key press")})))}),s.open=function(n,t){var f,s,l,a;e.add(n,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});f=i.find("body").eq(0);s=c();s>=0&&!h&&(o=u.$new(!0),o.index=s,h=r("<div modal-backdrop><\/div>")(o),f.append(h));l=angular.element("<div modal-window><\/div>");l.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:e.length()-1,animate:"animate"}).html(t.content);a=r(l)(t.scope);e.top().value.modalDomEl=a;f.append(a);f.addClass(v)},s.close=function(n,t){var i=e.get(n).value;i&&(i.deferred.resolve(t),l(n))},s.dismiss=function(n,t){var i=e.get(n).value;i&&(i.deferred.reject(t),l(n))},s.dismissAll=function(n){for(var t=this.getTop();t;)this.dismiss(t.key,n),t=this.getTop()},s.getTop=function(){return e.top()},s}]).provider("$modal",function(){var n={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,i,r,u,f,e,o){function h(n){return n.template?r.when(n.template):u.get(n.templateUrl,{cache:f}).then(function(n){return n.data})}function c(n){var i=[];return angular.forEach(n,function(n){(angular.isFunction(n)||angular.isArray(n))&&i.push(r.when(t.invoke(n)))}),i}var s={};return s.open=function(t){var f=r.defer(),s=r.defer(),u={result:f.promise,opened:s.promise,close:function(n){o.close(u,n)},dismiss:function(n){o.dismiss(u,n)}},l;if(t=angular.extend({},n.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");return l=r.all([h(t)].concat(c(t.resolve))),l.then(function(n){var s=(t.scope||i).$new(),c,r,h;s.$close=u.close;s.$dismiss=u.dismiss;r={};h=1;t.controller&&(r.$scope=s,r.$modalInstance=u,angular.forEach(t.resolve,function(t,i){r[i]=n[h++]}),c=e(t.controller,r));o.open(u,{scope:s,deferred:f,content:n[0],backdrop:t.backdrop,keyboard:t.keyboard,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},function(n){f.reject(n)}),l.then(function(){s.resolve(!0)},function(){s.reject(!1)}),u},s}]};return n});angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(n,t,i){var u=this,r={$setViewValue:angular.noop},f=t.numPages?i(t.numPages).assign:angular.noop;this.init=function(f,e){r=f;this.config=e;r.$render=function(){u.render()};t.itemsPerPage?n.$parent.$watch(i(t.itemsPerPage),function(t){u.itemsPerPage=parseInt(t,10);n.totalPages=u.calculateTotalPages()}):this.itemsPerPage=e.itemsPerPage};this.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(n.totalItems/this.itemsPerPage);return Math.max(t||0,1)};this.render=function(){n.page=parseInt(r.$viewValue,10)||1};n.selectPage=function(t){n.page!==t&&t>0&&t<=n.totalPages&&(r.$setViewValue(t),r.$render())};n.getText=function(t){return n[t+"Text"]||u.config[t+"Text"]};n.noPrevious=function(){return 1===n.page};n.noNext=function(){return n.page===n.totalPages};n.$watch("totalItems",function(){n.totalPages=u.calculateTotalPages()});n.$watch("totalPages",function(t){f(n.$parent,t);n.page>t?n.selectPage(t):r.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(n,t){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(i,r,u,f){function s(n,t,i){return{number:n,text:t,active:i}}function a(n,t){var f=[],i=1,r=t,o=angular.isDefined(e)&&t>e,u,c,l,a;for(o&&(h?(i=Math.max(n-Math.floor(e/2),1),r=i+e-1,r>t&&(r=t,i=r-e+1)):(i=(Math.ceil(n/e)-1)*e+1,r=Math.min(i+e-1,t))),u=i;r>=u;u++)c=s(u,u,u===n),f.push(c);return o&&!h&&(i>1&&(l=s(i-1,"...",!1),f.unshift(l)),t>r&&(a=s(r+1,"...",!1),f.push(a))),f}var o=f[0],c=f[1],e,h,l;c&&(e=angular.isDefined(u.maxSize)?i.$parent.$eval(u.maxSize):t.maxSize,h=angular.isDefined(u.rotate)?i.$parent.$eval(u.rotate):t.rotate,i.boundaryLinks=angular.isDefined(u.boundaryLinks)?i.$parent.$eval(u.boundaryLinks):t.boundaryLinks,i.directionLinks=angular.isDefined(u.directionLinks)?i.$parent.$eval(u.directionLinks):t.directionLinks,o.init(c,t),u.maxSize&&i.$parent.$watch(n(u.maxSize),function(n){e=parseInt(n,10);o.render()}),l=o.render,o.render=function(){l();i.page>0&&i.page<=i.totalPages&&(i.pages=a(i.page,i.totalPages))})}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"Â« Previous",nextText:"Next Â»",align:!0}).directive("pager",["pagerConfig",function(n){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(t,i,r,u){var e=u[0],f=u[1];f&&(t.align=angular.isDefined(r.align)?t.$parent.$eval(r.align):n.align,e.init(f,n))}}}]);angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function i(n){var t="-";return n.replace(/[A-Z]/g,function(n,i){return(i?t:"")+n.toLowerCase()})}var r={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},t={};this.options=function(n){angular.extend(t,n)};this.setTriggers=function(t){angular.extend(n,t)};this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(u,f,e,o,s,h,c){return function(u,l,a){function w(t){var i=t||v.trigger||a,r=n[i]||i;return{show:i,hide:r}}var v=angular.extend({},r,t),b=i(u),y=c.startSymbol(),p=c.endSymbol(),k="<div "+b+'-popup title="'+y+"tt_title"+p+'" content="'+y+"tt_content"+p+'" placement="'+y+"tt_placement"+p+'" animation="tt_animation" is-open="tt_isOpen"><\/div>';return{restrict:"EA",scope:!0,compile:function(){var n=f(k);return function(t,i,r){function ut(){t.tt_isOpen?d():k()}function k(){(!et||t.$eval(r[l+"Enable"]))&&(t.tt_popupDelay?y||(y=e(it,t.tt_popupDelay,!1),y.then(function(n){n()})):it()())}function d(){t.$apply(function(){g()})}function it(){return y=null,a&&(e.cancel(a),a=null),t.tt_content?(ft(),f.css({top:0,left:0,display:"block"}),p?s.find("body").append(f):i.after(f),rt(),t.tt_isOpen=!0,t.$digest(),rt):angular.noop}function g(){t.tt_isOpen=!1;e.cancel(y);y=null;t.tt_animation?a||(a=e(b,500)):b()}function ft(){f&&b();f=n(t,function(){});t.$digest()}function b(){a=null;f&&(f.remove(),f=null)}var f,a,y,p=angular.isDefined(v.appendToBody)?v.appendToBody:!1,c=w(void 0),et=angular.isDefined(r[l+"Enable"]),rt=function(){var n=h.positionElements(i,f,t.tt_placement,p);n.top+="px";n.left+="px";f.css(n)},nt,tt;t.tt_isOpen=!1;r.$observe(u,function(n){t.tt_content=n;!n&&t.tt_isOpen&&g()});r.$observe(l+"Title",function(n){t.tt_title=n});r.$observe(l+"Placement",function(n){t.tt_placement=angular.isDefined(n)?n:v.placement});r.$observe(l+"PopupDelay",function(n){var i=parseInt(n,10);t.tt_popupDelay=isNaN(i)?v.popupDelay:i});nt=function(){i.unbind(c.show,k);i.unbind(c.hide,d)};r.$observe(l+"Trigger",function(n){nt();c=w(n);c.show===c.hide?i.bind(c.show,ut):(i.bind(c.show,k),i.bind(c.hide,d))});tt=t.$eval(r[l+"Animation"]);t.tt_animation=angular.isDefined(tt)?!!tt:v.animation;r.$observe(l+"AppendToBody",function(n){p=angular.isDefined(n)?o(n)(t):p});p&&t.$on("$locationChangeSuccess",function(){t.tt_isOpen&&g()});t.$on("$destroy",function(){e.cancel(a);e.cancel(y);nt();b()})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(n){return n("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(n){return n("tooltipHtmlUnsafe","tooltip","mouseenter")}]);angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(n){return n("popover","popover","click")}]);angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(n,t,i){var r=this,u=angular.isDefined(t.animate)?n.$parent.$eval(t.animate):i.animate;this.bars=[];n.max=angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max;this.addBar=function(t,i){u||i.css({transition:"none"});this.bars.push(t);t.$watch("value",function(i){t.percent=+(100*i/n.max).toFixed(2)});t.$on("$destroy",function(){i=null;r.removeBar(t)})};this.removeBar=function(n){this.bars.splice(this.bars.indexOf(n),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(n,t,i,r){r.addBar(n,t)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(n,t,i,r){r.addBar(n,angular.element(t.children()[0]))}}});angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(n,t,i){var r={$setViewValue:angular.noop};this.init=function(u){r=u;r.$render=this.render;this.stateOn=angular.isDefined(t.stateOn)?n.$parent.$eval(t.stateOn):i.stateOn;this.stateOff=angular.isDefined(t.stateOff)?n.$parent.$eval(t.stateOff):i.stateOff;var f=angular.isDefined(t.ratingStates)?n.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max);n.range=this.buildTemplateObjects(f)};this.buildTemplateObjects=function(n){for(var t=0,i=n.length;i>t;t++)n[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff},n[t]);return n};n.rate=function(t){!n.readonly&&t>=0&&t<=n.range.length&&(r.$setViewValue(t),r.$render())};n.enter=function(t){n.readonly||(n.value=t);n.onHover({value:t})};n.reset=function(){n.value=r.$viewValue;n.onLeave()};n.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),n.rate(n.value+(38===t.which||39===t.which?1:-1)))};this.render=function(){n.value=r.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}});angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(n){var i=this,t=i.tabs=n.tabs=[];i.select=function(n){angular.forEach(t,function(t){t.active&&t!==n&&(t.active=!1,t.onDeselect())});n.active=!0;n.onSelect()};i.addTab=function(n){t.push(n);1===t.length?n.active=!0:n.active&&i.select(n)};i.removeTab=function(n){var r=t.indexOf(n),u;n.active&&t.length>1&&(u=r==t.length-1?r-1:r+1,i.select(t[u]));t.splice(r,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(n,t,i){n.vertical=angular.isDefined(i.vertical)?n.$parent.$eval(i.vertical):!1;n.justified=angular.isDefined(i.justified)?n.$parent.$eval(i.justified):!1}}}).directive("tab",["$parse",function(n){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(t,i,r){return function(t,i,u,f){t.$watch("active",function(n){n&&f.select(t)});t.disabled=!1;u.disabled&&t.$parent.$watch(n(u.disabled),function(n){t.disabled=!!n});t.select=function(){t.disabled||(t.active=!0)};f.addTab(t);t.$on("$destroy",function(){f.removeTab(t)});t.$transcludeFn=r}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(n,t){n.$watch("headingElement",function(n){n&&(t.html(""),t.append(n))})}}}]).directive("tabContentTransclude",function(){function n(n){return n.tagName&&(n.hasAttribute("tab-heading")||n.hasAttribute("data-tab-heading")||"tab-heading"===n.tagName.toLowerCase()||"data-tab-heading"===n.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(t,i,r){var u=t.$eval(r.tabContentTransclude);u.$transcludeFn(u.$parent,function(t){angular.forEach(t,function(t){n(t)?u.headingElement=t:i.append(t)})})}}});angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(n,t,i,r,u,f){function p(){var t=parseInt(n.hours,10),i=n.showMeridian?t>0&&13>t:t>=0&&24>t;if(i)return(n.showMeridian&&(12===t&&(t=0),n.meridian===y[1]&&(t+=12)),t)}function w(){var t=parseInt(n.minutes,10);if(t>=0&&60>t)return t}function h(n){return angular.isDefined(n)&&n.toString().length<2?"0"+n:n}function c(n){b();o.$setViewValue(new Date(e));v(n)}function b(){o.$setValidity("time",!0);n.invalidHours=!1;n.invalidMinutes=!1}function v(t){var i=e.getHours(),r=e.getMinutes();n.showMeridian&&(i=0===i||12===i?12:i%12);n.hours="h"===t?i:h(i);n.minutes="m"===t?r:h(r);n.meridian=e.getHours()<12?y[0]:y[1]}function s(n){var t=new Date(e.getTime()+6e4*n);e.setHours(t.getHours(),t.getMinutes());c()}var e=new Date,o={$setViewValue:angular.noop},y=angular.isDefined(t.meridians)?n.$parent.$eval(t.meridians):f.meridians||u.DATETIME_FORMATS.AMPMS,l,a;this.init=function(i,r){o=i;o.$render=this.render;var u=r.eq(0),e=r.eq(1),s=angular.isDefined(t.mousewheel)?n.$parent.$eval(t.mousewheel):f.mousewheel;s&&this.setupMousewheelEvents(u,e);n.readonlyInput=angular.isDefined(t.readonlyInput)?n.$parent.$eval(t.readonlyInput):f.readonlyInput;this.setupInputEvents(u,e)};l=f.hourStep;t.hourStep&&n.$parent.$watch(i(t.hourStep),function(n){l=parseInt(n,10)});a=f.minuteStep;t.minuteStep&&n.$parent.$watch(i(t.minuteStep),function(n){a=parseInt(n,10)});n.showMeridian=f.showMeridian;t.showMeridian&&n.$parent.$watch(i(t.showMeridian),function(t){if(n.showMeridian=!!t,o.$error.time){var i=p(),r=w();angular.isDefined(i)&&angular.isDefined(r)&&(e.setHours(i),c())}else v()});this.setupMousewheelEvents=function(t,i){var r=function(n){n.originalEvent&&(n=n.originalEvent);var t=n.wheelDelta?n.wheelDelta:-n.deltaY;return n.detail||t>0};t.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementHours():n.decrementHours());t.preventDefault()});i.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementMinutes():n.decrementMinutes());t.preventDefault()})};this.setupInputEvents=function(t,i){if(n.readonlyInput)return n.updateHours=angular.noop,void(n.updateMinutes=angular.noop);var r=function(t,i){o.$setViewValue(null);o.$setValidity("time",!1);angular.isDefined(t)&&(n.invalidHours=t);angular.isDefined(i)&&(n.invalidMinutes=i)};n.updateHours=function(){var n=p();angular.isDefined(n)?(e.setHours(n),c("h")):r(!0)};t.bind("blur",function(){!n.invalidHours&&n.hours<10&&n.$apply(function(){n.hours=h(n.hours)})});n.updateMinutes=function(){var n=w();angular.isDefined(n)?(e.setMinutes(n),c("m")):r(void 0,!0)};i.bind("blur",function(){!n.invalidMinutes&&n.minutes<10&&n.$apply(function(){n.minutes=h(n.minutes)})})};this.render=function(){var n=o.$modelValue?new Date(o.$modelValue):null;isNaN(n)?(o.$setValidity("time",!1),r.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(n&&(e=n),b(),v())};n.incrementHours=function(){s(60*l)};n.decrementHours=function(){s(60*-l)};n.incrementMinutes=function(){s(a)};n.decrementMinutes=function(){s(-a)};n.toggleMeridian=function(){s(720*(e.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u,t.find("input"))}}});angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(n){var t=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;return{parse:function(i){var r=i.match(t);if(!r)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+i+'".');return{itemName:r[3],source:n(r[4]),viewMapper:n(r[2]||r[1]),modelMapper:n(r[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(n,t,i,r,u,f,e){var o=[9,13,27,38,40];return{require:"ngModel",link:function(s,h,c,l){var k,et=s.$eval(c.typeaheadMinLength)||1,rt=s.$eval(c.typeaheadWaitMs)||0,ot=s.$eval(c.typeaheadEditable)!==!1,p=t(c.typeaheadLoading).assign||angular.noop,st=t(c.typeaheadOnSelect),ut=c.typeaheadInputFormatter?t(c.typeaheadInputFormatter):void 0,ft=c.typeaheadAppendToBody?s.$eval(c.typeaheadAppendToBody):!1,ht=t(c.ngModel).assign,v=e.parse(c.typeahead),a=s.$new(),w,b,y,d,g,nt,tt,it;s.$on("$destroy",function(){a.$destroy()});w="typeahead-"+a.$id+"-"+Math.floor(1e4*Math.random());h.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":w});b=angular.element("<div typeahead-popup><\/div>");b.attr({id:w,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"});angular.isDefined(c.typeaheadTemplateUrl)&&b.attr("template-url",c.typeaheadTemplateUrl);y=function(){a.matches=[];a.activeIdx=-1;h.attr("aria-expanded",!1)};d=function(n){return w+"-option-"+n};a.$watch("activeIdx",function(n){0>n?h.removeAttr("aria-activedescendant"):h.attr("aria-activedescendant",d(n))});g=function(n){var t={$viewValue:n};p(s,!0);i.when(v.source(s,t)).then(function(i){var u=n===l.$viewValue,r;if(u&&k)if(i.length>0){for(a.activeIdx=0,a.matches.length=0,r=0;r<i.length;r++)t[v.itemName]=i[r],a.matches.push({id:d(r),label:v.viewMapper(a,t),model:i[r]});a.query=n;a.position=ft?f.offset(h):f.position(h);a.position.top=a.position.top+h.prop("offsetHeight");h.attr("aria-expanded",!0)}else y();u&&p(s,!1)},function(){y();p(s,!1)})};y();a.query=void 0;l.$parsers.unshift(function(n){return k=!0,n&&n.length>=et?rt>0?(nt&&r.cancel(nt),nt=r(function(){g(n)},rt)):g(n):(p(s,!1),y()),ot?n:n?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),n)});l.$formatters.push(function(n){var i,r,t={};return ut?(t.$model=n,ut(s,t)):(t[v.itemName]=n,i=v.viewMapper(s,t),t[v.itemName]=void 0,r=v.viewMapper(s,t),i!==r?i:n)});a.select=function(n){var t,u,i={};i[v.itemName]=u=a.matches[n].model;t=v.modelMapper(s,i);ht(s,t);l.$setValidity("editable",!0);st(s,{$item:u,$model:t,$label:v.viewMapper(s,i)});y();r(function(){h[0].focus()},0,!1)};h.bind("keydown",function(n){0!==a.matches.length&&-1!==o.indexOf(n.which)&&(n.preventDefault(),40===n.which?(a.activeIdx=(a.activeIdx+1)%a.matches.length,a.$digest()):38===n.which?(a.activeIdx=(a.activeIdx?a.activeIdx:a.matches.length)-1,a.$digest()):13===n.which||9===n.which?a.$apply(function(){a.select(a.activeIdx)}):27===n.which&&(n.stopPropagation(),y(),a.$digest()))});h.bind("blur",function(){k=!1});tt=function(n){h[0]!==n.target&&(y(),a.$digest())};u.bind("click",tt);s.$on("$destroy",function(){u.unbind("click",tt)});it=n(b)(a);ft?u.find("body").append(it):h.after(it)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(n,t,i){n.templateUrl=i.templateUrl;n.isOpen=function(){return n.matches.length>0};n.isActive=function(t){return n.active==t};n.selectActive=function(t){n.active=t};n.selectMatch=function(t){n.select({activeIdx:t})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(n,t,i,r){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(u,f,e){var o=r(e.templateUrl)(u.$parent)||"template/typeahead/typeahead-match.html";n.get(o,{cache:t}).success(function(n){f.replaceWith(i(n.trim())(u))})}}}]).filter("typeaheadHighlight",function(){function n(n){return n.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,i){return i?(""+t).replace(new RegExp(n(i),"gi"),"<strong>$&<\/strong>"):t}});angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion-group.html",'<div class="panel panel-default">\n  <div class="panel-heading">\n    <h4 class="panel-title">\n      <a class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}<\/span><\/a>\n    <\/h4>\n  <\/div>\n  <div class="panel-collapse" collapse="!isOpen">\n\t  <div class="panel-body" ng-transclude><\/div>\n  <\/div>\n<\/div>')}]);angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude><\/div>')}]);angular.module("template/alert/alert.html",[]).run(["$templateCache",function(n){n.put("template/alert/alert.html",'<div class="alert" ng-class="{\'alert-{{type || \'warning\'}}\': true, \'alert-dismissable\': closeable}" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close()">\n        <span aria-hidden="true">&times;<\/span>\n        <span class="sr-only">Close<\/span>\n    <\/button>\n    <div ng-transclude><\/div>\n<\/div>\n')}]);angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(n){n.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n    <ol class="carousel-indicators" ng-show="slides.length > 1">\n        <li ng-repeat="slide in slides track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"><\/li>\n    <\/ol>\n    <div class="carousel-inner" ng-transclude><\/div>\n    <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"><\/span><\/a>\n    <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"><\/span><\/a>\n<\/div>\n')}]);angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(n){n.put("template/carousel/slide.html","<div ng-class=\"{\n    'active': leaving || (active && !entering),\n    'prev': (next || active) && direction=='prev',\n    'next': (next || active) && direction=='next',\n    'right': direction=='prev',\n    'left': direction=='next'\n  }\" class=\"item text-center\" ng-transclude><\/div>\n")}]);angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <daypicker ng-switch-when="day" tabindex="0"><\/daypicker>\n  <monthpicker ng-switch-when="month" tabindex="0"><\/monthpicker>\n  <yearpicker ng-switch-when="year" tabindex="0"><\/yearpicker>\n<\/div>')}]);angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n    <tr>\n      <th ng-show="showWeeks" class="text-center"><\/th>\n      <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}<\/small><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}<\/em><\/td>\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)">\n\t<li ng-transclude><\/li>\n\t<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n\t\t<span class="btn-group">\n\t\t\t<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')">{{ getText(\'current\') }}<\/button>\n\t\t\t<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}<\/button>\n\t\t<\/span>\n\t\t<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}<\/button>\n\t<\/li>\n<\/ul>\n')}]);angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(n){n.put("template/modal/backdrop.html",'<div class="modal-backdrop fade"\n     ng-class="{in: animate}"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n><\/div>\n')}]);angular.module("template/modal/window.html",[]).run(["$templateCache",function(n){n.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n    <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}"><div class="modal-content" ng-transclude><\/div><\/div>\n<\/div>')}]);angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious(), previous: align}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}<\/a><\/li>\n  <li ng-class="{disabled: noNext(), next: align}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}<\/a><\/li>\n<\/ul>')}]);angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="boundaryLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(1)">{{getText(\'first\')}}<\/a><\/li>\n  <li ng-if="directionLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}<\/a><\/li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active}"><a href ng-click="selectPage(page.number)">{{page.text}}<\/a><\/li>\n  <li ng-if="directionLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}<\/a><\/li>\n  <li ng-if="boundaryLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(totalPages)">{{getText(\'last\')}}<\/a><\/li>\n<\/ul>')}]);angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(n){n.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"><\/div>\n  <div class="tooltip-inner" bind-html-unsafe="content"><\/div>\n<\/div>\n')}]);angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(n){n.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"><\/div>\n  <div class="tooltip-inner" ng-bind="content"><\/div>\n<\/div>\n')}]);angular.module("template/popover/popover.html",[]).run(["$templateCache",function(n){n.put("template/popover/popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="arrow"><\/div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-show="title"><\/h3>\n      <div class="popover-content" ng-bind="content"><\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude><\/div>')}]);angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progress.html",'<div class="progress" ng-transclude><\/div>')}]);angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude><\/div>\n<\/div>')}]);angular.module("template/rating/rating.html",[]).run(["$templateCache",function(n){n.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <i ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')">\n        <span class="sr-only">({{ $index < value ? \'*\' : \' \' }})<\/span>\n    <\/i>\n<\/span>')}]);angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n  <a ng-click="select()" tab-heading-transclude>{{heading}}<\/a>\n<\/li>\n')}]);angular.module("template/tabs/tabset-titles.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabset-titles.html","<ul class=\"nav {{type && 'nav-' + type}}\" ng-class=\"{'nav-stacked': vertical}\">\n<\/ul>\n")}]);angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabset.html",'\n<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude><\/ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         tab-content-transclude="tab">\n    <\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(n){n.put("template/timepicker/timepicker.html",'<table>\n\t<tbody>\n\t\t<tr class="text-center">\n\t\t\t<td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"><\/span><\/a><\/td>\n\t\t\t<td>&nbsp;<\/td>\n\t\t\t<td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"><\/span><\/a><\/td>\n\t\t\t<td ng-show="showMeridian"><\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidHours}">\n\t\t\t\t<input type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2">\n\t\t\t<\/td>\n\t\t\t<td>:<\/td>\n\t\t\t<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n\t\t\t\t<input type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n\t\t\t<\/td>\n\t\t\t<td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}<\/button><\/td>\n\t\t<\/tr>\n\t\t<tr class="text-center">\n\t\t\t<td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"><\/span><\/a><\/td>\n\t\t\t<td>&nbsp;<\/td>\n\t\t\t<td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"><\/span><\/a><\/td>\n\t\t\t<td ng-show="showMeridian"><\/td>\n\t\t<\/tr>\n\t<\/tbody>\n<\/table>\n')}]);angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead-match.html",'<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"><\/a>')}]);angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-if="isOpen()" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}">\n        <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"><\/div>\n    <\/li>\n<\/ul>')}]);angular.module("ui.checkbox",[]).directive("checkbox",function(){return{scope:{},require:"ngModel",restrict:"E",replace:"true",template:"<button type=\"button\" ng-style=\"stylebtn\" class=\"btn btn-default\" ng-class=\"{'btn-xs': size==='default', 'btn-sm': size==='large', 'btn-lg': size==='largest', 'checked': checked===true}\"><span ng-style=\"styleicon\" class=\"glyphicon\" ng-class=\"{'glyphicon-ok': checked===true, 'glyphicon-minus': checked===undefined}\"><\/span><\/button>",compile:function(n,t){return t.ngClass!==undefined&&(t.ngClass=t.ngClass.replace(/}\s*{/g,", ")),function(n,t,i,r){var e;n.size="default";n.stylebtn={};n.styleicon={width:"10px",left:"-1px"};i.large!==undefined&&(n.size="large",n.stylebtn={"padding-top":"2px","padding-bottom":"2px",height:"30px"},n.styleicon={width:"8px",left:"-5px","font-size":"17px"});i.larger!==undefined&&(n.size="larger",n.stylebtn={"padding-top":"2px","padding-bottom":"2px",height:"34px"},n.styleicon={width:"8px",left:"-8px","font-size":"22px"});i.largest!==undefined&&(n.size="largest",n.stylebtn={"padding-top":"2px","padding-bottom":"2px",height:"45px"},n.styleicon={width:"11px",left:"-11px","font-size":"30px"});e=!1;i.indeterminate==="true"&&(e=!0);var u=!0,f=!1,o=undefined;i.ngTrueValue!==undefined&&(u=i.ngTrueValue);i.ngFalseValue!==undefined&&(f=i.ngFalseValue);i.ngIndeterminateValue!==undefined&&(o=i.ngIndeterminateValue);n.name!==undefined&&(t.name=n.name);n.$watch(function(){return r.$modelValue===u||r.$modelValue===!0?r.$setViewValue(u):e===!0&&(r.$modelValue===o||r.$modelValue===undefined)?r.$setViewValue(o):r.$setViewValue(f),r.$modelValue},function(){n.checked=e===!0&&r.$modelValue===o?undefined:r.$modelValue===u},!0);t.bind("click",function(){n.$apply(function(){e===!0?r.$modelValue===f?r.$setViewValue(u):r.$modelValue===u?r.$setViewValue(o):r.$setViewValue(f):r.$modelValue===f?r.$setViewValue(u):r.$setViewValue(f)})})}}}}),function(){"use strict";angular.module("ui.grid.i18n",[]);angular.module("ui.grid",["ui.grid.i18n"])}(),function(){"use strict";angular.module("ui.grid").constant("uiGridConstants",{LOG_DEBUG_MESSAGES:!0,LOG_WARN_MESSAGES:!0,LOG_ERROR_MESSAGES:!0,CUSTOM_FILTERS:/CUSTOM_FILTERS/g,COL_FIELD:/COL_FIELD/g,MODEL_COL_FIELD:/MODEL_COL_FIELD/g,TOOLTIP:/title=\"TOOLTIP\"/g,DISPLAY_CELL_TEMPLATE:/DISPLAY_CELL_TEMPLATE/g,TEMPLATE_REGEXP:/<.+>/,FUNC_REGEXP:/(\([^)]*\))?$/,DOT_REGEXP:/\./g,APOS_REGEXP:/'/g,BRACKET_REGEXP:/^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/,COL_CLASS_PREFIX:"ui-grid-col",events:{GRID_SCROLL:"uiGridScroll",COLUMN_MENU_SHOWN:"uiGridColMenuShown",ITEM_DRAGGING:"uiGridItemDragStart",COLUMN_HEADER_CLICK:"uiGridColumnHeaderClick"},keymap:{TAB:9,STRG:17,CAPSLOCK:20,CTRL:17,CTRLRIGHT:18,CTRLR:18,SHIFT:16,RETURN:13,ENTER:13,BACKSPACE:8,BCKSP:8,ALT:18,ALTR:17,ALTRIGHT:17,SPACE:32,WIN:91,MAC:91,FN:null,PG_UP:33,PG_DOWN:34,UP:38,DOWN:40,LEFT:37,RIGHT:39,ESC:27,DEL:46,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123},ASC:"asc",DESC:"desc",filter:{STARTS_WITH:2,ENDS_WITH:4,EXACT:8,CONTAINS:16,GREATER_THAN:32,GREATER_THAN_OR_EQUAL:64,LESS_THAN:128,LESS_THAN_OR_EQUAL:256,NOT_EQUAL:512,SELECT:"select",INPUT:"input"},aggregationTypes:{sum:2,count:4,avg:8,min:16,max:32},CURRENCY_SYMBOLS:["ƒ","$","£","$","¤","¥","៛","₩","₱","฿","₫"],scrollDirection:{UP:"up",DOWN:"down",LEFT:"left",RIGHT:"right",NONE:"none"},dataChange:{ALL:"all",EDIT:"edit",ROW:"row",COLUMN:"column",OPTIONS:"options"},scrollbars:{NEVER:0,ALWAYS:1}})}();angular.module("ui.grid").directive("uiGridCell",["$compile","$parse","gridUtil","uiGridConstants",function(n,t,i,r){return{priority:0,scope:!1,require:"?^uiGrid",compile:function(){return{pre:function(t,u,f,e){function o(){var n=t.col.compiledElementFn;n(t,function(n){u.append(n)})}if(e&&t.col.compiledElementFn)o();else if(e&&!t.col.compiledElementFn)t.col.getCompiledElementFn().then(function(n){n(t,function(n){u.append(n)})});else{var s=t.col.cellTemplate.replace(r.MODEL_COL_FIELD,"row.entity."+i.preEval(t.col.field)).replace(r.COL_FIELD,"grid.getCellValue(row, col)"),h=n(s)(t);u.append(h)}},post:function(n,t){var u=n.col.getColClass(!1),i,f;t.addClass(u);f=function(){var r=t;i&&(r.removeClass(i),i=null);i=angular.isFunction(n.col.cellClass)?n.col.cellClass(n.grid,n.row,n.col,n.rowRenderIndex,n.colRenderIndex):n.col.cellClass;r.addClass(i)};n.col.cellClass&&f();var o=n.grid.registerDataChangeCallback(f,[r.dataChange.COLUMN,r.dataChange.EDIT]),s=function(r,e){if(r!==e){(i||n.col.cellClass)&&f();var o=n.col.getColClass(!1);o!==u&&(t.removeClass(u),t.addClass(o),u=o)}},h=n.$watch("row",s),e=function(){o();h()};n.$on("$destroy",e);t.on("$destroy",e)}}}}}]),function(){angular.module("ui.grid").service("uiGridColumnMenuService",["i18nService","uiGridConstants","gridUtil",function(n,t,i){var r={initialize:function(n,t){n.grid=t.grid;t.columnMenuScope=n;n.menuShown=!1},setColMenuItemWatch:function(n){var t=n.$watch("col.menuItems",function(t){typeof t!="undefined"&&t&&angular.isArray(t)?(t.forEach(function(t){typeof t.context!="undefined"&&t.context||(t.context={});t.context.col=n.col}),n.menuItems=n.defaultMenuItems.concat(t)):n.menuItems=n.defaultMenuItems});n.$on("$destroy",t)},sortable:function(n){return n.grid.options.enableSorting&&typeof n.col!="undefined"&&n.col&&n.col.enableSorting?!0:!1},isActiveSort:function(n,t){return typeof n.col!="undefined"&&typeof n.col.sort!="undefined"&&typeof n.col.sort.direction!="undefined"&&n.col.sort.direction===t},suppressRemoveSort:function(n){return n.col&&n.col.suppressRemoveSort?!0:!1},hideable:function(n){return typeof n.col!="undefined"&&n.col&&n.col.colDef&&n.col.colDef.enableHiding===!1?!1:!0},getDefaultMenuItems:function(i){return[{title:n.getSafeText("sort.ascending"),icon:"ui-grid-icon-sort-alt-up",action:function(n){n.stopPropagation();i.sortColumn(n,t.ASC)},shown:function(){return r.sortable(i)},active:function(){return r.isActiveSort(i,t.ASC)}},{title:n.getSafeText("sort.descending"),icon:"ui-grid-icon-sort-alt-down",action:function(n){n.stopPropagation();i.sortColumn(n,t.DESC)},shown:function(){return r.sortable(i)},active:function(){return r.isActiveSort(i,t.DESC)}},{title:n.getSafeText("sort.remove"),icon:"ui-grid-icon-cancel",action:function(n){n.stopPropagation();i.unsortColumn()},shown:function(){return r.sortable(i)&&typeof i.col!="undefined"&&typeof i.col.sort!="undefined"&&typeof i.col.sort.direction!="undefined"&&i.col.sort.direction!==null&&!r.suppressRemoveSort(i)}},{title:n.getSafeText("column.hide"),icon:"ui-grid-icon-cancel",shown:function(){return r.hideable(i)},action:function(n){n.stopPropagation();i.hideColumn()}},{title:n.getSafeText("columnMenu.close"),screenReaderOnly:!0,shown:function(){return!0},action:function(n){n.stopPropagation()}}]},getColumnElementPosition:function(n,t,r){var u={};return u.left=r[0].offsetLeft,u.top=r[0].offsetTop,u.parentLeft=r[0].offsetParent.offsetLeft,u.offset=0,t.grid.options.offsetLeft&&(u.offset=t.grid.options.offsetLeft),u.height=i.elementHeight(r,!0),u.width=i.elementWidth(r,!0),u},repositionMenu:function(n,t,r,u,f){var e=u[0].querySelectorAll(".ui-grid-menu"),a=t.renderContainer?t.renderContainer:"body",p=t.grid.renderContainers[a],l=i.closestElm(f,".ui-grid-render-container"),v=l.getBoundingClientRect().left-n.grid.element[0].getBoundingClientRect().left,y=l.querySelectorAll(".ui-grid-viewport")[0].scrollLeft,o=t.lastMenuWidth?t.lastMenuWidth:n.lastMenuWidth?n.lastMenuWidth:170,s=t.lastMenuPaddingRight?t.lastMenuPaddingRight:n.lastMenuPaddingRight?n.lastMenuPaddingRight:10,c,h;e.length!==0&&(c=e[0].querySelectorAll(".ui-grid-menu-mid"),c.length===0||angular.element(c).hasClass("ng-hide")||(o=i.elementWidth(e,!0),n.lastMenuWidth=o,t.lastMenuWidth=o,s=parseInt(i.getStyles(angular.element(e)[0]).paddingRight,10),n.lastMenuPaddingRight=s,t.lastMenuPaddingRight=s));h=r.left+v-y+r.parentLeft+r.width-o+s;h<r.offset&&(h=r.offset);u.css("left",h+"px");u.css("top",r.top+r.height+"px")}};return r}]).directive("uiGridColumnMenu",["$timeout","gridUtil","uiGridConstants","uiGridColumnMenuService","$document",function(n,t,i,r,u){return{priority:0,scope:!0,require:"^uiGrid",templateUrl:"ui-grid/uiGridColumnMenu",replace:!0,link:function(f,e,o,s){r.initialize(f,s);f.defaultMenuItems=r.getDefaultMenuItems(f);f.menuItems=f.defaultMenuItems;r.setColMenuItemWatch(f);f.showMenu=function(n,t,i){f.col=n;var u=r.getColumnElementPosition(f,n,t);f.menuShown?(f.colElement=t,f.colElementPosition=u,f.hideThenShow=!0,f.$broadcast("hide-menu",{originalEvent:i})):(f.menuShown=!0,r.repositionMenu(f,n,u,e,t),f.colElement=t,f.colElementPosition=u,f.$broadcast("show-menu",{originalEvent:i}))};f.hideMenu=function(n){f.menuShown=!1;n||f.$broadcast("hide-menu")};f.$on("menu-hidden",function(){f.hideThenShow?(delete f.hideThenShow,r.repositionMenu(f,f.col,f.colElementPosition,e,f.colElement),f.$broadcast("show-menu"),f.menuShown=!0):(f.hideMenu(!0),f.col&&t.focus.bySelector(u,".ui-grid-header-cell."+f.col.getColClass()+" .ui-grid-column-menu-button",f.col.grid,!1))});f.$on("menu-shown",function(){n(function(){r.repositionMenu(f,f.col,f.colElementPosition,e,f.colElement);delete f.colElementPosition;delete f.columnElement},200)});f.sortColumn=function(n,t){n.stopPropagation();f.grid.sortColumn(f.col,t,!0).then(function(){f.grid.refresh();f.hideMenu()})};f.unsortColumn=function(){f.col.unsort();f.grid.refresh();f.hideMenu()};var h=function(){n(function(){var r=function(){return t.focus.byId("grid-menu",f.grid)},i,n,e;f.grid.columns.some(function(n,t){if(angular.equals(n,f.col))return i=t,!0});f.grid.columns.some(function(t,r){if(t.visible)if(r<i)n=t;else{if(r>i&&!n)return n=t,!0;if(r>i&&n)return!0}else return!1});n?(e=n.getColClass(),t.focus.bySelector(u,".ui-grid-header-cell."+e+" .ui-grid-header-cell-primary-focus",!0).then(angular.noop,function(n){if(n!=="canceled")return r()})):r()})};f.hideColumn=function(){f.col.colDef.visible=!1;f.col.visible=!1;f.grid.queueGridRefresh();f.hideMenu();f.grid.api.core.notifyDataChange(i.dataChange.COLUMN);f.grid.api.core.raise.columnVisibilityChanged(f.col);h()}},controller:["$scope",function(n){var t=this;n.$watch("menuItems",function(n){t.menuItems=n})}]}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFilter",["$compile","$templateCache","i18nService","gridUtil",function(n,t,i,r){return{compile:function(){return{pre:function(t,i){t.col.updateFilters=function(r){if(i.children().remove(),r){var u=t.col.filterHeaderTemplate;i.append(n(u)(t))}};t.$on("$destroy",function(){delete t.col.updateFilters})},post:function(n,t){n.aria=i.getSafeText("headerCell.aria");n.removeFilter=function(n,i){n.term=null;r.focus.bySelector(t,".ui-grid-filter-input-"+i)}}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooterCell",["$timeout","gridUtil","uiGridConstants","$compile",function(n,t,i,r){return{priority:0,scope:{col:"=",row:"=",renderIndex:"="},replace:!0,require:"^uiGrid",compile:function(){return{pre:function(n,t){var i=r(n.col.footerCellTemplate)(n);t.append(i)},post:function(n,t,r,u){var o,f,e,s;n.grid=u.grid;o=n.col.getColClass(!1);t.addClass(o);e=function(){var i=t;f&&(i.removeClass(f),f=null);f=angular.isFunction(n.col.footerCellClass)?n.col.footerCellClass(n.grid,n.row,n.col,n.rowRenderIndex,n.colRenderIndex):n.col.footerCellClass;i.addClass(f)};n.col.footerCellClass&&e();n.col.updateAggregationValue();s=n.grid.registerDataChangeCallback(e,[i.dataChange.COLUMN]);n.grid.api.core.on.rowsRendered(n,n.col.updateAggregationValue);n.grid.api.core.on.rowsRendered(n,e);n.$on("$destroy",s)}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(n,t,i,r){return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(n,i,u,f){var s=f[0],e=f[1],o;n.grid=s.grid;n.colContainer=e.colContainer;e.footer=i;o=n.grid.options.footerTemplate;r.getTemplate(o).then(function(r){var f=angular.element(r),o=t(f)(n),u;i.append(o);e&&(u=i[0].getElementsByClassName("ui-grid-footer-viewport")[0],u&&(e.footerViewport=u))})},post:function(n,t,i,u){var o=u[0],e=u[1],s=o.grid,f;r.disableAnimations(t);e.footer=t;f=t[0].getElementsByClassName("ui-grid-footer-viewport")[0];f&&(e.footerViewport=f)}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(n,t,i,r){return{restrict:"EA",replace:!0,require:"^uiGrid",scope:!0,compile:function(){return{pre:function(n,i,u,f){n.grid=f.grid;var e=n.grid.options.gridFooterTemplate;r.getTemplate(e).then(function(r){var u=angular.element(r),f=t(u)(n);i.append(f)})},post:function(){}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGroupPanel",["$compile","uiGridConstants","gridUtil",function(n,t,i){var r="ui-grid/ui-grid-group-panel";return{restrict:"EA",replace:!0,require:"?^uiGrid",scope:!1,compile:function(){return{pre:function(t,u){var f=t.grid.options.groupPanelTemplate||r;i.getTemplate(f).then(function(i){var r=angular.element(i),f=n(r)(t);u.append(f)})},post:function(n,t){t.bind("$destroy",function(){})}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeaderCell",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","ScrollEvent","i18nService",function(n,t,i,r,u,f,e,o){var s=500,h=500;return{priority:0,scope:{col:"=",row:"=",renderIndex:"="},require:["^uiGrid","^uiGridRenderContainer"],replace:!0,compile:function(){return{pre:function(t,i){var r=n(t.col.headerCellTemplate)(t);i.append(r)},post:function(n,i,u,e){var c=e[0],k=e[1],p,y,b;n.i18n={headerCell:o.getSafeText("headerCell"),sort:o.getSafeText("sort")};n.isSortPriorityVisible=function(){return n.col.sort.priority&&n.grid.columns.some(function(t){return t.sort.priority&&t!==n.col})};n.getSortDirectionAriaLabel=function(){var t=n.col,r=t.sort.direction===f.ASC?n.i18n.sort.ascending:t.sort.direction===f.DESC?n.i18n.sort.descending:n.i18n.sort.none,i=r;return n.isSortPriorityVisible()&&(i=i+". "+n.i18n.headerCell.priority+" "+t.sort.priority),i};n.grid=c.grid;n.renderContainer=c.grid.renderContainers[k.containerId];p=n.col.getColClass(!1);i.addClass(p);n.menuShown=!1;n.asc=f.ASC;n.desc=f.DESC;var d=angular.element(i[0].querySelectorAll(".ui-grid-header-cell-menu")),l=angular.element(i[0].querySelectorAll(".ui-grid-cell-contents")),a,w,v=[];n.downFn=function(u){if(u.stopPropagation(),typeof u.originalEvent!="undefined"&&u.originalEvent!==undefined&&(u=u.originalEvent),!u.button||u.button===0)if(w=u.pageX,n.mousedownStartTime=(new Date).getTime(),n.mousedownTimeout=t(function(){},s),n.mousedownTimeout.then(function(){n.colMenu&&c.columnMenuScope.showMenu(n.col,i,u)}),c.fireEvent(f.events.COLUMN_HEADER_CLICK,{event:u,columnName:n.col.colDef.name}),n.offAllEvents(),u.type==="touchstart"){r.on("touchend",n.upFn);r.on("touchmove",n.moveFn)}else if(u.type==="mousedown"){r.on("mouseup",n.upFn);r.on("mousemove",n.moveFn)}};n.upFn=function(i){i.stopPropagation();t.cancel(n.mousedownTimeout);n.offAllEvents();n.onDownEvents(i.type);var r=(new Date).getTime(),u=r-n.mousedownStartTime;u>s||n.sortable&&n.handleClick(i)};n.moveFn=function(i){var r=i.pageX-w;if(r!==0){t.cancel(n.mousedownTimeout);n.offAllEvents();n.onDownEvents(i.type)}};n.clickFn=function(t){t.stopPropagation();l.off("click",n.clickFn)};n.offAllEvents=function(){l.off("touchstart",n.downFn);l.off("mousedown",n.downFn);r.off("touchend",n.upFn);r.off("mouseup",n.upFn);r.off("touchmove",n.moveFn);r.off("mousemove",n.moveFn);l.off("click",n.clickFn)};n.onDownEvents=function(i){switch(i){case"touchmove":case"touchend":l.on("click",n.clickFn);l.on("touchstart",n.downFn);t(function(){l.on("mousedown",n.downFn)},h);break;case"mousemove":case"mouseup":l.on("click",n.clickFn);l.on("mousedown",n.downFn);t(function(){l.on("touchstart",n.downFn)},h);break;default:l.on("click",n.clickFn);l.on("touchstart",n.downFn);l.on("mousedown",n.downFn)}};y=function(){var r=i,u;a&&(r.removeClass(a),a=null);a=angular.isFunction(n.col.headerCellClass)?n.col.headerCellClass(n.grid,n.row,n.col,n.rowRenderIndex,n.colRenderIndex):n.col.headerCellClass;r.addClass(a);t(function(){var t=n.grid.renderContainers.right?n.grid.renderContainers.right:n.grid.renderContainers.body;n.isLastCol=n.col===t.visibleColumnCache[t.visibleColumnCache.length-1]});n.sortable=c.grid.options.enableSorting&&n.col.enableSorting?!0:!1;u=n.filterable;n.filterable=c.grid.options.enableFiltering&&n.col.enableFiltering?!0:!1;u!==n.filterable&&(typeof n.col.updateFilters!="undefined"&&n.col.updateFilters(n.filterable),n.filterable?(n.col.filters.forEach(function(t,i){v.push(n.$watch("col.filters["+i+"].term",function(n,t){n!==t&&(c.grid.api.core.raise.filterChanged(),c.grid.api.core.notifyDataChange(f.dataChange.COLUMN),c.grid.queueGridRefresh())}))}),n.$on("$destroy",function(){v.forEach(function(n){n()})})):v.forEach(function(n){n()}));n.colMenu=n.col.grid.options&&n.col.grid.options.enableColumnMenus!==!1&&n.col.colDef&&n.col.colDef.enableColumnMenu!==!1?!0:!1;n.offAllEvents();(n.sortable||n.colMenu)&&(n.onDownEvents(),n.$on("$destroy",function(){n.offAllEvents()}))};y();b=n.grid.registerDataChangeCallback(y,[f.dataChange.COLUMN]);n.$on("$destroy",b);n.handleClick=function(t){var i=!1;t.shiftKey&&(i=!0);c.grid.sortColumn(n.col,i).then(function(){c.columnMenuScope&&c.columnMenuScope.hideMenu();c.grid.refresh()})};n.toggleMenu=function(t){t.stopPropagation();c.columnMenuScope.menuShown?c.columnMenuScope.col===n.col?c.columnMenuScope.hideMenu():c.columnMenuScope.showMenu(n.col,i):c.columnMenuScope.showMenu(n.col,i)}}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeader",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout","ScrollEvent",function(n,t,i,r,u,f){var e="ui-grid/ui-grid-header",o="ui-grid/ui-grid-no-header";return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(n,i,u,s){function a(){h.header=h.colContainer.header=i;var n=i[0].getElementsByClassName("ui-grid-header-canvas");h.headerCanvas=n.length>0?h.colContainer.headerCanvas=n[0]:null}function v(){if(!c.grid.isScrollingHorizontally){var t=r.normalizeScrollLeft(h.headerViewport,c.grid),i=h.colContainer.scrollHorizontal(t),n=new f(c.grid,null,h.colContainer,f.Sources.ViewPortScroll);n.newScrollLeft=t;i>-1&&(n.x={percentage:i});c.grid.scrollContainers(null,n)}}var c=s[0],h=s[1],l;n.grid=c.grid;n.colContainer=h.colContainer;a();l=n.grid.options.showHeader?n.grid.options.headerTemplate?n.grid.options.headerTemplate:e:o;r.getTemplate(l).then(function(r){var e=angular.element(r),f=t(e)(n),u;if(i.replaceWith(f),i=f,a(),h&&(u=i[0].getElementsByClassName("ui-grid-header-viewport")[0],u)){h.headerViewport=u;angular.element(u).on("scroll",v);n.$on("$destroy",function(){angular.element(u).off("scroll",v)})}n.grid.queueRefresh()})},post:function(n,t,i,u){function s(){var i=f.colContainer.visibleColumnCache,n="",t=0;return i.forEach(function(i){n=n+i.getColClassDefinition();t+=i.drawnWidth}),f.colContainer.canvasWidth=t,n}var e=u[0],f=u[1],h=e.grid,o;r.disableAnimations(t);f.header=t;o=t[0].getElementsByClassName("ui-grid-header-viewport")[0];o&&(f.headerViewport=o);e&&e.grid.registerStyleComputation({priority:15,func:s})}}}}}])}(),function(){angular.module("ui.grid").service("uiGridGridMenuService",["gridUtil","i18nService","uiGridConstants",function(n,t,i){var r={initialize:function(n,t){t.gridMenuScope=n;n.grid=t;n.registeredMenuItems=[];n.$on("$destroy",function(){n.grid&&n.grid.gridMenuScope&&(n.grid.gridMenuScope=null);n.grid&&(n.grid=null);n.registeredMenuItems&&(n.registeredMenuItems=null)});n.registeredMenuItems=[];t.api.registerMethod("core","addToGridMenu",r.addToGridMenu);t.api.registerMethod("core","removeFromGridMenu",r.removeFromGridMenu)},addToGridMenu:function(t,i){angular.isArray(i)?t.gridMenuScope?(t.gridMenuScope.registeredMenuItems=t.gridMenuScope.registeredMenuItems?t.gridMenuScope.registeredMenuItems:[],t.gridMenuScope.registeredMenuItems=t.gridMenuScope.registeredMenuItems.concat(i)):n.logError("Asked to addToGridMenu, but gridMenuScope not present.  Timing issue?  Please log issue with ui-grid"):n.logError("addToGridMenu: menuItems must be an array, and is not, not adding any items")},removeFromGridMenu:function(t,i){var r=-1;t&&t.gridMenuScope&&t.gridMenuScope.registeredMenuItems.forEach(function(t,u){t.id===i&&(r>-1?n.logError("removeFromGridMenu: found multiple items with the same id, removing only the last"):r=u)});r>-1&&t.gridMenuScope.registeredMenuItems.splice(r,1)},getMenuItems:function(i){var u=[],f;return i.grid.options.gridMenuCustomItems&&(angular.isArray(i.grid.options.gridMenuCustomItems)?u=u.concat(i.grid.options.gridMenuCustomItems):n.logError("gridOptions.gridMenuCustomItems must be an array, and is not")),f=[{title:t.getSafeText("gridMenu.clearAllFilters"),action:function(){i.grid.clearAllFilters(undefined,!0,undefined)},shown:function(){return i.grid.options.enableFiltering},order:100}],u=u.concat(f),u=u.concat(i.registeredMenuItems),i.grid.options.gridMenuShowHideColumns!==!1&&(u=u.concat(r.showHideColumns(i))),u.sort(function(n,t){return n.order-t.order}),u},showHideColumns:function(n){var i=[];return!n.grid.options.columnDefs||n.grid.options.columnDefs.length===0||n.grid.columns.length===0?i:(i.push({title:t.getSafeText("gridMenu.columns"),order:300}),n.grid.options.gridMenuTitleFilter=n.grid.options.gridMenuTitleFilter?n.grid.options.gridMenuTitleFilter:function(n){return n},n.grid.options.columnDefs.forEach(function(t,u){if(t.enableHiding!==!1){var f={icon:"ui-grid-icon-ok",action:function(n){n.stopPropagation();r.toggleColumnVisibility(this.context.gridCol)},shown:function(){return this.context.gridCol.colDef.visible===!0||this.context.gridCol.colDef.visible===undefined},context:{gridCol:n.grid.getColumn(t.name||t.field)},leaveOpen:!0,order:301+u*2};r.setMenuItemTitle(f,t,n.grid);i.push(f);f={icon:"ui-grid-icon-cancel",action:function(n){n.stopPropagation();r.toggleColumnVisibility(this.context.gridCol)},shown:function(){return!(this.context.gridCol.colDef.visible===!0||this.context.gridCol.colDef.visible===undefined)},context:{gridCol:n.grid.getColumn(t.name||t.field)},leaveOpen:!0,order:301+u*2+1};r.setMenuItemTitle(f,t,n.grid);i.push(f)}}),i)},setMenuItemTitle:function(t,i,r){var u=r.options.gridMenuTitleFilter(i.displayName||n.readableColumnName(i.name)||i.field);typeof u=="string"?t.title=u:u.then?(t.title="",u.then(function(n){t.title=n},function(n){t.title=n})):(n.logError("Expected gridMenuTitleFilter to return a string or a promise, it has returned neither, bad config"),t.title="badconfig")},toggleColumnVisibility:function(n){n.colDef.visible=!(n.colDef.visible===!0||n.colDef.visible===undefined);n.grid.refresh();n.grid.api.core.notifyDataChange(i.dataChange.COLUMN);n.grid.api.core.raise.columnVisibilityChanged(n)}};return r}]).directive("uiGridMenuButton",["gridUtil","uiGridConstants","uiGridGridMenuService","i18nService",function(n,t,i,r){return{priority:0,scope:!0,require:["^uiGrid"],templateUrl:"ui-grid/ui-grid-menu-button",replace:!0,link:function(t,u,f,e){var o=e[0];t.i18n={aria:r.getSafeText("gridMenu.aria")};i.initialize(t,o.grid);t.shown=!1;t.toggleMenu=function(){t.shown?(t.$broadcast("hide-menu"),t.shown=!1):(t.menuItems=i.getMenuItems(t),t.$broadcast("show-menu"),t.shown=!0)};t.$on("menu-hidden",function(){t.shown=!1;n.focus.bySelector(u,".ui-grid-icon-container")})}}}])}(),function(){angular.module("ui.grid").directive("uiGridMenu",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","i18nService",function(n,t,i,r,u,f,e){return{priority:0,scope:{menuItems:"=",autoHide:"=?"},require:"?^uiGrid",templateUrl:"ui-grid/uiGridMenu",replace:!1,link:function(n,r,o,s){var c,h;if(n.dynamicStyles="",s&&(c=s.grid.gridHeight-30,n.dynamicStyles=[".grid"+s.grid.id+" .ui-grid-menu-mid {","max-height: "+c+"px;","}"].join(" ")),n.i18n={close:e.getSafeText("columnMenu.close")},n.showMenu=function(i,f){n.shown?n.shownMid||(n.shownMid=!0,n.$emit("menu-shown")):(n.shown=!0,t(function(){n.shownMid=!0;n.$emit("menu-shown")}));var e="click";f&&f.originalEvent&&f.originalEvent.type&&f.originalEvent.type==="touchstart"&&(e=f.originalEvent.type);angular.element(document).off("click touchstart",h);t(function(){angular.element(document).on(e,h)});u.focus.bySelector(r,"button[type=button]",!0)},n.hideMenu=function(){n.shown&&(n.shownMid=!1,t(function(){n.shownMid||(n.shown=!1,n.$emit("menu-hidden"))},200));angular.element(document).off("click touchstart",h)},n.$on("hide-menu",function(t,i){n.hideMenu(t,i)}),n.$on("show-menu",function(t,i){n.showMenu(t,i)}),h=function(){n.shown&&n.$apply(function(){n.hideMenu()})},(typeof n.autoHide=="undefined"||n.autoHide===undefined)&&(n.autoHide=!0),n.autoHide)angular.element(i).on("resize",h);n.$on("$destroy",function(){angular.element(document).off("click touchstart",h)});n.$on("$destroy",function(){angular.element(i).off("resize",h)});s&&n.$on("$destroy",s.grid.api.core.on.scrollBegin(n,h));n.$on("$destroy",n.$on(f.events.ITEM_DRAGGING,h))},controller:["$scope","$element","$attrs",function(){var n=this}]}}]).directive("uiGridMenuItem",["gridUtil","$compile","i18nService",function(n,t,i){return{priority:0,scope:{name:"=",active:"=",action:"=",icon:"=",shown:"=",context:"=",templateUrl:"=",leaveOpen:"=",screenReaderOnly:"="},require:["?^uiGrid","^uiGridMenu"],templateUrl:"ui-grid/uiGridMenuItem",replace:!1,compile:function(){return{pre:function(i,r,u,f){var e=f[0],o=f[1];i.templateUrl&&n.getTemplate(i.templateUrl).then(function(n){var u=angular.element(n),f=t(u)(i);r.replaceWith(f)})},post:function(t,r,u,f){var e=f[0],o=f[1];(typeof t.shown=="undefined"||t.shown===null)&&(t.shown=function(){return!0});t.itemShown=function(){var n={};return t.context&&(n.context=t.context),typeof e!="undefined"&&e&&(n.grid=e.grid),t.shown.call(n)};t.itemAction=function(i,u){if(n.logDebug("itemAction"),i.stopPropagation(),typeof t.action=="function"){var f={};t.context&&(f.context=t.context);typeof e!="undefined"&&e&&(f.grid=e.grid);t.action.call(f,i,u);t.leaveOpen?n.focus.bySelector(angular.element(n.closestElm(r,".ui-grid-menu-items")),"button[type=button]",!0):t.$emit("hide-menu")}};t.i18n=i.get()}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid");angular.forEach([{tag:"Src",method:"attr"},{tag:"Text",method:"text"},{tag:"Href",method:"attr"},{tag:"Class",method:"addClass"},{tag:"Html",method:"html"},{tag:"Alt",method:"attr"},{tag:"Style",method:"css"},{tag:"Value",method:"attr"},{tag:"Id",method:"attr"},{tag:"Id",directiveName:"IdGrid",method:"attr",appendGridId:!0},{tag:"Title",method:"attr"},{tag:"Label",method:"attr",aria:!0},{tag:"Labelledby",method:"attr",aria:!0},{tag:"Labelledby",directiveName:"LabelledbyGrid",appendGridId:!0,method:"attr",aria:!0},{tag:"Describedby",method:"attr",aria:!0},{tag:"Describedby",directiveName:"DescribedbyGrid",appendGridId:!0,method:"attr",aria:!0}],function(t){var r="uiGridOneBind",i=(t.aria?r+"Aria":r)+(t.directiveName?t.directiveName:t.tag);n.directive(i,["gridUtil",function(n){return{restrict:"A",require:["?uiGrid","?^uiGrid"],link:function(r,u,f,e){var o=function(t){var u,f;if(r.grid)u=r.grid;else if(r.col&&r.col.grid)u=r.col.grid;else if(!e.some(function(n){if(n&&n.grid)return u=n.grid,!0})){n.logError("["+i+"] A valid grid could not be found to bind id. Are you using this directive within the correct scope? Trying to generate id: [gridID]-"+t);throw new Error("No valid grid could be found");}return u&&(f=new RegExp(u.id.toString()),f.test(t)||(t=u.id.toString()+"-"+t)),t},s=r.$watch(f[i],function(n){var i,r,f;if(n){t.appendGridId&&(i=null,angular.forEach(n.split(" "),function(n){i=(i?i+" ":"")+o(n)}),n=i);switch(t.method){case"attr":t.aria?u[t.method]("aria-"+t.tag.toLowerCase(),n):u[t.method](t.tag.toLowerCase(),n);break;case"addClass":if(angular.isObject(n)&&!angular.isArray(n)){if(r=[],f=!1,angular.forEach(n,function(n,t){n!==null&&typeof n!="undefined"&&(f=!0,n&&r.push(t))}),!f)return;n=r}if(n)u.addClass(angular.isArray(n)?n.join(" "):n);else return;break;default:u[t.method](n)}s()}},!0)}}}])})}(),function(){"use strict";var n=angular.module("ui.grid");n.directive("uiGridRenderContainer",["$timeout","$document","uiGridConstants","gridUtil","ScrollEvent",function(n,t,i,r,u){return{replace:!0,transclude:!0,templateUrl:"ui-grid/uiGridRenderContainer",require:["^uiGrid","uiGridRenderContainer"],scope:{containerId:"=",rowContainerName:"=",colContainerName:"=",bindScrollHorizontal:"=",bindScrollVertical:"=",enableVerticalScrollbar:"=",enableHorizontalScrollbar:"="},controller:"uiGridRenderContainer as RenderContainer",compile:function(){return{pre:function(n,t,i,r){var s=r[0],f=r[1],u=n.grid=s.grid,e,o;if(!n.rowContainerName)throw"No row render container name specified";if(!n.colContainerName)throw"No column render container name specified";if(!u.renderContainers[n.rowContainerName])throw"Row render container '"+n.rowContainerName+"' is not registered.";if(!u.renderContainers[n.colContainerName])throw"Column render container '"+n.colContainerName+"' is not registered.";e=n.rowContainer=u.renderContainers[n.rowContainerName];o=n.colContainer=u.renderContainers[n.colContainerName];f.containerId=n.containerId;f.rowContainer=e;f.colContainer=o},post:function(n,t,i,f){function y(){var t="",i=o.canvasWidth,h=o.getViewportWidth(),c=l.getCanvasHeight(),r=l.getViewportHeight(),u,f;return o.needsHScrollbarPlaceholder()&&(r-=s.scrollbarHeight),u=f=o.getHeaderViewportWidth(),t+="\n .grid"+e.grid.id+" .ui-grid-render-container-"+n.containerId+" .ui-grid-canvas { width: "+i+"px; height: "+c+"px; }",t+="\n .grid"+e.grid.id+" .ui-grid-render-container-"+n.containerId+" .ui-grid-header-canvas { width: "+(i+s.scrollbarWidth)+"px; }",t+=v.explicitHeaderCanvasHeight?"\n .grid"+e.grid.id+" .ui-grid-render-container-"+n.containerId+" .ui-grid-header-canvas { height: "+v.explicitHeaderCanvasHeight+"px; }":"\n .grid"+e.grid.id+" .ui-grid-render-container-"+n.containerId+" .ui-grid-header-canvas { height: inherit; }",t+="\n .grid"+e.grid.id+" .ui-grid-render-container-"+n.containerId+" .ui-grid-viewport { width: "+h+"px; height: "+r+"px; }",t+="\n .grid"+e.grid.id+" .ui-grid-render-container-"+n.containerId+" .ui-grid-header-viewport { width: "+u+"px; }",t+="\n .grid"+e.grid.id+" .ui-grid-render-container-"+n.containerId+" .ui-grid-footer-canvas { width: "+(i+s.scrollbarWidth)+"px; }",t+("\n .grid"+e.grid.id+" .ui-grid-render-container-"+n.containerId+" .ui-grid-footer-viewport { width: "+f+"px; }")}var e=f[0],h=f[1],s=e.grid,l=h.rowContainer,o=h.colContainer,c=null,a=null,v=s.renderContainers[n.containerId];t.addClass("ui-grid-render-container-"+n.containerId);r.on.mousewheel(t,function(n){var t=new u(s,l,o,u.Sources.RenderContainerMouseWheel),e,i,v,f;n.deltaY!==0&&(e=n.deltaY*-1*n.deltaFactor,c=h.viewport[0].scrollTop,t.verticalScrollLength=l.getVerticalScrollLength(),i=(c+e)/t.verticalScrollLength,i>=1&&c<t.verticalScrollLength&&(h.viewport[0].scrollTop=t.verticalScrollLength),i<0?i=0:i>1&&(i=1),t.y={percentage:i,pixels:e});n.deltaX!==0&&(v=n.deltaX*n.deltaFactor,a=r.normalizeScrollLeft(h.viewport,s),t.horizontalScrollLength=o.getCanvasWidth()-o.getViewportWidth(),f=(a+v)/t.horizontalScrollLength,f<0?f=0:f>1&&(f=1),t.x={percentage:f,pixels:v});n.deltaY!==0&&(t.atTop(c)||t.atBottom(c))||n.deltaX!==0&&(t.atLeft(a)||t.atRight(a))||(n.preventDefault(),n.stopPropagation(),t.fireThrottledScrollingEvent("",t))});t.bind("$destroy",function(){t.unbind("keydown");["touchstart","touchmove","touchend","keydown","wheel","mousewheel","DomMouseScroll","MozMousePixelScroll"].forEach(function(n){t.unbind(n)})});e.grid.registerStyleComputation({priority:6,func:y})}}}}}]);n.controller("uiGridRenderContainer",["$scope","gridUtil",function(){}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridRow",["gridUtil",function(){return{replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:{row:"=uiGridRow",rowRenderIndex:"="},compile:function(){return{pre:function(n,t,i,r){function o(){n.row.getRowTemplateFn.then(function(i){var r=n.$new();i(r,function(n){u&&(u.remove(),e.$destroy());t.empty().append(n);u=n;e=r})})}var f=r[0],s=r[1],h=f.grid,u,e;n.grid=f.grid;n.colContainer=s.colContainer;o();n.$watch("row.getRowTemplateFn",function(n,t){n!==t&&o()})},post:function(){}}}}}])}(),function(){angular.module("ui.grid").directive("uiGridStyle",["gridUtil","$interpolate",function(n,t){return{link:function(n,i){var r=t(i.text(),!0);r&&n.$watch(r,function(n){i.text(n)})}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridViewport",["gridUtil","ScrollEvent","uiGridConstants","$log",function(n,t){return{replace:!0,scope:{},controllerAs:"Viewport",templateUrl:"ui-grid/uiGridViewport",require:["^uiGrid","^uiGridRenderContainer"],link:function(i,r,u,f){function a(){var f=r[0].scrollTop,e=n.normalizeScrollLeft(r,o),c=h.scrollVertical(f),l=s.scrollHorizontal(e),u=new t(o,h,s,t.Sources.ViewPortScroll);u.newScrollLeft=e;u.newScrollTop=f;l>-1&&(u.x={percentage:l});c>-1&&(u.y={percentage:c});o.scrollContainers(i.$parent.containerId,u)}function v(n){e.prevScrollArgs=n;var t=n.getNewScrollTop(h,e.viewport);r[0].scrollTop=t}function y(t){e.prevScrollArgs=t;var i=t.getNewScrollLeft(s,e.viewport);r[0].scrollLeft=n.denormalizeScrollLeft(e.viewport,i,o)}function p(t){var i=t.getNewScrollLeft(s,e.viewport);e.headerViewport&&(e.headerViewport.scrollLeft=n.denormalizeScrollLeft(e.viewport,i,o))}function w(t){var i=t.getNewScrollLeft(s,e.viewport);e.footerViewport&&(e.footerViewport.scrollLeft=n.denormalizeScrollLeft(e.viewport,i,o))}var c=f[0],e=f[1],l;i.containerCtrl=e;var h=e.rowContainer,s=e.colContainer,o=c.grid;i.grid=c.grid;i.rowContainer=e.rowContainer;i.colContainer=e.colContainer;e.viewport=r;r.on("scroll",a);l=!1;i.$parent.bindScrollVertical&&o.addVerticalScrollSync(i.$parent.containerId,v);i.$parent.bindScrollHorizontal&&(o.addHorizontalScrollSync(i.$parent.containerId,y),o.addHorizontalScrollSync(i.$parent.containerId+"header",p),o.addHorizontalScrollSync(i.$parent.containerId+"footer",w))},controller:["$scope",function(n){this.rowStyle=function(t){var u=n.rowContainer,i=n.colContainer,r={},f;return t===0&&u.currentTopRow!==0&&(f=u.currentTopRow*u.grid.options.rowHeight,r["margin-top"]=f+"px"),i.currentFirstColumn!==0&&(i.grid.isRTL()?r["margin-right"]=i.columnOffset+"px":r["margin-left"]=i.columnOffset+"px"),r}}]}}])}(),function(){angular.module("ui.grid").directive("uiGridVisible",function(){return function(n,t,i){n.$watch(i.uiGridVisible,function(n){t[n?"removeClass":"addClass"]("ui-grid-invisible")})}})}(),function(){"use strict";function n(n,t,i,r,u,f){return{templateUrl:"ui-grid/ui-grid",scope:{uiGrid:"="},replace:!0,transclude:!0,controller:"uiGridController",compile:function(){return{post:function(n,t,e,o){function c(){t[0].offsetWidth<=0&&h<y?(setTimeout(c,v),h++):i(l)}function p(){angular.element(r).on("resize",a);t.on("$destroy",function(){angular.element(r).off("resize",a)});n.$watch(function(){return s.hasLeftContainer()},function(n,t){n!==t&&s.refreshCanvas(!0)});n.$watch(function(){return s.hasRightContainer()},function(n,t){n!==t&&s.refreshCanvas(!0)})}function l(){s.gridWidth=n.gridWidth=u.elementWidth(t);s.canvasWidth=o.grid.gridWidth;s.gridHeight=n.gridHeight=u.elementHeight(t);s.gridHeight<=s.options.rowHeight&&s.options.enableMinHeightCheck&&w();s.refreshCanvas(!0)}function w(){var l=s.options.minRowsToShow*s.options.rowHeight,r=s.options.showHeader?s.options.headerRowHeight:0,a=s.calcFooterHeight(),e=0,i,o,h,c;s.options.enableHorizontalScrollbar===f.scrollbars.ALWAYS&&(e=u.getScrollbarWidth());i=0;angular.forEach(s.options.columnDefs,function(n){n.hasOwnProperty("filter")?i<1&&(i=1):n.hasOwnProperty("filters")&&i<n.filters.length&&(i=n.filters.length)});s.options.enableFiltering&&(o=s.options.columnDefs.every(function(n){return n.enableFiltering===!1}),o||i++);h=i*r;c=r+l+a+e+h;t.css("height",c+"px");s.gridHeight=n.gridHeight=u.elementHeight(t)}function a(){s.gridWidth=n.gridWidth=u.elementWidth(t);s.gridHeight=n.gridHeight=u.elementHeight(t);s.refreshCanvas(!0)}var s=o.grid;o.scrollbars=[];s.element=t;var v=100,y=20,h=0;p();l();s.renderingComplete();c()}}}}}angular.module("ui.grid").controller("uiGridController",["$scope","$element","$attrs","gridUtil","$q","uiGridConstants","$templateCache","gridClassFactory","$timeout","$parse","$compile",function(n,t,i,r,u,f,e,o,s,h,c){function y(n,t){n&&n!==t&&(l.grid.options.columnDefs=n,l.grid.buildColumns({orderByColumnDefs:!0}).then(function(){l.grid.preCompileCellTemplates();l.grid.callDataChangeCallbacks(f.dataChange.COLUMN)}))}function v(t){var e=[],r;l.grid.options.fastWatch&&(t=angular.isString(n.uiGrid.data)?l.grid.appScope[n.uiGrid.data]:n.uiGrid.data);p=t;t&&(r=l.grid.columns.length>(l.grid.rowHeaderColumns?l.grid.rowHeaderColumns.length:0),!r&&!i.uiGridColumns&&l.grid.options.columnDefs.length===0&&t.length>0&&l.grid.buildColumnDefsFromData(t),!r&&(l.grid.options.columnDefs.length>0||t.length>0)&&e.push(l.grid.buildColumns().then(function(){l.grid.preCompileCellTemplates()})),u.all(e).then(function(){l.grid.modifyRows(p).then(function(){l.grid.redrawInPlace(!0);n.$evalAsync(function(){l.grid.refreshCanvas(!0);l.grid.callDataChangeCallbacks(f.dataChange.ROW)})})}))}var l=this,a,p,w;l.grid=o.createGrid(n.uiGrid);l.grid.appScope=l.grid.appScope||n.$parent;t.addClass("grid"+l.grid.id);l.grid.rtl=r.getStyles(t[0]).direction==="rtl";n.grid=l.grid;i.uiGridColumns&&i.$observe("uiGridColumns",function(n){l.grid.options.columnDefs=n;l.grid.buildColumns().then(function(){l.grid.preCompileCellTemplates();l.grid.refreshCanvas(!0)})});a=[];l.grid.options.fastWatch?(l.uiGrid=n.uiGrid,angular.isString(n.uiGrid.data)?(a.push(n.$parent.$watch(n.uiGrid.data,v)),a.push(n.$parent.$watch(function(){return l.grid.appScope[n.uiGrid.data]?l.grid.appScope[n.uiGrid.data].length:undefined},v))):(a.push(n.$parent.$watch(function(){return n.uiGrid.data},v)),a.push(n.$parent.$watch(function(){return n.uiGrid.data.length},v))),a.push(n.$parent.$watch(function(){return n.uiGrid.columnDefs},y)),a.push(n.$parent.$watch(function(){return n.uiGrid.columnDefs.length},y))):(angular.isString(n.uiGrid.data)?a.push(n.$parent.$watchCollection(n.uiGrid.data,v)):a.push(n.$parent.$watchCollection(function(){return n.uiGrid.data},v)),a.push(n.$parent.$watchCollection(function(){return n.uiGrid.columnDefs},y)));w=n.$watch(function(){return l.grid.styleComputations},function(){l.grid.refreshCanvas(!0)});n.$on("$destroy",function(){a.forEach(function(n){n()});w()});l.fireEvent=function(t,i){(typeof i=="undefined"||i===undefined)&&(i={});(typeof i.grid=="undefined"||i.grid===undefined)&&(i.grid=l.grid);n.$broadcast(t,i)};l.innerCompile=function(t){c(t)(n)}}]);angular.module("ui.grid").directive("uiGrid",n);n.$inject=["$compile","$templateCache","$timeout","$window","gridUtil","uiGridConstants"]}(),function(){"use strict";angular.module("ui.grid").directive("uiGridPinnedContainer",["gridUtil",function(){return{restrict:"EA",replace:!0,template:'<div class="ui-grid-pinned-container"><div ui-grid-render-container container-id="side" row-container-name="\'body\'" col-container-name="side" bind-scroll-vertical="true" class="{{ side }} ui-grid-render-container-{{ side }}"><\/div><\/div>',scope:{side:"=uiGridPinnedContainer"},require:"^uiGrid",compile:function(){return{post:function(n,t,i,r){function o(){var t=this,n=0,i;return t.visibleColumnCache.forEach(function(t){n+=t.drawnWidth}),i=t.getViewportAdjustment(),n=n+i.width}function e(){var i,r,t,f;if(n.side==="left"||n.side==="right"){for(i=u.renderContainers[n.side].visibleColumnCache,r=0,t=0;t<i.length;t++)f=i[t],r+=f.drawnWidth||f.width||0;return r}}function s(){var i="";return(n.side==="left"||n.side==="right")&&(f=e(),t.attr("style",null),i+=".grid"+u.id+" .ui-grid-pinned-container-"+n.side+", .grid"+u.id+" .ui-grid-pinned-container-"+n.side+" .ui-grid-render-container-"+n.side+" .ui-grid-viewport { width: "+f+"px; } "),i}var u=r.grid,f=0;t.addClass("ui-grid-pinned-container-"+n.side);(n.side==="left"||n.side==="right")&&(u.renderContainers[n.side].getViewportWidth=o);u.renderContainers.body.registerViewportAdjuster(function(t){return f=e(),t.width-=f,t.side=n.side,t});u.registerStyleComputation({priority:15,func:s})}}}}}])}(),function(){angular.module("ui.grid").factory("Grid",["$q","$compile","$parse","gridUtil","uiGridConstants","GridOptions","GridColumn","GridRow","GridApi","rowSorter","rowSearcher","GridRenderContainer","$timeout","ScrollEvent",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function p(){}var y=function(n){function i(n){t.isScrollingVertically=!1;t.api.core.raise.scrollEnd(n);t.scrollDirection=u.scrollDirection.NONE}function c(n){t.isScrollingHorizontally=!1;t.api.core.raise.scrollEnd(n);t.scrollDirection=u.scrollDirection.NONE}var t=this,e,o,a,v;if(n!==undefined&&typeof n.id!="undefined"&&n.id){if(!/^[_a-zA-Z0-9-]+$/.test(n.id))throw new Error("Grid id '"+n.id+'" is invalid. It must follow CSS selector syntax rules.');}else throw new Error("No ID provided. An ID must be given when creating a grid.");t.id=n.id;delete n.id;t.options=f.initialize(n);t.appScope=t.options.appScopeProvider;t.headerHeight=t.options.headerRowHeight;t.footerHeight=t.calcFooterHeight();t.columnFooterHeight=t.calcColumnFooterHeight();t.rtl=!1;t.gridHeight=0;t.gridWidth=0;t.columnBuilders=[];t.rowBuilders=[];t.rowsProcessors=[];t.columnsProcessors=[];t.styleComputations=[];t.viewportAdjusters=[];t.rowHeaderColumns=[];t.dataChangeCallbacks={};t.verticalScrollSyncCallBackFns={};t.horizontalScrollSyncCallBackFns={};t.renderContainers={};t.renderContainers.body=new l("body",t);t.cellValueGetterCache={};t.getRowTemplateFn=null;t.rows=[];t.columns=[];t.isScrollingVertically=!1;t.isScrollingHorizontally=!1;t.scrollDirection=u.scrollDirection.NONE;t.disableScrolling=!1;e=r.debounce(i,t.options.scrollDebounce);o=r.debounce(i,0);a=r.debounce(c,t.options.scrollDebounce);v=r.debounce(c,0);t.flagScrollingVertically=function(n){t.isScrollingVertically||t.isScrollingHorizontally||t.api.core.raise.scrollBegin(n);t.isScrollingVertically=!0;t.options.scrollDebounce!==0&&n.withDelay?e(n):o(n)};t.flagScrollingHorizontally=function(n){t.isScrollingVertically||t.isScrollingHorizontally||t.api.core.raise.scrollBegin(n);t.isScrollingHorizontally=!0;t.options.scrollDebounce!==0&&n.withDelay?a(n):v(n)};t.scrollbarHeight=0;t.scrollbarWidth=0;t.options.enableHorizontalScrollbar===u.scrollbars.ALWAYS&&(t.scrollbarHeight=r.getScrollbarWidth());t.options.enableVerticalScrollbar===u.scrollbars.ALWAYS&&(t.scrollbarWidth=r.getScrollbarWidth());t.api=new s(t);t.api.registerMethod("core","refresh",this.refresh);t.api.registerMethod("core","queueGridRefresh",this.queueGridRefresh);t.api.registerMethod("core","refreshRows",this.refreshRows);t.api.registerMethod("core","queueRefresh",this.queueRefresh);t.api.registerMethod("core","handleWindowResize",this.handleWindowResize);t.api.registerMethod("core","addRowHeaderColumn",this.addRowHeaderColumn);t.api.registerMethod("core","scrollToIfNecessary",function(n,i){return t.scrollToIfNecessary(n,i)});t.api.registerMethod("core","scrollTo",function(n,i){return t.scrollTo(n,i)});t.api.registerMethod("core","registerRowsProcessor",this.registerRowsProcessor);t.api.registerMethod("core","registerColumnsProcessor",this.registerColumnsProcessor);t.api.registerMethod("core","sortHandleNulls",h.handleNulls);t.api.registerEvent("core","sortChanged");t.api.registerEvent("core","columnVisibilityChanged");t.api.registerMethod("core","notifyDataChange",this.notifyDataChange);t.api.registerMethod("core","clearAllFilters",this.clearAllFilters);t.registerDataChangeCallback(t.columnRefreshCallback,[u.dataChange.COLUMN]);t.registerDataChangeCallback(t.processRowsCallback,[u.dataChange.EDIT]);t.registerDataChangeCallback(t.updateFooterHeightCallback,[u.dataChange.OPTIONS]);t.registerStyleComputation({priority:10,func:t.getFooterStyles})};return y.prototype.calcFooterHeight=function(){if(!this.hasFooter())return 0;var n=0;return this.options.showGridFooter&&(n+=this.options.gridFooterHeight),n+this.calcColumnFooterHeight()},y.prototype.calcColumnFooterHeight=function(){var n=0;return this.options.showColumnFooter&&(n+=this.options.columnFooterHeight),n},y.prototype.getFooterStyles=function(){var n=".grid"+this.id+" .ui-grid-footer-aggregates-row { height: "+this.options.columnFooterHeight+"px; }";return n+(" .grid"+this.id+" .ui-grid-footer-info { height: "+this.options.gridFooterHeight+"px; }")},y.prototype.hasFooter=function(){return this.options.showGridFooter||this.options.showColumnFooter},y.prototype.isRTL=function(){return this.rtl},y.prototype.registerColumnBuilder=function(n){this.columnBuilders.push(n)},y.prototype.buildColumnDefsFromData=function(n){this.options.columnDefs=r.getColumnsFromData(n,this.options.excludeProperties)},y.prototype.registerRowBuilder=function(n){this.rowBuilders.push(n)},y.prototype.registerDataChangeCallback=function(n,t,i){var f=r.nextUid(),e,o;return t||(t=[u.dataChange.ALL]),Array.isArray(t)||r.logError("Expected types to be an array or null in registerDataChangeCallback, value passed was: "+t),this.dataChangeCallbacks[f]={callback:n,types:t,_this:i},e=this,o=function(){delete e.dataChangeCallbacks[f]},o},y.prototype.callDataChangeCallbacks=function(n){angular.forEach(this.dataChangeCallbacks,function(t){(t.types.indexOf(u.dataChange.ALL)!==-1||t.types.indexOf(n)!==-1||n===u.dataChange.ALL)&&(t._this?t.callback.apply(t._this,this):t.callback(this))},this)},y.prototype.notifyDataChange=function(n){var t=u.dataChange;n===t.ALL||n===t.COLUMN||n===t.EDIT||n===t.ROW||n===t.OPTIONS?this.callDataChangeCallbacks(n):r.logError("Notified of a data change, but the type was not recognised, so no action taken, type was: "+n)},y.prototype.columnRefreshCallback=function(n){n.buildColumns();n.queueGridRefresh()},y.prototype.processRowsCallback=function(n){n.queueGridRefresh()},y.prototype.updateFooterHeightCallback=function(n){n.footerHeight=n.calcFooterHeight();n.columnFooterHeight=n.calcColumnFooterHeight()},y.prototype.getColumn=function(n){var t=this.columns.filter(function(t){return t.colDef.name===n});return t.length>0?t[0]:null},y.prototype.getColDef=function(n){var t=this.options.columnDefs.filter(function(t){return t.name===n});return t.length>0?t[0]:null},y.prototype.assignTypes=function(){var n=this;n.options.columnDefs.forEach(function(t,i){if(!t.type){var f=new e(t,i,n),u=n.rows.length>0?n.rows[0]:null;t.type=u?r.guessType(n.getCellValue(u,f)):"string"}})},y.prototype.isRowHeaderColumn=function(n){return this.rowHeaderColumns.indexOf(n)!==-1},y.prototype.addRowHeaderColumn=function(n){var t=this,i=new e(n,r.nextUid(),t);i.isRowHeader=!0;t.isRTL()?(t.createRightContainer(),i.renderContainer="right"):(t.createLeftContainer(),i.renderContainer="left");t.columnBuilders[0](n,i,t.options).then(function(){i.enableFiltering=!1;i.enableSorting=!1;i.enableHiding=!1;t.rowHeaderColumns.push(i);t.buildColumns().then(function(){t.preCompileCellTemplates();t.queueGridRefresh()})})},y.prototype.getOnlyDataColumns=function(){var n=this,t=[];return n.columns.forEach(function(i){n.rowHeaderColumns.indexOf(i)===-1&&t.push(i)}),t},y.prototype.buildColumns=function(t){var s={orderByColumnDefs:!1},o,c;angular.extend(s,t);for(var i=this,h=[],f=i.rowHeaderColumns.length,u=0;u<i.columns.length;u++)i.getColDef(i.columns[u].name)||(i.columns.splice(u,1),u--);if(i.rowHeaderColumns.forEach(function(n){i.columns.unshift(n)}),i.options.columnDefs.forEach(function(n,t){i.preprocessColDef(n);var u=i.getColumn(n.name);u?u.updateColumnDef(n,!1):(u=new e(n,r.nextUid(),i),i.columns.splice(t+f,0,u));i.columnBuilders.forEach(function(t){h.push(t.call(i,n,u,i.options))})}),!!s.orderByColumnDefs){for(o=i.columns.slice(0),c=Math.min(i.options.columnDefs.length,i.columns.length),u=0;u<c;u++)o[u+f]=i.columns[u+f].name!==i.options.columnDefs[u].name?i.getColumn(i.options.columnDefs[u].name):i.columns[u+f];i.columns.length=0;Array.prototype.splice.apply(i.columns,[0,0].concat(o))}return n.all(h).then(function(){i.rows.length>0&&i.assignTypes()})},y.prototype.preCompileCellTemplates=function(){var i=this,n=function(n){var r=n.cellTemplate.replace(u.MODEL_COL_FIELD,i.getQualifiedColField(n)),f;r=r.replace(u.COL_FIELD,"grid.getCellValue(row, col)");f=t(r);n.compiledElementFn=f;n.compiledElementFnDefer&&n.compiledElementFnDefer.resolve(n.compiledElementFn)};this.columns.forEach(function(t){t.cellTemplate?n(t):t.cellTemplatePromise&&t.cellTemplatePromise.then(function(){n(t)})})},y.prototype.getQualifiedColField=function(n){return"row.entity."+r.preEval(n.field)},y.prototype.createLeftContainer=function(){this.hasLeftContainer()||(this.renderContainers.left=new l("left",this,{disableColumnOffset:!0}))},y.prototype.createRightContainer=function(){this.hasRightContainer()||(this.renderContainers.right=new l("right",this,{disableColumnOffset:!0}))},y.prototype.hasLeftContainer=function(){return this.renderContainers.left!==undefined},y.prototype.hasRightContainer=function(){return this.renderContainers.right!==undefined},y.prototype.preprocessColDef=function(n){var r=this,t,i;if(!n.field&&!n.name)throw new Error("colDef.name or colDef.field property is required");if(n.name===undefined&&n.field!==undefined){for(t=n.field,i=2;r.getColumn(t);)t=n.field+i.toString(),i++;n.name=t}},y.prototype.newInN=function(n,t,i,r){for(var e,o,u,h,c=this,s=[],f=0;f<t.length;f++){for(e=r?t[f][r]:t[f],o=!1,u=0;u<n.length;u++)if(h=i?n[u][i]:n[u],c.options.rowEquality(e,h)){o=!0;break}o||s.push(e)}return s},y.prototype.getRow=function(n,t){var r=this,i;return t=typeof t=="undefined"?r.rows:t,i=t.filter(function(t){return r.options.rowEquality(t.entity,n)}),i.length>0?i[0]:null},y.prototype.modifyRows=function(t){var i=this,f=i.rows.slice(0),e=i.rowHashMap||i.createRowHashMap(),r,u;return i.rowHashMap=i.createRowHashMap(),i.rows.length=0,t.forEach(function(n,t){var r;r=i.options.enableRowHashing?e.get(n):i.getRow(n,f);r||(r=i.processRowBuilders(new o(n,t,i)));i.rows.push(r);i.rowHashMap.put(n,r)}),i.assignTypes(),r=n.when(i.processRowsProcessors(i.rows)).then(function(n){return i.setVisibleRows(n)}),u=n.when(i.processColumnsProcessors(i.columns)).then(function(n){return i.setVisibleColumns(n)}),n.all([r,u])},y.prototype.addRows=function(n){for(var r,u,t=this,f=t.rows.length,i=0;i<n.length;i++)r=t.processRowBuilders(new o(n[i],i+f,t)),t.options.enableRowHashing&&(u=t.rowHashMap.get(r.entity),u&&(u.row=r)),t.rows.push(r)},y.prototype.processRowBuilders=function(n){var t=this;return t.rowBuilders.forEach(function(i){i.call(t,n,t.options)}),n},y.prototype.registerStyleComputation=function(n){this.styleComputations.push(n)},y.prototype.registerRowsProcessor=function(n,t){if(!angular.isFunction(n))throw"Attempt to register non-function rows processor: "+n;this.rowsProcessors.push({processor:n,priority:t});this.rowsProcessors.sort(function(n,t){return n.priority-t.priority})},y.prototype.removeRowsProcessor=function(n){var t=-1;this.rowsProcessors.forEach(function(i,r){i.processor===n&&(t=r)});t!==-1&&this.rowsProcessors.splice(t,1)},y.prototype.processRowsProcessors=function(t){function f(t,u){var e=i.rowsProcessors[t].processor;return n.when(e.call(i,u,i.columns)).then(function(n){if(!n)throw"Processor at index "+t+" did not return a set of renderable rows";if(!angular.isArray(n))throw"Processor at index "+t+" did not return an array";if(t++,t<=i.rowsProcessors.length-1)return f(t,n);r.resolve(n)})}var i=this,u=t.slice(0),e,r;return i.rowsProcessors.length===0?n.when(u):(e=0,r=n.defer(),f(0,u),r.promise)},y.prototype.setVisibleRows=function(n){var r=this,f,i,u,t,e;for(f in r.renderContainers)i=r.renderContainers[f],i.canvasHeightShouldUpdate=!0,typeof i.visibleRowCache=="undefined"?i.visibleRowCache=[]:i.visibleRowCache.length=0;for(u=0;u<n.length;u++)t=n[u],e=typeof t.renderContainer!="undefined"&&t.renderContainer?t.renderContainer:"body",t.visible&&r.renderContainers[e].visibleRowCache.push(t);r.api.core.raise.rowsRendered(this.api)},y.prototype.registerColumnsProcessor=function(n,t){if(!angular.isFunction(n))throw"Attempt to register non-function rows processor: "+n;this.columnsProcessors.push({processor:n,priority:t});this.columnsProcessors.sort(function(n,t){return n.priority-t.priority})},y.prototype.removeColumnsProcessor=function(n){var t=this.columnsProcessors.indexOf(n);typeof t!="undefined"&&t!==undefined&&this.columnsProcessors.splice(t,1)},y.prototype.processColumnsProcessors=function(t){function f(t,e){var o=i.columnsProcessors[t].processor;return n.when(o.call(i,e,i.rows)).then(function(n){if(!n)throw"Processor at index "+t+" did not return a set of renderable rows";if(!angular.isArray(n))throw"Processor at index "+t+" did not return an array";if(t++,t<=i.columnsProcessors.length-1)return f(t,r);u.resolve(r)})}var i=this,r=t.slice(0),e,u;return i.columnsProcessors.length===0?n.when(r):(e=0,u=n.defer(),f(0,r),u.promise)},y.prototype.setVisibleColumns=function(n){var i=this,u,f,r,t;for(u in i.renderContainers)f=i.renderContainers[u],f.visibleColumnCache.length=0;for(r=0;r<n.length;r++)t=n[r],t.visible&&(typeof t.renderContainer!="undefined"&&t.renderContainer?i.renderContainers[t.renderContainer].visibleColumnCache.push(t):i.renderContainers.body.visibleColumnCache.push(t))},y.prototype.handleWindowResize=function(){var n=this;return n.gridWidth=r.elementWidth(n.element),n.gridHeight=r.elementHeight(n.element),n.queueRefresh()},y.prototype.queueRefresh=function(){var n=this;return n.refreshCanceller&&a.cancel(n.refreshCanceller),n.refreshCanceller=a(function(){n.refreshCanvas(!0)}),n.refreshCanceller.then(function(){n.refreshCanceller=null}),n.refreshCanceller},y.prototype.queueGridRefresh=function(){var n=this;return n.gridRefreshCanceller&&a.cancel(n.gridRefreshCanceller),n.gridRefreshCanceller=a(function(){n.refresh(!0)}),n.gridRefreshCanceller.then(function(){n.gridRefreshCanceller=null}),n.gridRefreshCanceller},y.prototype.updateCanvasHeight=function(){var n=this,t,i;for(t in n.renderContainers)n.renderContainers.hasOwnProperty(t)&&(i=n.renderContainers[t],i.canvasHeightShouldUpdate=!0)},y.prototype.buildStyles=function(){var n=this;n.customStyles="";n.styleComputations.sort(function(n,t){return n.priority===null?1:t.priority===null?-1:n.priority===null&&t.priority===null?0:n.priority-t.priority}).forEach(function(t){var i=t.func.call(n);angular.isString(i)&&(n.customStyles+="\n"+i)})},y.prototype.minColumnsToRender=function(){var t=this,i=this.getViewportWidth(),n=0,r=0;return t.columns.forEach(function(u,f){var o,e;if(r<i)r+=u.drawnWidth,n++;else{for(o=0,e=f;e>=f-n;e--)o+=t.columns[e].drawnWidth;o<i&&n++}}),n},y.prototype.getBodyHeight=function(){return this.getViewportHeight()},y.prototype.getViewportHeight=function(){var n=this,t=this.gridHeight-this.headerHeight-this.footerHeight,i=n.getViewportAdjustment();return t+i.height},y.prototype.getViewportWidth=function(){var n=this,t=this.gridWidth,i=n.getViewportAdjustment();return t+i.width},y.prototype.getHeaderViewportWidth=function(){return this.getViewportWidth()},y.prototype.addVerticalScrollSync=function(n,t){this.verticalScrollSyncCallBackFns[n]=t},y.prototype.addHorizontalScrollSync=function(n,t){this.horizontalScrollSyncCallBackFns[n]=t},y.prototype.scrollContainers=function(n,t){var i,r,e,u,f,o;if(t.y)for(i=["body","left","right"],this.flagScrollingVertically(t),n==="body"?i=["left","right"]:n==="left"?i=["body","right"]:n==="right"&&(i=["body","left"]),r=0;r<i.length;r++)e=i[r],this.verticalScrollSyncCallBackFns[e]&&this.verticalScrollSyncCallBackFns[e](t);if(t.x)for(u=["body","bodyheader","bodyfooter"],this.flagScrollingHorizontally(t),n==="body"&&(u=["bodyheader","bodyfooter"]),f=0;f<u.length;f++)o=u[f],this.horizontalScrollSyncCallBackFns[o]&&this.horizontalScrollSyncCallBackFns[o](t)},y.prototype.registerViewportAdjuster=function(n){this.viewportAdjusters.push(n)},y.prototype.removeViewportAdjuster=function(n){var t=this.viewportAdjusters.indexOf(n);typeof t!="undefined"&&t!==undefined&&this.viewportAdjusters.splice(t,1)},y.prototype.getViewportAdjustment=function(){var t=this,n={height:0,width:0};return t.viewportAdjusters.forEach(function(t){n=t.call(this,n)}),n},y.prototype.getVisibleRowCount=function(){return this.renderContainers.body.visibleRowCache.length},y.prototype.getVisibleRows=function(){return this.renderContainers.body.visibleRowCache},y.prototype.getVisibleColumnCount=function(){return this.renderContainers.body.visibleColumnCache.length},y.prototype.searchRows=function(n){return c.search(this,n,this.columns)},y.prototype.sortByColumn=function(n){return h.sort(this,n,this.columns)},y.prototype.getCellValue=function(n,t){return typeof n.entity["$$"+t.uid]!="undefined"?n.entity["$$"+t.uid].rendered:this.options.flatEntityAccess&&typeof t.field!="undefined"?n.entity[t.field]:(t.cellValueGetterCache||(t.cellValueGetterCache=i(n.getEntityQualifiedColField(t))),t.cellValueGetterCache(n))},y.prototype.getCellDisplayValue=function(n,t){if(!t.cellDisplayGetterCache){var r=t.cellFilter?" | "+t.cellFilter:"";t.cellDisplayGetterCache=typeof n.entity["$$"+t.uid]!="undefined"?i(n.entity["$$"+t.uid].rendered+r):this.options.flatEntityAccess&&typeof t.field!="undefined"?i(n.entity[t.field]+r):i(n.getEntityQualifiedColField(t)+r)}return t.cellDisplayGetterCache(n)},y.prototype.getNextColumnSortPriority=function(){var t=this,n=0;return t.columns.forEach(function(t){t.sort&&t.sort.priority&&t.sort.priority>n&&(n=t.sort.priority)}),n+1},y.prototype.resetColumnSorting=function(n){var t=this;t.columns.forEach(function(t){t===n||t.suppressRemoveSort||(t.sort={})})},y.prototype.getColumnSorting=function(){var i=this,n=[],t;return t=i.columns.slice(0),t.sort(h.prioritySort).forEach(function(t){t.sort&&typeof t.sort.direction!="undefined"&&t.sort.direction&&(t.sort.direction===u.ASC||t.sort.direction===u.DESC)&&n.push(t)}),n},y.prototype.sortColumn=function(t,i,r){var f=this,e=null,u;if(typeof t=="undefined"||!t)throw new Error("No column parameter provided");return typeof i=="boolean"?r=i:e=i,r?t.sort.priority||(t.sort.priority=f.getNextColumnSortPriority()):(f.resetColumnSorting(t),t.sort.priority=0,t.sort.priority=f.getNextColumnSortPriority()),e?t.sort.direction=e:(u=t.sortDirectionCycle.indexOf(t.sort.direction?t.sort.direction:null),u=(u+1)%t.sortDirectionCycle.length,t.colDef&&t.suppressRemoveSort&&!t.sortDirectionCycle[u]&&(u=(u+1)%t.sortDirectionCycle.length),t.sortDirectionCycle[u]?t.sort.direction=t.sortDirectionCycle[u]:t.sort={}),f.api.core.raise.sortChanged(f,f.getColumnSorting()),n.when(t)},y.prototype.renderingComplete=function(){if(angular.isFunction(this.options.onRegisterApi))this.options.onRegisterApi(this.api);this.api.core.raise.renderingComplete(this.api)},y.prototype.createRowHashMap=function(){var t=this,n=new p;return n.grid=t,n},y.prototype.refresh=function(t){var i=this,r=i.processRowsProcessors(i.rows).then(function(n){i.setVisibleRows(n)}),u=i.processColumnsProcessors(i.columns).then(function(n){i.setVisibleColumns(n)});return n.all([r,u]).then(function(){i.redrawInPlace(t);i.refreshCanvas(!0)})},y.prototype.refreshRows=function(){var n=this;return n.processRowsProcessors(n.rows).then(function(t){n.setVisibleRows(t);n.redrawInPlace();n.refreshCanvas(!0)})},y.prototype.refreshCanvas=function(t){var f=this,e,u,o,i;t&&f.buildStyles();e=n.defer();u=[];for(o in f.renderContainers)if(f.renderContainers.hasOwnProperty(o)){if(i=f.renderContainers[o],i.canvasWidth===null||isNaN(i.canvasWidth))continue;(i.header||i.headerCanvas)&&(i.explicitHeaderHeight=i.explicitHeaderHeight||null,i.explicitHeaderCanvasHeight=i.explicitHeaderCanvasHeight||null,u.push(i))}return u.length>0?(t&&f.buildStyles(),a(function(){for(var a=!1,s=0,h=0,n,c=function(n,t){return n!==t&&(a=!0),t},l,i=0;i<u.length;i++)if(n=u[i],n.canvasWidth!==null&&!isNaN(n.canvasWidth)){if(n.header){var v=n.headerHeight=c(n.headerHeight,parseInt(r.outerElementHeight(n.header),10)),y=r.getBorderSize(n.header,"top"),p=r.getBorderSize(n.header,"bottom"),o=parseInt(v-y-p,10);o=o<0?0:o;n.innerHeaderHeight=o;!n.explicitHeaderHeight&&o>s&&(s=o)}n.headerCanvas&&(l=n.headerCanvasHeight=c(n.headerCanvasHeight,parseInt(r.outerElementHeight(n.headerCanvas),10)),!n.explicitHeaderCanvasHeight&&l>h&&(h=l))}for(i=0;i<u.length;i++)n=u[i],s>0&&typeof n.headerHeight!="undefined"&&n.headerHeight!==null&&(n.explicitHeaderHeight||n.headerHeight<s)&&(n.explicitHeaderHeight=c(n.explicitHeaderHeight,s)),h>0&&typeof n.headerCanvasHeight!="undefined"&&n.headerCanvasHeight!==null&&(n.explicitHeaderCanvasHeight||n.headerCanvasHeight<h)&&(n.explicitHeaderCanvasHeight=c(n.explicitHeaderCanvasHeight,h));t&&a&&f.buildStyles();e.resolve()})):a(function(){e.resolve()}),e.promise},y.prototype.redrawInPlace=function(n){var i=this,r,t;for(r in i.renderContainers)t=i.renderContainers[r],n?(t.adjustRows(t.prevScrollTop,null),t.adjustColumns(t.prevScrollLeft,null)):(t.adjustRows(null,t.prevScrolltopPercentage),t.adjustColumns(null,t.prevScrollleftPercentage))},y.prototype.hasLeftContainerColumns=function(){return this.hasLeftContainer()&&this.renderContainers.left.renderedColumns.length>0},y.prototype.hasRightContainerColumns=function(){return this.hasRightContainer()&&this.renderContainers.right.renderedColumns.length>0},y.prototype.scrollToIfNecessary=function(t,i){var r=this,f=new v(r,"uiGrid.scrollToIfNecessary"),rt=r.renderContainers.body.visibleRowCache,w=r.renderContainers.body.visibleColumnCache,h=r.renderContainers.body.prevScrollTop+r.headerHeight,c,l,a,tt,s,y,u,p,it;h=h<0?0:h;var b=r.renderContainers.body.prevScrollLeft,k=r.renderContainers.body.prevScrollTop+r.gridHeight-r.renderContainers.body.headerHeight-r.footerHeight-r.scrollbarWidth,d=r.renderContainers.body.prevScrollLeft+Math.ceil(r.renderContainers.body.getViewportWidth());if(t!==null){var ut=rt.indexOf(t),g=r.renderContainers.body.getCanvasHeight()-r.renderContainers.body.getViewportHeight(),e=ut*r.options.rowHeight+r.headerHeight;e=e<0?0:e;e<h?(c=r.renderContainers.body.prevScrollTop-(h-e),l=c/g,f.y={percentage:l}):e>k&&(c=e-k+r.renderContainers.body.prevScrollTop,l=c/g,f.y={percentage:l})}if(i!==null){var ft=w.indexOf(i),nt=r.renderContainers.body.getCanvasWidth()-r.renderContainers.body.getViewportWidth(),o=0;for(a=0;a<ft;a++)tt=w[a],o+=tt.drawnWidth;o=o<0?0:o;s=o+i.drawnWidth;s=s<0?0:s;o<b?(y=r.renderContainers.body.prevScrollLeft-(b-o),u=y/nt,u=u>1?1:u,f.x={percentage:u}):s>d&&(y=s-d+r.renderContainers.body.prevScrollLeft,u=y/nt,u=u>1?1:u,f.x={percentage:u})}return p=n.defer(),f.y||f.x?(f.withDelay=!1,r.scrollContainers("",f),it=r.api.core.on.scrollEnd(null,function(){p.resolve(f);it()})):p.resolve(),p.promise},y.prototype.scrollTo=function(n,t){var i=null,r=null;return n!==null&&typeof n!="undefined"&&(i=this.getRow(n)),t!==null&&typeof t!="undefined"&&(r=this.getColumn(t.name?t.name:t.field)),this.scrollToIfNecessary(i,r)},y.prototype.clearAllFilters=function(n,t,i){return n===undefined&&(n=!0),t===undefined&&(t=!1),i===undefined&&(i=!1),this.columns.forEach(function(n){n.filters.forEach(function(n){n.term=undefined;t&&(n.condition=undefined);i&&(n.flags=undefined)})}),n?this.refreshRows():void 0},p.prototype={put:function(n,t){this[this.grid.options.rowIdentity(n)]=t},get:function(n){return this[this.grid.options.rowIdentity(n)]},remove:function(n){var t=this[n=this.grid.options.rowIdentity(n)];return delete this[n],t}},y}])}(),function(){angular.module("ui.grid").factory("GridApi",["$q","$rootScope","gridUtil","uiGridConstants","GridRow","uiGridGridMenuService",function(n,t,i,r,u){function e(n,i,r,u){return t.$on(n,function(){var n=Array.prototype.slice.call(arguments);n.splice(0,1);i.apply(u?u:r.api,n)})}var f=function(n){this.grid=n;this.listeners=[];this.registerEvent("core","renderingComplete");this.registerEvent("core","filterChanged");this.registerMethod("core","setRowInvisible",u.prototype.setRowInvisible);this.registerMethod("core","clearRowInvisible",u.prototype.clearRowInvisible);this.registerMethod("core","getVisibleRows",this.grid.getVisibleRows);this.registerEvent("core","rowsVisibleChanged");this.registerEvent("core","rowsRendered");this.registerEvent("core","scrollBegin");this.registerEvent("core","scrollEnd");this.registerEvent("core","canvasHeightChanged")};return f.prototype.suppressEvents=function(n,t){var i=this,u=angular.isArray(n)?n:[n],r=i.listeners.filter(function(n){return u.some(function(t){return n.handler===t})});r.forEach(function(n){n.dereg()});t();r.forEach(function(n){n.dereg=e(n.eventId,n.handler,i.grid,n._this)})},f.prototype.registerEvent=function(n,r){var u=this,f,o;u[n]||(u[n]={});f=u[n];f.on||(f.on={},f.raise={});o=u.grid.id+n+r;f.raise[r]=function(){t.$emit.apply(t,[o].concat(Array.prototype.slice.call(arguments)))};f.on[r]=function(t,f,s){var l,h,c;if(t!==null&&typeof t.$on=="undefined"){i.logError("asked to listen on "+n+".on."+r+" but scope wasn't passed in the input parameters.  It is legitimate to pass null, but you've passed something else, so you probably forgot to provide scope rather than did it deliberately, not registering");return}return l=e(o,f,u.grid,s),h={handler:f,dereg:l,eventId:o,scope:t,_this:s},u.listeners.push(h),c=function(){h.dereg();var n=u.listeners.indexOf(h);u.listeners.splice(n,1)},t&&t.$on("$destroy",function(){c()}),c}},f.prototype.registerEventsFromObject=function(n){var i=this,t=[];angular.forEach(n,function(n,i){var r={name:i,events:[]};angular.forEach(n,function(n,t){r.events.push(t)});t.push(r)});t.forEach(function(n){n.events.forEach(function(t){i.registerEvent(n.name,t)})})},f.prototype.registerMethod=function(n,t,r,u){this[n]||(this[n]={});var f=this[n];f[t]=i.createBoundedWrapper(u||this.grid,r)},f.prototype.registerMethodsFromObject=function(n,t){var r=this,i=[];angular.forEach(n,function(n,t){var r={name:t,methods:[]};angular.forEach(n,function(n,t){r.methods.push({name:t,fn:n})});i.push(r)});i.forEach(function(n){n.methods.forEach(function(i){r.registerMethod(n.name,i.name,i.fn,t)})})},f}])}(),function(){angular.module("ui.grid").factory("GridColumn",["gridUtil","uiGridConstants","i18nService",function(n,t,i){function r(n,i,r){var u=this;u.grid=r;u.uid=i;u.updateColumnDef(n,!0);u.aggregationValue=undefined;u.updateAggregationValue=function(){if(!u.aggregationType){u.aggregationValue=undefined;return}var n=0,r=u.grid.getVisibleRows(),i=function(){var n=[];return r.forEach(function(t){var r=u.grid.getCellValue(t,u),i=Number(r);isNaN(i)||n.push(i)}),n};angular.isFunction(u.aggregationType)?u.aggregationValue=u.aggregationType(r,u):u.aggregationType===t.aggregationTypes.count?u.aggregationValue=u.grid.getVisibleRowCount():u.aggregationType===t.aggregationTypes.sum?(i().forEach(function(t){n+=t}),u.aggregationValue=n):u.aggregationType===t.aggregationTypes.avg?(i().forEach(function(t){n+=t}),n=n/i().length,u.aggregationValue=n):u.aggregationValue=u.aggregationType===t.aggregationTypes.min?Math.min.apply(null,i()):u.aggregationType===t.aggregationTypes.max?Math.max.apply(null,i()):" "};this.getAggregationValue=function(){return u.aggregationValue}}return r.prototype.hideColumn=function(){this.colDef.visible=!1},r.prototype.setPropertyOrDefault=function(n,t,i){var r=this;r[t]=typeof n[t]!="undefined"&&n[t]?n[t]:typeof r[t]!="undefined"?r[t]:i?i:{}},r.prototype.updateColumnDef=function(i,r){var u=this,e,o,s,h,f;if(u.colDef=i,i.name===undefined)throw new Error("colDef.name is required for column at index "+u.grid.options.columnDefs.indexOf(i));if(u.displayName=i.displayName===undefined?n.readableColumnName(i.name):i.displayName,!angular.isNumber(u.width)||!u.hasCustomWidth||i.allowCustomWidthOverride)if(e=i.width,o="Cannot parse column width '"+e+"' for column named '"+i.name+"'",u.hasCustomWidth=!1,angular.isString(e)||angular.isNumber(e))if(angular.isString(e))if(n.endsWith(e,"%")){if(s=e.replace(/%/g,""),h=parseInt(s,10),isNaN(h))throw new Error(o);u.width=e}else if(e.match(/^(\d+)$/))u.width=parseInt(e.match(/^(\d+)$/)[1],10);else if(e.match(/^\*+$/))u.width=e;else throw new Error(o);else u.width=e;else u.width="*";["minWidth","maxWidth"].forEach(function(n){var t=i[n],r="Cannot parse column "+n+" '"+t+"' for column named '"+i.name+"'";if(angular.isString(t)||angular.isNumber(t))if(angular.isString(t))if(t.match(/^(\d+)$/))u[n]=parseInt(t.match(/^(\d+)$/)[1],10);else throw new Error(r);else u[n]=t;else u[n]=n==="minWidth"?30:9e3});u.field=i.field===undefined?i.name:i.field;typeof u.field!="string"&&n.logError("Field is not a string, this is likely to break the code, Field is: "+u.field);u.name=i.name;u.displayName=i.displayName===undefined?n.readableColumnName(i.name):i.displayName;u.aggregationType=angular.isDefined(i.aggregationType)?i.aggregationType:null;u.footerCellTemplate=angular.isDefined(i.footerCellTemplate)?i.footerCellTemplate:null;u.cellTooltip=typeof i.cellTooltip=="undefined"||i.cellTooltip===!1?!1:i.cellTooltip===!0?function(n,t){return u.grid.getCellValue(n,t)}:typeof i.cellTooltip=="function"?i.cellTooltip:function(n,t){return t.colDef.cellTooltip};u.headerTooltip=typeof i.headerTooltip=="undefined"||i.headerTooltip===!1?!1:i.headerTooltip===!0?function(n){return n.displayName}:typeof i.headerTooltip=="function"?i.headerTooltip:function(n){return n.colDef.headerTooltip};u.footerCellClass=i.footerCellClass;u.cellClass=i.cellClass;u.headerCellClass=i.headerCellClass;u.cellFilter=i.cellFilter?i.cellFilter:"";u.sortCellFiltered=i.sortCellFiltered?!0:!1;u.filterCellFiltered=i.filterCellFiltered?!0:!1;u.headerCellFilter=i.headerCellFilter?i.headerCellFilter:"";u.footerCellFilter=i.footerCellFilter?i.footerCellFilter:"";u.visible=n.isNullOrUndefined(i.visible)||i.visible;u.headerClass=i.headerClass;u.enableSorting=typeof i.enableSorting!="undefined"?i.enableSorting:!0;u.sortingAlgorithm=i.sortingAlgorithm;u.sortDirectionCycle=typeof i.sortDirectionCycle!="undefined"?i.sortDirectionCycle:[null,t.ASC,t.DESC];typeof u.suppressRemoveSort=="undefined"&&(u.suppressRemoveSort=typeof i.suppressRemoveSort!="undefined"?i.suppressRemoveSort:!1);u.enableFiltering=typeof i.enableFiltering!="undefined"?i.enableFiltering:!0;u.setPropertyOrDefault(i,"menuItems",[]);r&&u.setPropertyOrDefault(i,"sort");f=[];i.filter?f.push(i.filter):i.filters?f=i.filters:f.push({});r?(u.setPropertyOrDefault(i,"filter"),u.setPropertyOrDefault(i,"filters",f)):u.filters.length===f.length&&u.filters.forEach(function(n,t){typeof f[t].placeholder!="undefined"&&(n.placeholder=f[t].placeholder);typeof f[t].ariaLabel!="undefined"&&(n.ariaLabel=f[t].ariaLabel);typeof f[t].flags!="undefined"&&(n.flags=f[t].flags);typeof f[t].type!="undefined"&&(n.type=f[t].type);typeof f[t].selectOptions!="undefined"&&(n.selectOptions=f[t].selectOptions)})},r.prototype.unsort=function(){this.sort={};this.grid.api.core.raise.sortChanged(this.grid,this.grid.getColumnSorting())},r.prototype.getColClass=function(n){var i=t.COL_CLASS_PREFIX+this.uid;return n?"."+i:i},r.prototype.isPinnedLeft=function(){return this.renderContainer==="left"},r.prototype.isPinnedRight=function(){return this.renderContainer==="right"},r.prototype.getColClassDefinition=function(){return" .grid"+this.grid.id+" "+this.getColClass(!0)+" { min-width: "+this.drawnWidth+"px; max-width: "+this.drawnWidth+"px; }"},r.prototype.getRenderContainer=function(){var t=this,n=t.renderContainer;return(n===null||n===""||n===undefined)&&(n="body"),t.grid.renderContainers[n]},r.prototype.showColumn=function(){this.colDef.visible=!0},r.prototype.getAggregationText=function(){var n=this;if(n.colDef.aggregationHideLabel)return"";if(n.colDef.aggregationLabel)return n.colDef.aggregationLabel;switch(n.colDef.aggregationType){case t.aggregationTypes.count:return i.getSafeText("aggregation.count");case t.aggregationTypes.sum:return i.getSafeText("aggregation.sum");case t.aggregationTypes.avg:return i.getSafeText("aggregation.avg");case t.aggregationTypes.min:return i.getSafeText("aggregation.min");case t.aggregationTypes.max:return i.getSafeText("aggregation.max");default:return""}},r.prototype.getCellTemplate=function(){var n=this;return n.cellTemplatePromise},r.prototype.getCompiledElementFn=function(){var n=this;return n.compiledElementFnDefer.promise},r}])}(),function(){angular.module("ui.grid").factory("GridOptions",["gridUtil","uiGridConstants",function(n,t){return{initialize:function(i){return i.onRegisterApi=i.onRegisterApi||angular.noop(),i.data=i.data||[],i.columnDefs=i.columnDefs||[],i.excludeProperties=i.excludeProperties||["$$hashKey"],i.enableRowHashing=i.enableRowHashing!==!1,i.rowIdentity=i.rowIdentity||function(t){return n.hashKey(t)},i.getRowIdentity=i.getRowIdentity||function(n){return n.$$hashKey},i.flatEntityAccess=i.flatEntityAccess===!0,i.showHeader=typeof i.showHeader!="undefined"?i.showHeader:!0,i.headerRowHeight=i.showHeader?typeof i.headerRowHeight!="undefined"?i.headerRowHeight:30:0,i.rowHeight=i.rowHeight||30,i.minRowsToShow=typeof i.minRowsToShow!="undefined"?i.minRowsToShow:10,i.showGridFooter=i.showGridFooter===!0,i.showColumnFooter=i.showColumnFooter===!0,i.columnFooterHeight=typeof i.columnFooterHeight!="undefined"?i.columnFooterHeight:30,i.gridFooterHeight=typeof i.gridFooterHeight!="undefined"?i.gridFooterHeight:30,i.columnWidth=typeof i.columnWidth!="undefined"?i.columnWidth:50,i.maxVisibleColumnCount=typeof i.maxVisibleColumnCount!="undefined"?i.maxVisibleColumnCount:200,i.virtualizationThreshold=typeof i.virtualizationThreshold!="undefined"?i.virtualizationThreshold:20,i.columnVirtualizationThreshold=typeof i.columnVirtualizationThreshold!="undefined"?i.columnVirtualizationThreshold:10,i.excessRows=typeof i.excessRows!="undefined"?i.excessRows:4,i.scrollThreshold=typeof i.scrollThreshold!="undefined"?i.scrollThreshold:4,i.excessColumns=typeof i.excessColumns!="undefined"?i.excessColumns:4,i.horizontalScrollThreshold=typeof i.horizontalScrollThreshold!="undefined"?i.horizontalScrollThreshold:2,i.aggregationCalcThrottle=typeof i.aggregationCalcThrottle!="undefined"?i.aggregationCalcThrottle:500,i.wheelScrollThrottle=typeof i.wheelScrollThrottle!="undefined"?i.wheelScrollThrottle:70,i.scrollDebounce=typeof i.scrollDebounce!="undefined"?i.scrollDebounce:300,i.enableSorting=i.enableSorting!==!1,i.enableFiltering=i.enableFiltering===!0,i.enableColumnMenus=i.enableColumnMenus!==!1,i.enableVerticalScrollbar=typeof i.enableVerticalScrollbar!="undefined"?i.enableVerticalScrollbar:t.scrollbars.ALWAYS,i.enableHorizontalScrollbar=typeof i.enableHorizontalScrollbar!="undefined"?i.enableHorizontalScrollbar:t.scrollbars.ALWAYS,i.enableMinHeightCheck=i.enableMinHeightCheck!==!1,i.minimumColumnSize=typeof i.minimumColumnSize!="undefined"?i.minimumColumnSize:10,i.rowEquality=i.rowEquality||function(n,t){return n===t},i.headerTemplate=i.headerTemplate||null,i.footerTemplate=i.footerTemplate||"ui-grid/ui-grid-footer",i.gridFooterTemplate=i.gridFooterTemplate||"ui-grid/ui-grid-grid-footer",i.rowTemplate=i.rowTemplate||"ui-grid/ui-grid-row",i.appScopeProvider=i.appScopeProvider||null,i}}}])}(),function(){angular.module("ui.grid").factory("GridRenderContainer",["gridUtil","uiGridConstants",function(n,t){function i(n,t,i){var r=this;r.name=n;r.grid=t;r.visibleRowCache=[];r.visibleColumnCache=[];r.renderedRows=[];r.renderedColumns=[];r.prevScrollTop=0;r.prevScrolltopPercentage=0;r.prevRowScrollIndex=0;r.prevScrollLeft=0;r.prevScrollleftPercentage=0;r.prevColumnScrollIndex=0;r.columnStyles="";r.viewportAdjusters=[];r.hasHScrollbar=!1;r.hasVScrollbar=!1;r.canvasHeightShouldUpdate=!0;r.$$canvasHeight=0;i&&angular.isObject(i)&&angular.extend(r,i);t.registerStyleComputation({priority:5,func:function(){return r.updateColumnWidths(),r.columnStyles}})}return i.prototype.reset=function(){this.visibleColumnCache.length=0;this.visibleRowCache.length=0;this.renderedRows.length=0;this.renderedColumns.length=0},i.prototype.containsColumn=function(n){return this.visibleColumnCache.indexOf(n)!==-1},i.prototype.minRowsToRender=function(){for(var n=this,i=0,r=0,u=n.getViewportHeight(),t=n.visibleRowCache.length-1;r<u&&t>=0;t--)r+=n.visibleRowCache[t].height,i++;return i},i.prototype.minColumnsToRender=function(){for(var u,f,t,i=this,e=this.getViewportWidth(),r=0,o=0,n=0;n<i.visibleColumnCache.length;n++)if(u=i.visibleColumnCache[n],o<e)o+=u.drawnWidth?u.drawnWidth:0,r++;else{for(f=0,t=n;t>=n-r;t--)f+=i.visibleColumnCache[t].drawnWidth?i.visibleColumnCache[t].drawnWidth:0;f<e&&r++}return r},i.prototype.getVisibleRowCount=function(){return this.visibleRowCache.length},i.prototype.registerViewportAdjuster=function(n){this.viewportAdjusters.push(n)},i.prototype.removeViewportAdjuster=function(n){var t=this.viewportAdjusters.indexOf(n);t>-1&&this.viewportAdjusters.splice(t,1)},i.prototype.getViewportAdjustment=function(){var t=this,n={height:0,width:0};return t.viewportAdjusters.forEach(function(t){n=t.call(this,n)}),n},i.prototype.getMargin=function(n){var i=this,t=0;return i.viewportAdjusters.forEach(function(i){var r=i.call(this,{height:0,width:0});r.side&&r.side===n&&(t+=r.width*-1)}),t},i.prototype.getViewportHeight=function(){var n=this,t=n.headerHeight?n.headerHeight:n.grid.headerHeight,i=n.grid.gridHeight-t-n.grid.footerHeight,r=n.getViewportAdjustment();return i+r.height},i.prototype.getViewportWidth=function(){var n=this,t=n.grid.gridWidth,i=n.getViewportAdjustment();return t+i.width},i.prototype.getHeaderViewportWidth=function(){var n=this;return this.getViewportWidth()},i.prototype.getCanvasHeight=function(){var n=this,t;return n.canvasHeightShouldUpdate?(t=n.$$canvasHeight,n.$$canvasHeight=0,n.visibleRowCache.forEach(function(t){n.$$canvasHeight+=t.height}),n.canvasHeightShouldUpdate=!1,n.grid.api.core.raise.canvasHeightChanged(t,n.$$canvasHeight),n.$$canvasHeight):n.$$canvasHeight},i.prototype.getVerticalScrollLength=function(){return this.getCanvasHeight()-this.getViewportHeight()+this.grid.scrollbarHeight},i.prototype.getCanvasWidth=function(){var n=this;return n.canvasWidth},i.prototype.setRenderedRows=function(n){this.renderedRows.length=n.length;for(var t=0;t<n.length;t++)this.renderedRows[t]=n[t]},i.prototype.setRenderedColumns=function(n){var i=this,t;for(this.renderedColumns.length=n.length,t=0;t<n.length;t++)this.renderedColumns[t]=n[t];this.updateColumnOffset()},i.prototype.updateColumnOffset=function(){for(var t=0,n=0;n<this.currentFirstColumn;n++)t+=this.visibleColumnCache[n].drawnWidth;this.columnOffset=t},i.prototype.scrollVertical=function(n){var i=-1,r,u;if(n!==this.prevScrollTop)return r=n-this.prevScrollTop,r>0&&(this.grid.scrollDirection=t.scrollDirection.DOWN),r<0&&(this.grid.scrollDirection=t.scrollDirection.UP),u=this.getVerticalScrollLength(),i=n/u,i>1&&(i=1),i<0&&(i=0),this.adjustScrollVertical(n,i),i},i.prototype.scrollHorizontal=function(n){var i=-1,r,u;if(n!==this.prevScrollLeft)return r=n-this.prevScrollLeft,r>0&&(this.grid.scrollDirection=t.scrollDirection.RIGHT),r<0&&(this.grid.scrollDirection=t.scrollDirection.LEFT),u=this.canvasWidth-this.getViewportWidth(),i=u!==0?n/u:0,this.adjustScrollHorizontal(n,i),i},i.prototype.adjustScrollVertical=function(n,t,i){(this.prevScrollTop!==n||i)&&((typeof n=="undefined"||n===undefined||n===null)&&(n=(this.getCanvasHeight()-this.getViewportHeight())*t),this.adjustRows(n,t,!1),this.prevScrollTop=n,this.prevScrolltopPercentage=t,this.grid.queueRefresh())},i.prototype.adjustScrollHorizontal=function(n,t,i){(this.prevScrollLeft!==n||i)&&((typeof n=="undefined"||n===undefined||n===null)&&(n=(this.getCanvasWidth()-this.getViewportWidth())*t),this.adjustColumns(n,t),this.prevScrollLeft=n,this.prevScrollleftPercentage=t,this.grid.queueRefresh())},i.prototype.adjustRows=function(n,t){var i=this,e=i.minRowsToRender(),o=i.visibleRowCache,u=o.length-e,r,f,s,h,c;if((typeof t=="undefined"||t===null)&&n&&(t=n/i.getVerticalScrollLength()),r=Math.ceil(Math.min(u,u*t)),r>u&&(r=u),f=[],o.length>i.grid.options.virtualizationThreshold){if(!(typeof n=="undefined"||n===null)){if(!i.grid.suppressParentScrollDown&&i.prevScrollTop<n&&r<i.prevRowScrollIndex+i.grid.options.scrollThreshold&&r<u)return;if(!i.grid.suppressParentScrollUp&&i.prevScrollTop>n&&r>i.prevRowScrollIndex-i.grid.options.scrollThreshold&&r<u)return}s={};h={};s=Math.max(0,r-i.grid.options.excessRows);h=Math.min(o.length,r+e+i.grid.options.excessRows);f=[s,h]}else c=i.visibleRowCache.length,f=[0,Math.max(c,e+i.grid.options.excessRows)];i.updateViewableRowRange(f);i.prevRowScrollIndex=r},i.prototype.adjustColumns=function(n,t){var i=this,e=i.minColumnsToRender(),o=i.visibleColumnCache,u=o.length-e,s,r,f,h,c,l;(typeof t=="undefined"||t===null)&&n&&(s=i.getCanvasWidth()-i.getViewportWidth(),t=n/s);r=Math.ceil(Math.min(u,u*t));r>u&&(r=u);f=[];o.length>i.grid.options.columnVirtualizationThreshold&&i.getCanvasWidth()>i.getViewportWidth()?(h=Math.max(0,r-i.grid.options.excessColumns),c=Math.min(o.length,r+e+i.grid.options.excessColumns),f=[h,c]):(l=i.visibleColumnCache.length,f=[0,Math.max(l,e+i.grid.options.excessColumns)]);i.updateViewableColumnRange(f);i.prevColumnScrollIndex=r},i.prototype.updateViewableRowRange=function(n){var t=this.visibleRowCache.slice(n[0],n[1]);this.currentTopRow=n[0];this.setRenderedRows(t)},i.prototype.updateViewableColumnRange=function(n){var t=this.visibleColumnCache.slice(n[0],n[1]);this.currentFirstColumn=n[0];this.setRenderedColumns(t)},i.prototype.headerCellWrapperStyle=function(){var n=this,t;return n.currentFirstColumn!==0?(t=n.columnOffset,n.grid.isRTL()?{"margin-right":t+"px"}:{"margin-left":t+"px"}):null},i.prototype.updateColumnWidths=function(){var r=this,u=[],h=0,t=0,c="",f=r.grid.getViewportWidth()-r.grid.scrollbarWidth,e=[],a,v,y,o,s;angular.forEach(r.grid.renderContainers,function(n){e=e.concat(n.visibleColumnCache)});e.forEach(function(i){var r=0;i.visible&&(angular.isNumber(i.width)?(r=parseInt(i.width,10),t=t+r,i.drawnWidth=r):n.endsWith(i.width,"%")?(r=parseInt(parseInt(i.width.replace(/%/g,""),10)/100*f),r>i.maxWidth&&(r=i.maxWidth),r<i.minWidth&&(r=i.minWidth),t=t+r,i.drawnWidth=r):angular.isString(i.width)&&i.width.indexOf("*")!==-1&&(h=h+i.width.length,u.push(i)))});a=f-t;u.length>0&&(v=a/h,u.forEach(function(n){var i=parseInt(n.width.length*v,10);i>n.maxWidth&&(i=n.maxWidth);i<n.minWidth&&(i=n.minWidth);t=t+i;n.drawnWidth=i}));for(var p=function(n){n.drawnWidth<n.maxWidth&&l>0&&(n.drawnWidth++,t++,l--,i=!0)},l=f-t,i=!0;l>0&&i;)i=!1,u.forEach(p);for(y=function(n){n.drawnWidth>n.minWidth&&o>0&&(n.drawnWidth--,t--,o--,i=!0)},o=t-f,i=!0;o>0&&i;)i=!1,u.forEach(y);s=0;r.visibleColumnCache.forEach(function(n){n.visible&&(s=s+n.drawnWidth)});e.forEach(function(n){c=c+n.getColClassDefinition()});r.canvasWidth=s;this.columnStyles=c},i.prototype.needsHScrollbarPlaceholder=function(){return this.grid.options.enableHorizontalScrollbar&&!this.hasHScrollbar&&!this.grid.disableScrolling},i.prototype.getViewportStyle=function(){var n=this,i={};return(n.hasHScrollbar=!1,n.hasVScrollbar=!1,n.grid.disableScrolling)?(i["overflow-x"]="hidden",i["overflow-y"]="hidden",i):(n.name==="body"?(n.hasHScrollbar=n.grid.options.enableHorizontalScrollbar!==t.scrollbars.NEVER,n.grid.isRTL()?n.grid.hasLeftContainerColumns()||(n.hasVScrollbar=n.grid.options.enableVerticalScrollbar!==t.scrollbars.NEVER):n.grid.hasRightContainerColumns()||(n.hasVScrollbar=n.grid.options.enableVerticalScrollbar!==t.scrollbars.NEVER)):n.hasVScrollbar=n.name==="left"?n.grid.isRTL()?n.grid.options.enableVerticalScrollbar!==t.scrollbars.NEVER:!1:n.grid.isRTL()?!1:n.grid.options.enableVerticalScrollbar!==t.scrollbars.NEVER,i["overflow-x"]=n.hasHScrollbar?"scroll":"hidden",i["overflow-y"]=n.hasVScrollbar?"scroll":"hidden",i)},i}])}(),function(){angular.module("ui.grid").factory("GridRow",["gridUtil",function(n){function t(t,i,r){this.grid=r;this.entity=t;this.uid=n.nextUid();this.visible=!0;this.$$height=r.options.rowHeight}return Object.defineProperty(t.prototype,"height",{get:function(){return this.$$height},set:function(n){n!==this.$$height&&(this.grid.updateCanvasHeight(),this.$$height=n)}}),t.prototype.getQualifiedColField=function(n){return"row."+this.getEntityQualifiedColField(n)},t.prototype.getEntityQualifiedColField=function(t){return n.preEval("entity."+t.field)},t.prototype.setRowInvisible=function(n){n&&n.setThisRowInvisible&&n.setThisRowInvisible("user")},t.prototype.clearRowInvisible=function(n){n&&n.clearThisRowInvisible&&n.clearThisRowInvisible("user")},t.prototype.setThisRowInvisible=function(n,t){this.invisibleReason||(this.invisibleReason={});this.invisibleReason[n]=!0;this.evaluateRowVisibility(t)},t.prototype.clearThisRowInvisible=function(n,t){typeof this.invisibleReason!="undefined"&&delete this.invisibleReason[n];this.evaluateRowVisibility(t)},t.prototype.evaluateRowVisibility=function(n){var t=!0;typeof this.invisibleReason!="undefined"&&angular.forEach(this.invisibleReason,function(n){n&&(t=!1)});(typeof this.visible=="undefined"||this.visible!==t)&&(this.visible=t,n||(this.grid.queueGridRefresh(),this.grid.api.core.raise.rowsVisibleChanged(this)))},t}])}(),function(){"use strict";angular.module("ui.grid").factory("GridRowColumn",["$parse","$filter",function(n,t){var i=function i(n,t){if(!(this instanceof i))throw"Using GridRowColumn as a function insead of as a constructor. Must be called with `new` keyword";this.row=n;this.col=t};return i.prototype.getIntersectionValueRaw=function(){var t=n(this.row.getEntityQualifiedColField(this.col)),i=this.row;return t(i)},i.prototype.getIntersectionValueFiltered=function(){var n=this.getIntersectionValueRaw(),u,r,f,i;return this.col.cellFilter&&this.col.cellFilter!==""&&(u=function(n){try{return t(n)}catch(i){return null}},r=u(this.col.cellFilter),r?n=r(n):(f=/([^:]*):([^:]*):?([\s\S]+)?/,(i=f.exec(this.col.cellFilter))!==null&&(n=t(i[1])(n,i[2],i[3])))),n},i}])}(),function(){angular.module("ui.grid").factory("ScrollEvent",["gridUtil",function(n){function t(t,i,r,u){var f=this;if(!t)throw new Error("grid argument is required");f.grid=t;f.source=u;f.withDelay=!0;f.sourceRowContainer=i;f.sourceColContainer=r;f.newScrollLeft=null;f.newScrollTop=null;f.x=null;f.y=null;f.verticalScrollLength=-9999999;f.horizontalScrollLength=-999999;f.fireThrottledScrollingEvent=n.throttle(function(n){f.grid.scrollContainers(n,f)},f.grid.options.wheelScrollThrottle,{trailing:!0})}return t.prototype.getNewScrollLeft=function(t,i){var r=this,u,e,f;if(!r.newScrollLeft){if(u=t.getCanvasWidth()-t.getViewportWidth(),e=n.normalizeScrollLeft(i,r.grid),typeof r.x.percentage!="undefined"&&r.x.percentage!==undefined)f=r.x.percentage;else if(typeof r.x.pixels!="undefined"&&r.x.pixels!==undefined)f=r.x.percentage=(e+r.x.pixels)/u;else throw new Error("No percentage or pixel value provided for scroll event X axis");return Math.max(0,f*u)}return r.newScrollLeft},t.prototype.getNewScrollTop=function(n,t){var i=this,r,f,u;if(!i.newScrollTop){if(r=n.getVerticalScrollLength(),f=t[0].scrollTop,typeof i.y.percentage!="undefined"&&i.y.percentage!==undefined)u=i.y.percentage;else if(typeof i.y.pixels!="undefined"&&i.y.pixels!==undefined)u=i.y.percentage=(f+i.y.pixels)/r;else throw new Error("No percentage or pixel value provided for scroll event Y axis");return Math.max(0,u*r)}return i.newScrollTop},t.prototype.atTop=function(n){return this.y&&(this.y.percentage===0||this.verticalScrollLength<0)&&n===0},t.prototype.atBottom=function(n){return this.y&&(this.y.percentage===1||this.verticalScrollLength===0)&&n>0},t.prototype.atLeft=function(n){return this.x&&(this.x.percentage===0||this.horizontalScrollLength<0)&&n===0},t.prototype.atRight=function(n){return this.x&&(this.x.percentage===1||this.horizontalScrollLength===0)&&n>0},t.Sources={ViewPortScroll:"ViewPortScroll",RenderContainerMouseWheel:"RenderContainerMouseWheel",RenderContainerTouchMove:"RenderContainerTouchMove",Other:99},t}])}(),function(){"use strict";angular.module("ui.grid").service("gridClassFactory",["gridUtil","$q","$compile","$templateCache","uiGridConstants","Grid","GridColumn","GridRow",function(n,t,i,r,u,f){var e={createGrid:function(r){var u,o;return r=typeof r!="undefined"?r:{},r.id=n.newId(),u=new f(r),u.options.rowTemplate&&(o=t.defer(),u.getRowTemplateFn=o.promise,n.getTemplate(u.options.rowTemplate).then(function(n){var t=i(n);o.resolve(t)},function(){throw new Error("Couldn't fetch/use row template '"+u.options.rowTemplate+"'");})),u.registerColumnBuilder(e.defaultColumnBuilder),u.registerRowBuilder(e.rowTemplateAssigner),u.registerRowsProcessor(function(n){return n.forEach(function(n){n.evaluateRowVisibility(!0)},50),n}),u.registerColumnsProcessor(function(n){return n.forEach(function(n){n.visible=!0}),n},50),u.registerColumnsProcessor(function(n){return n.forEach(function(n){n.colDef.visible===!1&&(n.visible=!1)}),n},50),u.registerRowsProcessor(u.searchRows,100),u.options.externalSort&&angular.isFunction(u.options.externalSort)?u.registerRowsProcessor(u.options.externalSort,200):u.registerRowsProcessor(u.sortByColumn,200),u},defaultColumnBuilder:function(i,r){var e=[],f=function(t,f,o,s,h){r[f]=i[t]?i[t]:o;e.push(n.getTemplate(r[f]).then(function(n){angular.isFunction(n)&&(n=n());var i=h==="cellTooltip"?"col.cellTooltip(row,col)":"col.headerTooltip(col)";h&&r[h]===!1?n=n.replace(u.TOOLTIP,""):h&&r[h]&&(n=n.replace(u.TOOLTIP,'title="{{'+i+' CUSTOM_FILTERS }}"'));r[t]=s?n.replace(u.CUSTOM_FILTERS,function(){return r[s]?"|"+r[s]:""}):n},function(){throw new Error("Couldn't fetch/use colDef."+t+" '"+i[t]+"'");}))};return f("cellTemplate","providedCellTemplate","ui-grid/uiGridCell","cellFilter","cellTooltip"),r.cellTemplatePromise=e[0],f("headerCellTemplate","providedHeaderCellTemplate","ui-grid/uiGridHeaderCell","headerCellFilter","headerTooltip"),f("footerCellTemplate","providedFooterCellTemplate","ui-grid/uiGridFooterCell","footerCellFilter"),f("filterHeaderTemplate","providedFilterHeaderTemplate","ui-grid/ui-grid-filter"),r.compiledElementFnDefer=t.defer(),t.all(e)},rowTemplateAssigner:function(r){var f=this,u;return r.rowTemplate?(u=t.defer(),r.getRowTemplateFn=u.promise,n.getTemplate(r.rowTemplate).then(function(n){var t=i(n);u.resolve(t)},function(){throw new Error("Couldn't fetch/use row template '"+r.rowTemplate+"'");})):(r.rowTemplate=f.options.rowTemplate,r.getRowTemplateFn=f.getRowTemplateFn),r.getRowTemplateFn}};return e}])}(),function(){function t(n){return n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var n=angular.module("ui.grid");n.service("rowSearcher",["gridUtil","uiGridConstants",function(n,i){var u=i.filter.CONTAINS,r={};return r.getTerm=function(n){if(typeof n.term=="undefined")return n.term;var t=n.term;return typeof t=="string"&&(t=t.trim()),t},r.stripTerm=function(n){var i=r.getTerm(n);return typeof i=="string"?t(i.replace(/(^\*|\*$)/g,"")):i},r.guessCondition=function(n){var t,i,f;return typeof n.term=="undefined"||!n.term?u:(t=r.getTerm(n),/\*/.test(t)?(i="",n.flags&&n.flags.caseSensitive||(i+="i"),f=t.replace(/(\\)?\*/g,function(n,t){return t?n:"[\\s\\S]*?"}),new RegExp("^"+f+"$",i)):u)},r.setupFilters=function(t){for(var f,u,e,s=[],h=t.length,o=0;o<h;o++)f=t[o],(f.noTerm||!n.isNullOrUndefined(f.term))&&(u={},e="",f.flags&&f.flags.caseSensitive||(e+="i"),n.isNullOrUndefined(f.term)||(u.term=r.stripTerm(f)),u.condition=f.condition?f.condition:r.guessCondition(f),u.flags=angular.extend({caseSensitive:!1,date:!1},f.flags),u.condition===i.filter.STARTS_WITH&&(u.startswithRE=new RegExp("^"+u.term,e)),u.condition===i.filter.ENDS_WITH&&(u.endswithRE=new RegExp(u.term+"$",e)),u.condition===i.filter.CONTAINS&&(u.containsRE=new RegExp(u.term,e)),u.condition===i.filter.EXACT&&(u.exactRE=new RegExp("^"+u.term+"$",e)),s.push(u));return s},r.runColumnFilter=function(n,t,r,u){var h=typeof u.condition,e=u.term,f,s,o;return(f=r.filterCellFiltered?n.getCellDisplayValue(t,r):n.getCellValue(t,r),u.condition instanceof RegExp)?u.condition.test(f):h==="function"?u.condition(e,f,t,r):u.startswithRE?u.startswithRE.test(f):u.endswithRE?u.endswithRE.test(f):u.containsRE?u.containsRE.test(f):u.exactRE?u.exactRE.test(f):u.condition===i.filter.NOT_EQUAL?(s=new RegExp("^"+e+"$"),!s.exec(f)):(typeof f=="number"&&typeof e=="string"&&(o=parseFloat(e.replace(/\\\./,".").replace(/\\\-/,"-")),isNaN(o)||(e=o)),u.flags.date===!0&&(f=new Date(f),e=new Date(e.replace(/\\/g,""))),u.condition===i.filter.GREATER_THAN)?f>e:u.condition===i.filter.GREATER_THAN_OR_EQUAL?f>=e:u.condition===i.filter.LESS_THAN?f<e:u.condition===i.filter.LESS_THAN_OR_EQUAL?f<=e:!0},r.searchColumn=function(n,t,i,u){var e,f,o,s;if(n.options.useExternalFiltering)return!0;for(e=u.length,f=0;f<e;f++)if(o=u[f],s=r.runColumnFilter(n,t,i,o),!s)return!1;return!0},r.search=function(t,i,u){var o,f,s;if(i){if(!t.options.enableFiltering)return i;var e=[],h=u.length,c=function(t){var i=!1;return t.forEach(function(t){(!n.isNullOrUndefined(t.term)&&t.term!==""||t.noTerm)&&(i=!0)}),i};for(o=0;o<h;o++)f=u[o],typeof f.filters!="undefined"&&c(f.filters)&&e.push({col:f,filters:r.setupFilters(f.filters)});if(e.length>0){var l=function(n,t,i,u){t.visible&&!r.searchColumn(n,t,i,u)&&(t.visible=!1)},a=function(n,t){for(var u=i.length,r=0;r<u;r++)l(n,i[r],t.col,t.filters)},v=e.length;for(s=0;s<v;s++)a(t,e[s]);t.api.core.raise.rowsVisibleChanged&&t.api.core.raise.rowsVisibleChanged()}return i}},r}])}(),function(){var n=angular.module("ui.grid");n.service("rowSorter",["$parse","uiGridConstants",function(n,t){var r="("+t.CURRENCY_SYMBOLS.map(function(n){return"\\"+n}).join("|")+")?",u=new RegExp("^[-+]?"+r+"[\\d,.]+"+r+"%?$"),i={colSortFnCache:{}};return i.guessSortFn=function(n){switch(n){case"number":return i.sortNumber;case"numberStr":return i.sortNumberStr;case"boolean":return i.sortBool;case"string":return i.sortAlpha;case"date":return i.sortDate;case"object":return i.basicSort;default:throw new Error("No sorting function found for type:"+n);}},i.handleNulls=function(n,t){if(!n&&n!==0&&n!==!1||!t&&t!==0&&t!==!1)if(n||n===0||n===!1||t||t===0||t===!1)if(n||n===0||n===!1){if(!t&&t!==0&&t!==!1)return-1}else return 1;else return 0;return null},i.basicSort=function(n,t){var r=i.handleNulls(n,t);return r!==null?r:n===t?0:n<t?-1:1},i.sortNumber=function(n,t){var r=i.handleNulls(n,t);return r!==null?r:n-t},i.sortNumberStr=function(n,t){var o=i.handleNulls(n,t),f,e,r,u;return o!==null?o:(r=!1,u=!1,f=parseFloat(n.replace(/[^0-9.-]/g,"")),isNaN(f)&&(r=!0),e=parseFloat(t.replace(/[^0-9.-]/g,"")),isNaN(e)&&(u=!0),r&&u)?0:r?1:u?-1:f-e},i.sortAlpha=function(n,t){var f=i.handleNulls(n,t),r,u;return f!==null?f:(r=n.toString().toLowerCase(),u=t.toString().toLowerCase(),r===u?0:r.localeCompare(u))},i.sortDate=function(n,t){var f=i.handleNulls(n,t),r,u;return f!==null?f:(n instanceof Date||(n=new Date(n)),t instanceof Date||(t=new Date(t)),r=n.getTime(),u=t.getTime(),r===u?0:r<u?-1:1)},i.sortBool=function(n,t){var r=i.handleNulls(n,t);return r!==null?r:n&&t?0:n||t?n?1:-1:0},i.getSortFn=function(n,t){var r;return i.colSortFnCache[t.colDef.name]?r=i.colSortFnCache[t.colDef.name]:t.sortingAlgorithm!==undefined?(r=t.sortingAlgorithm,i.colSortFnCache[t.colDef.name]=t.sortingAlgorithm):t.sortCellFiltered&&t.cellFilter?(r=i.sortAlpha,i.colSortFnCache[t.colDef.name]=r):(r=i.guessSortFn(t.colDef.type),r?i.colSortFnCache[t.colDef.name]=r:r=i.sortAlpha),r},i.prioritySort=function(n,t){return n.sort.priority!==undefined&&t.sort.priority!==undefined?n.sort.priority<t.sort.priority?-1:n.sort.priority===t.sort.priority?0:1:n.sort.priority||n.sort.priority===0?-1:t.sort.priority||t.sort.priority===0?1:0},i.sort=function(n,r,u){var f,e,o,s;if(r){if(n.options.useExternalSorting||(f=[],u.forEach(function(n){n.sort&&!n.sort.ignoreSort&&n.sort.direction&&(n.sort.direction===t.ASC||n.sort.direction===t.DESC)&&f.push(n)}),f=f.sort(i.prioritySort),f.length===0))return r;s=function(n,t){n.entity.$$uiGridIndex=t};r.forEach(s);var h=r.slice(0),c=function(r,u){for(var s=0,c=0,v,l,a;s===0&&c<f.length;)e=f[c],o=f[c].sort.direction,v=i.getSortFn(n,e,h),e.sortCellFiltered?(l=n.getCellDisplayValue(r,e),a=n.getCellDisplayValue(u,e)):(l=n.getCellValue(r,e),a=n.getCellValue(u,e)),s=v(l,a,r,u,o),c++;return s===0?r.entity.$$uiGridIndex-u.entity.$$uiGridIndex:o===t.ASC?s:0-s},l=r.sort(c),a=function(n){delete n.entity.$$uiGridIndex};return r.forEach(a),l}},i}])}(),function(){function t(n){var t=n;return typeof t.length!="undefined"&&t.length&&(t=n[0]),t.ownerDocument.defaultView.getComputedStyle(t,null)}function f(n,t,i,r,u){for(var o=i===(r?"border":"content")?4:t==="width"?1:0,f=0,v=["Top","Right","Bottom","Left"],e,s,h,c,l,a;o<4;o+=2)e=v[o],i==="margin"&&(s=parseFloat(u[i+e]),isNaN(s)||(f+=s)),r?(i==="content"&&(h=parseFloat(u["padding"+e]),isNaN(h)||(f-=h)),i!=="margin"&&(c=parseFloat(u["border"+e+"Width"]),isNaN(c)||(f-=c))):(l=parseFloat(u["padding"+e]),isNaN(l)||(f+=l),i!=="padding"&&(a=parseFloat(u["border"+e+"Width"]),isNaN(a)||(f+=a)));return f}function e(n,i,r){var s=!0,u,e=t(n),h=e.boxSizing==="border-box";if(u<=0||u==null){if(u=e[i],(u<0||u==null)&&(u=n.style[i]),o.test(u))return u;s=h&&(!0||u===n.style[i]);u=parseFloat(u)||0}return u+f(n,i,r||(h?"border":"content"),s,e)}function c(n){n=angular.element(n)[0];var i=n.parentElement;return i||(i=document.getElementsByTagName("body")[0]),parseInt(t(i).fontSize)||parseInt(t(n).fontSize)||16}var r=angular.module("ui.grid"),u,n,i;typeof Function.prototype.bind!="function"&&(u=function(){var n=Array.prototype.slice;return function(t){var i=this,r=n.call(arguments,1);return r.length?function(){return arguments.length?i.apply(t,r.concat(n.call(arguments))):i.apply(t,r)}:function(){return arguments.length?i.apply(t,arguments):i.call(t)}}});var o=new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i"),s=/^(block|none|table(?!-c[ea]).+)/,h={position:"absolute",visibility:"hidden",display:"block"};n=["0","0","0","0"];i="uiGrid-";r.service("gridUtil",["$log","$window","$document","$http","$templateCache","$timeout","$interval","$injector","$q","$interpolate","uiGridConstants",function(r,o,l,a,v,y,p,w,b,k,d){function ut(n,t){var s=angular.element(this),u=0,r=0,i=0,f=0,e,o,h;(t.originalEvent&&(t=t.originalEvent),"detail"in t&&(i=t.detail*-1),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(r=t.wheelDeltaX*-1),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(r=i*-1,i=0),u=i===0?r:i,"deltaY"in t&&(i=t.deltaY*-1,u=i),"deltaX"in t&&(r=t.deltaX,i===0&&(u=r*-1)),i!==0||r!==0)&&(t.deltaMode===1?(e=s.data("mousewheel-line-height"),u*=e,i*=e,r*=e):t.deltaMode===2&&(o=s.data("mousewheel-page-height"),u*=o,i*=o,r*=o),f=Math.max(Math.abs(i),Math.abs(r)),(!nt||f<nt)&&(nt=f,et(t,f)&&(nt/=40)),u=Math[u>=1?"floor":"ceil"](u/nt),r=Math[r>=1?"floor":"ceil"](r/nt),i=Math[i>=1?"floor":"ceil"](i/nt),t.deltaMode=0,h={originalEvent:t,deltaX:r,deltaY:i,deltaFactor:nt,preventDefault:function(){t.preventDefault()},stopPropagation:function(){t.stopPropagation()}},rt&&clearTimeout(rt),rt=setTimeout(ft,200),n.call(s[0],h))}function ft(){nt=null}function et(n,t){return n.type==="mousewheel"&&t%120==0}var g={augmentWidthOrHeight:f,getStyles:t,createBoundedWrapper:function(n,t){return function(){return t.apply(n,arguments)}},readableColumnName:function(n){return typeof n=="undefined"||n===undefined||n===null?n:(typeof n!="string"&&(n=String(n)),n.replace(/_+/g," ").replace(/^[A-Z]+$/,function(n){return angular.lowercase(angular.uppercase(n.charAt(0))+n.slice(1))}).replace(/([\w\u00C0-\u017F]+)/g,function(n){return angular.uppercase(n.charAt(0))+n.slice(1)}).replace(/(\w+?(?=[A-Z]))/g,"$1 "))},getColumnsFromData:function(n,t){var i=[],r;return!n||typeof n[0]=="undefined"||n[0]===undefined?[]:(angular.isUndefined(t)&&(t=[]),r=n[0],angular.forEach(r,function(n,r){t.indexOf(r)===-1&&i.push({name:r})}),i)},newId:function(){var n=(new Date).getTime();return function(){return n+=1}}(),getTemplate:function(n){if(v.get(n))return g.postProcessTemplate(v.get(n));if(n.hasOwnProperty("then"))return n.then(g.postProcessTemplate);try{if(angular.element(n).length>0)return b.when(n).then(g.postProcessTemplate)}catch(t){}return g.logDebug("fetching url",n),a({method:"GET",url:n}).then(function(t){var i=t.data.trim();return v.put(n,i),i},function(t){throw new Error("Could not get template "+n+": "+t);}).then(g.postProcessTemplate)},postProcessTemplate:function(n){var t=k.startSymbol(),i=k.endSymbol();return(t!=="{{"||i!=="}}")&&(n=n.replace(/\{\{/g,t),n=n.replace(/\}\}/g,i)),b.when(n)},guessType:function(n){var t=typeof n;switch(t){case"number":case"boolean":case"string":return t;default:return angular.isDate(n)?"date":"object"}},elementWidth:function(){},elementHeight:function(){},getScrollbarWidth:function(){var n=document.createElement("div"),i,t,r;return n.style.visibility="hidden",n.style.width="100px",n.style.msOverflowStyle="scrollbar",document.body.appendChild(n),i=n.offsetWidth,n.style.overflow="scroll",t=document.createElement("div"),t.style.width="100%",n.appendChild(t),r=t.offsetWidth,n.parentNode.removeChild(n),i-r},swap:function(n,t,i,r){var f,u,e={};for(u in t)e[u]=n.style[u],n.style[u]=t[u];f=i.apply(n,r||[]);for(u in t)n.style[u]=e[u];return f},fakeElement:function(n,t,i){var f,u,r=angular.element(n).clone()[0];for(u in t)r.style[u]=t[u];return angular.element(document.body).append(r),f=i.call(r,r),angular.element(r).remove(),f},normalizeWheelEvent:function(n){var e,f,t=n||window.event,c=[].slice.call(arguments,1),i=0,u=0,r=0,s=0,h=0,o;return t.originalEvent&&(t=t.originalEvent),t.wheelDelta&&(i=t.wheelDelta),t.detail&&(i=t.detail*-1),r=i,t.axis!==undefined&&t.axis===t.HORIZONTAL_AXIS&&(r=0,u=i*-1),t.deltaY&&(r=t.deltaY*-1,i=r),t.deltaX&&(u=t.deltaX,i=u*-1),t.wheelDeltaY!==undefined&&(r=t.wheelDeltaY),t.wheelDeltaX!==undefined&&(u=t.wheelDeltaX),s=Math.abs(i),(!e||s<e)&&(e=s),h=Math.max(Math.abs(r),Math.abs(u)),(!f||h<f)&&(f=h),o=i>0?"floor":"ceil",i=Math[o](i/e),u=Math[o](u/f),r=Math[o](r/f),{delta:i,deltaX:u,deltaY:r}},isTouchEnabled:function(){var n;return("ontouchstart"in o||o.DocumentTouch&&l instanceof DocumentTouch)&&(n=!0),n},isNullOrUndefined:function(n){return n===undefined||n===null?!0:!1},endsWith:function(n,t){return!n||!t||typeof n!="string"?!1:n.indexOf(t,n.length-t.length)!==-1},arrayContainsObjectWithProperty:function(n,t,i){var r=!1;return angular.forEach(n,function(n){n[t]===i&&(r=!0)}),r},numericAndNullSort:function(n,t){return n===null?1:t===null?-1:n===null&&t===null?0:n-t},disableAnimations:function(n){var t;try{t=w.get("$animate");angular.version.major>1||angular.version.major===1&&angular.version.minor>=4?t.enabled(n,!1):t.enabled(!1,n)}catch(i){}},enableAnimations:function(n){var t;try{return t=w.get("$animate"),angular.version.major>1||angular.version.major===1&&angular.version.minor>=4?t.enabled(n,!0):t.enabled(!0,n),t}catch(i){}},nextUid:function(){for(var t=n.length,r;t;){if(t--,r=n[t].charCodeAt(0),r===57)return n[t]="A",i+n.join("");if(r===90)n[t]="0";else return n[t]=String.fromCharCode(r+1),i+n.join("")}return n.unshift("0"),i+n.join("")},hashKey:function(n){var i=typeof n,t;return i==="object"&&n!==null?typeof(t=n.$$hashKey)=="function"?t=n.$$hashKey():typeof n.$$hashKey!="undefined"&&n.$$hashKey?t=n.$$hashKey:t===undefined&&(t=n.$$hashKey=g.nextUid()):t=n,i+":"+t},resetUids:function(){n=["0","0","0"]},logError:function(n){d.LOG_ERROR_MESSAGES&&r.error(n)},logWarn:function(n){d.LOG_WARN_MESSAGES&&r.warn(n)},logDebug:function(){d.LOG_DEBUG_MESSAGES&&r.debug.apply(r,arguments)}},tt,rt,nt;return g.focus={queue:[],byId:function(n,t){this._purgeQueue();var i=y(function(){var i=(t&&t.id?t.id+"-":"")+n,r=o.document.getElementById(i);r?r.focus():g.logWarn("[focus.byId] Element id "+i+" was not found.")});return this.queue.push(i),i},byElement:function(n){if(!angular.isElement(n))return g.logWarn("Trying to focus on an element that isn't an element."),b.reject("not-element");n=angular.element(n);this._purgeQueue();var t=y(function(){n&&n[0].focus()});return this.queue.push(t),t},bySelector:function(n,t,i){var f=this,r,u;if(!angular.isElement(n))throw new Error("The parent element is not an element.");return n=angular.element(n),r=function(){var i=n[0].querySelector(t);return f.byElement(i)},this._purgeQueue(),i?(u=y(r),this.queue.push(y(r)),u):r()},_purgeQueue:function(){this.queue.forEach(function(n){y.cancel(n)});this.queue=[]}},["width","height"].forEach(function(n){var i=angular.uppercase(n.charAt(0))+n.substr(1);g["element"+i]=function(i,r){var u=i,f;return u&&typeof u.length!="undefined"&&u.length&&(u=i[0]),u?(f=t(u),u.offsetWidth===0&&s.test(f.display)?g.swap(u,h,function(){return e(u,n,r)}):e(u,n,r)):null};g["outerElement"+i]=function(n,t){return n?g["element"+i].call(this,n,t?"margin":"border"):null}}),g.closestElm=function(n,t){var r,i;for(typeof n.length!="undefined"&&n.length&&(n=n[0]),["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"].some(function(n){return typeof document.body[n]=="function"?(r=n,!0):!1});n!==null;){if(i=n.parentElement,i!==null&&i[r](t))return i;n=i}return null},g.type=function(n){var t=Function.prototype.toString.call(n.constructor);return t.match(/function (.*?)\(/)[1]},g.getBorderSize=function(n,i){var u,r;return typeof n.length!="undefined"&&n.length&&(n=n[0]),u=t(n),i=i?"border"+i.charAt(0).toUpperCase()+i.slice(1):"border",i+="Width",r=parseInt(u[i],10),isNaN(r)?0:r},g.detectBrowser=function(){var i=o.navigator.userAgent,n={chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer|trident\//i};for(var t in n)if(n[t].test(i))return t;return"unknown"},g.rtlScrollType=function it(){if(it.type)return it.type;var n=angular.element('<div dir="rtl" style="font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll">A<\/div>')[0],t="reverse";return document.body.appendChild(n),n.scrollLeft>0?t="default":(n.scrollLeft=1,n.scrollLeft===0&&(t="negative")),angular.element(n).remove(),it.type=t,t},g.normalizeScrollLeft=function(n,t){typeof n.length!="undefined"&&n.length&&(n=n[0]);var i=n.scrollLeft;if(t.isRTL())switch(g.rtlScrollType()){case"default":return n.scrollWidth-i-n.clientWidth;case"negative":return Math.abs(i);case"reverse":return i}return i},g.denormalizeScrollLeft=function(n,t,i){if(typeof n.length!="undefined"&&n.length&&(n=n[0]),i.isRTL())switch(g.rtlScrollType()){case"default":var r=n.scrollWidth-n.clientWidth;return r-t;case"negative":return t*-1;case"reverse":return t}return t},g.preEval=function(n){var t=d.BRACKET_REGEXP.exec(n),i,r;return t?(t[1]?g.preEval(t[1]):t[1])+t[2]+(t[3]?g.preEval(t[3]):t[3]):(n=n.replace(d.APOS_REGEXP,"\\'"),i=n.split(d.DOT_REGEXP),r=[i.shift()],angular.forEach(i,function(n){r.push(n.replace(d.FUNC_REGEXP,"']$1"))}),r.join("['"))},g.debounce=function(n,t,i){function o(){f=this;u=arguments;var o=function(){r=null;i||(e=n.apply(f,u))},s=i&&!r;return r&&y.cancel(r),r=y(o,t),s&&(e=n.apply(f,u)),e}var r,u,f,e;return o.cancel=function(){y.cancel(r);r=null},o},g.throttle=function(n,t,i){function o(){u=+new Date;n.apply(f,e);p(function(){r=null},0,1)}i=i||{};var u=0,r=null,f,e;return function(){if(f=this,e=arguments,r===null){var n=+new Date-u;n>t?o():i.trailing&&(r=p(o,t-n,1))}}},g.on={},g.off={},g._events={},g.addOff=function(n){g.off[n]=function(t,i){var r=g._events[n].indexOf(i);r>0&&g._events[n].removeAt(r)}},tt="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],g.on.mousewheel=function(n,t){var i,r,f;if(n&&t)for(i=angular.element(n),i.data("mousewheel-line-height",c(i)),i.data("mousewheel-page-height",g.elementHeight(i)),i.data("mousewheel-callbacks")||i.data("mousewheel-callbacks",{}),r=i.data("mousewheel-callbacks"),r[t]=(Function.prototype.bind||u).call(ut,i[0],t),f=tt.length;f;)i.on(tt[--f],r[t])},g.off.mousewheel=function(n,t){var i=angular.element(n),r=i.data("mousewheel-callbacks"),f=r[t],u;if(f)for(u=tt.length;u;)i.off(tt[--u],f);delete r[t];Object.keys(r).length===0&&(i.removeData("mousewheel-line-height"),i.removeData("mousewheel-page-height"),i.removeData("mousewheel-callbacks"))},g}]);r.filter("px",function(){return function(n){return n.match(/^[\d\.]+$/)?n+"px":n}})}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){var t={aggregate:{label:"položky"},groupPanel:{description:"Přesuňte záhlaví zde pro vytvoření skupiny dle sloupce."},search:{placeholder:"Hledat...",showingItems:"Zobrazuji položky:",selectedItems:"Vybrané položky:",totalItems:"Celkem položek:",size:"Velikost strany:",first:"První strana",next:"Další strana",previous:"Předchozí strana",last:"Poslední strana"},menu:{text:"Vyberte sloupec:"},sort:{ascending:"Seřadit od A-Z",descending:"Seřadit od Z-A",remove:"Odebrat seřazení"},column:{hide:"Schovat sloupec"},aggregation:{count:"celkem řádků: ",sum:"celkem: ",avg:"avg: ",min:"min.: ",max:"max.: "},pinning:{pinLeft:"Zamknout vlevo",pinRight:"Zamknout vpravo",unpin:"Odemknout"},gridMenu:{columns:"Sloupce:",importerTitle:"Importovat soubor",exporterAllAsCsv:"Exportovat všechna data do csv",exporterVisibleAsCsv:"Exportovat viditelná data do csv",exporterSelectedAsCsv:"Exportovat vybraná data do csv",exporterAllAsPdf:"Exportovat všechna data do pdf",exporterVisibleAsPdf:"Exportovat viditelná data do pdf",exporterSelectedAsPdf:"Exportovat vybraná data do pdf",clearAllFilters:"Odstranit všechny filtry"},importer:{noHeaders:"Názvy sloupců se nepodařilo získat, obsahuje soubor záhlaví?",noObjects:"Data se nepodařilo zpracovat, obsahuje soubor řádky mimo záhlaví?",invalidCsv:"Soubor nelze zpracovat, jedná se o CSV?",invalidJson:"Soubor nelze zpracovat, je to JSON?",jsonNotArray:"Soubor musí obsahovat json. Ukončuji.."},pagination:{sizes:"položek na stránku",totalItems:"položek"},grouping:{group:"Seskupit",ungroup:"Odebrat seskupení",aggregate_count:"Agregace: Count",aggregate_sum:"Agregace: Sum",aggregate_max:"Agregace: Max",aggregate_min:"Agregace: Min",aggregate_avg:"Agregace: Avg",aggregate_remove:"Agregace: Odebrat"}};return n.add("cs",t),n.add("cz",t),n.add("cs-cz",t),n.add("cs-CZ",t),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("da",{aggregate:{label:"artikler"},groupPanel:{description:"Grupér rækker udfra en kolonne ved at trække dens overskift hertil."},search:{placeholder:"Søg...",showingItems:"Viste rækker:",selectedItems:"Valgte rækker:",totalItems:"Rækker totalt:",size:"Side størrelse:",first:"Første side",next:"Næste side",previous:"Forrige side",last:"Sidste side"},menu:{text:"Vælg kolonner:"},sort:{ascending:"Sorter stigende",descending:"Sorter faldende",none:"Sorter ingen",remove:"Fjern sortering"},column:{hide:"Skjul kolonne"},aggregation:{count:"antal rækker: ",sum:"sum: ",avg:"gns: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("de",{headerCell:{aria:{defaultFilterLabel:"Filter für Spalte",removeFilter:"Filter löschen",columnMenuButtonLabel:"Spaltenmenü"},priority:"Priorität:",filterLabel:"Filter für Spalte: "},aggregate:{label:"Eintrag"},groupPanel:{description:"Ziehen Sie eine Spaltenüberschrift hierhin, um nach dieser Spalte zu gruppieren."},search:{placeholder:"Suche...",showingItems:"Zeige Einträge:",selectedItems:"Ausgewählte Einträge:",totalItems:"Einträge gesamt:",size:"Einträge pro Seite:",first:"Erste Seite",next:"Nächste Seite",previous:"Vorherige Seite",last:"Letzte Seite"},menu:{text:"Spalten auswählen:"},sort:{ascending:"aufsteigend sortieren",descending:"absteigend sortieren",none:"keine Sortierung",remove:"Sortierung zurücksetzen"},column:{hide:"Spalte ausblenden"},aggregation:{count:"Zeilen insgesamt: ",sum:"gesamt: ",avg:"Durchschnitt: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Links anheften",pinRight:"Rechts anheften",unpin:"Lösen"},columnMenu:{close:"Schließen"},gridMenu:{aria:{buttonLabel:"Tabellenmenü"},columns:"Spalten:",importerTitle:"Datei importieren",exporterAllAsCsv:"Alle Daten als CSV exportieren",exporterVisibleAsCsv:"sichtbare Daten als CSV exportieren",exporterSelectedAsCsv:"markierte Daten als CSV exportieren",exporterAllAsPdf:"Alle Daten als PDF exportieren",exporterVisibleAsPdf:"sichtbare Daten als PDF exportieren",exporterSelectedAsPdf:"markierte Daten als CSV exportieren",clearAllFilters:"Alle Filter zurücksetzen"},importer:{noHeaders:"Es konnten keine Spaltennamen ermittelt werden. Sind in der Datei Spaltendefinitionen enthalten?",noObjects:"Es konnten keine Zeileninformationen gelesen werden, Sind in der Datei außer den Spaltendefinitionen auch Daten enthalten?",invalidCsv:"Die Datei konnte nicht eingelesen werden, ist es eine gültige CSV-Datei?",invalidJson:"Die Datei konnte nicht eingelesen werden. Enthält sie gültiges JSON?",jsonNotArray:"Die importierte JSON-Datei muß ein Array enthalten. Breche Import ab."},pagination:{aria:{pageToFirst:"Zum Anfang",pageBack:"Seite zurück",pageSelected:"Ausgwählte Seite",pageForward:"Seite vor",pageToLast:"Zum Ende"},sizes:"Einträge pro Seite",totalItems:"Einträge",through:"bis",of:"von"},grouping:{group:"Gruppieren",ungroup:"Gruppierung aufheben",aggregate_count:"Agg: Anzahl",aggregate_sum:"Agg: Summe",aggregate_max:"Agg: Maximum",aggregate_min:"Agg: Minimum",aggregate_avg:"Agg: Mittelwert",aggregate_remove:"Aggregation entfernen"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("en",{headerCell:{aria:{defaultFilterLabel:"Filter for column",removeFilter:"Remove Filter",columnMenuButtonLabel:"Column Menu"},priority:"Priority:",filterLabel:"Filter for column: "},aggregate:{label:"items"},groupPanel:{description:"Drag a column header here and drop it to group by that column."},search:{placeholder:"Search...",showingItems:"Showing Items:",selectedItems:"Selected Items:",totalItems:"Total Items:",size:"Page Size:",first:"First Page",next:"Next Page",previous:"Previous Page",last:"Last Page"},menu:{text:"Choose Columns:"},sort:{ascending:"Sort Ascending",descending:"Sort Descending",none:"Sort None",remove:"Remove Sort"},column:{hide:"Hide Column"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin Left",pinRight:"Pin Right",unpin:"Unpin"},columnMenu:{close:"Close"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."},pagination:{aria:{pageToFirst:"Page to first",pageBack:"Page back",pageSelected:"Selected page",pageForward:"Page forward",pageToLast:"Page to last"},sizes:"items per page",totalItems:"items",through:"through",of:"of"},grouping:{group:"Group",ungroup:"Ungroup",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"},validate:{error:"Error:",minLength:"Value should be at least THRESHOLD characters long.",maxLength:"Value should be at most THRESHOLD characters long.",required:"A value is needed."}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("es",{aggregate:{label:"Artículos"},groupPanel:{description:"Arrastre un encabezado de columna aquí y suéltelo para agrupar por esa columna."},search:{placeholder:"Buscar...",showingItems:"Artículos Mostrados:",selectedItems:"Artículos Seleccionados:",totalItems:"Artículos Totales:",size:"Tamaño de Página:",first:"Primera Página",next:"Página Siguiente",previous:"Página Anterior",last:"Última Página"},menu:{text:"Elegir columnas:"},sort:{ascending:"Orden Ascendente",descending:"Orden Descendente",remove:"Sin Ordenar"},column:{hide:"Ocultar la columna"},aggregation:{count:"filas totales: ",sum:"total: ",avg:"media: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fijar a la Izquierda",pinRight:"Fijar a la Derecha",unpin:"Quitar Fijación"},gridMenu:{columns:"Columnas:",importerTitle:"Importar archivo",exporterAllAsCsv:"Exportar todo como csv",exporterVisibleAsCsv:"Exportar vista como csv",exporterSelectedAsCsv:"Exportar selección como csv",exporterAllAsPdf:"Exportar todo como pdf",exporterVisibleAsPdf:"Exportar vista como pdf",exporterSelectedAsPdf:"Exportar selección como pdf",clearAllFilters:"Limpiar todos los filtros"},importer:{noHeaders:"No fue posible derivar los nombres de las columnas, ¿tiene encabezados el archivo?",noObjects:"No fue posible obtener registros, ¿contiene datos el archivo, aparte de los encabezados?",invalidCsv:"No fue posible procesar el archivo, ¿es un CSV válido?",invalidJson:"No fue posible procesar el archivo, ¿es un Json válido?",jsonNotArray:"El archivo json importado debe contener un array, abortando."},pagination:{sizes:"registros por página",totalItems:"registros",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Cont",aggregate_sum:"Agr: Sum",aggregate_max:"Agr: Máx",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Prom",aggregate_remove:"Agr: Quitar"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("fa",{aggregate:{label:"قلم"},groupPanel:{description:"عنوان یک ستون را بگیر و به گروهی از آن ستون رها کن."},search:{placeholder:"جستجو...",showingItems:"نمایش اقلام:",selectedItems:"قلم‌های انتخاب شده:",totalItems:"مجموع اقلام:",size:"اندازه‌ی صفحه:",first:"اولین صفحه",next:"صفحه‌ی‌بعدی",previous:"صفحه‌ی‌ قبلی",last:"آخرین صفحه"},menu:{text:"ستون‌های انتخابی:"},sort:{ascending:"ترتیب صعودی",descending:"ترتیب نزولی",remove:"حذف مرتب کردن"},column:{hide:"پنهان‌کردن ستون"},aggregation:{count:"تعداد: ",sum:"مجموع: ",avg:"میانگین: ",min:"کمترین: ",max:"بیشترین: "},pinning:{pinLeft:"پین کردن سمت چپ",pinRight:"پین کردن سمت راست",unpin:"حذف پین"},gridMenu:{columns:"ستون‌ها:",importerTitle:"وارد کردن فایل",exporterAllAsCsv:"خروجی تمام داده‌ها در فایل csv",exporterVisibleAsCsv:"خروجی داده‌های قابل مشاهده در فایل csv",exporterSelectedAsCsv:"خروجی داده‌های انتخاب‌شده در فایل csv",exporterAllAsPdf:"خروجی تمام داده‌ها در فایل pdf",exporterVisibleAsPdf:"خروجی داده‌های قابل مشاهده در فایل pdf",exporterSelectedAsPdf:"خروجی داده‌های انتخاب‌شده در فایل pdf",clearAllFilters:"پاک کردن تمام فیلتر"},importer:{noHeaders:"نام ستون قابل استخراج نیست. آیا فایل عنوان دارد؟",noObjects:"اشیا قابل استخراج نیستند. آیا به جز عنوان‌ها در فایل داده وجود دارد؟",invalidCsv:"فایل قابل پردازش نیست. آیا فرمت  csv  معتبر است؟",invalidJson:"فایل قابل پردازش نیست. آیا فرمت json   معتبر است؟",jsonNotArray:"فایل json وارد شده باید حاوی آرایه باشد. عملیات ساقط شد."},pagination:{sizes:"اقلام در هر صفحه",totalItems:"اقلام",of:"از"},grouping:{group:"گروه‌بندی",ungroup:"حذف گروه‌بندی",aggregate_count:"Agg: تعداد",aggregate_sum:"Agg: جمع",aggregate_max:"Agg: بیشینه",aggregate_min:"Agg: کمینه",aggregate_avg:"Agg: میانگین",aggregate_remove:"Agg: حذف"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("fi",{aggregate:{label:"rivit"},groupPanel:{description:"Raahaa ja pudota otsikko tähän ryhmittääksesi sarakkeen mukaan."},search:{placeholder:"Hae...",showingItems:"Näytetään rivejä:",selectedItems:"Valitut rivit:",totalItems:"Rivejä yht.:",size:"Näytä:",first:"Ensimmäinen sivu",next:"Seuraava sivu",previous:"Edellinen sivu",last:"Viimeinen sivu"},menu:{text:"Valitse sarakkeet:"},sort:{ascending:"Järjestä nouseva",descending:"Järjestä laskeva",remove:"Poista järjestys"},column:{hide:"Piilota sarake"},aggregation:{count:"Rivejä yht.: ",sum:"Summa: ",avg:"K.a.: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Lukitse vasemmalle",pinRight:"Lukitse oikealle",unpin:"Poista lukitus"},gridMenu:{columns:"Sarakkeet:",importerTitle:"Tuo tiedosto",exporterAllAsCsv:"Vie tiedot csv-muodossa",exporterVisibleAsCsv:"Vie näkyvä tieto csv-muodossa",exporterSelectedAsCsv:"Vie valittu tieto csv-muodossa",exporterAllAsPdf:"Vie tiedot pdf-muodossa",exporterVisibleAsPdf:"Vie näkyvä tieto pdf-muodossa",exporterSelectedAsPdf:"Vie valittu tieto pdf-muodossa",clearAllFilters:"Puhdista kaikki suodattimet"},importer:{noHeaders:"Sarakkeen nimiä ei voitu päätellä, onko tiedostossa otsikkoriviä?",noObjects:"Tietoja ei voitu lukea, onko tiedostossa muuta kuin otsikkot?",invalidCsv:"Tiedostoa ei voitu käsitellä, oliko se CSV-muodossa?",invalidJson:"Tiedostoa ei voitu käsitellä, oliko se JSON-muodossa?",jsonNotArray:"Tiedosto ei sisältänyt taulukkoa, lopetetaan."}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("fr",{aggregate:{label:"éléments"},groupPanel:{description:"Faites glisser une en-tête de colonne ici pour créer un groupe de colonnes."},search:{placeholder:"Recherche...",showingItems:"Affichage des éléments :",selectedItems:"Éléments sélectionnés :",totalItems:"Nombre total d'éléments:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes :"},sort:{ascending:"Trier par ordre croissant",descending:"Trier par ordre décroissant",remove:"Enlever le tri"},column:{hide:"Cacher la colonne"},aggregation:{count:"lignes totales: ",sum:"total: ",avg:"moy: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Épingler à gauche",pinRight:"Épingler à droite",unpin:"Détacher"},gridMenu:{columns:"Colonnes:",importerTitle:"Importer un fichier",exporterAllAsCsv:"Exporter toutes les données en CSV",exporterVisibleAsCsv:"Exporter les données visibles en CSV",exporterSelectedAsCsv:"Exporter les données sélectionnées en CSV",exporterAllAsPdf:"Exporter toutes les données en PDF",exporterVisibleAsPdf:"Exporter les données visibles en PDF",exporterSelectedAsPdf:"Exporter les données sélectionnées en PDF",clearAllFilters:"Nettoyez tous les filtres"},importer:{noHeaders:"Impossible de déterminer le nom des colonnes, le fichier possède-t-il une en-tête ?",noObjects:"Aucun objet trouvé, le fichier possède-t-il des données autres que l'en-tête ?",invalidCsv:"Le fichier n'a pas pu être traité, le CSV est-il valide ?",invalidJson:"Le fichier n'a pas pu être traité, le JSON est-il valide ?",jsonNotArray:"Le fichier JSON importé doit contenir un tableau, abandon."},pagination:{sizes:"éléments par page",totalItems:"éléments",of:"sur"},grouping:{group:"Grouper",ungroup:"Dégrouper",aggregate_count:"Agg: Compte",aggregate_sum:"Agg: Somme",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Moy",aggregate_remove:"Agg: Retirer"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clean all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("hy",{aggregate:{label:"տվյալներ"},groupPanel:{description:"Ըստ սյան խմբավորելու համար քաշեք և գցեք վերնագիրն այստեղ։"},search:{placeholder:"Փնտրում...",showingItems:"Ցուցադրված տվյալներ՝",selectedItems:"Ընտրված:",totalItems:"Ընդամենը՝",size:"Տողերի քանակը էջում՝",first:"Առաջին էջ",next:"Հաջորդ էջ",previous:"Նախորդ էջ",last:"Վերջին էջ"},menu:{text:"Ընտրել սյուները:"},sort:{ascending:"Աճման կարգով",descending:"Նվազման կարգով",remove:"Հանել "},column:{hide:"Թաքցնել սյունը"},aggregation:{count:"ընդամենը տող՝ ",sum:"ընդամենը՝ ",avg:"միջին՝ ",min:"մին՝ ",max:"մաքս՝ "},pinning:{pinLeft:"Կպցնել ձախ կողմում",pinRight:"Կպցնել աջ կողմում",unpin:"Արձակել"},gridMenu:{columns:"Սյուներ:",importerTitle:"Ներմուծել ֆայլ",exporterAllAsCsv:"Արտահանել ամբողջը CSV",exporterVisibleAsCsv:"Արտահանել երևացող տվյալները CSV",exporterSelectedAsCsv:"Արտահանել ընտրված տվյալները CSV",exporterAllAsPdf:"Արտահանել PDF",exporterVisibleAsPdf:"Արտահանել երևացող տվյալները PDF",exporterSelectedAsPdf:"Արտահանել ընտրված տվյալները PDF",clearAllFilters:"Մաքրել բոլոր ֆիլտրերը"},importer:{noHeaders:"Հնարավոր չեղավ որոշել սյան վերնագրերը։ Արդյո՞ք ֆայլը ունի վերնագրեր։",noObjects:"Հնարավոր չեղավ կարդալ տվյալները։ Արդյո՞ք ֆայլում կան տվյալներ։",invalidCsv:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր CSV է։",invalidJson:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր Json է։",jsonNotArray:"Ներմուծված json ֆայլը պետք է պարունակի զանգված, կասեցվում է։"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("it",{aggregate:{label:"elementi"},groupPanel:{description:"Trascina un'intestazione all'interno del gruppo della colonna."},search:{placeholder:"Ricerca...",showingItems:"Mostra:",selectedItems:"Selezionati:",totalItems:"Totali:",size:"Tot Pagine:",first:"Prima",next:"Prossima",previous:"Precedente",last:"Ultima"},menu:{text:"Scegli le colonne:"},sort:{ascending:"Asc.",descending:"Desc.",remove:"Annulla ordinamento"},column:{hide:"Nascondi"},aggregation:{count:"righe totali: ",sum:"tot: ",avg:"media: ",min:"minimo: ",max:"massimo: "},pinning:{pinLeft:"Blocca a sx",pinRight:"Blocca a dx",unpin:"Blocca in alto"},gridMenu:{columns:"Colonne:",importerTitle:"Importa",exporterAllAsCsv:"Esporta tutti i dati in CSV",exporterVisibleAsCsv:"Esporta i dati visibili in CSV",exporterSelectedAsCsv:"Esporta i dati selezionati in CSV",exporterAllAsPdf:"Esporta tutti i dati in PDF",exporterVisibleAsPdf:"Esporta i dati visibili in PDF",exporterSelectedAsPdf:"Esporta i dati selezionati in PDF",clearAllFilters:"Pulire tutti i filtri"},importer:{noHeaders:"Impossibile reperire i nomi delle colonne, sicuro che siano indicati all'interno del file?",noObjects:"Impossibile reperire gli oggetti, sicuro che siano indicati all'interno del file?",invalidCsv:"Impossibile elaborare il file, sicuro che sia un CSV?",invalidJson:"Impossibile elaborare il file, sicuro che sia un JSON valido?",jsonNotArray:"Errore! Il file JSON da importare deve contenere un array."},grouping:{group:"Raggruppa",ungroup:"Separa",aggregate_count:"Agg: N. Elem.",aggregate_sum:"Agg: Somma",aggregate_max:"Agg: Massimo",aggregate_min:"Agg: Minimo",aggregate_avg:"Agg: Media",aggregate_remove:"Agg: Rimuovi"},validate:{error:"Errore:",minLength:"Lunghezza minima pari a THRESHOLD caratteri.",maxLength:"Lunghezza massima pari a THRESHOLD caratteri.",required:"Necessario inserire un valore."}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("ja",{aggregate:{label:"項目"},groupPanel:{description:"ここに列ヘッダをドラッグアンドドロップして、その列でグループ化します。"},search:{placeholder:"検索...",showingItems:"表示中の項目:",selectedItems:"選択した項目:",totalItems:"項目の総数:",size:"ページサイズ:",first:"最初のページ",next:"次のページ",previous:"前のページ",last:"前のページ"},menu:{text:"列の選択:"},sort:{ascending:"昇順に並べ替え",descending:"降順に並べ替え",remove:"並べ替えの解除"},column:{hide:"列の非表示"},aggregation:{count:"合計行数: ",sum:"合計: ",avg:"平均: ",min:"最小: ",max:"最大: "},pinning:{pinLeft:"左に固定",pinRight:"右に固定",unpin:"固定解除"},gridMenu:{columns:"列:",importerTitle:"ファイルのインポート",exporterAllAsCsv:"すべてのデータをCSV形式でエクスポート",exporterVisibleAsCsv:"表示中のデータをCSV形式でエクスポート",exporterSelectedAsCsv:"選択したデータをCSV形式でエクスポート",exporterAllAsPdf:"すべてのデータをPDF形式でエクスポート",exporterVisibleAsPdf:"表示中のデータをPDF形式でエクスポート",exporterSelectedAsPdf:"選択したデータをPDF形式でエクスポート",clearAllFilters:"すべてのフィルタを清掃してください"},importer:{noHeaders:"列名を取得できません。ファイルにヘッダが含まれていることを確認してください。",noObjects:"オブジェクトを取得できません。ファイルにヘッダ以外のデータが含まれていることを確認してください。",invalidCsv:"ファイルを処理できません。ファイルが有効なCSV形式であることを確認してください。",invalidJson:"ファイルを処理できません。ファイルが有効なJSON形式であることを確認してください。",jsonNotArray:"インポートしたJSONファイルには配列が含まれている必要があります。処理を中止します。"},pagination:{sizes:"項目/ページ",totalItems:"項目"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("ko",{aggregate:{label:"아이템"},groupPanel:{description:"컬럼으로 그룹핑하기 위해서는 컬럼 헤더를 끌어 떨어뜨려 주세요."},search:{placeholder:"검색...",showingItems:"항목 보여주기:",selectedItems:"선택 항목:",totalItems:"전체 항목:",size:"페이지 크기:",first:"첫번째 페이지",next:"다음 페이지",previous:"이전 페이지",last:"마지막 페이지"},menu:{text:"컬럼을 선택하세요:"},sort:{ascending:"오름차순 정렬",descending:"내림차순 정렬",remove:"소팅 제거"},column:{hide:"컬럼 제거"},aggregation:{count:"전체 갯수: ",sum:"전체: ",avg:"평균: ",min:"최소: ",max:"최대: "},pinning:{pinLeft:"왼쪽 핀",pinRight:"오른쪽 핀",unpin:"핀 제거"},gridMenu:{columns:"컬럼:",importerTitle:"파일 가져오기",exporterAllAsCsv:"csv로 모든 데이터 내보내기",exporterVisibleAsCsv:"csv로 보이는 데이터 내보내기",exporterSelectedAsCsv:"csv로 선택된 데이터 내보내기",exporterAllAsPdf:"pdf로 모든 데이터 내보내기",exporterVisibleAsPdf:"pdf로 보이는 데이터 내보내기",exporterSelectedAsPdf:"pdf로 선택 데이터 내보내기",clearAllFilters:"모든 필터를 청소"},importer:{noHeaders:"컬럼명이 지정되어 있지 않습니다. 파일에 헤더가 명시되어 있는지 확인해 주세요.",noObjects:"데이터가 지정되어 있지 않습니다. 데이터가 파일에 있는지 확인해 주세요.",invalidCsv:"파일을 처리할 수 없습니다. 올바른 csv인지 확인해 주세요.",invalidJson:"파일을 처리할 수 없습니다. 올바른 json인지 확인해 주세요.",jsonNotArray:"json 파일은 배열을 포함해야 합니다."},pagination:{sizes:"페이지당 항목",totalItems:"전체 항목"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Verberg kolom"},aggregation:{count:"Aantal rijen: ",sum:"Som: ",avg:"Gemiddelde: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Zet links vast",pinRight:"Zet rechts vast",unpin:"Maak los"},gridMenu:{columns:"Kolommen:",importerTitle:"Importeer bestand",exporterAllAsCsv:"Exporteer alle data als csv",exporterVisibleAsCsv:"Exporteer zichtbare data als csv",exporterSelectedAsCsv:"Exporteer geselecteerde data als csv",exporterAllAsPdf:"Exporteer alle data als pdf",exporterVisibleAsPdf:"Exporteer zichtbare data als pdf",exporterSelectedAsPdf:"Exporteer geselecteerde data als pdf",clearAllFilters:"Reinig alle filters"},importer:{noHeaders:"Kolomnamen kunnen niet worden afgeleid. Heeft het bestand een header?",noObjects:"Objecten kunnen niet worden afgeleid. Bevat het bestand data naast de headers?",invalidCsv:"Het bestand kan niet verwerkt worden. Is het een valide csv bestand?",invalidJson:"Het bestand kan niet verwerkt worden. Is het valide json?",jsonNotArray:"Het json bestand moet een array bevatten. De actie wordt geannuleerd."},pagination:{sizes:"items per pagina",totalItems:"items",of:"van de"},grouping:{group:"Groepeer",ungroup:"Groepering opheffen",aggregate_count:"Agg: Aantal",aggregate_sum:"Agg: Som",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Gem",aggregate_remove:"Agg: Verwijder"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("pl",{headerCell:{aria:{defaultFilterLabel:"Filter dla kolumny",removeFilter:"Usuń filter",columnMenuButtonLabel:"Menu kolumny"},priority:"Prioritet:",filterLabel:"Filtr dla kolumny: "},aggregate:{label:"pozycji"},groupPanel:{description:"Przeciągnij nagłówek kolumny tutaj, aby pogrupować według niej."},search:{placeholder:"Szukaj...",showingItems:"Widoczne pozycje:",selectedItems:"Zaznaczone pozycje:",totalItems:"Wszystkich pozycji:",size:"Rozmiar strony:",first:"Pierwsza strona",next:"Następna strona",previous:"Poprzednia strona",last:"Ostatnia strona"},menu:{text:"Wybierz kolumny:"},sort:{ascending:"Sortuj rosnąco",descending:"Sortuj malejąco",none:"Brak sortowania",remove:"Wyłącz sortowanie"},column:{hide:"Ukryj kolumne"},aggregation:{count:"Razem pozycji: ",sum:"Razem: ",avg:"Średnia: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Przypnij do lewej",pinRight:"Przypnij do prawej",unpin:"Odepnij"},columnMenu:{close:"Zamknij"},gridMenu:{aria:{buttonLabel:"Menu Grida"},columns:"Kolumny:",importerTitle:"Importuj plik",exporterAllAsCsv:"Eksportuj wszystkie dane do csv",exporterVisibleAsCsv:"Eksportuj widoczne dane do csv",exporterSelectedAsCsv:"Eksportuj zaznaczone dane do csv",exporterAllAsPdf:"Eksportuj wszystkie dane do pdf",exporterVisibleAsPdf:"Eksportuj widoczne dane do pdf",exporterSelectedAsPdf:"Eksportuj zaznaczone dane do pdf",clearAllFilters:"Wyczyść filtry"},importer:{noHeaders:"Nie udało się wczytać nazw kolumn. Czy plik posiada nagłówek?",noObjects:"Nie udalo się wczytać pozycji. Czy plik zawiera dane??",invalidCsv:"Nie udało się przetworzyć pliku, jest to prawidlowy plik CSV??",invalidJson:"Nie udało się przetworzyć pliku, jest to prawidlowy plik Json?",jsonNotArray:"Importowany plik json musi zawierać tablicę, importowanie przerwane."},pagination:{aria:{pageToFirst:"Pierwsza strona",pageBack:"Poprzednia strona",pageSelected:"Wybrana strona",pageForward:"Następna strona",pageToLast:"Ostatnia strona"},sizes:"pozycji na stronę",totalItems:"pozycji",through:"do",of:"z"},grouping:{group:"Grupuj",ungroup:"Rozgrupuj",aggregate_count:"Zbiorczo: Razem",aggregate_sum:"Zbiorczo: Suma",aggregate_max:"Zbiorczo: Max",aggregate_min:"Zbiorczo: Min",aggregate_avg:"Zbiorczo: Średnia",aggregate_remove:"Zbiorczo: Usuń"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("pt-br",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar arquivo",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O arquivo tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no arquivo, além dos cabeçalhos?",invalidCsv:"Arquivo não pode ser processado. É um CSV válido?",invalidJson:"Arquivo não pode ser processado. É um Json válido?",jsonNotArray:"Arquivo json importado tem que conter um array. Abortando."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Proxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("pt",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Itens Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar ficheiro",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O ficheiro tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no ficheiro, além dos cabeçalhos?",invalidCsv:"Ficheiro não pode ser processado. É um CSV válido?",invalidJson:"Ficheiro não pode ser processado. É um Json válido?",jsonNotArray:"Ficheiro json importado tem que conter um array. Interrompendo."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Próxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("ro",{headerCell:{aria:{defaultFilterLabel:"Filtru pentru coloana",removeFilter:"Sterge filtru",columnMenuButtonLabel:"Column Menu"},priority:"Prioritate:",filterLabel:"Filtru pentru coloana:"},aggregate:{label:"Elemente"},groupPanel:{description:"Trage un cap de coloana aici pentru a grupa elementele dupa coloana respectiva"},search:{placeholder:"Cauta...",showingItems:"Arata elementele:",selectedItems:"Elementele selectate:",totalItems:"Total elemente:",size:"Marime pagina:",first:"Prima pagina",next:"Pagina urmatoare",previous:"Pagina anterioara",last:"Ultima pagina"},menu:{text:"Alege coloane:"},sort:{ascending:"Ordoneaza crescator",descending:"Ordoneaza descrescator",none:"Fara ordonare",remove:"Sterge ordonarea"},column:{hide:"Ascunde coloana"},aggregation:{count:"total linii: ",sum:"total: ",avg:"medie: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin la stanga",pinRight:"Pin la dreapta",unpin:"Sterge pinul"},columnMenu:{close:"Inchide"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Coloane:",importerTitle:"Incarca fisier",exporterAllAsCsv:"Exporta toate datele ca csv",exporterVisibleAsCsv:"Exporta datele vizibile ca csv",exporterSelectedAsCsv:"Exporta datele selectate ca csv",exporterAllAsPdf:"Exporta toate datele ca pdf",exporterVisibleAsPdf:"Exporta datele vizibile ca pdf",exporterSelectedAsPdf:"Exporta datele selectate ca csv pdf",clearAllFilters:"Sterge toate filtrele"},importer:{noHeaders:"Numele coloanelor nu a putut fi incarcat, acest fisier are un header?",noObjects:"Datele nu au putut fi incarcate, exista date in fisier in afara numelor de coloane?",invalidCsv:"Fisierul nu a putut fi procesat, ati incarcat un CSV valid ?",invalidJson:"Fisierul nu a putut fi procesat, ati incarcat un Json valid?",jsonNotArray:"Json-ul incarcat trebuie sa contina un array, inchidere."},pagination:{aria:{pageToFirst:"Prima pagina",pageBack:"O pagina inapoi",pageSelected:"Pagina selectata",pageForward:"O pagina inainte",pageToLast:"Ultima pagina"},sizes:"Elemente per pagina",totalItems:"elemente",through:"prin",of:"of"},grouping:{group:"Grupeaza",ungroup:"Opreste gruparea",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("ru",{headerCell:{aria:{defaultFilterLabel:"Фильтр столбца",removeFilter:"Удалить фильтр",columnMenuButtonLabel:"Меню столбца"},priority:"Приоритет:",filterLabel:"Фильтр столбца: "},aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",none:"Без сортировки",remove:"Убрать сортировку"},column:{hide:"Спрятать столбец"},aggregation:{count:"всего строк: ",sum:"итого: ",avg:"среднее: ",min:"мин: ",max:"макс: "},pinning:{pinLeft:"Закрепить слева",pinRight:"Закрепить справа",unpin:"Открепить"},columnMenu:{close:"Закрыть"},gridMenu:{aria:{buttonLabel:"Меню"},columns:"Столбцы:",importerTitle:"Импортировать файл",exporterAllAsCsv:"Экспортировать всё в CSV",exporterVisibleAsCsv:"Экспортировать видимые данные в CSV",exporterSelectedAsCsv:"Экспортировать выбранные данные в CSV",exporterAllAsPdf:"Экспортировать всё в PDF",exporterVisibleAsPdf:"Экспортировать видимые данные в PDF",exporterSelectedAsPdf:"Экспортировать выбранные данные в PDF",clearAllFilters:"Очистите все фильтры"},importer:{noHeaders:"Не удалось получить названия столбцов, есть ли в файле заголовок?",noObjects:"Не удалось получить данные, есть ли в файле строки кроме заголовка?",invalidCsv:"Не удалось обработать файл, это правильный CSV-файл?",invalidJson:"Не удалось обработать файл, это правильный JSON?",jsonNotArray:"Импортируемый JSON-файл должен содержать массив, операция отменена."},pagination:{aria:{pageToFirst:"Первая страница",pageBack:"Предыдущая страница",pageSelected:"Выбранная страница",pageForward:"Следующая страница",pageToLast:"Последняя страница"},sizes:"строк на страницу",totalItems:"строк",through:"по",of:"из"},grouping:{group:"Группировать",ungroup:"Разгруппировать",aggregate_count:"Группировать: Count",aggregate_sum:"Для группы: Сумма",aggregate_max:"Для группы: Максимум",aggregate_min:"Для группы: Минимум",aggregate_avg:"Для группы: Среднее",aggregate_remove:"Для группы: Пусто"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("sv",{aggregate:{label:"Artiklar"},groupPanel:{description:"Dra en kolumnrubrik hit och släpp den för att gruppera efter den kolumnen."},search:{placeholder:"Sök...",showingItems:"Visar artiklar:",selectedItems:"Valda artiklar:",totalItems:"Antal artiklar:",size:"Sidstorlek:",first:"Första sidan",next:"Nästa sida",previous:"Föregående sida",last:"Sista sidan"},menu:{text:"Välj kolumner:"},sort:{ascending:"Sortera stigande",descending:"Sortera fallande",remove:"Inaktivera sortering"},column:{hide:"Göm kolumn"},aggregation:{count:"Antal rader: ",sum:"Summa: ",avg:"Genomsnitt: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Fäst vänster",pinRight:"Fäst höger",unpin:"Lösgör"},gridMenu:{columns:"Kolumner:",importerTitle:"Importera fil",exporterAllAsCsv:"Exportera all data som CSV",exporterVisibleAsCsv:"Exportera synlig data som CSV",exporterSelectedAsCsv:"Exportera markerad data som CSV",exporterAllAsPdf:"Exportera all data som PDF",exporterVisibleAsPdf:"Exportera synlig data som PDF",exporterSelectedAsPdf:"Exportera markerad data som PDF",clearAllFilters:"Rengör alla filter"},importer:{noHeaders:"Kolumnnamn kunde inte härledas. Har filen ett sidhuvud?",noObjects:"Objekt kunde inte härledas. Har filen data undantaget sidhuvud?",invalidCsv:"Filen kunde inte behandlas, är den en giltig CSV?",invalidJson:"Filen kunde inte behandlas, är den en giltig JSON?",jsonNotArray:"Importerad JSON-fil måste innehålla ett fält. Import avbruten."},pagination:{sizes:"Artiklar per sida",totalItems:"Artiklar"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("ta",{aggregate:{label:"உருப்படிகள்"},groupPanel:{description:"ஒரு பத்தியை குழுவாக அமைக்க அப்பத்தியின் தலைப்பை இங்கே  இழுத்து வரவும் "},search:{placeholder:"தேடல் ...",showingItems:"உருப்படிகளை காண்பித்தல்:",selectedItems:"தேர்ந்தெடுக்கப்பட்ட  உருப்படிகள்:",totalItems:"மொத்த உருப்படிகள்:",size:"பக்க அளவு: ",first:"முதல் பக்கம்",next:"அடுத்த பக்கம்",previous:"முந்தைய பக்கம் ",last:"இறுதி பக்கம்"},menu:{text:"பத்திகளை தேர்ந்தெடு:"},sort:{ascending:"மேலிருந்து கீழாக",descending:"கீழிருந்து மேலாக",remove:"வரிசையை நீக்கு"},column:{hide:"பத்தியை மறைத்து வை "},aggregation:{count:"மொத்த வரிகள்:",sum:"மொத்தம்: ",avg:"சராசரி: ",min:"குறைந்தபட்ச: ",max:"அதிகபட்ச: "},pinning:{pinLeft:"இடதுபுறமாக தைக்க ",pinRight:"வலதுபுறமாக தைக்க",unpin:"பிரி"},gridMenu:{columns:"பத்திகள்:",importerTitle:"கோப்பு : படித்தல்",exporterAllAsCsv:"எல்லா தரவுகளையும் கோப்பாக்கு: csv",exporterVisibleAsCsv:"இருக்கும் தரவுகளை கோப்பாக்கு: csv",exporterSelectedAsCsv:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: csv",exporterAllAsPdf:"எல்லா தரவுகளையும் கோப்பாக்கு: pdf",exporterVisibleAsPdf:"இருக்கும் தரவுகளை கோப்பாக்கு: pdf",exporterSelectedAsPdf:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"பத்தியின் தலைப்புகளை பெற இயலவில்லை, கோப்பிற்கு தலைப்பு உள்ளதா?",noObjects:"இலக்குகளை உருவாக்க முடியவில்லை, கோப்பில் தலைப்புகளை தவிர தரவு ஏதேனும் உள்ளதா? ",invalidCsv:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - csv",invalidJson:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - json",jsonNotArray:"படித்த கோப்பில் வரிசைகள் உள்ளது, நடைமுறை ரத்து செய் : json"},pagination:{sizes:"உருப்படிகள் / பக்கம்",totalItems:"உருப்படிகள் "},grouping:{group:"குழு",ungroup:"பிரி",aggregate_count:"மதிப்பீட்டு : எண்ணு",aggregate_sum:"மதிப்பீட்டு : கூட்டல்",aggregate_max:"மதிப்பீட்டு : அதிகபட்சம்",aggregate_min:"மதிப்பீட்டு : குறைந்தபட்சம்",aggregate_avg:"மதிப்பீட்டு : சராசரி",aggregate_remove:"மதிப்பீட்டு : நீக்கு"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("tr",{headerCell:{aria:{defaultFilterLabel:"Sütun için filtre",removeFilter:"Filtreyi Kaldır",columnMenuButtonLabel:"Sütun Menüsü"},priority:"Öncelik:",filterLabel:"Sütun için filtre: "},aggregate:{label:"kayıtlar"},groupPanel:{description:"Sütuna göre gruplamak için sütun başlığını buraya sürükleyin ve bırakın."},search:{placeholder:"Arama...",showingItems:"Gösterilen Kayıt:",selectedItems:"Seçili Kayıt:",totalItems:"Toplam Kayıt:",size:"Sayfa Boyutu:",first:"İlk Sayfa",next:"Sonraki Sayfa",previous:"Önceki Sayfa",last:"Son Sayfa"},menu:{text:"Sütunları Seç:"},sort:{ascending:"Artan Sırada Sırala",descending:"Azalan Sırada Sırala",none:"Sıralama Yapma",remove:"Sıralamayı Kaldır"},column:{hide:"Sütunu Gizle"},aggregation:{count:"toplam satır: ",sum:"toplam: ",avg:"ort: ",min:"min: ",max:"maks: "},pinning:{pinLeft:"Sola Sabitle",pinRight:"Sağa Sabitle",unpin:"Sabitlemeyi Kaldır"},columnMenu:{close:"Kapat"},gridMenu:{aria:{buttonLabel:"Tablo Menü"},columns:"Sütunlar:",importerTitle:"Dosya içeri aktar",exporterAllAsCsv:"Bütün veriyi CSV olarak dışarı aktar",exporterVisibleAsCsv:"Görünen veriyi CSV olarak dışarı aktar",exporterSelectedAsCsv:"Seçili veriyi CSV olarak dışarı aktar",exporterAllAsPdf:"Bütün veriyi PDF olarak dışarı aktar",exporterVisibleAsPdf:"Görünen veriyi PDF olarak dışarı aktar",exporterSelectedAsPdf:"Seçili veriyi PDF olarak dışarı aktar",clearAllFilters:"Bütün filtreleri kaldır"},importer:{noHeaders:"Sütun isimleri üretilemiyor, dosyanın bir başlığı var mı?",noObjects:"Nesneler üretilemiyor, dosyada başlıktan başka bir veri var mı?",invalidCsv:"Dosya işlenemedi, geçerli bir CSV dosyası mı?",invalidJson:"Dosya işlenemedi, geçerli bir Json dosyası mı?",jsonNotArray:"Alınan Json dosyasında bir dizi bulunmalıdır, işlem iptal ediliyor."},pagination:{aria:{pageToFirst:"İlk sayfaya",pageBack:"Geri git",pageSelected:"Seçili sayfa",pageForward:"İleri git",pageToLast:"Sona git"},sizes:"Sayfadaki nesne sayısı",totalItems:"kayıtlar",through:"",of:""},grouping:{group:"Grupla",ungroup:"Gruplama",aggregate_count:"Yekun: Sayı",aggregate_sum:"Yekun: Toplam",aggregate_max:"Yekun: Maks",aggregate_min:"Yekun: Min",aggregate_avg:"Yekun: Ort",aggregate_remove:"Yekun: Sil"}}),n}])}])}(),function(){var t=["uiT","uiTranslate"],n=angular.module("ui.grid.i18n"),i,r,u;n.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"});n.service("i18nService",["$log","i18nConstants","$rootScope",function(n,t,i){var r={_langs:{},current:null,get:function(n){return this._langs[n.toLowerCase()]},add:function(n,t){var i=n.toLowerCase();this._langs[i]||(this._langs[i]={});angular.extend(this._langs[i],t)},getAllLangs:function(){var n=[],t;if(!this._langs)return n;for(t in this._langs)n.push(t);return n},setCurrent:function(n){this.current=n.toLowerCase()},getCurrentLang:function(){return this.current}},u={add:function(n,t){typeof n=="object"?angular.forEach(n,function(n){n&&r.add(n,t)}):r.add(n,t)},getAllLangs:function(){return r.getAllLangs()},get:function(n){var t=n?n:u.getCurrentLang();return r.get(t)},getSafeText:function(n,i){var h=i?i:u.getCurrentLang(),s=r.get(h),o,f,e;if(!s)return t.MISSING;for(o=n.split("."),f=s,e=0;e<o.length;++e){if(f[o[e]]===undefined||f[o[e]]===null)return t.MISSING;f=f[o[e]]}return f},setCurrentLang:function(n){n&&(r.setCurrent(n),i.$broadcast(t.UPDATE_EVENT))},getCurrentLang:function(){var n=r.getCurrentLang();return n||(n=t.DEFAULT_LANG,r.setCurrent(n)),n}};return u}]);i=function(n,t){return{compile:function(){return{pre:function(i,r,u){var f=t.LOCALE_DIRECTIVE_ALIAS,e=i.$eval(u[f]);e?i.$watch(u[f],function(){n.setCurrentLang(e)}):u.$$observers&&u.$observe(f,function(){n.setCurrentLang(u[f]||t.DEFAULT_LANG)})}}}}};n.directive("uiI18n",["i18nService","i18nConstants",i]);r=function(n,i,r){return{restrict:"EA",compile:function(){return{pre:function(u,f,e){var o=t[0],s=t[1],a=e[o]||e[s]||f.html(),h=r.MISSING+a,c,v,l,y;e.$$observers&&(v=e[o]?o:s,c=e.$observe(v,function(t){t&&f.html(n(t)(i.getCurrentLang())||h)}));l=n(a);y=u.$on(r.UPDATE_EVENT,function(){c?c(e[o]||e[s]):f.html(l(i.get())||h)});u.$on("$destroy",y);f.html(l(i.get())||h)}}}}};angular.forEach(t,function(t){n.directive(t,["$parse","i18nService","i18nConstants",r])});u=function(n,t,i){return function(r){var u=n(r);return u(t.get())||i.MISSING+r}};angular.forEach(["t","uiTranslate"],function(t){n.filter(t,["$parse","i18nService","i18nConstants",u])})}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("zh-cn",{headerCell:{aria:{defaultFilterLabel:"列过滤器",removeFilter:"移除过滤器",columnMenuButtonLabel:"列菜单"},priority:"优先级:",filterLabel:"列过滤器: "},aggregate:{label:"行"},groupPanel:{description:"拖曳表头到此处进行分组"},search:{placeholder:"查找",showingItems:"已显示行数：",selectedItems:"已选择行数：",totalItems:"总行数：",size:"每页显示行数：",first:"首页",next:"下一页",previous:"上一页",last:"末页"},menu:{text:"选择列："},sort:{ascending:"升序",descending:"降序",none:"无序",remove:"取消排序"},column:{hide:"隐藏列"},aggregation:{count:"计数：",sum:"求和：",avg:"均值：",min:"最小值：",max:"最大值："},pinning:{pinLeft:"左侧固定",pinRight:"右侧固定",unpin:"取消固定"},columnMenu:{close:"关闭"},gridMenu:{aria:{buttonLabel:"表格菜单"},columns:"列：",importerTitle:"导入文件",exporterAllAsCsv:"导出全部数据到CSV",exporterVisibleAsCsv:"导出可见数据到CSV",exporterSelectedAsCsv:"导出已选数据到CSV",exporterAllAsPdf:"导出全部数据到PDF",exporterVisibleAsPdf:"导出可见数据到PDF",exporterSelectedAsPdf:"导出已选数据到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"无法获取列名，确定文件包含表头？",noObjects:"无法获取数据，确定文件包含数据？",invalidCsv:"无法处理文件，确定是合法的CSV文件？",invalidJson:"无法处理文件，确定是合法的JSON文件？",jsonNotArray:"导入的文件不是JSON数组！"},pagination:{aria:{pageToFirst:"第一页",pageBack:"上一页",pageSelected:"当前页",pageForward:"下一页",pageToLast:"最后一页"},sizes:"行每页",totalItems:"行",through:"至",of:"共"},grouping:{group:"分组",ungroup:"取消分组",aggregate_count:"合计: 计数",aggregate_sum:"合计: 求和",aggregate_max:"合计: 最大",aggregate_min:"合计: 最小",aggregate_avg:"合计: 平均",aggregate_remove:"合计: 移除"}}),n}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(n){n.decorator("i18nService",["$delegate",function(n){return n.add("zh-tw",{aggregate:{label:"行"},groupPanel:{description:"拖曳表頭到此處進行分組"},search:{placeholder:"查找",showingItems:"已顯示行數：",selectedItems:"已選擇行數：",totalItems:"總行數：",size:"每頁顯示行數：",first:"首頁",next:"下壹頁",previous:"上壹頁",last:"末頁"},menu:{text:"選擇列："},sort:{ascending:"升序",descending:"降序",remove:"取消排序"},column:{hide:"隱藏列"},aggregation:{count:"計數：",sum:"求和：",avg:"均值：",min:"最小值：",max:"最大值："},pinning:{pinLeft:"左側固定",pinRight:"右側固定",unpin:"取消固定"},gridMenu:{columns:"列：",importerTitle:"導入文件",exporterAllAsCsv:"導出全部數據到CSV",exporterVisibleAsCsv:"導出可見數據到CSV",exporterSelectedAsCsv:"導出已選數據到CSV",exporterAllAsPdf:"導出全部數據到PDF",exporterVisibleAsPdf:"導出可見數據到PDF",exporterSelectedAsPdf:"導出已選數據到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"無法獲取列名，確定文件包含表頭？",noObjects:"無法獲取數據，確定文件包含數據？",invalidCsv:"無法處理文件，確定是合法的CSV文件？",invalidJson:"無法處理文件，確定是合法的JSON文件？",jsonNotArray:"導入的文件不是JSON數組！"},pagination:{sizes:"行每頁",totalItems:"行"}}),n}])}])}(),function(){"use strict";var n=angular.module("ui.grid.autoResize",["ui.grid"]);n.directive("uiGridAutoResize",["$timeout","gridUtil",function(n,t){return{require:"uiGrid",scope:!1,link:function(n,i,r,u){function h(){s=t.elementHeight(i);o=t.elementWidth(i)}function e(){clearTimeout(f);f=setTimeout(function(){var r=t.elementHeight(i),f=t.elementWidth(i);r!==s||f!==o?(u.grid.gridHeight=r,u.grid.gridWidth=f,n.$apply(function(){u.grid.refresh().then(function(){h();e()})})):e()},250)}var o,s,f;h();e();n.$on("$destroy",function(){clearTimeout(f)})}}}])}(),function(){"use strict";var n=angular.module("ui.grid.cellNav",["ui.grid"]);n.constant("uiGridCellNavConstants",{FEATURE_NAME:"gridCellNav",CELL_NAV_EVENT:"cellNav",direction:{LEFT:0,RIGHT:1,UP:2,DOWN:3,PG_UP:4,PG_DOWN:5},EVENT_TYPE:{KEYDOWN:0,CLICK:1,CLEAR:2}});n.factory("uiGridCellNavFactory",["gridUtil","uiGridConstants","uiGridCellNavConstants","GridRowColumn","$q",function(n,t,i,r){var u=function(n,t,i,r){this.rows=n.visibleRowCache;this.columns=t.visibleColumnCache;this.leftColumns=i?i.visibleColumnCache:[];this.rightColumns=r?r.visibleColumnCache:[];this.bodyContainer=n};return u.prototype.getFocusableCols=function(){var n=this.leftColumns.concat(this.columns,this.rightColumns);return n.filter(function(n){return n.colDef.allowCellFocus})},u.prototype.getFocusableRows=function(){return this.rows.filter(function(n){return n.allowCellFocus!==!1})},u.prototype.getNextRowCol=function(n,t,r){switch(n){case i.direction.LEFT:return this.getRowColLeft(t,r);case i.direction.RIGHT:return this.getRowColRight(t,r);case i.direction.UP:return this.getRowColUp(t,r);case i.direction.DOWN:return this.getRowColDown(t,r);case i.direction.PG_UP:return this.getRowColPageUp(t,r);case i.direction.PG_DOWN:return this.getRowColPageDown(t,r)}},u.prototype.initializeSelection=function(){var n=this.getFocusableCols(),t=this.getFocusableRows(),i,u;return n.length===0||t.length===0?null:(i=0,u=0,new r(t[0],n[0]))},u.prototype.getRowColLeft=function(n,t){var i=this.getFocusableCols(),e=this.getFocusableRows(),u=i.indexOf(t),o=e.indexOf(n),f;return u===-1&&(u=1),f=u===0?i.length-1:u-1,f>u?o===0?new r(n,i[f]):new r(e[o-1],i[f]):new r(n,i[f])},u.prototype.getRowColRight=function(n,t){var i=this.getFocusableCols(),e=this.getFocusableRows(),u=i.indexOf(t),o=e.indexOf(n),f;return u===-1&&(u=0),f=u===i.length-1?0:u+1,f<u?o===e.length-1?new r(n,i[f]):new r(e[o+1],i[f]):new r(n,i[f])},u.prototype.getRowColDown=function(n,t){var u=this.getFocusableCols(),f=this.getFocusableRows(),i=u.indexOf(t),e=f.indexOf(n);return i===-1&&(i=0),e===f.length-1?new r(n,u[i]):new r(f[e+1],u[i])},u.prototype.getRowColPageDown=function(n,t){var f=this.getFocusableCols(),i=this.getFocusableRows(),u=f.indexOf(t),o=i.indexOf(n),e;return u===-1&&(u=0),e=this.bodyContainer.minRowsToRender(),o>=i.length-e?new r(i[i.length-1],f[u]):new r(i[o+e],f[u])},u.prototype.getRowColUp=function(n,t){var u=this.getFocusableCols(),f=this.getFocusableRows(),i=u.indexOf(t),e=f.indexOf(n);return i===-1&&(i=0),e===0?new r(n,u[i]):new r(f[e-1],u[i])},u.prototype.getRowColPageUp=function(n,t){var u=this.getFocusableCols(),f=this.getFocusableRows(),i=u.indexOf(t),o=f.indexOf(n),e;return i===-1&&(i=0),e=this.bodyContainer.minRowsToRender(),o-e<0?new r(f[0],u[i]):new r(f[o-e],u[i])},u}]);n.service("uiGridCellNavService",["gridUtil","uiGridConstants","uiGridCellNavConstants","$q","uiGridCellNavFactory","GridRowColumn","ScrollEvent",function(n,t,i,r,u){var f={initializeGrid:function(n){n.registerColumnBuilder(f.cellNavColumnBuilder);n.cellNav={};n.cellNav.lastRowCol=null;n.cellNav.focusedCells=[];f.defaultGridOptions(n.options);var t={events:{cellNav:{navigate:function(){},viewPortKeyDown:function(){},viewPortKeyPress:function(){}}},methods:{cellNav:{scrollToFocus:function(t,i){return f.scrollToFocus(n,t,i)},getFocusedCell:function(){return n.cellNav.lastRowCol},getCurrentSelection:function(){return n.cellNav.focusedCells},rowColSelectIndex:function(t){for(var r=-1,i=0;i<n.cellNav.focusedCells.length;i++)if(n.cellNav.focusedCells[i].col.uid===t.col.uid&&n.cellNav.focusedCells[i].row.uid===t.row.uid){r=i;break}return r}}}};n.api.registerEventsFromObject(t.events);n.api.registerMethodsFromObject(t.methods)},defaultGridOptions:function(n){n.modifierKeysToMultiSelectCells=n.modifierKeysToMultiSelectCells===!0},decorateRenderContainers:function(n){var t=n.hasRightContainer()?n.renderContainers.right:null,i=n.hasLeftContainer()?n.renderContainers.left:null;i!==null&&(n.renderContainers.left.cellNav=new u(n.renderContainers.body,i,t,n.renderContainers.body));t!==null&&(n.renderContainers.right.cellNav=new u(n.renderContainers.body,t,n.renderContainers.body,i));n.renderContainers.body.cellNav=new u(n.renderContainers.body,n.renderContainers.body,i,t)},getDirection:function(n){return n.keyCode===t.keymap.LEFT||n.keyCode===t.keymap.TAB&&n.shiftKey?i.direction.LEFT:n.keyCode===t.keymap.RIGHT||n.keyCode===t.keymap.TAB?i.direction.RIGHT:n.keyCode===t.keymap.UP||n.keyCode===t.keymap.ENTER&&n.shiftKey?i.direction.UP:n.keyCode===t.keymap.PG_UP?i.direction.PG_UP:n.keyCode===t.keymap.DOWN||n.keyCode===t.keymap.ENTER&&!(n.ctrlKey||n.altKey)?i.direction.DOWN:n.keyCode===t.keymap.PG_DOWN?i.direction.PG_DOWN:null},cellNavColumnBuilder:function(n){return n.allowCellFocus=n.allowCellFocus===undefined?!0:n.allowCellFocus,r.all([])},scrollToFocus:function(n,t,i){var r=null,u=null;return typeof t!="undefined"&&t!==null&&(r=n.getRow(t)),typeof i!="undefined"&&i!==null&&(u=n.getColumn(i.name?i.name:i.field)),n.api.core.scrollToIfNecessary(r,u).then(function(){var t={row:r,col:u};r!==null&&u!==null&&n.cellNav.broadcastCellNav(t)})},getLeftWidth:function(n,t){var r=0,i,u;return t?(i=n.renderContainers.body.visibleColumnCache.indexOf(t),n.renderContainers.body.visibleColumnCache.forEach(function(n,t){t<i&&(r+=n.drawnWidth)}),u=i===0?0:(i+1)/n.renderContainers.body.visibleColumnCache.length,r+=t.drawnWidth*u):r}};return f}]);n.directive("uiGridCellnav",["gridUtil","uiGridCellNavService","uiGridCellNavConstants","uiGridConstants","GridRowColumn","$timeout","$compile",function(n,t,i,r,u,f,e){return{replace:!0,priority:-150,require:"^uiGrid",scope:!1,controller:function(){},compile:function(){return{pre:function(n,f,e,o){var h=n,s=o.grid;t.initializeGrid(s);o.cellNav={};o.cellNav.makeRowCol=function(n){return n instanceof u||(n=new u(n.row,n.col)),n};o.cellNav.getActiveCell=function(){var n=f[0].getElementsByClassName("ui-grid-cell-focus");return n.length>0?n[0]:undefined};o.cellNav.broadcastCellNav=s.cellNav.broadcastCellNav=function(n,t,r){t=!(t===undefined||!t);n=o.cellNav.makeRowCol(n);o.cellNav.broadcastFocus(n,t,r);h.$broadcast(i.CELL_NAV_EVENT,n,t,r)};o.cellNav.clearFocus=s.cellNav.clearFocus=function(){s.cellNav.focusedCells=[];h.$broadcast(i.CELL_NAV_EVENT)};o.cellNav.broadcastFocus=function(n,t){var i;t=!(t===undefined||!t);n=o.cellNav.makeRowCol(n);var f=n.row,e=n.col,r=o.grid.api.cellNav.rowColSelectIndex(n);s.cellNav.lastRowCol===null||r===-1?(i=new u(f,e),(s.cellNav.lastRowCol===null||s.cellNav.lastRowCol.row!==i.row||s.cellNav.lastRowCol.col!==i.col)&&(s.api.cellNav.raise.navigate(i,s.cellNav.lastRowCol),s.cellNav.lastRowCol=i),o.grid.options.modifierKeysToMultiSelectCells&&t?s.cellNav.focusedCells.push(n):s.cellNav.focusedCells=[n]):s.options.modifierKeysToMultiSelectCells&&t&&r>=0&&s.cellNav.focusedCells.splice(r,1)};o.cellNav.handleKeyDown=function(n){var e=t.getDirection(n),h,f;if(e===null)return null;if(h="body",n.uiGridTargetRenderContainerId&&(h=n.uiGridTargetRenderContainerId),f=o.grid.api.cellNav.getFocusedCell(),f){var u=o.grid.renderContainers[h].cellNav.getNextRowCol(e,f.row,f.col),c=o.grid.renderContainers[h].cellNav.getFocusableCols(),l=o.grid.api.cellNav.rowColSelectIndex(u);return e===i.direction.LEFT&&u.col===c[c.length-1]&&u.row===f.row&&n.keyCode===r.keymap.TAB&&n.shiftKey?(s.cellNav.focusedCells.splice(l,1),o.cellNav.clearFocus(),!0):e===i.direction.RIGHT&&u.col===c[0]&&u.row===f.row&&n.keyCode===r.keymap.TAB&&!n.shiftKey?(s.cellNav.focusedCells.splice(l,1),o.cellNav.clearFocus(),!0):(s.scrollToIfNecessary(u.row,u.col).then(function(){o.cellNav.broadcastCellNav(u)}),n.stopPropagation(),n.preventDefault(),!1)}}},post:function(n,t,r,u){function o(){var u='<div id="'+f.id+'-aria-speakable" class="ui-grid-a11y-ariascreenreader-speakable ui-grid-offscreen" aria-live="assertive" role="region" aria-atomic="true" aria-hidden="false" aria-relevant="additions" >&nbsp;<\/div>',r=e(u)(n);t.prepend(r);n.$on(i.CELL_NAV_EVENT,function(n,t,i,u){function c(n){n!==r.text()&&(r[0].style.clip="rect(0px,0px,0px,0px)",r[0].innerHTML="",r[0].style.visibility="hidden",r[0].style.visibility="visible",n!==""&&(r[0].style.clip="auto",r[0].appendChild(document.createTextNode(n+" ")),r[0].style.visibility="hidden",r[0].style.visibility="visible"))}var o,s,e,h;if(!u||u.type!=="focus"){for(o=[],s=f.api.cellNav.getCurrentSelection(),e=0;e<s.length;e++)o.push(s[e].getIntersectionValueFiltered());h=o.toString();c(h)}})}var s=n,f=u.grid;o()}}}}}]);n.directive("uiGridRenderContainer",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","$compile","uiGridCellNavConstants",function(n,t,i,r,u,f,e){return{replace:!0,priority:-99999,require:["^uiGrid","uiGridRenderContainer","?^uiGridCellnav"],scope:!1,compile:function(){return{post:function(t,r,o,s){var h=s[0],p=s[1],y=s[2],l,a,c,v;if(h.grid.api.cellNav&&(l=p.containerId,a=h.grid,u.decorateRenderContainers(a),l==="body")){h.grid.options.modifierKeysToMultiSelectCells?r.attr("aria-multiselectable",!0):r.attr("aria-multiselectable",!1);c=f('<div class="ui-grid-focuser" role="region" aria-live="assertive" aria-atomic="false" tabindex="0" aria-controls="'+a.id+"-aria-speakable "+a.id+'-grid-container" aria-owns="'+a.id+'-grid-container"><\/div>')(t);r.append(c);c.on("focus",function(n){n.uiGridTargetRenderContainerId=l;var t=h.grid.api.cellNav.getFocusedCell();t===null&&(t=h.grid.renderContainers[l].cellNav.getNextRowCol(e.direction.DOWN,null,null),t.row&&t.col&&h.cellNav.broadcastCellNav(t))});y.setAriaActivedescendant=function(n){r.attr("aria-activedescendant",n)};y.removeAriaActivedescendant=function(n){r.attr("aria-activedescendant")===n&&r.attr("aria-activedescendant","")};h.focus=function(){i.focus.byElement(c[0])};v=null;c.on("keydown",function(n){n.uiGridTargetRenderContainerId=l;var t=h.grid.api.cellNav.getFocusedCell(),i=h.cellNav.handleKeyDown(n);i===null&&(h.grid.api.cellNav.raise.viewPortKeyDown(n,t),v=t)});c.on("keypress",function(t){v&&(n(function(){h.grid.api.cellNav.raise.viewPortKeyPress(t,v)},4),v=null)});t.$on("$destroy",function(){c.off()})}}}}}}]);n.directive("uiGridViewport",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","uiGridCellNavConstants","$log","$compile",function(){return{replace:!0,priority:-99999,require:["^uiGrid","^uiGridRenderContainer","?^uiGridCellnav"],scope:!1,compile:function(){return{pre:function(){},post:function(n,t,i,r){var u=r[0],e=r[1],o,f;u.grid.api.cellNav&&(o=e.containerId,o==="body")&&(f=u.grid,f.api.core.on.scrollBegin(n,function(){var n=u.grid.api.cellNav.getFocusedCell();n!==null&&e.colContainer.containsColumn(n.col)&&u.cellNav.clearFocus()}),f.api.core.on.scrollEnd(n,function(){var n=u.grid.api.cellNav.getFocusedCell();n!==null&&e.colContainer.containsColumn(n.col)&&u.cellNav.broadcastCellNav(n)}),f.api.cellNav.on.navigate(n,function(){u.focus()}))}}}}}]);n.directive("uiGridCell",["$timeout","$document","uiGridCellNavService","gridUtil","uiGridCellNavConstants","uiGridConstants","GridRowColumn",function(n,t,i,r,u,f,e){return{priority:-150,restrict:"A",require:["^uiGrid","?^uiGridCellnav"],scope:!1,link:function(n,t,i,r){function o(n){n.preventDefault()}function c(){if(!n.focused){var i=t.find("div");i.addClass("ui-grid-cell-focus");t.attr("aria-selected",!0);s.setAriaActivedescendant(t.attr("id"));n.focused=!0}}function l(){if(n.focused){var i=t.find("div");i.removeClass("ui-grid-cell-focus");t.attr("aria-selected",!1);s.removeAriaActivedescendant(t.attr("id"));n.focused=!1}}var f=r[0],s=r[1],h;if(f.grid.api.cellNav&&n.col.colDef.allowCellFocus){h=f.grid;n.focused=!1;t.attr("tabindex",-1);t.find("div").on("click",function(t){f.cellNav.broadcastCellNav(new e(n.row,n.col),t.ctrlKey||t.metaKey,t);t.stopPropagation();n.$apply()});t.on("mousedown",o);f.grid.api.edit&&(f.grid.api.edit.on.beginCellEdit(n,function(){t.off("mousedown",o)}),f.grid.api.edit.on.afterCellEdit(n,function(){t.on("mousedown",o)}),f.grid.api.edit.on.cancelCellEdit(n,function(){t.on("mousedown",o)}));t.on("focus",function(t){f.cellNav.broadcastCellNav(new e(n.row,n.col),!1,t);t.stopPropagation();n.$apply()});n.$on(u.CELL_NAV_EVENT,function(){var t=h.cellNav.focusedCells.some(function(t){return t.row===n.row&&t.col===n.col});t?c():l()});n.$on("$destroy",function(){t.find("div").off();t.off()})}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.edit",["ui.grid"]);n.constant("uiGridEditConstants",{EDITABLE_CELL_TEMPLATE:/EDITABLE_CELL_TEMPLATE/g,EDITABLE_CELL_DIRECTIVE:/editable_cell_directive/g,events:{BEGIN_CELL_EDIT:"uiGridEventBeginCellEdit",END_CELL_EDIT:"uiGridEventEndCellEdit",CANCEL_CELL_EDIT:"uiGridEventCancelCellEdit"}});n.service("uiGridEditService",["$q","uiGridConstants","gridUtil",function(n,t,i){var r={initializeGrid:function(n){r.defaultGridOptions(n.options);n.registerColumnBuilder(r.editColumnBuilder);n.edit={};var t={events:{edit:{afterCellEdit:function(){},beginCellEdit:function(){},cancelCellEdit:function(){}}},methods:{edit:{}}};n.api.registerEventsFromObject(t.events)},defaultGridOptions:function(n){n.cellEditableCondition=n.cellEditableCondition===undefined?!0:n.cellEditableCondition;n.enableCellEditOnFocus=n.enableCellEditOnFocus===undefined?!1:n.enableCellEditOnFocus},editColumnBuilder:function(t,r,u){var f=[];return t.enableCellEdit=t.enableCellEdit===undefined?u.enableCellEdit===undefined?t.type!=="object":u.enableCellEdit:t.enableCellEdit,t.cellEditableCondition=t.cellEditableCondition===undefined?u.cellEditableCondition:t.cellEditableCondition,t.enableCellEdit&&(t.editableCellTemplate=t.editableCellTemplate||u.editableCellTemplate||"ui-grid/cellEditor",f.push(i.getTemplate(t.editableCellTemplate).then(function(n){r.editableCellTemplate=n},function(){throw new Error("Couldn't fetch/use colDef.editableCellTemplate '"+t.editableCellTemplate+"'");}))),t.enableCellEditOnFocus=t.enableCellEditOnFocus===undefined?u.enableCellEditOnFocus:t.enableCellEditOnFocus,n.all(f)},isStartEditKey:function(n){return n.metaKey||n.keyCode===t.keymap.ESC||n.keyCode===t.keymap.SHIFT||n.keyCode===t.keymap.CTRL||n.keyCode===t.keymap.ALT||n.keyCode===t.keymap.WIN||n.keyCode===t.keymap.CAPSLOCK||n.keyCode===t.keymap.LEFT||n.keyCode===t.keymap.TAB&&n.shiftKey||n.keyCode===t.keymap.RIGHT||n.keyCode===t.keymap.TAB||n.keyCode===t.keymap.UP||n.keyCode===t.keymap.ENTER&&n.shiftKey||n.keyCode===t.keymap.DOWN||n.keyCode===t.keymap.ENTER?!1:!0}};return r}]);n.directive("uiGridEdit",["gridUtil","uiGridEditService",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(n,i,r,u){t.initializeGrid(u.grid)},post:function(){}}}}}]);n.directive("uiGridViewport",["uiGridEditConstants",function(n){return{replace:!0,priority:-99998,require:["^uiGrid","^uiGridRenderContainer"],scope:!1,compile:function(){return{post:function(t,i,r,u){var f=u[0],e;f.grid.api.edit&&f.grid.api.cellNav&&(e=u[1].containerId,e==="body")&&(t.$on(n.events.CANCEL_CELL_EDIT,function(){f.focus()}),t.$on(n.events.END_CELL_EDIT,function(){f.focus()}))}}}}}]);n.directive("uiGridCell",["$compile","$injector","$timeout","uiGridConstants","uiGridEditConstants","gridUtil","$parse","uiGridEditService","$rootScope","$q",function(n,t,i,r,u,f,e,o,s,h){var c=500,l;return t.has("uiGridCellNavService")&&(l=t.get("uiGridCellNavService")),{priority:-100,restrict:"A",scope:!1,require:"?^uiGrid",link:function(t,l,a,v){function et(){l.on("dblclick",b);l.on("touchstart",ot);v&&v.grid.api.cellNav&&(rt=v.grid.api.cellNav.on.viewPortKeyDown(t,function(n,i){i!==null&&(i.row!==t.row||i.col!==t.col||t.col.colDef.enableCellEditOnFocus||ht(n))}),it=v.grid.api.cellNav.on.navigate(t,function(n,r){t.col.colDef.enableCellEditOnFocus&&(r&&n.row===r.row&&n.col===r.col||n.row!==t.row||n.col!==t.col||i(function(){b()}))}));t.beginEditEventsWired=!0}function ot(n){typeof n.originalEvent!="undefined"&&n.originalEvent!==undefined&&(n=n.originalEvent);l.on("touchend",nt);d=i(function(){},c);d.then(function(){setTimeout(b,0);l.off("touchend",nt)})}function nt(){i.cancel(d);l.off("touchend",nt)}function st(){l.off("dblclick",b);l.off("keydown",ht);l.off("touchstart",ot);it();rt();t.beginEditEventsWired=!1}function ht(n){o.isStartEditKey(n)&&b(n)}function ct(n,i){return!i.isSaving&&(angular.isFunction(n.colDef.cellEditableCondition)?n.colDef.cellEditableCondition(t):n.colDef.cellEditableCondition)}function b(n){t.grid.api.core.scrollToIfNecessary(t.row,t.col).then(function(){lt(n)})}function lt(o){var rt,c,a,v,b;if(!p&&ct(t.col,t.row)){w=e(t.row.getQualifiedColField(t.col));k=w(t);y=t.col.editableCellTemplate;y=t.col.colDef.editModelField?y.replace(r.MODEL_COL_FIELD,f.preEval("row.entity."+t.col.colDef.editModelField)):y.replace(r.MODEL_COL_FIELD,t.row.getQualifiedColField(t.col));y=y.replace(r.COL_FIELD,"grid.getCellValue(row, col)");rt=t.col.colDef.editDropdownFilter?"|"+t.col.colDef.editDropdownFilter:"";y=y.replace(r.CUSTOM_FILTERS,rt);c="text";switch(t.col.colDef.type){case"boolean":c="checkbox";break;case"number":c="number";break;case"date":c="date"}y=y.replace("INPUT_TYPE",c);a=t.col.colDef.editDropdownOptionsFunction;a?h.when(a(t.row.entity,t.col.colDef)).then(function(n){t.editDropdownOptionsArray=n}):(v=t.col.colDef.editDropdownRowEntityOptionsArrayPath,t.editDropdownOptionsArray=v?vt(t.row.entity,v):t.col.colDef.editDropdownOptionsArray);t.editDropdownIdLabel=t.col.colDef.editDropdownIdLabel?t.col.colDef.editDropdownIdLabel:"id";t.editDropdownValueLabel=t.col.colDef.editDropdownValueLabel?t.col.colDef.editDropdownValueLabel:"value";b=function(){var i,r;p=!0;st();i=angular.element(y);l.append(i);g=t.$new();n(i)(g);r=angular.element(l.children()[0]);r.addClass("ui-grid-cell-contents-hidden")};s.$$phase?b():t.$apply(b);var d=t.col.grid.api.core.on.scrollBegin(t,function(){t.grid.disableScrolling||(tt(),t.grid.api.edit.raise.afterCellEdit(t.row.entity,t.col.colDef,w(t),k),d(),nt(),it())}),nt=t.$on(u.events.END_CELL_EDIT,function(){tt();t.grid.api.edit.raise.afterCellEdit(t.row.entity,t.col.colDef,w(t),k);nt();d();it()}),it=t.$on(u.events.CANCEL_CELL_EDIT,function(){at();it();d();nt()});t.$broadcast(u.events.BEGIN_CELL_EDIT,o);i(function(){t.grid.api.edit.raise.beginCellEdit(t.row.entity,t.col.colDef,o)})}}function tt(){if(t.grid.disableScrolling=!1,p){v&&v.grid.api.cellNav&&v.focus();var n=angular.element(l.children()[0]);g.$destroy();angular.element(l.children()[1]).remove();n.removeClass("ui-grid-cell-contents-hidden");p=!1;et();t.grid.api.core.notifyDataChange(r.dataChange.EDIT)}}function at(){(t.grid.disableScrolling=!1,p)&&(w.assign(t,k),t.$apply(),t.grid.api.edit.raise.cancelCellEdit(t.row.entity,t.col.colDef),tt())}function vt(n,t){var i,r;for(t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,""),i=t.split(".");i.length;)if(r=i.shift(),r in n)n=n[r];else return;return n}var y,k,p=!1,w,d,g,ft;if(t.col.colDef.enableCellEdit){var it=function(){},rt=function(){},ut=function(){t.col.colDef.enableCellEdit&&t.row.enableCellEdit!==!1?t.beginEditEventsWired||et():t.beginEditEventsWired&&st()};ut();ft=t.$watch("row",function(n,t){n!==t&&ut()});t.$on("$destroy",ft)}}}}]);n.directive("uiGridEditor",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout","uiGridEditService",function(n,t,i,r,u){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer","ngModel"],compile:function(){return{pre:function(){},post:function(n,f,e,o){var s,c,h;o[0]&&(s=o[0]);o[1]&&(c=o[1]);o[2]&&(h=o[2]);n.$on(i.events.BEGIN_CELL_EDIT,function(){if(r(function(){if(f[0].focus(),!n.col.colDef.enableCellEditOnFocus&&s&&s.grid.api.cellNav)try{f[0].setSelectionRange(f[0].value.length,f[0].value.length)}catch(t){}else f[0].select()}),s&&s.grid.api.cellNav)var t=s.grid.api.cellNav.on.viewPortKeyPress(n,function(n){u.isStartEditKey(n)&&(h.$setViewValue(String.fromCharCode(typeof n.which=="number"?n.which:n.keyCode),n),h.$render());t()});f.on("blur",function(t){n.stopEdit(t)})});n.deepEdit=!1;n.stopEdit=function(t){n.inputForm&&!n.inputForm.$valid?(t.stopPropagation(),n.$emit(i.events.CANCEL_CELL_EDIT)):n.$emit(i.events.END_CELL_EDIT);n.deepEdit=!1};f.on("click",function(){f[0].type!=="checkbox"&&(n.deepEdit=!0,r(function(){n.grid.disableScrolling=!0}))});f.on("keydown",function(r){switch(r.keyCode){case t.keymap.ESC:r.stopPropagation();n.$emit(i.events.CANCEL_CELL_EDIT)}if(n.deepEdit&&(r.keyCode===t.keymap.LEFT||r.keyCode===t.keymap.RIGHT||r.keyCode===t.keymap.UP||r.keyCode===t.keymap.DOWN))r.stopPropagation();else if(s&&s.grid.api.cellNav)r.uiGridTargetRenderContainerId=c.containerId,s.cellNav.handleKeyDown(r)!==null&&n.stopEdit(r);else switch(r.keyCode){case t.keymap.ENTER:case t.keymap.TAB:r.stopPropagation();r.preventDefault();n.stopEdit(r)}return!0})}}}}}]);n.directive("uiGridEditor",["$filter",function(n){function t(n){var t;if(typeof n=="undefined"||n===""||(t=n.split("-"),t.length!==3))return null;var i=parseInt(t[0],10),r=parseInt(t[1],10),u=parseInt(t[2],10);return r<1||i<1||u<1?null:new Date(i,r-1,u)}return{priority:-100,require:"?ngModel",link:function(i,r,u,f){angular.version.minor===2&&u.type&&u.type==="date"&&f&&(f.$formatters.push(function(t){return f.$setValidity(null,!t||!isNaN(t.getTime())),n("date")(t,"yyyy-MM-dd")}),f.$parsers.push(function(n){if(n&&n.length>0){var i=t(n);return f.$setValidity(null,i&&!isNaN(i.getTime())),i}return f.$setValidity(null,!0),null}))}}}]);n.directive("uiGridEditDropdown",["uiGridConstants","uiGridEditConstants",function(n,t){return{require:["?^uiGrid","?^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(){},post:function(i,r,u,f){var e=f[0],o=f[1];i.$on(t.events.BEGIN_CELL_EDIT,function(){r[0].focus();r[0].style.width=r[0].parentElement.offsetWidth-1+"px";r.on("blur",function(n){i.stopEdit(n)})});i.stopEdit=function(){i.$emit(t.events.END_CELL_EDIT)};r.on("keydown",function(r){switch(r.keyCode){case n.keymap.ESC:r.stopPropagation();i.$emit(t.events.CANCEL_CELL_EDIT)}if(e&&e.grid.api.cellNav)r.uiGridTargetRenderContainerId=o.containerId,e.cellNav.handleKeyDown(r)!==null&&i.stopEdit(r);else switch(r.keyCode){case n.keymap.ENTER:case n.keymap.TAB:r.stopPropagation();r.preventDefault();i.stopEdit(r)}return!0})}}}}}]);n.directive("uiGridEditFileChooser",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout",function(n,t,i){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer"],compile:function(){return{pre:function(){},post:function(t,r,u,f){var e,s,h,o;f[0]&&(e=f[0]);f[1]&&(s=f[1]);h=e.grid;o=function(r){var u=r.srcElement||r.target;u&&u.files&&u.files.length>0?(typeof t.col.colDef.editFileChooserCallback=="function"?t.col.colDef.editFileChooserCallback(t.row,t.col,u.files):n.logError("You need to set colDef.editFileChooserCallback to use the file chooser"),u.form.reset(),t.$emit(i.events.END_CELL_EDIT)):t.$emit(i.events.CANCEL_CELL_EDIT)};r[0].addEventListener("change",o,!1);t.$on(i.events.BEGIN_CELL_EDIT,function(){r[0].focus();r[0].select();r.on("blur",function(){t.$emit(i.events.END_CELL_EDIT)})})}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.expandable",["ui.grid"]);n.service("uiGridExpandableService",["gridUtil","$compile",function(n){var t={initializeGrid:function(i){i.expandable={};i.expandable.expandedAll=!1;i.options.enableExpandable=i.options.enableExpandable!==!1;i.options.expandableRowHeight=i.options.expandableRowHeight||150;i.options.expandableRowHeaderWidth=i.options.expandableRowHeaderWidth||40;i.options.enableExpandable&&!i.options.expandableRowTemplate&&(n.logError("You have not set the expandableRowTemplate, disabling expandable module"),i.options.enableExpandable=!1);var r={events:{expandable:{rowExpandedBeforeStateChanged:function(){},rowExpandedStateChanged:function(){}}},methods:{expandable:{toggleRowExpansion:function(n){var r=i.getRow(n);r!==null&&t.toggleRowExpansion(i,r)},expandAllRows:function(){t.expandAllRows(i)},collapseAllRows:function(){t.collapseAllRows(i)},toggleAllRows:function(){t.toggleAllRows(i)}}}};i.api.registerEventsFromObject(r.events);i.api.registerMethodsFromObject(r.methods)},toggleRowExpansion:function(n,t){n.api.expandable.raise.rowExpandedBeforeStateChanged(t);t.isExpanded=!t.isExpanded;angular.isUndefined(t.expandedRowHeight)&&(t.expandedRowHeight=n.options.expandableRowHeight);t.isExpanded?t.height=t.grid.options.rowHeight+t.expandedRowHeight:(t.height=t.grid.options.rowHeight,n.expandable.expandedAll=!1);n.api.expandable.raise.rowExpandedStateChanged(t)},expandAllRows:function(n){n.renderContainers.body.visibleRowCache.forEach(function(i){i.isExpanded||t.toggleRowExpansion(n,i)});n.expandable.expandedAll=!0;n.queueGridRefresh()},collapseAllRows:function(n){n.renderContainers.body.visibleRowCache.forEach(function(i){i.isExpanded&&t.toggleRowExpansion(n,i)});n.expandable.expandedAll=!1;n.queueGridRefresh()},toggleAllRows:function(n){n.expandable.expandedAll?t.collapseAllRows(n):t.expandAllRows(n)}};return t}]);n.directive("uiGridExpandable",["uiGridExpandableService","$templateCache",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(i,r,u,f){if(f.grid.options.enableExpandableRowHeader!==!1){var e={name:"expandableButtons",displayName:"",exporterSuppressExport:!0,enableColumnResizing:!1,enableColumnMenu:!1,width:f.grid.options.expandableRowHeaderWidth||40};e.cellTemplate=t.get("ui-grid/expandableRowHeader");e.headerCellTemplate=t.get("ui-grid/expandableTopRowHeader");f.grid.addRowHeaderColumn(e)}n.initializeGrid(f.grid)},post:function(){}}}}}]);n.directive("uiGrid",["uiGridExpandableService","$templateCache",function(){return{replace:!0,priority:599,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(n,t,i,r){r.grid.api.core.on.renderingComplete(n,function(){n.row&&n.row.grid&&n.row.grid.options&&n.row.grid.options.enableExpandable&&(r.grid.parentRow=n.row)})},post:function(){}}}}}]);n.directive("uiGridExpandableRow",["uiGridExpandableService","$timeout","$compile","uiGridConstants","gridUtil","$interval","$log",function(n,t,i,r,u){return{replace:!1,priority:0,scope:!1,compile:function(){return{pre:function(n,t){u.getTemplate(n.grid.options.expandableRowTemplate).then(function(r){var u,f,e;if(n.grid.options.expandableRowScope){u=n.grid.options.expandableRowScope;for(f in u)u.hasOwnProperty(f)&&(n[f]=u[f])}e=i(r)(n);t.append(e);n.row.expandedRendered=!0})},post:function(n){n.$on("$destroy",function(){n.row.expandedRendered=!1})}}}}}]);n.directive("uiGridRow",["$compile","gridUtil","$templateCache",function(){return{priority:-200,scope:!1,compile:function(){return{pre:function(n){n.expandableRow={};n.expandableRow.shouldRenderExpand=function(){return n.colContainer.name==="body"&&n.grid.options.enableExpandable!==!1&&n.row.isExpanded&&(!n.grid.isScrollingVertically||n.row.expandedRendered)};n.expandableRow.shouldRenderFiller=function(){return n.row.isExpanded&&(n.colContainer.name!=="body"||n.grid.isScrollingVertically&&!n.row.expandedRendered)}},post:function(){}}}}}]);n.directive("uiGridViewport",["$compile","gridUtil","$templateCache",function(n,t,i){return{priority:-200,scope:!1,compile:function(n){var t=angular.element(n.children().children()[0]),r=i.get("ui-grid/expandableScrollFiller"),u=i.get("ui-grid/expandableRow");return t.append(u),t.append(r),{pre:function(){},post:function(){}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.exporter",["ui.grid"]);n.constant("uiGridExporterConstants",{featureName:"exporter",ALL:"all",VISIBLE:"visible",SELECTED:"selected",CSV_CONTENT:"CSV_CONTENT",BUTTON_LABEL:"BUTTON_LABEL",FILE_NAME:"FILE_NAME"});n.service("uiGridExporterService",["$q","uiGridExporterConstants","gridUtil","$compile","$interval","i18nService",function(n,t,i,r,u,f){var e={delay:100,initializeGrid:function(n){n.exporter={};this.defaultGridOptions(n.options);var t={events:{exporter:{}},methods:{exporter:{csvExport:function(t,i){e.csvExport(n,t,i)},pdfExport:function(t,i){e.pdfExport(n,t,i)}}}};n.api.registerEventsFromObject(t.events);n.api.registerMethodsFromObject(t.methods);n.api.core.addToGridMenu?e.addToMenu(n):u(function(){n.api.core.addToGridMenu&&e.addToMenu(n)},this.delay,1)},defaultGridOptions:function(n){n.exporterSuppressMenu=n.exporterSuppressMenu===!0;n.exporterMenuLabel=n.exporterMenuLabel?n.exporterMenuLabel:"Export";n.exporterSuppressColumns=n.exporterSuppressColumns?n.exporterSuppressColumns:[];n.exporterCsvColumnSeparator=n.exporterCsvColumnSeparator?n.exporterCsvColumnSeparator:",";n.exporterCsvFilename=n.exporterCsvFilename?n.exporterCsvFilename:"download.csv";n.exporterPdfFilename=n.exporterPdfFilename?n.exporterPdfFilename:"download.pdf";n.exporterOlderExcelCompatibility=n.exporterOlderExcelCompatibility===!0;n.exporterPdfDefaultStyle=n.exporterPdfDefaultStyle?n.exporterPdfDefaultStyle:{fontSize:11};n.exporterPdfTableStyle=n.exporterPdfTableStyle?n.exporterPdfTableStyle:{margin:[0,5,0,15]};n.exporterPdfTableHeaderStyle=n.exporterPdfTableHeaderStyle?n.exporterPdfTableHeaderStyle:{bold:!0,fontSize:12,color:"black"};n.exporterPdfHeader=n.exporterPdfHeader?n.exporterPdfHeader:null;n.exporterPdfFooter=n.exporterPdfFooter?n.exporterPdfFooter:null;n.exporterPdfOrientation=n.exporterPdfOrientation?n.exporterPdfOrientation:"landscape";n.exporterPdfPageSize=n.exporterPdfPageSize?n.exporterPdfPageSize:"A4";n.exporterPdfMaxGridWidth=n.exporterPdfMaxGridWidth?n.exporterPdfMaxGridWidth:720;n.exporterMenuAllData=n.exporterMenuAllData!==undefined?n.exporterMenuAllData:!0;n.exporterMenuVisibleData=n.exporterMenuVisibleData!==undefined?n.exporterMenuVisibleData:!0;n.exporterMenuSelectedData=n.exporterMenuSelectedData!==undefined?n.exporterMenuSelectedData:!0;n.exporterMenuCsv=n.exporterMenuCsv!==undefined?n.exporterMenuCsv:!0;n.exporterMenuPdf=n.exporterMenuPdf!==undefined?n.exporterMenuPdf:!0;n.exporterPdfCustomFormatter=n.exporterPdfCustomFormatter&&typeof n.exporterPdfCustomFormatter=="function"?n.exporterPdfCustomFormatter:function(n){return n};n.exporterHeaderFilterUseName=n.exporterHeaderFilterUseName===!0;n.exporterFieldCallback=n.exporterFieldCallback?n.exporterFieldCallback:function(n,t,i,r){return r};n.exporterAllDataFn=n.exporterAllDataFn?n.exporterAllDataFn:null;n.exporterAllDataFn==null&&n.exporterAllDataPromise&&(n.exporterAllDataFn=n.exporterAllDataPromise)},addToMenu:function(n){n.api.core.addToGridMenu(n,[{title:f.getSafeText("gridMenu.exporterAllAsCsv"),action:function(){this.grid.api.exporter.csvExport(t.ALL,t.ALL)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuAllData},order:200},{title:f.getSafeText("gridMenu.exporterVisibleAsCsv"),action:function(){this.grid.api.exporter.csvExport(t.VISIBLE,t.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuVisibleData},order:201},{title:f.getSafeText("gridMenu.exporterSelectedAsCsv"),action:function(){this.grid.api.exporter.csvExport(t.SELECTED,t.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:202},{title:f.getSafeText("gridMenu.exporterAllAsPdf"),action:function(){this.grid.api.exporter.pdfExport(t.ALL,t.ALL)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuAllData},order:203},{title:f.getSafeText("gridMenu.exporterVisibleAsPdf"),action:function(){this.grid.api.exporter.pdfExport(t.VISIBLE,t.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuVisibleData},order:204},{title:f.getSafeText("gridMenu.exporterSelectedAsPdf"),action:function(){this.grid.api.exporter.pdfExport(t.SELECTED,t.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:205}])},csvExport:function(n,t,i){var r=this;this.loadAllDataIfNeeded(n,t,i).then(function(){var u=n.options.showHeader?r.getColumnHeaders(n,i):[],f=r.getData(n,t,i),e=r.formatAsCsv(u,f,n.options.exporterCsvColumnSeparator);r.downloadFile(n.options.exporterCsvFilename,e,n.options.exporterOlderExcelCompatibility)})},loadAllDataIfNeeded:function(i,r){if(r===t.ALL&&i.rows.length!==i.options.totalItems&&i.options.exporterAllDataFn)return i.options.exporterAllDataFn().then(function(){i.modifyRows(i.options.data)});var u=n.defer();return u.resolve(),u.promise},getColumnHeaders:function(n,i){var u=[],r;if(i===t.ALL)r=n.columns;else{var f=n.renderContainers.left?n.renderContainers.left.visibleColumnCache.filter(function(n){return n.visible}):[],e=n.renderContainers.body?n.renderContainers.body.visibleColumnCache.filter(function(n){return n.visible}):[],o=n.renderContainers.right?n.renderContainers.right.visibleColumnCache.filter(function(n){return n.visible}):[];r=f.concat(e,o)}return r.forEach(function(t){t.colDef.exporterSuppressExport!==!0&&n.options.exporterSuppressColumns.indexOf(t.name)===-1&&u.push({name:t.field,displayName:n.options.exporterHeaderFilter?n.options.exporterHeaderFilterUseName?n.options.exporterHeaderFilter(t.name):n.options.exporterHeaderFilter(t.displayName):t.displayName,width:t.drawnWidth?t.drawnWidth:t.width,align:t.colDef.type==="number"?"right":"left"})}),u},getData:function(n,r,u,f){var s=[],e,o;switch(r){case t.ALL:e=n.rows;break;case t.VISIBLE:e=n.getVisibleRows();break;case t.SELECTED:n.api.selection?e=n.api.selection.getSelectedGridRows():i.logError("selection feature must be enabled to allow selected rows to be exported")}if(u===t.ALL)o=n.columns;else{var h=n.renderContainers.left?n.renderContainers.left.visibleColumnCache.filter(function(n){return n.visible}):[],c=n.renderContainers.body?n.renderContainers.body.visibleColumnCache.filter(function(n){return n.visible}):[],l=n.renderContainers.right?n.renderContainers.right.visibleColumnCache.filter(function(n){return n.visible}):[];o=h.concat(c,l)}return e.forEach(function(i){if(i.exporterEnableExporting!==!1){var r=[];o.forEach(function(e){if((e.visible||u===t.ALL)&&e.colDef.exporterSuppressExport!==!0&&n.options.exporterSuppressColumns.indexOf(e.name)===-1){var s=f?n.getCellDisplayValue(i,e):n.getCellValue(i,e),o={value:n.options.exporterFieldCallback(n,i,e,s)};e.colDef.exporterPdfAlign&&(o.alignment=e.colDef.exporterPdfAlign);r.push(o)}});s.push(r)}}),s},formatAsCsv:function(n,t,i){var u=this,r=n.map(function(n){return{value:n.displayName}}),f=r.length>0?u.formatRowAsCsv(this,i)(r)+"\n":"";return f+t.map(this.formatRowAsCsv(this,i)).join("\n")},formatRowAsCsv:function(n,t){return function(i){return i.map(n.formatFieldAsCsv).join(t)}},formatFieldAsCsv:function(n){return n.value==null?"":typeof n.value=="number"?n.value:typeof n.value=="boolean"?n.value?"TRUE":"FALSE":typeof n.value=="string"?'"'+n.value.replace(/"/g,'""')+'"':JSON.stringify(n.value)},isIE:function(){var t=navigator.userAgent.search(/(?:Edge|MSIE|Trident\/.*; rv:)/),n=!1;return t!==-1&&(n=!0),n},downloadFile:function(n,t,i){var f=document,r=f.createElement("a"),e="application/octet-stream;charset=utf-8",o,s,u,h;if(s=this.isIE(),s&&s<10)return u=f.createElement("iframe"),document.body.appendChild(u),u.contentWindow.document.open("text/html","replace"),u.contentWindow.document.write("sep=,\r\n"+t),u.contentWindow.document.close(),u.contentWindow.focus(),u.contentWindow.document.execCommand("SaveAs",!0,n),document.body.removeChild(u),!0;if(navigator.msSaveBlob)return navigator.msSaveOrOpenBlob(new Blob([i?"﻿":"",t],{type:e}),n);"download"in r?(h=new Blob([i?"﻿":"",t],{type:e}),o=URL.createObjectURL(h),r.setAttribute("download",n)):(o="data:"+e+","+encodeURIComponent(t),r.setAttribute("target","_blank"));r.href=o;r.setAttribute("style","display:none;");f.body.appendChild(r);setTimeout(function(){if(r.click)r.click();else if(document.createEvent){var n=document.createEvent("MouseEvents");n.initEvent("click",!0,!0);r.dispatchEvent(n)}f.body.removeChild(r)},this.delay)},pdfExport:function(n,t,i){var r=this;this.loadAllDataIfNeeded(n,t,i).then(function(){var f=r.getColumnHeaders(n,i),e=r.getData(n,t,i),u=r.prepareAsPdf(n,f,e);r.isIE()||navigator.appVersion.indexOf("Edge")!==-1?r.downloadPDF(n.options.exporterPdfFilename,u):pdfMake.createPdf(u).open()})},downloadPDF:function(n,t){var r=document,e=r.createElement("a"),u,f,i;u=this.isIE();f=pdfMake.createPdf(t);f.getBuffer(function(t){if(i=new Blob([t]),navigator.msSaveBlob)return navigator.msSaveBlob(i,n);if(u){var f=r.createElement("iframe");return document.body.appendChild(f),f.contentWindow.document.open("text/html","replace"),f.contentWindow.document.write(i),f.contentWindow.document.close(),f.contentWindow.focus(),f.contentWindow.document.execCommand("SaveAs",!0,n),document.body.removeChild(f),!0}})},prepareAsPdf:function(n,t,i){var u=this.calculatePdfHeaderWidths(n,t),f=t.map(function(n){return{text:n.displayName,style:"tableHeader"}}),e=i.map(this.formatRowAsPdf(this)),o=[f].concat(e),r={pageOrientation:n.options.exporterPdfOrientation,pageSize:n.options.exporterPdfPageSize,content:[{style:"tableStyle",table:{headerRows:1,widths:u,body:o}}],styles:{tableStyle:n.options.exporterPdfTableStyle,tableHeader:n.options.exporterPdfTableHeaderStyle},defaultStyle:n.options.exporterPdfDefaultStyle};return n.options.exporterPdfLayout&&(r.layout=n.options.exporterPdfLayout),n.options.exporterPdfHeader&&(r.header=n.options.exporterPdfHeader),n.options.exporterPdfFooter&&(r.footer=n.options.exporterPdfFooter),n.options.exporterPdfCustomFormatter&&(r=n.options.exporterPdfCustomFormatter(r)),r},calculatePdfHeaderWidths:function(n,t){var r=0,i,u;return t.forEach(function(n){typeof n.width=="number"&&(r+=n.width)}),i=0,t.forEach(function(n){if(n.width==="*"&&(i+=100),typeof n.width=="string"&&n.width.match(/(\d)*%/)){var t=parseInt(n.width.match(/(\d)*%/)[0]);n.width=r*t/100;i+=n.width}}),u=r+i,t.map(function(t){return t.width==="*"?t.width:t.width*n.options.exporterPdfMaxGridWidth/u})},formatRowAsPdf:function(n){return function(t){return t.map(n.formatFieldAsPdfString)}},formatFieldAsPdfString:function(n){var t;return t=n.value==null?"":typeof n.value=="number"?n.value.toString():typeof n.value=="boolean"?n.value?"TRUE":"FALSE":typeof n.value=="string"?n.value.replace(/"/g,'""'):JSON.stringify(n.value).replace(/^"/,"").replace(/"$/,""),n.alignment&&typeof n.alignment=="string"&&(t={text:t,alignment:n.alignment}),t}};return e}]);n.directive("uiGridExporter",["uiGridExporterConstants","uiGridExporterService","gridUtil","$compile",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(n,i,r,u){t.initializeGrid(u.grid);u.grid.exporter.$scope=n}}}])}(),function(){"use strict";var n=angular.module("ui.grid.grouping",["ui.grid","ui.grid.treeBase"]);n.constant("uiGridGroupingConstants",{featureName:"grouping",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}});n.service("uiGridGroupingService",["$q","uiGridGroupingConstants","gridUtil","rowSorter","GridRow","gridClassFactory","i18nService","uiGridConstants","uiGridTreeBaseService",function(n,t,i,r,u,f,e,o,s){var h={initializeGrid:function(n,t){s.initializeGrid(n,t);n.grouping={};n.grouping.groupHeaderCache={};h.defaultGridOptions(n.options);n.registerRowsProcessor(h.groupRows,400);n.registerColumnBuilder(h.groupingColumnBuilder);n.registerColumnsProcessor(h.groupingColumnProcessor,400);var i={events:{grouping:{aggregationChanged:{},groupingChanged:{}}},methods:{grouping:{getGrouping:function(t){var i=h.getGrouping(n);return i.grouping.forEach(function(n){n.colName=n.col.name;delete n.col}),i.aggregations.forEach(function(n){n.colName=n.col.name;delete n.col}),i.aggregations=i.aggregations.filter(function(n){return!n.aggregation.source||n.aggregation.source!=="grouping"}),t&&(i.rowExpandedStates=h.getRowExpandedStates(n.grouping.groupingHeaderCache)),i},setGrouping:function(t){h.setGrouping(n,t)},groupColumn:function(t){var i=n.getColumn(t);h.groupColumn(n,i)},ungroupColumn:function(t){var i=n.getColumn(t);h.ungroupColumn(n,i)},clearGrouping:function(){h.clearGrouping(n)},aggregateColumn:function(t,i,r){var u=n.getColumn(t);h.aggregateColumn(n,u,i,r)}}}};n.api.registerEventsFromObject(i.events);n.api.registerMethodsFromObject(i.methods);n.api.core.on.sortChanged(t,h.tidyPriorities)},defaultGridOptions:function(n){n.enableGrouping=n.enableGrouping!==!1;n.groupingShowCounts=n.groupingShowCounts!==!1;n.groupingNullLabel=typeof n.groupingNullLabel=="undefined"?"Null":n.groupingNullLabel;n.enableGroupHeaderSelection=n.enableGroupHeaderSelection===!0},groupingColumnBuilder:function(n,r,u){if(n.enableGrouping!==!1){typeof r.grouping=="undefined"&&typeof n.grouping!="undefined"?(r.grouping=angular.copy(n.grouping),typeof r.grouping.groupPriority!="undefined"&&r.grouping.groupPriority>-1&&(r.treeAggregationFn=s.nativeAggregations()[t.aggregation.COUNT].aggregationFn,r.treeAggregationFinalizerFn=h.groupedFinalizerFn)):typeof r.grouping=="undefined"&&(r.grouping={});typeof r.grouping!="undefined"&&typeof r.grouping.groupPriority!="undefined"&&r.grouping.groupPriority>=0&&(r.suppressRemoveSort=!0);var o={name:"ui.grid.grouping.group",title:e.get().grouping.group,icon:"ui-grid-icon-indent-right",shown:function(){return typeof this.context.col.grouping=="undefined"||typeof this.context.col.grouping.groupPriority=="undefined"||this.context.col.grouping.groupPriority<0},action:function(){h.groupColumn(this.context.col.grid,this.context.col)}},c={name:"ui.grid.grouping.ungroup",title:e.get().grouping.ungroup,icon:"ui-grid-icon-indent-left",shown:function(){return typeof this.context.col.grouping!="undefined"&&typeof this.context.col.grouping.groupPriority!="undefined"&&this.context.col.grouping.groupPriority>=0},action:function(){h.ungroupColumn(this.context.col.grid,this.context.col)}},l={name:"ui.grid.grouping.aggregateRemove",title:e.get().grouping.aggregate_remove,shown:function(){return typeof this.context.col.treeAggregationFn!="undefined"},action:function(){h.aggregateColumn(this.context.col.grid,this.context.col,null)}},f=function(n,t){t=t||e.get().grouping["aggregate_"+n]||n;var u={name:"ui.grid.grouping.aggregate"+n,title:t,shown:function(){return typeof this.context.col.treeAggregation=="undefined"||typeof this.context.col.treeAggregation.type=="undefined"||this.context.col.treeAggregation.type!==n},action:function(){h.aggregateColumn(this.context.col.grid,this.context.col,n)}};i.arrayContainsObjectWithProperty(r.menuItems,"name","ui.grid.grouping.aggregate"+n)||r.menuItems.push(u)};r.colDef.groupingShowGroupingMenu!==!1&&(i.arrayContainsObjectWithProperty(r.menuItems,"name","ui.grid.grouping.group")||r.menuItems.push(o),i.arrayContainsObjectWithProperty(r.menuItems,"name","ui.grid.grouping.ungroup")||r.menuItems.push(c));r.colDef.groupingShowAggregationMenu!==!1&&(angular.forEach(s.nativeAggregations(),function(n,t){f(t)}),angular.forEach(u.treeCustomAggregations,function(n,t){f(t,n.menuTitle)}),i.arrayContainsObjectWithProperty(r.menuItems,"name","ui.grid.grouping.aggregateRemove")||r.menuItems.push(l))}},groupingColumnProcessor:function(n,t){var i=this;return h.moveGroupColumns(this,n,t)},groupedFinalizerFn:function(n){var t=this;typeof n.groupVal!="undefined"?(n.rendered=n.groupVal,t.grid.options.groupingShowCounts&&t.colDef.type!=="date"&&(n.rendered+=" ("+n.value+")")):n.rendered=null},moveGroupColumns:function(n,t){return n.options.moveGroupColumns===!1?t:(t.forEach(function(n,t){n.groupingPosition=t}),t.sort(function(n,t){var i,r;return(i=n.isRowHeader?-1e3:typeof n.grouping=="undefined"||typeof n.grouping.groupPriority=="undefined"||n.grouping.groupPriority<0?null:n.grouping.groupPriority,r=t.isRowHeader?-1e3:typeof t.grouping=="undefined"||typeof t.grouping.groupPriority=="undefined"||t.grouping.groupPriority<0?null:t.grouping.groupPriority,i!==null&&r===null)?-1:r!==null&&i===null?1:i!==null&&r!==null?i-r:n.groupingPosition-t.groupingPosition}),t.forEach(function(n){delete n.groupingPosition}),t)},groupColumn:function(n,i){typeof i.grouping=="undefined"&&(i.grouping={});var r=h.getGrouping(n);i.grouping.groupPriority=r.grouping.length;i.sort?(typeof i.sort.direction=="undefined"||i.sort.direction===null)&&(i.sort.direction=o.ASC):i.sort={direction:o.ASC};i.treeAggregation={type:t.aggregation.COUNT,source:"grouping"};i.treeAggregationFn=s.nativeAggregations()[t.aggregation.COUNT].aggregationFn;i.treeAggregationFinalizerFn=h.groupedFinalizerFn;n.api.grouping.raise.groupingChanged(i);n.api.core.raise.sortChanged(n,n.getColumnSorting());n.queueGridRefresh()},ungroupColumn:function(n,t){typeof t.grouping!="undefined"&&(delete t.grouping.groupPriority,delete t.treeAggregation,delete t.customTreeAggregationFinalizer,h.tidyPriorities(n),n.api.grouping.raise.groupingChanged(t),n.queueGridRefresh())},aggregateColumn:function(n,t,i){typeof t.grouping!="undefined"&&typeof t.grouping.groupPriority!="undefined"&&t.grouping.groupPriority>=0&&h.ungroupColumn(n,t);var r={};typeof n.options.treeCustomAggregations[i]!="undefined"?r=n.options.treeCustomAggregations[i]:typeof s.nativeAggregations()[i]!="undefined"&&(r=s.nativeAggregations()[i]);t.treeAggregation={type:i,label:e.get().aggregation[r.label]||r.label};t.treeAggregationFn=r.aggregationFn;t.treeAggregationFinalizerFn=r.finalizerFn;n.api.grouping.raise.aggregationChanged(t);n.queueGridRefresh()},setGrouping:function(n,t){typeof t!="undefined"&&(h.clearGrouping(n),t.grouping&&t.grouping.length&&t.grouping.length>0&&t.grouping.forEach(function(t){var i=n.getColumn(t.colName);i&&h.groupColumn(n,i)}),t.aggregations&&t.aggregations.length&&t.aggregations.forEach(function(t){var i=n.getColumn(t.colName);i&&h.aggregateColumn(n,i,t.aggregation.type)}),t.rowExpandedStates&&h.applyRowExpandedStates(n.grouping.groupingHeaderCache,t.rowExpandedStates))},clearGrouping:function(n){var t=h.getGrouping(n);t.grouping.length>0&&t.grouping.forEach(function(t){t.col||(t.col=n.getColumn(t.colName));h.ungroupColumn(n,t.col)});t.aggregations.length>0&&t.aggregations.forEach(function(t){t.col||(t.col=n.getColumn(t.colName));h.aggregateColumn(n,t.col,null)})},tidyPriorities:function(n){var t,i,r;(typeof n=="undefined"||typeof n.grid!="undefined")&&typeof this.grid!="undefined"&&(n=this.grid);t=[];i=[];n.columns.forEach(function(n){typeof n.grouping!="undefined"&&typeof n.grouping.groupPriority!="undefined"&&n.grouping.groupPriority>=0?t.push(n):typeof n.sort!="undefined"&&typeof n.sort.priority!="undefined"&&n.sort.priority>=0&&i.push(n)});t.sort(function(n,t){return n.grouping.groupPriority-t.grouping.groupPriority});t.forEach(function(n,t){n.grouping.groupPriority=t;n.suppressRemoveSort=!0;typeof n.sort=="undefined"&&(n.sort={});n.sort.priority=t});r=t.length;i.sort(function(n,t){return n.sort.priority-t.sort.priority});i.forEach(function(n){n.sort.priority=r;n.suppressRemoveSort=n.colDef.suppressRemoveSort;r++})},groupRows:function(n){var t,u,e,i,f;if(n.length===0)return n;for(t=this,t.grouping.oldGroupingHeaderCache=t.grouping.groupingHeaderCache||{},t.grouping.groupingHeaderCache={},u=h.initialiseProcessingState(t),e=function(e,o){var s=t.getCellValue(f,e.col);e.initialised&&r.getSortFn(t,e.col,n)(s,e.currentValue)===0||(h.insertGroupHeader(t,n,i,u,o),i++)},i=0;i<n.length;i++)f=n[i],f.visible&&u.forEach(e);return delete t.grouping.oldGroupingHeaderCache,n},initialiseProcessingState:function(n){var t=[],i=h.getGrouping(n);return i.grouping.forEach(function(n){t.push({fieldName:n.field,col:n.col,initialised:!1,currentValue:null,currentRow:null})}),t},getGrouping:function(n){var t=[],i=[];return n.columns.forEach(function(n){n.grouping&&typeof n.grouping.groupPriority!="undefined"&&n.grouping.groupPriority>=0&&t.push({field:n.field,col:n,groupPriority:n.grouping.groupPriority,grouping:n.grouping});n.treeAggregation&&n.treeAggregation.type&&i.push({field:n.field,col:n,aggregation:n.treeAggregation})}),t.sort(function(n,t){return n.groupPriority-t.groupPriority}),t.forEach(function(n,t){n.grouping.groupPriority=t;n.groupPriority=t;delete n.grouping}),{grouping:t,aggregations:i}},insertGroupHeader:function(n,t,i,r,e){var p=r[e].fieldName,y=r[e].col,l=n.getCellValue(t[i],y),v=l,a,s,c,o;for((typeof l=="undefined"||l===null)&&(v=n.options.groupingNullLabel),a=function(n){return angular.isObject(n)?JSON.stringify(n):n},s=n.grouping.oldGroupingHeaderCache,c=0;c<e;c++)s&&s[a(r[c].currentValue)]&&(s=s[a(r[c].currentValue)].children);for(s&&s[a(l)]?(o=s[a(l)].row,o.entity={}):(o=new u({},null,n),f.rowTemplateAssigner.call(n,o)),o.entity["$$"+r[e].col.uid]={groupVal:v},o.treeLevel=e,o.groupHeader=!0,o.internalRow=!0,o.enableCellEdit=!1,o.enableSelection=n.options.enableGroupHeaderSelection,r[e].initialised=!0,r[e].currentValue=l,r[e].currentRow=o,h.finaliseProcessingState(r,e+1),t.splice(i,0,o),s=n.grouping.groupingHeaderCache,c=0;c<e;c++)s=s[a(r[c].currentValue)].children;s[a(l)]={row:o,children:{}}},finaliseProcessingState:function(n,t){for(var i=t;i<n.length;i++)n[i].initialised=!1,n[i].currentRow=null,n[i].currentValue=null},getRowExpandedStates:function(n){if(typeof n=="undefined")return{};var t={};return angular.forEach(n,function(n,i){t[i]={state:n.row.treeNode.state};t[i].children=n.children?h.getRowExpandedStates(n.children):{}}),t},applyRowExpandedStates:function(n,t){typeof t!="undefined"&&angular.forEach(t,function(t,i){n[i]&&(n[i].row.treeNode.state=t.state,t.children&&n[i].children&&h.applyRowExpandedStates(n[i].children,t.children))})}};return h}]);n.directive("uiGridGrouping",["uiGridGroupingConstants","uiGridGroupingService","$templateCache",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(n,i,r,u){u.grid.options.enableGrouping!==!1&&t.initializeGrid(u.grid,n)},post:function(){}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.importer",["ui.grid"]);n.constant("uiGridImporterConstants",{featureName:"importer"});n.service("uiGridImporterService",["$q","uiGridConstants","uiGridImporterConstants","gridUtil","$compile","$interval","i18nService","$window",function(n,t,i,r,u,f,e,o){var s={initializeGrid:function(n,t){t.importer={$scope:n};this.defaultGridOptions(t.options);var i={events:{importer:{}},methods:{importer:{importFile:function(n){s.importThisFile(t,n)}}}};t.api.registerEventsFromObject(i.events);t.api.registerMethodsFromObject(i.methods);t.options.enableImporter&&t.options.importerShowMenu&&(t.api.core.addToGridMenu?s.addToMenu(t):f(function(){t.api.core.addToGridMenu&&s.addToMenu(t)},100,1))},defaultGridOptions:function(n){n.enableImporter||n.enableImporter===undefined?o.hasOwnProperty("File")&&o.hasOwnProperty("FileReader")&&o.hasOwnProperty("FileList")&&o.hasOwnProperty("Blob")?n.enableImporter=!0:(r.logError("The File APIs are not fully supported in this browser, grid importer cannot be used."),n.enableImporter=!1):n.enableImporter=!1;n.importerProcessHeaders=n.importerProcessHeaders||s.processHeaders;n.importerHeaderFilter=n.importerHeaderFilter||function(n){return n};n.importerErrorCallback&&typeof n.importerErrorCallback=="function"||delete n.importerErrorCallback;n.enableImporter!==!0||n.importerDataAddCallback||(r.logError("You have not set an importerDataAddCallback, importer is disabled"),n.enableImporter=!1);n.importerShowMenu=n.importerShowMenu!==!1;n.importerObjectCallback=n.importerObjectCallback||function(n,t){return t}},addToMenu:function(n){n.api.core.addToGridMenu(n,[{title:e.getSafeText("gridMenu.importerTitle"),order:150},{templateUrl:"ui-grid/importerMenuItemContainer",action:function(){this.grid.api.importer.importAFile(n)},order:151}])},importThisFile:function(n,t){if(!t){r.logError("No file object provided to importThisFile, should be impossible, aborting");return}var i=new FileReader;switch(t.type){case"application/json":i.onload=s.importJsonClosure(n);break;default:i.onload=s.importCsvClosure(n)}i.readAsText(t)},importJsonClosure:function(n){return function(t){var r=[],i,u=s.parseJson(n,t);u!==null&&(u.forEach(function(t){i=s.newObject(n);angular.extend(i,t);i=n.options.importerObjectCallback(n,i);r.push(i)}),s.addObjects(n,r))}},parseJson:function(n,t){var i;try{i=JSON.parse(t.target.result)}catch(r){s.alertError(n,"importer.invalidJson","File could not be processed, is it valid json? Content was: ",t.target.result);return}return Array.isArray(i)?i:(s.alertError(n,"importer.jsonNotarray","Import failed, file is not an array, file was: ",t.target.result),[])},importCsvClosure:function(n){return function(t){var r=s.parseCsv(t),i;if(!r||r.length<1){s.alertError(n,"importer.invalidCsv","File could not be processed, is it valid csv? Content was: ",t.target.result);return}if(i=s.createCsvObjects(n,r),!i||i.length===0){s.alertError(n,"importer.noObjects","Objects were not able to be derived, content was: ",t.target.result);return}s.addObjects(n,i)}},parseCsv:function(n){var t=n.target.result;return CSV.parse(t)},createCsvObjects:function(n,t){var r=n.options.importerProcessHeaders(n,t.shift()),u,i;return!r||r.length===0?(s.alertError(n,"importer.noHeaders","Column names could not be derived, content was: ",t),[]):(u=[],t.forEach(function(t){i=s.newObject(n);t!==null&&t.forEach(function(n,t){r[t]!==null&&(i[r[t]]=n)});i=n.options.importerObjectCallback(n,i);u.push(i)}),u)},processHeaders:function(n,t){var i=[],r;return n.options.columnDefs&&n.options.columnDefs.length!==0?(r=s.flattenColumnDefs(n,n.options.columnDefs),t.forEach(function(n){r[n]?i.push(r[n]):r[n.toLowerCase()]?i.push(r[n.toLowerCase()]):i.push(null)}),i):(t.forEach(function(n){i.push(n.replace(/[^0-9a-zA-Z\-_]/g,"_"))}),i)},flattenColumnDefs:function(n,t){var i={};return t.forEach(function(t){t.name&&(i[t.name]=t.field||t.name,i[t.name.toLowerCase()]=t.field||t.name);t.field&&(i[t.field]=t.field||t.name,i[t.field.toLowerCase()]=t.field||t.name);t.displayName&&(i[t.displayName]=t.field||t.name,i[t.displayName.toLowerCase()]=t.field||t.name);t.displayName&&n.options.importerHeaderFilter&&(i[n.options.importerHeaderFilter(t.displayName)]=t.field||t.name,i[n.options.importerHeaderFilter(t.displayName).toLowerCase()]=t.field||t.name)}),i},addObjects:function(n,i){if(n.api.rowEdit){var r=n.registerDataChangeCallback(function(){n.api.rowEdit.setRowsDirty(i);r()},[t.dataChange.ROW]);n.importer.$scope.$on("$destroy",r)}n.importer.$scope.$apply(n.options.importerDataAddCallback(n,i))},newObject:function(n){return typeof n.options!="undefined"&&typeof n.options.importerNewObject!="undefined"?new n.options.importerNewObject:{}},alertError:function(n,t,i,u){n.options.importerErrorCallback?n.options.importerErrorCallback(n,t,i,u):(o.alert(e.getSafeText(t)),r.logError(i+u))}};return s}]);n.directive("uiGridImporter",["uiGridImporterConstants","uiGridImporterService","gridUtil","$compile",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(n,i,r,u){t.initializeGrid(n,u.grid)}}}]);n.directive("uiGridImporterMenuItem",["uiGridImporterConstants","uiGridImporterService","gridUtil","$compile",function(n,t,i){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,templateUrl:"ui-grid/importerMenuItem",link:function(n,r,u,f){var o=function(n){var i=n.srcElement||n.target,r;i&&i.files&&i.files.length===1&&(r=i.files[0],t.importThisFile(s,r),i.form.reset())},e=r[0].querySelectorAll(".ui-grid-importer-file-chooser"),s=f.grid;e.length!==1?i.logError("Found > 1 or < 1 file choosers within the menu item, error, cannot continue"):e[0].addEventListener("change",o,!1)}}}])}(),function(){"use strict";var n=angular.module("ui.grid.infiniteScroll",["ui.grid"]);n.service("uiGridInfiniteScrollService",["gridUtil","$compile","$timeout","uiGridConstants","ScrollEvent","$q",function(n,t,i,r,u,f){var e={initializeGrid:function(n,t){if(e.defaultGridOptions(n.options),n.options.enableInfiniteScroll){n.infiniteScroll={dataLoading:!1};e.setScrollDirections(n,n.options.infiniteScrollUp,n.options.infiniteScrollDown);n.api.core.on.scrollEnd(t,e.handleScroll);var i={events:{infiniteScroll:{needLoadMoreData:function(){},needLoadMoreDataTop:function(){}}},methods:{infiniteScroll:{dataLoaded:function(t,i){e.setScrollDirections(n,t,i);return e.adjustScroll(n).then(function(){n.infiniteScroll.dataLoading=!1})},resetScroll:function(t,i){return e.setScrollDirections(n,t,i),e.adjustInfiniteScrollPosition(n,0)},saveScrollPercentage:function(){n.infiniteScroll.prevScrollTop=n.renderContainers.body.prevScrollTop;n.infiniteScroll.previousVisibleRows=n.getVisibleRowCount()},dataRemovedTop:function(t,i){e.dataRemovedTop(n,t,i)},dataRemovedBottom:function(t,i){e.dataRemovedBottom(n,t,i)},setScrollDirections:function(t,i){e.setScrollDirections(n,t,i)}}}};n.api.registerEventsFromObject(i.events);n.api.registerMethodsFromObject(i.methods)}},defaultGridOptions:function(n){n.enableInfiniteScroll=n.enableInfiniteScroll!==!1;n.infiniteScrollRowsFromEnd=n.infiniteScrollRowsFromEnd||20;n.infiniteScrollUp=n.infiniteScrollUp===!0;n.infiniteScrollDown=n.infiniteScrollDown!==!1},setScrollDirections:function(n,t,i){n.infiniteScroll.scrollUp=t===!0;n.suppressParentScrollUp=t===!0;n.infiniteScroll.scrollDown=i!==!1;n.suppressParentScrollDown=i!==!1},handleScroll:function(n){if((!n.grid.infiniteScroll||!n.grid.infiniteScroll.dataLoading)&&n.source!=="ui.grid.adjustInfiniteScrollPosition"&&n.y){var t,i=n.grid.options.infiniteScrollRowsFromEnd/n.grid.renderContainers.body.visibleRowCache.length;n.grid.scrollDirection===r.scrollDirection.UP?(t=n.y.percentage,t<=i&&e.loadData(n.grid)):n.grid.scrollDirection===r.scrollDirection.DOWN&&(t=1-n.y.percentage,t<=i&&e.loadData(n.grid))}},loadData:function(n){n.infiniteScroll.previousVisibleRows=n.renderContainers.body.visibleRowCache.length;n.infiniteScroll.direction=n.scrollDirection;delete n.infiniteScroll.prevScrollTop;n.scrollDirection===r.scrollDirection.UP&&n.infiniteScroll.scrollUp?(n.infiniteScroll.dataLoading=!0,n.api.infiniteScroll.raise.needLoadMoreDataTop()):n.scrollDirection===r.scrollDirection.DOWN&&n.infiniteScroll.scrollDown&&(n.infiniteScroll.dataLoading=!0,n.api.infiniteScroll.raise.needLoadMoreData())},adjustScroll:function(n){var t=f.defer();return i(function(){var o,u,s,h,f,c;o=n.getViewportHeight()+n.headerHeight-n.renderContainers.body.headerHeight-n.scrollbarHeight;u=n.options.rowHeight;n.infiniteScroll.direction===undefined&&e.adjustInfiniteScrollPosition(n,0);s=n.getVisibleRowCount();c=u*s;n.infiniteScroll.scrollDown&&o>c&&n.api.infiniteScroll.raise.needLoadMoreData();n.infiniteScroll.direction===r.scrollDirection.UP&&(h=n.infiniteScroll.prevScrollTop||0,f=h+(s-n.infiniteScroll.previousVisibleRows)*u,e.adjustInfiniteScrollPosition(n,f),i(function(){t.resolve()}));n.infiniteScroll.direction===r.scrollDirection.DOWN&&(f=n.infiniteScroll.prevScrollTop||n.infiniteScroll.previousVisibleRows*u-o,e.adjustInfiniteScrollPosition(n,f),i(function(){t.resolve()}))},0),t.promise},adjustInfiniteScrollPosition:function(n,t){var i=new u(n,null,null,"ui.grid.adjustInfiniteScrollPosition"),f=n.getVisibleRowCount(),e=n.getViewportHeight()+n.headerHeight-n.renderContainers.body.headerHeight-n.scrollbarHeight,o=n.options.rowHeight,r=f*o-e;i.y=t===0&&n.infiniteScroll.scrollUp?{percentage:1/r}:{percentage:t/r};n.scrollContainers("",i)},dataRemovedTop:function(n,t,i){var r,u,f,o;return e.setScrollDirections(n,t,i),r=n.renderContainers.body.visibleRowCache.length,u=n.infiniteScroll.prevScrollTop,o=n.options.rowHeight,f=u-(n.infiniteScroll.previousVisibleRows-r)*o,e.adjustInfiniteScrollPosition(n,f)},dataRemovedBottom:function(n,t,i){var r;return e.setScrollDirections(n,t,i),r=n.infiniteScroll.prevScrollTop,e.adjustInfiniteScrollPosition(n,r)}};return e}]);n.directive("uiGridInfiniteScroll",["uiGridInfiniteScrollService",function(n){return{priority:-200,scope:!1,require:"^uiGrid",compile:function(){return{pre:function(t,i,r,u){n.initializeGrid(u.grid,t)},post:function(){}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.moveColumns",["ui.grid"]);n.service("uiGridMoveColumnService",["$q","$timeout","$log","ScrollEvent","uiGridConstants","gridUtil",function(n,t,i,r,u,f){var e={initializeGrid:function(n){var t=this;this.registerPublicApi(n);this.defaultGridOptions(n.options);n.moveColumns={orderCache:[]};n.registerColumnBuilder(t.movableColumnBuilder);n.registerDataChangeCallback(t.verifyColumnOrder,[u.dataChange.COLUMN])},registerPublicApi:function(n){var i=this,t={events:{colMovable:{columnPositionChanged:function(){}}},methods:{colMovable:{moveColumn:function(t,r){var u=n.columns,o,e,s;if(!angular.isNumber(t)||!angular.isNumber(r)){f.logError("MoveColumn: Please provide valid values for originalPosition and finalPosition");return}for(o=0,e=0;e<u.length;e++)(angular.isDefined(u[e].colDef.visible)&&u[e].colDef.visible===!1||u[e].isRowHeader===!0)&&o++;if(t>=u.length-o||r>=u.length-o){f.logError("MoveColumn: Invalid values for originalPosition, finalPosition");return}s=function(n){for(var i=n,t=0;t<=i;t++)angular.isDefined(u[t])&&(angular.isDefined(u[t].colDef.visible)&&u[t].colDef.visible===!1||u[t].isRowHeader===!0)&&i++;return i};i.redrawColumnAtPosition(n,s(t),s(r))}}}};n.api.registerEventsFromObject(t.events);n.api.registerMethodsFromObject(t.methods)},defaultGridOptions:function(n){n.enableColumnMoving=n.enableColumnMoving!==!1},movableColumnBuilder:function(t,i,r){return t.enableColumnMoving=t.enableColumnMoving===undefined?r.enableColumnMoving:t.enableColumnMoving,n.all([])},updateColumnCache:function(n){n.moveColumns.orderCache=n.getOnlyDataColumns()},verifyColumnOrder:function(n){var i=n.rowHeaderColumns.length,t;angular.forEach(n.moveColumns.orderCache,function(r,u){if(t=n.columns.indexOf(r),t!==-1&&t-i!==u){var f=n.columns.splice(t,1)[0];n.columns.splice(u+i,0,f)}})},redrawColumnAtPosition:function(n,i,r){var f,h,o,s;if(i!==r&&(f=n.columns,h=f[i],h.colDef.enableColumnMoving)){if(i>r)for(o=i;o>r;o--)f[o]=f[o-1];else if(r>i)for(s=i;s<r;s++)f[s]=f[s+1];f[r]=h;e.updateColumnCache(n);n.queueGridRefresh();t(function(){n.api.core.notifyDataChange(u.dataChange.COLUMN);n.api.colMovable.raise.columnPositionChanged(h.colDef,i,r)})}}};return e}]);n.directive("uiGridMoveColumns",["uiGridMoveColumnService",function(n){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(t,i,r,u){n.initializeGrid(u.grid)},post:function(){}}}}}]);n.directive("uiGridHeaderCell",["$q","gridUtil","uiGridMoveColumnService","$document","$log","uiGridConstants","ScrollEvent",function(n,t,i,r,u,f,e){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(n,t,u,f){var g,nt;if(n.col.colDef.enableColumnMoving){var a=angular.element(t[0].querySelectorAll(".ui-grid-cell-contents")),c,b,s,h,v=!1,o,l,k=!1,y=function(t){if(c=n.grid.element[0].getBoundingClientRect().left,n.grid.hasLeftContainer()&&(c+=n.grid.renderContainers.left.header[0].getBoundingClientRect().width),b=t.pageX,s=0,h=c+n.grid.getViewportWidth(),t.type==="mousedown"){r.on("mousemove",p);r.on("mouseup",w)}else if(t.type==="touchstart"){r.on("touchmove",p);r.on("touchend",w)}},p=function(n){var t=n.pageX-b;t!==0&&(document.onselectstart=function(){return!1},k=!0,v?v&&(nt(t),b=n.pageX):g())},w=function(){var t,f,e,h,r,c,u;if(document.onselectstart=null,o&&(o.remove(),v=!1),tt(),d(),k){for(t=n.grid.columns,f=0,e=0;e<t.length;e++)if(t[e].colDef.name!==n.col.colDef.name)f++;else break;if(s<0){for(h=0,r=f-1;r>=0;r--)if((angular.isUndefined(t[r].colDef.visible)||t[r].colDef.visible===!0)&&(h+=t[r].drawnWidth||t[r].width||t[r].colDef.width,h>Math.abs(s))){i.redrawColumnAtPosition(n.grid,f,r+1);break}h<Math.abs(s)&&i.redrawColumnAtPosition(n.grid,f,0)}else if(s>0){for(c=0,u=f+1;u<t.length;u++)if((angular.isUndefined(t[u].colDef.visible)||t[u].colDef.visible===!0)&&(c+=t[u].drawnWidth||t[u].width||t[u].colDef.width,c>s)){i.redrawColumnAtPosition(n.grid,f,u-1);break}c<s&&i.redrawColumnAtPosition(n.grid,f,t.length-1)}}},d=function(){a.on("touchstart",y);a.on("mousedown",y)},tt=function(){a.off("touchstart",y);a.off("mousedown",y);r.off("mousemove",p);r.off("touchmove",p);r.off("mouseup",w);r.off("touchend",w)};d();g=function(){var i,r,u;v=!0;o=t.clone();t.parent().append(o);o.addClass("movingColumn");i={};i.left=t[0].offsetLeft+"px";r=n.grid.element[0].getBoundingClientRect().right;u=t[0].getBoundingClientRect().right;u>r&&(l=n.col.drawnWidth+(r-u),i.width=l+"px");o.css(i)};nt=function(t){for(var v,b,a,y,p,r,i=n.grid.columns,w=0,u=0;u<i.length;u++)(angular.isUndefined(i[u].colDef.visible)||i[u].colDef.visible===!0)&&(w+=i[u].drawnWidth||i[u].width||i[u].colDef.width);for(v=o[0].getBoundingClientRect().left-1,b=o[0].getBoundingClientRect().right,a=v-c+t,a=a<h?a:h,(v>=c||t>0)&&(b<=h||t<0)?o.css({visibility:"visible",left:o[0].offsetLeft+(a<h?t:h-v)+"px"}):w>Math.ceil(f.grid.gridWidth)&&(t*=8,y=new e(n.col.grid,null,null,"uiGridHeaderCell.moveElement"),y.x={pixels:t},y.grid.scrollContainers("",y)),p=0,r=0;r<i.length;r++)if(angular.isUndefined(i[r].colDef.visible)||i[r].colDef.visible===!0)if(i[r].colDef.name!==n.col.colDef.name)p+=i[r].drawnWidth||i[r].width||i[r].colDef.width;else break;n.newScrollLeft===undefined?s+=t:s=n.newScrollLeft+a-p;l<n.col.drawnWidth&&(l+=Math.abs(t),o.css({width:l+"px"}))}}}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.pagination",["ng","ui.grid"]);n.service("uiGridPaginationService",["gridUtil",function(n){var t={initializeGrid:function(n){var i,r;t.defaultGridOptions(n.options);i={events:{pagination:{paginationChanged:function(){}}},methods:{pagination:{getPage:function(){return n.options.enablePagination?n.options.paginationCurrentPage:null},getTotalPages:function(){return n.options.enablePagination?n.options.totalItems===0?1:Math.ceil(n.options.totalItems/n.options.paginationPageSize):null},nextPage:function(){n.options.enablePagination&&(n.options.totalItems>0?n.options.paginationCurrentPage=Math.min(n.options.paginationCurrentPage+1,i.methods.pagination.getTotalPages()):n.options.paginationCurrentPage++)},previousPage:function(){n.options.enablePagination&&(n.options.paginationCurrentPage=Math.max(n.options.paginationCurrentPage-1,1))},seek:function(t){if(n.options.enablePagination){if(!angular.isNumber(t)||t<1)throw"Invalid page number: "+t;n.options.paginationCurrentPage=Math.min(t,i.methods.pagination.getTotalPages())}}}}};n.api.registerEventsFromObject(i.events);n.api.registerMethodsFromObject(i.methods);r=function(t){var i;if(n.options.useExternalPagination||!n.options.enablePagination)return t;var r=parseInt(n.options.paginationPageSize,10),u=parseInt(n.options.paginationCurrentPage,10),f=t.filter(function(n){return n.visible});return n.options.totalItems=f.length,i=(u-1)*r,i>f.length&&(u=n.options.paginationCurrentPage=1,i=(u-1)*r),f.slice(i,i+r)};n.registerRowsProcessor(r,900)},defaultGridOptions:function(t){t.enablePagination=t.enablePagination!==!1;t.enablePaginationControls=t.enablePaginationControls!==!1;t.useExternalPagination=t.useExternalPagination===!0;n.isNullOrUndefined(t.totalItems)&&(t.totalItems=0);n.isNullOrUndefined(t.paginationPageSizes)&&(t.paginationPageSizes=[250,500,1e3]);n.isNullOrUndefined(t.paginationPageSize)&&(t.paginationPageSize=t.paginationPageSizes.length>0?t.paginationPageSizes[0]:0);n.isNullOrUndefined(t.paginationCurrentPage)&&(t.paginationCurrentPage=1);n.isNullOrUndefined(t.paginationTemplate)&&(t.paginationTemplate="ui-grid/pagination")},onPaginationChanged:function(n,t,i){n.api.pagination.raise.paginationChanged(t,i);n.options.useExternalPagination||n.queueGridRefresh()}};return t}]);n.directive("uiGridPagination",["gridUtil","uiGridPaginationService",function(n,t){return{priority:-200,scope:!1,require:"uiGrid",link:{pre:function(i,r,u,f){t.initializeGrid(f.grid);n.getTemplate(f.grid.options.paginationTemplate).then(function(n){var t=angular.element(n);r.append(t);f.innerCompile(t)})}}}}]);n.directive("uiGridPager",["uiGridPaginationService","uiGridConstants","gridUtil","i18nService",function(n,t,i,r){return{priority:-200,scope:!0,require:"^uiGrid",link:function(u,f,e,o){var a=".ui-grid-pager-control-input",s,c,h;u.aria=r.getSafeText("pagination.aria");u.paginationApi=o.grid.api.pagination;u.sizesLabel=r.getSafeText("pagination.sizes");u.totalItemsLabel=r.getSafeText("pagination.totalItems");u.paginationOf=r.getSafeText("pagination.of");u.paginationThrough=r.getSafeText("pagination.through");s=o.grid.options;o.grid.renderContainers.body.registerViewportAdjuster(function(n){return n.height=n.height-i.elementHeight(f,"padding"),n});c=o.grid.registerDataChangeCallback(function(n){n.options.useExternalPagination||(n.options.totalItems=n.rows.length)},[t.dataChange.ROW]);u.$on("$destroy",c);var l=function(){u.showingLow=(s.paginationCurrentPage-1)*s.paginationPageSize+1;u.showingHigh=Math.min(s.paginationCurrentPage*s.paginationPageSize,s.totalItems)},v=u.$watch("grid.options.totalItems + grid.options.paginationPageSize",l),y=u.$watch("grid.options.paginationCurrentPage + grid.options.paginationPageSize",function(t,i){if(t!==i&&i!==undefined){if(!angular.isNumber(s.paginationCurrentPage)||s.paginationCurrentPage<1){s.paginationCurrentPage=1;return}if(s.totalItems>0&&s.paginationCurrentPage>u.paginationApi.getTotalPages()){s.paginationCurrentPage=u.paginationApi.getTotalPages();return}l();n.onPaginationChanged(u.grid,s.paginationCurrentPage,s.paginationPageSize)}});u.$on("$destroy",function(){v();y()});u.cantPageForward=function(){return s.totalItems>0?s.paginationCurrentPage>=u.paginationApi.getTotalPages():s.data.length<1};u.cantPageToLast=function(){return s.totalItems>0?u.cantPageForward():!0};u.cantPageBackward=function(){return s.paginationCurrentPage<=1};h=function(n){n&&i.focus.bySelector(f,a)};u.pageFirstPageClick=function(){u.paginationApi.seek(1);h(u.cantPageBackward())};u.pagePreviousPageClick=function(){u.paginationApi.previousPage();h(u.cantPageBackward())};u.pageNextPageClick=function(){u.paginationApi.nextPage();h(u.cantPageForward())};u.pageLastPageClick=function(){u.paginationApi.seek(u.paginationApi.getTotalPages());h(u.cantPageToLast())}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.pinning",["ui.grid"]);n.constant("uiGridPinningConstants",{container:{LEFT:"left",RIGHT:"right",NONE:""}});n.service("uiGridPinningService",["gridUtil","GridRenderContainer","i18nService","uiGridPinningConstants",function(n,t,i,r){var u={initializeGrid:function(n){u.defaultGridOptions(n.options);n.registerColumnBuilder(u.pinningColumnBuilder);var t={events:{pinning:{columnPinned:function(){}}},methods:{pinning:{pinColumn:function(t,i){u.pinColumn(n,t,i)}}}};n.api.registerEventsFromObject(t.events);n.api.registerMethodsFromObject(t.methods)},defaultGridOptions:function(n){n.enablePinning=n.enablePinning!==!1},pinningColumnBuilder:function(t,f,e){if(t.enablePinning=t.enablePinning===undefined?e.enablePinning:t.enablePinning,t.pinnedLeft?(f.renderContainer="left",f.grid.createLeftContainer()):t.pinnedRight&&(f.renderContainer="right",f.grid.createRightContainer()),t.enablePinning){var o={name:"ui.grid.pinning.pinLeft",title:i.get().pinning.pinLeft,icon:"ui-grid-icon-left-open",shown:function(){return typeof this.context.col.renderContainer=="undefined"||!this.context.col.renderContainer||this.context.col.renderContainer!=="left"},action:function(){u.pinColumn(this.context.col.grid,this.context.col,r.container.LEFT)}},s={name:"ui.grid.pinning.pinRight",title:i.get().pinning.pinRight,icon:"ui-grid-icon-right-open",shown:function(){return typeof this.context.col.renderContainer=="undefined"||!this.context.col.renderContainer||this.context.col.renderContainer!=="right"},action:function(){u.pinColumn(this.context.col.grid,this.context.col,r.container.RIGHT)}},h={name:"ui.grid.pinning.unpin",title:i.get().pinning.unpin,icon:"ui-grid-icon-cancel",shown:function(){return typeof this.context.col.renderContainer!="undefined"&&this.context.col.renderContainer!==null&&this.context.col.renderContainer!=="body"},action:function(){u.pinColumn(this.context.col.grid,this.context.col,r.container.UNPIN)}};n.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinLeft")||f.menuItems.push(o);n.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinRight")||f.menuItems.push(s);n.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.unpin")||f.menuItems.push(h)}},pinColumn:function(n,t,i){i===r.container.NONE?t.renderContainer=null:(t.renderContainer=i,i===r.container.LEFT?n.createLeftContainer():i===r.container.RIGHT&&n.createRightContainer());n.refresh().then(function(){n.api.pinning.raise.columnPinned(t.colDef,i)})}};return u}]);n.directive("uiGridPinning",["gridUtil","uiGridPinningService",function(n,t){return{require:"uiGrid",scope:!1,compile:function(){return{pre:function(n,i,r,u){t.initializeGrid(u.grid)},post:function(){}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.resizeColumns",["ui.grid"]);n.service("uiGridResizeColumnsService",["gridUtil","$q","$timeout",function(n,t,i){return{defaultGridOptions:function(n){n.enableColumnResizing=n.enableColumnResizing!==!1;n.enableColumnResize===!1&&(n.enableColumnResizing=!1)},colResizerColumnBuilder:function(n,i,r){return n.enableColumnResizing=n.enableColumnResizing===undefined?r.enableColumnResizing:n.enableColumnResizing,n.enableColumnResize===!1&&(n.enableColumnResizing=!1),t.all([])},registerPublicApi:function(n){var t={events:{colResizable:{columnSizeChanged:function(){}}}};n.api.registerEventsFromObject(t.events)},fireColumnSizeChanged:function(t,r,u){i(function(){t.api.colResizable?t.api.colResizable.raise.columnSizeChanged(r,u):n.logError("The resizeable api is not registered, this may indicate that you've included the module but not added the 'ui-grid-resize-columns' directive to your grid definition.  Cannot raise any events.")})},findTargetCol:function(n,t,i){var r=n.getRenderContainer(),u;return t==="left"?(u=r.visibleColumnCache.indexOf(n),r.visibleColumnCache[u-1*i]):n}}}]);n.directive("uiGridResizeColumns",["gridUtil","uiGridResizeColumnsService",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(n,i,r,u){t.defaultGridOptions(u.grid.options);u.grid.registerColumnBuilder(t.colResizerColumnBuilder);t.registerPublicApi(u.grid)},post:function(){}}}}}]);n.directive("uiGridHeaderCell",["gridUtil","$templateCache","$compile","$q","uiGridResizeColumnsService","uiGridConstants","$timeout",function(n,t,i,r,u,f,e){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(n,r,o,s){var h=s.grid,c,l,a,v,y;h.options.enableColumnResizing&&(c=t.get("ui-grid/columnResizer"),l=1,h.isRTL()&&(n.position="left",l=-1),a=function(){for(var o,h,t,f,s=r[0].getElementsByClassName("ui-grid-column-resizer"),e=0;e<s.length;e++)angular.element(s[e]).remove();o=u.findTargetCol(n.col,"left",l);h=n.col.getRenderContainer();o&&h.visibleColumnCache.indexOf(n.col)!==0&&o.colDef.enableColumnResizing!==!1&&(t=angular.element(c).clone(),t.attr("position","left"),r.prepend(t),i(t)(n));n.col.colDef.enableColumnResizing!==!1&&(f=angular.element(c).clone(),f.attr("position","right"),r.append(f),i(f)(n))},a(),v=function(){e(a)},y=h.registerDataChangeCallback(v,[f.dataChange.COLUMN]),n.$on("$destroy",y))}}}}}]);n.directive("uiGridColumnResizer",["$document","gridUtil","uiGridConstants","uiGridResizeColumnsService",function(n,t,i,r){var u=angular.element('<div class="ui-grid-resize-overlay"><\/div>');return{priority:0,scope:{col:"=",position:"@",renderIndex:"="},require:"?^uiGrid",link:function(f,e,o,s){function g(){s.grid.refreshCanvas(!0).then(function(){s.grid.queueGridRefresh()})}function w(n,t){var i=t;return n.minWidth&&i<n.minWidth?i=n.minWidth:n.maxWidth&&i>n.maxWidth&&(i=n.maxWidth),i}function y(n){var t,o,e;(n.originalEvent&&(n=n.originalEvent),n.preventDefault(),h=(n.targetTouches?n.targetTouches[0]:n).clientX-v,h<0?h=0:h>s.grid.gridWidth&&(h=s.grid.gridWidth),t=r.findTargetCol(f.col,f.position,c),t.colDef.enableColumnResizing!==!1)&&(s.grid.element.hasClass("column-resizing")||s.grid.element.addClass("column-resizing"),o=h-a,e=parseInt(t.drawnWidth+o*c,10),h=h+(w(t,e)-e)*c,u.css({left:h+"px"}),s.fireEvent(i.events.ITEM_DRAGGING))}function p(n){var i,t,e;if(n.originalEvent&&(n=n.originalEvent),n.preventDefault(),s.grid.element.removeClass("column-resizing"),u.remove(),h=(n.changedTouches?n.changedTouches[0]:n).clientX-v,i=h-a,i===0){k();b();return}(t=r.findTargetCol(f.col,f.position,c),t.colDef.enableColumnResizing!==!1)&&(e=parseInt(t.drawnWidth+i*c,10),t.width=w(t,e),t.hasCustomWidth=!0,g(i),r.fireColumnSizeChanged(s.grid,t.colDef,i),k(),b())}var a=0,h=0,v=0,c=1,d;s.grid.isRTL()&&(f.position="left",c=-1);f.position==="left"?e.addClass("left"):f.position==="right"&&e.addClass("right");var l=function(t){if(t.originalEvent&&(t=t.originalEvent),t.stopPropagation(),v=s.grid.element[0].getBoundingClientRect().left,a=(t.targetTouches?t.targetTouches[0]:t).clientX-v,s.grid.element.append(u),u.css({left:a}),t.type==="touchstart"){n.on("touchend",p);n.on("touchmove",y);e.off("mousedown",l)}else{n.on("mouseup",p);n.on("mousemove",y);e.off("touchstart",l)}},b=function(){e.on("mousedown",l);e.on("touchstart",l)},k=function(){n.off("mouseup",p);n.off("touchend",p);n.off("mousemove",y);n.off("touchmove",y);e.off("mousedown",l);e.off("touchstart",l)};b();d=function(n){var u;if(n.stopPropagation(),u=r.findTargetCol(f.col,f.position,c),u.colDef.enableColumnResizing!==!1){var o=0,h=0,l=t.closestElm(e,".ui-grid-render-container"),a=l.querySelectorAll("."+i.COL_CLASS_PREFIX+u.uid+" .ui-grid-cell-contents");Array.prototype.forEach.call(a,function(n){var i;angular.element(n).parent().hasClass("ui-grid-header-cell")&&(i=angular.element(n).parent()[0].querySelectorAll(".ui-grid-column-menu-button"));t.fakeElement(n,{},function(n){var u=angular.element(n),r,f;u.attr("style","float: left");r=t.elementWidth(u);i&&(f=t.elementWidth(i),r=r+f);r>o&&(o=r,h=o-r)})});u.width=w(u,o);u.hasCustomWidth=!0;g(h);r.fireColumnSizeChanged(s.grid,u.colDef,h)}};e.on("dblclick",d);e.on("$destroy",function(){e.off("dblclick",d);k()})}}}])}(),function(){"use strict";var n=angular.module("ui.grid.rowEdit",["ui.grid","ui.grid.edit","ui.grid.cellNav"]);n.constant("uiGridRowEditConstants",{});n.service("uiGridRowEditService",["$interval","$q","uiGridConstants","uiGridRowEditConstants","gridUtil",function(n,t,i,r,u){var f={initializeGrid:function(n,t){t.rowEdit={};var i={events:{rowEdit:{saveRow:function(){}}},methods:{rowEdit:{setSavePromise:function(n,i){f.setSavePromise(t,n,i)},getDirtyRows:function(){return t.rowEdit.dirtyRows?t.rowEdit.dirtyRows:[]},getErrorRows:function(){return t.rowEdit.errorRows?t.rowEdit.errorRows:[]},flushDirtyRows:function(){return f.flushDirtyRows(t)},setRowsDirty:function(n){f.setRowsDirty(t,n)},setRowsClean:function(n){f.setRowsClean(t,n)}}}};t.api.registerEventsFromObject(i.events);t.api.registerMethodsFromObject(i.methods);t.api.core.on.renderingComplete(n,function(){t.api.edit.on.afterCellEdit(n,f.endEditCell);t.api.edit.on.beginCellEdit(n,f.beginEditCell);t.api.edit.on.cancelCellEdit(n,f.cancelEditCell);t.api.cellNav&&t.api.cellNav.on.navigate(n,f.navigate)})},defaultGridOptions:function(){},saveRow:function(n,t){var i=this;return function(){if(t.isSaving=!0,t.rowEditSavePromise)return t.rowEditSavePromise;var r=n.api.rowEdit.raise.saveRow(t.entity);return t.rowEditSavePromise?t.rowEditSavePromise.then(i.processSuccessPromise(n,t),i.processErrorPromise(n,t)):u.logError("A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise"),r}},setSavePromise:function(n,t,i){var r=n.getRow(t);r.rowEditSavePromise=i},processSuccessPromise:function(n,t){var i=this;return function(){delete t.isSaving;delete t.isDirty;delete t.isError;delete t.rowEditSaveTimer;delete t.rowEditSavePromise;i.removeRow(n.rowEdit.errorRows,t);i.removeRow(n.rowEdit.dirtyRows,t)}},processErrorPromise:function(n,t){return function(){delete t.isSaving;delete t.rowEditSaveTimer;delete t.rowEditSavePromise;t.isError=!0;n.rowEdit.errorRows||(n.rowEdit.errorRows=[]);f.isRowPresent(n.rowEdit.errorRows,t)||n.rowEdit.errorRows.push(t)}},removeRow:function(n,t){typeof n!="undefined"&&n!==null&&n.forEach(function(i,r){i.uid===t.uid&&n.splice(r,1)})},isRowPresent:function(n,t){var i=!1;return n.forEach(function(n){n.uid===t.uid&&(i=!0)}),i},flushDirtyRows:function(n){var i=[];return n.api.rowEdit.getDirtyRows().forEach(function(t){f.saveRow(n,t)();i.push(t.rowEditSavePromise)}),t.all(i)},endEditCell:function(n,t,i,r){var o=this.grid,e=o.getRow(n);if(!e){u.logError("Unable to find rowEntity in grid data, dirty flag cannot be set");return}(i!==r||e.isDirty)&&(o.rowEdit.dirtyRows||(o.rowEdit.dirtyRows=[]),e.isDirty||(e.isDirty=!0,o.rowEdit.dirtyRows.push(e)),delete e.isError,f.considerSetTimer(o,e))},beginEditCell:function(n){var t=this.grid,i=t.getRow(n);if(!i){u.logError("Unable to find rowEntity in grid data, timer cannot be cancelled");return}f.cancelTimer(t,i)},cancelEditCell:function(n){var t=this.grid,i=t.getRow(n);if(!i){u.logError("Unable to find rowEntity in grid data, timer cannot be set");return}f.considerSetTimer(t,i)},navigate:function(n,t){var i=this.grid;n.row.rowEditSaveTimer&&f.cancelTimer(i,n.row);t&&t.row&&t.row!==n.row&&f.considerSetTimer(i,t.row)},considerSetTimer:function(t,i){if(f.cancelTimer(t,i),i.isDirty&&!i.isSaving&&t.options.rowEditWaitInterval!==-1){var r=t.options.rowEditWaitInterval?t.options.rowEditWaitInterval:2e3;i.rowEditSaveTimer=n(f.saveRow(t,i),r,1)}},cancelTimer:function(t,i){i.rowEditSaveTimer&&!i.isSaving&&(n.cancel(i.rowEditSaveTimer),delete i.rowEditSaveTimer)},setRowsDirty:function(n,t){var i;t.forEach(function(t){i=n.getRow(t);i?(n.rowEdit.dirtyRows||(n.rowEdit.dirtyRows=[]),i.isDirty||(i.isDirty=!0,n.rowEdit.dirtyRows.push(i)),delete i.isError,f.considerSetTimer(n,i)):u.logError("requested row not found in rowEdit.setRowsDirty, row was: "+t)})},setRowsClean:function(n,t){var i;t.forEach(function(t){i=n.getRow(t);i?(delete i.isDirty,f.removeRow(n.rowEdit.dirtyRows,i),f.cancelTimer(n,i),delete i.isError,f.removeRow(n.rowEdit.errorRows,i)):u.logError("requested row not found in rowEdit.setRowsClean, row was: "+t)})}};return f}]);n.directive("uiGridRowEdit",["gridUtil","uiGridRowEditService","uiGridEditConstants",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(n,i,r,u){t.initializeGrid(n,u.grid)},post:function(){}}}}}]);n.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(){return{priority:-200,scope:!1,compile:function(n){var t=angular.element(n.children().children()[0]),i=t.attr("ng-class"),r="";return r=i?i.slice(0,-1)+", 'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}":"{'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}",t.attr("ng-class",r),{pre:function(){},post:function(){}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.saveState",["ui.grid","ui.grid.selection","ui.grid.cellNav","ui.grid.grouping","ui.grid.pinning","ui.grid.treeView"]);n.constant("uiGridSaveStateConstants",{featureName:"saveState"});n.service("uiGridSaveStateService",["$q","uiGridSaveStateConstants","gridUtil","$compile","$interval","uiGridConstants",function(){var n={initializeGrid:function(t){t.saveState={};this.defaultGridOptions(t.options);var i={events:{saveState:{}},methods:{saveState:{save:function(){return n.save(t)},restore:function(i,r){n.restore(t,i,r)}}}};t.api.registerEventsFromObject(i.events);t.api.registerMethodsFromObject(i.methods)},defaultGridOptions:function(n){n.saveWidths=n.saveWidths!==!1;n.saveOrder=n.saveOrder!==!1;n.saveScroll=n.saveScroll===!0;n.saveFocus=n.saveScroll!==!0&&n.saveFocus!==!1;n.saveVisible=n.saveVisible!==!1;n.saveSort=n.saveSort!==!1;n.saveFilter=n.saveFilter!==!1;n.saveSelection=n.saveSelection!==!1;n.saveGrouping=n.saveGrouping!==!1;n.saveGroupingExpandedStates=n.saveGroupingExpandedStates===!0;n.savePinning=n.savePinning!==!1;n.saveTreeView=n.saveTreeView!==!1},save:function(t){var i={};return i.columns=n.saveColumns(t),i.scrollFocus=n.saveScrollFocus(t),i.selection=n.saveSelection(t),i.grouping=n.saveGrouping(t),i.treeView=n.saveTreeView(t),i},restore:function(t,i,r){r.columns&&n.restoreColumns(t,r.columns);r.scrollFocus&&n.restoreScrollFocus(t,i,r.scrollFocus);r.selection&&n.restoreSelection(t,r.selection);r.grouping&&n.restoreGrouping(t,r.grouping);r.treeView&&n.restoreTreeView(t,r.treeView);t.refresh()},saveColumns:function(n){var t=[];return n.getOnlyDataColumns().forEach(function(i){var r={};r.name=i.name;n.options.saveVisible&&(r.visible=i.visible);n.options.saveWidths&&(r.width=i.width);n.options.saveSort&&(r.sort=angular.copy(i.sort));n.options.saveFilter&&(r.filters=[],i.filters.forEach(function(n){var t={};angular.forEach(n,function(n,i){i!=="condition"&&i!=="$$hashKey"&&i!=="placeholder"&&(t[i]=n)});r.filters.push(t)}));!!n.api.pinning&&n.options.savePinning&&(r.pinned=i.renderContainer?i.renderContainer:"");t.push(r)}),t},saveScrollFocus:function(t){var i,r;return t.api.cellNav?(i={},t.options.saveFocus&&(i.focus=!0,r=t.api.cellNav.getFocusedCell(),r!==null&&(r.col!==null&&(i.colName=r.col.colDef.name),r.row!==null&&(i.rowVal=n.getRowVal(t,r.row)))),(t.options.saveScroll||t.options.saveFocus&&!i.colName&&!i.rowVal)&&(i.focus=!1,t.renderContainers.body.prevRowScrollIndex&&(i.rowVal=n.getRowVal(t,t.renderContainers.body.visibleRowCache[t.renderContainers.body.prevRowScrollIndex])),t.renderContainers.body.prevColScrollIndex&&(i.colName=t.renderContainers.body.visibleColumnCache[t.renderContainers.body.prevColScrollIndex].name)),i):{}},saveSelection:function(t){if(!t.api.selection||!t.options.saveSelection)return[];return t.api.selection.getSelectedGridRows().map(function(i){return n.getRowVal(t,i)})},saveGrouping:function(n){return!n.api.grouping||!n.options.saveGrouping?{}:n.api.grouping.getGrouping(n.options.saveGroupingExpandedStates)},saveTreeView:function(n){return!n.api.treeView||!n.options.saveTreeView?{}:n.api.treeView.getTreeView()},getRowVal:function(n,t){if(!t)return null;var i={};return n.options.saveRowIdentity?(i.identity=!0,i.row=n.options.saveRowIdentity(t.entity)):(i.identity=!1,i.row=n.renderContainers.body.visibleRowCache.indexOf(t)),i},restoreColumns:function(n,t){var i=!1;t.forEach(function(t,r){var u=n.getColumn(t.name),f,e;u&&!n.isRowHeaderColumn(u)&&(n.options.saveVisible&&(u.visible!==t.visible||u.colDef.visible!==t.visible)&&(u.visible=t.visible,u.colDef.visible=t.visible,n.api.core.raise.columnVisibilityChanged(u)),n.options.saveWidths&&(u.width=t.width),!n.options.saveSort||angular.equals(u.sort,t.sort)||u.sort===undefined&&angular.isEmpty(t.sort)||(u.sort=angular.copy(t.sort),i=!0),n.options.saveFilter&&!angular.equals(u.filters,t.filters)&&(t.filters.forEach(function(n,t){angular.extend(u.filters[t],n);(typeof n.term=="undefined"||n.term===null)&&delete u.filters[t].term}),n.api.core.raise.filterChanged()),!!n.api.pinning&&n.options.savePinning&&u.renderContainer!==t.pinned&&n.api.pinning.pinColumn(u,t.pinned),f=n.getOnlyDataColumns().indexOf(u),f!==-1&&n.options.saveOrder&&f!==r&&(e=n.columns.splice(f+n.rowHeaderColumns.length,1)[0],n.columns.splice(r+n.rowHeaderColumns.length,0,e)))});i&&n.api.core.raise.sortChanged(n,n.getColumnSorting())},restoreScrollFocus:function(t,i,r){var u,f,o,e;t.api.cellNav&&(r.colName&&(o=t.options.columnDefs.filter(function(n){return n.name===r.colName}),o.length>0&&(u=o[0])),r.rowVal&&r.rowVal.row&&(f=r.rowVal.identity?n.findRowByIdentity(t,r.rowVal):t.renderContainers.body.visibleRowCache[r.rowVal.row]),e=f&&f.entity?f.entity:null,(u||e)&&(r.focus?t.api.cellNav.scrollToFocus(e,u):t.scrollTo(e,u)))},restoreSelection:function(t,i){t.api.selection&&(t.api.selection.clearSelectedRows(),i.forEach(function(i){if(i.identity){var r=n.findRowByIdentity(t,i);r&&t.api.selection.selectRow(r.entity)}else t.api.selection.selectRowByVisibleIndex(i.row)}))},restoreGrouping:function(n,t){n.api.grouping&&typeof t!="undefined"&&t!==null&&!angular.equals(t,{})&&n.api.grouping.setGrouping(t)},restoreTreeView:function(n,t){n.api.treeView&&typeof t!="undefined"&&t!==null&&!angular.equals(t,{})&&n.api.treeView.setTreeView(t)},findRowByIdentity:function(n,t){if(!n.options.saveRowIdentity)return null;var i=n.rows.filter(function(i){return n.options.saveRowIdentity(i.entity)===t.row?!0:!1});return i.length>0?i[0]:null}};return n}]);n.directive("uiGridSaveState",["uiGridSaveStateConstants","uiGridSaveStateService","gridUtil","$compile",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(n,i,r,u){t.initializeGrid(u.grid)}}}])}(),function(){"use strict";var n=angular.module("ui.grid.selection",["ui.grid"]);n.constant("uiGridSelectionConstants",{featureName:"selection",selectionRowHeaderColName:"selectionRowHeaderCol"});angular.module("ui.grid").config(["$provide",function(n){n.decorator("GridRow",["$delegate",function(n){return n.prototype.setSelected=function(n){this.isSelected=n;n?this.grid.selection.selectedCount++:this.grid.selection.selectedCount--},n}])}]);n.service("uiGridSelectionService",["$q","$templateCache","uiGridSelectionConstants","gridUtil",function(){var n={initializeGrid:function(t){t.selection={};t.selection.lastSelectedRow=null;t.selection.selectAll=!1;t.selection.selectedCount=0;n.defaultGridOptions(t.options);var i={events:{selection:{rowSelectionChanged:function(){},rowSelectionChangedBatch:function(){}}},methods:{selection:{toggleRowSelection:function(i,r){var u=t.getRow(i);u!==null&&n.toggleRowSelection(t,u,r,t.options.multiSelect,t.options.noUnselect)},selectRow:function(i,r){var u=t.getRow(i);u===null||u.isSelected||n.toggleRowSelection(t,u,r,t.options.multiSelect,t.options.noUnselect)},selectRowByVisibleIndex:function(i,r){var u=t.renderContainers.body.visibleRowCache[i];u===null||typeof u=="undefined"||u.isSelected||n.toggleRowSelection(t,u,r,t.options.multiSelect,t.options.noUnselect)},unSelectRow:function(i,r){var u=t.getRow(i);u!==null&&u.isSelected&&n.toggleRowSelection(t,u,r,t.options.multiSelect,t.options.noUnselect)},selectAllRows:function(i){if(t.options.multiSelect!==!1){var r=[];t.rows.forEach(function(u){u.isSelected||u.enableSelection===!1||(u.setSelected(!0),n.decideRaiseSelectionEvent(t,u,r,i))});n.decideRaiseSelectionBatchEvent(t,r,i);t.selection.selectAll=!0}},selectAllVisibleRows:function(i){if(t.options.multiSelect!==!1){var r=[];t.rows.forEach(function(u){u.visible?u.isSelected||u.enableSelection===!1||(u.setSelected(!0),n.decideRaiseSelectionEvent(t,u,r,i)):u.isSelected&&(u.setSelected(!1),n.decideRaiseSelectionEvent(t,u,r,i))});n.decideRaiseSelectionBatchEvent(t,r,i);t.selection.selectAll=!0}},clearSelectedRows:function(i){n.clearSelectedRows(t,i)},getSelectedRows:function(){return n.getSelectedRows(t).map(function(n){return n.entity})},getSelectedGridRows:function(){return n.getSelectedRows(t)},getSelectedCount:function(){return t.selection.selectedCount},setMultiSelect:function(n){t.options.multiSelect=n},setModifierKeysToMultiSelect:function(n){t.options.modifierKeysToMultiSelect=n},getSelectAllState:function(){return t.selection.selectAll}}}};t.api.registerEventsFromObject(i.events);t.api.registerMethodsFromObject(i.methods)},defaultGridOptions:function(n){n.enableRowSelection=n.enableRowSelection!==!1;n.multiSelect=n.multiSelect!==!1;n.noUnselect=n.noUnselect===!0;n.modifierKeysToMultiSelect=n.modifierKeysToMultiSelect===!0;n.enableRowHeaderSelection=n.enableRowHeaderSelection!==!1;typeof n.enableFullRowSelection=="undefined"&&(n.enableFullRowSelection=!n.enableRowHeaderSelection);n.enableSelectAll=n.enableSelectAll!==!1;n.enableSelectionBatchEvent=n.enableSelectionBatchEvent!==!1;n.selectionRowHeaderWidth=angular.isDefined(n.selectionRowHeaderWidth)?n.selectionRowHeaderWidth:30;n.enableFooterTotalSelected=n.enableFooterTotalSelected!==!1;n.isRowSelectable=angular.isDefined(n.isRowSelectable)?n.isRowSelectable:angular.noop},toggleRowSelection:function(t,i,r,u,f){var e=i.isSelected,o;(i.enableSelection!==!1||e)&&(u||e?!u&&e&&(o=n.getSelectedRows(t),o.length>1&&(e=!1,n.clearSelectedRows(t,r))):n.clearSelectedRows(t,r),e&&f||(i.setSelected(!e),i.isSelected===!0&&(t.selection.lastSelectedRow=i),o=n.getSelectedRows(t),t.selection.selectAll=t.rows.length===o.length,t.api.selection.raise.rowSelectionChanged(i,r)))},shiftSelect:function(t,i,r,u){var c,h,s,f;if(u){var l=n.getSelectedRows(t),e=l.length>0?t.renderContainers.body.visibleRowCache.indexOf(t.selection.lastSelectedRow):0,o=t.renderContainers.body.visibleRowCache.indexOf(i);for(e>o&&(c=e,e=o,o=c),h=[],s=e;s<=o;s++)f=t.renderContainers.body.visibleRowCache[s],f&&(f.isSelected||f.enableSelection===!1||(f.setSelected(!0),t.selection.lastSelectedRow=f,n.decideRaiseSelectionEvent(t,f,h,r)));n.decideRaiseSelectionBatchEvent(t,h,r)}},getSelectedRows:function(n){return n.rows.filter(function(n){return n.isSelected})},clearSelectedRows:function(t,i){var r=[];n.getSelectedRows(t).forEach(function(u){u.isSelected&&(u.setSelected(!1),n.decideRaiseSelectionEvent(t,u,r,i))});n.decideRaiseSelectionBatchEvent(t,r,i);t.selection.selectAll=!1;t.selection.selectedCount=0},decideRaiseSelectionEvent:function(n,t,i,r){n.options.enableSelectionBatchEvent?i.push(t):n.api.selection.raise.rowSelectionChanged(t,r)},decideRaiseSelectionBatchEvent:function(n,t,i){t.length>0&&n.api.selection.raise.rowSelectionChangedBatch(t,i)}};return n}]);n.directive("uiGridSelection",["uiGridSelectionConstants","uiGridSelectionService","$templateCache","uiGridConstants",function(n,t,i,r){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(i,u,f,e){var o,c;t.initializeGrid(e.grid);e.grid.options.enableRowHeaderSelection&&(o={name:n.selectionRowHeaderColName,displayName:"",width:e.grid.options.selectionRowHeaderWidth,minWidth:10,cellTemplate:"ui-grid/selectionRowHeader",headerCellTemplate:"ui-grid/selectionHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0},e.grid.addRowHeaderColumn(o));var s=!1,l=function(n){return n.forEach(function(n){n.enableSelection=e.grid.options.isRowSelectable(n)}),n},h=function(){e.grid.options.isRowSelectable!==angular.noop&&s!==!0&&(e.grid.registerRowsProcessor(l,500),s=!0)};h();c=e.grid.registerDataChangeCallback(h,[r.dataChange.OPTIONS]);i.$on("$destroy",c)},post:function(){}}}}}]);n.directive("uiGridSelectionRowHeaderButtons",["$templateCache","uiGridSelectionService","gridUtil",function(n,t,i){return{replace:!0,restrict:"E",template:n.get("ui-grid/selectionRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(n,r,u,f){function o(n,i){i.stopPropagation();i.shiftKey?t.shiftSelect(e,n,i,e.options.multiSelect):i.ctrlKey||i.metaKey?t.toggleRowSelection(e,n,i,e.options.multiSelect,e.options.noUnselect):t.toggleRowSelection(e,n,i,e.options.multiSelect&&!e.options.modifierKeysToMultiSelect,e.options.noUnselect)}function s(n){(n.ctrlKey||n.shiftKey)&&(n.target.onselectstart=function(){return!1},window.setTimeout(function(){n.target.onselectstart=null},0))}var e=f.grid;if(n.selectButtonClick=o,i.detectBrowser()==="ie")r.on("mousedown",s)}}}]);n.directive("uiGridSelectionSelectAllButtons",["$templateCache","uiGridSelectionService",function(n,t){return{replace:!0,restrict:"E",template:n.get("ui-grid/selectionSelectAllButtons"),scope:!1,link:function(n){var i=n.col.grid;n.headerButtonClick=function(n,r){i.selection.selectAll?(t.clearSelectedRows(i,r),i.options.noUnselect&&i.api.selection.selectRowByVisibleIndex(0,r),i.selection.selectAll=!1):i.options.multiSelect&&(i.api.selection.selectAllVisibleRows(r),i.selection.selectAll=!0)}}}}]);n.directive("uiGridViewport",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService",function(){return{priority:-200,scope:!1,compile:function(n){var t=angular.element(n.children().children()[0]),i=t.attr("ng-class"),r="";return r=i?i.slice(0,-1)+",'ui-grid-row-selected': row.isSelected}":"{'ui-grid-row-selected': row.isSelected}",t.attr("ng-class",r),{pre:function(){},post:function(){}}}}}]);n.directive("uiGridCell",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService","$timeout",function(n,t,i,r,u,f,e){return{priority:-200,restrict:"A",require:"?^uiGrid",scope:!1,link:function(n,i,r,u){function a(){if(n.grid.options.enableRowSelection&&n.grid.options.enableFullRowSelection){i.addClass("ui-grid-disable-selection");i.on("touchstart",l);i.on("touchend",s);i.on("click",o);n.registered=!0}}function y(){n.registered&&(i.removeClass("ui-grid-disable-selection"),i.off("touchstart",l),i.off("touchend",s),i.off("click",o),n.registered=!1)}var c=0,h=300,v;u.grid.api.cellNav&&u.grid.api.cellNav.on.viewPortKeyDown(n,function(t,i){i!==null&&i.row===n.row&&i.col===n.col&&t.keyCode===32&&n.col.colDef.name==="selectionRowHeaderCol"&&(f.toggleRowSelection(n.grid,n.row,t,n.grid.options.multiSelect&&!n.grid.options.modifierKeysToMultiSelect,n.grid.options.noUnselect),n.$apply())});var o=function(t){i.off("touchend",s);t.shiftKey?f.shiftSelect(n.grid,n.row,t,n.grid.options.multiSelect):t.ctrlKey||t.metaKey?f.toggleRowSelection(n.grid,n.row,t,n.grid.options.multiSelect,n.grid.options.noUnselect):f.toggleRowSelection(n.grid,n.row,t,n.grid.options.multiSelect&&!n.grid.options.modifierKeysToMultiSelect,n.grid.options.noUnselect);n.$apply();e(function(){i.on("touchend",s)},h)},l=function(){c=(new Date).getTime();i.off("click",o)},s=function(n){var t=(new Date).getTime(),r=t-c;r<h&&o(n);e(function(){i.on("click",o)},h)};a();v=n.grid.registerDataChangeCallback(function(){n.grid.options.enableRowSelection&&n.grid.options.enableFullRowSelection&&!n.registered?a():n.grid.options.enableRowSelection&&n.grid.options.enableFullRowSelection||!n.registered||y()},[t.dataChange.OPTIONS]);i.on("$destroy",v)}}}]);n.directive("uiGridGridFooter",["$compile","uiGridConstants","gridUtil",function(n,t,i){return{restrict:"EA",replace:!0,priority:-1e3,require:"^uiGrid",scope:!0,compile:function(){return{pre:function(t,r,u,f){f.grid.options.showGridFooter&&i.getTemplate("ui-grid/gridFooterSelectedItems").then(function(i){var u=angular.element(i),f=n(u)(t);angular.element(r[0].getElementsByClassName("ui-grid-grid-footer")[0]).append(f)})},post:function(){}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.treeBase",["ui.grid"]);n.constant("uiGridTreeBaseConstants",{featureName:"treeBase",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}});n.service("uiGridTreeBaseService",["$q","uiGridTreeBaseConstants","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants","rowSorter",function(n,t,i,r,u,f,e,o){var s={initializeGrid:function(n){n.treeBase={};n.treeBase.numberLevels=0;n.treeBase.expandAll=!1;n.treeBase.tree=[];s.defaultGridOptions(n.options);n.registerRowsProcessor(s.treeRows,410);n.registerColumnBuilder(s.treeBaseColumnBuilder);s.createRowHeader(n);var t={events:{treeBase:{rowExpanded:{},rowCollapsed:{}}},methods:{treeBase:{expandAllRows:function(){s.expandAllRows(n)},collapseAllRows:function(){s.collapseAllRows(n)},toggleRowTreeState:function(t){s.toggleRowTreeState(n,t)},expandRow:function(t){s.expandRow(n,t)},expandRowChildren:function(t){s.expandRowChildren(n,t)},collapseRow:function(t){s.collapseRow(n,t)},collapseRowChildren:function(t){s.collapseRowChildren(n,t)},getTreeExpandedState:function(){return{expandedState:s.getTreeState(n)}},setTreeState:function(t){s.setTreeState(n,t)},getRowChildren:function(n){return n.treeNode.children.map(function(n){return n.row})}}}};n.api.registerEventsFromObject(t.events);n.api.registerMethodsFromObject(t.methods)},defaultGridOptions:function(n){n.treeRowHeaderBaseWidth=n.treeRowHeaderBaseWidth||30;n.treeIndent=n.treeIndent||10;n.showTreeRowHeader=n.showTreeRowHeader!==!1;n.showTreeExpandNoChildren=n.showTreeExpandNoChildren!==!1;n.treeRowHeaderAlwaysVisible=n.treeRowHeaderAlwaysVisible!==!1;n.treeCustomAggregations=n.treeCustomAggregations||{}},treeBaseColumnBuilder:function(n,t,i){typeof n.customTreeAggregationFn!="undefined"&&(t.treeAggregationFn=n.customTreeAggregationFn);typeof n.treeAggregationType!="undefined"&&(t.treeAggregation={type:n.treeAggregationType},typeof i.treeCustomAggregations[n.treeAggregationType]!="undefined"?(t.treeAggregationFn=i.treeCustomAggregations[n.treeAggregationType].aggregationFn,t.treeAggregationFinalizerFn=i.treeCustomAggregations[n.treeAggregationType].finalizerFn,t.treeAggregation.label=i.treeCustomAggregations[n.treeAggregationType].label):typeof s.nativeAggregations()[n.treeAggregationType]!="undefined"&&(t.treeAggregationFn=s.nativeAggregations()[n.treeAggregationType].aggregationFn,t.treeAggregation.label=s.nativeAggregations()[n.treeAggregationType].label));typeof n.treeAggregationLabel!="undefined"&&(typeof t.treeAggregation=="undefined"&&(t.treeAggregation={}),t.treeAggregation.label=n.treeAggregationLabel);t.treeAggregationUpdateEntity=n.treeAggregationUpdateEntity!==!1;typeof t.customTreeAggregationFinalizerFn=="undefined"&&(t.customTreeAggregationFinalizerFn=n.customTreeAggregationFinalizerFn)},createRowHeader:function(n){var i={name:t.rowHeaderColName,displayName:"",width:n.options.treeRowHeaderBaseWidth,minWidth:10,cellTemplate:"ui-grid/treeBaseRowHeader",headerCellTemplate:"ui-grid/treeBaseHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};i.visible=n.options.treeRowHeaderAlwaysVisible;n.addRowHeaderColumn(i)},expandAllRows:function(n){n.treeBase.tree.forEach(function(i){s.setAllNodes(n,i,t.EXPANDED)});n.treeBase.expandAll=!0;n.queueGridRefresh()},collapseAllRows:function(n){n.treeBase.tree.forEach(function(i){s.setAllNodes(n,i,t.COLLAPSED)});n.treeBase.expandAll=!1;n.queueGridRefresh()},setAllNodes:function(n,i,r){typeof i.state!="undefined"&&i.state!==r&&(i.state=r,r===t.EXPANDED?n.api.treeBase.raise.rowExpanded(i.row):n.api.treeBase.raise.rowCollapsed(i.row));i.children&&i.children.forEach(function(t){s.setAllNodes(n,t,r)})},toggleRowTreeState:function(n,i){typeof i.treeLevel=="undefined"||i.treeLevel===null||i.treeLevel<0||(i.treeNode.state===t.EXPANDED?s.collapseRow(n,i):s.expandRow(n,i),n.queueGridRefresh())},expandRow:function(n,i){typeof i.treeLevel=="undefined"||i.treeLevel===null||i.treeLevel<0||i.treeNode.state!==t.EXPANDED&&(i.treeNode.state=t.EXPANDED,n.api.treeBase.raise.rowExpanded(i),n.treeBase.expandAll=s.allExpanded(n.treeBase.tree),n.queueGridRefresh())},expandRowChildren:function(n,i){typeof i.treeLevel=="undefined"||i.treeLevel===null||i.treeLevel<0||(s.setAllNodes(n,i.treeNode,t.EXPANDED),n.treeBase.expandAll=s.allExpanded(n.treeBase.tree),n.queueGridRefresh())},collapseRow:function(n,i){typeof i.treeLevel=="undefined"||i.treeLevel===null||i.treeLevel<0||i.treeNode.state!==t.COLLAPSED&&(i.treeNode.state=t.COLLAPSED,n.treeBase.expandAll=!1,n.api.treeBase.raise.rowCollapsed(i),n.queueGridRefresh())},collapseRowChildren:function(n,i){typeof i.treeLevel=="undefined"||i.treeLevel===null||i.treeLevel<0||(s.setAllNodes(n,i.treeNode,t.COLLAPSED),n.treeBase.expandAll=!1,n.queueGridRefresh())},allExpanded:function(n){var t=!0;return n.forEach(function(n){s.allExpandedInternal(n)||(t=!1)}),t},allExpandedInternal:function(n){if(n.children&&n.children.length>0){if(n.state===t.COLLAPSED)return!1;var i=!0;return n.children.forEach(function(n){s.allExpandedInternal(n)||(i=!1)}),i}return!0},treeRows:function(n){if(n.length===0)return n;var i=this,r=t.EXPANDED;return i.treeBase.tree=s.createTree(i,n),s.updateRowHeaderWidth(i),s.sortTree(i),s.fixFilter(i),s.renderTree(i.treeBase.tree)},updateRowHeaderWidth:function(n){var i=n.getColumn(t.rowHeaderColName),u=n.options.treeRowHeaderBaseWidth+n.options.treeIndent*Math.max(n.treeBase.numberLevels-1,0),r;i&&u!==i.width&&(i.width=u,n.queueRefresh());r=!0;n.options.showTreeRowHeader===!1&&(r=!1);n.options.treeRowHeaderAlwaysVisible===!1&&n.treeBase.numberLevels<=0&&(r=!1);i.visible!==r&&(i.visible=r,i.colDef.visible=r,n.queueGridRefresh())},renderTree:function(n){var i=[];return n.forEach(function(n){n.row.visible&&i.push(n.row);n.state===t.EXPANDED&&n.children&&n.children.length>0&&(i=i.concat(s.renderTree(n.children)))}),i},createTree:function(n,i){var u=-1,r=[],f,e,o,h;for(n.treeBase.tree=[],n.treeBase.numberLevels=0,e=s.getAggregations(n),o=function(i){if(typeof i.entity.$$treeLevel!="undefined"&&i.treeLevel!==i.entity.$$treeLevel&&(i.treeLevel=i.entity.$$treeLevel),i.treeLevel<=u){while(i.treeLevel<=u){var o=r.pop();s.finaliseAggregations(o);u--}f=r.length>0?s.setCurrentState(r):t.EXPANDED}(typeof i.treeLevel=="undefined"||i.treeLevel===null||i.treeLevel<0)&&i.visible&&s.aggregate(n,i,r);s.addOrUseNode(n,i,r,e);typeof i.treeLevel!="undefined"&&i.treeLevel!==null&&i.treeLevel>=0&&(r.push(i),u++,f=s.setCurrentState(r));n.treeBase.numberLevels<i.treeLevel+1&&(n.treeBase.numberLevels=i.treeLevel+1)},i.forEach(o);r.length>0;)h=r.pop(),s.finaliseAggregations(h);return n.treeBase.tree},addOrUseNode:function(n,i,r,u){var e=[],f;u.forEach(function(n){e.push(s.buildAggregationObject(n.col))});f={state:t.COLLAPSED,row:i,parentRow:null,aggregations:e,children:[]};i.treeNode&&(f.state=i.treeNode.state);r.length>0&&(f.parentRow=r[r.length-1]);i.treeNode=f;r.length===0?n.treeBase.tree.push(f):r[r.length-1].treeNode.children.push(f)},setCurrentState:function(n){var i=t.EXPANDED;return n.forEach(function(n){n.treeNode.state===t.COLLAPSED&&(i=t.COLLAPSED)}),i},sortTree:function(n){n.columns.forEach(function(n){n.sort&&n.sort.ignoreSort&&delete n.sort.ignoreSort});n.treeBase.tree=s.sortInternal(n,n.treeBase.tree)},sortInternal:function(n,i){var r=i.map(function(n){return n.row}),u;return r=o.sort(n,r,n.columns),u=r.map(function(n){return n.treeNode}),u.forEach(function(i){i.state===t.EXPANDED&&i.children&&i.children.length>0&&(i.children=s.sortInternal(n,i.children))}),u},fixFilter:function(n){var t;n.treeBase.tree.forEach(function(n){n.children&&n.children.length>0&&(t=n.row.visible,s.fixFilterInternal(n.children,t))})},fixFilterInternal:function(n,t){return n.forEach(function(n){n.row.visible&&!t&&(s.setParentsVisible(n),t=!0);n.children&&n.children.length>0&&s.fixFilterInternal(n.children,t&&n.row.visible)&&(t=!0)}),t},setParentsVisible:function(n){while(n.parentRow)n.parentRow.visible=!0,n=n.parentRow.treeNode},buildAggregationObject:function(n){var t={col:n};return n.treeAggregation&&n.treeAggregation.type&&(t.type=n.treeAggregation.type),n.treeAggregation&&n.treeAggregation.label&&(t.label=n.treeAggregation.label),t},getAggregations:function(n){var t=[];return n.columns.forEach(function(i){typeof i.treeAggregationFn!="undefined"&&(t.push(s.buildAggregationObject(i)),n.options.showColumnFooter&&typeof i.colDef.aggregationType=="undefined"&&i.treeAggregation&&(i.treeFooterAggregation=s.buildAggregationObject(i),i.aggregationType=s.treeFooterAggregationType))}),t},aggregate:function(n,t,i){i.length===0&&t.treeNode&&t.treeNode.aggregations&&t.treeNode.aggregations.forEach(function(i){if(typeof i.col.treeFooterAggregation!="undefined"){var r=n.getCellValue(t,i.col),u=Number(r);i.col.treeAggregationFn(i.col.treeFooterAggregation,r,u,t)}});i.forEach(function(i,r){i.treeNode.aggregations&&i.treeNode.aggregations.forEach(function(i){var u=n.getCellValue(t,i.col),f=Number(u);i.col.treeAggregationFn(i,u,f,t);r===0&&typeof i.col.treeFooterAggregation!="undefined"&&i.col.treeAggregationFn(i.col.treeFooterAggregation,u,f,t)})})},nativeAggregations:function(){return{count:{label:f.get().aggregation.count,menuTitle:f.get().grouping.aggregate_count,aggregationFn:function(n){typeof n.value=="undefined"?n.value=1:n.value++}},sum:{label:f.get().aggregation.sum,menuTitle:f.get().grouping.aggregate_sum,aggregationFn:function(n,t,i){isNaN(i)||(typeof n.value=="undefined"?n.value=i:n.value+=i)}},min:{label:f.get().aggregation.min,menuTitle:f.get().grouping.aggregate_min,aggregationFn:function(n,t){typeof n.value=="undefined"?n.value=t:typeof t!="undefined"&&t!==null&&(t<n.value||n.value===null)&&(n.value=t)}},max:{label:f.get().aggregation.max,menuTitle:f.get().grouping.aggregate_max,aggregationFn:function(n,t){typeof n.value=="undefined"?n.value=t:typeof t!="undefined"&&t!==null&&(t>n.value||n.value===null)&&(n.value=t)}},avg:{label:f.get().aggregation.avg,menuTitle:f.get().grouping.aggregate_avg,aggregationFn:function(n,t,i){(typeof n.count=="undefined"?n.count=1:n.count++,isNaN(i))||(typeof n.value=="undefined"||typeof n.sum=="undefined"?(n.value=i,n.sum=i):(n.sum+=i,n.value=n.sum/n.count))}}}},finaliseAggregation:function(n,t){t.col.treeAggregationUpdateEntity&&typeof n!="undefined"&&typeof n.entity["$$"+t.col.uid]!="undefined"&&angular.extend(t,n.entity["$$"+t.col.uid]);typeof t.col.treeAggregationFinalizerFn=="function"&&t.col.treeAggregationFinalizerFn(t);typeof t.col.customTreeAggregationFinalizerFn=="function"&&t.col.customTreeAggregationFinalizerFn(t);typeof t.rendered=="undefined"&&(t.rendered=t.label?t.label+t.value:t.value)},finaliseAggregations:function(n){typeof n.treeNode.aggregations!="undefined"&&n.treeNode.aggregations.forEach(function(t){if(s.finaliseAggregation(n,t),t.col.treeAggregationUpdateEntity){var i={};angular.forEach(t,function(n,r){t.hasOwnProperty(r)&&r!=="col"&&(i[r]=n)});n.entity["$$"+t.col.uid]=i}})},treeFooterAggregationType:function(n,t){return(s.finaliseAggregation(undefined,t.treeFooterAggregation),typeof t.treeFooterAggregation.value=="undefined"||t.treeFooterAggregation.rendered===null)?"":t.treeFooterAggregation.rendered}};return s}]);n.directive("uiGridTreeBaseRowHeaderButtons",["$templateCache","uiGridTreeBaseService",function(n,t){return{replace:!0,restrict:"E",template:n.get("ui-grid/treeBaseRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(n,i,r,u){var f=u.grid;n.treeButtonClick=function(n,i){t.toggleRowTreeState(f,n,i)}}}}]);n.directive("uiGridTreeBaseExpandAllButtons",["$templateCache","uiGridTreeBaseService",function(n,t){return{replace:!0,restrict:"E",template:n.get("ui-grid/treeBaseExpandAllButtons"),scope:!1,link:function(n){var i=n.col.grid;n.headerButtonClick=function(n,r){i.treeBase.expandAll?t.collapseAllRows(i,r):t.expandAllRows(i,r)}}}}]);n.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(){return{priority:-200,scope:!1,compile:function(n){var t=angular.element(n.children().children()[0]),i=t.attr("ng-class"),r="";return r=i?i.slice(0,-1)+",'ui-grid-tree-header-row': row.treeLevel > -1}":"{'ui-grid-tree-header-row': row.treeLevel > -1}",t.attr("ng-class",r),{pre:function(){},post:function(){}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.treeView",["ui.grid","ui.grid.treeBase"]);n.constant("uiGridTreeViewConstants",{featureName:"treeView",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}});n.service("uiGridTreeViewService",["$q","uiGridTreeViewConstants","uiGridTreeBaseConstants","uiGridTreeBaseService","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants",function(n,t,i,r){var u={initializeGrid:function(n,t){r.initializeGrid(n,t);n.treeView={};n.registerRowsProcessor(u.adjustSorting,60);var i={events:{treeView:{}},methods:{treeView:{}}};n.api.registerEventsFromObject(i.events);n.api.registerMethodsFromObject(i.methods)},defaultGridOptions:function(n){n.enableTreeView=n.enableTreeView!==!1},adjustSorting:function(n){var t=this;return t.columns.forEach(function(n){n.sort&&(n.sort.ignoreSort=!0)}),n}};return u}]);n.directive("uiGridTreeView",["uiGridTreeViewConstants","uiGridTreeViewService","$templateCache",function(n,t){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(n,i,r,u){u.grid.options.enableTreeView!==!1&&t.initializeGrid(u.grid,n)},post:function(){}}}}}])}(),function(){"use strict";var n=angular.module("ui.grid.validate",["ui.grid"]);n.service("uiGridValidateService",["$sce","$q","$http","i18nService","uiGridConstants",function(n,t,i,r){var u={validatorFactories:{},setExternalFactoryFunction:function(n){u.externalFactoryFunction=n},clearExternalFactory:function(){delete u.externalFactoryFunction},getValidatorFromExternalFactory:function(n,t){return u.externalFactoryFunction(n,t).validatorFactory(t)},getMessageFromExternalFactory:function(n,t){return u.externalFactoryFunction(n,t).messageFunction(t)},setValidator:function(n,t,i){u.validatorFactories[n]={validatorFactory:t,messageFunction:i}},getValidator:function(n,t){if(u.externalFactoryFunction){var i=u.getValidatorFromExternalFactory(n,t);if(i)return i}if(!u.validatorFactories[n])throw"Invalid validator name: "+n;return u.validatorFactories[n].validatorFactory(t)},getMessage:function(n,t){if(u.externalFactoryFunction){var i=u.getMessageFromExternalFactory(n,t);if(i)return i}return u.validatorFactories[n].messageFunction(t)},isInvalid:function(n,t){return n["$$invalid"+t.name]},setInvalid:function(n,t){n["$$invalid"+t.name]=!0},setValid:function(n,t){delete n["$$invalid"+t.name]},setError:function(n,t,i){n["$$errors"+t.name]||(n["$$errors"+t.name]={});n["$$errors"+t.name][i]=!0},clearError:function(n,t,i){n["$$errors"+t.name]&&i in n["$$errors"+t.name]&&delete n["$$errors"+t.name][i]},getErrorMessages:function(n,t){var i=[];return!n["$$errors"+t.name]||Object.keys(n["$$errors"+t.name]).length===0?i:(Object.keys(n["$$errors"+t.name]).sort().forEach(function(n){i.push(u.getMessage(n,t.validators[n]))}),i)},getFormattedErrors:function(t,i){var f="",e=u.getErrorMessages(t,i);if(e.length)return e.forEach(function(n){f+=n+"<br/>"}),n.trustAsHtml("<p><b>"+r.getSafeText("validate.error")+"<\/b><\/p>"+f)},getTitleFormattedErrors:function(t,i){var f="\n",e="",o=u.getErrorMessages(t,i);if(o.length)return o.forEach(function(n){e+=n+f}),n.trustAsHtml(r.getSafeText("validate.error")+f+e)},runValidators:function(n,i,r,f,e){var s,o,h;if(r!==f){if(typeof i.name=="undefined"||!i.name)throw new Error("colDef.name is required to perform validation");u.setValid(n,i);s=function(n,t,i){return function(o){o||(u.setInvalid(n,t),u.setError(n,t,i),e&&e.api.validate.raise.validationFailed(n,t,r,f))}};for(o in i.validators)u.clearError(n,i,o),h=u.getValidator(o,i.validators[o]),t.when(h(f,r,n,i)).then(s(n,i,o))}},createDefaultValidators:function(){u.setValidator("minLength",function(n){return function(t,i){return i===undefined||i===null||i===""?!0:i.length>=n}},function(n){return r.getSafeText("validate.minLength").replace("THRESHOLD",n)});u.setValidator("maxLength",function(n){return function(t,i){return i===undefined||i===null||i===""?!0:i.length<=n}},function(n){return r.getSafeText("validate.maxLength").replace("THRESHOLD",n)});u.setValidator("required",function(n){return function(t,i){return n?!(i===undefined||i===null||i===""):!0}},function(){return r.getSafeText("validate.required")})},initializeGrid:function(n,t){t.validate={isInvalid:u.isInvalid,getFormattedErrors:u.getFormattedErrors,getTitleFormattedErrors:u.getTitleFormattedErrors,runValidators:u.runValidators};var i={events:{validate:{validationFailed:function(){}}},methods:{validate:{isInvalid:function(n,i){return t.validate.isInvalid(n,i)},getErrorMessages:function(n,i){return t.validate.getErrorMessages(n,i)},getFormattedErrors:function(n,i){return t.validate.getFormattedErrors(n,i)},getTitleFormattedErrors:function(n,i){return t.validate.getTitleFormattedErrors(n,i)}}}};t.api.registerEventsFromObject(i.events);t.api.registerMethodsFromObject(i.methods);t.edit&&t.api.edit.on.afterCellEdit(n,function(n,i,r,u){t.validate.runValidators(n,i,r,u,t)});u.createDefaultValidators()}};return u}]);n.directive("uiGridValidate",["gridUtil","uiGridValidateService",function(n,t){return{priority:0,replace:!0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(n,i,r,u){t.initializeGrid(n,u.grid)},post:function(){}}}}}])}();angular.module("ui.grid").run(["$templateCache",function(n){"use strict";n.put("ui-grid/ui-grid-filter",'<div class="ui-grid-filter-container" ng-repeat="colFilter in col.filters" ng-class="{\'ui-grid-filter-cancel-button-hidden\' : colFilter.disableCancelFilterButton === true }"><div ng-if="colFilter.type !== \'select\'"><input type="text" class="ui-grid-filter-input ui-grid-filter-input-{{$index}}" ng-model="colFilter.term" ng-attr-placeholder="{{colFilter.placeholder || \'\'}}" aria-label="{{colFilter.ariaLabel || aria.defaultFilterLabel}}"><div role="button" class="ui-grid-filter-button" ng-click="removeFilter(colFilter, $index)" ng-if="!colFilter.disableCancelFilterButton" ng-disabled="colFilter.term === undefined || colFilter.term === null || colFilter.term === \'\'" ng-show="colFilter.term !== undefined && colFilter.term !== null && colFilter.term !== \'\'"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="aria.removeFilter">&nbsp;<\/i><\/div><\/div><div ng-if="colFilter.type === \'select\'"><select class="ui-grid-filter-select ui-grid-filter-input-{{$index}}" ng-model="colFilter.term" ng-attr-placeholder="{{colFilter.placeholder || aria.defaultFilterLabel}}" aria-label="{{colFilter.ariaLabel || \'\'}}" ng-options="option.value as option.label for option in colFilter.selectOptions"><option value=""><\/option><\/select><div role="button" class="ui-grid-filter-button-select" ng-click="removeFilter(colFilter, $index)" ng-if="!colFilter.disableCancelFilterButton" ng-disabled="colFilter.term === undefined || colFilter.term === null || colFilter.term === \'\'" ng-show="colFilter.term !== undefined && colFilter.term != null"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="aria.removeFilter">&nbsp;<\/i><\/div><\/div><\/div>');n.put("ui-grid/ui-grid-footer",'<div class="ui-grid-footer-panel ui-grid-footer-aggregates-row"><!-- tfooter --><div class="ui-grid-footer ui-grid-footer-viewport"><div class="ui-grid-footer-canvas"><div class="ui-grid-footer-cell-wrapper" ng-style="colContainer.headerCellWrapperStyle()"><div role="row" class="ui-grid-footer-cell-row"><div ui-grid-footer-cell role="gridcell" ng-repeat="col in colContainer.renderedColumns track by col.uid" col="col" render-index="$index" class="ui-grid-footer-cell ui-grid-clearfix"><\/div><\/div><\/div><\/div><\/div><\/div>');n.put("ui-grid/ui-grid-grid-footer",'<div class="ui-grid-footer-info ui-grid-grid-footer"><span>{{\'search.totalItems\' | t}} {{grid.rows.length}}<\/span> <span ng-if="grid.renderContainers.body.visibleRowCache.length !== grid.rows.length" class="ngLabel">({{"search.showingItems" | t}} {{grid.renderContainers.body.visibleRowCache.length}})<\/span><\/div>');n.put("ui-grid/ui-grid-group-panel",'<div class="ui-grid-group-panel"><div ui-t="groupPanel.description" class="description" ng-show="groupings.length == 0"><\/div><ul ng-show="groupings.length > 0" class="ngGroupList"><li class="ngGroupItem" ng-repeat="group in configGroups"><span class="ngGroupElement"><span class="ngGroupName">{{group.displayName}} <span ng-click="removeGroup($index)" class="ngRemoveGroup">x<\/span><\/span> <span ng-hide="$last" class="ngGroupArrow"><\/span><\/span><\/li><\/ul><\/div>');n.put("ui-grid/ui-grid-header",'<div role="rowgroup" class="ui-grid-header"><!-- theader --><div class="ui-grid-top-panel"><div class="ui-grid-header-viewport"><div class="ui-grid-header-canvas"><div class="ui-grid-header-cell-wrapper" ng-style="colContainer.headerCellWrapperStyle()"><div role="row" class="ui-grid-header-cell-row"><div class="ui-grid-header-cell ui-grid-clearfix" ng-repeat="col in colContainer.renderedColumns track by col.uid" ui-grid-header-cell col="col" render-index="$index"><\/div><\/div><\/div><\/div><\/div><\/div><\/div>');n.put("ui-grid/ui-grid-menu-button",'<div class="ui-grid-menu-button"><div role="button" ui-grid-one-bind-id-grid="\'grid-menu\'" class="ui-grid-icon-container" ng-click="toggleMenu()" aria-haspopup="true"><i class="ui-grid-icon-menu" ui-grid-one-bind-aria-label="i18n.aria.buttonLabel">&nbsp;<\/i><\/div><div ui-grid-menu menu-items="menuItems"><\/div><\/div>');n.put("ui-grid/ui-grid-no-header",'<div class="ui-grid-top-panel"><\/div>');n.put("ui-grid/ui-grid-row","<div ng-repeat=\"(colRenderIndex, col) in colContainer.renderedColumns track by col.uid\" ui-grid-one-bind-id-grid=\"rowRenderIndex + '-' + col.uid + '-cell'\" class=\"ui-grid-cell\" ng-class=\"{ 'ui-grid-row-header-cell': col.isRowHeader }\" role=\"{{col.isRowHeader ? 'rowheader' : 'gridcell'}}\" ui-grid-cell><\/div>");n.put("ui-grid/ui-grid",'<div ui-i18n="en" class="ui-grid"><!-- TODO (c0bra): add "scoped" attr here, eventually? --><style ui-grid-style>.grid{{ grid.id }} {\n      /* Styles for the grid */\n    }\n\n    .grid{{ grid.id }} .ui-grid-row, .grid{{ grid.id }} .ui-grid-cell, .grid{{ grid.id }} .ui-grid-cell .ui-grid-vertical-bar {\n      height: {{ grid.options.rowHeight }}px;\n    }\n\n    .grid{{ grid.id }} .ui-grid-row:last-child .ui-grid-cell {\n      border-bottom-width: {{ ((grid.getTotalRowHeight() < grid.getViewportHeight()) && \'1\') || \'0\' }}px;\n    }\n\n    {{ grid.verticalScrollbarStyles }}\n    {{ grid.horizontalScrollbarStyles }}\n\n    /*\n    .ui-grid[dir=rtl] .ui-grid-viewport {\n      padding-left: {{ grid.verticalScrollbarWidth }}px;\n    }\n    */\n\n    {{ grid.customStyles }}<\/style><div class="ui-grid-contents-wrapper"><div ui-grid-menu-button ng-if="grid.options.enableGridMenu"><\/div><div ng-if="grid.hasLeftContainer()" style="width: 0" ui-grid-pinned-container="\'left\'"><\/div><div ui-grid-render-container container-id="\'body\'" col-container-name="\'body\'" row-container-name="\'body\'" bind-scroll-horizontal="true" bind-scroll-vertical="true" enable-horizontal-scrollbar="grid.options.enableHorizontalScrollbar" enable-vertical-scrollbar="grid.options.enableVerticalScrollbar"><\/div><div ng-if="grid.hasRightContainer()" style="width: 0" ui-grid-pinned-container="\'right\'"><\/div><div ui-grid-grid-footer ng-if="grid.options.showGridFooter"><\/div><div ui-grid-column-menu ng-if="grid.options.enableColumnMenus"><\/div><div ng-transclude><\/div><\/div><\/div>');n.put("ui-grid/uiGridCell",'<div class="ui-grid-cell-contents" title="TOOLTIP">{{COL_FIELD CUSTOM_FILTERS}}<\/div>');n.put("ui-grid/uiGridColumnMenu",'<div class="ui-grid-column-menu"><div ui-grid-menu menu-items="menuItems"><!-- <div class="ui-grid-column-menu">\n    <div class="inner" ng-show="menuShown">\n      <ul>\n        <div ng-show="grid.options.enableSorting">\n          <li ng-click="sortColumn($event, asc)" ng-class="{ \'selected\' : col.sort.direction == asc }"><i class="ui-grid-icon-sort-alt-up"><\/i> Sort Ascending<\/li>\n          <li ng-click="sortColumn($event, desc)" ng-class="{ \'selected\' : col.sort.direction == desc }"><i class="ui-grid-icon-sort-alt-down"><\/i> Sort Descending<\/li>\n          <li ng-show="col.sort.direction" ng-click="unsortColumn()"><i class="ui-grid-icon-cancel"><\/i> Remove Sort<\/li>\n        <\/div>\n      <\/ul>\n    <\/div>\n  <\/div> --><\/div><\/div>');n.put("ui-grid/uiGridFooterCell",'<div class="ui-grid-cell-contents" col-index="renderIndex"><div>{{ col.getAggregationText() + ( col.getAggregationValue() CUSTOM_FILTERS ) }}<\/div><\/div>');n.put("ui-grid/uiGridHeaderCell",'<div role="columnheader" ng-class="{ \'sortable\': sortable }" ui-grid-one-bind-aria-labelledby-grid="col.uid + \'-header-text \' + col.uid + \'-sortdir-text\'" aria-sort="{{col.sort.direction == asc ? \'ascending\' : ( col.sort.direction == desc ? \'descending\' : (!col.sort.direction ? \'none\' : \'other\'))}}"><div role="button" tabindex="0" class="ui-grid-cell-contents ui-grid-header-cell-primary-focus" col-index="renderIndex" title="TOOLTIP"><span class="ui-grid-header-cell-label" ui-grid-one-bind-id-grid="col.uid + \'-header-text\'">{{ col.displayName CUSTOM_FILTERS }}<\/span> <span ui-grid-one-bind-id-grid="col.uid + \'-sortdir-text\'" ui-grid-visible="col.sort.direction" aria-label="{{getSortDirectionAriaLabel()}}"><i ng-class="{ \'ui-grid-icon-up-dir\': col.sort.direction == asc, \'ui-grid-icon-down-dir\': col.sort.direction == desc, \'ui-grid-icon-blank\': !col.sort.direction }" title="{{isSortPriorityVisible() ? i18n.headerCell.priority + \' \' + col.sort.priority : null}}" aria-hidden="true"><\/i> <sub ui-grid-visible="isSortPriorityVisible()" class="ui-grid-sort-priority-number">{{col.sort.priority}}<\/sub><\/span><\/div><div role="button" tabindex="0" ui-grid-one-bind-id-grid="col.uid + \'-menu-button\'" class="ui-grid-column-menu-button" ng-if="grid.options.enableColumnMenus && !col.isRowHeader  && col.colDef.enableColumnMenu !== false" ng-click="toggleMenu($event)" ng-class="{\'ui-grid-column-menu-button-last-col\': isLastCol}" ui-grid-one-bind-aria-label="i18n.headerCell.aria.columnMenuButtonLabel" aria-haspopup="true"><i class="ui-grid-icon-angle-down" aria-hidden="true">&nbsp;<\/i><\/div><div ui-grid-filter><\/div><\/div>');n.put("ui-grid/uiGridMenu",'<div class="ui-grid-menu" ng-if="shown"><style ui-grid-style>{{dynamicStyles}}<\/style><div class="ui-grid-menu-mid" ng-show="shownMid"><div class="ui-grid-menu-inner"><button type="button" ng-focus="focus=true" ng-blur="focus=false" class="ui-grid-menu-close-button" ng-class="{\'ui-grid-sr-only\': (!focus)}"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="i18n.close"><\/i><\/button><ul role="menu" class="ui-grid-menu-items"><li ng-repeat="item in menuItems" role="menuitem" ui-grid-menu-item ui-grid-one-bind-id="\'menuitem-\'+$index" action="item.action" name="item.title" active="item.active" icon="item.icon" shown="item.shown" context="item.context" template-url="item.templateUrl" leave-open="item.leaveOpen" screen-reader-only="item.screenReaderOnly"><\/li><\/ul><\/div><\/div><\/div>');n.put("ui-grid/uiGridMenuItem",'<button type="button" class="ui-grid-menu-item" ng-click="itemAction($event, title)" ng-show="itemShown()" ng-class="{ \'ui-grid-menu-item-active\': active(), \'ui-grid-sr-only\': (!focus && screenReaderOnly) }" aria-pressed="{{active()}}" tabindex="0" ng-focus="focus=true" ng-blur="focus=false"><i ng-class="icon" aria-hidden="true">&nbsp;<\/i> {{ name }}<\/button>');n.put("ui-grid/uiGridRenderContainer","<div role=\"grid\" ui-grid-one-bind-id-grid=\"'grid-container'\" class=\"ui-grid-render-container\" ng-style=\"{ 'margin-left': colContainer.getMargin('left') + 'px', 'margin-right': colContainer.getMargin('right') + 'px' }\"><!-- All of these dom elements are replaced in place --><div ui-grid-header><\/div><div ui-grid-viewport><\/div><div ng-if=\"colContainer.needsHScrollbarPlaceholder()\" class=\"ui-grid-scrollbar-placeholder\" ng-style=\"{height:colContainer.grid.scrollbarHeight + 'px'}\"><\/div><ui-grid-footer ng-if=\"grid.options.showColumnFooter\"><\/ui-grid-footer><\/div>");n.put("ui-grid/uiGridViewport",'<div role="rowgroup" class="ui-grid-viewport" ng-style="colContainer.getViewportStyle()"><!-- tbody --><div class="ui-grid-canvas"><div ng-repeat="(rowRenderIndex, row) in rowContainer.renderedRows track by $index" class="ui-grid-row" ng-style="Viewport.rowStyle(rowRenderIndex)"><div role="row" ui-grid-row="row" row-render-index="rowRenderIndex"><\/div><\/div><\/div><\/div>');n.put("ui-grid/cellEditor",'<div><form name="inputForm"><input type="INPUT_TYPE" ng-class="\'colt\' + col.uid" ui-grid-editor ng-model="MODEL_COL_FIELD"><\/form><\/div>');n.put("ui-grid/dropdownEditor",'<div><form name="inputForm"><select ng-class="\'colt\' + col.uid" ui-grid-edit-dropdown ng-model="MODEL_COL_FIELD" ng-options="field[editDropdownIdLabel] as field[editDropdownValueLabel] CUSTOM_FILTERS for field in editDropdownOptionsArray"><\/select><\/form><\/div>');n.put("ui-grid/fileChooserEditor",'<div><form name="inputForm"><input ng-class="\'colt\' + col.uid" ui-grid-edit-file-chooser type="file" id="files" name="files[]" ng-model="MODEL_COL_FIELD"><\/form><\/div>');n.put("ui-grid/expandableRow",'<div ui-grid-expandable-row ng-if="expandableRow.shouldRenderExpand()" class="expandableRow" style="float:left; margin-top: 1px; margin-bottom: 1px" ng-style="{width: (grid.renderContainers.body.getCanvasWidth()) + \'px\', height: row.expandedRowHeight + \'px\'}"><\/div>');n.put("ui-grid/expandableRowHeader",'<div class="ui-grid-row-header-cell ui-grid-expandable-buttons-cell"><div class="ui-grid-cell-contents"><i ng-class="{ \'ui-grid-icon-plus-squared\' : !row.isExpanded, \'ui-grid-icon-minus-squared\' : row.isExpanded }" ng-click="grid.api.expandable.toggleRowExpansion(row.entity)"><\/i><\/div><\/div>');n.put("ui-grid/expandableScrollFiller","<div ng-if=\"expandableRow.shouldRenderFiller()\" ng-class=\"{scrollFiller:true, scrollFillerClass:(colContainer.name === 'body')}\" ng-style=\"{ width: (grid.getViewportWidth()) + 'px', height: row.expandedRowHeight + 2 + 'px', 'margin-left': grid.options.rowHeader.rowHeaderWidth + 'px' }\"><i class=\"ui-grid-icon-spin5 ui-grid-animate-spin\" ng-style=\"{'margin-top': ( row.expandedRowHeight/2 - 5) + 'px', 'margin-left' : ((grid.getViewportWidth() - grid.options.rowHeader.rowHeaderWidth)/2 - 5) + 'px'}\"><\/i><\/div>");n.put("ui-grid/expandableTopRowHeader",'<div class="ui-grid-row-header-cell ui-grid-expandable-buttons-cell"><div class="ui-grid-cell-contents"><i ng-class="{ \'ui-grid-icon-plus-squared\' : !grid.expandable.expandedAll, \'ui-grid-icon-minus-squared\' : grid.expandable.expandedAll }" ng-click="grid.api.expandable.toggleAllRows()"><\/i><\/div><\/div>');n.put("ui-grid/csvLink",'<span class="ui-grid-exporter-csv-link-span"><a href="data:text/csv;charset=UTF-8,CSV_CONTENT" download="FILE_NAME">LINK_LABEL<\/a><\/span>');n.put("ui-grid/importerMenuItem",'<li class="ui-grid-menu-item"><form><input class="ui-grid-importer-file-chooser" type="file" id="files" name="files[]"><\/form><\/li>');n.put("ui-grid/importerMenuItemContainer","<div ui-grid-importer-menu-item><\/div>");n.put("ui-grid/pagination",'<div role="contentinfo" class="ui-grid-pager-panel" ui-grid-pager ng-show="grid.options.enablePaginationControls"><div role="navigation" class="ui-grid-pager-container"><div role="menubar" class="ui-grid-pager-control"><button type="button" role="menuitem" class="ui-grid-pager-first" ui-grid-one-bind-title="aria.pageToFirst" ui-grid-one-bind-aria-label="aria.pageToFirst" ng-click="pageFirstPageClick()" ng-disabled="cantPageBackward()"><div class="first-triangle"><div class="first-bar"><\/div><\/div><\/button> <button type="button" role="menuitem" class="ui-grid-pager-previous" ui-grid-one-bind-title="aria.pageBack" ui-grid-one-bind-aria-label="aria.pageBack" ng-click="pagePreviousPageClick()" ng-disabled="cantPageBackward()"><div class="first-triangle prev-triangle"><\/div><\/button> <input type="number" ui-grid-one-bind-title="aria.pageSelected" ui-grid-one-bind-aria-label="aria.pageSelected" class="ui-grid-pager-control-input" ng-model="grid.options.paginationCurrentPage" min="1" max="{{ paginationApi.getTotalPages() }}" required> <span class="ui-grid-pager-max-pages-number" ng-show="paginationApi.getTotalPages() > 0"><abbr ui-grid-one-bind-title="paginationOf">/<\/abbr> {{ paginationApi.getTotalPages() }}<\/span> <button type="button" role="menuitem" class="ui-grid-pager-next" ui-grid-one-bind-title="aria.pageForward" ui-grid-one-bind-aria-label="aria.pageForward" ng-click="pageNextPageClick()" ng-disabled="cantPageForward()"><div class="last-triangle next-triangle"><\/div><\/button> <button type="button" role="menuitem" class="ui-grid-pager-last" ui-grid-one-bind-title="aria.pageToLast" ui-grid-one-bind-aria-label="aria.pageToLast" ng-click="pageLastPageClick()" ng-disabled="cantPageToLast()"><div class="last-triangle"><div class="last-bar"><\/div><\/div><\/button><\/div><div class="ui-grid-pager-row-count-picker" ng-if="grid.options.paginationPageSizes.length > 1"><select ui-grid-one-bind-aria-labelledby-grid="\'items-per-page-label\'" ng-model="grid.options.paginationPageSize" ng-options="o as o for o in grid.options.paginationPageSizes"><\/select><span ui-grid-one-bind-id-grid="\'items-per-page-label\'" class="ui-grid-pager-row-count-label">&nbsp;{{sizesLabel}}<\/span><\/div><span ng-if="grid.options.paginationPageSizes.length <= 1" class="ui-grid-pager-row-count-label">{{grid.options.paginationPageSize}}&nbsp;{{sizesLabel}}<\/span><\/div><div class="ui-grid-pager-count-container"><div class="ui-grid-pager-count"><span ng-show="grid.options.totalItems > 0">{{showingLow}} <abbr ui-grid-one-bind-title="paginationThrough">-<\/abbr> {{showingHigh}} {{paginationOf}} {{grid.options.totalItems}} {{totalItemsLabel}}<\/span><\/div><\/div><\/div>');n.put("ui-grid/columnResizer",'<div ui-grid-column-resizer ng-if="grid.options.enableColumnResizing" class="ui-grid-column-resizer" col="col" position="right" render-index="renderIndex" unselectable="on"><\/div>');n.put("ui-grid/gridFooterSelectedItems",'<span ng-if="grid.selection.selectedCount !== 0 && grid.options.enableFooterTotalSelected">({{"search.selectedItems" | t}} {{grid.selection.selectedCount}})<\/span>');n.put("ui-grid/selectionHeaderCell",'<div><!-- <div class="ui-grid-vertical-bar">&nbsp;<\/div> --><div class="ui-grid-cell-contents" col-index="renderIndex"><ui-grid-selection-select-all-buttons ng-if="grid.options.enableSelectAll"><\/ui-grid-selection-select-all-buttons><\/div><\/div>');n.put("ui-grid/selectionRowHeader",'<div class="ui-grid-disable-selection"><div class="ui-grid-cell-contents"><ui-grid-selection-row-header-buttons><\/ui-grid-selection-row-header-buttons><\/div><\/div>');n.put("ui-grid/selectionRowHeaderButtons",'<div class="ui-grid-selection-row-header-buttons ui-grid-icon-ok" ng-class="{\'ui-grid-row-selected\': row.isSelected}" ng-click="selectButtonClick(row, $event)">&nbsp;<\/div>');n.put("ui-grid/selectionSelectAllButtons",'<div class="ui-grid-selection-row-header-buttons ui-grid-icon-ok" ng-class="{\'ui-grid-all-selected\': grid.selection.selectAll}" ng-click="headerButtonClick($event)"><\/div>');n.put("ui-grid/treeBaseExpandAllButtons",'<div class="ui-grid-tree-base-row-header-buttons" ng-class="{\'ui-grid-icon-minus-squared\': grid.treeBase.numberLevels > 0 && grid.treeBase.expandAll, \'ui-grid-icon-plus-squared\': grid.treeBase.numberLevels > 0 && !grid.treeBase.expandAll}" ng-click="headerButtonClick($event)"><\/div>');n.put("ui-grid/treeBaseHeaderCell",'<div><div class="ui-grid-cell-contents" col-index="renderIndex"><ui-grid-tree-base-expand-all-buttons><\/ui-grid-tree-base-expand-all-buttons><\/div><\/div>');n.put("ui-grid/treeBaseRowHeader",'<div class="ui-grid-cell-contents"><ui-grid-tree-base-row-header-buttons><\/ui-grid-tree-base-row-header-buttons><\/div>');n.put("ui-grid/treeBaseRowHeaderButtons","<div class=\"ui-grid-tree-base-row-header-buttons\" ng-class=\"{'ui-grid-tree-base-header': row.treeLevel > -1 }\" ng-click=\"treeButtonClick(row, $event)\"><i ng-class=\"{'ui-grid-icon-minus-squared': ( ( grid.options.showTreeExpandNoChildren && row.treeLevel > -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'expanded', 'ui-grid-icon-plus-squared': ( ( grid.options.showTreeExpandNoChildren && row.treeLevel > -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'collapsed'}\" ng-style=\"{'padding-left': grid.options.treeIndent * row.treeLevel + 'px'}\"><\/i> &nbsp;<\/div>");n.put("ui-grid/cellTitleValidator",'<div class="ui-grid-cell-contents" ng-class="{invalid:grid.validate.isInvalid(row.entity,col.colDef)}" title="{{grid.validate.getTitleFormattedErrors(row.entity,col.colDef)}}">{{COL_FIELD CUSTOM_FILTERS}}<\/div>');n.put("ui-grid/cellTooltipValidator",'<div class="ui-grid-cell-contents" ng-class="{invalid:grid.validate.isInvalid(row.entity,col.colDef)}" tooltip-html-unsafe="{{grid.validate.getFormattedErrors(row.entity,col.colDef)}}" tooltip-enable="grid.validate.isInvalid(row.entity,col.colDef)" tooltip-append-to-body="true" tooltip-placement="top" title="TOOLTIP">{{COL_FIELD CUSTOM_FILTERS}}<\/div>')}]);angular.module("ui.alias",[]).config(["$compileProvider","uiAliasConfig",function(n,t){"use strict";t=t||{};angular.forEach(t,function(t,i){angular.isString(t)&&(t={replace:!0,template:t});n.directive(i,function(){return t})})}]);angular.module("ui.event",[]).directive("uiEvent",["$parse",function(n){"use strict";return function(t,i,r){var u=t.$eval(r.uiEvent);angular.forEach(u,function(r,u){var f=n(r);i.bind(u,function(n){var i=Array.prototype.slice.call(arguments);i=i.splice(1);f(t,{$event:n,$params:i});t.$$phase||t.$apply()})})}}]);angular.module("ui.format",[]).filter("format",function(){"use strict";return function(n,t){var i=n,r,u;return angular.isString(i)&&t!==undefined&&(angular.isArray(t)||angular.isObject(t)||(t=[t]),angular.isArray(t)?(r=t.length,u=function(n,i){return i=parseInt(i,10),i>=0&&i<r?t[i]:n},i=i.replace(/\$([0-9]+)/g,u)):angular.forEach(t,function(n,t){i=i.split(":"+t).join(n)})),i}});angular.module("ui.highlight",[]).filter("highlight",function(){"use strict";return function(n,t,i){return n&&(t||angular.isNumber(t))?(n=n.toString(),t=t.toString(),i?n.split(t).join('<span class="ui-match">'+t+"<\/span>"):n.replace(new RegExp(t,"gi"),'<span class="ui-match">$&<\/span>')):n}});angular.module("ui.include",[]).directive("uiInclude",["$http","$templateCache","$anchorScroll","$compile",function(n,t,i,r){"use strict";return{restrict:"ECA",terminal:!0,compile:function(u,f){var o=f.uiInclude||f.src,s=f.fragment||"",h=f.onload||"",e=f.autoscroll;return function(u,f){function v(){var v=++l,y=u.$eval(o),p=u.$eval(s);y?n.get(y,{cache:t}).success(function(n){if(v===l){c&&c.$destroy();c=u.$new();var t;t=p?angular.element("<div/>").html(n).find(p):angular.element("<div/>").html(n).contents();f.html(t);r(t)(c);angular.isDefined(e)&&(!e||u.$eval(e))&&i();c.$emit("$includeContentLoaded");u.$eval(h)}}).error(function(){v===l&&a()}):a()}var l=0,c,a=function(){c&&(c.$destroy(),c=null);f.html("")};u.$watch(s,v);u.$watch(o,v)}}}}]);angular.module("ui.indeterminate",[]).directive("uiIndeterminate",[function(){"use strict";return{compile:function(n,t){return!t.type||t.type.toLowerCase()!=="checkbox"?angular.noop:function(n,t,i){n.$watch(i.uiIndeterminate,function(n){t[0].indeterminate=!!n})}}}}]);angular.module("ui.inflector",[]).filter("inflector",function(){"use strict";function n(n){return n=n.replace(/([A-Z])|([\-|\_])/g,function(n,t){return" "+(t||"")}),n.replace(/\s\s+/g," ").trim().toLowerCase().split(" ")}function t(n){var t=[];return angular.forEach(n,function(n){t.push(n.charAt(0).toUpperCase()+n.substr(1))}),t}var i={humanize:function(i){return t(n(i)).join(" ")},underscore:function(t){return n(t).join("_")},variable:function(i){return i=n(i),i[0]+t(i.slice(1)).join("")}};return function(n,t){return t!==!1&&angular.isString(n)?(t=t||"humanize",i[t](n)):n}});angular.module("ui.jq",[]).value("uiJqConfig",{}).directive("uiJq",["uiJqConfig","$timeout",function(n,t){"use strict";return{restrict:"A",compile:function(i,r){if(!angular.isFunction(i[r.uiJq]))throw new Error('ui-jq: The "'+r.uiJq+'" function does not exist');var u=n&&n[r.uiJq];return function(n,i,r){function e(){var t=[];return r.uiOptions?(t=n.$eval("["+r.uiOptions+"]"),angular.isObject(u)&&angular.isObject(t[0])&&(t[0]=angular.extend({},u,t[0]))):u&&(t=[u]),t}function f(){t(function(){i[r.uiJq].apply(i,e())},0,!1)}r.ngModel&&i.is("select,input,textarea")&&i.bind("change",function(){i.trigger("input")});r.uiRefresh&&n.$watch(r.uiRefresh,function(){f()});f()}}}}]);angular.module("ui.keypress",[]).factory("keypressHelper",["$parse",function(n){"use strict";var t={8:"backspace",9:"tab",13:"enter",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete"},i=function(n){return n.charAt(0).toUpperCase()+n.slice(1)};return function(r,u,f,e){var o,s=[];o=u.$eval(e["ui"+i(r)]);angular.forEach(o,function(t,i){var r,u;u=n(t);angular.forEach(i.split(" "),function(n){r={expression:u,keys:{}};angular.forEach(n.split("-"),function(n){r.keys[n]=!0});s.push(r)})});f.bind(r,function(n){var e=!!(n.metaKey&&!n.ctrlKey),o=!!n.altKey,h=!!n.ctrlKey,f=!!n.shiftKey,i=n.keyCode;r==="keypress"&&!f&&i>=97&&i<=122&&(i=i-32);angular.forEach(s,function(r){var s=r.keys[t[i]]||r.keys[i.toString()],c=!!r.keys.meta,l=!!r.keys.alt,a=!!r.keys.ctrl,v=!!r.keys.shift;s&&c===e&&l===o&&a===h&&v===f&&u.$apply(function(){r.expression(u,{$event:n})})})})}}]);angular.module("ui.keypress").directive("uiKeydown",["keypressHelper",function(n){"use strict";return{link:function(t,i,r){n("keydown",t,i,r)}}}]);angular.module("ui.keypress").directive("uiKeypress",["keypressHelper",function(n){"use strict";return{link:function(t,i,r){n("keypress",t,i,r)}}}]);angular.module("ui.keypress").directive("uiKeyup",["keypressHelper",function(n){"use strict";return{link:function(t,i,r){n("keyup",t,i,r)}}}]);angular.module("ui.mask",[]).value("uiMaskConfig",{maskDefinitions:{"9":/\d/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},clearOnBlur:!0}).directive("uiMask",["uiMaskConfig","$parse",function(n,t){"use strict";return{priority:100,require:"ngModel",restrict:"A",compile:function(){var i=n;return function(n,r,u,f){function vt(n){return angular.isDefined(n)?(ti(n),!l)?lt():(bt(),kt(),!0):lt()}function yt(n){angular.isDefined(n)&&(c=n,l&&a())}function pt(n){return l?(e=p(n||""),s=ut(e),f.$setValidity("mask",s),s&&e.length?w(e):undefined):n}function wt(n){return l?(e=p(n||""),s=ut(e),f.$viewValue=e.length?w(e):"",f.$setValidity("mask",s),e===""&&u.required&&f.$setValidity("required",!f.$error.required),s?e:undefined):n}function lt(){return l=!1,dt(),angular.isDefined(ht)?r.attr("placeholder",ht):r.removeAttr("placeholder"),angular.isDefined(ct)?r.attr("maxlength",ct):r.removeAttr("maxlength"),r.val(f.$modelValue),f.$viewValue=f.$modelValue,!1}function bt(){e=tt=p(f.$viewValue||"");g=nt=w(e);s=ut(e);var n=s&&e.length?g:"";u.maxlength&&r.attr("maxlength",o[o.length-1]*2);r.attr("placeholder",c);r.val(n);f.$viewValue=n}function kt(){v||(r.bind("blur",at),r.bind("mousedown mouseup",b),r.bind("input keyup click focus",a),v=!0)}function dt(){v&&(r.unbind("blur",at),r.unbind("mousedown",b),r.unbind("mouseup",b),r.unbind("input",a),r.unbind("keyup",a),r.unbind("click",a),r.unbind("focus",a),v=!1)}function ut(n){return n.length?n.length>=d:!0}function p(n){var i="",t=k.slice();return n=n.toString(),angular.forEach(st,function(t){n=n.replace(t,"")}),angular.forEach(n.split(""),function(n){t.length&&t[0].test(n)&&(i+=n,t.shift())}),i}function w(n){var t="",i=o.slice();return angular.forEach(c.split(""),function(r,u){n.length&&u===i[0]?(t+=n.charAt(0)||"_",n=n.substr(1),i.shift()):t+=r}),t}function gt(n){var t=u.placeholder;return typeof t!="undefined"&&t[n]?t[n]:"_"}function ni(){return c.replace(/[_]+/g,"_").replace(/([^_]+)([a-zA-Z0-9])([^_])/g,"$1$2_$3").split("_")}function ti(n){var t=0;if(o=[],k=[],c="",typeof n=="string"){d=0;var i=!1,r=0,u=n.split("");angular.forEach(u,function(n,u){h.maskDefinitions[n]?(o.push(t),c+=gt(u-r),k.push(h.maskDefinitions[n]),t++,i||d++):n==="?"?(i=!0,r++):(c+=n,t++)})}o.push(o.slice().pop()+1);st=ni();l=o.length>1?!0:!1}function at(){h.clearOnBlur&&(it=0,y=0,s&&e.length!==0||(g="",r.val(""),n.$apply(function(){f.$setViewValue("")})))}function b(n){n.type==="mousedown"?r.bind("mouseout",ft):r.unbind("mouseout",ft)}function ft(){y=ot(this);r.unbind("mouseout",ft)}function a(t){var u,s,g;if(t=t||{},u=t.which,s=t.type,u!==16&&u!==91){var c=r.val(),v=nt,b,e=p(c),lt=tt,rt=!1,i=ii(this)||0,ut=it||0,ft=i-ut,h=o[0],l=o[e.length]||o.slice().shift(),a=y||0,at=ot(this)>0,st=a>0,ht=c.length>v.length||a&&c.length>v.length-a,k=c.length<v.length||a&&c.length===v.length-a,vt=u>=37&&u<=40&&t.shiftKey,yt=u===37,ct=u===8||s!=="keyup"&&k&&ft===-1,pt=u===46||s!=="keyup"&&k&&ft===0&&!st,d=(yt||ct||s==="click")&&i>h;if(y=ot(this),!vt&&(!at||s!=="click"&&s!=="keyup")){if(s==="input"&&k&&!st&&e===lt){while(ct&&i>h&&!et(i))i--;while(pt&&i<l&&o.indexOf(i)===-1)i++;g=o.indexOf(i);e=e.substring(0,g)+e.substring(g+1);rt=!0}for(b=w(e),nt=b,tt=e,r.val(b),rt&&n.$apply(function(){f.$setViewValue(e)}),ht&&i<=h&&(i=h+1),d&&i--,i=i>l?l:i<h?h:i;!et(i)&&i>h&&i<l;)i+=d?-1:1;(d&&i<l||ht&&!et(ut))&&i++;it=i;ri(this,i)}}}function et(n){return o.indexOf(n)>-1}function ii(n){if(!n)return 0;if(n.selectionStart!==undefined)return n.selectionStart;if(document.selection){n.focus();var t=document.selection.createRange();return t.moveStart("character",n.value?-n.value.length:0),t.text.length}return 0}function ri(n,t){if(!n)return 0;if(n.offsetWidth!==0&&n.offsetHeight!==0)if(n.setSelectionRange)n.focus(),n.setSelectionRange(t,t);else if(n.createTextRange){var i=n.createTextRange();i.collapse(!0);i.moveEnd("character",t);i.moveStart("character",t);i.select()}}function ot(n){return n?n.selectionStart!==undefined?n.selectionEnd-n.selectionStart:document.selection?document.selection.createRange().text.length:0:0}var l=!1,v=!1,o,k,c,st,d,e,g,s,ht=u.placeholder,ct=u.maxlength,nt,tt,it,y,h={},rt;u.uiOptions?(h=n.$eval("["+u.uiOptions+"]"),angular.isObject(h[0])&&(h=function(n,t){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]===undefined?t[i]=angular.copy(n[i]):angular.extend(t[i],n[i]));return t}(i,h[0]))):h=i;u.$observe("uiMask",vt);u.$observe("placeholder",yt);rt=!1;u.$observe("modelViewValue",function(n){n==="true"&&(rt=!0)});n.$watch(u.ngModel,function(i){if(rt&&i){var r=t(u.ngModel);r.assign(n,f.$viewValue)}});f.$formatters.push(pt);f.$parsers.push(wt);r.bind("mousedown mouseup",b);Array.prototype.indexOf||(Array.prototype.indexOf=function(n){var u,r,t,i;if(this===null)throw new TypeError;if((u=Object(this),r=u.length>>>0,r===0)||(t=0,arguments.length>1&&(t=Number(arguments[1]),t!==t?t=0:t!==0&&t!==Infinity&&t!==-Infinity&&(t=(t>0||-1)*Math.floor(Math.abs(t)))),t>=r))return-1;for(i=t>=0?t:Math.max(r-Math.abs(t),0);i<r;i++)if(i in u&&u[i]===n)return i;return-1})}}}}]);angular.module("ui.reset",[]).value("uiResetConfig",null).directive("uiReset",["uiResetConfig",function(n){"use strict";var t=null;return n!==undefined&&(t=n),{require:"ngModel",link:function(n,i,r,u){var f;f=angular.element('<a class="ui-reset" />');i.wrap('<span class="ui-resetwrap" />').after(f);f.bind("click",function(i){i.preventDefault();n.$apply(function(){r.uiReset?u.$setViewValue(n.$eval(r.uiReset)):u.$setViewValue(t);u.$render()})})}}}]);angular.module("ui.route",[]).directive("uiRoute",["$location","$parse",function(n,t){"use strict";return{restrict:"AC",scope:!0,compile:function(i,r){var u;if(r.uiRoute)u="uiRoute";else if(r.ngHref)u="ngHref";else if(r.href)u="href";else throw new Error("uiRoute missing a route or href property on "+i[0]);return function(i,r,f){function o(t){var r=t.indexOf("#");r>-1&&(t=t.substr(r+1));e=function(){s(i,n.path().indexOf(t)>-1)};e()}function h(t){var r=t.indexOf("#");r>-1&&(t=t.substr(r+1));e=function(){var r=new RegExp("^"+t+"$",["i"]);s(i,r.test(n.path()))};e()}var s=t(f.ngModel||f.routeModel||"$uiRoute").assign,e=angular.noop;switch(u){case"uiRoute":f.uiRoute?h(f.uiRoute):f.$observe("uiRoute",h);break;case"ngHref":f.ngHref?o(f.ngHref):f.$observe("ngHref",o);break;case"href":o(f.href)}i.$on("$routeChangeSuccess",function(){e()});i.$on("$stateChangeSuccess",function(){e()})}}}}]);angular.module("ui.scroll.jqlite",["ui.scroll"]).service("jqLiteExtras",["$log","$window",function(n,t){"use strict";return{registerFor:function(n){var i,u,s,r,f,e,o;return u=angular.element.prototype.css,n.prototype.css=function(n,t){var i,r;return r=this,i=r[0],(!i||i.nodeType===3||i.nodeType===8||!i.style)?void 0:u.call(r,n,t)},e=function(n){return n&&n.document&&n.location&&n.alert&&n.setInterval},o=function(n,t,i){var r,u,s,o,f;return r=n[0],f={top:["scrollTop","pageYOffset","scrollLeft"],left:["scrollLeft","pageXOffset","scrollTop"]}[t],u=f[0],o=f[1],s=f[2],e(r)?angular.isDefined(i)?r.scrollTo(n[s].call(n),i):o in r?r[o]:r.document.documentElement[u]:angular.isDefined(i)?r[u]=i:r[u]},t.getComputedStyle?(r=function(n){return t.getComputedStyle(n,null)},i=function(n,t){return parseFloat(t)}):(r=function(n){return n.currentStyle},i=function(n,t){var f,e,o,s,i,u,r;return f=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,s=new RegExp("^("+f+")(?!px)[a-z%]+$","i"),s.test(t)?(r=n.style,e=r.left,i=n.runtimeStyle,u=i&&i.left,i&&(i.left=r.left),r.left=t,o=r.pixelLeft,r.left=e,u&&(i.left=u),o):parseFloat(t)}),s=function(n,t){var f,c,l,a,v,u,o,s,y,p,w,b,h;return e(n)?(f=document.documentElement[{height:"clientHeight",width:"clientWidth"}[t]],{base:f,padding:0,border:0,margin:0}):(h={width:[n.offsetWidth,"Left","Right"],height:[n.offsetHeight,"Top","Bottom"]}[t],f=h[0],o=h[1],s=h[2],u=r(n),w=i(n,u["padding"+o])||0,b=i(n,u["padding"+s])||0,c=i(n,u["border"+o+"Width"])||0,l=i(n,u["border"+s+"Width"])||0,a=u["margin"+o],v=u["margin"+s],y=i(n,a)||0,p=i(n,v)||0,{base:f,padding:w+b,border:c+l,margin:y+p})},f=function(n,t,i){var e,u,f;return u=s(n,t),u.base>0?{base:u.base-u.padding-u.border,outer:u.base,outerfull:u.base+u.margin}[i]:(e=r(n),f=e[t],(f<0||f===null)&&(f=n.style[t]||0),f=parseFloat(f)||0,{base:f-u.padding-u.border,outer:f,outerfull:f+u.padding+u.border+u.margin}[i])},angular.forEach({before:function(n){var t,u,f,e,o,i,r;if(o=this,u=o[0],e=o.parent(),t=e.contents(),t[0]===u)return e.prepend(n);for(f=i=1,r=t.length-1;1<=r?i<=r:i>=r;f=1<=r?++i:--i)if(t[f]===u){angular.element(t[f-1]).after(n);return}throw new Error("invalid DOM structure "+u.outerHTML);},height:function(n){var t;return t=this,angular.isDefined(n)?(angular.isNumber(n)&&(n=n+"px"),u.call(t,"height",n)):f(this[0],"height","base")},outerHeight:function(n){return f(this[0],"height",n?"outerfull":"outer")},offset:function(n){var u,t,i,r,f,e;if(f=this,arguments.length){if(n===void 0)return f;throw new Error("offset setter method is not implemented");}if(u={top:0,left:0},r=f[0],t=r&&r.ownerDocument,t)return i=t.documentElement,r.getBoundingClientRect!=null&&(u=r.getBoundingClientRect()),e=t.defaultView||t.parentWindow,{top:u.top+(e.pageYOffset||i.scrollTop)-(i.clientTop||0),left:u.left+(e.pageXOffset||i.scrollLeft)-(i.clientLeft||0)}},scrollTop:function(n){return o(this,"top",n)},scrollLeft:function(n){return o(this,"left",n)}},function(t,i){if(!n.prototype[i])return n.prototype[i]=t})}}}]).run(["$log","$window","jqLiteExtras",function(n,t,i){"use strict";if(!t.jQuery)return i.registerFor(angular.element)}]);angular.module("ui.scroll",[]).directive("uiScrollViewport",["$log",function(){"use strict";return{controller:["$scope","$element",function(n,t){return this.viewport=t,this}]}}]).directive("uiScroll",["$log","$injector","$rootScope","$timeout",function(n,t,i,r){"use strict";return{require:["?^uiScrollViewport"],transclude:"element",priority:1e3,terminal:!0,compile:function(u,f,e){return function(u,f,o,s){var v,ut,b,fi,pt,nt,wt,h,ft,tt,l,ei,oi,y,ct,bt,si,hi,ci,kt,it,lt,dt,et,c,ot,gt,st,ni,rt,ti,pi,at,p,k,li,w,ht,d,ai,g,ii,ri,vi,yi,vt,a,yt,ui;if(pi=n.debug||n.log,at=o.uiScroll.match(/^\s*(\w+)\s+in\s+([\w\.]+)\s*$/),!at)throw new Error("Expected uiScroll in form of '_item_ in _datasource_' but got '"+o.uiScroll+"'");if(rt=at[1],ct=at[2],ot=function(n,t){var i;if(n)return(i=t.match(/^([\w]+)\.(.+)$/),!i||i.length!==3)?n[t]:ot(n[i[1]],i[2])},g=function(n,t,i,r){var u;if(n&&t)return!(u=t.match(/^([\w]+)\.(.+)$/))&&t.indexOf(".")!==-1?void 0:!u||u.length!==3?(!angular.isObject(n[t])&&!r,n[t]=i):(angular.isObject(n[u[1]])||r||(n[u[1]]={}),g(n[u[1]],u[2],i,r))},y=ot(u,ct),ni=function(){return angular.isObject(y)&&typeof y.get=="function"},!ni()&&(y=t.get(ct),!ni()))throw new Error(""+ct+" is not a valid datasource");return tt=Math.max(3,+o.bufferSize||10),ft=function(){return a.outerHeight()*Math.max(.1,+o.padding||.1)},ai=function(n){var t;return(t=n[0].scrollHeight)!=null?t:n[0].document.documentElement.scrollHeight},l=null,e(u.$new(),function(n){var i,o,h,t,r,e;if(t=n[0].localName,t==="dl")throw new Error("ui-scroll directive does not support <"+n[0].localName+"> as a repeating tag: "+n[0].outerHTML);return t!=="li"&&t!=="tr"&&(t="div"),e=s[0]&&s[0].viewport?s[0].viewport:angular.element(window),e.css({"overflow-y":"auto",display:"block"}),h=function(n){var i,t,r;switch(n){case"tr":return r=angular.element("<table><tr><td><div><\/div><\/td><\/tr><\/table>"),i=r.find("div"),t=r.find("tr"),t.paddingHeight=function(){return i.height.apply(i,arguments)},t;default:return t=angular.element("<"+n+"><\/"+n+">"),t.paddingHeight=t.height,t}},o=function(n,t,i){return t[{top:"before",bottom:"after"}[i]](n),{paddingHeight:function(){return n.paddingHeight.apply(n,arguments)},insert:function(t){return n[{top:"after",bottom:"before"}[i]](t)}}},r=o(h(t),f,"top"),i=o(h(t),f,"bottom"),u.$on("$destroy",n.remove),l={viewport:e,topPadding:r.paddingHeight,bottomPadding:i.paddingHeight,append:i.insert,prepend:r.insert,bottomDataPos:function(){return ai(e)-i.paddingHeight()},topDataPos:function(){return r.paddingHeight()}}}),a=l.viewport,yt=a.scope()||i,yi=function(n){return v.topVisible=n.scope[rt],v.topVisibleElement=n.element,v.topVisibleScope=n.scope,o.topVisible&&g(yt,o.topVisible,v.topVisible),o.topVisibleElement&&g(yt,o.topVisibleElement,v.topVisibleElement),o.topVisibleScope&&g(yt,o.topVisibleScope,v.topVisibleScope),typeof y.topVisible=="function"?y.topVisible(n):void 0},ti=function(n){return v.isLoading=n,o.isLoading&&g(u,o.isLoading,n),typeof y.loading=="function"?y.loading(n):void 0},d=0,c=1,p=1,h=[],k=[],it=!1,nt=!1,w=function(n,t){for(var i,r=i=n;n<=t?i<t:i>t;r=n<=t?++i:--i)h[r].scope.$destroy(),h[r].element.remove();return h.splice(n,t-n)},li=function(){return d++,c=1,p=1,w(0,h.length),l.topPadding(0),l.bottomPadding(0),k=[],it=!1,nt=!1,b(d)},wt=function(){return a.scrollTop()+a.outerHeight()},vt=function(){return a.scrollTop()},ii=function(){return!it&&l.bottomDataPos()<wt()+ft()},ei=function(){var i,u,f,e,o,r,n,c,t,s;for(i=0,n=0,u=t=s=h.length-1;s<=0?t<=0:t>=0;u=s<=0?++t:--t)if(f=h[u],o=f.element.offset().top,r=c!==o,c=o,r&&(e=f.element.outerHeight(!0)),l.bottomDataPos()-i-e>wt()+ft())r&&(i+=e),n++,it=!1;else{if(r)break;n++}if(n>0)return l.bottomPadding(l.bottomPadding()+i),w(h.length-n,h.length),p-=n},ri=function(){return!nt&&l.topDataPos()>vt()-ft()},oi=function(){var u,f,e,t,n,o,i,r,s;for(i=0,n=0,r=0,s=h.length;r<s;r++)if(u=h[r],e=u.element.offset().top,t=o!==e,o=e,t&&(f=u.element.outerHeight(!0)),l.topDataPos()+i+f<vt()-ft())t&&(i+=f),n++,nt=!1;else{if(t)break;n++}if(n>0)return l.topPadding(l.topPadding()+i),w(0,n),c+=n},kt=function(n,t){return v.isLoading||ti(!0),k.push(t)===1?dt(n):void 0},gt=function(n){return n.displayTemp=n.css("display"),n.css("display","none")},vi=function(n){if(n.hasOwnProperty("displayTemp"))return n.css("display",n.displayTemp)},st=function(n,t){var i,f,r;return i=u.$new(),i[rt]=t,f=n>c,i.$index=n,f&&i.$index--,r={scope:i},e(i,function(t){return r.element=t,f?n===p?(gt(t),l.append(t),h.push(r)):(h[n-c].element.after(t),h.splice(n-c+1,0,r)):(gt(t),l.prepend(t),h.unshift(r))}),{appended:f,wrapper:r}},fi=function(n,t){var i;return n?l.bottomPadding(Math.max(0,l.bottomPadding()-t.element.outerHeight(!0))):(i=l.topPadding()-t.element.outerHeight(!0),i>=0?l.topPadding(i):a.scrollTop(a.scrollTop()+t.element.outerHeight(!0)))},bt=function(n,t){var i,f,e,r,c,o,u,a,s;if(ii()?kt(n,!0):ri()&&kt(n,!1),t&&t(n),k.length===0){for(o=0,s=[],u=0,a=h.length;u<a;u++)if(i=h[u],e=i.element.offset().top,r=c!==e,c=e,r&&(f=i.element.outerHeight(!0)),r&&l.topDataPos()+o+f<vt())s.push(o+=f);else{r&&yi(i);break}return s}},b=function(n,t,i){return t&&t.length?r(function(){var o,s,r,h,u,f,e,c,l;for(u=[],f=0,c=t.length;f<c;f++)r=t[f],o=r.wrapper.element,vi(o),s=o.offset().top,h!==s&&(u.push(r),h=s);for(e=0,l=u.length;e<l;e++)r=u[e],fi(r.appended,r.wrapper);return bt(n,i)}):bt(n,i)},et=function(n,t){return b(n,t,function(){return k.shift(),k.length===0?ti(!1):dt(n)})},dt=function(n){var t;return t=k[0],t?h.length&&!ii()?et(n):y.get(p,tt,function(t){var f,r,i,e;if((!n||n===d)&&!u.$$destroyed){if(r=[],t.length<tt&&(it=!0,l.bottomPadding(0)),t.length>0)for(oi(),i=0,e=t.length;i<e;i++)f=t[i],r.push(st(++p,f));return et(n,r)}}):h.length&&!ri()?et(n):y.get(c-tt,tt,function(t){var r,f,i,e;if((!n||n===d)&&!u.$$destroyed){if(f=[],t.length<tt&&(nt=!0,l.topPadding(0)),t.length>0)for(h.length&&ei(),r=i=e=t.length-1;e<=0?i<=0:i>=0;r=e<=0?++i:--i)f.unshift(st(--c,t[r]));return et(n,f)}})},ht=function(){if(!i.$$phase&&!v.isLoading)return b(),u.$apply()},ui=function(n){var t,i;return t=a[0].scrollTop,i=a[0].scrollHeight-a[0].clientHeight,t===0&&!nt||t===i&&!it?n.preventDefault():void 0},a.bind("resize",ht),a.bind("scroll",ht),a.bind("mousewheel",ui),u.$watch(y.revision,li),lt=y.scope?y.scope.$new():u.$new(),u.$on("$destroy",function(){for(var t,n=0,i=h.length;n<i;n++)t=h[n],t.scope.$destroy(),t.element.remove();return a.unbind("resize",ht),a.unbind("scroll",ht),a.unbind("mousewheel",ui)}),v={},v.isLoading=!1,pt=function(n,t){var i,r,u,f,a,e,o,s,l,v,y,b;if(r=[],angular.isArray(t))if(t.length){if(t.length===1&&t[0]===n.scope[rt])return r;for(f=n.scope.$index,e=f>c?f-c:1,i=o=0,v=t.length;o<v;i=++o)a=t[i],r.push(st(f+i,a));for(w(e,e+1),i=s=0,y=h.length;s<y;i=++s)u=h[i],u.scope.$index=c+i}else for(w(n.scope.$index-c,n.scope.$index-c+1),p--,i=l=0,b=h.length;l<b;i=++l)u=h[i],u.scope.$index=c+i;return r},v.applyUpdates=function(n,t){var i,r,u,e,f,o;if(i=[],d++,angular.isFunction(n))for(f=h.slice(0),u=0,e=f.length;u<e;u++)r=f[u],i.concat(i,pt(r,n(r.scope[rt],r.scope,r.element)));else if(n%1==0)0<=(o=n-c-1)&&o<h.length&&(i=pt(h[n-c],t));else throw new Error("applyUpdates - "+n+" is not a valid index or outside of range");return b(d,i)},o.adapter&&(ut=ot(u,o.adapter),ut||(g(u,o.adapter,{}),ut=ot(u,o.adapter)),angular.extend(ut,v),v=ut),ci=function(n,t){var r,u,i,f,e;if(angular.isFunction(n))for(u=function(t){return n(t.scope)},i=0,f=h.length;i<f;i++)r=h[i],u(r);else 0<=(e=n-c-1)&&e<h.length&&(h[n-c-1].scope[rt]=t);return null},si=function(n){var t,r,i,o,s,u,f,e,l,a,v,y;if(angular.isFunction(n)){for(i=[],u=0,l=h.length;u<l;u++)r=h[u],i.unshift(r);for(s=function(r){if(n(r.scope))return w(i.length-1-t,i.length-t),p--},t=f=0,a=i.length;f<a;t=++f)o=i[t],s(o)}else 0<=(y=n-c-1)&&y<h.length&&(w(n-c-1,n-c),p--);for(t=e=0,v=h.length;e<v;t=++e)r=h[t],r.scope.$index=c+t;return b()},hi=function(n,t){var i,r,u,f,e;if(r=[],angular.isFunction(n))throw new Error("not implemented - Insert with locator function");else 0<=(e=n-c-1)&&e<h.length&&(r.push(st(n,t)),p++);for(i=u=0,f=h.length;u<f;i=++u)t=h[i],t.scope.$index=c+i;return b(null,r)},lt.$on("insert.item",function(n,t,i){return hi(t,i)}),lt.$on("update.items",function(n,t,i){return ci(t,i)}),lt.$on("delete.items",function(n,t){return si(t)})}}}}]);angular.module("ui.scrollfix",[]).directive("uiScrollfix",["$window",function(n){"use strict";function t(){if(angular.isDefined(n.pageYOffset))return n.pageYOffset;var t=document.compatMode&&document.compatMode!=="BackCompat"?document.documentElement:document.body;return t.scrollTop}return{require:"^?uiScrollfixTarget",link:function(i,r,u,f){function c(){var n=e?u.uiScrollfix:r[0].offsetTop+o,i=f?h[0].scrollTop:t();!r.hasClass("ui-scrollfix")&&i>n?(r.addClass("ui-scrollfix"),s=n):r.hasClass("ui-scrollfix")&&i<s&&r.removeClass("ui-scrollfix")}var e=!0,o=0,s,h=f&&f.$element||angular.element(n);u.uiScrollfix?typeof u.uiScrollfix=="string"&&(u.uiScrollfix.charAt(0)==="-"?(e=!1,o=-parseFloat(u.uiScrollfix.substr(1))):u.uiScrollfix.charAt(0)==="+"&&(e=!1,o=parseFloat(u.uiScrollfix.substr(1)))):e=!1;s=e?u.uiScrollfix:r[0].offsetTop+o;h.on("scroll",c);i.$on("$destroy",function(){h.off("scroll",c)})}}}]).directive("uiScrollfixTarget",[function(){"use strict";return{controller:["$element",function(n){this.$element=n}]}}]);angular.module("ui.showhide",[]).directive("uiShow",[function(){"use strict";return function(n,t,i){n.$watch(i.uiShow,function(n){n?t.addClass("ui-show"):t.removeClass("ui-show")})}}]).directive("uiHide",[function(){"use strict";return function(n,t,i){n.$watch(i.uiHide,function(n){n?t.addClass("ui-hide"):t.removeClass("ui-hide")})}}]).directive("uiToggle",[function(){"use strict";return function(n,t,i){n.$watch(i.uiToggle,function(n){n?t.removeClass("ui-hide").addClass("ui-show"):t.removeClass("ui-show").addClass("ui-hide")})}}]);angular.module("ui.unique",[]).filter("unique",["$parse",function(n){"use strict";return function(t,i){if(i===!1)return t;if((i||angular.isUndefined(i))&&angular.isArray(t)){var r=[],f=angular.isString(i)?n(i):function(n){return n},u=function(n){return angular.isObject(n)?f(n):n};angular.forEach(t,function(n){for(var i=!1,t=0;t<r.length;t++)if(angular.equals(u(r[t]),u(n))){i=!0;break}i||r.push(n)});t=r}return t}}]);angular.module("ui.uploader",[]).service("uiUploader",uiUploader);uiUploader.$inject=["$log"];angular.module("ui.validate",[]).directive("uiValidate",function(){"use strict";return{restrict:"A",require:"ngModel",link:function(n,t,i,r){function o(t){if(angular.isString(t)){n.$watch(t,function(){angular.forEach(u,function(n){n(r.$modelValue)})});return}if(angular.isArray(t)){angular.forEach(t,function(t){n.$watch(t,function(){angular.forEach(u,function(n){n(r.$modelValue)})})});return}angular.isObject(t)&&angular.forEach(t,function(t,i){angular.isString(t)&&n.$watch(t,function(){u[i](r.$modelValue)});angular.isArray(t)&&angular.forEach(t,function(t){n.$watch(t,function(){u[i](r.$modelValue)})})})}var e,u={},f=n.$eval(i.uiValidate);f&&(angular.isString(f)&&(f={validator:f}),angular.forEach(f,function(t,i){e=function(u){var f=n.$eval(t,{$value:u});return angular.isObject(f)&&angular.isFunction(f.then)?(f.then(function(){r.$setValidity(i,!0)},function(){r.$setValidity(i,!1)}),u):f?(r.$setValidity(i,!0),u):(r.$setValidity(i,!1),u)};u[i]=e;r.$formatters.push(e);r.$parsers.push(e)}),i.uiValidateWatch&&o(n.$eval(i.uiValidateWatch)))}}});angular.module("ui.utils",["ui.event","ui.format","ui.highlight","ui.include","ui.indeterminate","ui.inflector","ui.jq","ui.keypress","ui.mask","ui.reset","ui.route","ui.scrollfix","ui.scroll","ui.scroll.jqlite","ui.showhide","ui.unique","ui.validate"])