-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathne-modules-ui.min.js
More file actions
10 lines (10 loc) · 266 KB
/
ne-modules-ui.min.js
File metadata and controls
10 lines (10 loc) · 266 KB
1
2
3
4
5
6
7
8
9
10
angular.module("neContentEditors",[]).factory("neMarkdown",["$document","NeRemarked","neMarked",function(e,t,n){function i(e,t,n){var i=e.inputValue.substring(e.start-t.length,e.start),r=e.inputValue.substring(e.end,e.end+n.length);return i===t&&r===n}function r(e,t,n,r){return r=r||"toggle",function(a){var o="";return e=e||"",t=t||"",a&&a.end>a.start&&"replace"!==r?"remove"===r||"toggle"===r&&i(a,e,t)?(o=a.inputValue.substring(0,a.start-e.length)+a.value+a.inputValue.substring(a.end+t.length,a.inputValue.length),a.select(a.start-e.length,a.end-e.length)):(o=e+a.value+t,o=a.inputValue.substring(0,a.start)+o+a.inputValue.substring(a.end,a.inputValue.length),a.select(a.start+e.length,a.end+e.length)):a&&(n||""===n)&&(o=a.inputValue.substring(0,a.start)+e+n+t+a.inputValue.substring(a.end,a.inputValue.length),a.select(a.start+e.length,a.start+n.length+e.length)),o}}function a(e,t){var n,i,r="\n";for(n=1;n<t+3;n++)for(i=1;i<e+1;i++)r+=1===i?"\n":" | ",r+=1===n?"col "+i:2===n?"-----":"row "+(n-2);return r+"\n"}var o,s={},l={link_list:!1,h1_setext:!1,h2_setext:!1,h_atx_suf:!1,gfm_code:!1,li_bullet:"*",hr_char:"-",indnt_str:" ",bold_char:"*",emph_char:"_",gfm_del:!0,gfm_tbls:!0,tbl_edges:!1,hash_lnks:!1,br_only:!1},u=new t(l);return s.parseHTML=function(e){return u.render(e||"")},o={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,smartLists:!0,smartypants:!1},n.setOptions(o),s.renderHTML=function(e){return n(e||"")},s.editor={bold:r("**","**","bold text"),italic:r("*","*","italic text"),strikethrough:r("~~","~~","strikethrough text"),h1:r("\n# ","","headline 1"),h2:r("\n## ","","headline 2"),h3:r("\n### ","","headline 3"),h4:r("\n#### ","","headline 4"),h5:r("\n##### ","","headline 5"),h6:r("\n###### ","","headline 6"),ol:r("\n1. ","","numbered list"),ul:r("\n- ","","bulleted list"),indent:r(" ","","","replace"),dedent:r(" ","","","remove"),blocquote:r("\n> ","","blocquote text"),hr:r("\n\n-----\n\n","","","replace"),link:function(e,t,n){return t||""===t||(t=prompt("Please enter link url","http://")),t?r("","[ "+(n||"link text")+" ]( "+t+" )","","replace")(e):""},image:function(e,t){return t||""===t||(t=prompt("Please enter image url","http://")),t?r("","',"","replace")(e):""},table:function(e,t,n){return t=parseInt(t,10),n=parseInt(n,10),t>0&&n>0?r("",a(t,n),"","add")(e):e.inputValue}},s}]).controller("NeMdCtrl",["$scope","neMarkdown",function(e,t){e.editor=t.editor}]).controller("NeWsCtrl",["$scope","neWysiwyg",function(e,t){e.editor=t.editor}]).factory("neWysiwyg",["$document","neModals",function(e,t){function n(e,t){var n,i,r,a,o,s,l,u,c=window.getSelection(),d=e.range;c.removeAllRanges(),d.deleteContents(),n=d.startContainer,i=d.startOffset,d=document.createRange(),3===n.nodeType&&3===t.nodeType?(n.insertData(i,t.nodeValue),d.setEnd(n,i+t.length),d.setStart(n,i+t.length)):(3===n.nodeType?(a=n,n=a.parentNode,o=a.nodeValue,s=o.substr(0,i),l=o.substr(i),u=document.createTextNode(s),r=document.createTextNode(l),n.insertBefore(r,a),n.insertBefore(t,r),n.insertBefore(u,t),n.removeChild(a)):(r=n.childNodes[i],n.insertBefore(t,r)),d.setEnd(r,0),d.setStart(r,0)),c.addRange(d)}function i(t,n){return function(i){return e[0].execCommand(t,!1,n),i.parent.html()}}var r=["#ffffff","#ffccc9","#ffce93","#fffc9e","#ffffc7","#9aff99","#96fffb","#cdffff","#cbcefb","#cfcfcf","#fd6864","#fe996b","#fffe65","#fcff2f","#67fd9a","#38fff8","#68fdff","#9698ed","#c0c0c0","#fe0000","#f8a102","#ffcc67","#f8ff00","#34ff34","#68cbd0","#34cdf9","#6665cd","#9b9b9b","#cb0000","#f56b00","#ffcb2f","#ffc702","#32cb00","#00d2cb","#3166ff","#6434fc","#656565","#9a0000","#ce6301","#cd9934","#999903","#009901","#329a9d","#3531ff","#6200c9","#343434","#680100","#963400","#986536","#646809","#036400","#34696d","#00009b","#303498","#000000","#330001","#643403","#663234","#343300","#013300","#003532","#010066","#340096"],a=[{name:"Extra Small",css:"xx-small",value:"1"},{name:"Small",css:"x-small",value:"2"},{name:"Medium",css:"small",value:"3"},{name:"Large",css:"medium",value:"4"},{name:"Extra Large",css:"large",value:"5"},{name:"Huge",css:"x-large",value:"6"}],o={undo:i("undo"),redo:i("redo"),bold:i("bold"),italic:i("italic"),strikethrough:i("strikeThrough"),underline:i("underline"),quote:i("quote"),h1:i("formatblock","<h1>"),h2:i("formatblock","<h2>"),h3:i("formatblock","<h3>"),h4:i("formatblock","<h4>"),h5:i("formatblock","<h5>"),h6:i("formatblock","<h6>"),fontSizes:a,fontSize:function(e,t){return i("fontsize",t)(e)},colors:r,color:function(e,t){return i("forecolor",t)(e)},bgColor:function(e,t){return i("hilitecolor",t)(e)},justifyLeft:i("justifyleft"),justifyCenter:i("justifycenter"),justifyRight:i("justifyright"),justifyFull:i("justifyfull"),ol:i("insertorderedlist"),ul:i("insertunorderedlist"),indent:i("indent"),outdent:i("outdent"),unlink:i("unlink"),link:function(e,t,i){if(t||""===t||(t=prompt("Please enter link url","http://")),t){return n(e,angular.element('<a href="'+t+'">'+(i||t)+"</a>")[0]),e.parent.html()}return""},image:function(e,t){if(t||""===t||(t=prompt("Please enter image url","http://")),t){return n(e,angular.element('<img src="'+t+'">')[0]),e.parent.html()}return""},table:function(t,i,r){var a,o,s,l,u,c,d,p,f,h;if(r=parseInt(r,10),i=parseInt(i,10),a=e[0],r>0&&i>0){for(o=a.createElement("table"),s=a.createElement("thead"),l=a.createElement("tbody"),c=a.createElement("tr"),f=0;f<i;f++)u=a.createElement("th"),u.innerHTML="col "+(f+1),p=a.createElement("br"),u.appendChild(p),c.appendChild(u);for(s.appendChild(c),h=0;h<r;h++){for(c=a.createElement("tr"),f=0;f<i;f++)d=a.createElement("td"),d.innerHTML="row "+(h+1),p=a.createElement("br"),d.appendChild(p),c.appendChild(d);l.appendChild(c)}o.appendChild(s),o.appendChild(l),n(t,o)}return t.parent.html()},hr:i("inserthorizontalrule")};return this.editor=o,this}]).directive("neContenteditable",["$sce",function(e){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){function r(e){var r=t.html();n.stripBr&&"<br>"===r&&(r=""),(e&&r||!e)&&i.$setViewValue(r)}i&&(n.contenteditable||t.attr("contenteditable","true"),i.$render=function(){t.html(i.$viewValue||"")},t.on("blur keyup change",function(){e.$apply(r)}),r(!0))}}}]).directive("neSelectionModel",[function(){return{restrict:"A",require:"^ngModel",scope:{neSelectionModel:"="},link:function(e,t,n,i){function r(){function t(e,t,n){e.focus(),e.setSelectionRange?e.setSelectionRange(t,n):e.createTextRange&&(e=e.createTextRange(),e.collapse(!0),e.moveEnd("character",n),e.moveStart("character",t),e.select())}function n(){var i=this,r=i.selectionStart,a=i.selectionEnd;e.$apply(function(){e.neSelectionModel={parent:angular.element(i),value:i.value.substring(r,a),inputValue:i.value,start:r,end:a,select:function(e,r){setTimeout(function(){t(i,e,r),n.call(i)},0)}}})}this.setSelection=t,this.getSelection=n}function a(e,t){for(;e;){if(t(e))return e;e=e.parentNode}}function o(t){function n(e,t,n){}function i(){var t=this,i=a(angular.element(t)[0],function(e){return"HTML"===e.tagName}).parentNode,r=i.getSelection(),o=r.getRangeAt(0).startOffset,s=r.getRangeAt(0).endOffset,l=angular.element(t);e.$apply(function(){e.neSelectionModel={range:r.getRangeAt(0),parent:l,value:l.html().substring(o,s),inputValue:l.html(),start:o,startElement:r.getRangeAt(0).startContainer,end:s,endElement:r.getRangeAt(0).endContainer,select:function(e,i,r,a){var o=r||this.startElement,s=a||this.endElement;setTimeout(function(){n(t,e,i,o,s)},0)}}})}this.setSelection=n,this.getSelection=i}if("TEXTAREA"!==t[0].nodeName&&"true"!==n.contenteditable)throw new Error('neSelectionModel directive can be used only on <textarea> or contentEditable="true" element');var s="TEXTAREA"===t[0].nodeName?new r:new o;t.on("mouseup keyup",s.getSelection),e.$on("$destroy",function(){t.unbind("mouseup keyup",s.getSelection),e.neSelectionModel=null})}}}]).factory("NeRemarked",[function(){return function(e){function t(e,i){if(!i)return e;for(var r in e)"Object"==n(i[r])?t(e[r],i[r]):void 0!==i[r]&&(e[r]=i[r])}function n(e){return Object.prototype.toString.call(e).slice(8,-1)}function i(e,t){for(var n="";t-- >0;)n+=e;return n}function r(e){for(var e=e.replace(/^\s\s*/,""),t=/\s/,n=e.length;t.test(e.charAt(--n)););return e.slice(0,n+1)}function a(e,t){var n,i,r;if(!e)return"";for(n="<"+e,r=0;r<t.attributes.length;r++)i=t.attributes.item(r),n+=" "+i.nodeName+'="'+i.nodeValue+'"';return n+">"}function o(e){return e?"</"+e+">":""}function s(e,t){return e.replace(/^/gm,t)}function l(e){return("#text"==e.nodeName?"txt":e.nodeName).toLowerCase()}function u(e,t){var n,i;return t instanceof Array?(n=t[0],i=t[1]):n=i=t,n=n instanceof Function?n.call(this,e):n,i=i instanceof Function?i.call(this,e):i,n+e+i}function c(e){return e.outerHTML||function(e){var t,n=document.createElement("div");return n.appendChild(e.cloneNode(!0)),t=n.innerHTML,n=null,t}(e)}var d,p,f=[],h={link_list:!1,h1_setext:!0,h2_setext:!0,h_atx_suf:!1,gfm_code:!1,li_bullet:"*-+"[0],hr_char:"-_*"[0],indnt_str:[" ","\t"," "][0],bold_char:"*_"[0],emph_char:"*_"[1],gfm_del:!0,gfm_tbls:!0,tbl_edges:!1,hash_lnks:!1,br_only:!1,col_pre:"col ",unsup_tags:{ignore:"script style noscript",inline:"span sup sub i u b center big",block2:"div form fieldset dl header footer address article aside figure hgroup section",block1c:"dt dd caption legend figcaption output",block2c:"canvas audio video iframe"},tag_remap:{i:"em",b:"strong"}};t(h,e),this.render=function(e){var t,n,r,a,o,s,u,c;if(f=[],"string"==typeof e&&(t=e,e=document.createElement("div"),e.innerHTML=t),n=new d.tag(e,null,0),r=n.rend().replace(/^[\t ]+\n/gm,"\n"),h.link_list&&f.length>0){for(r+="\n\n",a=0,o=0;o<f.length;o++)f[o].e.title&&(s=f[o].e.href.length)&&s>a&&(a=s);for(u=0;u<f.length;u++)c=f[u].e.title?i(" ",a+2-f[u].e.href.length)+'"'+f[u].e.title+'"':"",r+=" ["+(+u+1)+"]: "+("a"==l(f[u].e)?f[u].e.href:f[u].e.src)+c+"\n"}return r.replace(/^[\t ]+\n/gm,"\n")},d={},d.tag=klass({wrap:"",lnPfx:"",lnInd:0,init:function(e,t,n){this.e=e,this.p=t,this.i=n,this.c=[],this.tag=l(e),this.initK()},initK:function(){var e,t,n,i,r,a,o,s,u,c,p,g,m,b,y,v;if(this.e.hasChildNodes()){if(t=h.unsup_tags.inline,"table"==l(this.e)&&this.e.hasChildNodes()&&!this.e.tHead){if(r=document.createElement("thead"),a=this.e.tBodies[0],o=a.rows[0],s=o.cells[0],"th"==l(s))r.appendChild(o);else for(e=0,c=o.cells.length,p=r.insertRow();e++<c;)u=document.createElement("th"),u.textContent=h.col_pre+e,p.appendChild(u);this.e.insertBefore(r,a)}for(e in this.e.childNodes)if(/\d+/.test(e)&&(n=this.e.childNodes[e],i=l(n),i in h.tag_remap&&(i=h.tag_remap[i]),!h.unsup_tags.ignore.test(i))){if("txt"==i&&/^\s+$/.test(n.textContent)){if(0==e||e==this.e.childNodes.length-1)continue;if(g=this.e.childNodes[e-1],m=this.e.childNodes[e+1],g&&!l(g).match(t)||m&&!l(m).match(t))continue}b=null,d[i]||(y=h.unsup_tags,y.inline.test(i)?i="tinl":y.block2.test(i)?i="tblk":y.block1c.test(i)?i="ctblk":y.block2c.test(i)?(i="ctblk",b=["\n\n",""]):i="rawhtml"),v=new d[i](n,this,this.c.length),b&&(v.wrap=b),(v instanceof d.a&&n.href||v instanceof d.img)&&(v.lnkid=f.length,f.push(v)),this.c.push(v)}}},rend:function(){return this.rendK().replace(/\n{3,}/gm,"\n\n")},rendK:function(){var e,t,n="";for(t=0;t<this.c.length;t++)e=this.c[t],n+=(e.bef||"")+e.rend()+(e.aft||"");return n.replace(/^\n+|\n+$/,"")}}),d.blk=d.tag.extend({wrap:["\n\n",""],wrapK:null,tagr:!1,lnInd:null,init:function(e,t,n){this.supr(e,t,n),null===this.lnInd&&(this.p&&this.tagr&&this.c[0]instanceof d.blk?this.lnInd=4:this.lnInd=0),null===this.wrapK&&(this.tagr&&this.c[0]instanceof d.blk?this.wrapK="\n":this.wrapK="")},rend:function(){return u.call(this,(this.tagr?a(this.tag,this.e):"")+u.call(this,s(s(this.rendK(),this.lnPfx),i(" ",this.lnInd)),this.wrapK)+(this.tagr?o(this.tag):""),this.wrap)},rendK:function(){var e,t,n,i=this.supr();if(this.p instanceof d.li){if(e=null,!(t=i.match(/^[\t ]+/gm)))return i;for(n=0;n<t.length;n++)(null===e||t[n][0].length<e.length)&&(e=t[n][0]);return i.replace(new RegExp("^"+e),"")}return i}}),d.tblk=d.blk.extend({tagr:!0}),d.cblk=d.blk.extend({wrap:["\n",""]}),d.ctblk=d.cblk.extend({tagr:!0}),d.inl=d.tag.extend({rend:function(){return u.call(this,this.rendK(),this.wrap)}}),d.tinl=d.inl.extend({tagr:!0,rend:function(){return a(this.tag,this.e)+u.call(this,this.rendK(),this.wrap)+o(this.tag)}}),d.p=d.blk.extend({rendK:function(){return this.supr().replace(/^\s+/gm,"")}}),d.list=d.blk.extend({expn:!1,wrap:[function(){return this.p instanceof d.li?"\n":"\n\n"},""]}),d.ul=d.list.extend({}),d.ol=d.list.extend({}),d.li=d.cblk.extend({wrap:["\n",function(e){return this.p.expn||e.match(/\n{2}/gm)?"\n":""}],wrapK:[function(){return"ul"==this.p.tag?h.li_bullet+" ":this.i+1+". "},""],rendK:function(){return this.supr().replace(/\n([^\n])/gm,"\n"+h.indnt_str+"$1")}}),d.hr=d.blk.extend({wrap:["\n\n",i(h.hr_char,3)]}),d.h=d.blk.extend({}),d.h_setext=d.h.extend({}),h.h1_setext&&(d.h1=d.h_setext.extend({wrapK:["",function(e){return"\n"+i("=",e.length)}]})),h.h2_setext&&(d.h2=d.h_setext.extend({wrapK:["",function(e){return"\n"+i("-",e.length)}]})),d.h_atx=d.h.extend({wrapK:[function(e){return i("#",this.tag[1])+" "},function(e){return h.h_atx_suf?" "+i("#",this.tag[1]):""}]}),!h.h1_setext&&(d.h1=d.h_atx.extend({})),!h.h2_setext&&(d.h2=d.h_atx.extend({})),d.h3=d.h_atx.extend({}),d.h4=d.h_atx.extend({}),d.h5=d.h_atx.extend({}),d.h6=d.h_atx.extend({}),d.a=d.inl.extend({lnkid:null,rend:function(){var e=this.rendK(),t=this.e.getAttribute("href"),n=this.e.title?' "'+this.e.title+'"':"";return!t||t==e||"#"==t[0]&&!h.hash_lnks?e:h.link_list?"["+e+"] ["+(this.lnkid+1)+"]":"["+e+"]("+t+n+")"}}),d.img=d.inl.extend({lnkid:null,rend:function(){var e,t=this.e.alt,n=this.e.getAttribute("src");return h.link_list?"!["+t+"] ["+(this.lnkid+1)+"]":(e=this.e.title?' "'+this.e.title+'"':"","")}}),d.em=d.inl.extend({wrap:h.emph_char}),d.del=h.gfm_del?d.inl.extend({wrap:"~~"}):d.tinl.extend(),d.br=d.inl.extend({wrap:["",function(){var e=h.br_only?"<br>":" ";return this.p instanceof d.h?"<br>":e+"\n"}]}),d.strong=d.inl.extend({wrap:i(h.bold_char,2)}),d.blockquote=d.blk.extend({lnPfx:"> ",rend:function(){return this.supr().replace(/>[ \t]$/gm,">")}}),d.pre=d.blk.extend({tagr:!0,wrapK:"\n",lnInd:0}),d.code=d.blk.extend({tagr:!1,wrap:"",wrapK:function(e){return-1!==e.indexOf("`")?"``":"`"},lnInd:0,init:function(e,t,n){if(this.supr(e,t,n),this.p instanceof d.pre)if(this.p.tagr=!1,h.gfm_code){var i=this.e.getAttribute("class");i=(i||"").split(" ")[0],0===i.indexOf("lang-")&&(i=i.substr(5)),this.wrapK=["```"+i+"\n","\n```"]}else this.wrapK="",this.p.lnInd=4}}),d.table=h.gfm_tbls?d.blk.extend({cols:[],init:function(e,t,n){this.supr(e,t,n),this.cols=[]},rend:function(){var e,t,n;for(e=0;e<this.c.length;e++)for(t=0;t<this.c[e].c.length;t++)for(n=0;n<this.c[e].c[t].c.length;n++)this.c[e].c[t].c[n].prep();return this.supr()}}):d.tblk.extend(),d.thead=h.gfm_tbls?d.cblk.extend({wrap:["\n",function(e){var t,n,a,o,s="";for(t=0;t<this.p.cols.length;t++)n=this.p.cols[t],a="c"==n.a[0]?":":" ",o="r"==n.a[0]||"c"==n.a[0]?":":" ",s+=(0==t&&h.tbl_edges?"|":"")+a+i("-",n.w)+o+(t<this.p.cols.length-1||h.tbl_edges?"|":"");return"\n"+r(s)}]}):d.ctblk.extend(),d.tbody=h.gfm_tbls?d.cblk.extend():d.ctblk.extend(),d.tfoot=h.gfm_tbls?d.cblk.extend():d.ctblk.extend(),d.tr=h.gfm_tbls?d.cblk.extend({wrapK:[h.tbl_edges?"| ":"",h.tbl_edges?" |":""]}):d.ctblk.extend(),d.th=h.gfm_tbls?d.inl.extend({guts:null,wrap:[function(){var e,t=this.p.p.p.cols[this.i],n=0==this.i?"":" ",r=t.w-this.guts.length;switch(t.a[0]){case"r":e=i(" ",r);break;case"c":e=i(" ",Math.floor(r/2));break;default:e=""}return n+e},function(){var e,t=this.p.p.p.cols[this.i],n=this.i==this.p.c.length-1?"":" |",r=t.w-this.guts.length;switch(t.a[0]){case"r":e="";break;case"c":e=i(" ",Math.ceil(r/2));break;default:e=i(" ",r)}return e+n}],prep:function(){var e,t;this.guts=this.rendK(),this.rendK=function(){return this.guts},e=this.p.p.p.cols,e[this.i]||(e[this.i]={w:null,a:""}),t=e[this.i],t.w=Math.max(t.w||0,this.guts.length),this.e.align&&(t.a=this.e.align)}}):d.ctblk.extend(),d.td=d.th.extend(),d.txt=d.inl.extend({initK:function(){this.c=this.e.textContent.split(/^/gm)},rendK:function(){var e=this.c.join("").replace(/\r/gm,"");return this.p instanceof d.code||this.p instanceof d.pre||(e=e.replace(/^\s*#/gm,"\\#").replace(/\*/gm,"\\*")),0==this.i&&(e=e.replace(/^\n+/,"")),this.i==this.p.c.length-1&&(e=e.replace(/\n+$/,"")),e}}),d.rawhtml=d.blk.extend({initK:function(){this.guts=c(this.e)},rendK:function(){return this.guts}});for(p in h.unsup_tags)h.unsup_tags[p]=new RegExp("^(?:"+("inline"==p?"a|em|strong|img|code|del|":"")+h.unsup_tags[p].replace(/\s/g,"|")+")$")}}]).factory("neMarked",[function(){return function(){function e(e){this.tokens=[],this.tokens.links={},this.options=e||l.defaults,this.rules=c.normal,this.options.gfm&&(this.options.tables?this.rules=c.tables:this.rules=c.gfm)}function t(e,t){if(this.options=t||l.defaults,this.links=e,this.rules=u.normal,this.renderer=this.options.renderer||new n,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=u.breaks:this.rules=u.gfm:this.options.pedantic&&(this.rules=u.pedantic)}function n(){}function i(e){this.tokens=[],this.token=null,this.options=e||l.defaults,this.options.renderer=this.options.renderer||new n,this.renderer=this.options.renderer}function r(e,encode){return e.replace(encode?/&/g:/&(?!#?\w+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function a(e,t){return e=e.source,t=t||"",function n(i,r){return i?(r=r.source||r,r=r.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(i,r),n):new RegExp(e,t)}}function o(){}function s(e){for(var t,n,i=1;i<arguments.length;i++){t=arguments[i];for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}function l(t,n,a){var o,u;if(a||"function"==typeof n){a||(a=n,n=null),n=s({},l.defaults,n||{}),o=n.highlight,0;try{u=e.lex(t,n)}catch(e){return a(e)}return u.length,function(){var e,t;try{e=i.parse(u,n)}catch(e){t=e}return n.highlight=o,t?a(t):a(null,e)}()}try{return n&&(n=s({},l.defaults,n)),i.parse(e.lex(t,n),n)}catch(e){if(e.message+="\nPlease report this to https://github.com/chjj/marked.",(n||l.defaults).silent)return"<p>An error occured:</p><pre>"+r(e.message+"",!0)+"</pre>";throw e}}var u,c={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:o,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:o,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:o,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};c.bullet=/(?:[*+-]|\d+\.)/,c.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,c.item=a(c.item,"gm")(/bull/g,c.bullet)(),c.list=a(c.list)(/bull/g,c.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)(),c._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b",c.html=a(c.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,c._tag)(),c.paragraph=a(c.paragraph)("hr",c.hr)("heading",c.heading)("lheading",c.lheading)("blockquote",c.blockquote)("tag","<"+c._tag)("def",c.def)(),c.normal=s({},c),c.gfm=s({},c.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/}),c.gfm.paragraph=a(c.paragraph)("(?!","(?!"+c.gfm.fences.source.replace("\\1","\\2")+"|"+c.list.source.replace("\\1","\\3")+"|")(),c.tables=s({},c.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),e.rules=c,e.lex=function(t,n){return new e(n).lex(t)},e.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},e.prototype.token=function(e,t){for(var n,i,r,a,o,s,l,u,d,e=e.replace(/^ +$/gm,"");e;)if((r=this.rules.newline.exec(e))&&(e=e.substring(r[0].length),r[0].length>1&&this.tokens.push({type:"space"})),r=this.rules.code.exec(e))e=e.substring(r[0].length),r=r[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?r:r.replace(/\n+$/,"")});else if(r=this.rules.fences.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"code",lang:r[2],text:r[3]});else if(r=this.rules.heading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"heading",depth:r[1].length,text:r[2]});else if(t&&(r=this.rules.nptable.exec(e))){for(e=e.substring(r[0].length),s={type:"table",header:r[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:r[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:r[3].replace(/\n$/,"").split("\n")},u=0;u<s.align.length;u++)/^ *-+: *$/.test(s.align[u])?s.align[u]="right":/^ *:-+: *$/.test(s.align[u])?s.align[u]="center":/^ *:-+ *$/.test(s.align[u])?s.align[u]="left":s.align[u]=null;for(u=0;u<s.cells.length;u++)s.cells[u]=s.cells[u].split(/ *\| */);this.tokens.push(s)}else if(r=this.rules.lheading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"heading",depth:"="===r[2]?1:2,text:r[1]});else if(r=this.rules.hr.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"hr"});else if(r=this.rules.blockquote.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"blockquote_start"}),r=r[0].replace(/^ *> ?/gm,""),this.token(r,t),this.tokens.push({type:"blockquote_end"});else if(r=this.rules.list.exec(e)){for(e=e.substring(r[0].length),a=r[2],this.tokens.push({type:"list_start",ordered:a.length>1}),r=r[0].match(this.rules.item),n=!1,d=r.length,u=0;u<d;u++)s=r[u],l=s.length,s=s.replace(/^ *([*+-]|\d+\.) +/,""),~s.indexOf("\n ")&&(l-=s.length,s=this.options.pedantic?s.replace(/^ {1,4}/gm,""):s.replace(new RegExp("^ {1,"+l+"}","gm"),"")),this.options.smartLists&&u!==d-1&&(o=c.bullet.exec(r[u+1])[0],a===o||a.length>1&&o.length>1||(e=r.slice(u+1).join("\n")+e,u=d-1)),i=n||/\n\n(?!\s*$)/.test(s),u!==d-1&&(n="\n"===s.charAt(s.length-1),i||(i=n)),this.tokens.push({type:i?"loose_item_start":"list_item_start"}),this.token(s,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(r=this.rules.html.exec(e))e=e.substring(r[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:"pre"===r[1]||"script"===r[1]||"style"===r[1],text:r[0]});else if(t&&(r=this.rules.def.exec(e)))e=e.substring(r[0].length),this.tokens.links[r[1].toLowerCase()]={href:r[2],title:r[3]};else if(t&&(r=this.rules.table.exec(e))){for(e=e.substring(r[0].length),s={type:"table",header:r[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:r[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:r[3].replace(/(?: *\| *)?\n$/,"").split("\n")},u=0;u<s.align.length;u++)/^ *-+: *$/.test(s.align[u])?s.align[u]="right":/^ *:-+: *$/.test(s.align[u])?s.align[u]="center":/^ *:-+ *$/.test(s.align[u])?s.align[u]="left":s.align[u]=null;for(u=0;u<s.cells.length;u++)s.cells[u]=s.cells[u].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(s)}else if(t&&(r=this.rules.paragraph.exec(e)))e=e.substring(r[0].length),this.tokens.push({type:"paragraph",text:"\n"===r[1].charAt(r[1].length-1)?r[1].slice(0,-1):r[1]});else if(r=this.rules.text.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"text",text:r[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens},u={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:o,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:o,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/},u._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,u._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/,u.link=a(u.link)("inside",u._inside)("href",u._href)(),u.reflink=a(u.reflink)("inside",u._inside)(),u.normal=s({},u),u.pedantic=s({},u.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),u.gfm=s({},u.normal,{escape:a(u.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:a(u.text)("]|","~]|")("|","|https?://|")()}),u.breaks=s({},u.gfm,{br:a(u.br)("{2,}","*")(),text:a(u.gfm.text)("{2,}","*")()}),t.rules=u,t.output=function(e,n,i){return new t(n,i).output(e)},t.prototype.output=function(e){for(var t,n,i,a,o="";e;)if(a=this.rules.escape.exec(e))e=e.substring(a[0].length),o+=a[1];else if(a=this.rules.autolink.exec(e))e=e.substring(a[0].length),"@"===a[2]?(n=":"===a[1].charAt(6)?this.mangle(a[1].substring(7)):this.mangle(a[1]),i=this.mangle("mailto:")+n):(n=r(a[1]),i=n),o+=this.renderer.link(i,null,n);else if(a=this.rules.url.exec(e))e=e.substring(a[0].length),n=r(a[1]),i=n,o+=this.renderer.link(i,null,n);else if(a=this.rules.tag.exec(e))e=e.substring(a[0].length),o+=this.options.sanitize?r(a[0]):a[0];else if(a=this.rules.link.exec(e))e=e.substring(a[0].length),o+=this.outputLink(a,{href:a[2],title:a[3]});else if((a=this.rules.reflink.exec(e))||(a=this.rules.nolink.exec(e))){if(e=e.substring(a[0].length),t=(a[2]||a[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){o+=a[0].charAt(0),e=a[0].substring(1)+e;continue}o+=this.outputLink(a,t)}else if(a=this.rules.strong.exec(e))e=e.substring(a[0].length),o+=this.renderer.strong(this.output(a[2]||a[1]));else if(a=this.rules.em.exec(e))e=e.substring(a[0].length),o+=this.renderer.em(this.output(a[2]||a[1]));else if(a=this.rules.code.exec(e))e=e.substring(a[0].length),o+=this.renderer.codespan(r(a[2],!0));else if(a=this.rules.br.exec(e))e=e.substring(a[0].length),o+=this.renderer.br();else if(a=this.rules.del.exec(e))e=e.substring(a[0].length),o+=this.renderer.del(this.output(a[1]));else if(a=this.rules.text.exec(e))e=e.substring(a[0].length),o+=r(this.smartypants(a[0]));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return o},t.prototype.outputLink=function(e,t){var n=r(t.href),i=t.title?r(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,r(e[1]))},t.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/--/g,"—").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},t.prototype.mangle=function(e){for(var t,n="",i=e.length,r=0;r<i;r++)t=e.charCodeAt(r),Math.random()>.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},n.prototype.code=function(e,t){return t?'<pre><code class="lang-'+t+'">'+r(e)+"\n</code></pre>\n":"<pre><code>"+r(e,!0)+"\n</code></pre>"},n.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},n.prototype.html=function(e){return e},n.prototype.heading=function(e,t,n,i){return"<h"+t+">"+e+"</h"+t+">\n"},n.prototype.hr=function(){return"<hr>\n"},n.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+"</"+n+">\n"},n.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},n.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},n.prototype.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n<tbody>\n"+t+"</tbody>\n</table>\n"},n.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},n.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"},n.prototype.strong=function(e){return"<strong>"+e+"</strong>"},n.prototype.em=function(e){return"<em>"+e+"</em>"},n.prototype.codespan=function(e){return"<code>"+e+"</code>"},n.prototype.br=function(){return"<br>"},n.prototype.del=function(e){return"<del>"+e+"</del>"},n.prototype.link=function(e,t,n){var i='<a href="'+e+'"';return t&&(i+=' title="'+t+'"'),i+=">"+n+"</a>"},n.prototype.image=function(e,t,n){var i='<img src="'+e+'" alt="'+n+'"';return t&&(i+=' title="'+t+'"'),i+=">"},i.parse=function(e,t,n){return new i(t,n).parse(e)},i.prototype.parse=function(e){this.inline=new t(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var n="";this.next();)n+=this.tok();return n},i.prototype.next=function(){return this.token=this.tokens.pop()},i.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},i.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},i.prototype.tok=function(){var e,t,n,i,r,a,o,s;switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth);case"code":return this.renderer.code(this.token.text,this.token.lang);case"table":for(e="",t="",r="",n=0;n<this.token.header.length;n++)({header:!0,align:this.token.align[n]}),r+=this.renderer.tablecell(this.inline.output(this.token.header[n]),{header:!0,align:this.token.align[n]});for(e+=this.renderer.tablerow(r),n=0;n<this.token.cells.length;n++){for(i=this.token.cells[n],r="",a=0;a<i.length;a++)r+=this.renderer.tablecell(this.inline.output(i[a]),{header:!1,align:this.token.align[a]});t+=this.renderer.tablerow(r)}return this.renderer.table(e,t);case"blockquote_start":for(t="";"blockquote_end"!==this.next().type;)t+=this.tok();return this.renderer.blockquote(t);case"list_start":for(t="",o=this.token.ordered;"list_end"!==this.next().type;)t+=this.tok();return this.renderer.list(t,o);case"list_item_start":for(t="";"list_item_end"!==this.next().type;)t+="text"===this.token.type?this.parseText():this.tok();return this.renderer.listitem(t);case"loose_item_start":for(t="";"list_item_end"!==this.next().type;)t+=this.tok();return this.renderer.listitem(t);case"html":return s=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text),this.renderer.html(s);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText())}},o.exec=o,l.options=l.setOptions=function(e){return s(l.defaults,e),l},l.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,smartLists:!1,silent:!1,smartypants:!1,renderer:new n},l.Parser=i,l.parser=i.parse,l.Renderer=n,l.Lexer=e,l.lexer=e.lex,l.InlineLexer=t,l.inlineLexer=t.output,l.parse=l,"object"==typeof exports?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):this.marked=l}.call(function(){return this||("undefined"!=typeof window?window:global)}()),marked}]),function(e,t){"function"==typeof define?define(t):"undefined"!=typeof module?module.exports=t():this.klass=t()}(0,function(){function e(e){return r.call(t(e)?e:function(){},e,1)}function t(e){return typeof e===s}function n(e,t,n){return function(){var i,r=this.supr;return this.supr=n[u][e],i=t.apply(this,arguments),this.supr=r,i}}function i(e,i,r){for(var a in i)i.hasOwnProperty(a)&&(e[a]=t(i[a])&&t(r[u][a])&&l.test(i[a])?n(a,i[a],r):i[a])}function r(e,n){function r(){}function a(){this.init?this.init.apply(this,arguments):(n||l&&o.apply(this,arguments),c.apply(this,arguments))}r[u]=this[u];var o=this,s=new r,l=t(e),c=l?e:this,d=l?{}:e;return a.methods=function(e){return i(s,e,o),a[u]=s,this},a.methods.call(a,d).prototype.constructor=a,a.extend=arguments.callee,a[u].implement=a.statics=function(e,t){return e="string"==typeof e?function(){var n={};return n[e]=t,n}():e,i(this,e,o),this},a}var a=this,o=a.klass,s="function",l=/xyz/.test(function(){xyz})?/\bsupr\b/:/.*/,u="prototype";return e.noConflict=function(){return a.klass=o,this},a.klass=e,e}),
angular.module("neDirectives",["neObject"]).directive("neInitData",[function(){return{priority:1e3,restrict:"AE",compile:function(){return{pre:function(e,t,n){n.neInitData?e.$eval((n.neInitAs?n.neInitAs+"=":"")+n.neInitData):t.html()&&e.$eval((n.neInitAs?n.neInitAs+"=":"")+t.html()),n.neInitDone&&e.$eval(n.neInitDone)}}}}}]).service("neKeyPressHandler",[function(){return function(e,t,n){return function(i,r,a){function o(r){r.which===t&&(i.$apply(function(){i.$eval(a[e])}),n&&r.preventDefault())}var s;s="INPUT"===r[0].nodeName?r:angular.element(document),s.bind("keydown keypress",o),i.$on("$destroy",function(){s.unbind("keydown keypress",o)})}}}]).directive("neKeypressEnter",["neKeyPressHandler",function(e){return e("neKeypressEnter",13,!0)}]).directive("neKeypressEscape",["neKeyPressHandler",function(e){return e("neKeypressEscape",27,!0)}]).directive("neKeypressRight",["neKeyPressHandler",function(e){return e("neKeypressRight",39)}]).directive("neKeypressLeft",["neKeyPressHandler",function(e){return e("neKeypressLeft",37)}]).directive("neKeypressUp",["neKeyPressHandler",function(e){return e("neKeypressUp",38)}]).directive("neKeypressDown",["neKeyPressHandler",function(e){return e("neKeypressDown",40)}]).directive("neKeypressBackspace",["neKeyPressHandler",function(e){return e("neKeypressBackspace",8)}]).directive("neLoadingStart",["$timeout",function(e){return function(t,n,i){"IMG"===n[0].nodeName&&i.$observe("src",function(){e(function(){t.$eval(i.neLoadingStart)})})}}]).directive("neLoadingEnd",["$timeout",function(e){return function(t,n,i){function r(n){e(function(){t.$eval(i.neLoadingEnd)},5),n.preventDefault()}"IMG"===n[0].nodeName&&(n.bind("load",r),t.$on("$destroy",function(){n.unbind("load",r)}))}}]).directive("neStatusIcon",[function(){return{restrict:"A",compile:function(e,t){var n='<div class="right-inner-addon">'+("reverse"!==t.neStatusIcon?'<i class="fa fa-check text-success" ng-show="'+e.attr("ng-model")+'"></i>':"")+("reverse"===t.neStatusIcon?'<i class="fa fa-times text-danger" ng-show="!'+e.attr("ng-model")+'"></i>':"")+"</div>";e.wrap(n),e.removeAttr("status-icon")}}}]).directive("neMatchHrefPath",["$window","$location",function(e,t){return{priority:-100,link:function(n,i,r){function a(){(t.path()+"/").match(new RegExp("^"+o+"[/#?].*"))?i.addClass(l):i.removeClass(l)}var o,s,l=n.$eval(r.neMatchHrefPath)||r.neMatchHrefPath;if(l){if(r.href)try{o=n.$eval(r.href)}catch(e){o=r.href}else if(s=i.find("a")[0],o=s?s.getAttribute("href"):null,s&&o)try{o=n.$eval(o.replace("{{","").replace("}}",""))}catch(e){o=o}o&&-1===o.indexOf("#")?(o=o.replace(/^http:/g,"").replace(/^https:/g,"").replace(e.location.hostname,"").replace(/\/+/g,"/"),(e.location.pathname+"/").match(new RegExp("^"+o+"[/#?].*"))?i.addClass(l):i.removeClass(l)):o&&(o=o.match(/^([^\#]*)\#([^\#\?]*).*$/),o=o?o[o.length-1]:null,o&&n.$on("$locationChangeSuccess",a),a())}}}}]).directive("neFile",[function(){return{restrict:"E",template:'<input type="file" />',replace:!0,require:"ngModel",link:function(e,t,n,i){var r=function(){e.$apply(function(){var e,r;if(n.multiple||""===n.multiple){for(e=[],r=0;r<t[0].files.length;r++)e.push(t[0].files[r]);i.$setViewValue(e)}else i.$setViewValue(t[0].files[0])})};t.attr("accept",n.accept),t.bind("change",r)}}}]).constant("neFileDropAreaSystemFiles",["thumbs.db","desktop.ini",".DS_Store"]).service("neFileDropArea",["$q","neFileDropAreaSystemFiles",function(e,t){return this.bind=function(n,i,r,a){function o(e){e.stopPropagation(),e.preventDefault()}function s(e){o(e),g||(n.addClass("ne-dragover"),g=!0)}function l(e){o(e),n.removeClass("ne-dragover"),g=!1}function u(t){return e(function(e,n){t.file(e,n)})}function c(t){return e(function(e,n){t.readEntries(e,n)})}function d(n,i){return n.isFile?i&&t.indexOf(n.name)>-1?void 0:u(n):n.isDirectory?c(n.createReader()).then(function(t){var n,i,r=[];for(i=0;i<t.length;i++)(n=d(t[i],!0))&&r.push(n);return e.all(r).then(function(e){return[].concat.apply([],e)})}):void 0}function p(t){var n,i,r,a,o=t.dataTransfer.items;if(!o)return e.resolve(t.dataTransfer.files);if(!o[0].webkitGetAsEntry)return e.resolve(t.dataTransfer.files);for(n=[],i=[],a=0;a<o.length;a++)(r=d(o[a].webkitGetAsEntry()))&&i.push(r);return e.all(i).then(function(t){return n=[].concat.apply([],t),e.resolve(n)})}function f(e){l(e),p(e).then(function(e){var t,n=0,a=e[0];a&&(n+=a.fileSize,r?(t=new FileReader,t.onerror=function(e){alert("Cannot read file: "+e.target.error)},t.onload=function(e){return function(e){i(e.target.result)}}(),t[r](a)):i(e))}).catch(a)}var h=n[0],g=!1;return h.addEventListener("dragenter",s,!1),h.addEventListener("dragover",s,!1),h.addEventListener("dragleave",l,!1),h.addEventListener("drop",f,!1),{unbind:function(){g=null,h.removeEventListener("dragenter",s,!1),h.removeEventListener("dragover",s,!1),h.removeEventListener("dragleave",l,!1),h.removeEventListener("drop",f,!1)}}},this}]).directive("neFileDropArea",["neFileDropArea",function(e){return{restrict:"A",scope:{onError:"&neFileDropOnError",onDrop:"&neFileDrop",onDropAlias1:"&neFilesDrop",onDropAlias2:"&ondrop"},link:function(t,n,i,r){var a=i.neFileDropArea?new RegExp(i.neFileDropArea):null,o=e.bind(n,function(e){var n,i=[];for(n=0;n<e.length;n++)a&&!e[n].type.match(a)||i.push(e[n]);i.length&&(t.onDrop({files:i}),t.onDropAlias1({files:i}),t.onDropAlias2({files:i}))},null,function(e){t.onError({error:e})});t.$on("$destroy",o.unbind)}}}]).directive("neCopy",[function(){return{restrict:"A",link:function(e,t,n,i){function r(){e[s]=angular.copy(o)}function a(){var t,n=e[s];for(t in n)!n.hasOwnProperty(t)||"$"===t[0]&&"$"===t[1]||(o[t]=n[t])}var o=e.$eval(n.neCopy),s=e.alias||n.neCopyAlias||"$copy";e.$rollback=r,e.$commit=a,o.$commit=a,o.$rollback=r,e.$rollback()}}}]).directive("neFormChange",[function(){return{restrict:"A",require:"^form",link:function(e,t,n,i){e.$watch(function(){return i.$valid},function(t){e.$valid=e.$isValid=t,e.$eval(n.neFormChange)})}}}]).directive("neBindHtml",["$sce",function(e){return{restrict:"A",link:function(e,t,n){n.$observe("neBindHtml",function(e){t.html(e)})}}}]).filter("html",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]).filter("trusted",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]),angular.module("neDragdrop",[]).directive("draggable",[function(){return function(e,t,n){function i(e){return e.preventDefault(),!1}function r(t){var i;return n.drag&&(i=e.$apply(n.drag)),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",JSON.stringify(i||new Date)),this.classList.add("dragged"),!1}function a(t){return this.classList.remove("dragged"),n.dragEnd&&e.$apply(n.dragEnd),!1}var o=t[0];"false"===n.draggable?(o.addEventListener("dragstart",i),e.$on("$destroy",function(){o.removeEventListener("dragstart",i)})):(o.draggable=!0,o.addEventListener("dragstart",r),o.addEventListener("dragend",a),e.$on("$destroy",function(){o.removeEventListener("dragstart",r),o.removeEventListener("dragend",a)}))}}]).directive("droppable",[function(){return function(e,t,n){function i(t){return t.dataTransfer.dropEffect="move",t.preventDefault&&t.preventDefault(),(!n.droppable||n.droppable&&e.$apply(n.droppable))&&this.classList.add("dragover"),!1}function r(t){return(!n.droppable||n.droppable&&e.$apply(n.droppable))&&this.classList.add("dragover"),!1}function a(e){return this.classList.remove("dragover"),!1}function o(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault(),this.classList.remove("dragover");var i;try{i=JSON.parse(t.dataTransfer.getData("text")+"")}catch(e){}return n.drop&&(!n.droppable||n.droppable&&e.$eval(n.droppable))&&(e.$eval(n.drop,{data:i}),e.$apply()),!1}var s=t[0];s.addEventListener("dragover",i),s.addEventListener("dragenter",r),s.addEventListener("dragleave",a),s.addEventListener("drop",o),e.$on("$destroy",function(){s.removeEventListener("dragover",i),s.removeEventListener("dragenter",r),s.removeEventListener("dragleave",a),s.removeEventListener("drop",o)})}}]),angular.module("neGrid",["neObject","neLocal"]).run(["$templateCache",function(e){e.put("neGrid/pagination.html",'<div ng-if="!paginationDisabled" class="row text-{{fontSize}}"> <div class="col-xs-12 col-sm-9 col-md-10 text-center"> <div class="btn-group btn-group-{{size}}"> <button class="btn btn-default" ng-disabled="grid.prevDisabled" ng-click="grid.setPage(\'first\')"><span class="fa fa-fast-backward"></span></button> <button class="btn btn-default" ng-disabled="grid.prevDisabled" ng-click="grid.setPage(\'prev\')"><span class="fa fa-backward"></span></button> </div> <span> <span ng-if="grid.pagesCount"> {{\'page\'|translate}} </span> <input type="number" class="input-{{size}} width-sm" ng-model="grid.pagination.page" min="1" max="{{grid.pagination.pages||\'\'}}" ne-keypress-enter="grid.setPage(grid.pagination.page)"> <span ng-if="grid.pagesCount"> {{\'of\'|translate}} {{grid.pagesCount}} </span> <span ng-if="grid.pagesCount" class="hidden-xs">({{grid.pagination.count}} {{\'items\'|translate}})</span> </span> <div class="btn-group btn-group-{{size}}"> <button class="btn btn-default" ng-disabled="grid.nextDisabled" ng-click="grid.setPage(\'next\')"><span class="fa fa-forward"></span></button> <button class="btn btn-default" ng-disabled="grid.nextDisabled || !grid.pagesCount" ng-click="grid.setPage(\'last\')"><span class="fa fa-fast-forward"></span></button> </div> </div> <div class="col-sm-3 col-md-2 text-right hidden-xs"> <div class="input-group"> <input class="input-{{size}} width-sm" type="number" ng-model="grid.limit" ne-keypress-enter="grid.setPage(\'first\')" min="1" max="{{grid.maxLimit}}"> <span class="input-group-btn"> <button class="btn btn-default btn-{{size}}" ng-click="grid.setPage(\'first\')"><span class="fa fa-refresh"></span></button> </span> </div> </div></div>')}]).directive("neGridPagination",[function(){return{templateUrl:"neGrid/pagination.html",scope:{grid:"=neGridPagination"},link:function(e,t,n){e.size=n.neGridPaginationSize||"sm",e.fontSize="base","xs"===e.size&&(e.fontSize="sm"),"lg"===e.size&&(e.fontSize="lg")}}}]).directive("neGridUpdateBlur",["$timeout","neObject",function(e,t){return{restrict:"A",require:"?ngModel",link:function(e,n,i,r){function a(e){h=e,h?n.addClass(l):n.removeClass(l)}function o(t){s(),i.afterUpdate&&e.$eval(i.gridAfterUpdate)}function s(){a(!1),g=r.$viewValue}var l,u,c,d,p,f,h,g;if(r){if("ng-dirty"===(l=i.dirtyClass||"is-dirty"))throw new Error('dirtyClass cannot be equal to "ng-dirty", it is angular reserved class name');if(u=(i.neGridUpdateBlur||"").split(","),c=u[0]||"grid",d=u[1]||"item",p=t.deepGet(e,c),f=t.deepGet(e,d),!p)throw new Error('Scope has not grid with name "'+c+'"');if(!f)throw new Error('Scope has not grid item with name "'+d+'"');h=!1,n.on("blur",function(){h&&p.updateItem(f,o)}),n.bind("keydown keypress",function(e){13===e.which&&h&&"INPUT"===n[0].nodeName&&(p.updateItem(f,o),e.preventDefault())}),g="",e.$watch(r.$viewValue,function(){g=r.$viewValue}),r.$viewChangeListeners.push(function(){a(g!==r.$viewValue?!0:!1)})}}}}]).factory("NeGrid",["$timeout","neObject",function(e,t){function n(e){var S,O=[{},n.defaults];for(S=0;S<arguments.length;S++)O.push(arguments[S]);return e=angular.merge.apply(angular,O),this.id=e.id,this.idKey=e.idKey||"id",this.defaultLimit=e.defaultLimit||10,this.limit=e.limit||this.defaultLimit,this.maxLimit=e.maxLimit||100,this.defaultQuery=e.defaultQuery||{},this.defaultSort=e.defaultSort||{},this.interceptLoad=e.interceptLoad||e.beforeLoad||e.loadInterceptor,this.onQuery=e.onQueryChange||e.onQuery||e.onFilter,this.onLoad=e.onLoad,this.onFill=e.onFill||e.onData,this.onSelect=e.onSelect,this.onFocus=e.onFocus,this.onUpdate=e.onUpdate,this.onCreate=e.onCreate,this.onRemove=e.onRemove,this.resource=e.restResource||e.resource,this.getResourceMethod=e.getResourceMethod||e.resourceMethod||("function"==typeof this.resource?this.resource:null)||r,this.autoLoad=e.autoLoad||e.loadOnChange,this.multiSelect=e.multiSelect||e.multiselect||!1,this.silentMode=!1,this.pagination={page:e.page||this.defaultQuery.$page||1},this.page=this.pagination.page,this.pagesCount=1,this.query=t.extend("data",{},e.query||{},{$page:this.page,$limit:this.limit},this.defaultQuery),this.sort=t.extend("data",{},this.defaultSort||{},e.sort||{}),this.items=[],this.disabled=!0,this.doSilent=this.doSilent,this.fillItems=a,this.addItems=o,this.addItem=o,this.appendItems=o,this.appendItem=o,this.prependItems=s,this.prependItem=s,this.setSort=l,this.setSortSilent=i("setSort"),this.setSortBy=u,this.setSortBySilent=i("setSortBy"),this.updateQuery=f,this.updateQuerySilent=i("updateQuery"),this.setQuery=p,this.setQuerySilent=i("setQuery"),this.setFilter=p,this.setFilterSilent=i("setQuery"),this.setPage=d,this.setPageSilent=i("setPage"),this.load=c,this.refresh=c,this.createItem=h,this.updateItem=g,this.refreshItem=m,this.removeItem=b,this.selectItem=$,this.selectAll=x,this.toggleItemSelection=w,this.toggleSelection=k,this.focusItem=y,this.getFocusedItem=v,this.getSelectedItems=C,this.clearSelection=D,this}function i(e){return function(){var t=this;return t.silentMode=!0,t[e].apply(t,arguments),t.silentMode=!1,t}}function r(e,t){if(!this.resource)throw new Error("NeGrid: resource is undefined");return this.resource[e]}function a(e,t){var n=this;return t=t||{},n.items=e,n.pagination=t,n.pagesCount=Math.ceil(t.count/n.limit),t.page<=1?n.prevDisabled=!0:n.prevDisabled=!t.prev,t.spage>=n.pagesCount?n.nextDisabled=!0:n.nextDisabled=!t.next,"function"!=typeof n.onFill||n.silentMode||n.onFill(n.items,n.pagination,n.query),this}function o(e){return e=Array.isArray(e)?e:[e],Array.prototype.push.apply(this.items,e),this}function s(e){return e=Array.isArray(e)?e:[e],Array.prototype.unshift.apply(this.items,e),this}function l(e,t){var n=this;return n.sort=e,n.setPage("first",t)}function u(e,t){if(e){var n={};return n[e]=t||this.sortDir,this.setSort(n)}}function c(e,t){var n=this;return(!n.interceptLoad||n.interceptLoad&&!1!==n.interceptLoad(n.query))&&(n.disabled=!0,n.lastFindReqId=n.getResourceMethod("find")(n.query,function(t,i){n.lastFindReqId&&n.lastFindReqId!==this.requestId||("function"==typeof n.onLoad&&n.onLoad(t,i),n.fillItems(t,i),e&&e(),n.disabled=!1)},t)),n}function d(e,t,n){var i,r;return"function"==typeof arguments[0]&&(t=arguments[0],e=null),i=this,r="number"==typeof e?e:"first"===e?1:"next"===e?i.pagination.page+1:"last"===e?i.pagesCount:"prev"===e?i.pagination.page-1:"refresh"===e||null===e?i.pagination.page||1:1,i.pagesCount&&r>i.pagesCount&&"number"!=typeof e&&(r=i.pagesCount+0),r<=0&&(r=1),i.page=r,i.updateQuery(n),i.autoLoad&&!i.silentMode?i.load(t):(t&&t(),i)}function p(e,n){var i=this;return i.query=t.extend("data",{},i.defaultQuery||{},e||{}),i.setPage(i.query.$page||"first",n,e),i}function f(e){var n,i=this;return e=e||{},i.page=e.$page||i.page,i.limit=e.$limit||i.limit,i.sort=e.$sort||i.sort,i.page&&("number"!=typeof i.page||i.page<=0)&&(i.page=1),!i.limit||i.limit<0?i.limit=i.defaultLimit:i.limit>i.maxLimit&&(i.limit=i.maxLimit),n=t.extend("data",{},e,{$limit:i.limit,$sort:{},$page:i.page}),i.sort&&(n.$sort=i.sort),n.$sort=t.extend("data",{},i.defaultSort||{},n.$sort||{}),0===Object.keys(n.$sort).length&&delete n.$sort,delete i.query.$page,delete i.query.$sort,delete i.query.$limit,i.query=t.extend("data",n,i.query||{}),i.onQuery&&!i.silentMode&&i.onQuery(i.query),i}function h(e,t,n){var i=this;return i.getResourceMethod("create",e)(e,function(n){i.setPage("first",t),"function"==typeof i.onCreate&&i.onCreate(e),i.autoLoad||i.load(t)},n),i}function g(e,n,i){var r=this;return r.getResourceMethod("update",e)(e,function(i){var a=r.items.indexOf(e),o=angular.copy(e);r.items[a]=t.extend("data",r.items[a],i),r.onUpdate&&r.onUpdate(r.items[a],o),n&&n(r.items[a])},i),r}function m(e,n,i){var r=this,a=r.idKey,o={};return o[a]=t.deepGet(e,a),r.getResourceMethod("find",e)(o,function(i,a){var o=r.items.indexOf(e);r.items[o]=t.extend("data",r.items[o],i[0]),n&&n(r.items[o])},i),r}function b(e,t,n){var i=this;return i.getResourceMethod("remove",e)(e,function(n){i.items.splice(i.items.indexOf(e),1),i.onRemove&&i.onRemove(e),t&&t(e)},n),i}function y(e){var t,n=this;if(!0===e.$focused)return n;for(t=0;t<n.items.length;t++)n.items[t].$focused=!1;return e.$focused=!0,n.focusedItem=e,"function"==typeof n.onFocus&&n.onFocus(e),n}function v(){var e,t=this;for(e=0;e<t.items.length;e++)if(!0===t.items[e].$focused)return t.items[e]}function $(e,t){var n,i=this;if(!i.multiSelect)for(n=0;n<i.items.length;n++)delete i.items[n].$selected;return e.$selected="boolean"==typeof t?t:!e.$selected,"function"==typeof i.onSelect&&i.onSelect(e),i}function w(e){return this.selectItem(e)}function x(e){var t,n=this;if(!n.multiSelect)return n;for(t=0;t<n.items.length;t++)n.selectItem(n.items[t],e);return n}function k(){return this.selectAll()}function D(){var e,t=this;for(e=0;e<t.items.length;e++)delete t.items[e].$selected;return t}function C(){var e,t=this,n=[];for(e=0;e<t.items.length;e++)!0===t.items[e].$selected&&n.push(t.items[e]);return n}return n.defaults={},n.define=n.create=function(e){return new n(e)},n}]),angular.module("neLoading",[]).constant("neLoadingDebounce",350).constant("neLoadingEndDelay",300).factory("neLoading",["$timeout","neLoadingDebounce","neLoadingEndDelay",function(e,t,n){function i(e){var t=0,n=e/100;return t=n>=0&&n<.25?(3*Math.random()+3)/100:n>=.25&&n<.65?3*Math.random()/100:n>=.65&&n<.9?2*Math.random()/100:n>=.9&&n<.99?.005:0,e+Math.ceil(100*t)}var r={requestCount:0,isLoading:function(){return r.requestCount>0},statusTimeout:null,status:0,prevStatus:0,lastStart:(new Date).getTime(),statusListeners:[],fireStatusListeners:function(t){for(var n=0;n<r.statusListeners.length;n++)!function(n){e(function(){r.statusListeners[n](void 0!==t?t:r.status)},0,!1)}(n)},setStatus:function(a){if(r.statusTimeout&&e.cancel(r.statusTimeout),!(a<0)){r.prevStatus=r.status+0,r.status=a;var o=(new Date).getTime();0===r.prevStatus&&a>0&&(r.lastStart=o),o-r.lastStart>t&&r.fireStatusListeners(r.status),r.status>0&&r.status<99?r.statusTimeout=e(function(){r.setStatus(i(r.status))},t,!1):r.status>=100&&(r.status=0,r.prevStatus=0,r.statusTimeout=e(function(){r.setStatus(0),r.fireStatusListeners(0)},n,!1))}},reqStarted:function(e){0===r.status&&r.setStatus(1),r.requestCount++,e&&console.log(e,r.requestCount,r.status)},reqEnded:function(e){r.requestCount>0&&r.requestCount--,e&&console.log(e,r.requestCount,r.status),0===r.requestCount&&r.setStatus(100)}};return r}]).factory("neLoadingInterceptor",["$q","$cacheFactory","neLoading",function(e,t,n){function i(e){var n,i;return!!e&&("GET"!==e.method||!1===e.cache?(e.cached=!1,!1):(n=!0===e.cache?t.get("$http"):e.cache,i=void 0!==n&&void 0!==n.get(e.url),void 0!==e.cached&&i!==e.cached?e.cached:(e.cached=i,i)))}return{request:function(e){return e.ignoreLoading||i(e)||n.reqStarted(),e},response:function(e){return e.config.ignoreLoading||i(e.config)||n.reqEnded(),e},responseError:function(t){return t.config.ignoreLoading||i(t.config)||n.reqEnded(),e.reject(t)}}}]).config(["$httpProvider",function(e){e.interceptors.push("neLoadingInterceptor")}]).controller("NeLoadingCtrl",["$scope","neLoading",function(e,t){t.statusListeners.push(function(t){e.status=t,e.loading=t>0,e.$digest()})}]),angular.module("neLocal",[]).provider("neLocal",[function(){var e="default",t={default:{common:{}}},n="/";return this.translate=function(i){var r,a;return void 0===i||null===i?"":(r=i+"",a=t[e]||{},a.common=a.common||{},(a[n]?a[n][r]:null)||a.common[r]||(t.default[n]?t.default[n][r]:null)||t.default.common[r]||r||"")},this.setPath=function(e){n=e},this.language=function(t){return t&&(e=t),e},this.languages=function(e){return e?t[e]:t},this.getLanguageId=function(){return e},this.getLanguagePath=function(){return n},this.set=this.translations=function(e,n,i,r){if(t[e]=t[e]||{},t[e].common=t[e].common||{},4===arguments.length)t[e][n]=t[e][n]||{},t[e][n][i]=r;else if(3===arguments.length&&angular.isObject(i))t[e][n]=t[e][n]||{},angular.extend(t[e][n],i);else if(3===arguments.length)r=arguments[2],i=arguments[1],t[e].common[i]=r;else{if(2!==arguments.length)throw new Error("Wrong arguments");i=arguments[1];var a=angular.isObject(i.common);angular.extend(a?t[e]:t[e].common,i)}},this.$get=function(){return this},this}]).run(["$rootScope","$location","neLocal",function(e,t,n){e.$on("$routeChangeStart",function(e,i,r){n.setPath(t.path())})}]).filter("neTranslate",["neLocal",function(e){return function(t,n,i){return e.translate(t)}}]).filter("translate",["neLocal",function(e){return function(t,n,i){return e.translate(t)}}]),angular.module("neMenu",[]).factory("NeMenu",["$document","$timeout",function(e,t){function n(e,t){var n,i;if("string"!=typeof e)throw new Error("NeMenu: menu ID is required !");return r[e]?r[e]:(n={id:e},i=angular.merge(this,n,t||{}),i.items=[],r[e]=i,i)}function i(n){t(function(){function i(){t(function(){n.selected=!1,e.unbind("click",i)})}e.bind("click",i)},0,!1)}var r={};return n.prototype.set=function(e,t){var n=this;return n[e]=t,n.onChange&&n.onChange(e,t),n},n.prototype.toggle=function(e){var t=this;return t[e]=!t[e],t.onChange&&t.onChange(e,t[e]),t},n.prototype.select=n.prototype.selectItem=function(e,t){var n,r,a=this;for(t&&(e.onSelect||e.children&&e.children.length)&&(t.preventDefault(),e.selected||i(e)),r=0;r<a.items.length;r++)a.items[r].selected&&(n=a.items[r]),a.items[r]===e?a.items[r].selected=!a.items[r].selected:a.items[r].selected=!1;return a.onSelect&&a.onSelect(e,n),e.onSelect&&e.onSelect(e,n),a},n.prototype.get=n.prototype.getItem=function e(t,n){var i,r,a=this,o=(n?n.children:a.items)||[];for(r=0;r<o.length;r++)if(o[r].id===t)return o[r];for(r=0;r<o.length;r++)if(o[r].children&&(i=e(t,o[r])))return i},n.get=function(e){return r[e]},n}]),angular.module("neModals",[]).factory("neModals",["$timeout","$sce",function(e,t){function n(e){e=e||i.defaults;for(var n in e)this[n]=e[n];return this.id=e.id||"modal_"+Object.keys(i.items).length,this.backdrop=!0,!1===e.backdrop&&(this.backdrop=!1),this.backdropOpacity=this.backdropOpacity||i.defaults.backdropOpacity,this.css=this.css||i.defaults.css,this.zIndex=i.defaults.zIndex,this.showAfterCreate=void 0===this.showAfterCreate||this.showAfterCreate,this.removeOnClose=void 0===this.removeOnClose||this.removeOnClose,this.destroyOnClose=void 0===this.destroyOnClose||this.destroyOnClose,this.html=this.html?t.trustAsHtml(this.html):"",this.include=this.include||this.templateUrl||this.bodyTemplateUrl,this.allowResize=void 0===this.allowResize?i.defaults.allowResize:this.allowResize,this.show=this.open=function(){this.visible||(this.visible=!0,0===i.opened&&angular.element(document.getElementsByTagName("body")).addClass("modal-open"),i.opened++,this.zIndex=i.defaults.zIndex+11*i.opened,i.fireChangeListeners())},this.hide=this.close=function(){this.visible&&(this.visible=!1,i.opened--,this.removeOnClose&&this.destroyOnClose&&i.remove(this.id),0===i.opened&&angular.element(document.getElementsByTagName("body")).removeClass("modal-open"),i.fireChangeListeners(),"function"==typeof this.onClose&&this.onClose())},i.items[this.id]=this,this.showAfterCreate?this.show():i.fireChangeListeners(),this}var i={items:{},defaults:{visible:!1,backdrop:!0,backdropOpacity:.4,css:"",removeOnClose:!1,destroyOnClose:!1,showAfterCreate:!0,title:"modal title",allowResize:!0,zIndex:1040,text:"",html:"",include:"",buttons:[{text:"Cancel",disabled:!1,css:"btn-default",click:function(){}},{text:"Ok",disabled:!1,css:"btn-primary",click:function(){}}]},opened:0,changeListeners:[],fireChangeListeners:function(){for(var t=0;t<this.changeListeners.length;t++)!function(t){e(function(){i.changeListeners[t](i.items)},0,!1)}(t)}};return i.create=function(e){return new n(e)},i.get=function(e){return i.items[e]},i.remove=function(e){delete i.items[e]},i}]).controller("NeModalsCtrl",["$scope","neModals",function(e,t){t.changeListeners.push(function(t){e.modals=t,e.$digest()})}]).directive("neModalsContainer",[function(){return{templateUrl:"neModals/container.html"}}]).run(["$templateCache",function(e){e.put("neModals/container.html",'<div ng-controller="NeModalsCtrl"> <div ng-repeat="(id,modal) in modals"> <div class="modal ng-hide" ng-show="modal.visible" style="z-index:{{modal.zIndex}};"> <div class="modal-dialog {{modal.css}}" ng-class="{\'modal-full\':modal.wide,\'modal-lg\':modal.large||modal.lg,\'modal-xs\':modal.small||modal.xs}"> <div class="modal-content"> <div class="modal-header"> <button class="close" ng-click="modal.hide()"><i class="fa fa-times fa-fw fa-lg"></i></button> <button class="close" ng-if="modal.allowResize" ng-click="modal.wide = !modal.wide"> <i style="font-size:15px;margin-right:5px;" class="fa fa-fw" ng-class="{\'fa-expand\':!modal.wide,\'fa-compress\':modal.wide}"></i> </button> <h4 class="modal-title">{{modal.title|translate}}</h4> </div> <div class="modal-body"> {{modal.text|translate}} <div ng-bind-html="modal.html"></div> <div ng-include="modal.include"></div> </div> <div class="modal-footer" ng-show="modal.buttons"> <button ng-repeat="button in modal.buttons" type="button" ng-disabled="button.disabled" class="{{button.css}}" ng-click="button.click()">{{button.text|translate}}</button> </div> </div> </div> </div> <div class="modal-backdrop in" ng-show="modal.visible && modal.backdrop" ng-style="{\'z-index\':modal.zIndex-10,\'opacity\':modal.opacity}"></div> </div></div>')}]),angular.module("neNotifications",["neLoading"]).factory("neNotifications",["$timeout",function(e){function t(e,t,n,i){2===i.length&&"string"!=typeof i[1]&&(i[1],i[0],"")}var n=this;return n.timeout=3e3,n.queue=[],n.changeListeners=[],n.fireListeners=function(){for(var t=0;t<n.changeListeners.length;t++)!function(t){e(function(){n.changeListeners[t](n.queue)},0,!1)}(t)},n.add=n.show=n.create=function(t,i,r,a,o){function s(){n.remove(this.id)}function l(e){e=e||{},delete e.id;var t=n.getIndex(this.id);return t>-1&&(n.queue[t]=angular.merge(this,e)),n.fireListeners(),this}function u(t){var i,r=this;r.timeoutPromise&&e.cancel(r.timeoutPromise),r.fixed||"number"!=typeof t||(i=r.timeout-((new Date).getTime()-r.showTime),i=i<0?0:i,r.showTime=(new Date).getTime(),r.timeout=i+t,r.timeoutPromise=e(function(){n.remove(r.id)},r.timeout,!1))}var c,d,p,f={};return 4===arguments.length&&"string"!=typeof arguments[3]?(o=arguments[3],a=""):3===arguments.length&&"string"!=typeof arguments[2]?(o=arguments[2],r=arguments[1],i=""):2===arguments.length&&"string"!=typeof arguments[2]?(o=arguments[1],r=arguments[0],i="",t="info"):2===arguments.length&&"string"==typeof arguments[2]?(r=arguments[1],i=""):1===arguments.length&&angular.isObject(arguments[0])&&(f=arguments[0],t=f.type,i=f.title,a=f.icon,r=f.text,o=f.timeout),"error"!==t&&"danger"!==t||(t="danger"),c=(new Date).getTime()+Math.floor(100*Math.random()+1),d=angular.merge(f,{id:f.id||c,type:t,title:i,icon:a,text:r,timeout:0,fixed:!1,close:s,hide:s,destroy:s,update:l,postpone:u}),d.include=f.bodyTemplateUrl||f.include,p=n.getIndex(d.id),p>-1?n.queue[p]=d:n.queue.push(d),n.fireListeners(),!1!==o&&0!==o?(d.timeout=parseInt(o,10),d.showTime=(new Date).getTime(),d.timeoutPromise=e(function(){n.remove(d.id)},d.timeout||n.timeout,!1)):d.fixed=!0,d},n.error=n.danger=n.danger=function(e,i,r){return t(e,i,r,arguments),this.show("error",e,i,"fa fa-exclamation-circle fa-2x",void 0!==r?r:2*n.timeout)},n.success=function(e,n,i){return t(e,n,i,arguments),this.show("success",e,n,"fa fa-check-circle fa-2x",i)},n.warning=function(e,n,i){return t(e,n,i,arguments),this.show("warning",e,n,"fa fa-warning fa-2x",i)},n.info=function(e,n,i){return t(e,n,i,arguments),this.show("info",e,n,"fa fa-info-circle fa-2x",i)},n.getIndex=function(e){for(var t=0;t<n.queue.length;t++)if(n.queue[t].id===e)return t},n.get=function(e){return n.queue[n.getIndex(e)]},n.remove=n.hide=function(e){var t=n.getIndex(e);-1!==t&&(n.queue.splice(t,1),n.fireListeners())},n}]).controller("NeNotificationsCtrl",["$scope","neNotifications",function(e,t){t.changeListeners.push(function(t){e.notifications=t,e.$digest()})}]).directive("neNotificationsContainer",[function(){return{templateUrl:"neNotifications/container.html"}}]).run(["$templateCache",function(e){e.put("neNotifications/container.html",'<div class="notification-container" ng-controller="NeNotificationsCtrl"> <div ng-show="true" class="ng-hide"> <div ng-repeat="n in notifications" class="alert alert-{{n.type}}" ng-class="{expanded:n.expanded}" ng-click="n.fixed=true;n.postpone()" ng-mouseenter="n.postpone()" ng-mouseleave="n.postpone(1000)"> <i class="alert-pin fa fa-thumb-tack" ng-if="n.fixed"></i> <i class="alert-expand fa" ng-class="{\'fa-expand\':!n.expanded,\'fa-compress\':n.expanded}" ng-click="n.expanded=!n.expanded;n.fixed=true"></i> <i class="alert-close fa fa-times" ng-click="n.close()"></i> <table style="width:100%;word-wrap:break-word" class="table-fixed"> <tr> <td style="width:40px"> <i class="{{n.icon}}"></i> </td> <td style="padding:0px 5px"> <div class="notification-content" ng-if="!n.include"> <strong ng-if="n.title"><span ne-bind-html="{{n.title|translate}}"></span><br></strong> <span ne-bind-html="{{n.text|translate}}"></span> </div> <div ng-if="n.include" ng-include="n.include"></div> </td> </tr> </table> </div> <div class="alert alert-default" ng-show="loading" ng-controller="NeLoadingCtrl"> <table style="width:100%"> <tr> <td style="width:40px"> <i class="fa fa-fw fa-spinner fa-spin fa-2x"></i> </td> <td style="padding:0px 5px"> <strong>{{::\'Loading...\'|translate}}</strong> </td> </tr> </table> </div> </div></div>')}]),angular.module("neObject",[]).factory("neObject",["$timeout",function(e){function t(e){var t,n,i;if(!e||"[object Object]"!==Object.prototype.toString.call(e)||e.nodeType||e.setInterval)return!1;if(t=hasOwnProperty.call(e,"constructor"),n=hasOwnProperty.call(e.constructor.prototype,"isPrototypeOf"),e.constructor&&!t&&!n)return!1;for(i in e);return void 0===i||D.call(e,i)}function n(){var e,n,r,a,o,s,l=this.extendReservedInstances,u=this,c=arguments[0]||{},d=1,p=arguments.length,f=!1;for("boolean"!=typeof c&&"data"!==c||(f=c,c=arguments[1]||{},d=2),"object"!=typeof c&&"function"!=typeof c&&(c={});d<p;d++){if(e=arguments[d],i(e,l))return c=e;if(null!==e)for(n in e)if(r=c[n],a=e[n],i(a,l))c[n]=a;else if(c!==a)if(f&&a&&(t(a)||(o=Array.isArray(a)))){if(o){if(o=!1,"data"===f){c[n]=a.slice(0);continue}s=r&&Array.isArray(r)?r:[]}else s=r&&t(r)?r:{};c[n]=u.extend(f,s,a)}else c[n]=a}return c}function i(e,t){for(var n=0;n<t.length;n++)if(e instanceof t[n])return!0;return!1}function r(e,t,n){var i,a;if(angular.isObject(e)){n=n||"";for(a in e)angular.isObject(e[a])&&r(e[a],t,""===n?a:n+"."+a),i=t(""===n?a:n+"."+a,a,e[a]),void 0===i?delete e[a]:e[a]=i}}function a(e,t,n,i){var r,a=t.split("."),o=e
;if("this"===t)"push"===i?e.push(n):e=n.toString();else for(r=0;r<a.length;r++)r>=a.length-1?"push"===i?o[a[r]].push(n):o[a[r]]=n:o[a[r]]=void 0===o[a[r]]||null===o[a[r]]?{}:o[a[r]],o=o[a[r]];return e}function o(e,t){var n,i,r;if((e||!1===e||0===e)&&"function"!=typeof e){if("this"===t)return e;for(n=t.split("."),i=e,r=0;r<n.length;r++){if(!i[n[r]]&&!1!==i[n[r]]&&0!==i[n[r]])return;i=i[n[r]]}if("function"!=typeof i)return i}}function s(e,t){var n,i;if(e=e||{},t=t||"",n=t.split("."),0!==n.length){if(1===n.length)return void delete e[n[0]];for(i=0;i<n.length-1;i++)if(!(e=e[n[i]]))return;delete e[n[n.length-1]]}}function l(e,t,n){var i,r;2===arguments.length?$(e)?(i=e,n=arguments[1]):(n=arguments[1],t=1):(i={},i[e]=t);for(r in i)"asc"===i[r]&&(i[r]=1),"desc"===i[r]&&(i[r]=-1);return n.sort(function(e,t){for(var n in i){if(o(e,n)>o(t,n))return i[n];if(o(e,n)<o(t,n))return-i[n]}return 0}),n}function u(e,t,n){var i,r=[];for(i in e)"$key"!==i&&"$sortIndex"!==i&&e.hasOwnProperty(i)&&(e.$key=i,t&&(e.$sortIndex=o(e[i],t)),r.push(e[i]));return t?l("$sortIndex",n||"asc",r):r}function c(e,t){var n,i,r;if(!angular.isArray(e)||!t)return{};for(n={},r=0;r<e.length;r++)i=o(e[r],t),n[i]=e[r];return n}function d(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function p(e){return e&&e.window===e}function f(e){return e&&e.$evalAsync&&e.$watch}function h(e){if("$"===e[0]&&"$"===e[1])return!0}function g(e,t,n){if(n=n||h,e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var i,r,a,o=typeof e,s=typeof t;if(o==s&&"object"==o){if(!angular.isArray(e)){if(angular.isDate(e))return!!angular.isDate(t)&&g(e.getTime(),t.getTime(),n);if(d(e))return!!d(t)&&e.toString()==t.toString();if(f(e)||f(t)||p(e)||p(t)||angular.isArray(t)||angular.isDate(t)||d(t))return!1;a=Object.create(null);for(r in e)if(!n(r)&&!angular.isFunction(e[r])){if(!g(e[r],t[r],n))return!1;a[r]=!0}for(r in t)if(!(r in a)&&!n(r)&&angular.isDefined(t[r])&&!angular.isFunction(t[r]))return!1;return!0}if(!angular.isArray(t))return!1;if((i=e.length)==t.length){for(r=0;r<i;r++)if(!g(e[r],t[r],n))return!1;return!0}}return!1}function m(t,n,i){n=angular.isUndefined(n)?0:n,i=!!angular.isUndefined(i)||i;var r;return function(){var a,o;return r&&e.cancel(r),a=this,o=arguments,r=e(function(){r=null,t.apply(a,o)},n,i)}}function b(e,t){var n,i,r,a;if(void 0===t&&(t=!0),"string"==typeof e&&(i=e.match(t?S:C)))return r=Date.parse(i[0]),isNaN(r)||(e=new Date(r)),e;if("object"!=typeof e)return e;for(a in e)n=e[a],"string"==typeof n&&(i=n.match(t?S:C))?(r=Date.parse(i[0]),isNaN(r)||(e[a]=new Date(r))):"object"==typeof n&&b(n,t);return e}function y(e,t){var n;try{n=JSON.parse(e)}catch(e){}return b(n,t)}function v(e,t){var n,i;if("object"!=typeof e||!t)return e;for(n in e)e.hasOwnProperty(n)&&(i=e[n],0===n.indexOf(t)?delete e[n]:"object"==typeof i&&v(i,t))}function $(e){return"[object Object]"===Object.prototype.toString.call(e)}function w(e){return Array.isArray(e)}function x(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function k(){return x()+x()+"-"+x()+"-"+x()+"-"+x()+"-"+x()+x()+x()}var D=Object.prototype.hasOwnProperty,C=/^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/,S=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/;return{isObject:$,isArray:w,sortArray:l,extendReservedInstances:[File,FileList,Blob],extend:n,merge:n,setObjValue:a,deepSet:a,getObjValue:o,deepGet:o,deepReplace:r,deepRemove:s,deepEquals:g,deepEqual:g,objectToArray:u,arrayToObject:c,dateStringsToDates:b,fromJson:y,fromJSON:y,removePrefixedProps:v,debounce:m,guid:k}}]),angular.module("neQuery",["neLocal","neObject"]).config(["neLocalProvider",function(e){e.set("default",{$eq:"=",$lt:"<",$lte:"<=",$gt:">",$gte:">=",$regex_exact:"exact match",$regex_contains:"contains",$regex_begins:"begins with",$regex_ends:"ends with",$in:"is in",$ne:"not equal to",$regex_ncontains:"not contains",$regex_nbegins:"not begins with",$regex_nends:"not ends with",$nin:"is not in",$regex:"custom regex",$size:"items count",$exists:"exists",$and:"and",$or:"or",OR:"OR",AND:"AND",choose:"(choose)",qtype_short_number:"0-9",qtype_short_date:"Date",qtype_short_datetime:"Time",qtype_short_boolean:"Y/N",qtype_short_string:"A-Z",qtype_short_array:"[A]",qtype_short_object:"{O}",qtype_number:"Number",qtype_date:"Date",qtype_datetime:"Date & Time",qtype_boolean:"Boolean",qtype_string:"Text",qtype_array:"Array",qtype_object:"Object",qvalue_true:"True",qvalue_false:"False",Search:"Search","Order By":"Order By","choose field":"choose field","type value":"type value","empty value":"empty value"})}]).run(["$templateCache",function(e){e.put("neQuery/query.html",'<div class="visible-inline-block"><div ng-repeat-start="query in query track by $index" class="visible-inline-block" style="position:relative;margin:2px" ng-style="{\'margin-top\':$first ? \'0px\' : \'2px\'}"> <small ng-if="!$first && query.logical===\'OR\' && !query.length">{{query.logical | translate}}<br></small> <div ng-if="!query.length" class="visible-inline-block"> <div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <button ng-if="query.onlyPredefinedFields" class="btn btn-sm btn-default" ng-disabled="disabled" uib-dropdown-toggle style="width:142px"> <span class="nowrap" ng-if="query.fieldName">{{query.fieldName}}</span><span class="nowrap" ng-if="!query.fieldName">{{::\'choose field\'|translate}}</span> </button> <input ng-if="!query.onlyPredefinedFields" type="text" ng-disabled="disabled" placeholder="{{::\'choose field\'|translate}}" class="input-sm" uib-dropdown-toggle ng-change="query.setFieldByName(query.fieldName);onChange()" ng-model="query.fieldName"/> <ul ng-if="query.fields.filterByName(query.fieldName, query.field.name).length" class="dropdown-menu" style="max-height:250px;overflow:auto"> <li ng-repeat="field in query.fields.filterByName(query.fieldName, query.field.name)" ng-class="{\'active\':(field.name===query.fieldName)}"> <a href="" ng-click="query.setField(field);onChange()">\t\t\t {{field.name}}\t\t\t </a> </li> </ul> </div> <div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <button ng-disabled="query.field.disableOperator || disabled" class="btn btn-default btn-sm btn-intensive" uib-dropdown-toggle style="width:120px"> <span class="class="nowrap"">{{query.operator | translate}} </span> </button> <ul class="dropdown-menu" style="min-width:210px;overflow:auto"> <li ng-if="!query.field.disableType" class="text-center" style="padding-top:4px"> <div class="btn-group btngroup-xs"> <button class="btn btn-default btn-xs" ng-class="{\'btn-success\':(query.type.name===type)}" style="padding:2px;" uib-tooltip="{{\'qtype_\'+type | translate}}" tooltip-append-to-body="true" ng-repeat="type in query.types" ng-click="query.setType(type);$event.stopPropagation();"> {{\'qtype_short_\'+type | translate}} </button> </div> </li> <li ng-if="!query.field.disableType" class="divider"></li> <li ng-repeat="operator in query.type.operators" ng-if="!query.field.allowedOperatorIndexes || query.field.allowedOperatorIndexes.indexOf($index)>-1" ng-class="{\'active\':(query.operator===operator)}"> <a href="" ng-click="query.setOperator(operator);onChange()">\t\t\t <span>{{operator | translate}}</span>\t\t\t </a> </li> </ul> </div> <div class="visible-inline-block" ne-query-value="query"></div> <div class="btn-group btn-group-xs" ng-if="!disabled"> <button class="btn btn-default" ng-click="query.next(\'AND\');onChange()">{{::\'AND\' | translate}}</button> <button class="btn btn-default" ng-click="query.next(\'OR\');onChange()">{{::\'OR\' | translate}}</button> <button class="btn btn-default" ng-click="query.levelDown();onChange()"><i class="fa fa-fw fa-level-down"></i></button> <button class="btn btn-default" ng-click="close();query.remove();onChange()"><i class="fa fa-fw fa-minus"></i></button> </div> </div> <div ng-if="query.length" class="visible-inline-block" style="position:relative;"> <small>{{ ($first ? \' \' : query.logical) | translate}}<br></small> <div class="btn-group btn-group-xs" style="position:absolute;right:0px;top:1px" ng-if="!disabled"> <button class="btn btn-default" style="border:1px dashed #999;border-right:none;color:#999;border-bottom: 1px solid transparent;" ng-click="query.next(\'AND\')">{{::\'AND\' | translate}}</button> <button class="btn btn-default" style="border:none;border-top:1px dashed #999;color:#999;border-bottom: 1px solid transparent;" ng-click="query.next(\'OR\')">{{::\'OR\' | translate}}</button> <button class="btn btn-default" style="border:1px dashed #999;border-left:none;color:#999;border-bottom: 1px solid transparent;" ng-click="close();query.remove()"><i class="fa fa-minus"></i></button> </div> <div class="query-subquery visible-inline-block" ng-include="\'neQuery/query.html\'" style="border:1px dashed #999;padding:8px;margin:2px 0px;"></div> </div></div><br ng-repeat-end></div>'),e.put("neQuery/date.html",'<input type="text" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" uib-datepicker-popup is-open="query.value_opened" ng-click="query.value_opened=!query.value_opened" ng-disabled="disabled" ng-model="query.value" ng-change="onChange()">'),e.put("neQuery/datetime.html",'<input type="text" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" uib-datetimepicker-popup show-seconds="true" is-open="query.value_opened" ng-click="query.value_opened=!query.value_opened" ng-disabled="disabled" ng-model="query.value" ng-change="onChange()">'),e.put("neQuery/number.html",'<input type="number" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" ng-disabled="disabled" ng-model="query.value" ng-change="onChange()" style="width:142px;">'),e.put("neQuery/list.html",'<select class="input-sm" ng-disabled="disabled" ng-model="query.value" ng-options="(value | translate) for value in query.field.values" ng-change="onChange()" style="width:142px;"></select>'),e.put("neQuery/boolean.html",'<select class="input-sm" ng-disabled="disabled" ng-model="query.value" ng-options="(\'qvalue_\'+value | translate) for value in [true,false]" ng-change="onChange()" style="width:142px;"></select>'),e.put("neQuery/string.html",'<input type="text" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" ng-disabled="disabled" ng-model="query.value" ng-change="onChange()"/>'),e.put("neQuery/string-suggestions.html",'<div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <input type="text" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" uib-dropdown-toggle ng-disabled="disabled" ng-model="query.suggestion" ng-click="(query.field.suggestionMinLength===0 && !query.suggestions) ? query.field.createSuggestions(query, query.suggestion) : null" ng-change="query.page=1;query.field.onlySuggestedValues ? query.value=null : query.value=query.suggestion;query.field.createSuggestions(query, query.suggestion, true);onChange()"> <ul ng-if="query.suggestions.length" class="dropdown-menu" style="max-height:250px;overflow:auto"> <li ng-if="query.field.pagination" class="text-center" style="padding-top:4px"> <button class="btn btn-xs btn-default" ng-disabled="!query.pagination.prev" ng-click="$event.stopPropagation();query.page=(query.page||1)-1;query.field.createSuggestions(query, query.suggestion)"><i class="fa fa-fw fa-backward"></i></button> {{query.page||1}} <button class="btn btn-xs btn-default" ng-disabled="!query.pagination.next" ng-click="$event.stopPropagation();query.page=(query.page||1)+1;query.field.createSuggestions(query, query.suggestion)"><i class="fa fa-fw fa-forward"></i></button> </li> <li ng-if="query.field.pagination" class="divider"></li> <li ng-repeat="value in query.suggestions" ng-class="{\'active\':(value===query.value)}"> <a href="" ng-click="query.value=value.key;query.suggestion=value.name;onChange()">\t\t {{value.name}}\t\t </a> </li> </ul></div>'),e.put("neQuery/disabled.html",'<input type="text" disabled="disabled" class="input-sm" ng-model="query.value">'),e.put("neQuery/sort.html",'<div class="visible-inline-block"><div ng-repeat-start="sort in query.sortBy track by $index" style="display:inline-block;position:relative;margin:2px" ng-style="{\'margin-top\':$first ? \'0px\' : \'2px\'}"> <small>{{::\'Order By\'|translate}}</small> <div class="visible-inline-block"> <div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <button ng-if="query.onlyPredefinedFields" ng-disabled="disabled" class="btn btn-sm btn-default" uib-dropdown-toggle style="width:142px"> <span class="nowrap" ng-if="sort.fieldName">{{sort.fieldName}}</span><span class="nowrap" ng-if="!sort.fieldName">{{::\'choose field\'|translate}}</span> </button> <input ng-if="!query.onlyPredefinedFields" type="text" ng-disabled="disabled" placeholder="{{::\'choose field\'|translate}}" class="input-sm" uib-dropdown-toggle ng-change="query.setSortByName(sort.fieldName, $index);onChange()" ng-model="sort.fieldName" /> <ul ng-if="query.fields.filterByName(sort.fieldName, sort.name).length" class="dropdown-menu" style="max-height:250px;overflow:auto"> <li ng-repeat="field in query.fields.filterByName(sort.fieldName, sort.name)" ng-class="{\'active\':(field.name===sort.fieldName)}"> <a href="" ng-click="query.setSortField(field,$parent.$index);onChange()"> \t\t\t {{field.name}} \t\t\t</a> </li> </ul> </div> <div class="btn-group btn-group-xs"> <button class="btn btn-default" ng-disabled="disabled" ng-click="query.toggleSortDirection($index);onChange()"> <i class="fa fa-fw" ng-class="{\'fa-sort-amount-asc\':sort.direction===1,\'fa-sort-amount-desc\':sort.direction===-1}"></i> </button> <button class="btn btn-default" ng-disabled="disabled" ng-click="query.addSort($index);onChange()"><i class="fa fa-fw fa-plus"></i></button> <button class="btn btn-default" ng-disabled="disabled" ng-click="query.removeSort($index);onChange()"><i class="fa fa-fw fa-minus"></i></button> </div> </div></div><br ng-repeat-end><button ng-if="!query.sortBy.length" class="btn btn-default btn-sm btn-intensive" ng-disabled="disabled" ng-click="query.addSort();onChange()"><i class="fa fa-fw fa-signal"></i> <span class="hidden-sm">{{::\'Order By\'|translate}}</span></button></div>')}]).directive("neQueryValue",[function(){return{restrict:"A",template:'<div ng-include="query.field.template||query.type.templates[query.operator]||query.type.template||query.templates[query.type.name]||query.templates.disabled"></div>',link:function(e,t,n,i){}}}]).directive("neQuerySearch",[function(){return{restrict:"A",template:'<div class="pull-left" ne-query="query" ne-query-change="onChange()" ne-query-disabled="disabled"></div><div class="pull-left hidden-xs" style="width:20px"> </div><div class="pull-left" ne-query-sort="query" ne-query-sort-change="onChange()" ne-query-sort-disabled="disabled"></div><button ng-disabled="disabled" class="btn btn-primary btn-sm btn-intensive" ng-click="searchClick()" style="margin-left:2px"> <i class="fa fa-fw fa-search"></i> <span class="hidden-sm">{{::\'Search\' | translate}}</span></button>',scope:{query:"=neQuerySearch",searchClick:"&neQuerySearchClick",onQuerySearchChange:"&neQuerySearchChange",querySearchEmpty:"=neQuerySearchEmpty",disabled:"=neQuerySearchDisabled"},link:function(e,t,n,i){var r=!!n.neQuerySearchEmpty;e.onChange=function(){e.query.setDirty(),r&&(e.querySearchEmpty=e.query.isEmpty()),e.onQuerySearchChange&&e.onQuerySearchChange()},r&&(e.querySearchEmpty=e.query.isEmpty())}}}]).directive("neQuery",[function(){return{restrict:"A",templateUrl:"neQuery/query.html",scope:{query:"=neQuery",onQueryChange:"&neQueryChange",queryEmpty:"=neQueryEmpty",disabled:"=neQueryDisabled"},link:function(e,t,n,i){var r=!!n.neQueryEmpty;e.onChange=function(){e.query.setDirty(),r&&(e.queryEmpty=e.query.isQueryEmpty()),e.onQueryChange&&e.onQueryChange()},r&&(e.queryEmpty=e.query.isQueryEmpty())}}}]).directive("neQuerySort",[function(){return{restrict:"A",templateUrl:"neQuery/sort.html",scope:{query:"=neQuerySort",onQuerySortChange:"&neQuerySortChange",querySortEmpty:"=neQuerySortEmpty",disabled:"=neQuerySortDisabled"},link:function(e,t,n,i){var r=!!n.neQuerySortEmpty;e.onChange=function(){e.query.setDirty(),r&&(e.querySortEmpty=e.query.isSortEmpty()),e.onQuerySortChange&&e.onQuerySortChange()},r&&(e.querySortEmpty=e.query.isSortEmpty())}}}]).constant("neQueryConfig",{useRegexBracketsWrap:!1,useStrictDateParser:!0}).factory("NeQuery",["neLocal","neObject","neQueryConfig",function(e,t,n){function i(e){var t,n,i;if(void 0===e)return!1;for(t={"-":!0,"[":!0,"]":!0,"/":!0,"{":!0,"}":!0,"(":!0,")":!0,"*":!0,"+":!0,"?":!0,".":!0,"\\":!0,"^":!0,$:!0,"|":!0},n=!1,i=0;i<e.length;i++)if("\\"===e[i]&&(n=!n),"\\"!==e[i+1]&&t[e[i]]&&!n)return!0;return!1}function r(e){return(e||"").replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function a(e){return(e||"").replace(/\\(?!\\)/g,"")}function o(e){var t,n;if(!e)return{};for(this,t={},t[A]={},n=0;n<e.length;n++)t[A][e[n].key]=e[n].direction;return t}function s(e){var t,n=this,i=[];if(n.sortBy=[],"[object Object]"===Object.prototype.toString.call(e))for(t in e)n.addSort(),n.setSortByName(t,n.sortBy.length-1).direction=e[t];return i}function l(e,t){if(["string","number","boolean"].indexOf(typeof e)>-1)return!0;if(null===t||void 0===t||"function"==typeof t)return!1;if(["string","number","boolean"].indexOf(typeof t)>-1)return!0;for(var n in t)if(void 0!==e[n]&&null!==e[n])return!0;return!1}function u(e,n){var i,r,a,s,c,d,p,f,h,g={};if(g=t.extend(!0,g,e.options),e.length){for(r=[],a=0,s=0;s<e.length;s++)s>0&&"OR"===e[s].logical&&a++,r[a]=r[a]||[],r[a].push(e[s]);if(0===a)for(d=!1,p=r[a],s=0;s<p.length;s++){c=u(p[s],!0);for(f in c)if(void 0!==g[f]&&null!==g[f])if(p[s].field.merge)g=p[s].field.merge(f,c,g);else{if(l(g[f],c[f])){delete g[f],g=H.AND.build(p),d=!0;break}g[f]=t.extend(!0,g[f],c[f])}else g[f]=c[f];if(d)break}else g=t.extend(!0,g,H.OR.build(r))}else e.operator&&e.field&&e.field.key&&(i=angular.copy(e.value),e.type.onBuild&&(i=e.type.onBuild(i)),e.field.isEmptyValue&&e.field.isEmptyValue(i)||void 0!==(i=H[e.operator].build("function"==typeof e.field.onBuild?e.field.onBuild(i):i))&&null!==i&&(e.field.build?(h=e.field.build(e.field.key,i,e),g[h.key||e.field.key]=h.key?h.value:h):g[e.field.key]=i));return n||(g=t.extend(!0,g,o.call(e,e.sortBy))),g}function c(e,t){function n(e,t,n){r=e.append(n),r.type=U[t.typeName],r.value=t.value,r.setFieldByName(t.fieldName,!0),r.resolveValueNames(),r.operator=t.operator}var i,r,a,o,l,u,d,p,f,h=this,g=[];for(a in e)-1===["AND","OR","VALUE"].indexOf(a)&&(a===A?s.call(h,e[a]):H[a]||a[0]!==F&&-1===R.indexOf(a)?g.push(a):h.options[a]=e[a]);for(o=0;o<g.length;o++){for(a=g[o],l=null,u=0;u<h.fields.length;u++)if((h.fields[u].field===a||h.fields[u].match&&a.match(h.fields[u].match))&&h.fields[u].parse){l=h.fields[u].parse;break}if(d={},l&&(d=l(a,e[a],t),d&&d.key?(a=d.key,e[a]=d.value):d&&(e[a]=d),Array.isArray(e[a])))for(p in e[a])c.call(h,e[a][p].value,e[a][p].logical||t);else if(i=(H[a]||H.VALUE).parse(a,e[a])){if(Array.isArray(i))for(f=0;f<i.length;f++)n(h,i[f],0===o&&0===f?t:"AND");else if(i.queries)for(r=null,f=0;f<i.queries.length;f++)1!==g.length||t?r?r.parse(i.queries[f],i.logical):(r=h.append(t),r.parse(i.queries[f],i.logical)):h.parse(i.queries[f],0===f&&t?t:i.logical);else 0===o?n(h,i,t):n(h,i,"AND");d.key&&delete e[d.key]}else d.key&&delete e[d.key]}return h}function d(e){var t,i,r;return"boolean"==typeof e?t="boolean":"number"==typeof e?t="number":e instanceof Date?t=0===e.getHours()&&0===e.getMinutes()&&0===e.getSeconds()&&0===e.getMilliseconds()?"date":"datetime":"string"==typeof e&&(i=e.match(n.useStrictDateParser?V:K),i&&(r=Date.parse(i[0])),isNaN(r)?t="string":(e=new Date(r),t=0===e.getHours()&&0===e.getMinutes()&&0===e.getSeconds()&&0===e.getMilliseconds()?"date":"datetime")),{type:t,value:e}}function p(e){var n,i=[];return i.options={},i.sortBy=[],i.build=function(e){return u.call(this,this,e)},i.parse=function(e,t){return c.call(this,e,t)},i.fill=function(e){return this.splice(0,this.length),this.parse(e),this.parent&&this.parent()||0!==this.length||this.append("AND"),i.runValueNameResolver&&i.runValueNameResolver(),i.onFill&&i.onFill(),i},i.isEmpty=v,i.isQueryEmpty=$,i.isSortEmpty=w,i.isDirty=k,i.setDirty=x,i.clear=y,i.newQuery=p,i.templates=I,i.fields=this.fields,i.types=this.types,i.onlyPredefinedFields=this.onlyPredefinedFields,i.logical=e||"AND",i.append=f,i.next=g,i.levelDown=h,i.remove=m,i.reset=b,i.setFieldByName=D,i.resolveValueNames=C,i.setField=S,i.setOperator=O,i.setType=M,i.addSort=T,i.removeSort=E,i.toggleSortDirection=q,i.setSortByName=_,i.setSortField=P,i.root=i.getRoot=function(){return n?n.getRoot():i},i.parent=i.getParent=function(){return n},i.setParent=function(e){n=e},n||(i.runValueNameResolver=function(){var e=this,n={},i={};e.fields.forEach(function(e){var t,r={};if(i[e.key]=e,e.valueNames){for(t in e.valueNames)null!==e.valueNames[t]&&void 0!==e.valueNames[t]||(r[t]=null);n[e.key]=r,Object.keys(r).length?e.resolveValueNames&&e.resolveValueNames(r,function(t){t=t||{};for(var n in t)e.valueNames[n]=t[n]}):delete n[e.key]}}),e.resolveAllValueNames&&Object.keys(n).length&&e.resolveAllValueNames(n,i,function(n){e.fields.forEach(function(e){n[e.key]&&t.merge(e.valueNames,n[e.key])})})}),i.reset(),i}function f(e){var t=this.newQuery(e);return t.setParent(this),this.push(t),t}function h(e){var t,n,i=this;if(i.parent()&&!(i.parent().length<=1))return t=i.parent().indexOf(i),n=i.next(i.logical),i.parent().splice(t,1),i.logical="AND",i.setParent(n),n.push(i),n}function g(e){var t,n,i=this;if(i.parent())return t=i.parent().indexOf(i),n=this.newQuery(e),n.setParent(i.parent()),i.parent().splice(t+1,0,n),n}function m(){var e,t=this;if(t.parent()){if(!t.parent().parent()&&1===t.parent().length)return t.reset();if(1===t.parent().length)return t.parent().remove();e=t.parent().indexOf(t),t.parent().splice(e,1),t=null}}function b(){var e=this;if(e.fields.length){if(e.field=e.fields[0],e.type=U[e.field.type],!e.type)throw new Error('Field type "'+e.field.type+'" not recognized, please choose one from "'+Object.keys(U).join(", ")+'"');e.fieldName=e.field.name,e.operator=e.type.operators[e.field.operatorIndex||0]}else e.field=e.field||{},e.type=U[e.type||e.types[0]],e.operator=e.type.operators[0];e.value=null}function y(){return this.splice(0,this.length),this.setDirty(!1),this}function v(e){return e=e||this.build(),this.isQueryEmpty(e)&&this.isSortEmpty(e)}function $(e){e=e||this.build();var t=Object.keys(e).length;return 0===t||1===t&&e.hasOwnProperty("$sort")}function w(e){return e=e||this.build(),0===Object.keys(e.$sort||{}).length}function x(e){return this.$dirty=!0,this.$touched=!0,this}function k(){return this.$dirty}function D(e,t){var n,i;if(t&&delete this.field,e)for(n=e.toLowerCase(),i=0;i<this.fields.length;i++){if(this.fields[i].key===e||this.fields[i].nameLower===n)return this.setField(this.fields[i]);if(this.fields[i].match&&(e.match(this.fields[i].match)||n.match(this.fields[i].match)))return this.field&&this.field.field===this.fields[i].field?void 0:this.setField(this.fields[i],e)}this.fieldName=e,this.field={key:e}}function C(){var e=this,t=e.getRoot(),n=t.fields.filter(function(t){return t.key===(e.field||{}).key})[0];n&&(n.valueNames=n.valueNames||{},Object.defineProperty(e,"suggestion",{get:function(){return n.valueNames[e.value]||e.value},set:function(t){n.valueNames[e.value]=t}}),n.valueNames[e.value]||(e.field.resolveValueName?e.field.resolveValueName(e.value,function(t){if("string"==typeof t)e.suggestion=t,n.valueNames[e.value]=t;else{Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++)if(t[i].key===e.value)return e.suggestion=t[i].name,void(n.valueNames[e.value]=t[i].name)}}):n.valueNames[e.value]=null))}function S(e,t){if(this.type.name!==e.type){if(this.type=U[e.type],!this.type)throw new Error('Field type "'+e.type+'" not recognized, please choose one from "'+Object.keys(U).join(", ")+'"');this.value=null}var n=this.field;this.field=angular.copy(e||{}),this.fieldName=t||this.field.name,this.operator=this.type.operators[this.field.operatorIndex||0],e.onSet&&e.onSet(this,n)}function O(e){this.type.templates&&this.type.templates[this.operator]!==this.type.templates[e]&&(this.value=null),this.operator=e}function M(e){this.type=U[e],this.operator=this.type.operators[0],this.value=null}function T(e){var t={};this.fields.length&&(t.fieldName=this.fields[0].name,t.name=this.fields[0].name,t.key=this.fields[0].key,t.direction=1),isNaN(e)?this.sortBy.push(t):this.sortBy.splice(e+1,0,t)}function E(e){this.sortBy.splice(isNaN(e)?this.sortBy.length-1:e,1)}function q(e){e=e||0,this.sortBy[e].direction=1===this.sortBy[e].direction?-1:1}function _(e,t){var n,i;if(t=t||0,e)for(n=e.toLowerCase(),i=0;i<this.fields.length;i++)if(this.fields[i].key===e||this.fields[i].nameLower===n)return this.sortBy[t].fieldName=this.fields[i].name,this.sortBy[t].name=this.fields[i].name,this.sortBy[t].key=this.fields[i].key,this.sortBy[t];return this.sortBy[t].fieldName=e,this.sortBy[t].key=e,this.sortBy[t]}function P(e,t){t=t||0,this.sortBy[t].fieldName=e.name,this.sortBy[t].name=e.name,this.sortBy[t].key=e.key}function L(e,t){var n,i=[],r=this,a=(e||"").toLowerCase();if(!e||e===t)return r;for(n=0;n<r.length;n++)r[n].nameLower&&r[n].nameLower.match(new RegExp(".*"+a+".*"))&&i.push(r[n]);return i}function N(n,i){var r,a,o,s,l,u,c,d={};for(1===arguments.length&&(Array.isArray(arguments[0])?(i=arguments[0],n=null):angular.isObject(arguments[0])&&(d=arguments[0],i=d.fields,n=d.name)),i=i||[],r=0;r<i.length;r++){if(i[r].key=i[r].key||i[r].field||i[r].property,i[r].name=e.translate(i[r].name||i[r].key),i[r].nameLower=(i[r].name||"").toLowerCase(),i[r].behaviour&&(a=null,o={},null,"string"==typeof i[r].behaviour?a=i[r].behaviour:(a=Object.keys(i[r].behaviour)[0],o=i[r].behaviour[a]),s=B[a])){l=s.call(i[r],o);for(u in l)i[r][u]=l[u]}i[r].type&&(i[r].disableType=!0),i[r].type=i[r].type||i[r].defaultType||j,i[r].allowedOperatorIndexes=i[r].allowedOperatorIndexes,i[r].operatorIndex>=0&&(i[r].disableOperator=!0),i[r].operatorIndex=i[r].operatorIndex||i[r].defaultOperatorIndex,i[r].values&&!i[r].template&&(i[r].template=I.list),i[r].emptyValues=i[r].emptyValues||i[r].ignoreValues,i[r].isEmptyValue=i[r].isEmptyValue||function(e){return null===e||void 0===e||!(!this.emptyValues&&!this.type.emptyValues)&&(this.emptyValues||this.type.emptyValues).indexOf(e)>-1},i[r].loadSuggestions=i[r].loadSuggestions||i[r].getSuggestions||i[r].suggestions,i[r].onlySuggestedValues=i[r].onlySuggestedValues,i[r].loadSuggestions&&(i[r].resetOnFieldChange=!0,i[r].onSet=i[r].onSet||function(e,t){t?(e.value=null,e.suggestion="",e.suggestions=[]):e.suggestion=e.suggestion||e.value},i[r].template=i[r].template||I.suggestions,i[r].createSuggestions=function(e){function n(t,n){n=n||"",t.page=t.page||e.page||1,t.limit=t.limit||e.limit||10,n.length>=e.suggestionMinLength&&e.loadSuggestions.call(t,n,function(e,n){t.suggestions=e.map(function(e){return{key:e.key||e,name:e.name||e.key||e}}),t.pagination=n,t.page=n.page||t.page,t.limit=n.limit||t.limit})}e.suggestionMinLength=e.suggestionMinLength>=0?e.suggestionMinLength:e.suggestionMinSearchLength>=0?e.suggestionMinSearchLength:3;var i=t.debounce(n,e.suggestionDebounce>=0?e.suggestionDebounce:350);return function(e,t,r){return r?i(e,t):n(e,t)}}(i[r]))}return i.filterByName=L,c=p.call({fields:i,types:Object.keys(U)},"AND"),c.name=n,c.onlyPredefinedFields=d.onlyPredefinedFields,c.append("AND"),c}var I={query:"neQuery/query.html",sort:"neQuery/sort.html",disabled:"neQuery/disabled.html",number:"neQuery/number.html",string:"neQuery/string.html",boolean:"neQuery/boolean.html",date:"neQuery/date.html",datetime:"neQuery/datetime.html",list:"neQuery/list.html",suggestions:"neQuery/string-suggestions.html"},A="$sort",R=["$limit","$page","$skip","$sort"],F="$",j="string",U={string:{name:"string",operators:["$regex_exact","$regex_contains","$regex_begins","$regex_ends","$in","$ne","$regex_ncontains","$regex_nbegins","$regex_nends","$nin","$regex"],template:I.string},number:{name:"number",operators:["$eq","$lt","$lte","$gt","$gte"],template:I.number},boolean:{name:"boolean",operators:["$eq"],template:I.boolean,onBuild:function(e){return-1!==[!0,"true","True",1,"yes","Yes"].indexOf(e)}},date:{name:"date",operators:["$eq","$lt","$lte","$gt","$gte"],template:I.date},datetime:{name:"datetime",operators:["$eq","$lt","$lte","$gt","$gte"],template:I.datetime},object:{name:"object",operators:["$exists"],template:I.boolean},array:{name:"array",operators:["$size"],template:I.string,templates:{$size:I.number}}},K=/^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/,V=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/,H={AND:{build:function(e){var t,n,i=[];for(n=0;n<(e.length||0);n++)t=u(e[n],!0),Object.keys(t).length&&i.push(t);return i.length?{$and:i}:{}}},OR:{build:function(e){var t,n,i=[];for(n=0;n<(e.length||0);n++)t=u(e[n],!0),Object.keys(t).length&&i.push(t);return i.length?{$or:i}:{}}},VALUE:{parse:function(e,t){var n,i,r=[],a=d(t),o=a.type;if(t=a.value,"[object Object]"===Object.prototype.toString.call(t)){for(i in t)(n=(H[i]||H.VALUE).parse(e,t[i]))&&r.push(n);return r}if(o)return{fieldName:e,typeName:o,operator:"string"===o?"$regex_exact":"$eq",value:t}}},$and:{parse:function(e,t){return Array.isArray(t)?{logical:"AND",queries:t}:null}},$or:{parse:function(e,t){return Array.isArray(t)?{logical:"OR",queries:t}:null}},$eq:{build:function(e){return e},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,i)return{fieldName:e,typeName:i,operator:"string"===i?"$regex_exact":"$eq",value:t}}},$exists:{build:function(e){return{$exists:e}},parse:function(e,t){if("boolean"==typeof t)return{fieldName:e,typeName:"object",operator:"$exists",value:t}}},$size:{build:function(e){return{$size:e}},parse:function(e,t){if("number"==typeof t)return{fieldName:e,typeName:"array",operator:"$size",value:t}}},$lt:{build:function(e){return{$lt:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,"number"===i||"date"===i||"datetime"===i)return{fieldName:e,typeName:i,operator:"$lt",value:t}}},$lte:{build:function(e){return{$lte:e}},parse:function(e,t){
var n=d(t),i=n.type;if(t=n.value,"number"===i||"date"===i||"datetime"===i)return{fieldName:e,typeName:i,operator:"$lte",value:t}}},$gt:{build:function(e){return{$gt:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,"number"===i||"date"===i||"datetime"===i)return{fieldName:e,typeName:i,operator:"$gt",value:t}}},$gte:{build:function(e){return{$gte:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,"number"===i||"date"===i||"datetime"===i)return{fieldName:e,typeName:i,operator:"$gte",value:t}}},$regex:{build:function(e){return n.useRegexBracketsWrap&&(e="("+e+")"),{$regex:e}},parse:function(e,t){var i,r,a,o;if(n.useRegexBracketsWrap&&"string"==typeof t&&"("===t[0]&&")"===t[t.length-1])t=t.slice(1,t.length-1);else for(o=0;o<U.string.operators.length;o++)if(r=U.string.operators[o],H[r]&&H[r].check&&void 0!==(a=H[r].check(t))){i=r,t=a;break}return{fieldName:e,typeName:"string",operator:i||"$regex",value:t}}},$regex_exact:{build:function(e){return e}},$regex_contains:{build:function(e){return e=r(e),{$regex:".*"+e+".*"}},check:function(e){if(e=(e.match(/^\.\*(.*)\.\*$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_ncontains:{build:function(e){return e=e=r(e),{$regex:"^((?!"+e+").)*$"}},check:function(e){if(e=(e.match(/^\^\(\(\?\!(.*)\)\.\)\*\$$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_begins:{build:function(e){return e=r(e),{$regex:"^"+e+".*"}},check:function(e){if(e=(e.match(/^\^(.*)\.\*$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_nbegins:{build:function(e){return e=r(e),{$regex:"^(?!"+e+").*$"}},check:function(e){if(e=(e.match(/^\^\(\?\!(.*)\)\.\*\$$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_ends:{build:function(e){return e=r(e),{$regex:".*"+e+"$"}},check:function(e){if(e=(e.match(/^\.\*(.*)\$$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_nends:{build:function(e){return e=r(e),{$regex:"^(?!.*"+e+"$)"}},check:function(e){if(e=(e.match(/^\^\(\?\!\.\*(.*)\$\)$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$ne:{build:function(e){return{$ne:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,i)return{fieldName:e,typeName:i,operator:"$ne",value:t}}},$in:{build:function(e){return"string"==typeof e&&(e=e.replace(/,\s+/g,",").replace(/\s+,/g,",").replace(/^,/,"").replace(/,$/,"").split(",")),{$in:e}},parse:function(e,t){if(Array.isArray(t))return{fieldName:e,typeName:"string",operator:"$in",value:t.join(", ")}}},$nin:{build:function(e){return"string"==typeof e&&(e=e.replace(/,\s+/g,",").replace(/\s+,/g,",").replace(/^,/,"").replace(/,$/,"").split(",")),{$nin:e}},parse:function(e,t){if(Array.isArray(t))return{fieldName:e,typeName:"string",operator:"$nin",value:t.join(", ")}}}},B={keyValueArray:function(e){var t=this,n=t.field,i=e.prefix||e.keyPrefix||"",r=e.key||e.idKey,a=e.value||e.valueKey;if(!r||!a)throw new Error('neQuery: Cannot set field behaviour, "idKey" or "valueKey" not defined');return{match:new RegExp(n+".*"),build:function(e,t,o){var s={};return s[r]=o.fieldName.replace(n+".",""),s[a]=t,{key:i+n,value:{$elemMatch:s}}},merge:function(e,t,n){return t[e].$elemMatch&&(n[e].$all?n[e].$all.push(t[e]):n[e]={$all:[n[e],t[e]]}),n},parse:function(e,t,o){var s,l,u;if(t.$elemMatch)return s=e+"."+t.$elemMatch[r],{key:s.replace(i,""),value:t.$elemMatch[a]};if(Array.isArray(t.$all)){for(l=[],u=0;u<t.$all.length;u++)t.$all[u].$elemMatch&&(l[u]={value:{},logical:u>0?"AND":o},l[u].value[n+"."+t.$all[u].$elemMatch[r]]=t.$all[u].$elemMatch[a]);return l}}}}};return N.templates=I,N.fieldBehaviours=B,N}]).factory("neQueryTests",["NeQuery","neObject",function(e,t){return function(){function n(e,n,r){var a=i.fill(n).build();t.deepEqual(r||n,a,function(e){return"$sort"===e})?console.log('Query test "'+e+'" - OK'):console.warn('Query test failed "'+e+'", input query do not match built one',r||n,a)}var i=new e;n("simple range query",{field1:{$gte:1,$lte:2}}),n("simple and[1,2]",{field1:"value1",field2:"value2"}),n("simple and[1,2] with $and operator",{$and:[{field1:"value1"},{field2:"value2"}]},{field1:"value1",field2:"value2"}),n("simple or[1,2] with $or operator",{$or:[{field1:"value1"},{field2:"value2"}]}),n("or[ and[1,2], or[1,2], and[1,2] ]",{$and:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]}),n("or[ or[1,2], and[1,2], or[1,2] ]",{$or:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{$and:[{field1_and1:"value1_and1"},{field2_and1:"value2_and1"}]},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]},{$or:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{field1_and1:"value1_and1",field2_and1:"value2_and1"},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]}),n("and[ or[1,2], and[1,2], or[1,2] ]",{$and:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{$and:[{field1_and1:"value1_and1"},{field2_and1:"value2_and1"}]},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]},{$and:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{field1_and1:"value1_and1",field2_and1:"value2_and1"},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]}),n("and[ or[1,2], or[1,2] ]",{$and:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]}),n("or[ and[1,2], and[1,2] ]",{$or:[{$and:[{field1_and1:"value1_and1"},{field2_and1:"value2_and1"}]},{$and:[{field1_and2:"value1_and2"},{field2_and2:"value2_and2"}]}]},{$or:[{field1_and1:"value1_and1",field2_and1:"value2_and1"},{field1_and2:"value1_and2",field2_and2:"value2_and2"}]}),n("or[ or[1,range], and[range,1,2], or[range,range] ]",{$or:[{$or:[{field1_or1:"value1_or1"},{field2_or1:{$gt:1,$lt:100}}]},{$and:[{field1_and1:{$gt:1,$lt:100}},{field1_and1:"value1_and1"},{field2_and1:"value2_and1"},{$or:[{field1_and1_or:{$gte:1,$lte:100}},{field2_and1_or:"value2_and1_or"}]}]},{$or:[{field1_or2:{$gte:1,$lte:100}},{field2_or2:{$gte:1,$lte:100}}]}]},{$or:[{$or:[{field1_or1:"value1_or1"},{field2_or1:{$gt:1,$lt:100}}]},{$and:[{field1_and1:{$gt:1}},{field1_and1:{$lt:100}},{field1_and1:"value1_and1"},{field2_and1:"value2_and1"},{$or:[{field1_and1_or:{$gte:1,$lte:100}},{field2_and1_or:"value2_and1_or"}]}]},{$or:[{field1_or2:{$gte:1,$lte:100}},{field2_or2:{$gte:1,$lte:100}}]}]})}}]),angular.module("neRest",["neObject","neNotifications","neLoading"]).config(["$httpProvider",function(e){e.defaults.headers.common["X-Requested-With"]="XMLHttpRequest"}]).factory("NeResourceTransformators.dateStringsToDates",["neObject",function(e){return e.dateStringsToDates}]).factory("NeResourceTransformators.removePrefixedProps",["neObject",function(e){return e.removePrefixedProps}]).factory("NeRestResource",["$http","$timeout","neObject","neNotifications","neLoading","NeResourceTransformators.dateStringsToDates","NeResourceTransformators.removePrefixedProps",function(e,t,n,i,r,a,o){function s(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function l(e,t,n){var i=new RegExp(s(t),"g");return e.replace(i,n)}function u(e){return e=e.indexOf("?")>-1?e.replace(/([^\/])\?/,"$1/?"):e+"/",e.replace(/([^:])(\/){2,}/g,"$1/")}function c(e){var t,n=(e||"").match(/\{([^\{\}]+)/g)||[];for(t=0;t<n.length;t++)n[t]=n[t].substring(1);return n}function d(e){return void 0===e||null===e?"":JSON.stringify(e).replace(/^"/,"").replace(/"$/,"")}function p(e,t,i,r){var a,o,s,c,p,f=this;for(t=u(t||""),a=e?e+"/"+t:t,o=f.options.commands[r].urlParams,p=0;p<o.length;p++)c=n.deepGet(i,o[p]),s="_command"===o[p]?r:void 0===c?"":c,"string"==typeof s&&(s=encodeURIComponent(s).replace(/\//g,"%2F").replace(/\?/g,"%3F").replace(/#/g,"%23")),a=l(a,"{"+o[p]+"}",d(s));return f.options.commands[r].isFile?u(a).replace(/\/$/,""):u(a)}function f(e,t){var n,i,r=this,a="",o=r.options.commands[t],s=r.options,l=o.queryKey||s.queryKey,u=o.urlParams;if(l)return Object.keys(e).length?"?"+l+"="+JSON.stringify(e):"";for(n in e)if(e.hasOwnProperty(n)&&-1===u.indexOf(n))if(Array.isArray(e[n]))for(i=0;i<e[n].length;i++)a+="&"+n+"="+d(e[n][i]);else void 0!==e[n]&&(a+="&"+n+"="+d(e[n]));return a?"?"+a.substring(1):""}function h(e,t,i,r){var a,o,s=e.commands[t],l=s.dataKey||e.dataKey,u=s.resourceKey||e.resourceKey,c=s.idKey||e.idKey;return r?r=n.deepGet(r,u):i&&(a=n.deepGet(i,l),r=n.deepGet(a,u)),r&&void 0!==(o=n.deepGet(r,c))&&(r.id=o),r}function g(e,t,i){var r,a,o=e.commands[t],s=(o.isList,o.dataKey||e.dataKey),l=o.resourceListKey||e.resourceListKey,u=n.deepGet(i,s);if(l&&(u=n.deepGet(u,l)),r=[],Array.isArray(u))for(a=0;a<u.length;a++)r.push(h(e,t,null,u[a]));return r}function m(e,t,i,r){var a=e.commands[t],o=a.queryPageKey||e.queryPageKey,s={count:n.deepGet(i,a.paginationCountKey||e.paginationCountKey)||0,page:n.deepGet(i,a.paginationPageKey||e.paginationPageKey)||n.deepGet(r,o)||0,pages:n.deepGet(i,a.paginationPagesCountKey||e.paginationPagesCountKey)||0,next:n.deepGet(i,a.paginationHasNextKey||e.paginationHasNextKey),prev:n.deepGet(i,a.paginationHasPrevKey||e.paginationHasPrevKey)};return void 0===s.page||void 0===s.pages||void 0!==s.next&&void 0!==s.prev||(s.next=s.page<s.pages,s.prev=s.page>1),s}function b(e,t,i,r){var a,o,s=e.commands[t],l=s.additionalDataKeys||e.additionalDataKeys;for(o in l)void 0!==(a=n.deepGet(i,o))&&n.deepSet(r,l[o],a);return r}function y(e,t){var n,i=[];for(n=2;n<arguments.length;n++)i.push(arguments[n]);for(n=0;n<t.length;n++)if("function"==typeof t[n]&&!0===t[n].apply(e,i))return}function v(e,t,n,i,r){return function(e){var a,o=e.config,s=n.commands[i],l=C(D(e.data),s.transformResponse),u=e.status,c=e.headers,d=s.isList;d?(a=g(n,i,l)||[],a.pagination=m(n,i,l,t)):a=h(n,i,l),a=b(n,i,l,a),y(o,[s.onData,n.onData],a,(a||{}).pagination,l,u,c,d,i),y(o,r,a,(a||{}).pagination,l,u,c)}}function $(e,t,i,r,a){return function(e){var t=e.config,o=i.commands[r],s=C(D(e.data),o.transformResponse),l=e.status,u=e.headers,c=a.concat([(o.responseErrors||{})[l]||(o.responseErrors||{}).default,i.responseErrors[l]||i.responseErrors.default]),d=o.errorKey||i.errorKey;y(t,c,n.deepGet(s,d),l,u,e.data)}}function w(e,n,i,a,o,s){function l(t,s){var l,u,c,d;if(t=t||{},l=t.getResponseHeader("content-type"),u=t.responseText,c=t.status?parseInt(t.status):0,l&&"application/json"===l.substring(0,16))try{u=JSON.parse(t.responseText)}catch(e){c=0}d={data:u,status:c,headers:t.headers,httpOpts:{}},f("removeEventListener"),x||r.reqEnded(),c>=200&&c<=299?v(i,n,g,e,a)(d):$(i,n,g,e,o)(d)}function u(e){l(e.target,"load")}function c(e){l(e.target,"error")}function d(e){l(e.target,"abort")}function p(e){s&&(e.lengthComputable?y(i,s,Math.ceil(100*e.loaded/e.total)):y(i,s,50))}function f(e){O[e]("load",u,!1),O[e]("error",c,!1),O[e]("abort",d,!1),O.upload[e]("progress",p,!1)}var h,g=this.options,m=i.url,b=i.headers,w=i.data,x=i.ignoreLoading,k=new FormData;for(h in w)w[h]instanceof Blob||w[h]instanceof File?k.append(h,w[h],w[h].name):k.append(h,w[h]);t(function(){f("addEventListener"),x||r.reqStarted(),O.open("POST",m,!0);for(var e in b)"content-type"!==e.toLowerCase()&&"content-length"!==e.toLowerCase()&&O.setRequestHeader(e,b[e]);O.send(k)})}function x(){var e,t,n,i,r=[{},x.defaults];for(e=0;e<arguments.length;e++)r.push(arguments[e]);t=angular.merge.apply(angular,r),t.baseUrl=u(t.baseUrl),n=this,n.options=t;for(i in t.commands)t.commands[i].transformRequest=angular.merge({},t.transformRequest,t.commands[i].transformRequest||{}),t.commands[i].transformResponse=angular.merge({},t.transformResponse,t.commands[i].transformResponse||{}),n[i]=function(e){return function(){var t,i=[e];for(t=0;t<arguments.length;t++)i.push(arguments[t]);return n.command.apply(n,i)}}(i);return n}function k(e,t,n,i,r){return"$page"!==t&&(e=r.deepSet(e,t,e.$page),delete e.$page),"$limit"!==n&&(e=r.deepSet(e,n,e.$limit),delete e.$limit),"$sort"!==i&&(e=r.deepSet(e,i,e.$sort),delete e.$sort),e}function D(e){var t=e;return"[object Object]"===Object.prototype.toString.call(e)&&(t=n.extend(!0,{},e)),Array.isArray(e)&&(t=n.extend(!0,[],e)),t}function C(e,t){t=t||{};for(var n in t)x.dataTransformators[n]&&x.dataTransformators[n](e,t[n]);return e}var S={baseUrl:"/yoururl",urlEndSlash:!1,headers:{"Content-Type":"application/json"},dataKey:"data",resourceListKey:"this",resourceKey:"this",idKey:"id",errorKey:"data",paginationCountKey:"pagination.count",paginationPageKey:"pagination.page",paginationPagesCountKey:"pagination.pages",paginationHasNextKey:"pagination.next",paginationHasPrevKey:"pagination.prev",additionalDataKeys:{},responseErrors:{400:function(e,t,n){var r,a=e;if(angular.isObject(e)){a="";for(r in e)a+=r+": "+e[r]+", "}i.error("Validation Failed",a)},403:function(e,t,n){i.error("Access Denied","Try logout and login again, please")},404:function(e,t,n){i.error("Document or his version not found","Try refresh page, please")},409:function(e,t,n){i.error(e)},default:function(e,t,n){i.error("Connection Failed","Try later, please")}},defaultQuery:{},urlBuilder:p,queryStringBuilder:f,queryKey:null,queryPageKey:"$page",queryLimitKey:"$limit",querySortKey:"$sort",transformRequest:{removePrefixedProps:"$"},transformResponse:{dateStringsToDates:!0},commands:{one:{method:"GET",url:"/{id}"},all:{method:"GET",isList:!0},find:{method:"GET",isList:!0},create:{method:"POST",url:"/{id}"},update:{method:"PUT",url:"/{id}"},remove:{method:"DELETE",url:"/{id}"}}},O=function(){try{return new XMLHttpRequest}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw new Error("This browser does not support XMLHttpRequest.")}();return x.defaults=S,x.define=x.create=function(e){return new x(e)},x.dataTransformators={dateStringsToDates:a,removePrefixedProps:o},x.prototype.command=function(t,i,r,a,o,s){var l,u,d,p,f,h,g,m,b,y,x,S,O,M,T,E,q,_,P,L,N,I,A,R,F,j,U,K=this;if(!K.options.commands[t])throw new Error('This resource has no command "'+t+'" defined');if("function"==typeof arguments[1]?(s=arguments[3],o=arguments[2],a=arguments[1],i={},r=null):"function"==typeof arguments[2]&&(s=arguments[4],o=arguments[3],a=arguments[2],i=arguments[1],r=null),u=K.options,d=u.commands[t],p=("string"==typeof d.baseUrl?d.baseUrl:u.baseUrl)||"",f=(d.method||"GET").toLowerCase(),h=d.responseType||u.responseType,g="boolean"==typeof d.body?d.body:["options","post","post-multipart","upload","put","delete"].indexOf(f)>-1,m=d.headers||u.headers,b=("string"==typeof d.url?d.url:u.url)||"",y=d.urlBuilder||u.urlBuilder,x=d.urlEndSlash||u.urlEndSlash,S=d.queryStringBuilder||u.queryStringBuilder,O=d.defaultQuery||u.defaultQuery,M=void 0!==d.ignoreLoading?d.ignoreLoading:u.ignoreLoading,T=d.transformRequest,E=d.idKey||u.idKey,q=d.queryPageKey||u.queryPageKey,_=d.queryLimitKey||u.queryLimitKey,P=d.querySortKey||u.querySortKey,u.commands[t].urlParams=d.urlParams||c(b),null===r&&g&&angular.isObject(i)?(r=arguments[1],i=null,l={}):(l={},l=!i||"string"!=typeof i&&"number"!=typeof i?i:n.deepSet(l,E,i),l=angular.merge({},O,l||{})),0===l.$page)throw new Error("NeRestResource: query.$page is equal to zero, must be greater");return l=D(l),r&&(r=D(r)),l=k(l,q,_,P,n),r&&(r=k(r,q,_,P,n)),L=[a,d.onSuccess,u.onSuccess],N=[o,d.onError,u.onError],I=[s,d.onProgress,u.onProgress],A=angular.merge({},r||{},l||{}),R=y.call(K,p,b,A,t),x&&-1===R.indexOf("?")&&(R+="/"),F=S.call(K,l,t),R.indexOf("?")>-1&&0===F.indexOf("?")&&(F="&"+F.substring(1)),j=n.guid(),U={url:R+F,method:f,data:C(r,T),headers:"function"==typeof m?m(u.headers,r,t,f,R+F):m,ignoreLoading:M,requestId:j,responseType:h},"post-multipart"===f||"upload"===f?w.call(K,t,l,U,L,N,I):e(U).then(v(U,l,u,t,L),$(U,l,u,t,N)),j},x}]),angular.module("neState",["ngCookies"]).factory("NeStateService",["$timeout","$location","$rootScope","$cookies","neObject",function(e,t,n,i,r){function a(e){return window.btoa(e)}function o(e){return window.atob(e)}function s(e){return e=e||{},angular.merge(this,{},d,e),this.history={},this.changeListeners=[],this}function l(e){return function(t){var n,i;if(!this.history[t])throw new Error('StateService: there is no registered state with id "'+t+'"');return n=this.getCurrentState(t),i=this.history[t].currentStateIndex+e,i<0&&(i=0),i>=this.history[t].length&&(i=this.history[t].length?this.history[t].length-1:0),this.history[t].currentStateIndex=i,n===this.getCurrentState(t)?this:this.fireChange(t,n)}}var u={encrypt:!1,prefix:"q",parser:function(e){var n=this.prefix,i=this.encrypt;e=e||t.search()[n];try{return i&&(e=o(e)),r.fromJson(e||"{}")||{}}catch(e){}return{}},builder:function(e){function t(t,n){return e[t]?Object.keys(e[t]).length?n:void 0:n}var n=(this.prefix,this.encrypt),i=JSON.stringify(e,t);return n&&(i=a(i)),i},autoUpdate:!1,autoFill:!1,sync:!1,_unbinders:{},init:function(e,t){var i=this;(i.autoFill||i.sync)&&(t&&(i._unbinders[t]={routeUpdate:n.$on("$routeUpdate",function(){i.fill(e,t)}),routeChangeSuccess:n.$on("$routeChangeSuccess",function(){i.fill(e,t)})}),i.fill(e,t))},destroy:function(e,t){return this.unbind(e,t)},unbind:function(e,t){var n,i,r=this,a=t?[t]:Object.keys(r._unbinders);for(n=0;n<a.length;n++)i=a[n],r._unbinders[i]&&(r._unbinders[i].routeUpdate(),r._unbinders[i].routeChangeSuccess())},fill:function(n,i){var r=this,a=t.search()[r.prefix],o=r.parser(a)||{};e(function(){if(i)n.change(i,o[i]||{},!0);else for(var e in n.history)n.change(e,o[e]||{},!0)})},update:function(e,n){var i,r=this;(r.autoUpdate||r.sync)&&(i=r.builder(e.getCurrentState()),t.search(r.prefix,i))}},c={prefix:"appState",path:"/",secure:!1,autoUpdate:!1,autoFill:!1,sync:!1,init:function(e,t){},destroy:function(e,t){},unbind:function(e,t){},fill:function(t,n){var r=this,a=i.getObject(r.prefix)||{};e(function(){if(n)t.change(n,a[n]||{},!0);else for(var e in t.history)t.change(e,a[e]||{},!0)})},update:function(e,t){var n=this;(n.autoUpdate||n.sync)&&i.putObject(n.prefix,e.getCurrentState(),{domain:n.domain,expires:n.expires,path:n.path,secure:n.secure})}},d={maxHistoryStates:5,store:u};return s.locationStore=u,s.cookiesStore=c,s.prototype.create=s.prototype.register=function(e,t){var n,i;return t=t||{},n=this,n.history[e]?n.history[e]:(i=[],i.maxHistoryStates=t.maxHistoryStates||n.maxHistoryStates,"location"===t.store&&(t.store=u),"cookies"===t.store&&(t.store=c),i.store=angular.merge({},n.store,t.store||{}),i.changeListeners=[],i.currentStateIndex=-1,n.history[e]=i,n.history[e].store.init(n,e),n.history[e])},s.prototype.changeState=s.prototype.change=function(e,t,n){var i,a,o,s;if(!angular.isObject(t))throw new Error('StateService: cannot change state, value have to be object and is "'+t+'"');return i=this,i.history[e]=i.history[e]||i.register(e),a=i.history[e].currentStateIndex,o=i.history[e].length?i.history[e].length-1-a:0,i.history[e].length>0&&r.deepEquals(i.history[e][a],t)?i:(i.history[e].splice(a+1,o),i.history[e].push(angular.merge({},t)),i.history[e].length>i.history[e].maxHistoryStates?i.history[e].splice(0,1):i.history[e].currentStateIndex++,n||i.history[e].store.update(i,e),s=n,i.fireChange(e,null,s))},s.prototype.updateState=s.prototype.update=function(e,t){var n,i;if(!angular.isObject(t))throw new Error('StateService: cannot change state, value have to be object and is "'+t+'"');return n=this,n.history[e]=n.history[e]||n.register(e),n.history[e].length?(i=n.history[e].currentStateIndex,n.history[e][i]=angular.merge({},t),n):n},s.prototype.fireChange=function(e,t,n){var i,r,a,o;if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');for(i=this.history[e].currentStateIndex,r=this.history[e].changeListeners,t=t||this.getPrevState(e)||{},a=this.getCurrentState(e)||{},o=0;o<r.length;o++)r[o](a,t,n,i);for(o=0;o<this.changeListeners.length;o++)this.changeListeners[o](e,a,t,n,i);return this},s.prototype.watch=s.prototype.onChange=function(e,t){var n=this;return 1===arguments.length&&(t=arguments[0],e=null),e?(n.history[e]=n.history[e]||n.register(e),n.history[e].changeListeners.push(t)):n.changeListeners.push(t),n},s.prototype.unWatch=s.prototype.unbindChange=s.prototype.offChange=function(e,t){1===arguments.length&&(t=arguments[0],e=null);var n;if(e){if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');n=this.history[e].changeListeners.indexOf(t),n>=0&&this.history[e].changeListeners.splice(n,1)}else(n=this.changeListeners.indexOf(t))>=0&&this.changeListeners.splice(n,1);return this},s.prototype.clear=function(e){return e?(this.history[e].splice(0,this.history[e].length),this.history[e].changeListeners=[],this.history[e].currentStateIndex=-1):(this.history={},this.changeListeners=[]),this},s.prototype.destroy=function(e){if(e)this.history[e].store.unbind(this,e),this.store.unbind(this,e),this.clear(e),delete this.history[e];else{this.history={},this.changeListeners=[],this.store.unbind(this,e);for(var t in this.history)this.history[t].store.unbind(this,t)}return this},s.prototype.getCurrentState=function(e){var t;if(0===arguments.length){t={};for(e in this.history)t[e]=this.history[e][this.history[e].currentStateIndex];return t}if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');return this.history[e][this.history[e].currentStateIndex]},s.prototype.getPrevState=function(e){if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');var t=this.history[e].currentStateIndex-1;return t<0?{}:this.history[e][t]},s.prototype.getNextState=function(e){if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');var t=this.history[e].currentStateIndex+1;return t>=this.history[e].length&&(t=this.history[e].length?this.history[e].length-1:0),this.history[e][t]},s.prototype.getFutureState=function(e,t){var n={};return 2===arguments.length?(n[e]=t,n=angular.merge({},this.getCurrentState(),n)):n=this.getCurrentState(),n},s.prototype.undo=l(-1),s.prototype.redo=l(1),s.prototype.undoAll=function(){for(var e in stateObj)this.undo(e)},s.prototype.redoAll=function(){for(var e in stateObj)this.redo(e)},s}]),angular.module("neTree",["neObject"]).run(["$templateCache",function(e){e.put("neTree/item.html","<div>{{item}}</div>"),e.put("neTree/child.html",'<div ng-include="tree.itemTemplate"></div><ul ng-show="item.$expanded"> <li ng-repeat="item in item.$children" ng-include="\'neTree/child.html\'"></li></ul>'),e.put("neTree/tree.html",'<div class="tree"> <ul> <li ng-repeat="item in tree.items" ng-include="\'neTree/child.html\'"></li> </ul> <div class="tree-backdrop" ng-show="tree.disabled"></div></div>'),e.put("neTree/tree-item-pagination.html",'<div ng-if="item.$expanded" class="tree-item-pagination" ng-class="{\'tree-item-pagination-border\':item.$children.length}"> <div ng-if="item.$pagination && !item.$paginationDisabled" class="btn-group btn-group-xs"> <button class="btn btn-light btn-xs" ng-click="tree.setPage(item, \'prev\')" ng-disabled="item.$prevDisabled"> <i class="fa fa-backward"></i> </button> <button class="btn btn-light btn-xs" ng-click="tree.addPage(item)" ng-disabled="item.$nextDisabled"> {{item.$pagination.page}} <span ng-if="item.$pagination.pagesCount">{{::\'of\'|translate}} {{item.$pagination.pagesCount}}</span> </button> <button class="btn btn-light btn-xs" ng-click="tree.setPage(item, \'next\')" ng-disabled="item.$nextDisabled"> <i class="fa fa-forward"></i> </button> </div></div>')}]).directive("neTreeUpdateBlur",["$timeout",function(e){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){function r(e){c=e,c?t.addClass(o):t.removeClass(o)}function a(){r(!1),d=i.$viewValue}var o,s,l,u,c,d;if(i){if("ng-dirty"===(o=n.dirtyClass||"is-dirty"))throw new Error('dirtyClass cannot be equal to "ng-dirty", it is angular reserved class name');if(s=(n.treeUpdateBlur||"").split(","),l=s[0]||"item",u=s[1]||"tree",!e[u])throw new Error('Scope has not grid with name "'+u+'"');if(!e[l])throw new Error('Scope has not grid item with name "'+l+'"');c=!1,t.on("blur",function(){c&&e[u].updateItem(e[l],a)}),t.bind("keydown keypress",function(n){13===n.which&&c&&"INPUT"===t[0].nodeName&&(e[u].updateItem(e[l],a),n.preventDefault())}),d="",e.$watch(i.$viewValue,function(){d=i.$viewValue}),i.$viewChangeListeners.push(function(){r(d!==i.$viewValue?!0:!1)})}}}}]).directive("neTree",[function(){return{restrict:"EA",templateUrl:"neTree/tree.html",scope:{tree:"=neTree"},replace:!0,link:function(e,t,n){e.tree.itemTemplate=e.tree.itemTemplate||"neTree/item.html"}}}]).directive("neTreeItemPagination",[function(){return{restrict:"EA",templateUrl:"neTree/tree-item-pagination.html",link:function(e,t,n){}}}]).factory("NeTree",["$timeout","neObject",function(e,t){function n(e){var p,h=[{},n.defaults];for(p=0;p<arguments.length;p++)h.push(arguments[p]);return e=angular.merge.apply(angular,h),this.id=e.id,this.idKey=e.idKey||"id",this.childrenKey=e.childrenKey,this.childrenCountKey=e.childrenCountKey,this.childrenReferenceKey=e.childrenReferenceKey,this.parentReferenceKey=e.parentReferenceKey,this.ancestorsReferenceKey=e.ancestorsReferenceKey,this.getChildrenQuery=e.getChildrenQuery||c,this.maintainReferences=e.maintainReferences||d,this.defaultLimit=e.defaultLimit||10,this.$limit=e.limit||this.defaultLimit,this.maxLimit=e.maxLimit||100,this.defaultQuery=e.defaultQuery||{},this.defaultSort=e.defaultSort||{},this.interceptLoad=e.interceptLoad||e.beforeLoad||e.loadInterceptor,this.onQuery=e.onQueryChange||e.onQuery||e.onFilter,this.onFill=e.onFill||e.onData||e.onLoad,this.onSelect=e.onSelect,this.onFocus=e.onFocus,this.onMove=e.onMove,this.onUpdate=e.onUpdate,this.onCreate=e.onCreate,this.resource=e.restResource||e.resource,this.getResourceMethod=e.getResourceMethod||e.resourceMethod||("function"==typeof this.resource?this.resource:null)||r,this.onRemove=e.onRemove,this.autoLoad=e.autoLoad||e.loadOnChange,this.multiSelect=e.multiSelect||e.multiselect||!1,this.silentMode=!1,this.$query=t.extend("data",{},{$page:this.$page,$limit:this.$limit},this.defaultQuery),this.items=[],this.itemTemplate=e.itemTemplate||e.include||"neTree/item.html",this.disabled=!0,this.fillItems=f,this.fill=f,this.addItems=w,this.addItem=w,this.appendItems=w,this.appendItem=w,this.prependItems=x,this.prependItem=x,this.setSort=g,this.setSortSilent=i("setSort"),this.setSortBy=m,this.setSortBySilent=i("setSortBy"),this.updateQuery=k,this.updateQuerySilent=i("updateQuery"),this.setQuery=v,this.setQuerySilent=i("setQuery"),this.setFilter=v,this.setFilterSilent=i("setQuery"),this.setPage=y,this.setPageSilent=i("setPage"),this.addPage=$,this.addPageSilent=i("addPage"),this.appendPage=$,this.appendPageSilent=i("addPage"),this.load=b,this.loadItems=b,this.refresh=b,this.refreshItems=b,this.refreshItem=O,this.createItem=C,this.copyItem=D,this.updateItem=S,this.removeItem=T,this.moveItem=M,this.selectItem=_,this.focusItem=E,this.getFocusedItem=q,this.getSelectedItems=P,this.selectedItems=[],this.focusedItem=null,this.walkItems=a,this.walk=a,this.getParentOf=o,this.getParentsOf=s,this.getAncestorsOf=s,this.getChildrenOf=l,this.getChildrenCountOf=u,this}function i(e){return function(){var t=this;return t.silentMode=!0,t[e].apply(t,arguments),t.silentMode=!1,t}}function r(e,t){if(!this.resource)throw new Error("NeTree: resource is undefined");return this.resource[e]}function a(e,t){1===arguments.length&&(t=arguments[0],e=null);var n=this;if(!e||e===n||!0!==t(e,n.getParentOf(e)))return function e(t,n,i){var r;for(t=t||[],r=0;r<t.length;r++)if(!0===i(t[r],n))return;for(r=0;r<t.length;r++)t[r].$children&&t[r].$children.length>0&&e(t[r].$children,t[r],i)}(e?e.$children||(e===n?n.items:[]):n.items,e,t)}function o(e){var t;return this.walkItems(function(n){return!!(n.$children&&n.$children.indexOf(e)>=0)&&(t=n,!0)}),t}function s(e,t){var n,i=this;return t=t||[],n=i.getParentOf(e),n?(t.unshift(n),i.getAncestorsOf(n,t)):t}function l(e){if(!e)throw new Error("Wrong arguments");return e.$children}function u(e){if(!e)throw new Error("Wrong arguments");return(e.$children||[]).length}function c(e){var n=this,i=n.idKey,r=n.ancestorsReferenceKey,a=n.parentReferenceKey,o=n.childrenReferenceKey,s={};if(r)e?(s.$and=[{},{}],s.$and[0][r]={$size:(t.deepGet(e,r)||[]).length+1},s.$and[1][r]=t.deepGet(e,i)):s[r]={$size:0};else if(a)s[a]=t.deepGet(e,i);else{if(!o)throw new Error('Cannot create query, "ancestorsReferenceKey", or "parentReferenceKey", or "childrenReferenceKey" not set');s[o]=t.deepGet(e,o)}return s}function d(e,n,i){var r,a,o,s,l,u,c,d,p,f,h,g,m;e&&n&&(r=this,a=r.idKey,o=r.ancestorsReferenceKey,s=r.parentReferenceKey,l=r.childrenReferenceKey,u=r.childrenCountKey,c=!1,o&&!i&&(d=[].concat(t.deepGet(e,o)||[]),d.push(t.deepGet(e,a)),t.deepSet(n,o,d)),s&&!i&&(p=t.deepGet(e,a),t.deepSet(n,s,p)),l&&(f=t.deepGet(e,l)||[],h=t.deepGet(n,a),i?(g=f.indexOf(h))>-1&&f.splice(g,1):-1===f.indexOf(h)?f.push(h):c=!0,t.deepSet(e,l,f)),u&&!c&&(m=t.deepGet(e,u)||0,t.deepSet(e,u,m+(i?-1:1))))}function p(e,t,n){var i=this;n=n||{},t[e+"limit"]=t[e+"limit"]||i.defaultLimit,t[e+"pagination"]=n,t[e+"pagesCount"]=Math.ceil(n.count/t[e+"limit"]),void 0!==n.prev?t[e+"prevDisabled"]=!n.prev:n.page<=1&&(t[e+"prevDisabled"]=!0),void 0!==n.next?t[e+"nextDisabled"]=!n.next:n.page>=t[e+"pagesCount"]&&(t[e+"nextDisabled"]=!0),t[e+"paginationDisabled"]=t[e+"prevDisabled"]&&t[e+"nextDisabled"]}function f(e,t,n,i){var r=this;return r.disabled=!1,Array.isArray(arguments[0])&&(n=arguments[1],t=arguments[0],e=null),3===arguments.length&&"string"==typeof arguments[2]&&(i=arguments[2],n=e?e.$pagination:null),t=Array.isArray(t)?t:[t],e?(["push","append"].indexOf(i)>-1?Array.prototype.push.apply(e.$children,t):["unshift","prepend"].indexOf(i)>-1?Array.prototype.unshift.apply(e.$children,t):e.$children=t,p("$",e,n)):(["push","append"].indexOf(i)>-1?Array.prototype.push.apply(r.items,t):["unshift","prepend"].indexOf(i)>-1?Array.prototype.unshift.apply(r.items,t):r.items=t,p("$",r,n)),h(r,e),"function"!=typeof r.onFill||r.silentMode||(e?r.onFill(e,e.$children,e.$pagination,e.$query):r.onFill(r,r.items,r.$pagination,r.$query)),this}function h(e,n){e.walkItems(n,function(n,i){if(e.childrenKey){var r=t.deepGet(n,e.childrenKey);r&&!n.$children&&(n.$children=r)}n.$level=i?i.$level+1:0})}function g(e,t,n){"function"==typeof arguments[1]&&(n=arguments[1],t=arguments[0],e=null);var i=this;return e?e.$sort=t:i.$sort=t,grid.setPage("first",e,n)}function m(e,t,n){if("string"==typeof arguments[0]&&(n=arguments[1],t=arguments[0],e=null),t){var i={};return i[t]=n,this.setSort(e,i)}}function b(e,n,i,r){var a,o,s,l=this;return 2===arguments.length&&"function"==typeof arguments[1]?(i=arguments[1],n=!1):1===arguments.length&&"function"==typeof arguments[0]&&(i=arguments[0],n=!1,e=null),a=e?l.getChildrenOf(e):l.items,o=e?l.getChildrenCountOf(e):l.items.length,!e||!a||a.length<o||n?(!l.interceptLoad||l.interceptLoad&&!1!==l.interceptLoad((e||l).$query,e))&&(s=e?e.$query||{}:l.$query||{},s=t.extend("data",{},{$page:1,$limit:l.$limit||l.defaultLimit},l.defaultQuery,s,l.getChildrenQuery(e)),s.$sort&&(s.$sort=t.extend("data",{},l.defaultSort,s.$sort)),e?e.$query=s:delete s.$limit,l.disabled=!0,l.lastFindReqId=l.getResourceMethod("find",e)(s,function(t,r){l.lastFindReqId&&l.lastFindReqId!==this.requestId||(l.fillItems(e,t,r,n),i&&i(t),l.disabled=!1)},r)):i&&i(l.items),l}function y(e,t,n,i){var r,a;return"function"==typeof arguments[0]?(n=arguments[0],t=null):"function"==typeof arguments[1]&&(n=arguments[1],t=arguments[0],e=null),r=this,e=e||r,e.$pagination=e.$pagination||{},a="number"==typeof t?t:"first"===t?1:"next"===t?e.$pagination.page+1:"last"===t?e.$pagesCount:"prev"===t?e.$pagination.page-1:"refresh"===t||null===t?e.$pagination.page||1:1,e.$pagesCount&&a>e.$pagesCount&&"number"!=typeof t&&(a=e.$pagesCount+0),a<=0&&(a=1),e.$page=a,r.updateQuery(e,i),r.autoLoad&&!r.silentMode?r.load(e,!0,n):(n&&n(),r)}function v(e,n,i){2===arguments.length&&(i=arguments[1],n=arguments[0],e=null),e=e||r;var r=this
;return e.$query=t.extend("data",{},r.defaultQuery||{},n||{}),r.setPage(e,e.$query.$page||"first",i,n),r}function $(e,t,n){"function"==typeof arguments[1]&&(n=arguments[1],"number"==typeof arguments[0]?(limit=arguments[0],e=null):limit=null);var i=this;return t=t||"next",i.setPageSilent(e,t),i.autoLoad&&!i.silentMode?i.load(e,"push",n):(n&&n(),i)}function w(e,t){1===arguments.length&&(t=arguments[0],e=null);var n=this;if(t)return n.fillItems(e,t,"push"),n}function x(e,t){1===arguments.length&&(t=arguments[0],e=null);var n=this;if(t)return n.fillItems(e,t,"unshift"),n}function k(e,n){var i,r;return 1===arguments.length&&(n=arguments[0],e=null),i=this,n=n||{},e=e||i,e.$page=n.$page||e.$page,e.$limit=n.$limit||e.$limit||i.$limit,e.$sort=n.$sort||e.$sort,e.$page&&("number"!=typeof e.$page||e.$page<=0)&&(e.$page=1),!e.$limit||e.$limit<0?e.$limit=i.defaultLimit:e.$limit>i.maxLimit&&(e.$limit=i.maxLimit),r=t.extend("data",{},n,{$limit:e.$limit,$sort:{},$page:e.$page}),e.$sort&&(r.$sort=e.$sort),r.$sort=t.extend("data",{},i.defaultSort||{},e.$sort||{}),0===Object.keys(r.$sort).length&&delete r.$sort,e.$query&&(delete e.$query.$page,delete e.$query.$sort,delete e.$query.$limit),e.$query=t.extend("data",r,e.$query||{}),i.onQuery&&!i.silentMode&&i.onQuery(e.$query,e),i}function D(e,n,i){var r=angular.copy(e);return t.deepRemove(r,this.idKey),this.createItem(this.getParentOf(e),r,n,i)}function C(e,n,i,r,a){var o=this;return"boolean"==typeof arguments[1]?(r=arguments[2],i=arguments[1],n=arguments[0],e=null):3===arguments.length&&"function"==typeof arguments[2]?(r=arguments[2],i=!1):2===arguments.length&&"function"==typeof arguments[1]?(r=arguments[1],n=arguments[0],e=null):1===arguments.length&&(n=arguments[0],e=null),o.maintainReferences(e,n),o.getResourceMethod("create",n,e)(n,function(a){n=t.extend("data",n,a),i&&e&&o.maintainReferences(e,n),i?e&&e.$children?(e.$expanded=!0,o.appendItems(e,a),"function"==typeof r&&r(a),"function"==typeof o.onCreate&&o.onCreate(a)):o.load(e,function(n){e&&(e.$expanded=!0);for(var i=0;i<n.length;i++)if(t.deepGet(n[i],o.idKey)===t.deepGet(a,o.idKey)){"function"==typeof r&&r(n[i]),"function"==typeof o.onCreate&&o.onCreate(n[i]);break}}):("function"==typeof r&&r(n),"function"==typeof o.onCreate&&o.onCreate(n))},a),o}function S(e,n,i){return this.getResourceMethod("update",e)(e,function(i){e=t.extend("data",e,i),n&&n(e)},i),this}function O(e,n,i){var r=this.idKey,a={};return a[r]=t.deepGet(e,r),this.getResourceMethod("find",e)(a,function(t){var i=e.$expanded;e=t,i?b(e,function(){n&&n(e)}):n&&n(e)},i),this}function M(e,t,n,i){}function T(e,t,n){var i=this;i.getResourceMethod("remove",e)(e,function(){i.maintainReferences(i.getParentOf(e),e,!0);var n=i.getParentOf(e);n?n.$children.splice(n.$children.indexOf(e),1):i.items.splice(i.items.indexOf(e),1),"function"==typeof t&&t()},n)}function E(e,t){var n=this,i=!!e.$focused;return n.focusedItem&&n.focusedItem!==e&&(n.focusedItem.$focused=!1),e.$focused=!t||!e.$focused,n.focusedItem=t&&i?null:e,"function"==typeof n.onFocus&&n.onFocus(e),n}function q(){return this.focusedItem}function _(e){var t,n,i=this,r=!i.multiSelect,a=e.$selected;if(r){for(t=0;t<i.selectedItems.length;t++)i.selectedItems[t].$selected&&(i.selectedItems[t].$selected=!1);a?i.selectedItems=[]:(e.$selected=!0,i.selectedItems=[e])}else e.$selected?(e.$selected=!1,(n=i.selectedItems.indexOf(e))>=0&&i.selectedItems.splice(n,1)):(e.$selected=!0,i.selectedItems.push(e));"function"==typeof i.onSelect&&i.onSelect(e,e.$selected)}function P(){return this.selectedItems}return n.defaults={},n}]),function(e,t){"use strict";var n,i,r,a=["ng","oc.lazyLoad"],o={},s=[],l=[],u=[],c=[],d=e.noop,p={},f=[];e.module("oc.lazyLoad",["ng"]).provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(n,h,g,m,b,y){function v(t,n,i){var o,s,l,c,h,g;if(n){for(c=[],o=n.length-1;o>=0;o--)if(s=n[o],e.isString(s)||(s=x(s)),s&&-1===f.indexOf(s)&&(!S[s]||-1!==u.indexOf(s))){if(h=-1===a.indexOf(s),l=r(s),h&&(a.push(s),v(t,l.requires,i)),l._runBlocks.length>0)for(p[s]=[];l._runBlocks.length>0;)p[s].push(l._runBlocks.shift());e.isDefined(p[s])&&(h||i.rerun)&&(c=c.concat(p[s])),w(t,l._invokeQueue,s,i.reconfig),w(t,l._configBlocks,s,i.reconfig),d(h?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",s),n.pop(),f.push(s)}g=t.getInstanceInjector(),e.forEach(c,function(e){g.invoke(e)})}}function $(t,n){function i(t,n){var i,a=!0;return n.length&&(i=r(t),e.forEach(n,function(e){a=a&&r(e)!==i})),a}function r(t){return e.isArray(t)?C(t.toString()):e.isObject(t)?C(D(t)):e.isDefined(t)&&null!==t?C(t.toString()):t}var a,s=t[2][0],l=t[1],u=!1;if(e.isUndefined(o[n])&&(o[n]={}),e.isUndefined(o[n][l])&&(o[n][l]={}),a=function(e,t){o[n][l].hasOwnProperty(e)||(o[n][l][e]=[]),i(t,o[n][l][e])&&(u=!0,o[n][l][e].push(t),d("ocLazyLoad.componentLoaded",[n,l,e]))},e.isString(s))a(s,t[2][1]);else{if(!e.isObject(s))return!1;e.forEach(s,function(t,n){e.isString(t)?a(t,s[1]):a(n,t)})}return u}function w(t,n,i,r){var a,o,l,u,c,d,p,f;if(n)for(a=0,o=n.length;a<o;a++)if(l=n[a],e.isArray(l)){if(null!==t){if(!t.hasOwnProperty(l[0]))throw new Error("unsupported provider "+l[0]);u=t[l[0]]}if(c=$(l,i),"invoke"!==l[1])c&&e.isDefined(u)&&u[l[1]].apply(u,l[2]);else if(d=function(t){var n=s.indexOf(i+"-"+t);(-1===n||r)&&(-1===n&&s.push(i+"-"+t),e.isDefined(u)&&u[l[1]].apply(u,l[2]))},e.isFunction(l[2][0]))d(l[2][0]);else if(e.isArray(l[2][0]))for(p=0,f=l[2][0].length;p<f;p++)e.isFunction(l[2][0][p])&&d(l[2][0][p])}}function x(t){var n=null;return e.isString(t)?n=t:e.isObject(t)&&t.hasOwnProperty("name")&&e.isString(t.name)&&(n=t.name),n}function k(t){if(!e.isString(t))return!1;try{return r(t)}catch(e){if(/No module/.test(e)||e.message.indexOf("$injector:nomod")>-1)return!1}}var D,C,S={},O={$controllerProvider:n,$compileProvider:g,$filterProvider:m,$provide:h,$injector:b,$animateProvider:y},M=!1,T=!1,E=[],q={};E.push=function(e){-1===this.indexOf(e)&&Array.prototype.push.apply(this,arguments)},this.config=function(t){e.isDefined(t.modules)&&(e.isArray(t.modules)?e.forEach(t.modules,function(e){S[e.name]=e}):S[t.modules.name]=t.modules),e.isDefined(t.debug)&&(M=t.debug),e.isDefined(t.events)&&(T=t.events)},this._init=function(n){var i,r,o,s,u;0===l.length&&(i=[n],r=["ng:app","ng-app","x-ng-app","data-ng-app"],o=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,s=function(e){return e&&i.push(e)},e.forEach(r,function(t){r[t]=!0,s(document.getElementById(t)),t=t.replace(":","\\:"),void 0!==n[0]&&n[0].querySelectorAll&&(e.forEach(n[0].querySelectorAll("."+t),s),e.forEach(n[0].querySelectorAll("."+t+"\\:"),s),e.forEach(n[0].querySelectorAll("["+t+"]"),s))}),e.forEach(i,function(t){var i,a;0===l.length&&(i=" "+n.className+" ",a=o.exec(i),a?l.push((a[2]||"").replace(/\s+/g,",")):e.forEach(t.attributes,function(e){0===l.length&&r[e.name]&&l.push(e.value)}))})),0!==l.length||(t.jasmine||t.mocha)&&e.isDefined(e.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad."),u=function t(n){if(-1===a.indexOf(n)){a.push(n);var i=e.module(n);w(null,i._invokeQueue,n),w(null,i._configBlocks,n),e.forEach(i.requires,t)}},e.forEach(l,function(e){u(e)}),l=[],c.pop()},D=function(t){try{return JSON.stringify(t)}catch(i){var n=[];return JSON.stringify(t,function(t,i){if(e.isObject(i)&&null!==i){if(-1!==n.indexOf(i))return;n.push(i)}return i})}},C=function(e){var t,n,i,r=0;if(0==e.length)return r;for(t=0,i=e.length;t<i;t++)n=e.charCodeAt(t),r=(r<<5)-r+n,r|=0;return r},this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(t,n,s,u,p){function h(e){var n=p.defer();return t.error(e.message),n.reject(e),n.promise}var g,m=u("ocLazyLoad");return M||(t={},t.error=e.noop,t.warn=e.noop,t.info=e.noop),O.getInstanceInjector=function(){return g||(g=n.data("$injector")||e.injector())},d=function(e,n){T&&s.$broadcast(e,n),M&&t.info(e,n)},{_broadcast:d,_$log:t,_getFilesCache:function(){return m},toggleWatch:function(e){e?c.push(!0):c.pop()},getModuleConfig:function(t){if(!e.isString(t))throw new Error("You need to give the name of the module to get");return S[t]?e.copy(S[t]):null},setModuleConfig:function(t){if(!e.isObject(t))throw new Error("You need to give the module config object to set");return S[t.name]=t,t},getModules:function(){return a},isLoaded:function(t){var n,i,r=function(e){var t=a.indexOf(e)>-1;return t||(t=!!k(e)),t};if(e.isString(t)&&(t=[t]),e.isArray(t)){for(n=0,i=t.length;n<i;n++)if(!r(t[n]))return!1;return!0}throw new Error("You need to define the module(s) name(s)")},_getModuleName:x,_getModule:function(e){try{return r(e)}catch(t){throw(/No module/.test(t)||t.message.indexOf("$injector:nomod")>-1)&&(t.message='The module "'+D(e)+'" that you are trying to load does not exist. '+t.message),t}},moduleExists:k,_loadDependencies:function(t,n){var i,r,a,o=[],s=this;if(null===(t=s._getModuleName(t)))return p.when();try{i=s._getModule(t)}catch(e){return h(e)}return r=s.getRequires(i),e.forEach(r,function(i){var r,l;if(e.isString(i)){if(null===(r=s.getModuleConfig(i)))return void E.push(i);i=r,r.name=void 0}if(s.moduleExists(i.name))return a=i.files.filter(function(e){return s.getModuleConfig(i.name).files.indexOf(e)<0}),0!==a.length&&s._$log.warn('Module "',t,'" attempted to redefine configuration for dependency. "',i.name,'"\n Additional Files Loaded:',a),e.isDefined(s.filesLoader)?void o.push(s.filesLoader(i,n).then(function(){return s._loadDependencies(i)})):h(new Error("Error: New dependencies need to be loaded from external files ("+i.files+"), but no loader has been defined."));if(e.isArray(i)?(l=[],e.forEach(i,function(e){var t=s.getModuleConfig(e);null===t?l.push(e):t.files&&(l=l.concat(t.files))}),l.length>0&&(i={files:l})):e.isObject(i)&&i.hasOwnProperty("name")&&i.name&&(s.setModuleConfig(i),E.push(i.name)),e.isDefined(i.files)&&0!==i.files.length){if(!e.isDefined(s.filesLoader))return h(new Error('Error: the module "'+i.name+'" is defined in external files ('+i.files+"), but no loader has been defined."));o.push(s.filesLoader(i,n).then(function(){return s._loadDependencies(i)}))}}),p.all(o)},inject:function(t){var n,i,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],a=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],o=this,s=p.defer();if(e.isDefined(t)&&null!==t){if(e.isArray(t))return n=[],e.forEach(t,function(e){n.push(o.inject(e,r,a))}),p.all(n);o._addToLoadList(o._getModuleName(t),!0,a)}if(l.length>0)i=l.slice(),function e(t){E.push(t),q[t]=s.promise,o._loadDependencies(t,r).then(function(){try{f=[],v(O,E,r)}catch(e){return o._$log.error(e.message),void s.reject(e)}l.length>0?e(l.shift()):s.resolve(i)},function(e){s.reject(e)})}(l.shift());else{if(r&&r.name&&q[r.name])return q[r.name];s.resolve()}return s.promise},getRequires:function(t){var n=[];return e.forEach(t.requires,function(e){-1===a.indexOf(e)&&n.push(e)}),n},_invokeQueue:w,_registerInvokeList:$,_register:v,_addToLoadList:i,_unregister:function(t){e.isDefined(t)&&e.isArray(t)&&e.forEach(t,function(e){o[e]=void 0})}}}],this._init(e.element(t.document))}]),n=e.bootstrap,e.bootstrap=function(t,r,a){return e.forEach(r.slice(),function(e){i(e,!0,!0)}),n(t,r,a)},i=function(t,n,i){(c.length>0||n)&&e.isString(t)&&-1===l.indexOf(t)&&(l.push(t),i&&u.push(t))},r=e.module,e.module=function(e,t,n){return i(e,!1,!0),r(e,t,n)},"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="oc.lazyLoad")}(angular,window),function(e){"use strict";e.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse","$timeout",function(t,n,i,r,a){return{restrict:"A",terminal:!0,priority:1e3,compile:function(a,o){var s=a[0].innerHTML;return a.html(""),function(a,o,l){var u=r(l.ocLazyLoad);a.$watch(function(){return u(a)||l.ocLazyLoad},function(r){e.isDefined(r)&&t.load(r).then(function(){i.enter(s,o),n(o.contents())(a)})},!0)}}}}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(t,n,i,r){var a=!1,o=i.document.getElementsByTagName("head")[0]||i.document.getElementsByTagName("body")[0];return t.buildElement=function(s,l,u){var c,d,p,f,h,g,m,b,y,v,$,w=n.defer(),x=t._getFilesCache(),k=function(e){var t=(new Date).getTime();return e.indexOf("?")>=0?"&"===e.substring(0,e.length-1)?e+"_dc="+t:e+"&_dc="+t:e+"?_dc="+t};switch(e.isUndefined(x.get(l))&&x.put(l,w.promise),s){case"css":c=i.document.createElement("link"),c.type="text/css",c.rel="stylesheet",c.href=!1===u.cache?k(l):l;break;case"js":c=i.document.createElement("script"),c.src=!1===u.cache?k(l):l;break;default:x.remove(l),w.reject(new Error('Requested type "'+s+'" is not known. Could not inject "'+l+'"'))}return c.onload=c.onreadystatechange=function(e){c.readyState&&!/^c|loade/.test(c.readyState)||d||(c.onload=c.onreadystatechange=null,d=1,t._broadcast("ocLazyLoad.fileLoaded",l),w.resolve())},c.onerror=function(){x.remove(l),w.reject(new Error("Unable to load "+l))},c.async=u.serie?0:1,p=o.lastChild,u.insertBefore&&(f=e.element(e.isDefined(window.jQuery)?u.insertBefore:document.querySelector(u.insertBefore)))&&f.length>0&&(p=f[0]),p.parentNode.insertBefore(c,p),"css"==s&&(h=i.navigator.userAgent.toLowerCase(),/iP(hone|od|ad)/.test(i.navigator.platform)?(g=i.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),m=parseFloat([parseInt(g[1],10),parseInt(g[2],10),parseInt(g[3]||0,10)].join(".")),a=m<6):h.indexOf("android")>-1?(b=parseFloat(h.slice(h.indexOf("android")+8)),a=b<4.4):h.indexOf("safari")>-1&&(y=h.match(/version\/([\.\d]+)/i),a=y&&y[1]&&parseFloat(y[1])<6),a&&(v=1e3,$=r(function(){try{c.sheet.cssRules,r.cancel($),c.onload()}catch(e){--v<=0&&c.onerror()}},20))),w.promise},t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.filesLoader=function(i){var r,a,o,s,l,u,c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=[],p=[],f=[],h=[],g=null,m=t._getFilesCache();return t.toggleWatch(!0),e.extend(c,i),r=function(n){var i,r=null;if(e.isObject(n)&&(r=n.type,n=n.path),g=m.get(n),e.isUndefined(g)||!1===c.cache){if(null!==(i=/^(css|less|html|htm|js)?(?=!)/.exec(n))&&(r=i[1],n=n.substr(i[1].length+1,n.length)),!r)if(null!==(i=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(n)))r=i[1];else{if(t.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!t.jsLoader.hasOwnProperty("requirejs"))return void t._$log.error("File type could not be determined. "+n);r="js"}"css"!==r&&"less"!==r||-1!==d.indexOf(n)?"html"!==r&&"htm"!==r||-1!==p.indexOf(n)?"js"===r||-1===f.indexOf(n)?f.push(n):t._$log.error("File type is not valid. "+n):p.push(n):d.push(n)}else g&&h.push(g)},c.serie?r(c.files.shift()):e.forEach(c.files,function(e){r(e)}),d.length>0&&(a=n.defer(),t.cssLoader(d,function(n){e.isDefined(n)&&t.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(n),a.reject(n)):a.resolve()},c),h.push(a.promise)),p.length>0&&(o=n.defer(),t.templatesLoader(p,function(n){e.isDefined(n)&&t.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(n),o.reject(n)):o.resolve()},c),h.push(o.promise)),f.length>0&&(s=n.defer(),t.jsLoader(f,function(n){e.isDefined(n)&&(t.jsLoader.hasOwnProperty("ocLazyLoadLoader")||t.jsLoader.hasOwnProperty("requirejs"))?(t._$log.error(n),s.reject(n)):s.resolve()},c),h.push(s.promise)),0===h.length?(l=n.defer(),u="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.",t._$log.error(u),l.reject(u),l.promise):c.serie&&c.files.length>0?n.all(h).then(function(){return t.filesLoader(i,c)}):n.all(h).finally(function(e){return t.toggleWatch(!1),e})},t.load=function(i){var r,a,o,s=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],l=this,u=null,c=[],d=n.defer(),p=e.copy(i),f=e.copy(s);return e.isArray(p)?(e.forEach(p,function(e){c.push(l.load(e,f))}),n.all(c).then(function(e){d.resolve(e)},function(e){d.reject(e)}),d.promise):(e.isString(p)?(u=l.getModuleConfig(p))||(u={files:[p]}):e.isObject(p)&&(u=e.isDefined(p.path)&&e.isDefined(p.type)?{files:[p]}:l.setModuleConfig(p)),null===u?(a=l._getModuleName(p),r='Module "'+(a||"unknown")+'" is not configured, cannot load.',t._$log.error(r),d.reject(new Error(r)),d.promise):(e.isDefined(u.template)&&(e.isUndefined(u.files)&&(u.files=[]),e.isString(u.template)?u.files.push(u.template):e.isArray(u.template)&&u.files.concat(u.template)),o=e.extend({},f,u),e.isUndefined(u.files)&&e.isDefined(u.name)&&t.moduleExists(u.name)?t.inject(u.name,o,!0):(t.filesLoader(u,o).then(function(){t.inject(null,o).then(function(e){d.resolve(e)},function(e){d.reject(e)})},function(e){d.reject(e)}),d.promise)))},t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.cssLoader=function(i,r,a){var o=[];e.forEach(i,function(e){o.push(t.buildElement("css",e,a))}),n.all(o).then(function(){r()},function(e){r(e)})},t.cssLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.jsLoader=function(i,r,a){var o=[];e.forEach(i,function(e){o.push(t.buildElement("js",e,a))}),n.all(o).then(function(){r()},function(e){r(e)})},t.jsLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(t,n,i,r){return t.templatesLoader=function(a,o,s){var l=[],u=t._getFilesCache();return e.forEach(a,function(t){var a=i.defer();l.push(a.promise),r.get(t,s).success(function(i){e.isString(i)&&i.length>0&&e.forEach(e.element(i),function(e){"SCRIPT"===e.nodeName&&"text/ng-template"===e.type&&n.put(e.id,e.innerHTML)}),e.isUndefined(u.get(t))&&u.put(t,!0),a.resolve()}).error(function(e){a.reject(new Error('Unable to load template file "'+t+'": '+e))})}),i.all(l).then(function(){o()},function(e){o(e)})},t.templatesLoader.ocLazyLoadLoader=!0,t}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n,i,r,a;if(null==this)throw new TypeError('"this" is null or not defined');if(i=Object(this),0===(r=i.length>>>0))return-1;if(a=+t||0,Math.abs(a)===1/0&&(a=0),a>=r)return-1;for(n=Math.max(a>=0?a:r-Math.abs(a),0);n<r;){if(n in i&&i[n]===e)return n;n++}return-1}),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.datepicker","ui.bootstrap.position","ui.bootstrap.datepickerPopup","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","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",["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/year.html","uib/template/datepickerPopup/popup.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("uibCollapse",["$animate","$q","$parse","$injector",function(e,t,n,i){var r=i.has("$animateCss")?i.get("$animateCss"):null;return{link:function(i,a,o){function s(){a.hasClass("collapse")&&a.hasClass("in")||t.resolve(d(i)).then(function(){a.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),r?r(a,{addClass:"in",easing:"ease",to:{height:a[0].scrollHeight+"px"}}).start().finally(l):e.addClass(a,"in",{to:{height:a[0].scrollHeight+"px"}}).then(l)})}function l(){a.removeClass("collapsing").addClass("collapse").css({height:"auto"}),p(i)}function u(){if(!a.hasClass("collapse")&&!a.hasClass("in"))return c();t.resolve(f(i)).then(function(){a.css({height:a[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),r?r(a,{removeClass:"in",to:{height:"0"}}).start().finally(c):e.removeClass(a,"in",{to:{height:"0"}}).then(c)})}function c(){a.css({height:"0"}),a.removeClass("collapsing").addClass("collapse"),h(i)}var d=n(o.expanding),p=n(o.expanded),f=n(o.collapsing),h=n(o.collapsed);i.$eval(o.uibCollapse)||a.addClass("in").addClass("collapse").attr("aria-expanded",!0).attr("aria-hidden",!1).css({height:"auto"}),i.$watch(o.uibCollapse,function(e){e?u():s()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("uibAccordionConfig",{closeOthers:!0}).controller("UibAccordionController",["$scope","$attrs","uibAccordionConfig",function(e,t,n){this.groups=[],this.closeOthers=function(i){(angular.isDefined(t.closeOthers)?e.$eval(t.closeOthers):n.closeOthers)&&angular.forEach(this.groups,function(e){e!==i&&(e.isOpen=!1)})},this.addGroup=function(e){var t=this;this.groups.push(e),e.$on("$destroy",function(n){t.removeGroup(e)})},this.removeGroup=function(e){var t=this.groups.indexOf(e);-1!==t&&this.groups.splice(t,1)}}]).directive("uibAccordion",function(){return{controller:"UibAccordionController",controllerAs:"accordion",transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/accordion/accordion.html"}}}).directive("uibAccordionGroup",function(){return{require:"^uibAccordion",transclude:!0,replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/accordion/accordion-group.html"},scope:{heading:"@",panelClass:"@?",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(e){this.heading=e}},link:function(e,t,n,i){i.addGroup(e),e.openClass=n.openClass||"panel-open",e.panelClass=n.panelClass||"panel-default",e.$watch("isOpen",function(n){t.toggleClass(e.openClass,!!n),n&&i.closeOthers(e)}),e.toggleOpen=function(t){e.isDisabled||t&&32!==t.which||(e.isOpen=!e.isOpen)};var r="accordiongroup-"+e.$id+"-"+Math.floor(1e4*Math.random());e.headingId=r+"-tab",e.panelId=r+"-panel"}}}).directive("uibAccordionHeading",function(){return{transclude:!0,template:"",replace:!0,require:"^uibAccordionGroup",link:function(e,t,n,i,r){i.setHeading(r(e,angular.noop))}}}).directive("uibAccordionTransclude",function(){return{require:"^uibAccordionGroup",link:function(e,t,n,i){e.$watch(function(){return i[n.uibAccordionTransclude]},function(e){if(e){var n=angular.element(t[0].querySelector("[uib-accordion-header]"));n.html(""),n.append(e)}})}}}),angular.module("ui.bootstrap.alert",[]).controller("UibAlertController",["$scope","$attrs","$interpolate","$timeout",function(e,t,n,i){e.closeable=!!t.close;var r=angular.isDefined(t.dismissOnTimeout)?n(t.dismissOnTimeout)(e.$parent):null;r&&i(function(){e.close()},parseInt(r,10))}]).directive("uibAlert",function(){return{controller:"UibAlertController",controllerAs:"alert",templateUrl:function(e,t){return t.templateUrl||"uib/template/alert/alert.html"},transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.buttons",[]).constant("uibButtonConfig",{activeClass:"active",toggleEvent:"click"}).controller("UibButtonsController",["uibButtonConfig",function(e){this.activeClass=e.activeClass||"active",this.toggleEvent=e.toggleEvent||"click"}]).directive("uibBtnRadio",["$parse",function(e){return{require:["uibBtnRadio","ngModel"],controller:"UibButtonsController",controllerAs:"buttons",link:function(t,n,i,r){var a=r[0],o=r[1],s=e(i.uibUncheckable);n.find("input").css({display:"none"}),o.$render=function(){n.toggleClass(a.activeClass,angular.equals(o.$modelValue,t.$eval(i.uibBtnRadio)))},n.on(a.toggleEvent,function(){if(!i.disabled){var e=n.hasClass(a.activeClass);e&&!angular.isDefined(i.uncheckable)||t.$apply(function(){o.$setViewValue(e?null:t.$eval(i.uibBtnRadio)),o.$render()})}}),i.uibUncheckable&&t.$watch(s,function(e){i.$set("uncheckable",e?"":void 0)})}}}]).directive("uibBtnCheckbox",function(){return{require:["uibBtnCheckbox","ngModel"],controller:"UibButtonsController",controllerAs:"button",link:function(e,t,n,i){function r(){return o(n.btnCheckboxTrue,!0)}function a(){return o(n.btnCheckboxFalse,!1)}function o(t,n){return angular.isDefined(t)?e.$eval(t):n}var s=i[0],l=i[1];t.find("input").css({display:"none"}),l.$render=function(){t.toggleClass(s.activeClass,angular.equals(l.$modelValue,r()))},t.on(s.toggleEvent,function(){n.disabled||e.$apply(function(){l.$setViewValue(t.hasClass(s.activeClass)?a():r()),l.$render()})})}}}),angular.module("ui.bootstrap.carousel",[]).controller("UibCarouselController",["$scope","$element","$interval","$timeout","$animate",function(e,t,n,i,r){function a(){for(;v.length;)v.shift()}function o(e){for(var t=0;t<m.length;t++)m[t].slide.active=t===e}function s(n,i,l){if(!$){if(angular.extend(n,{direction:l}),angular.extend(m[y].slide||{},{direction:l}),r.enabled(t)&&!e.$currentTransition&&m[i].element&&g.slides.length>1){m[i].element.data(b,n.direction);var u=g.getCurrentIndex();angular.isNumber(u)&&m[u].element&&m[u].element.data(b,n.direction),e.$currentTransition=!0,r.on("addClass",m[i].element,function(t,n){var i,o,l;"close"===n&&(e.$currentTransition=null,r.off("addClass",t),v.length&&(i=v.pop().slide,o=i.index,l=o>g.getCurrentIndex()?"next":"prev",a(),s(i,o,l)))})}e.active=n.index,y=n.index,o(i),d()}}function l(e){for(var t=0;t<m.length;t++)if(m[t].slide===e)return t}function u(){f&&(n.cancel(f),f=null)}function c(t){t.length||(e.$currentTransition=null,a())}function d(){u();var t=+e.interval;!isNaN(t)&&t>0&&(f=n(p,t))}function p(){var t=+e.interval;h&&!isNaN(t)&&t>0&&m.length?e.next():e.pause()}var f,h,g=this,m=g.slides=e.slides=[],b="uib-slideDirection",y=e.active,v=[],$=!1;g.addSlide=function(t,n){m.push({slide:t,element:n}),m.sort(function(e,t){return+e.slide.index-+t.slide.index}),(t.index===e.active||1===m.length&&!angular.isNumber(e.active))&&(e.$currentTransition&&(e.$currentTransition=null),y=t.index,e.active=t.index,o(y),g.select(m[l(t)]),1===m.length&&e.play())},g.getCurrentIndex=function(){for(var e=0;e<m.length;e++)if(m[e].slide.index===y)return e},g.next=e.next=function(){var t=(g.getCurrentIndex()+1)%m.length;return 0===t&&e.noWrap()?void e.pause():g.select(m[t],"next")},g.prev=e.prev=function(){var t=g.getCurrentIndex()-1<0?m.length-1:g.getCurrentIndex()-1;return e.noWrap()&&t===m.length-1?void e.pause():g.select(m[t],"prev")},g.removeSlide=function(t){var n=l(t),i=v.indexOf(m[n]);-1!==i&&v.splice(i,1),m.splice(n,1),m.length>0&&y===n?n>=m.length?(y=m.length-1,e.active=y,o(y),g.select(m[m.length-1])):(y=n,e.active=y,o(y),g.select(m[n])):y>n&&(y--,e.active=y),0===m.length&&(y=null,e.active=null,a())},g.select=e.select=function(t,n){var i=l(t.slide);void 0===n&&(n=i>g.getCurrentIndex()?"next":"prev"),t.slide.index===y||e.$currentTransition?t&&t.slide.index!==y&&e.$currentTransition&&v.push(m[i]):s(t.slide,i,n)},e.indexOfSlide=function(e){return+e.slide.index},e.isActive=function(t){return e.active===t.slide.index},e.isPrevDisabled=function(){return 0===e.active&&e.noWrap()},e.isNextDisabled=function(){return e.active===m.length-1&&e.noWrap()},e.pause=function(){e.noPause||(h=!1,u())},e.play=function(){h||(h=!0,d())},e.$on("$destroy",function(){$=!0,u()}),e.$watch("noTransition",function(e){r.enabled(t,!e)}),e.$watch("interval",d),e.$watchCollection("slides",c),e.$watch("active",function(e){var t,n;if(angular.isNumber(e)&&y!==e){for(t=0;t<m.length;t++)if(m[t].slide.index===e){e=t;break}n=m[e],n&&(o(e),g.select(m[e]),y=e)}})}]).directive("uibCarousel",function(){return{transclude:!0,replace:!0,controller:"UibCarouselController",controllerAs:"carousel",templateUrl:function(e,t){return t.templateUrl||"uib/template/carousel/carousel.html"},scope:{active:"=",interval:"=",noTransition:"=",noPause:"=",noWrap:"&"}}}).directive("uibSlide",function(){return{require:"^uibCarousel",transclude:!0,replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/carousel/slide.html"},scope:{actual:"=?",index:"=?"},link:function(e,t,n,i){i.addSlide(e,t),e.$on("$destroy",function(){i.removeSlide(e)})}}}).animation(".item",["$animateCss",function(e){function t(e,t,n){e.removeClass(t),n&&n()}return{beforeAddClass:function(n,i,r){var a,o,s,l;if("active"===i)return a=!1,o=n.data("uib-slideDirection"),s="next"===o?"left":"right",l=t.bind(this,n,s+" "+o,r),n.addClass(o),e(n,{addClass:s}).start().done(l),function(){a=!0};r()},beforeRemoveClass:function(n,i,r){var a,o,s,l;if("active"===i)return a=!1,o=n.data("uib-slideDirection"),s="next"===o?"left":"right",l=t.bind(this,n,s,r),e(n,{addClass:s}).start().done(l),function(){a=!0};r()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("uibDateParser",["$log","$locale","dateFilter","orderByFilter",function(e,t,n,i){function r(e,t){var n,r,a=[],o=e.split(""),s=e.indexOf("'");if(s>-1){for(n=!1,e=e.split(""),r=s;r<e.length;r++)n?("'"===e[r]&&(r+1<e.length&&"'"===e[r+1]?(e[r+1]="$",o[r+1]=""):(o[r]="",n=!1)),e[r]="$"):"'"===e[r]&&(e[r]="$",o[r]="",n=!0);e=e.join("")}return angular.forEach(f,function(n){var i,r,s=e.indexOf(n.key);if(s>-1){for(e=e.split(""),o[s]="("+n.regex+")",e[s]="$",i=s+1,r=s+n.key.length;i<r;i++)o[i]="",e[i]="$";e=e.join(""),a.push({index:s,key:n.key,apply:n[t],matcher:n.regex})}}),{regex:new RegExp("^"+o.join("")+"$"),map:i(a,"index")}}function a(e,t,n){return!(n<1)&&(1===t&&n>28?29===n&&(e%4==0&&e%100!=0||e%400==0):3!==t&&5!==t&&8!==t&&10!==t||n<31)}function o(e){return parseInt(e,10)}function s(e,t){return e&&t?d(e,t):e}function l(e,t){return e&&t?d(e,t,!0):e}function u(e,t){var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function c(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function d(e,t,n){return n=n?-1:1,c(e,n*(u(t,e.getTimezoneOffset())-e.getTimezoneOffset()))}var p,f,h=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.init=function(){p=t.id,this.parsers={},this.formatters={},f=[{key:"yyyy",regex:"\\d{4}",apply:function(e){this.year=+e},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"yyyy")}},{key:"yy",regex:"\\d{2}",apply:function(e){e=+e,this.year=e<69?e+2e3:e+1900},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"yy")}},{key:"y",regex:"\\d{1,4}",apply:function(e){this.year=+e},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"y")}},{key:"M!",regex:"0?[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){return/^[0-9]$/.test(e.getMonth())?n(e,"MM"):n(e,"M")}},{key:"MMMM",regex:t.DATETIME_FORMATS.MONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.MONTH.indexOf(e)},formatter:function(e){return n(e,"MMMM")}},{key:"MMM",regex:t.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(e){
this.month=t.DATETIME_FORMATS.SHORTMONTH.indexOf(e)},formatter:function(e){return n(e,"MMM")}},{key:"MM",regex:"0[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){return n(e,"MM")}},{key:"M",regex:"[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){return n(e,"M")}},{key:"d!",regex:"[0-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){return/^[1-9]$/.test(e.getDate())?n(e,"dd"):n(e,"d")}},{key:"dd",regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){return n(e,"dd")}},{key:"d",regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){return n(e,"d")}},{key:"EEEE",regex:t.DATETIME_FORMATS.DAY.join("|"),formatter:function(e){return n(e,"EEEE")}},{key:"EEE",regex:t.DATETIME_FORMATS.SHORTDAY.join("|"),formatter:function(e){return n(e,"EEE")}},{key:"HH",regex:"(?:0|1)[0-9]|2[0-3]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"HH")}},{key:"hh",regex:"0[0-9]|1[0-2]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"hh")}},{key:"H",regex:"1?[0-9]|2[0-3]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"H")}},{key:"h",regex:"[0-9]|1[0-2]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"h")}},{key:"mm",regex:"[0-5][0-9]",apply:function(e){this.minutes=+e},formatter:function(e){return n(e,"mm")}},{key:"m",regex:"[0-9]|[1-5][0-9]",apply:function(e){this.minutes=+e},formatter:function(e){return n(e,"m")}},{key:"sss",regex:"[0-9][0-9][0-9]",apply:function(e){this.milliseconds=+e},formatter:function(e){return n(e,"sss")}},{key:"ss",regex:"[0-5][0-9]",apply:function(e){this.seconds=+e},formatter:function(e){return n(e,"ss")}},{key:"s",regex:"[0-9]|[1-5][0-9]",apply:function(e){this.seconds=+e},formatter:function(e){return n(e,"s")}},{key:"a",regex:t.DATETIME_FORMATS.AMPMS.join("|"),apply:function(e){12===this.hours&&(this.hours=0),"PM"===e&&(this.hours+=12)},formatter:function(e){return n(e,"a")}},{key:"Z",regex:"[+-]\\d{4}",apply:function(e){var t=e.match(/([+-])(\d{2})(\d{2})/),n=t[1],i=t[2],r=t[3];this.hours+=o(n+i),this.minutes+=o(n+r)},formatter:function(e){return n(e,"Z")}},{key:"ww",regex:"[0-4][0-9]|5[0-3]",formatter:function(e){return n(e,"ww")}},{key:"w",regex:"[0-9]|[1-4][0-9]|5[0-3]",formatter:function(e){return n(e,"w")}},{key:"GGGG",regex:t.DATETIME_FORMATS.ERANAMES.join("|").replace(/\s/g,"\\s"),formatter:function(e){return n(e,"GGGG")}},{key:"GGG",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"GGG")}},{key:"GG",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"GG")}},{key:"G",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"G")}}]},this.init(),this.filter=function(e,n){var i,a,o;return angular.isDate(e)&&!isNaN(e)&&n?(n=t.DATETIME_FORMATS[n]||n,t.id!==p&&this.init(),this.formatters[n]||(this.formatters[n]=r(n,"formatter")),i=this.formatters[n],a=i.map,o=n,a.reduce(function(t,n,i){var r,s=o.match(new RegExp("(.*)"+n.key));return s&&angular.isString(s[1])&&(t+=s[1],o=o.replace(s[1]+n.key,"")),r=i===a.length-1?o:"",n.apply?t+n.apply.call(null,e)+r:t+r},"")):""},this.parse=function(n,i,o){var s,l,u,c,d,f,g,m,b,y,v,$;if(!angular.isString(n)||!i)return n;if(i=t.DATETIME_FORMATS[i]||i,i=i.replace(h,"\\$&"),t.id!==p&&this.init(),this.parsers[i]||(this.parsers[i]=r(i,"apply")),s=this.parsers[i],l=s.regex,u=s.map,c=n.match(l),d=!1,c&&c.length){for(angular.isDate(o)&&!isNaN(o.getTime())?f={year:o.getFullYear(),month:o.getMonth(),date:o.getDate(),hours:o.getHours(),minutes:o.getMinutes(),seconds:o.getSeconds(),milliseconds:o.getMilliseconds()}:(o&&e.warn("dateparser:","baseDate is not a valid date"),f={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0}),m=1,b=c.length;m<b;m++)y=u[m-1],"Z"===y.matcher&&(d=!0),y.apply&&y.apply.call(f,c[m]);return v=d?Date.prototype.setUTCFullYear:Date.prototype.setFullYear,$=d?Date.prototype.setUTCHours:Date.prototype.setHours,a(f.year,f.month,f.date)&&(!angular.isDate(o)||isNaN(o.getTime())||d?(g=new Date(0),v.call(g,f.year,f.month,f.date),$.call(g,f.hours||0,f.minutes||0,f.seconds||0,f.milliseconds||0)):(g=new Date(o),v.call(g,f.year,f.month,f.date),$.call(g,f.hours,f.minutes,f.seconds,f.milliseconds))),g}},this.toTimezone=s,this.fromTimezone=l,this.timezoneToOffset=u,this.addDateMinutes=c,this.convertTimezoneToLocal=d}]),angular.module("ui.bootstrap.isClass",[]).directive("uibIsClass",["$animate",function(e){var t=/^\s*([\s\S]+?)\s+on\s+([\s\S]+?)\s*$/,n=/^\s*([\s\S]+?)\s+for\s+([\s\S]+?)\s*$/;return{restrict:"A",compile:function(i,r){function a(e,t,n){l.push(e),u.push({scope:e,element:t}),h.forEach(function(t,n){o(t,e)}),e.$on("$destroy",s)}function o(t,i){var r,a=t.match(n),o=i.$eval(a[1]),s=a[2],l=c[t];l||(r=function(t){var n=null;u.some(function(e){if(e.scope.$eval(p)===t)return n=e,!0}),l.lastActivated!==n&&(l.lastActivated&&e.removeClass(l.lastActivated.element,o),n&&e.addClass(n.element,o),l.lastActivated=n)},c[t]=l={lastActivated:null,scope:i,watchFn:r,compareWithExp:s,watcher:i.$watch(s,r)}),l.watchFn(i.$eval(s))}function s(e){var t,n=e.targetScope,i=l.indexOf(n);l.splice(i,1),u.splice(i,1),l.length?(t=l[0],angular.forEach(c,function(e){e.scope===n&&(e.watcher=t.$watch(e.compareWithExp,e.watchFn),e.scope=t)})):c={}}var l=[],u=[],c={},d=r.uibIsClass.match(t),p=d[2],f=d[1],h=f.split(",");return a}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.isClass"]).value("$datepickerSuppressError",!1).value("$datepickerLiteralWarning",!0).constant("uibDatepickerConfig",{datepickerMode:"day",formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",maxDate:null,maxMode:"year",minDate:null,minMode:"day",ngModelOptions:{},shortcutPropagation:!1,showWeeks:!0,yearColumns:5,yearRows:4}).controller("UibDatepickerController",["$scope","$attrs","$parse","$interpolate","$locale","$log","dateFilter","uibDatepickerConfig","$datepickerLiteralWarning","$datepickerSuppressError","uibDateParser",function(e,t,n,i,r,a,o,s,l,u,c){function d(t){e.datepickerMode=t,e.datepickerOptions.datepickerMode=t}var p,f=this,h={$setViewValue:angular.noop},g={},m=[];t.datepickerOptions;e.datepickerOptions||(e.datepickerOptions={}),this.modes=["day","month","year"],["customClass","dateDisabled","datepickerMode","formatDay","formatDayHeader","formatDayTitle","formatMonth","formatMonthTitle","formatYear","maxDate","maxMode","minDate","minMode","showWeeks","shortcutPropagation","startingDay","yearColumns","yearRows"].forEach(function(t){switch(t){case"customClass":case"dateDisabled":e[t]=e.datepickerOptions[t]||angular.noop;break;case"datepickerMode":e.datepickerMode=angular.isDefined(e.datepickerOptions.datepickerMode)?e.datepickerOptions.datepickerMode:s.datepickerMode;break;case"formatDay":case"formatDayHeader":case"formatDayTitle":case"formatMonth":case"formatMonthTitle":case"formatYear":f[t]=angular.isDefined(e.datepickerOptions[t])?i(e.datepickerOptions[t])(e.$parent):s[t];break;case"showWeeks":case"shortcutPropagation":case"yearColumns":case"yearRows":f[t]=angular.isDefined(e.datepickerOptions[t])?e.datepickerOptions[t]:s[t];break;case"startingDay":angular.isDefined(e.datepickerOptions.startingDay)?f.startingDay=e.datepickerOptions.startingDay:angular.isNumber(s.startingDay)?f.startingDay=s.startingDay:f.startingDay=(r.DATETIME_FORMATS.FIRSTDAYOFWEEK+8)%7;break;case"maxDate":case"minDate":e.$watch("datepickerOptions."+t,function(e){e?angular.isDate(e)?f[t]=c.fromTimezone(new Date(e),g.timezone):(l&&a.warn("Literal date support has been deprecated, please switch to date object usage"),f[t]=new Date(o(e,"medium"))):f[t]=s[t]?c.fromTimezone(new Date(s[t]),g.timezone):null,f.refreshView()});break;case"maxMode":case"minMode":e.datepickerOptions[t]?e.$watch(function(){return e.datepickerOptions[t]},function(n){f[t]=e[t]=angular.isDefined(n)?n:datepickerOptions[t],("minMode"===t&&f.modes.indexOf(e.datepickerOptions.datepickerMode)<f.modes.indexOf(f[t])||"maxMode"===t&&f.modes.indexOf(e.datepickerOptions.datepickerMode)>f.modes.indexOf(f[t]))&&(e.datepickerMode=f[t],e.datepickerOptions.datepickerMode=f[t])}):f[t]=e[t]=s[t]||null}}),e.uniqueId="datepicker-"+e.$id+"-"+Math.floor(1e4*Math.random()),e.disabled=angular.isDefined(t.disabled)||!1,angular.isDefined(t.ngDisabled)&&m.push(e.$parent.$watch(t.ngDisabled,function(t){e.disabled=t,f.refreshView()})),e.isActive=function(t){return 0===f.compare(t.date,f.activeDate)&&(e.activeDateId=t.uid,!0)},this.init=function(t){h=t,g=t.$options||s.ngModelOptions,e.datepickerOptions.initDate?(f.activeDate=c.fromTimezone(e.datepickerOptions.initDate,g.timezone)||new Date,e.$watch("datepickerOptions.initDate",function(e){e&&(h.$isEmpty(h.$modelValue)||h.$invalid)&&(f.activeDate=c.fromTimezone(e,g.timezone),f.refreshView())})):f.activeDate=new Date,this.activeDate=h.$modelValue?c.fromTimezone(new Date(h.$modelValue),g.timezone):c.fromTimezone(new Date,g.timezone),h.$render=function(){f.render()}},this.render=function(){if(h.$viewValue){var e=new Date(h.$viewValue);!isNaN(e)?this.activeDate=c.fromTimezone(e,g.timezone):u||a.error('Datepicker directive: "ng-model" value must be a Date object')}this.refreshView()},this.refreshView=function(){if(this.element){e.selectedDt=null,this._refreshView(),e.activeDt&&(e.activeDateId=e.activeDt.uid);var t=h.$viewValue?new Date(h.$viewValue):null;t=c.fromTimezone(t,g.timezone),h.$setValidity("dateDisabled",!t||this.element&&!this.isDisabled(t))}},this.createDateObject=function(t,n){var i,r,a,o=h.$viewValue?new Date(h.$viewValue):null;return o=c.fromTimezone(o,g.timezone),i=new Date,i=c.fromTimezone(i,g.timezone),r=this.compare(t,i),a={date:t,label:c.filter(t,n),selected:o&&0===this.compare(t,o),disabled:this.isDisabled(t),past:r<0,current:0===r,future:r>0,customClass:this.customClass(t)||null},o&&0===this.compare(t,o)&&(e.selectedDt=a),f.activeDate&&0===this.compare(a.date,f.activeDate)&&(e.activeDt=a),a},this.isDisabled=function(t){return e.disabled||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&this.compare(t,this.maxDate)>0||e.dateDisabled&&e.dateDisabled({date:t,mode:e.datepickerMode})},this.customClass=function(t){return e.customClass({date:t,mode:e.datepickerMode})},this.split=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},e.select=function(t){if(e.datepickerMode===f.minMode){var n=h.$viewValue?c.fromTimezone(new Date(h.$viewValue),g.timezone):new Date(0,0,0,0,0,0,0);n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n=c.toTimezone(n,g.timezone),h.$setViewValue(n),h.$render()}else f.activeDate=t,d(f.modes[f.modes.indexOf(e.datepickerMode)-1]),e.$emit("uib:datepicker.mode");e.$broadcast("uib:datepicker.focus")},e.move=function(e){var t=f.activeDate.getFullYear()+e*(f.step.years||0),n=f.activeDate.getMonth()+e*(f.step.months||0);f.activeDate.setFullYear(t,n,1),f.refreshView()},e.toggleMode=function(t){t=t||1,e.datepickerMode===f.maxMode&&1===t||e.datepickerMode===f.minMode&&-1===t||(d(f.modes[f.modes.indexOf(e.datepickerMode)+t]),e.$emit("uib:datepicker.mode"))},e.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"},p=function(){f.element[0].focus()},e.$on("uib:datepicker.focus",p),e.keydown=function(t){var n=e.keys[t.which];if(n&&!t.shiftKey&&!t.altKey&&!e.disabled)if(t.preventDefault(),f.shortcutPropagation||t.stopPropagation(),"enter"===n||"space"===n){if(f.isDisabled(f.activeDate))return;e.select(f.activeDate)}else!t.ctrlKey||"up"!==n&&"down"!==n?(f.handleKeyDown(n,t),f.refreshView()):e.toggleMode("up"===n?1:-1)},e.$on("$destroy",function(){for(;m.length;)m.shift()()})}]).controller("UibDaypickerController",["$scope","$element","dateFilter",function(e,t,n){function i(e,t){return 1!==t||e%4!=0||e%100==0&&e%400!=0?a[t]:29}function r(e){var t,n=new Date(e);return n.setDate(n.getDate()+4-(n.getDay()||7)),t=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((t-n)/864e5)/7)+1}var a=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=t,this.init=function(t){angular.extend(t,this),e.showWeeks=t.showWeeks,t.refreshView()},this.getDates=function(e,t){for(var n,i=new Array(t),r=new Date(e),a=0;a<t;)n=new Date(r),i[a++]=n,r.setDate(r.getDate()+1);return i},this._refreshView=function(){var t,i,a,o,s,l,u,c,d,p=this.activeDate.getFullYear(),f=this.activeDate.getMonth(),h=new Date(this.activeDate);for(h.setFullYear(p,f,1),t=this.startingDay-h.getDay(),i=t>0?7-t:-t,a=new Date(h),i>0&&a.setDate(1-i),o=this.getDates(a,42),s=0;s<42;s++)o[s]=angular.extend(this.createDateObject(o[s],this.formatDay),{secondary:o[s].getMonth()!==f,uid:e.uniqueId+"-"+s});for(e.labels=new Array(7),l=0;l<7;l++)e.labels[l]={abbr:n(o[l].date,this.formatDayHeader),full:n(o[l].date,"EEEE")};if(e.title=n(this.activeDate,this.formatDayTitle),e.rows=this.split(o,7),e.showWeeks)for(e.weekNumbers=[],u=(11-this.startingDay)%7,c=e.rows.length,d=0;d<c;d++)e.weekNumbers.push(r(e.rows[d][u].date))},this.compare=function(e,t){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),i=new Date(t.getFullYear(),t.getMonth(),t.getDate());return n.setFullYear(e.getFullYear()),i.setFullYear(t.getFullYear()),n-i},this.handleKeyDown=function(e,t){var n,r=this.activeDate.getDate();"left"===e?r-=1:"up"===e?r-=7:"right"===e?r+=1:"down"===e?r+=7:"pageup"===e||"pagedown"===e?(n=this.activeDate.getMonth()+("pageup"===e?-1:1),this.activeDate.setMonth(n,1),r=Math.min(i(this.activeDate.getFullYear(),this.activeDate.getMonth()),r)):"home"===e?r=1:"end"===e&&(r=i(this.activeDate.getFullYear(),this.activeDate.getMonth())),this.activeDate.setDate(r)}}]).controller("UibMonthpickerController",["$scope","$element","dateFilter",function(e,t,n){this.step={years:1},this.element=t,this.init=function(e){angular.extend(e,this),e.refreshView()},this._refreshView=function(){var t,i,r=new Array(12),a=this.activeDate.getFullYear();for(i=0;i<12;i++)t=new Date(this.activeDate),t.setFullYear(a,i,1),r[i]=angular.extend(this.createDateObject(t,this.formatMonth),{uid:e.uniqueId+"-"+i});e.title=n(this.activeDate,this.formatMonthTitle),e.rows=this.split(r,3)},this.compare=function(e,t){var n=new Date(e.getFullYear(),e.getMonth()),i=new Date(t.getFullYear(),t.getMonth());return n.setFullYear(e.getFullYear()),i.setFullYear(t.getFullYear()),n-i},this.handleKeyDown=function(e,t){var n,i=this.activeDate.getMonth();"left"===e?i-=1:"up"===e?i-=3:"right"===e?i+=1:"down"===e?i+=3:"pageup"===e||"pagedown"===e?(n=this.activeDate.getFullYear()+("pageup"===e?-1:1),this.activeDate.setFullYear(n)):"home"===e?i=0:"end"===e&&(i=11),this.activeDate.setMonth(i)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(e,t,n){function i(e){return parseInt((e-1)/a,10)*a+1}var r,a;this.element=t,this.yearpickerInit=function(){r=this.yearColumns,a=this.yearRows*r,this.step={years:a}},this._refreshView=function(){var t,n,o,s=new Array(a);for(n=0,o=i(this.activeDate.getFullYear());n<a;n++)t=new Date(this.activeDate),t.setFullYear(o+n,0,1),s[n]=angular.extend(this.createDateObject(t,this.formatYear),{uid:e.uniqueId+"-"+n});e.title=[s[0].label,s[a-1].label].join(" - "),e.rows=this.split(s,r),e.columns=r},this.compare=function(e,t){return e.getFullYear()-t.getFullYear()},this.handleKeyDown=function(e,t){var n=this.activeDate.getFullYear();"left"===e?n-=1:"up"===e?n-=r:"right"===e?n+=1:"down"===e?n+=r:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*a:"home"===e?n=i(this.activeDate.getFullYear()):"end"===e&&(n=i(this.activeDate.getFullYear())+a-1),this.activeDate.setFullYear(n)}}]).directive("uibDatepicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/datepicker.html"},scope:{datepickerOptions:"=?"},require:["uibDatepicker","^ngModel"],controller:"UibDatepickerController",controllerAs:"datepicker",link:function(e,t,n,i){var r=i[0],a=i[1];r.init(a)}}}).directive("uibDaypicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/day.html"},require:["^uibDatepicker","uibDaypicker"],controller:"UibDaypickerController",link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibMonthpicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/month.html"},require:["^uibDatepicker","uibMonthpicker"],controller:"UibMonthpickerController",link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibYearpicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/year.html"},require:["^uibDatepicker","uibYearpicker"],controller:"UibYearpickerController",link:function(e,t,n,i){var r=i[0];angular.extend(r,i[1]),r.yearpickerInit(),r.refreshView()}}}),angular.module("ui.bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(e,t){var n,i,r={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},a={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/},o=/(HTML|BODY)/;return{getRawNode:function(e){return e.nodeName?e:e[0]||e},parseStyle:function(e){return e=parseFloat(e),isFinite(e)?e:0},offsetParent:function(n){n=this.getRawNode(n);for(var i=n.offsetParent||e[0].documentElement;i&&i!==e[0].documentElement&&function(e){return"static"===(t.getComputedStyle(e).position||"static")}(i);)i=i.offsetParent;return i||e[0].documentElement},scrollbarWidth:function(r){var a,o;return r?(angular.isUndefined(i)&&(a=e.find("body"),a.addClass("uib-position-body-scrollbar-measure"),i=t.innerWidth-a[0].clientWidth,i=isFinite(i)?i:0,a.removeClass("uib-position-body-scrollbar-measure")),i):(angular.isUndefined(n)&&(o=angular.element('<div class="uib-position-scrollbar-measure"></div>'),e.find("body").append(o),n=o[0].offsetWidth-o[0].clientWidth,n=isFinite(n)?n:0,o.remove()),n)},scrollbarPadding:function(e){var n,i,r,a,s;return e=this.getRawNode(e),n=t.getComputedStyle(e),i=this.parseStyle(n.paddingRight),r=this.parseStyle(n.paddingBottom),a=this.scrollParent(e,!1,!0),s=this.scrollbarWidth(a,o.test(a.tagName)),{scrollbarWidth:s,widthOverflow:a.scrollWidth>a.clientWidth,right:i+s,originalRight:i,heightOverflow:a.scrollHeight>a.clientHeight,bottom:r+s,originalBottom:r}},isScrollable:function(e,n){var i,a;return e=this.getRawNode(e),i=n?r.hidden:r.normal,a=t.getComputedStyle(e),i.test(a.overflow+a.overflowY+a.overflowX)},scrollParent:function(n,i,a){var o,s,l,u,c,d;if(n=this.getRawNode(n),o=i?r.hidden:r.normal,s=e[0].documentElement,l=t.getComputedStyle(n),a&&o.test(l.overflow+l.overflowY+l.overflowX))return n;if(u="absolute"===l.position,(c=n.parentElement||s)===s||"fixed"===l.position)return s;for(;c.parentElement&&c!==s&&(d=t.getComputedStyle(c),u&&"static"!==d.position&&(u=!1),u||!o.test(d.overflow+d.overflowY+d.overflowX));)c=c.parentElement;return c},position:function(n,i){var r,a,o,s;return n=this.getRawNode(n),r=this.offset(n),i&&(a=t.getComputedStyle(n),r.top-=this.parseStyle(a.marginTop),r.left-=this.parseStyle(a.marginLeft)),o=this.offsetParent(n),s={top:0,left:0},o!==e[0].documentElement&&(s=this.offset(o),s.top+=o.clientTop-o.scrollTop,s.left+=o.clientLeft-o.scrollLeft),{width:Math.round(angular.isNumber(r.width)?r.width:n.offsetWidth),height:Math.round(angular.isNumber(r.height)?r.height:n.offsetHeight),top:Math.round(r.top-s.top),left:Math.round(r.left-s.left)}},offset:function(n){n=this.getRawNode(n);var i=n.getBoundingClientRect();return{width:Math.round(angular.isNumber(i.width)?i.width:n.offsetWidth),height:Math.round(angular.isNumber(i.height)?i.height:n.offsetHeight),top:Math.round(i.top+(t.pageYOffset||e[0].documentElement.scrollTop)),left:Math.round(i.left+(t.pageXOffset||e[0].documentElement.scrollLeft))}},viewportOffset:function(n,i,r){var a,o,s,l,u;return n=this.getRawNode(n),r=!1!==r,a=n.getBoundingClientRect(),o={top:0,left:0,bottom:0,right:0},s=i?e[0].documentElement:this.scrollParent(n),l=s.getBoundingClientRect(),o.top=l.top+s.clientTop,o.left=l.left+s.clientLeft,s===e[0].documentElement&&(o.top+=t.pageYOffset,o.left+=t.pageXOffset),o.bottom=o.top+s.clientHeight,o.right=o.left+s.clientWidth,r&&(u=t.getComputedStyle(s),o.top+=this.parseStyle(u.paddingTop),o.bottom-=this.parseStyle(u.paddingBottom),o.left+=this.parseStyle(u.paddingLeft),o.right-=this.parseStyle(u.paddingRight)),{top:Math.round(a.top-o.top),bottom:Math.round(o.bottom-a.bottom),left:Math.round(a.left-o.left),right:Math.round(o.right-a.right)}},parsePlacement:function(e){var t=a.auto.test(e);return t&&(e=e.replace(a.auto,"")),e=e.split("-"),e[0]=e[0]||"top",a.primary.test(e[0])||(e[0]="top"),e[1]=e[1]||"center",a.secondary.test(e[1])||(e[1]="center"),e[2]=!!t,e},positionElements:function(e,n,i,r){var o,s,l,u,c,d,p,f,h;switch(e=this.getRawNode(e),n=this.getRawNode(n),o=angular.isDefined(n.offsetWidth)?n.offsetWidth:n.prop("offsetWidth"),s=angular.isDefined(n.offsetHeight)?n.offsetHeight:n.prop("offsetHeight"),i=this.parsePlacement(i),l=r?this.offset(e):this.position(e),u={top:0,left:0,placement:""},i[2]&&(c=this.viewportOffset(e,r),d=t.getComputedStyle(n),p={width:o+Math.round(Math.abs(this.parseStyle(d.marginLeft)+this.parseStyle(d.marginRight))),height:s+Math.round(Math.abs(this.parseStyle(d.marginTop)+this.parseStyle(d.marginBottom)))},i[0]="top"===i[0]&&p.height>c.top&&p.height<=c.bottom?"bottom":"bottom"===i[0]&&p.height>c.bottom&&p.height<=c.top?"top":"left"===i[0]&&p.width>c.left&&p.width<=c.right?"right":"right"===i[0]&&p.width>c.right&&p.width<=c.left?"left":i[0],i[1]="top"===i[1]&&p.height-l.height>c.bottom&&p.height-l.height<=c.top?"bottom":"bottom"===i[1]&&p.height-l.height>c.top&&p.height-l.height<=c.bottom?"top":"left"===i[1]&&p.width-l.width>c.right&&p.width-l.width<=c.left?"right":"right"===i[1]&&p.width-l.width>c.left&&p.width-l.width<=c.right?"left":i[1],"center"===i[1]&&(a.vertical.test(i[0])?(f=l.width/2-o/2,c.left+f<0&&p.width-l.width<=c.right?i[1]="left":c.right+f<0&&p.width-l.width<=c.left&&(i[1]="right")):(h=l.height/2-p.height/2,c.top+h<0&&p.height-l.height<=c.bottom?i[1]="top":c.bottom+h<0&&p.height-l.height<=c.top&&(i[1]="bottom")))),i[0]){case"top":u.top=l.top-s;break;case"bottom":u.top=l.top+l.height;break;case"left":u.left=l.left-o;break;case"right":u.left=l.left+l.width}switch(i[1]){case"top":u.top=l.top;break;case"bottom":u.top=l.top+l.height-s;break;case"left":u.left=l.left;break;case"right":u.left=l.left+l.width-o;break;case"center":a.vertical.test(i[0])?u.left=l.left+l.width/2-o/2:u.top=l.top+l.height/2-s/2}return u.top=Math.round(u.top),u.left=Math.round(u.left),u.placement="center"===i[1]?i[0]:i[0]+"-"+i[1],u},positionArrow:function(e,n){var i,r,o,s,l,u,c,d;if(e=this.getRawNode(e),(i=e.querySelector(".tooltip-inner, .popover-inner"))&&(r=angular.element(i).hasClass("tooltip-inner"),o=r?e.querySelector(".tooltip-arrow"):e.querySelector(".arrow"))){if(s={top:"",bottom:"",left:"",right:""},n=this.parsePlacement(n),"center"===n[1])return void angular.element(o).css(s);switch(l="border-"+n[0]+"-width",u=t.getComputedStyle(o)[l],c="border-",a.vertical.test(n[0])?c+=n[0]+"-"+n[1]:c+=n[1]+"-"+n[0],c+="-radius",d=t.getComputedStyle(r?i:e)[c],n[0]){case"top":s.bottom=r?"0":"-"+u;break;case"bottom":s.top=r?"0":"-"+u;break;case"left":s.right=r?"0":"-"+u;break;case"right":s.left=r?"0":"-"+u}s[n[1]]=d,angular.element(o).css(s)}}}}]),angular.module("ui.bootstrap.datepickerPopup",["ui.bootstrap.datepicker","ui.bootstrap.position"]).value("$datepickerPopupLiteralWarning",!0).constant("uibDatepickerPopupConfig",{altInputFormats:[],appendToBody:!1,clearText:"Clear",closeOnDateSelection:!0,closeText:"Done",currentText:"Today",datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"uib/template/datepickerPopup/popup.html",datepickerTemplateUrl:"uib/template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},onOpenFocus:!0,showButtonBar:!0,placement:"auto bottom-left"}).controller("UibDatepickerPopupController",["$scope","$element","$attrs","$compile","$log","$parse","$window","$document","$rootScope","$uibPosition","dateFilter","uibDateParser","uibDatepickerPopupConfig","$timeout","uibDatepickerConfig","$datepickerPopupLiteralWarning",function(e,t,n,i,r,a,o,s,l,u,c,d,p,f,h,g){function m(t){var n,i=d.parse(t,x,e.date);if(isNaN(i))for(n=0;n<L.length;n++)if(i=d.parse(t,L[n],e.date),!isNaN(i))return i;return i}function b(e){if(angular.isNumber(e)&&(e=new Date(e)),!e)return null;if(angular.isDate(e)&&!isNaN(e))return e;if(angular.isString(e)){var t=m(e);if(!isNaN(t))return d.toTimezone(t,N)}return q.$options&&q.$options.allowInvalid?e:void 0}function y(e,t){var i=e||t;return!n.ngRequired&&!i||(angular.isNumber(i)&&(i=new Date(i)),!i||(!(!angular.isDate(i)||isNaN(i))||!!angular.isString(i)&&!isNaN(m(t))))}function v(n){var i,r,a;!e.isOpen&&e.disabled||(i=P[0],r=t[0].contains(n.target),a=void 0!==i.contains&&i.contains(n.target),!e.isOpen||r||a||e.$apply(function(){e.isOpen=!1}))}function $(n){27===n.which&&e.isOpen?(n.preventDefault(),n.stopPropagation(),e.$apply(function(){e.isOpen=!1}),t[0].focus()):40!==n.which||e.isOpen||(n.preventDefault(),n.stopPropagation(),e.$apply(function(){e.isOpen=!0}))}function w(){var i,r,a;e.isOpen&&(i=angular.element(P[0].querySelector(".uib-datepicker-popup")),r=n.popupPlacement?n.popupPlacement:p.placement,a=u.positionElements(t,i,r,D),i.css({top:a.top+"px",left:a.left+"px"}),i.hasClass("uib-position-measure")&&i.removeClass("uib-position-measure"))}var x,k,D,C,S,O,M,T,E,q,_,P,L,N,I=!1,A=[];this.init=function(r){if(q=r,_=r.$options,k=angular.isDefined(n.closeOnDateSelection)?e.$parent.$eval(n.closeOnDateSelection):p.closeOnDateSelection,D=angular.isDefined(n.datepickerAppendToBody)?e.$parent.$eval(n.datepickerAppendToBody):p.appendToBody,C=angular.isDefined(n.onOpenFocus)?e.$parent.$eval(n.onOpenFocus):p.onOpenFocus,S=angular.isDefined(n.datepickerPopupTemplateUrl)?n.datepickerPopupTemplateUrl:p.datepickerPopupTemplateUrl,O=angular.isDefined(n.datepickerTemplateUrl)?n.datepickerTemplateUrl:p.datepickerTemplateUrl,L=angular.isDefined(n.altInputFormats)?e.$parent.$eval(n.altInputFormats):p.altInputFormats,e.showButtonBar=angular.isDefined(n.showButtonBar)?e.$parent.$eval(n.showButtonBar):p.showButtonBar,p.html5Types[n.type]?(x=p.html5Types[n.type],I=!0):(x=n.uibDatepickerPopup||p.datepickerPopup,n.$observe("uibDatepickerPopup",function(e,t){var n=e||p.datepickerPopup;if(n!==x&&(x=n,q.$modelValue=null,!x))throw new Error("uibDatepickerPopup must have a date format specified.")})),!x)throw new Error("uibDatepickerPopup must have a date format specified.");if(I&&n.uibDatepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");M=angular.element("<div uib-datepicker-popup-wrap><div uib-datepicker></div></div>"),_?(N=_.timezone,e.ngModelOptions=angular.copy(_),e.ngModelOptions.timezone=null,!0===e.ngModelOptions.updateOnDefault&&(e.ngModelOptions.updateOn=e.ngModelOptions.updateOn?e.ngModelOptions.updateOn+" default":"default"),M.attr("ng-model-options","ngModelOptions")):N=null,M.attr({"ng-model":"date","ng-change":"dateSelection(date)","template-url":S}),T=angular.element(M.children()[0]),T.attr("template-url",O),e.datepickerOptions||(e.datepickerOptions={}),I&&"month"===n.type&&(e.datepickerOptions.datepickerMode="month",e.datepickerOptions.minMode="month"),T.attr("datepicker-options","datepickerOptions"),I?q.$formatters.push(function(t){return e.date=d.fromTimezone(t,N),t}):(q.$$parserName="date",q.$validators.date=y,q.$parsers.unshift(b),q.$formatters.push(function(t){return q.$isEmpty(t)?(e.date=t,t):(e.date=d.fromTimezone(t,N),angular.isNumber(e.date)&&(e.date=new Date(e.date)),d.filter(e.date,x))})),q.$viewChangeListeners.push(function(){e.date=m(q.$viewValue)}),t.on("keydown",$),P=i(M)(e),M.remove(),D?s.find("body").append(P):t.after(P),e.$on("$destroy",function(){for(!0===e.isOpen&&(l.$$phase||e.$apply(function(){e.isOpen=!1})),P.remove(),t.off("keydown",$),s.off("click",v),E&&E.off("scroll",w),angular.element(o).off("resize",w);A.length;)A.shift()()})},e.getText=function(t){return e[t+"Text"]||p[t+"Text"]},e.isDisabled=function(t){"today"===t&&(t=d.fromTimezone(new Date,N));var n={};return angular.forEach(["minDate","maxDate"],function(t){e.datepickerOptions[t]?angular.isDate(e.datepickerOptions[t])?n[t]=d.fromTimezone(new Date(e.datepickerOptions[t]),N):(g&&r.warn("Literal date support has been deprecated, please switch to date object usage"),n[t]=new Date(c(e.datepickerOptions[t],"medium"))):n[t]=null}),e.datepickerOptions&&n.minDate&&e.compare(t,n.minDate)<0||n.maxDate&&e.compare(t,n.maxDate)>0},e.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},e.dateSelection=function(n){angular.isDefined(n)&&(e.date=n);var i=e.date?d.filter(e.date,x):null;t.val(i),q.$setViewValue(i),k&&(e.isOpen=!1,t[0].focus())},e.keydown=function(n){27===n.which&&(n.stopPropagation(),e.isOpen=!1,t[0].focus())},e.select=function(t,n){if(n.stopPropagation(),"today"===t){var i=new Date;angular.isDate(e.date)?(t=new Date(e.date),t.setFullYear(i.getFullYear(),i.getMonth(),i.getDate())):t=new Date(i.setHours(0,0,0,0))}e.dateSelection(t)},e.close=function(n){n.stopPropagation(),e.isOpen=!1,t[0].focus()},e.disabled=angular.isDefined(n.disabled)||!1,n.ngDisabled&&A.push(e.$parent.$watch(a(n.ngDisabled),function(t){e.disabled=t})),e.$watch("isOpen",function(i){i?e.disabled?e.isOpen=!1:f(function(){w(),C&&e.$broadcast("uib:datepicker.focus"),s.on("click",v);var i=n.popupPlacement?n.popupPlacement:p.placement;D||u.parsePlacement(i)[2]?(E=E||angular.element(u.scrollParent(t)))&&E.on("scroll",w):E=null,angular.element(o).on("resize",w)},0,!1):(s.off("click",v),E&&E.off("scroll",w),angular.element(o).off("resize",w))}),e.$on("uib:datepicker.mode",function(){f(w,0,!1)})}]).directive("uibDatepickerPopup",function(){return{require:["ngModel","uibDatepickerPopup"],controller:"UibDatepickerPopupController",scope:{datepickerOptions:"=?",isOpen:"=?",currentText:"@",clearText:"@",closeText:"@"},link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibDatepickerPopupWrap",function(){return{replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepickerPopup/popup.html"}}}),angular.module("ui.bootstrap.debounce",[]).factory("$$debounce",["$timeout",function(e){return function(t,n){var i;return function(){var r=this,a=Array.prototype.slice.call(arguments);i&&e.cancel(i),i=e(function(){t.apply(r,a)},n)}}}]),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(e,t){var n,i,r=null;this.open=function(t,a){r||(e.on("click",n),a.on("keydown",i)),r&&r!==t&&(r.isOpen=!1),r=t},this.close=function(t,a){r===t&&(r=null,e.off("click",n),a.off("keydown",i))},n=function(e){var n,i;r&&(e&&"disabled"===r.getAutoClose()||e&&3===e.which||(n=r.getToggleElement(),e&&n&&n[0].contains(e.target)||(i=r.getDropdownElement(),e&&"outsideClick"===r.getAutoClose()&&i&&i[0].contains(e.target)||(r.isOpen=!1,t.$$phase||r.$apply()))))},i=function(e){27===e.which?(e.stopPropagation(),r.focusToggleElement(),n()):r.isKeynavEnabled()&&-1!==[38,40].indexOf(e.which)&&r.isOpen&&(e.preventDefault(),e.stopPropagation(),r.focusDropdownEntry(e.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(e,t,n,i,r,a,o,s,l,u,c){var d,p,f=this,h=e.$new(),g=r.appendToOpenClass,m=r.openClass,b=angular.noop,y=n.onToggle?i(n.onToggle):angular.noop,v=!1,$=null,w=!1,x=l.find("body");t.addClass("dropdown"),this.init=function(){if(n.isOpen&&(p=i(n.isOpen),b=p.assign,
e.$watch(p,function(e){h.isOpen=!!e})),angular.isDefined(n.dropdownAppendTo)){var r=i(n.dropdownAppendTo)(h);r&&($=angular.element(r))}v=angular.isDefined(n.dropdownAppendToBody),w=angular.isDefined(n.keyboardNav),v&&!$&&($=x),$&&f.dropdownMenu&&($.append(f.dropdownMenu),t.on("$destroy",function(){f.dropdownMenu.remove()}))},this.toggle=function(e){return h.isOpen=arguments.length?!!e:!h.isOpen,angular.isFunction(b)&&b(h,h.isOpen),h.isOpen},this.isOpen=function(){return h.isOpen},h.getToggleElement=function(){return f.toggleElement},h.getAutoClose=function(){return n.autoClose||"always"},h.getElement=function(){return t},h.isKeynavEnabled=function(){return w},h.focusDropdownEntry=function(e){var n=f.dropdownMenu?angular.element(f.dropdownMenu).find("a"):t.find("ul").eq(0).find("a");switch(e){case 40:angular.isNumber(f.selectedOption)?f.selectedOption=f.selectedOption===n.length-1?f.selectedOption:f.selectedOption+1:f.selectedOption=0;break;case 38:angular.isNumber(f.selectedOption)?f.selectedOption=0===f.selectedOption?0:f.selectedOption-1:f.selectedOption=n.length-1}n[f.selectedOption].focus()},h.getDropdownElement=function(){return f.dropdownMenu},h.focusToggleElement=function(){f.toggleElement&&f.toggleElement[0].focus()},h.$watch("isOpen",function(n,i){var r,l,p,w,x,k,D;$&&f.dropdownMenu&&(r=s.positionElements(t,f.dropdownMenu,"bottom-left",!0),l={top:r.top+"px",display:n?"block":"none"},p=f.dropdownMenu.hasClass("dropdown-menu-right"),p?(l.left="auto",l.right=window.innerWidth-(r.left+t.prop("offsetWidth"))+"px"):(l.left=r.left+"px",l.right="auto"),v||(w=s.offset($),l.top=r.top-w.top+"px",p?l.right=window.innerWidth-(r.left-w.left+t.prop("offsetWidth"))+"px":l.left=r.left-w.left+"px"),f.dropdownMenu.css(l)),x=$||t,k=x.hasClass($?g:m),k===!n&&o[n?"addClass":"removeClass"](x,$?g:m).then(function(){angular.isDefined(n)&&n!==i&&y(e,{open:!!n})}),n?(f.dropdownMenuTemplateUrl&&c(f.dropdownMenuTemplateUrl).then(function(e){d=h.$new(),u(e.trim())(d,function(e){var t=e;f.dropdownMenu.replaceWith(t),f.dropdownMenu=t})}),h.focusToggleElement(),a.open(h,t)):(f.dropdownMenuTemplateUrl&&(d&&d.$destroy(),D=angular.element('<ul class="dropdown-menu"></ul>'),f.dropdownMenu.replaceWith(D),f.dropdownMenu=D),a.close(h,t),f.selectedOption=null),angular.isFunction(b)&&b(e,n)})}]).directive("uibDropdown",function(){return{controller:"UibDropdownController",link:function(e,t,n,i){i.init()}}}).directive("uibDropdownMenu",function(){return{restrict:"A",require:"?^uibDropdown",link:function(e,t,n,i){if(i&&!angular.isDefined(n.dropdownNested)){t.addClass("dropdown-menu");var r=n.templateUrl;r&&(i.dropdownMenuTemplateUrl=r),i.dropdownMenu||(i.dropdownMenu=t)}}}}).directive("uibDropdownToggle",function(){return{require:"?^uibDropdown",link:function(e,t,n,i){if(i){t.addClass("dropdown-toggle"),i.toggleElement=t;var r=function(r){r.preventDefault(),t.hasClass("disabled")||n.disabled||e.$apply(function(){i.toggle()})};t.bind("click",r),t.attr({"aria-haspopup":!0,"aria-expanded":!1}),e.$watch(i.isOpen,function(e){t.attr("aria-expanded",!!e)}),e.$on("$destroy",function(){t.unbind("click",r)})}}}}),angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n<e.length;n++)if(t===e[n].key)return e[n]},keys:function(){var t,n=[];for(t=0;t<e.length;t++)n.push(e[t].key);return n},top:function(){return e[e.length-1]},remove:function(t){var n,i=-1;for(n=0;n<e.length;n++)if(t===e[n].key){i=n;break}return e.splice(i,1)[0]},removeTop:function(){return e.splice(e.length-1,1)[0]},length:function(){return e.length}}}}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.stackedMap","ui.bootstrap.position"]).factory("$$multiMap",function(){return{createNew:function(){var e={};return{entries:function(){return Object.keys(e).map(function(t){return{key:t,value:e[t]}})},get:function(t){return e[t]},hasKey:function(t){return!!e[t]},keys:function(){return Object.keys(e)},put:function(t,n){e[t]||(e[t]=[]),e[t].push(n)},remove:function(t,n){var i,r=e[t];r&&(i=r.indexOf(n),-1!==i&&r.splice(i,1),r.length||delete e[t])}}}}}).provider("$uibResolve",function(){var e=this;this.resolver=null,this.setResolver=function(e){this.resolver=e},this.$get=["$injector","$q",function(t,n){var i=e.resolver?t.get(e.resolver):null;return{resolve:function(e,r,a,o){if(i)return i.resolve(e,r,a,o);var s=[];return angular.forEach(e,function(e){angular.isFunction(e)||angular.isArray(e)?s.push(n.resolve(t.invoke(e))):angular.isString(e)?s.push(n.resolve(t.get(e))):s.push(n.resolve(e))}),n.all(s).then(function(t){var n={},i=0;return angular.forEach(e,function(e,r){n[r]=t[i++]}),n})}}}]}).directive("uibModalBackdrop",["$animate","$injector","$uibModalStack",function(e,t,n){function i(t,i,r){r.modalInClass&&(e.addClass(i,r.modalInClass),t.$on(n.NOW_CLOSING_EVENT,function(n,a){var o=a();t.modalOptions.animation?e.removeClass(i,r.modalInClass).then(o):o()}))}return{replace:!0,templateUrl:"uib/template/modal/backdrop.html",compile:function(e,t){return e.addClass(t.backdropClass),i}}}]).directive("uibModalWindow",["$uibModalStack","$q","$animateCss","$document",function(e,t,n,i){return{scope:{index:"@"},replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/modal/window.html"},link:function(r,a,o){a.addClass(o.windowClass||""),a.addClass(o.windowTopClass||""),r.size=o.size,r.close=function(t){var n=e.getTop();n&&n.value.backdrop&&"static"!==n.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click"))},a.on("click",r.close),r.$isRendered=!0;var s=t.defer();o.$observe("modalRender",function(e){"true"===e&&s.resolve()}),s.promise.then(function(){var s=null;o.modalInClass&&(s=n(a,{addClass:o.modalInClass}).start(),r.$on(e.NOW_CLOSING_EVENT,function(e,t){var i=t();n(a,{removeClass:o.modalInClass}).start().then(i)})),t.when(s).then(function(){var t,n=e.getTop();n&&e.modalRendered(n.key),i[0].activeElement&&a[0].contains(i[0].activeElement)||(t=a[0].querySelector("[autofocus]"),t?t.focus():a[0].focus())})})}}}]).directive("uibModalAnimationClass",function(){return{compile:function(e,t){t.modalAnimation&&e.addClass(t.uibModalAnimationClass)}}}).directive("uibModalTransclude",function(){return{link:function(e,t,n,i,r){r(e.$parent,function(e){t.empty(),t.append(e)})}}}).factory("$uibModalStack",["$animate","$animateCss","$document","$compile","$rootScope","$q","$$multiMap","$$stackedMap","$uibPosition",function(e,t,n,i,r,a,o,s,l){function u(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}function c(){var e,t=-1,n=w.keys();for(e=0;e<n.length;e++)w.get(n[e]).value.backdrop&&(t=e);return t>-1&&t<D&&(t=D),t}function d(e,t){var n=w.get(e).value,i=n.appendTo;w.remove(e),C=w.top(),C&&(D=parseInt(C.value.modalDomEl.attr("index"),10)),h(n.modalDomEl,n.modalScope,function(){var t,r=n.openedClass||$;x.remove(r,e),t=x.hasKey(r),i.toggleClass(r,t),!t&&v&&v.heightOverflow&&v.scrollbarWidth&&(v.originalRight?i.css({paddingRight:v.originalRight+"px"}):i.css({paddingRight:""}),v=null),p(!0)},n.closedDeferred),f(),t&&t.focus?t.focus():i.focus&&i.focus()}function p(e){var t;w.length()>0&&(t=w.top().value,t.modalDomEl.toggleClass(t.windowTopClass||"",e))}function f(){if(b&&-1===c()){var e=y;h(b,y,function(){e=null}),b=void 0,y=void 0}}function h(t,n,i,r){function o(){o.done||(o.done=!0,e.leave(t).then(function(){t.remove(),r&&r.resolve()}),n.$destroy(),i&&i())}var s,l=null,u=function(){return s||(s=a.defer(),l=s.promise),function(){s.resolve()}};return n.$broadcast(k.NOW_CLOSING_EVENT,u),a.when(l).then(o)}function g(e){var t,n,i;if(e.isDefaultPrevented())return e;if(t=w.top())switch(e.which){case 27:t.value.keyboard&&(e.preventDefault(),r.$apply(function(){k.dismiss(t.key,"escape key press")}));break;case 9:n=k.loadFocusElementList(t),i=!1,e.shiftKey?(k.isFocusInFirstItem(e,n)||k.isModalFocused(e,t))&&(i=k.focusLastFocusableElement(n)):k.isFocusInLastItem(e,n)&&(i=k.focusFirstFocusableElement(n)),i&&(e.preventDefault(),e.stopPropagation())}}function m(e,t,n){return!e.value.modalScope.$broadcast("modal.closing",t,n).defaultPrevented}var b,y,v,$="modal-open",w=s.createNew(),x=o.createNew(),k={NOW_CLOSING_EVENT:"modal.stack.now-closing"},D=0,C=null;return r.$watch(c,function(e){y&&(y.index=e)}),n.on("keydown",g),r.$on("$destroy",function(){n.off("keydown",g)}),k.open=function(t,a){var o,s,u,d=n[0].activeElement,f=a.openedClass||$;if(p(!1),C=w.top(),w.add(t,{deferred:a.deferred,renderDeferred:a.renderDeferred,closedDeferred:a.closedDeferred,modalScope:a.scope,backdrop:a.backdrop,keyboard:a.keyboard,openedClass:a.openedClass,windowTopClass:a.windowTopClass,animation:a.animation,appendTo:a.appendTo}),x.put(f,t),o=a.appendTo,s=c(),!o.length)throw new Error("appendTo element not found. Make sure that the element passed is in DOM.");s>=0&&!b&&(y=r.$new(!0),y.modalOptions=a,y.index=s,b=angular.element('<div uib-modal-backdrop="modal-backdrop"></div>'),b.attr("backdrop-class",a.backdropClass),a.animation&&b.attr("modal-animation","true"),i(b)(y),e.enter(b,o),v=l.scrollbarPadding(o),v.heightOverflow&&v.scrollbarWidth&&o.css({paddingRight:v.right+"px"})),D=C?parseInt(C.value.modalDomEl.attr("index"),10)+1:0,u=angular.element('<div uib-modal-window="modal-window"></div>'),u.attr({"template-url":a.windowTemplateUrl,"window-class":a.windowClass,"window-top-class":a.windowTopClass,size:a.size,index:D,animate:"animate"}).html(a.content),a.animation&&u.attr("modal-animation","true"),o.addClass(f),e.enter(i(u)(a.scope),o),w.top().value.modalDomEl=u,w.top().value.modalOpener=d},k.close=function(e,t){var n=w.get(e);return n&&m(n,t,!0)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.resolve(t),d(e,n.value.modalOpener),!0):!n},k.dismiss=function(e,t){var n=w.get(e);return n&&m(n,t,!1)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.reject(t),d(e,n.value.modalOpener),!0):!n},k.dismissAll=function(e){for(var t=this.getTop();t&&this.dismiss(t.key,e);)t=this.getTop()},k.getTop=function(){return w.top()},k.modalRendered=function(e){var t=w.get(e);t&&t.value.renderDeferred.resolve()},k.focusFirstFocusableElement=function(e){return e.length>0&&(e[0].focus(),!0)},k.focusLastFocusableElement=function(e){return e.length>0&&(e[e.length-1].focus(),!0)},k.isModalFocused=function(e,t){if(e&&t){var n=t.value.modalDomEl;if(n&&n.length)return(e.target||e.srcElement)===n[0]}return!1},k.isFocusInFirstItem=function(e,t){return t.length>0&&(e.target||e.srcElement)===t[0]},k.isFocusInLastItem=function(e,t){return t.length>0&&(e.target||e.srcElement)===t[t.length-1]},k.loadFocusElementList=function(e){var t,n;if(e&&(t=e.value.modalDomEl)&&t.length)return n=t[0].querySelectorAll("a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]"),n?Array.prototype.filter.call(n,function(e){return u(e)}):n},k}]).provider("$uibModal",function(){var e={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$rootScope","$q","$document","$templateRequest","$controller","$uibResolve","$uibModalStack",function(t,n,i,r,a,o,s){function l(e){return e.template?n.when(e.template):r(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl)}var u={},c=null;return u.getPromiseChain=function(){return c},u.open=function(r){function u(){return d}var d,p,f=n.defer(),h=n.defer(),g=n.defer(),m=n.defer(),b={result:f.promise,opened:h.promise,closed:g.promise,rendered:m.promise,close:function(e){return s.close(b,e)},dismiss:function(e){return s.dismiss(b,e)}};if(r=angular.extend({},e.options,r),r.resolve=r.resolve||{},r.appendTo=r.appendTo||i.find("body").eq(0),!r.template&&!r.templateUrl)throw new Error("One of template or templateUrl options is required.");return d=n.all([l(r),o.resolve(r.resolve,{},null,null)]),p=c=n.all([c]).then(u,u).then(function(e){var n,i,o,l=r.scope||t,u=l.$new();u.$close=b.close,u.$dismiss=b.dismiss,u.$on("$destroy",function(){u.$$uibDestructionScheduled||u.$dismiss("$uibUnscheduledDestruction")}),o={},r.controller&&(o.$scope=u,o.$uibModalInstance=b,angular.forEach(e[1],function(e,t){o[t]=e}),i=a(r.controller,o,!0),r.controllerAs?(n=i.instance,r.bindToController&&(n.$close=u.$close,n.$dismiss=u.$dismiss,angular.extend(n,l)),n=i(),u[r.controllerAs]=n):n=i(),angular.isFunction(n.$onInit)&&n.$onInit()),s.open(b,{scope:u,deferred:f,renderDeferred:m,closedDeferred:g,content:e[0],animation:r.animation,backdrop:r.backdrop,keyboard:r.keyboard,backdropClass:r.backdropClass,windowTopClass:r.windowTopClass,windowClass:r.windowClass,windowTemplateUrl:r.windowTemplateUrl,size:r.size,openedClass:r.openedClass,appendTo:r.appendTo}),h.resolve(!0)},function(e){h.reject(e),f.reject(e)}).finally(function(){c===p&&(c=null)}),b},u}]};return e}),angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(e){return{create:function(t,n,i){t.setNumPages=i.numPages?e(i.numPages).assign:angular.noop,t.ngModelCtrl={$setViewValue:angular.noop},t._watchers=[],t.init=function(e,r){t.ngModelCtrl=e,t.config=r,e.$render=function(){t.render()},i.itemsPerPage?t._watchers.push(n.$parent.$watch(i.itemsPerPage,function(e){t.itemsPerPage=parseInt(e,10),n.totalPages=t.calculateTotalPages(),t.updatePage()})):t.itemsPerPage=r.itemsPerPage,n.$watch("totalItems",function(e,i){(angular.isDefined(e)||e!==i)&&(n.totalPages=t.calculateTotalPages(),t.updatePage())})},t.calculateTotalPages=function(){var e=t.itemsPerPage<1?1:Math.ceil(n.totalItems/t.itemsPerPage);return Math.max(e||0,1)},t.render=function(){n.page=parseInt(t.ngModelCtrl.$viewValue,10)||1},n.selectPage=function(e,i){i&&i.preventDefault(),(!n.ngDisabled||!i)&&n.page!==e&&e>0&&e<=n.totalPages&&(i&&i.target&&i.target.blur(),t.ngModelCtrl.$setViewValue(e),t.ngModelCtrl.$render())},n.getText=function(e){return n[e+"Text"]||t.config[e+"Text"]},n.noPrevious=function(){return 1===n.page},n.noNext=function(){return n.page===n.totalPages},t.updatePage=function(){t.setNumPages(n.$parent,n.totalPages),n.page>n.totalPages?n.selectPage(n.totalPages):t.ngModelCtrl.$render()},n.$on("$destroy",function(){for(;t._watchers.length;)t._watchers.shift()()})}}}]),angular.module("ui.bootstrap.pager",["ui.bootstrap.paging"]).controller("UibPagerController",["$scope","$attrs","uibPaging","uibPagerConfig",function(e,t,n,i){e.align=angular.isDefined(t.align)?e.$parent.$eval(t.align):i.align,n.create(this,e,t)}]).constant("uibPagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("uibPager",["uibPagerConfig",function(e){return{scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["uibPager","?ngModel"],controller:"UibPagerController",controllerAs:"pager",templateUrl:function(e,t){return t.templateUrl||"uib/template/pager/pager.html"},replace:!0,link:function(t,n,i,r){var a=r[0],o=r[1];o&&a.init(o,e)}}}]),angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(e,t,n,i,r){function a(e,t,n){return{number:e,text:t,active:n}}function o(e,t){var n,i,r,o,s,l,h,g,m=[],b=1,y=t,v=angular.isDefined(u)&&u<t;for(v&&(c?(b=Math.max(e-Math.floor(u/2),1),(y=b+u-1)>t&&(y=t,b=y-u+1)):(b=(Math.ceil(e/u)-1)*u+1,y=Math.min(b+u-1,t))),n=b;n<=y;n++)i=a(n,f(n),n===e),m.push(i);return v&&u>0&&(!c||d||p)&&(b>1&&((!p||b>3)&&(r=a(b-1,"...",!1),m.unshift(r)),p&&(3===b&&(o=a(2,"2",!1),m.unshift(o)),s=a(1,"1",!1),m.unshift(s))),y<t&&((!p||y<t-2)&&(l=a(y+1,"...",!1),m.push(l)),p&&(y===t-2&&(h=a(t-1,t-1,!1),m.push(h)),g=a(t,t,!1),m.push(g)))),m}var s,l=this,u=angular.isDefined(t.maxSize)?e.$parent.$eval(t.maxSize):r.maxSize,c=angular.isDefined(t.rotate)?e.$parent.$eval(t.rotate):r.rotate,d=angular.isDefined(t.forceEllipses)?e.$parent.$eval(t.forceEllipses):r.forceEllipses,p=angular.isDefined(t.boundaryLinkNumbers)?e.$parent.$eval(t.boundaryLinkNumbers):r.boundaryLinkNumbers,f=angular.isDefined(t.pageLabel)?function(n){return e.$parent.$eval(t.pageLabel,{$page:n})}:angular.identity;e.boundaryLinks=angular.isDefined(t.boundaryLinks)?e.$parent.$eval(t.boundaryLinks):r.boundaryLinks,e.directionLinks=angular.isDefined(t.directionLinks)?e.$parent.$eval(t.directionLinks):r.directionLinks,i.create(this,e,t),t.maxSize&&l._watchers.push(e.$parent.$watch(n(t.maxSize),function(e){u=parseInt(e,10),l.render()})),s=this.render,this.render=function(){s(),e.page>0&&e.page<=e.totalPages&&(e.pages=o(e.page,e.totalPages))}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,boundaryLinkNumbers:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0,forceEllipses:!1}).directive("uibPagination",["$parse","uibPaginationConfig",function(e,t){return{scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(e,t){return t.templateUrl||"uib/template/pagination/pagination.html"},replace:!0,link:function(e,n,i,r){var a=r[0],o=r[1];o&&a.init(o,t)}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.stackedMap"]).provider("$uibTooltip",function(){function e(e){var t=/[A-Z]/g;return e.replace(t,function(e,t){return(t?"-":"")+e.toLowerCase()})}var t={placement:"top",placementClassPrefix:"",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},n={mouseenter:"mouseleave",click:"click",outsideClick:"outsideClick",focus:"blur",none:""},i={};this.options=function(e){angular.extend(i,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(r,a,o,s,l,u,c,d,p){function f(e){if(27===e.which){var t=h.top();t&&(t.value.close(),h.removeTop(),t=null)}}var h=p.createNew();return s.on("keypress",f),c.$on("$destroy",function(){s.off("keypress",f)}),function(r,c,p,f){function g(e){var t=(e||f.trigger||p).split(" ");return{show:t,hide:t.map(function(e){return n[e]||e})}}var m,b,y,v;return f=angular.extend({},t,i,f),m=e(r),b=u.startSymbol(),y=u.endSymbol(),v="<div "+m+'-popup uib-title="'+b+"title"+y+'" '+(f.useContentExp?'content-exp="contentExp()" ':'content="'+b+"content"+y+'" ')+'placement="'+b+"placement"+y+'" popup-class="'+b+"popupClass"+y+'" animation="animation" is-open="isOpen" origin-scope="origScope" class="uib-position-measure"></div>',{compile:function(e,t){var n=a(v);return function(e,t,i,a){function u(){K.isOpen?m():p()}function p(){U&&!e.$eval(i[c+"Enable"])||($(),k(),K.popupDelay?q||(q=o(b,K.popupDelay,!1)):b())}function m(){y(),K.popupCloseDelay?_||(_=o(v,K.popupCloseDelay,!1)):v()}function b(){if(y(),$(),!K.content)return angular.noop;w(),K.$evalAsync(function(){K.isOpen=!0,D(!0),Q()})}function y(){q&&(o.cancel(q),q=null),P&&(o.cancel(P),P=null)}function v(){K&&K.$evalAsync(function(){K&&(K.isOpen=!1,D(!1),K.animation?E||(E=o(x,150,!1)):x())})}function $(){_&&(o.cancel(_),_=null),E&&(o.cancel(E),E=null)}function w(){M||(T=K.$new(),M=n(T,function(e){F?s.find("body").append(e):t.after(e)}),C())}function x(){y(),$(),S(),M&&(M.remove(),M=null),T&&(T.$destroy(),T=null)}function k(){var t,n,a;K.title=i[c+"Title"],K.content=B?B(e):i[r],K.popupClass=i[c+"Class"],K.placement=angular.isDefined(i[c+"Placement"])?i[c+"Placement"]:f.placement,t=l.parsePlacement(K.placement),L=t[1]?t[0]+"-"+t[1]:t[0],n=parseInt(i[c+"PopupDelay"],10),a=parseInt(i[c+"PopupCloseDelay"],10),K.popupDelay=isNaN(n)?f.popupDelay:n,K.popupCloseDelay=isNaN(a)?f.popupCloseDelay:a}function D(t){H&&angular.isFunction(H.assign)&&H.assign(e,t)}function C(){z.length=0,B?(z.push(e.$watch(B,function(e){K.content=e,!e&&K.isOpen&&v()})),z.push(T.$watch(function(){V||(V=!0,T.$$postDigest(function(){V=!1,K&&K.isOpen&&Q()}))}))):z.push(i.$observe(r,function(e){K.content=e,!e&&K.isOpen?v():Q()})),z.push(i.$observe(c+"Title",function(e){K.title=e,K.isOpen&&Q()})),z.push(i.$observe(c+"Placement",function(e){K.placement=e||f.placement,K.isOpen&&Q()}))}function S(){z.length&&(angular.forEach(z,function(e){e()}),z.length=0)}function O(e){K&&K.isOpen&&M&&(t[0].contains(e.target)||M[0].contains(e.target)||m())}var M,T,E,q,_,P,L,N,I,A,R,F=!!angular.isDefined(f.appendToBody)&&f.appendToBody,j=g(void 0),U=angular.isDefined(i[c+"Enable"]),K=e.$new(!0),V=!1,H=!!angular.isDefined(i[c+"IsOpen"])&&d(i[c+"IsOpen"]),B=!!f.useContentExp&&d(i[r]),z=[],Q=function(){M&&M.html()&&(P||(P=o(function(){var e=l.positionElements(t,M,K.placement,F);M.css({top:e.top+"px",left:e.left+"px"}),M.hasClass(e.placement.split("-")[0])||(M.removeClass(L.split("-")[0]),M.addClass(e.placement.split("-")[0])),M.hasClass(f.placementClassPrefix+e.placement)||(M.removeClass(f.placementClassPrefix+L),M.addClass(f.placementClassPrefix+e.placement)),M.hasClass("uib-position-measure")?(l.positionArrow(M,e.placement),M.removeClass("uib-position-measure")):L!==e.placement&&l.positionArrow(M,e.placement),L=e.placement,P=null},0,!1)))};K.origScope=e,K.isOpen=!1,h.add(K,{close:v}),K.contentExp=function(){return K.content},i.$observe("disabled",function(e){e&&y(),e&&K.isOpen&&v()}),H&&e.$watch(H,function(e){K&&!e===K.isOpen&&u()}),N=function(){j.show.forEach(function(e){"outsideClick"===e?t.off("click",u):(t.off(e,p),t.off(e,u))}),j.hide.forEach(function(e){"outsideClick"===e?s.off("click",O):t.off(e,m)})},function(){var e=i[c+"Trigger"];N(),j=g(e),"none"!==j.show&&j.show.forEach(function(e,n){"outsideClick"===e?(t.on("click",u),s.on("click",O)):e===j.hide[n]?t.on(e,u):e&&(t.on(e,p),t.on(j.hide[n],m)),t.on("keypress",function(e){27===e.which&&m()})})}(),I=e.$eval(i[c+"Animation"]),K.animation=angular.isDefined(I)?!!I:f.animation,R=c+"AppendToBody",A=R in i&&void 0===i[R]||e.$eval(i[R]),F=angular.isDefined(A)?A:F,e.$on("$destroy",function(){N(),x(),h.remove(K),K=null})}}}}}]}).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(e,t,n,i){return{link:function(r,a,o){var s,l,u,c=r.$eval(o.tooltipTemplateTranscludeScope),d=0,p=function(){l&&(l.remove(),l=null),s&&(s.$destroy(),s=null),u&&(e.leave(u).then(function(){l=null}),l=u,u=null)};r.$watch(t.parseAsResourceUrl(o.uibTooltipTemplateTransclude),function(t){var o=++d;t?(i(t,!0).then(function(i){var r,l,f;o===d&&(r=c.$new(),l=i,f=n(l)(r,function(t){p(),e.enter(t,a)}),s=r,u=f,s.$emit("$includeContentLoaded",t))},function(){o===d&&(p(),r.$emit("$includeContentError",t))}),r.$emit("$includeContentRequested",t)):p()}),r.$on("$destroy",p)}}}]).directive("uibTooltipClasses",["$uibPosition",function(e){return{restrict:"A",link:function(t,n,i){if(t.placement){var r=e.parsePlacement(t.placement);n.addClass(r[0])}t.popupClass&&n.addClass(t.popupClass),t.animation()&&n.addClass(i.tooltipAnimationClass)}}}]).directive("uibTooltipPopup",function(){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-popup.html"}}).directive("uibTooltip",["$uibTooltip",function(e){return e("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/tooltip/tooltip-template-popup.html"}}).directive("uibTooltipTemplate",["$uibTooltip",function(e){return e("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-html-popup.html"}}).directive("uibTooltipHtml",["$uibTooltip",function(e){return e("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup",function(){return{replace:!0,scope:{uibTitle:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/popover/popover-template.html"}}).directive("uibPopoverTemplate",["$uibTooltip",function(e){return e("uibPopoverTemplate","popover","click",{useContentExp:!0})}]).directive("uibPopoverHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",uibTitle:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover-html.html"}}).directive("uibPopoverHtml",["$uibTooltip",function(e){return e("uibPopoverHtml","popover","click",{useContentExp:!0})}]).directive("uibPopoverPopup",function(){return{replace:!0,scope:{uibTitle:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover.html"}}).directive("uibPopover",["$uibTooltip",function(e){return e("uibPopover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("uibProgressConfig",{animate:!0,max:100}).controller("UibProgressController",["$scope","$attrs","uibProgressConfig",function(e,t,n){function i(){return angular.isDefined(e.maxParam)?e.maxParam:n.max}var r=this,a=angular.isDefined(t.animate)?e.$parent.$eval(t.animate):n.animate;this.bars=[],e.max=i(),this.addBar=function(e,t,n){a||t.css({transition:"none"}),this.bars.push(e),e.max=i(),e.title=n&&angular.isDefined(n.title)?n.title:"progressbar",e.$watch("value",function(t){e.recalculatePercentage()}),e.recalculatePercentage=function(){var t=r.bars.reduce(function(e,t){return t.percent=+(100*t.value/t.max).toFixed(2),e+t.percent},0);t>100&&(e.percent-=t-100)},e.$on("$destroy",function(){t=null,r.removeBar(e)})},this.removeBar=function(e){this.bars.splice(this.bars.indexOf(e),1),this.bars.forEach(function(e){e.recalculatePercentage()})},e.$watch("maxParam",function(e){r.bars.forEach(function(e){e.max=i(),e.recalculatePercentage()})})}]).directive("uibProgress",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",require:"uibProgress",scope:{maxParam:"=?max"},templateUrl:"uib/template/progressbar/progress.html"}}).directive("uibBar",function(){return{replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"uib/template/progressbar/bar.html",link:function(e,t,n,i){i.addBar(e,t,n)}}}).directive("uibProgressbar",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",scope:{value:"=",maxParam:"=?max",type:"@"},templateUrl:"uib/template/progressbar/progressbar.html",link:function(e,t,n,i){i.addBar(e,angular.element(t.children()[0]),{title:n.title})}}}),angular.module("ui.bootstrap.rating",[]).constant("uibRatingConfig",{max:5,stateOn:null,stateOff:null,enableReset:!0,titles:["one","two","three","four","five"]}).controller("UibRatingController",["$scope","$attrs","uibRatingConfig",function(e,t,n){var i={$setViewValue:angular.noop},r=this;this.init=function(r){var a,o;i=r,i.$render=this.render,i.$formatters.push(function(e){return angular.isNumber(e)&&e<<0!==e&&(e=Math.round(e)),e}),this.stateOn=angular.isDefined(t.stateOn)?e.$parent.$eval(t.stateOn):n.stateOn,this.stateOff=angular.isDefined(t.stateOff)?e.$parent.$eval(t.stateOff):n.stateOff,this.enableReset=angular.isDefined(t.enableReset)?e.$parent.$eval(t.enableReset):n.enableReset,a=angular.isDefined(t.titles)?e.$parent.$eval(t.titles):n.titles,this.titles=angular.isArray(a)&&a.length>0?a:n.titles,o=angular.isDefined(t.ratingStates)?e.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?e.$parent.$eval(t.max):n.max),e.range=this.buildTemplateObjects(o)},this.buildTemplateObjects=function(e){for(var t=0,n=e.length;t<n;t++)e[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(t)},e[t]);return e},this.getTitle=function(e){return e>=this.titles.length?e+1:this.titles[e]},e.rate=function(t){if(!e.readonly&&t>=0&&t<=e.range.length){var n=r.enableReset&&i.$viewValue===t?0:t;i.$setViewValue(n),i.$render()}},e.enter=function(t){e.readonly||(e.value=t),e.onHover({value:t})},e.reset=function(){e.value=i.$viewValue,e.onLeave()},e.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),e.rate(e.value+(38===t.which||39===t.which?1:-1)))},this.render=function(){e.value=i.$viewValue,e.title=r.getTitle(e.value-1)}}]).directive("uibRating",function(){return{require:["uibRating","ngModel"],scope:{readonly:"=?readOnly",onHover:"&",onLeave:"&"},controller:"UibRatingController",templateUrl:"uib/template/rating/rating.html",replace:!0,link:function(e,t,n,i){var r=i[0],a=i[1];r.init(a)}}}),angular.module("ui.bootstrap.tabs",[]).controller("UibTabsetController",["$scope",function(e){function t(e){for(var t=0;t<r.tabs.length;t++)if(r.tabs[t].index===e)return t}var n,i,r=this;r.tabs=[],r.select=function(e,a){var o,s,l;if(!i){if(o=t(n),s=r.tabs[o]){if(s.tab.onDeselect({$event:a}),a&&a.isDefaultPrevented())return;s.tab.active=!1}l=r.tabs[e],l?(l.tab.onSelect({$event:a}),l.tab.active=!0,r.active=l.index,n=l.index):!l&&angular.isNumber(n)&&(r.active=null,n=null)}},r.addTab=function(e){if(r.tabs.push({tab:e,index:e.index}),r.tabs.sort(function(e,t){return e.index>t.index?1:e.index<t.index?-1:0}),e.index===r.active||!angular.isNumber(r.active)&&1===r.tabs.length){var n=t(e.index);r.select(n)}},r.removeTab=function(e){var t,n,i;for(n=0;n<r.tabs.length;n++)if(r.tabs[n].tab===e){t=n;break}r.tabs[t].index===r.active&&(i=t===r.tabs.length-1?t-1:t+1%r.tabs.length,r.select(i)),r.tabs.splice(t,1)},e.$watch("tabset.active",function(e){angular.isNumber(e)&&e!==n&&r.select(t(e))}),e.$on("$destroy",function(){i=!0})}]).directive("uibTabset",function(){return{transclude:!0,replace:!0,scope:{},bindToController:{active:"=?",type:"@"},controller:"UibTabsetController",controllerAs:"tabset",templateUrl:function(e,t){return t.templateUrl||"uib/template/tabs/tabset.html"},link:function(e,t,n){e.vertical=!!angular.isDefined(n.vertical)&&e.$parent.$eval(n.vertical),e.justified=!!angular.isDefined(n.justified)&&e.$parent.$eval(n.justified),angular.isUndefined(n.active)&&(e.active=0)}}}).directive("uibTab",["$parse",function(e){return{require:"^uibTabset",replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/tabs/tab.html"},transclude:!0,scope:{heading:"@",index:"=?",classes:"@?",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},controllerAs:"tab",link:function(t,n,i,r,a){t.disabled=!1,i.disable&&t.$parent.$watch(e(i.disable),function(e){t.disabled=!!e}),angular.isUndefined(i.index)&&(r.tabs&&r.tabs.length?t.index=Math.max.apply(null,r.tabs.map(function(e){return e.index}))+1:t.index=0),angular.isUndefined(i.classes)&&(t.classes=""),t.select=function(e){var n,i;if(!t.disabled){for(i=0;i<r.tabs.length;i++)if(r.tabs[i].tab===t){n=i;break}r.select(n,e)}},r.addTab(t),t.$on("$destroy",function(){r.removeTab(t)}),t.$transcludeFn=a}}}]).directive("uibTabHeadingTransclude",function(){return{restrict:"A",require:"^uibTab",link:function(e,t){e.$watch("headingElement",function(e){e&&(t.html(""),t.append(e))})}}}).directive("uibTabContentTransclude",function(){function e(e){return e.tagName&&(e.hasAttribute("uib-tab-heading")||e.hasAttribute("data-uib-tab-heading")||e.hasAttribute("x-uib-tab-heading")||"uib-tab-heading"===e.tagName.toLowerCase()||"data-uib-tab-heading"===e.tagName.toLowerCase()||"x-uib-tab-heading"===e.tagName.toLowerCase()||"uib:tab-heading"===e.tagName.toLowerCase())}return{restrict:"A",require:"^uibTabset",link:function(t,n,i){var r=t.$eval(i.uibTabContentTransclude).tab;r.$transcludeFn(r.$parent,function(t){angular.forEach(t,function(t){e(t)?r.headingElement=t:n.append(t)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("uibTimepickerConfig",{hourStep:1,minuteStep:1,secondStep:1,showMeridian:!0,showSeconds:!1,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,
templateUrl:"uib/template/timepicker/timepicker.html"}).controller("UibTimepickerController",["$scope","$element","$attrs","$parse","$log","$locale","uibTimepickerConfig",function(e,t,n,i,r,a,o){function s(){var t=+e.hours;if((e.showMeridian?t>0&&t<13:t>=0&&t<24)&&""!==e.hours)return e.showMeridian&&(12===t&&(t=0),e.meridian===O[1]&&(t+=12)),t}function l(){var t=+e.minutes;if(t>=0&&t<60&&""!==e.minutes)return t}function u(){var t=+e.seconds;return t>=0&&t<60?t:void 0}function c(e,t){return null===e?"":angular.isDefined(e)&&e.toString().length<2&&!t?"0"+e:e.toString()}function d(e){p(),S.$setViewValue(new Date(D)),f(e)}function p(){S.$setValidity("time",!0),e.invalidHours=!1,e.invalidMinutes=!1,e.invalidSeconds=!1}function f(t){if(S.$modelValue){var n=D.getHours(),i=D.getMinutes(),r=D.getSeconds();e.showMeridian&&(n=0===n||12===n?12:n%12),e.hours="h"===t?n:c(n,!M),"m"!==t&&(e.minutes=c(i)),e.meridian=D.getHours()<12?O[0]:O[1],"s"!==t&&(e.seconds=c(r)),e.meridian=D.getHours()<12?O[0]:O[1]}else e.hours=null,e.minutes=null,e.seconds=null,e.meridian=O[0]}function h(e){D=m(D,e),d()}function g(e,t){return m(e,60*t)}function m(e,t){var n=new Date(e.getTime()+1e3*t),i=new Date(e);return i.setHours(n.getHours(),n.getMinutes(),n.getSeconds()),i}function b(){return(null===e.hours||""===e.hours)&&(null===e.minutes||""===e.minutes)&&(!e.showSeconds||e.showSeconds&&(null===e.seconds||""===e.seconds))}var y,v,$,w,x,k,D=new Date,C=[],S={$setViewValue:angular.noop},O=angular.isDefined(n.meridians)?e.$parent.$eval(n.meridians):o.meridians||a.DATETIME_FORMATS.AMPMS,M=!angular.isDefined(n.padHours)||e.$parent.$eval(n.padHours);e.tabindex=angular.isDefined(n.tabindex)?n.tabindex:0,t.removeAttr("tabindex"),this.init=function(t,i){var r,a,s,l,u;S=t,S.$render=this.render,S.$formatters.unshift(function(e){return e?new Date(e):null}),r=i.eq(0),a=i.eq(1),s=i.eq(2),l=angular.isDefined(n.mousewheel)?e.$parent.$eval(n.mousewheel):o.mousewheel,l&&this.setupMousewheelEvents(r,a,s),u=angular.isDefined(n.arrowkeys)?e.$parent.$eval(n.arrowkeys):o.arrowkeys,u&&this.setupArrowkeyEvents(r,a,s),e.readonlyInput=angular.isDefined(n.readonlyInput)?e.$parent.$eval(n.readonlyInput):o.readonlyInput,this.setupInputEvents(r,a,s)},y=o.hourStep,n.hourStep&&C.push(e.$parent.$watch(i(n.hourStep),function(e){y=+e})),v=o.minuteStep,n.minuteStep&&C.push(e.$parent.$watch(i(n.minuteStep),function(e){v=+e})),C.push(e.$parent.$watch(i(n.min),function(e){var t=new Date(e);$=isNaN(t)?void 0:t})),C.push(e.$parent.$watch(i(n.max),function(e){var t=new Date(e);w=isNaN(t)?void 0:t})),x=!1,n.ngDisabled&&C.push(e.$parent.$watch(i(n.ngDisabled),function(e){x=e})),e.noIncrementHours=function(){var e=g(D,60*y);return x||e>w||e<D&&e<$},e.noDecrementHours=function(){var e=g(D,60*-y);return x||e<$||e>D&&e>w},e.noIncrementMinutes=function(){var e=g(D,v);return x||e>w||e<D&&e<$},e.noDecrementMinutes=function(){var e=g(D,-v);return x||e<$||e>D&&e>w},e.noIncrementSeconds=function(){var e=m(D,k);return x||e>w||e<D&&e<$},e.noDecrementSeconds=function(){var e=m(D,-k);return x||e<$||e>D&&e>w},e.noToggleMeridian=function(){return D.getHours()<12?x||g(D,720)>w:x||g(D,-720)<$},k=o.secondStep,n.secondStep&&C.push(e.$parent.$watch(i(n.secondStep),function(e){k=+e})),e.showSeconds=o.showSeconds,n.showSeconds&&C.push(e.$parent.$watch(i(n.showSeconds),function(t){e.showSeconds=!!t})),e.showMeridian=o.showMeridian,n.showMeridian&&C.push(e.$parent.$watch(i(n.showMeridian),function(t){if(e.showMeridian=!!t,S.$error.time){var n=s(),i=l();angular.isDefined(n)&&angular.isDefined(i)&&(D.setHours(n),d())}else f()})),this.setupMousewheelEvents=function(t,n,i){var r=function(e){e.originalEvent&&(e=e.originalEvent);var t=e.wheelDelta?e.wheelDelta:-e.deltaY;return e.detail||t>0};t.bind("mousewheel wheel",function(t){x||e.$apply(r(t)?e.incrementHours():e.decrementHours()),t.preventDefault()}),n.bind("mousewheel wheel",function(t){x||e.$apply(r(t)?e.incrementMinutes():e.decrementMinutes()),t.preventDefault()}),i.bind("mousewheel wheel",function(t){x||e.$apply(r(t)?e.incrementSeconds():e.decrementSeconds()),t.preventDefault()})},this.setupArrowkeyEvents=function(t,n,i){t.bind("keydown",function(t){x||(38===t.which?(t.preventDefault(),e.incrementHours(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementHours(),e.$apply()))}),n.bind("keydown",function(t){x||(38===t.which?(t.preventDefault(),e.incrementMinutes(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementMinutes(),e.$apply()))}),i.bind("keydown",function(t){x||(38===t.which?(t.preventDefault(),e.incrementSeconds(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementSeconds(),e.$apply()))})},this.setupInputEvents=function(t,n,i){if(e.readonlyInput)return e.updateHours=angular.noop,e.updateMinutes=angular.noop,void(e.updateSeconds=angular.noop);var r=function(t,n,i){S.$setViewValue(null),S.$setValidity("time",!1),angular.isDefined(t)&&(e.invalidHours=t),angular.isDefined(n)&&(e.invalidMinutes=n),angular.isDefined(i)&&(e.invalidSeconds=i)};e.updateHours=function(){var e=s(),t=l();S.$setDirty(),angular.isDefined(e)&&angular.isDefined(t)?(D.setHours(e),D.setMinutes(t),D<$||D>w?r(!0):d("h")):r(!0)},t.bind("blur",function(t){S.$setTouched(),b()?p():null===e.hours||""===e.hours?r(!0):!e.invalidHours&&e.hours<10&&e.$apply(function(){e.hours=c(e.hours,!M)})}),e.updateMinutes=function(){var e=l(),t=s();S.$setDirty(),angular.isDefined(e)&&angular.isDefined(t)?(D.setHours(t),D.setMinutes(e),D<$||D>w?r(void 0,!0):d("m")):r(void 0,!0)},n.bind("blur",function(t){S.$setTouched(),b()?p():null===e.minutes?r(void 0,!0):!e.invalidMinutes&&e.minutes<10&&e.$apply(function(){e.minutes=c(e.minutes)})}),e.updateSeconds=function(){var e=u();S.$setDirty(),angular.isDefined(e)?(D.setSeconds(e),d("s")):r(void 0,void 0,!0)},i.bind("blur",function(t){b()?p():!e.invalidSeconds&&e.seconds<10&&e.$apply(function(){e.seconds=c(e.seconds)})})},this.render=function(){var t=S.$viewValue;isNaN(t)?(S.$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.')):(t&&(D=t),D<$||D>w?(S.$setValidity("time",!1),e.invalidHours=!0,e.invalidMinutes=!0):p(),f())},e.showSpinners=angular.isDefined(n.showSpinners)?e.$parent.$eval(n.showSpinners):o.showSpinners,e.incrementHours=function(){e.noIncrementHours()||h(60*y*60)},e.decrementHours=function(){e.noDecrementHours()||h(60*-y*60)},e.incrementMinutes=function(){e.noIncrementMinutes()||h(60*v)},e.decrementMinutes=function(){e.noDecrementMinutes()||h(60*-v)},e.incrementSeconds=function(){e.noIncrementSeconds()||h(k)},e.decrementSeconds=function(){e.noDecrementSeconds()||h(-k)},e.toggleMeridian=function(){var t=l(),n=s();e.noToggleMeridian()||(angular.isDefined(t)&&angular.isDefined(n)?h(720*(D.getHours()<12?60:-60)):e.meridian=e.meridian===O[0]?O[1]:O[0])},e.blur=function(){S.$setTouched()},e.$on("$destroy",function(){for(;C.length;)C.shift()()})}]).directive("uibTimepicker",["uibTimepickerConfig",function(e){return{require:["uibTimepicker","?^ngModel"],controller:"UibTimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(t,n){return n.templateUrl||e.templateUrl},link:function(e,t,n,i){var r=i[0],a=i[1];a&&r.init(a,t.find("input"))}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.debounce","ui.bootstrap.position"]).factory("uibTypeaheadParser",["$parse",function(e){var t=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(n){var i=n.match(t);if(!i)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+n+'".');return{itemName:i[3],source:e(i[4]),viewMapper:e(i[2]||i[1]),modelMapper:e(i[1])}}}}]).controller("UibTypeaheadController",["$scope","$element","$attrs","$compile","$parse","$q","$timeout","$document","$window","$rootScope","$$debounce","$uibPosition","uibTypeaheadParser",function(e,t,n,i,r,a,o,s,l,u,c,d,p){function f(){I.moveInProgress||(I.moveInProgress=!0,I.$digest()),Q()}function h(){I.position=D?d.offset(t):d.position(t),I.position.top+=t.prop("offsetHeight")}var g,m,b,y,v,$,w,x,k,D,C,S,O,M,T,E,q,_,P,L,N,I,A,R,F,j,U,K,V,H,B,z,Q,G,W,Y,X,J,Z=[9,13,27,38,40],ee=e.$eval(n.typeaheadMinLength);ee||0===ee||(ee=1),e.$watch(n.typeaheadMinLength,function(e){ee=e||0===e?e:1}),b=e.$eval(n.typeaheadWaitMs)||0,y=!1!==e.$eval(n.typeaheadEditable),e.$watch(n.typeaheadEditable,function(e){y=!1!==e}),v=r(n.typeaheadLoading).assign||angular.noop,$=r(n.typeaheadOnSelect),w=!!angular.isDefined(n.typeaheadSelectOnBlur)&&e.$eval(n.typeaheadSelectOnBlur),x=r(n.typeaheadNoResults).assign||angular.noop,k=n.typeaheadInputFormatter?r(n.typeaheadInputFormatter):void 0,D=!!n.typeaheadAppendToBody&&e.$eval(n.typeaheadAppendToBody),C=n.typeaheadAppendTo?e.$eval(n.typeaheadAppendTo):null,S=!1!==e.$eval(n.typeaheadFocusFirst),O=!!n.typeaheadSelectOnExact&&e.$eval(n.typeaheadSelectOnExact),M=r(n.typeaheadIsOpen).assign||angular.noop,T=e.$eval(n.typeaheadShowHint)||!1,E=r(n.ngModel),q=r(n.ngModel+"($$$p)"),_=function(t,n){return angular.isFunction(E(e))&&m&&m.$options&&m.$options.getterSetter?q(t,{$$$p:n}):E.assign(t,n)},P=p.parse(n.uibTypeahead),I=e.$new(),A=e.$on("$destroy",function(){I.$destroy()}),I.$on("$destroy",A),R="typeahead-"+I.$id+"-"+Math.floor(1e4*Math.random()),t.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":R}),T&&(F=angular.element("<div></div>"),F.css("position","relative"),t.after(F),j=t.clone(),j.attr("placeholder",""),j.attr("tabindex","-1"),j.val(""),j.css({position:"absolute",top:"0px",left:"0px","border-color":"transparent","box-shadow":"none",opacity:1,background:"none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255)",color:"#999"}),t.css({position:"relative","vertical-align":"top","background-color":"transparent"}),F.append(j),j.after(t)),U=angular.element("<div uib-typeahead-popup></div>"),U.attr({id:R,matches:"matches",active:"activeIdx",select:"select(activeIdx, evt)","move-in-progress":"moveInProgress",query:"query",position:"position","assign-is-open":"assignIsOpen(isOpen)",debounce:"debounceUpdate"}),angular.isDefined(n.typeaheadTemplateUrl)&&U.attr("template-url",n.typeaheadTemplateUrl),angular.isDefined(n.typeaheadPopupTemplateUrl)&&U.attr("popup-template-url",n.typeaheadPopupTemplateUrl),K=function(){T&&j.val("")},V=function(){I.matches=[],I.activeIdx=-1,t.attr("aria-expanded",!1),K()},H=function(e){return R+"-option-"+e},I.$watch("activeIdx",function(e){e<0?t.removeAttr("aria-activedescendant"):t.attr("aria-activedescendant",H(e))}),B=function(e,t){return!!(I.matches.length>t&&e)&&e.toUpperCase()===I.matches[t].label.toUpperCase()},z=function(n,i){var r={$viewValue:n};v(e,!0),x(e,!1),a.when(P.source(e,r)).then(function(a){var o,s,l=n===g.$viewValue;if(l&&L)if(a&&a.length>0){for(I.activeIdx=S?0:-1,x(e,!1),I.matches.length=0,o=0;o<a.length;o++)r[P.itemName]=a[o],I.matches.push({id:H(o),label:P.viewMapper(I,r),model:a[o]});I.query=n,h(),t.attr("aria-expanded",!0),O&&1===I.matches.length&&B(n,0)&&(angular.isNumber(I.debounceUpdate)||angular.isObject(I.debounceUpdate)?c(function(){I.select(0,i)},angular.isNumber(I.debounceUpdate)?I.debounceUpdate:I.debounceUpdate.default):I.select(0,i)),T&&(s=I.matches[0].label,angular.isString(n)&&n.length>0&&s.slice(0,n.length).toUpperCase()===n.toUpperCase()?j.val(n+s.slice(n.length)):j.val(""))}else V(),x(e,!0);l&&v(e,!1)},function(){V(),v(e,!1),x(e,!0)})},D&&(angular.element(l).on("resize",f),s.find("body").on("scroll",f)),Q=c(function(){I.matches.length&&h(),I.moveInProgress=!1},200),I.moveInProgress=!1,I.query=void 0,W=function(e){G=o(function(){z(e)},b)},Y=function(){G&&o.cancel(G)},V(),I.assignIsOpen=function(t){M(e,t)},I.select=function(i,r){var a,s,l={};N=!0,l[P.itemName]=s=I.matches[i].model,a=P.modelMapper(e,l),_(e,a),g.$setValidity("editable",!0),g.$setValidity("parse",!0),$(e,{$item:s,$model:a,$label:P.viewMapper(e,l),$event:r}),V(),!1!==I.$eval(n.typeaheadFocusOnSelect)&&o(function(){t[0].focus()},0,!1)},t.on("keydown",function(t){if(0!==I.matches.length&&-1!==Z.indexOf(t.which)){if(-1===I.activeIdx&&(9===t.which||13===t.which)||9===t.which&&t.shiftKey)return V(),void I.$digest();t.preventDefault();var n;switch(t.which){case 9:case 13:I.$apply(function(){angular.isNumber(I.debounceUpdate)||angular.isObject(I.debounceUpdate)?c(function(){I.select(I.activeIdx,t)},angular.isNumber(I.debounceUpdate)?I.debounceUpdate:I.debounceUpdate.default):I.select(I.activeIdx,t)});break;case 27:t.stopPropagation(),V(),e.$digest();break;case 38:I.activeIdx=(I.activeIdx>0?I.activeIdx:I.matches.length)-1,I.$digest(),n=U.find("li")[I.activeIdx],n.parentNode.scrollTop=n.offsetTop;break;case 40:I.activeIdx=(I.activeIdx+1)%I.matches.length,I.$digest(),n=U.find("li")[I.activeIdx],n.parentNode.scrollTop=n.offsetTop}}}),t.bind("focus",function(e){L=!0,0!==ee||g.$viewValue||o(function(){z(g.$viewValue,e)},0)}),t.bind("blur",function(e){w&&I.matches.length&&-1!==I.activeIdx&&!N&&(N=!0,I.$apply(function(){angular.isObject(I.debounceUpdate)&&angular.isNumber(I.debounceUpdate.blur)?c(function(){I.select(I.activeIdx,e)},I.debounceUpdate.blur):I.select(I.activeIdx,e)})),!y&&g.$error.editable&&(g.$setViewValue(),g.$setValidity("editable",!0),g.$setValidity("parse",!0),t.val("")),L=!1,N=!1}),X=function(n){t[0]!==n.target&&3!==n.which&&0!==I.matches.length&&(V(),u.$$phase||e.$digest())},s.on("click",X),e.$on("$destroy",function(){s.off("click",X),(D||C)&&J.remove(),D&&(angular.element(l).off("resize",f),s.find("body").off("scroll",f)),U.remove(),T&&F.remove()}),J=i(U)(I),D?s.find("body").append(J):C?angular.element(C).eq(0).append(J):t.after(J),this.init=function(t,n){g=t,m=n,I.debounceUpdate=g.$options&&r(g.$options.debounce)(e),g.$parsers.unshift(function(t){return L=!0,0===ee||t&&t.length>=ee?b>0?(Y(),W(t)):z(t):(v(e,!1),Y(),V()),y?t:t?void g.$setValidity("editable",!1):(g.$setValidity("editable",!0),null)}),g.$formatters.push(function(t){var n,i,r={};return y||g.$setValidity("editable",!0),k?(r.$model=t,k(e,r)):(r[P.itemName]=t,n=P.viewMapper(e,r),r[P.itemName]=void 0,i=P.viewMapper(e,r),n!==i?n:t)})}}]).directive("uibTypeahead",function(){return{controller:"UibTypeaheadController",require:["ngModel","^?ngModelOptions","uibTypeahead"],link:function(e,t,n,i){i[2].init(i[0],i[1])}}}).directive("uibTypeaheadPopup",["$$debounce",function(e){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&",assignIsOpen:"&",debounce:"&"},replace:!0,templateUrl:function(e,t){return t.popupTemplateUrl||"uib/template/typeahead/typeahead-popup.html"},link:function(t,n,i){t.templateUrl=i.templateUrl,t.isOpen=function(){var e=t.matches.length>0;return t.assignIsOpen({isOpen:e}),e},t.isActive=function(e){return t.active===e},t.selectActive=function(e){t.active=e},t.selectMatch=function(n,i){var r=t.debounce();angular.isNumber(r)||angular.isObject(r)?e(function(){t.select({activeIdx:n,evt:i})},angular.isNumber(r)?r:r.default):t.select({activeIdx:n,evt:i})}}}}]).directive("uibTypeaheadMatch",["$templateRequest","$compile","$parse",function(e,t,n){return{scope:{index:"=",match:"=",query:"="},link:function(i,r,a){var o=n(a.templateUrl)(i.$parent)||"uib/template/typeahead/typeahead-match.html";e(o).then(function(e){var n=angular.element(e.trim());r.replaceWith(n),t(n)(i)})}}}]).filter("uibTypeaheadHighlight",["$sce","$injector","$log",function(e,t,n){function i(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function r(e){return/<.*>/g.test(e)}var a;return a=t.has("$sanitize"),function(t,o){return!a&&r(t)&&n.warn("Unsafe use of typeahead please use ngSanitize"),t=o?(""+t).replace(new RegExp(i(o),"gi"),"<strong>$&</strong>"):t,a||(t=e.trustAsHtml(t)),t}}]),angular.module("uib/template/accordion/accordion-group.html",[]).run(["$templateCache",function(e){e.put("uib/template/accordion/accordion-group.html",'<div class="panel" ng-class="panelClass || \'panel-default\'">\n <div role="tab" id="{{::headingId}}" aria-selected="{{isOpen}}" class="panel-heading" ng-keypress="toggleOpen($event)">\n <h4 class="panel-title">\n <a role="button" data-toggle="collapse" href aria-expanded="{{isOpen}}" aria-controls="{{::panelId}}" tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading"><span uib-accordion-header ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n </h4>\n </div>\n <div id="{{::panelId}}" aria-labelledby="{{::headingId}}" aria-hidden="{{!isOpen}}" role="tabpanel" class="panel-collapse collapse" uib-collapse="!isOpen">\n <div class="panel-body" ng-transclude></div>\n </div>\n</div>\n')}]),angular.module("uib/template/accordion/accordion.html",[]).run(["$templateCache",function(e){e.put("uib/template/accordion/accordion.html",'<div role="tablist" class="panel-group" ng-transclude></div>')}]),angular.module("uib/template/alert/alert.html",[]).run(["$templateCache",function(e){e.put("uib/template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissible\' : null]" role="alert">\n <button ng-show="closeable" type="button" class="close" ng-click="close({$event: $event})">\n <span aria-hidden="true">×</span>\n <span class="sr-only">Close</span>\n </button>\n <div ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/carousel/carousel.html",[]).run(["$templateCache",function(e){e.put("uib/template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n <div class="carousel-inner" ng-transclude></div>\n <a role="button" href class="left carousel-control" ng-click="prev()" ng-class="{ disabled: isPrevDisabled() }" ng-show="slides.length > 1">\n <span aria-hidden="true" class="glyphicon glyphicon-chevron-left"></span>\n <span class="sr-only">previous</span>\n </a>\n <a role="button" href class="right carousel-control" ng-click="next()" ng-class="{ disabled: isNextDisabled() }" ng-show="slides.length > 1">\n <span aria-hidden="true" class="glyphicon glyphicon-chevron-right"></span>\n <span class="sr-only">next</span>\n </a>\n <ol class="carousel-indicators" ng-show="slides.length > 1">\n <li ng-repeat="slide in slides | orderBy:indexOfSlide track by $index" ng-class="{ active: isActive(slide) }" ng-click="select(slide)">\n <span class="sr-only">slide {{ $index + 1 }} of {{ slides.length }}<span ng-if="isActive(slide)">, currently active</span></span>\n </li>\n </ol>\n</div>\n')}]),angular.module("uib/template/carousel/slide.html",[]).run(["$templateCache",function(e){e.put("uib/template/carousel/slide.html",'<div ng-class="{\n \'active\': active\n }" class="item text-center" ng-transclude></div>\n')}]),angular.module("uib/template/datepicker/datepicker.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/datepicker.html",'<div class="uib-datepicker" ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n <uib-daypicker ng-switch-when="day" tabindex="0"></uib-daypicker>\n <uib-monthpicker ng-switch-when="month" tabindex="0"></uib-monthpicker>\n <uib-yearpicker ng-switch-when="year" tabindex="0"></uib-yearpicker>\n</div>\n')}]),angular.module("uib/template/datepicker/day.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/day.html",'<table class="uib-daypicker" 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 uib-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 uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n <tr>\n <th ng-if="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 class="uib-weeks" ng-repeat="row in rows track by $index">\n <td ng-if="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n <td ng-repeat="dt in row" class="uib-day text-center" role="gridcell"\n id="{{::dt.uid}}"\n ng-class="::dt.customClass">\n <button type="button" class="btn btn-default btn-sm"\n uib-is-class="\n \'btn-info\' for selectedDt,\n \'active\' for activeDt\n on dt"\n ng-click="select(dt.date)"\n ng-disabled="::dt.disabled"\n 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("uib/template/datepicker/month.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/month.html",'<table class="uib-monthpicker" 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 uib-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 uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr class="uib-months" ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row" class="uib-month text-center" role="gridcell"\n id="{{::dt.uid}}"\n ng-class="::dt.customClass">\n <button type="button" class="btn btn-default"\n uib-is-class="\n \'btn-info\' for selectedDt,\n \'active\' for activeDt\n on dt"\n ng-click="select(dt.date)"\n ng-disabled="::dt.disabled"\n tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/year.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/year.html",'<table class="uib-yearpicker" 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 uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="{{::columns - 2}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr class="uib-years" ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row" class="uib-year text-center" role="gridcell"\n id="{{::dt.uid}}"\n ng-class="::dt.customClass">\n <button type="button" class="btn btn-default"\n uib-is-class="\n \'btn-info\' for selectedDt,\n \'active\' for activeDt\n on dt"\n ng-click="select(dt.date)"\n ng-disabled="::dt.disabled"\n tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("uib/template/datepickerPopup/popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepickerPopup/popup.html",'<div>\n <ul class="uib-datepicker-popup dropdown-menu uib-position-measure" dropdown-nested ng-if="isOpen" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n <li ng-transclude></li>\n <li ng-if="showButtonBar" class="uib-button-bar">\n <span class="btn-group pull-left">\n <button type="button" class="btn btn-sm btn-info uib-datepicker-current" ng-click="select(\'today\', $event)" ng-disabled="isDisabled(\'today\')">{{ getText(\'current\') }}</button>\n <button type="button" class="btn btn-sm btn-danger uib-clear" ng-click="select(null, $event)">{{ getText(\'clear\') }}</button>\n </span>\n <button type="button" class="btn btn-sm btn-success pull-right uib-close" ng-click="close($event)">{{ getText(\'close\') }}</button>\n </li>\n </ul>\n</div>\n')}]),angular.module("uib/template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("uib/template/modal/backdrop.html",'<div class="modal-backdrop"\n uib-modal-animation-class="fade"\n modal-in-class="in"\n ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("uib/template/modal/window.html",[]).run(["$templateCache",function(e){e.put("uib/template/modal/window.html",'<div modal-render="{{$isRendered}}" tabindex="-1" role="dialog" class="modal"\n uib-modal-animation-class="fade"\n modal-in-class="in"\n ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}">\n <div class="modal-dialog {{size ? \'modal-\' + size : \'\'}}"><div class="modal-content" uib-modal-transclude></div></div>\n</div>\n')}]),angular.module("uib/template/pager/pager.html",[]).run(["$templateCache",function(e){e.put("uib/template/pager/pager.html",'<ul class="pager">\n <li ng-class="{disabled: noPrevious()||ngDisabled, previous: align}"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n <li ng-class="{disabled: noNext()||ngDisabled, next: align}"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(e){e.put("uib/template/pagination/pagination.html",'<ul class="pagination">\n <li ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)">{{::getText(\'first\')}}</a></li>\n <li ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n <li ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)">{{page.text}}</a></li>\n <li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n <li ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)">{{::getText(\'last\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-html-popup.html",'<div class="tooltip"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind-html="contentExp()"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-popup.html",'<div class="tooltip"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-template-popup.html",'<div class="tooltip"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner"\n uib-tooltip-template-transclude="contentExp()"\n tooltip-template-transclude-scope="originScope()"></div>\n</div>\n')}]),angular.module("uib/template/popover/popover-html.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover-html.html",'<div class="popover"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n <div class="popover-content" ng-bind-html="contentExp()"></div>\n </div>\n</div>\n')}]),angular.module("uib/template/popover/popover-template.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover-template.html",'<div class="popover"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n <div class="popover-content"\n uib-tooltip-template-transclude="contentExp()"\n tooltip-template-transclude-scope="originScope()"></div>\n </div>\n</div>\n')}]),angular.module("uib/template/popover/popover.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover.html",'<div class="popover"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n <div class="popover-content" ng-bind="content"></div>\n </div>\n</div>\n')}]),angular.module("uib/template/progressbar/bar.html",[]).run(["$templateCache",function(e){e.put("uib/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 < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n')}]),angular.module("uib/template/progressbar/progress.html",[]).run(["$templateCache",function(e){e.put("uib/template/progressbar/progress.html",'<div class="progress" ng-transclude aria-labelledby="{{::title}}"></div>')}]),angular.module("uib/template/progressbar/progressbar.html",[]).run(["$templateCache",function(e){e.put("uib/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 < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/rating/rating.html",[]).run(["$templateCache",function(e){
e.put("uib/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}}" aria-valuetext="{{title}}">\n <span ng-repeat-start="r in range track by $index" class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n <i ng-repeat-end 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\')" ng-attr-title="{{r.title}}"></i>\n</span>\n')}]),angular.module("uib/template/tabs/tab.html",[]).run(["$templateCache",function(e){e.put("uib/template/tabs/tab.html",'<li ng-class="[{active: active, disabled: disabled}, classes]" class="uib-tab nav-item">\n <a href ng-click="select($event)" class="nav-link" uib-tab-heading-transclude>{{heading}}</a>\n</li>\n')}]),angular.module("uib/template/tabs/tabset.html",[]).run(["$templateCache",function(e){e.put("uib/template/tabs/tabset.html",'<div>\n <ul class="nav nav-{{tabset.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 tabset.tabs"\n ng-class="{active: tabset.active === tab.index}"\n uib-tab-content-transclude="tab">\n </div>\n </div>\n</div>\n')}]),angular.module("uib/template/timepicker/timepicker.html",[]).run(["$templateCache",function(e){e.put("uib/template/timepicker/timepicker.html",'<table class="uib-timepicker">\n <tbody>\n <tr class="text-center" ng-show="::showSpinners">\n <td class="uib-increment hours"><a ng-click="incrementHours()" ng-class="{disabled: noIncrementHours()}" class="btn btn-link" ng-disabled="noIncrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td> </td>\n <td class="uib-increment minutes"><a ng-click="incrementMinutes()" ng-class="{disabled: noIncrementMinutes()}" class="btn btn-link" ng-disabled="noIncrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td ng-show="showSeconds"> </td>\n <td ng-show="showSeconds" class="uib-increment seconds"><a ng-click="incrementSeconds()" ng-class="{disabled: noIncrementSeconds()}" class="btn btn-link" ng-disabled="noIncrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n <tr>\n <td class="form-group uib-time hours" ng-class="{\'has-error\': invalidHours}">\n <input type="text" placeholder="HH" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementHours()" ng-blur="blur()">\n </td>\n <td class="uib-separator">:</td>\n <td class="form-group uib-time minutes" ng-class="{\'has-error\': invalidMinutes}">\n <input type="text" placeholder="MM" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementMinutes()" ng-blur="blur()">\n </td>\n <td ng-show="showSeconds" class="uib-separator">:</td>\n <td class="form-group uib-time seconds" ng-class="{\'has-error\': invalidSeconds}" ng-show="showSeconds">\n <input type="text" placeholder="SS" ng-model="seconds" ng-change="updateSeconds()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementSeconds()" ng-blur="blur()">\n </td>\n <td ng-show="showMeridian" class="uib-time am-pm"><button type="button" ng-class="{disabled: noToggleMeridian()}" class="btn btn-default text-center" ng-click="toggleMeridian()" ng-disabled="noToggleMeridian()" tabindex="{{::tabindex}}">{{meridian}}</button></td>\n </tr>\n <tr class="text-center" ng-show="::showSpinners">\n <td class="uib-decrement hours"><a ng-click="decrementHours()" ng-class="{disabled: noDecrementHours()}" class="btn btn-link" ng-disabled="noDecrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td> </td>\n <td class="uib-decrement minutes"><a ng-click="decrementMinutes()" ng-class="{disabled: noDecrementMinutes()}" class="btn btn-link" ng-disabled="noDecrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td ng-show="showSeconds"> </td>\n <td ng-show="showSeconds" class="uib-decrement seconds"><a ng-click="decrementSeconds()" ng-class="{disabled: noDecrementSeconds()}" class="btn btn-link" ng-disabled="noDecrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("uib/template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(e){e.put("uib/template/typeahead/typeahead-match.html",'<a href\n tabindex="-1"\n ng-bind-html="match.label | uibTypeaheadHighlight:query"\n ng-attr-title="{{match.label}}"></a>\n')}]),angular.module("uib/template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+\'px\', left: position().left+\'px\'}" 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, $event)" role="option" id="{{::match.id}}">\n <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n </li>\n</ul>\n')}]),angular.module("ui.bootstrap.carousel").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibCarouselCss&&angular.element(document).find("head").prepend('<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>'),angular.$$uibCarouselCss=!0}),angular.module("ui.bootstrap.datepicker").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibDatepickerCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-datepicker .uib-title{width:100%;}.uib-day button,.uib-month button,.uib-year button{min-width:100%;}.uib-left,.uib-right{width:100%}</style>'),angular.$$uibDatepickerCss=!0}),angular.module("ui.bootstrap.position").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibPositionCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-position-measure{display:block !important;visibility:hidden !important;position:absolute !important;top:-9999px !important;left:-9999px !important;}.uib-position-scrollbar-measure{position:absolute !important;top:-9999px !important;width:50px !important;height:50px !important;overflow:scroll !important;}.uib-position-body-scrollbar-measure{overflow:scroll !important;}</style>'),angular.$$uibPositionCss=!0}),angular.module("ui.bootstrap.datepickerPopup").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibDatepickerpopupCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-datepicker-popup.dropdown-menu{display:block;float:none;margin:0;}.uib-button-bar{padding:10px 9px 2px;}</style>'),angular.$$uibDatepickerpopupCss=!0}),angular.module("ui.bootstrap.tooltip").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTooltipCss&&angular.element(document).find("head").prepend('<style type="text/css">[uib-tooltip-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-bottom > .tooltip-arrow,[uib-popover-popup].popover.top-left > .arrow,[uib-popover-popup].popover.top-right > .arrow,[uib-popover-popup].popover.bottom-left > .arrow,[uib-popover-popup].popover.bottom-right > .arrow,[uib-popover-popup].popover.left-top > .arrow,[uib-popover-popup].popover.left-bottom > .arrow,[uib-popover-popup].popover.right-top > .arrow,[uib-popover-popup].popover.right-bottom > .arrow,[uib-popover-html-popup].popover.top-left > .arrow,[uib-popover-html-popup].popover.top-right > .arrow,[uib-popover-html-popup].popover.bottom-left > .arrow,[uib-popover-html-popup].popover.bottom-right > .arrow,[uib-popover-html-popup].popover.left-top > .arrow,[uib-popover-html-popup].popover.left-bottom > .arrow,[uib-popover-html-popup].popover.right-top > .arrow,[uib-popover-html-popup].popover.right-bottom > .arrow,[uib-popover-template-popup].popover.top-left > .arrow,[uib-popover-template-popup].popover.top-right > .arrow,[uib-popover-template-popup].popover.bottom-left > .arrow,[uib-popover-template-popup].popover.bottom-right > .arrow,[uib-popover-template-popup].popover.left-top > .arrow,[uib-popover-template-popup].popover.left-bottom > .arrow,[uib-popover-template-popup].popover.right-top > .arrow,[uib-popover-template-popup].popover.right-bottom > .arrow{top:auto;bottom:auto;left:auto;right:auto;margin:0;}[uib-popover-popup].popover,[uib-popover-html-popup].popover,[uib-popover-template-popup].popover{display:block !important;}</style>'),angular.$$uibTooltipCss=!0}),angular.module("ui.bootstrap.timepicker").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTimepickerCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-time input{width:50px;}</style>'),angular.$$uibTimepickerCss=!0}),angular.module("ui.bootstrap.typeahead").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTypeaheadCss&&angular.element(document).find("head").prepend('<style type="text/css">[uib-typeahead-popup].dropdown-menu{display:block;}</style>'),angular.$$uibTypeaheadCss=!0}),angular.module("ui.bootstrap.ext",["ui.bootstrap"]).config(["uibDatepickerPopupConfig",function(e){e.datetimepickerPopup="dd.MM.yyyy HH:mm",e.showMeridian=!1}]).run(["$templateCache",function(e){e.put("uib/template/datetimepicker/popup.html",'<ul class="uib-datepicker-popup dropdown-menu" dropdown-nested ng-if="isOpen" style="max-height:450px;display: block" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n\t<li ng-transclude></li>\n\t<li style="text-align:center"><div style="display:inline-block;" uib-timepicker ng-model="date" ng-change="dateSelection(date)" readonly-input="$parent.$parent.readonlyInput" show-seconds="$parent.$parent.showSeconds" hour-step="$parent.$parent.hourStep" minute-step="$parent.$parent.minuteStep" show-meridian="$parent.$parent.showMeridian" min="$parent.$parent.min" max="$parent.$parent.max"></div></li>\n\t<li ng-if="showButtonBar" style="padding:10px 9px 2px" class="uib-button-bar">\n\t\t<button type="button" class="btn btn-sm btn-success pull-right uib-close" ng-click="close()">{{ getText(\'close\') }}</button>\n\t</li>\n</ul>\n')}]).directive("uibDatetimepickerPopup",["uibDatepickerPopupConfig",function(e){return{restrict:"A",require:"ngModel",replace:!0,template:'<input uib-datepicker-popup="{{dateFormat}}" close-on-date-selection="false" datepicker-popup-template-url="uib/template/datetimepicker/popup.html">',link:function(t,n,i,r){t.readonlyInput=i.readonlyInput,t.hourStep=i.hourStep||1,t.minuteStep=i.minuteStep||1,t.showMeridian=i.showMeridian||e.showMeridian,t.min=i.min,t.max=i.max,t.showSeconds=i.showSeconds,t.dateFormat=i.uibDatetimepickerPopup||e.datetimepickerPopup||"yyyy-MM-dd HH:mm:ss"}}}]).service("uibDropdownService",["$document","$rootScope",function(e,t){var n,i,r=null;this.open=function(t,a){r||(e.on("click",n),a.on("keydown",i)),r&&r!==t&&(r.isOpen=!1),r=t},this.close=function(t,a){r===t&&(r=null,e.off("click",n),a.off("keydown",i))},n=function(e){var n,i;r&&(e&&"disabled"===r.getAutoClose()||e&&3===e.which||(n=r.getToggleElement(),e&&n&&n[0].contains(e.target)||(i=r.getDropdownElement(),e&&"outsideClick"===r.getAutoClose()&&i&&i[0].contains(e.target)||(r.isOpen=!1,t.$$phase||r.$apply()))))},i=function(e){27===e.which?(e.stopPropagation(),r&&r.focusToggleElement(),n()):r&&r.isKeynavEnabled()&&-1!==[38,40].indexOf(e.which)&&r.isOpen&&(e.preventDefault(),e.stopPropagation(),r.focusDropdownEntry(e.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(e,t,n,i,r,a,o,s,l,u,c){var d,p,f=this,h=e.$new(),g=r.appendToOpenClass,m=r.openClass,b=angular.noop,y=n.onToggle?i(n.onToggle):angular.noop,v=!1,$=null,w=!1,x=l.find("body");t.addClass("dropdown"),this.init=function(){if(n.isOpen&&(p=i(n.isOpen),b=p.assign,e.$watch(p,function(e){h.isOpen=!!e})),angular.isDefined(n.dropdownAppendTo)){var r=i(n.dropdownAppendTo)(h);r&&($=angular.element(r))}v=angular.isDefined(n.dropdownAppendToBody),w=angular.isDefined(n.keyboardNav),v&&!$&&($=x),$&&f.dropdownMenu&&($.append(f.dropdownMenu),t.on("$destroy",function(){f.dropdownMenu.remove()}))},this.toggle=function(e){return h.isOpen=arguments.length?!!e:!h.isOpen,angular.isFunction(b)&&b(h,h.isOpen),h.isOpen},this.isOpen=function(){return h.isOpen},h.getToggleElement=function(){return f.toggleElement},h.getAutoClose=function(){return n.autoClose||"always"},h.getElement=function(){return t},h.isKeynavEnabled=function(){return w},h.focusDropdownEntry=function(e){var n=f.dropdownMenu?angular.element(f.dropdownMenu).find("a"):t.find("ul").eq(0).find("a");switch(e){case 40:angular.isNumber(f.selectedOption)?f.selectedOption=f.selectedOption===n.length-1?f.selectedOption:f.selectedOption+1:f.selectedOption=0;break;case 38:angular.isNumber(f.selectedOption)?f.selectedOption=0===f.selectedOption?0:f.selectedOption-1:f.selectedOption=n.length-1}n[f.selectedOption]&&n[f.selectedOption].focus()},h.getDropdownElement=function(){return f.dropdownMenu},h.focusToggleElement=function(){f.toggleElement&&f.toggleElement[0].focus()},h.$watch("isOpen",function(n,i){var r,l,p,w,x,k,D;$&&f.dropdownMenu&&(r=s.positionElements(t,f.dropdownMenu,"bottom-left",!0),l={top:r.top+"px",display:n?"block":"none"},p=f.dropdownMenu.hasClass("dropdown-menu-right"),p?(l.left="auto",l.right=window.innerWidth-(r.left+t.prop("offsetWidth"))+"px"):(l.left=r.left+"px",l.right="auto"),v||(w=s.offset($),l.top=r.top-w.top+"px",p?l.right=window.innerWidth-(r.left-w.left+t.prop("offsetWidth"))+"px":l.left=r.left-w.left+"px"),f.dropdownMenu.css(l)),x=$||t,k=x.hasClass($?g:m),k===!n&&o[n?"addClass":"removeClass"](x,$?g:m).then(function(){angular.isDefined(n)&&n!==i&&y(e,{open:!!n})}),n?(f.dropdownMenuTemplateUrl&&c(f.dropdownMenuTemplateUrl).then(function(e){d=h.$new(),u(e.trim())(d,function(e){var t=e;f.dropdownMenu.replaceWith(t),f.dropdownMenu=t})}),h.focusToggleElement(),a.open(h,t)):(f.dropdownMenuTemplateUrl&&(d&&d.$destroy(),D=angular.element('<ul class="dropdown-menu"></ul>'),f.dropdownMenu.replaceWith(D),f.dropdownMenu=D),a.close(h,t),f.selectedOption=null),angular.isFunction(b)&&b(e,n)})}]);
//# sourceMappingURL=./ne-modules-ui.min.js.map