forked from nodee-apps/angular-modules
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ne-modules-ui.min.js
12 lines (10 loc) · 260 KB
/
ne-modules-ui.min.js
1
2
3
4
5
6
7
8
9
10
11
12
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;t+3>n;n++)for(i=1;e+1>i;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("","![]( "+t+' "")',"","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){function t(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 n(t,n){return function(i){return e[0].execCommand(t,!1,n),i.parent.html()}}var i=["#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"],r=[{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"}],a={undo:n("undo"),redo:n("redo"),bold:n("bold"),italic:n("italic"),strikethrough:n("strikeThrough"),underline:n("underline"),quote:n("quote"),h1:n("formatblock","<h1>"),h2:n("formatblock","<h2>"),h3:n("formatblock","<h3>"),h4:n("formatblock","<h4>"),h5:n("formatblock","<h5>"),h6:n("formatblock","<h6>"),fontSizes:r,fontSize:function(e,t){return n("fontsize",t)(e)},colors:i,color:function(e,t){return n("forecolor",t)(e)},bgColor:function(e,t){return n("hilitecolor",t)(e)},justifyLeft:n("justifyleft"),justifyCenter:n("justifycenter"),justifyRight:n("justifyright"),justifyFull:n("justifyfull"),ol:n("insertorderedlist"),ul:n("insertunorderedlist"),indent:n("indent"),outdent:n("outdent"),unlink:n("unlink"),link:function(e,n,i){if(n||""===n||(n=prompt("Please enter link url","http://")),n){var r=angular.element('<a href="'+n+'">'+(i||n)+"</a>");return t(e,r[0]),e.parent.html()}return""},image:function(e,n){if(n||""===n||(n=prompt("Please enter image url","http://")),n){var i=angular.element('<img src="'+n+'">');return t(e,i[0]),e.parent.html()}return""},table:function(n,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;i>f;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;r>h;h++){for(c=a.createElement("tr"),f=0;i>f;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),t(n,o)}return n.parent.html()},hr:n("inserthorizontalrule")};return this.editor=a,this}]).directive("neContenteditable",["$sce",function(){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){function i(){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 r(e,t){for(;e;){if(t(e))return e;e=e.parentNode}}function a(){function t(){}function n(){var n=this,i=r(angular.element(n)[0],function(e){return"HTML"===e.tagName}).parentNode,a=i.getSelection(),o=a.getRangeAt(0).startOffset,s=a.getRangeAt(0).endOffset,l=angular.element(n);e.$apply(function(){e.neSelectionModel={range:a.getRangeAt(0),parent:l,value:l.html().substring(o,s),inputValue:l.html(),start:o,startElement:a.getRangeAt(0).startContainer,end:s,endElement:a.getRangeAt(0).endContainer,select:function(e,i,r,a){var o=r||this.startElement,s=a||this.endElement;setTimeout(function(){t(n,e,i,o,s)},0)}}})}this.setSelection=t,this.getSelection=n}if("TEXTAREA"!==t[0].nodeName&&"true"!==n.contenteditable)throw new Error('neSelectionModel directive can be used only on <textarea> or contentEditable="true" element');var o="TEXTAREA"===t[0].nodeName?new i:new a;t.on("mouseup keyup",o.getSelection),e.$on("$destroy",function(){t.unbind("mouseup keyup",o.getSelection),e.neSelectionModel=null})}}}]).factory("NeRemarked",[function(){var e=function(e){function t(e,i){if(!i)return e;for(var r in e)"Object"==n(i[r])?t(e[r],i[r]):"undefined"!=typeof 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:[" "," "," "][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&&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,v,y;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]||(v=h.unsup_tags,v.inline.test(i)?i="tinl":v.block2.test(i)?i="tblk":v.block1c.test(i)?i="ctblk":v.block2c.test(i)?(i="ctblk",b=["\n\n",""]):i="rawhtml"),y=new d[i](n,this,this.c.length),b&&(y.wrap=b),(y instanceof d.a&&n.href||y instanceof d.img)&&(y.lnkid=f.length,f.push(y)),this.c.push(y)}}},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.lnInd=this.p&&this.tagr&&this.c[0]instanceof d.blk?4:0),null===this.wrapK&&(this.wrapK=this.tagr&&this.c[0]instanceof d.blk?"\n":"")},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),!t)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(){return i("#",this.tag[1])+" "},function(){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+'"':"","!["+t+"]("+n+e+")")}}),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(){var e,t,n,a,o="";for(e=0;e<this.p.cols.length;e++)t=this.p.cols[e],n="c"==t.a[0]?":":" ",a="r"==t.a[0]||"c"==t.a[0]?":":" ",o+=(0==e&&h.tbl_edges?"|":"")+n+i("-",t.w)+a+(e<this.p.cols.length-1||h.tbl_edges?"|":"");return"\n"+r(o)}]}):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,"|")+")$")};return e}]).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.rules=this.options.tables?c.tables: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.rules=this.options.breaks?u.breaks: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,c,d,p;if(a||"function"==typeof n){a||(a=n,n=null),n=s({},l.defaults,n||{}),o=n.highlight,d=0;try{u=e.lex(t,n)}catch(f){return a(f)}return c=u.length,(p=function(){var e,t;try{e=i.parse(u,n)}catch(r){t=r}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(f){if(f.message+="\nPlease report this to https://github.com/chjj/marked.",(n||l.defaults).silent)return"<p>An error occured:</p><pre>"+r(f.message+"",!0)+"</pre>";throw f}}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){var i=new e(n);return i.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++)s.align[u]=/^ *-+: *$/.test(s.align[u])?"right":/^ *:-+: *$/.test(s.align[u])?"center":/^ *:-+ *$/.test(s.align[u])?"left":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;d>u;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++)s.align[u]=/^ *-+: *$/.test(s.align[u])?"right":/^ *:-+: *$/.test(s.align[u])?"center":/^ *:-+ *$/.test(s.align[u])?"left":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){var r=new t(n,i);return r.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=this.mangle(":"===a[1].charAt(6)?a[1].substring(7):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||!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;i>r;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){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",i=t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">";return i+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){var r=new i(t,n);return r.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,l;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++)a={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="",o=0;o<i.length;o++)r+=this.renderer.tablecell(this.inline.output(i[o]),{header:!1,align:this.token.align[o]});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="",s=this.token.ordered;"list_end"!==this.next().type;)t+=this.tok();return this.renderer.list(t,s);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 l=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text),this.renderer.html(l);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[e]=t()}("klass",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(u){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(u){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)}}}]).service("neFileDropArea",[function(){return this.bind=function(e,t,n){function i(e){e.stopPropagation(),e.preventDefault()}function r(t){i(t),l||(e.addClass("ne-dragover"),l=!0)}function a(t){i(t),e.removeClass("ne-dragover"),l=!1}function o(e){var i,r,o,s;a(e),i=0,r=e.dataTransfer.files,o=r[0],o&&(i+=o.fileSize,n?(s=new FileReader,s.onerror=function(e){alert("Cannot read file: "+e.target.error)},s.onload=function(){return function(e){t(e.target.result)}}(o),s[n](o)):t(r))}var s=e[0],l=!1;return s.addEventListener("dragenter",r,!1),s.addEventListener("dragover",r,!1),s.addEventListener("dragleave",a,!1),s.addEventListener("drop",o,!1),{unbind:function(){l=null,s.removeEventListener("dragenter",r,!1),s.removeEventListener("dragover",r,!1),s.removeEventListener("dragleave",a,!1),s.removeEventListener("drop",o,!1)}}},this}]).directive("neFileDropArea",["neFileDropArea",function(e){return{restrict:"A",link:function(t,n,i){var r,a=i.neFileDropArea?new RegExp(i.neFileDropArea):null;n.on("load",function(){t.setNaturalHeight(this.naturalHeight),t.setNaturalWidth(this.naturalWidth)}),r=e.bind(n,function(e){var n,r=[],o=i.neFileDrop||i.neFilesDrop||i.ondrop;for(n=0;n<e.length;n++)(!a||e[n].type.match(a))&&r.push(e[n]);t.files=r,r.length&&o&&t.$apply(o)}),t.$on("$destroy",r.unbind)}}}]).directive("neCopy",[function(){return{restrict:"A",link:function(e,t,n){function i(){e[o]=angular.copy(a)}function r(){var t,n=e[o];for(t in n)!n.hasOwnProperty(t)||"$"===t[0]&&"$"===t[1]||(a[t]=n[t])}var a=e.$eval(n.neCopy),o=e.alias||n.neCopyAlias||"$copy";e.$rollback=i,e.$commit=r,a.$commit=r,a.$rollback=i,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(){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){return t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("Text",this.id),this.classList.add("dragged"),n.drag&&e.$apply(n.drag),!1}function a(){return this.classList.remove("dragged"),!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",i),o.removeEventListener("dragend",a)}))}}]).directive("droppable",[function(){return function(e,t,n){function i(e){return e.dataTransfer.dropEffect="move",e.preventDefault&&e.preventDefault(),this.classList.add("dragover"),!1}function r(){return this.classList.add("dragover"),!1}function a(){return this.classList.remove("dragover"),!1}function o(t){return t.stopPropagation&&t.stopPropagation(),t.preventDefault(),this.classList.remove("dragover"),n.drop&&e.$apply(n.drop),!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(){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(l=i.dirtyClass||"is-dirty","ng-dirty"===l)throw new Error('dirtyClass cannot be equal to "ng-dirty", it is angular reserved class name');if(u=(i.gridUpdateBlur||"").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 t,S=[{},n.defaults];for(t=0;t<arguments.length;t++)S.push(arguments[t]);return e=angular.merge.apply(angular,S),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=angular.merge({},e.query||{},{$page:this.page,$limit:this.limit},this.defaultQuery),this.sort=angular.merge({},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=v,this.getFocusedItem=y,this.getSelectedItems=D,this.clearSelection=C,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){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),n.prevDisabled=t.page<=1?!0:!t.prev,n.nextDisabled=t.spage>=n.pagesCount?!0:!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){var t=this;return(!t.interceptLoad||t.interceptLoad&&t.interceptLoad(t.query)!==!1)&&(t.disabled=!0,t.getResourceMethod("find")(t.query,function(n,i){"function"==typeof t.onLoad&&t.onLoad(n,i),t.fillItems(n,i),e&&e(),t.disabled=!1})),t}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),0>=r&&(r=1),i.page=r,i.updateQuery(n),i.autoLoad&&!i.silentMode?i.load(t):(t&&t(),i)}function p(e,t){var n=this;return n.query=angular.merge({},n.defaultQuery||{},e||{}),n.setPage(n.query.$page||"first",t,e),n}function f(e){var t,n=this;return e=e||{},n.page=e.$page||n.page,n.limit=e.$limit||n.limit,n.sort=e.$sort||n.sort,n.page&&("number"!=typeof n.page||n.page<=0)&&(n.page=1),!n.limit||n.limit<0?n.limit=n.defaultLimit:n.limit>n.maxLimit&&(n.limit=n.maxLimit),t=angular.merge({},e,{$limit:n.limit,$sort:{},$page:n.page}),n.sort&&(t.$sort=n.sort),t.$sort=angular.merge({},n.defaultSort||{},t.$sort||{}),0===Object.keys(t.$sort).length&&delete t.$sort,delete n.query.$page,delete n.query.$sort,delete n.query.$limit,n.query=angular.merge(t,n.query||{}),n.onQuery&&!n.silentMode&&n.onQuery(n.query),n}function h(e,t){var n=this;return n.getResourceMethod("create",e)(e,function(){n.setPage("first",t),"function"==typeof n.onCreate&&n.onCreate(e),n.autoLoad||n.load(t)}),n}function g(e,t){var n=this;return n.getResourceMethod("update",e)(e,function(i){var r=n.items.indexOf(e),a=angular.copy(e);n.items[r]=angular.extend(n.items[r],i),n.onUpdate&&n.onUpdate(n.items[r],a),t&&t(n.items[r])}),n}function m(e,n){var i=this,r=i.idKey,a={};return a[r]=t.deepGet(e,r),i.getResourceMethod("find",e)(a,function(t){var r=i.items.indexOf(e);i.items[r]=angular.extend(i.items[r],t[0]),n&&n(i.items[r])}),i}function b(e,t){var n=this;return n.getResourceMethod("remove",e)(e,function(){n.items.splice(n.items.indexOf(e),1),n.onRemove&&n.onRemove(e),t&&t(e)}),n}function v(e){var t,n=this;if(e.$focused===!0)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 y(){var e,t=this;for(e=0;e<t.items.length;e++)if(t.items[e].$focused===!0)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 C(){var e,t=this;for(e=0;e<t.items.length;e++)delete t.items[e].$selected;return t}function D(){var e,t=this,n=[];for(e=0;e<t.items.length;e++)t.items[e].$selected===!0&&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&&.25>n?(3*Math.random()+3)/100:n>=.25&&.65>n?3*Math.random()/100:n>=.65&&.9>n?2*Math.random()/100:n>=.9&&.99>n?.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(){for(var t=0;t<r.statusListeners.length;t++)!function(t){e(function(){r.statusListeners[t](r.status)},0,!1)}(t)},setStatus:function(a){if(r.statusTimeout&&e.cancel(r.statusTimeout),!(0>a)){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>0&&r.status<99?r.statusTimeout=e(function(){r.setStatus(i(r.status))},t,!1):r.status>=100&&(o-r.lastStart>t?r.statusTimeout=e(function(){r.setStatus(0),r.fireStatusListeners()},n,!1):(r.status=0,r.prevStatus=0))}},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||e.cache===!1?(e.cached=!1,!1):(n=e.cache===!0?t.get("$http"):e.cache,i=void 0!==n?void 0!==n.get(e.url):!1,void 0!==e.cached&&i!==e.cached?e.cached:(e.cached=i,i)):!1}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(){n.setPath(t.path())})}]).filter("neTranslate",["neLocal",function(e){return function(t){return e.translate(t)}}]).filter("translate",["neLocal",function(e){return function(t){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].selected=a.items[r]===e?!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 a(e,t){var n,i,r=this,o=(t?t.children:r.items)||[];for(i=0;i<o.length;i++)if(o[i].id===e)return o[i];for(i=0;i<o.length;i++)if(o[i].children&&(n=a(e,o[i])))return n},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,e.backdrop===!1&&(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?!0:this.showAfterCreate,this.removeOnClose=void 0===this.removeOnClose?!0:this.removeOnClose,this.destroyOnClose=void 0===this.destroyOnClose?!0:this.destroyOnClose,this.html=this.html?t.trustAsHtml(this.html):"",this.include=this.include||this.templateUrl||this.bodyTemplateUrl,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",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-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]&&(n=i[1],t=i[0],e="")}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=0>i?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(),o!==!1&&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-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> <table style="width:100%;word-wrap:break-word" class="table-fixed"> <tr> <td style="width:15%"> <i class="{{n.icon}}"></i> </td> <td style="padding:0px 5px"> <div ng-if="!n.include" style="overflow:auto;max-height:200px"> <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> <td style="width:20px"> <a href="" ng-click="n.close()"><i class="fa fa-fw fa-times"></i></a> </td> </tr> </table> </div> <div class="alert alert-default" ng-show="loading" ng-controller="NeLoadingCtrl"> <table style="width:100%"> <tr> <td style="width:15%"> <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||x.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&&(f=c,c=arguments[1]||{},d=2),"object"!=typeof c&&"function"!=typeof c&&(c={});p>d;d++){if(e=arguments[d],i(e,l))return c=e;if(null!==e)for(n in e)r=c[n],a=e[n],i(a,l)?c[n]=a:c!==a&&(f&&a&&(t(a)||(o=Array.isArray(a)))?(o?(o=!1,s=r&&Array.isArray(r)?r:[]):s=r&&t(r)?r:{},c[n]=u.extend(f,s,a)):void 0!==a&&(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&&e!==!1&&0!==e||"function"==typeof e)return void 0;if("this"===t)return e;for(n=t.split("."),i=e,r=0;r<n.length;r++){if(!i[n[r]]&&i[n[r]]!==!1&&0!==i[n[r]])return void 0;i=i[n[r]]}return"function"==typeof i?void 0: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]],!e)return;delete e[n[n.length-1]]}}function l(e,t,n){return 2===arguments.length&&(n=arguments[1],t=1),"asc"===t&&(t=1),"desc"===t&&(t=-1),n.sort(function(n,i){return n[e]>i[e]?t:n[e]<i[e]?-t: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){return"$"===e[0]&&"$"===e[1]?!0:void 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):!1;if(d(e))return d(t)?e.toString()==t.toString():!1;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;i>r;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)?!0: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?C:k)))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?C:k))?(r=Date.parse(i[0]),isNaN(r)||(e[a]=new Date(r))):"object"==typeof n&&b(n,t);return e}function v(e,t){var n;try{n=JSON.parse(e)}catch(i){}return b(n,t)}function y(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&&y(i,t))}function $(e){return"[object Object]"===Object.prototype.toString.call(e)}function w(e){return Array.isArray(e)}var x=Object.prototype.hasOwnProperty,k=/^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/,C=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/;return{isObject:$,isArray:w,extendReservedInstances:[File,FileList,Blob],extend:n,setObjValue:a,deepSet:a,getObjValue:o,deepGet:o,deepReplace:r,deepRemove:s,deepEquals:g,deepEqual:g,objectToArray:u,arrayToObject:c,dateStringsToDates:b,fromJson:v,fromJSON:v,removePrefixedProps:y,debounce:m}}]),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" uib-dropdown-toggle style="width:142px;height:30px"> <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" 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:220px;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()"> {{field.name}} </a> </li> </ul> </div> <div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <button ng-disabled="query.field.disableOperator" class="btn btn-default btn-sm" uib-dropdown-toggle style="width:120px;height:30px"> <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"> <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}}" 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()"> <span>{{operator | translate}}</span> </a> </li> </ul> </div> <div class="visible-inline-block" ne-query-value="query"></div> <div class="btn-group btn-group-xs"> <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"> <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-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-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-model="query.value" ng-change="onChange()" style="width:142px;"/>'),e.put("neQuery/list.html",'<select class="input-sm" 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-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-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-model="query.suggestion" ng-change="query.field.onlySuggestedValues ? query.value=null : query.value=query.suggestion;query.field.createSuggestions(query, query.suggestion);onChange()"> <ul ng-if="query.suggestions.length" class="dropdown-menu" style="max-height:220px;overflow:auto"> <li ng-repeat="value in query.suggestions" ng-class="{\'active\':(value===query.value)}"> <a href="" ng-click="query.value=value;query.suggestion=value;onChange()"> {{value}} </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" class="btn btn-sm btn-default" uib-dropdown-toggle style="width:142px;height:30px"> <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" 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:220px;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()"> {{field.name}} </a> </li> </ul> </div> <div class="btn-group btn-group-xs"> <button class="btn btn-default" 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-click="query.addSort($index);onChange()"><i class="fa fa-fw fa-plus"></i></button> <button class="btn btn-default" 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" 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(){}}}]).directive("neQuerySearch",[function(){return{restrict:"A",template:'<div class="pull-left" ne-query="query" ne-query-change="onChange()"></div><div class="pull-left hidden-xs" style="width:20px"> </div><div class="pull-left" ne-query-sort="query" ne-query-sort-change="onChange()"></div><button class="btn btn-primary btn-sm" 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"},link:function(e,t,n){var i=!!n.neQuerySearchEmpty;e.onChange=function(){e.query.setDirty(),i&&(e.querySearchEmpty=e.query.isEmpty()),e.onQuerySearchChange&&e.onQuerySearchChange()},i&&(e.querySearchEmpty=e.query.isEmpty())}}}]).directive("neQuery",[function(){return{restrict:"A",templateUrl:"neQuery/query.html",scope:{query:"=neQuery",onQueryChange:"&neQueryChange",queryEmpty:"=neQueryEmpty"},link:function(e,t,n){var i=!!n.neQueryEmpty;e.onChange=function(){e.query.setDirty(),i&&(e.queryEmpty=e.query.isQueryEmpty()),e.onQueryChange&&e.onQueryChange()},i&&(e.queryEmpty=e.query.isQueryEmpty())}}}]).directive("neQuerySort",[function(){return{restrict:"A",templateUrl:"neQuery/sort.html",scope:{query:"=neQuerySort",onQuerySortChange:"&neQuerySortChange",querySortEmpty:"=neQuerySortEmpty"},link:function(e,t,n){var i=!!n.neQuerySortEmpty;e.onChange=function(){e.query.setDirty(),i&&(e.querySortEmpty=e.query.isSortEmpty()),e.onQuerySortChange&&e.onQuerySortChange()},i&&(e.querySortEmpty=e.query.isSortEmpty())}}}]).factory("NeQuery",["neLocal","neObject",function(e,t){function n(e){return(e||"").replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function i(e){return(e||"").replace(/\\(?!\\)/g,"")}function r(e){var t,n,i;if(!e)return{};for(t=this,n={},n[L]={},i=0;i<e.length;i++)n[L][e[i].key]=e[i].direction;return n}function a(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 o(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 s(e,n){var i,a,l,u,c,d,p,f,h,g={};if(g=t.extend(!0,g,e.options),e.length){for(a=[],l=0,u=0;u<e.length;u++)u>0&&"OR"===e[u].logical&&l++,a[l]=a[l]||[],a[l].push(e[u]);if(0===l)for(d=!1,p=a[l],u=0;u<p.length;u++){c=s(p[u],!0);for(f in c)if(void 0!==g[f]&&null!==g[f])if(p[u].field.merge)g=p[u].field.merge(f,c,g);else{if(o(g[f],c[f])){delete g[f],g=j.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,j.OR.build(a))}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)||(i=j[e.operator].build("function"==typeof e.field.onBuild?e.field.onBuild(i):i),void 0!==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,r.call(e,e.sortBy))),g}function l(e,t){function n(e,t,n){r=e.append(n),r.type=R[t.typeName],r.value=t.value,r.setFieldByName(t.fieldName,!0),r.operator=t.operator}var i,r,o,s,u,c,d,p,f,h=this,g=[];for(o in e)-1===["AND","OR","VALUE"].indexOf(o)&&(o===L?a.call(h,e[o]):j[o]||o[0]!==N&&-1===I.indexOf(o)?g.push(o):h.options[o]=e[o]);for(s=0;s<g.length;s++){for(o=g[s],u=null,c=0;c<h.fields.length;c++)if((h.fields[c].field===o||h.fields[c].match&&o.match(h.fields[c].match))&&h.fields[c].parse){u=h.fields[c].parse;break}if(d={},u&&(d=u(o,e[o],t),d&&d.key?(o=d.key,e[o]=d.value):d&&(e[o]=d),Array.isArray(e[o])))for(p in e[o])l.call(h,e[o][p].value,e[o][p].logical||t);else if(i=(j[o]||j.VALUE).parse(o,e[o])){if(Array.isArray(i))for(f=0;f<i.length;f++)n(h,i[f],0===s&&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===s?n(h,i,t):n(h,i,"AND");d.key&&delete e[d.key]}else d.key&&delete e[d.key]}return h}function u(e){var t,n,i;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&&(n=e.match(F),n&&(i=Date.parse(n[0])),isNaN(i)?t="string":(e=new Date(i),t=0===e.getHours()&&0===e.getMinutes()&&0===e.getSeconds()&&0===e.getMilliseconds()?"date":"datetime")),{type:t,value:e}}function c(e){var t,n=[];return n.options={},n.sortBy=[],n.build=function(e){return s.call(this,this,e)},n.parse=function(e,t){return l.call(this,e,t)},n.fill=function(e){return this.splice(0,this.length),this.parse(e),this.parent&&this.parent()||0!==this.length||this.append("AND"),n},n.isEmpty=b,n.isQueryEmpty=v,n.isSortEmpty=y,n.isDirty=w,n.setDirty=$,n.clear=m,n.newQuery=c,n.templates=P,n.fields=this.fields,n.types=this.types,n.onlyPredefinedFields=this.onlyPredefinedFields,n.logical=e||"AND",n.append=d,n.next=f,n.levelDown=p,n.remove=h,n.reset=g,n.setFieldByName=x,n.setField=k,n.setOperator=C,n.setType=D,n.addSort=S,n.removeSort=O,n.toggleSortDirection=M,n.setSortByName=T,n.setSortField=E,n.parent=n.getParent=function(){return t},n.setParent=function(e){t=e},n.reset(),n}function d(e){var t=this.newQuery(e);return t.setParent(this),this.push(t),t}function p(){var e,t,n=this;if(n.parent()&&!(n.parent().length<=1))return e=n.parent().indexOf(n),t=n.next(n.logical),n.parent().splice(e,1),n.logical="AND",n.setParent(t),t.push(n),t}function f(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 h(){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 g(){var e=this;if(e.fields.length){if(e.field=e.fields[0],e.type=R[e.field.type],!e.type)throw new Error('Field type "'+e.field.type+'" not recognized, please choose one from "'+Object.keys(R).join(", ")+'"');e.fieldName=e.field.name,e.operator=e.type.operators[e.field.operatorIndex||0]}else e.field=e.field||{},e.type=R[e.type||e.types[0]],e.operator=e.type.operators[0];e.value=null}function m(){return this.splice(0,this.length),this.setDirty(!1),this}function b(e){return e=e||this.build(),this.isQueryEmpty(e)&&this.isSortEmpty(e)}function v(e){e=e||this.build();var t=Object.keys(e).length;return 0===t||1===t&&e.hasOwnProperty("$sort")}function y(e){return e=e||this.build(),0===Object.keys(e.$sort||{}).length}function $(e){return this.$dirty=e=!0,this.$touched=e=!0,this}function w(){return this.$dirty}function x(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 k(e,t){if(this.type.name!==e.type){if(this.type=R[e.type],!this.type)throw new Error('Field type "'+e.type+'" not recognized, please choose one from "'+Object.keys(R).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 C(e){this.type.templates&&this.type.templates[this.operator]!==this.type.templates[e]&&(this.value=null),this.operator=e}function D(e){this.type=R[e],this.operator=this.type.operators[0],this.value=null}function S(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 O(e){this.sortBy.splice(isNaN(e)?this.sortBy.length-1:e,1)}function M(e){e=e||0,this.sortBy[e].direction=1===this.sortBy[e].direction?-1:1}function T(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 E(e,t){t=t||0,this.sortBy[t].fieldName=e.name,this.sortBy[t].name=e.name,this.sortBy[t].key=e.key}function _(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 q(n,i){var r,a,o,s,l,u,d,p,f={};for(1===arguments.length&&(Array.isArray(arguments[0])?(i=arguments[0],n=null):angular.isObject(arguments[0])&&(f=arguments[0],i=f.fields,n=f.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={},s=null,"string"==typeof i[r].behaviour?a=i[r].behaviour:(a=Object.keys(i[r].behaviour)[0],o=i[r].behaviour[a]),l=U[a])){u=l.call(i[r],o);for(d in u)i[r][d]=u[d]}i[r].type&&(i[r].disableType=!0),i[r].type=i[r].type||i[r].defaultType||A,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=P.list),i[r].emptyValues=i[r].emptyValues||i[r].ignoreValues,i[r].isEmptyValue=i[r].isEmptyValue||function(e){return null===e||void 0===e?!0:this.emptyValues||this.type.emptyValues?(this.emptyValues||this.type.emptyValues).indexOf(e)>-1:!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||P.suggestions,i[r].createSuggestions=function(e){var n=e.suggestionMinLength||e.suggestionMinSearchLength||3;return t.debounce(function(t,i){i=i||"",i.length>=n&&e.loadSuggestions(i,function(e){t.suggestions=e})},e.suggestionDebounce>=0?e.suggestionDebounce:350)}(i[r]))}return i.filterByName=_,p=c.call({fields:i,types:Object.keys(R)},"AND"),p.name=n,p.onlyPredefinedFields=f.onlyPredefinedFields,p.append("AND"),p}var P={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"},L="$sort",I=["$limit","$page","$skip","$sort"],N="$",A="string",R={string:{name:"string",operators:["$regex_exact","$regex_contains","$regex_begins","$regex_ends","$in","$ne","$regex_ncontains","$regex_nbegins","$regex_nends","$nin","$regex"],template:P.string},number:{name:"number",operators:["$eq","$lt","$lte","$gt","$gte"],template:P.number},"boolean":{name:"boolean",operators:["$eq"],template:P["boolean"],onBuild:function(e){return-1!==[!0,"true","True",1,"yes","Yes"].indexOf(e)?!0:!1}},date:{name:"date",operators:["$eq","$lt","$lte","$gt","$gte"],template:P.date},datetime:{name:"datetime",operators:["$eq","$lt","$lte","$gt","$gte"],template:P.datetime},object:{name:"object",operators:["$exists"],template:P["boolean"]},array:{name:"array",operators:["$size"],template:P.string,templates:{$size:P.number}}},F=/^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/,j={AND:{build:function(e){var t,n,i=[];for(n=0;n<(e.length||0);n++)t=s(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=s(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=u(t),o=a.type;if(t=a.value,"[object Object]"===Object.prototype.toString.call(t)){for(i in t)n=(j[i]||j.VALUE).parse(e,t[i]),n&&r.push(n);return r}return o?{fieldName:e,typeName:o,operator:"string"===o?"$regex_exact":"$eq",value:t}:void 0}},$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=u(t),i=n.type;return t=n.value,i?{fieldName:e,typeName:i,operator:"string"===i?"$regex_exact":"$eq",value:t}:void 0}},$exists:{build:function(e){return{$exists:e}},parse:function(e,t){return"boolean"==typeof t?{fieldName:e,typeName:"object",operator:"$exists",value:t}:void 0}},$size:{build:function(e){return{$size:e}},parse:function(e,t){return"number"==typeof t?{fieldName:e,typeName:"array",operator:"$size",value:t}:void 0}},$lt:{build:function(e){return{$lt:e}},parse:function(e,t){var n=u(t),i=n.type;return t=n.value,"number"===i||"date"===i||"datetime"===i?{fieldName:e,typeName:i,operator:"$lt",value:t}:void 0}},$lte:{build:function(e){return{$lte:e}},parse:function(e,t){var n=u(t),i=n.type;return t=n.value,"number"===i||"date"===i||"datetime"===i?{fieldName:e,typeName:i,operator:"$lte",value:t}:void 0}},$gt:{build:function(e){return{$gt:e}},parse:function(e,t){var n=u(t),i=n.type;return t=n.value,"number"===i||"date"===i||"datetime"===i?{fieldName:e,typeName:i,operator:"$gt",value:t}:void 0}},$gte:{build:function(e){return{$gte:e}},parse:function(e,t){var n=u(t),i=n.type;return t=n.value,"number"===i||"date"===i||"datetime"===i?{fieldName:e,typeName:i,operator:"$gte",value:t}:void 0}},$regex:{build:function(e){return{$regex:e}},parse:function(e,t){var n,i,r,a;for(a=0;a<R.string.operators.length;a++)if(i=R.string.operators[a],j[i]&&j[i].check&&void 0!==(r=j[i].check(t))){n=i,t=r;break}return{fieldName:e,typeName:"string",operator:n||"$regex",value:t}}},$regex_exact:{build:function(e){return e}},$regex_contains:{build:function(e){return e=n(e),{$regex:".*"+e+".*"}},check:function(e){return e=(e.match(/^\.\*(.*)\.\*$/)||[])[1],void 0===e?void 0:i(e)}},$regex_ncontains:{build:function(e){return e=e=n(e),{$regex:"^((?!"+e+").)*$"}},check:function(e){return e=(e.match(/^\^\(\(\?\!(.*)\)\.\)\*\$$/)||[])[1],void 0===e?void 0:i(e)}},$regex_begins:{build:function(e){return e=n(e),{$regex:"^"+e+".*"}},check:function(e){return e=(e.match(/^\^(.*)\.\*$/)||[])[1],void 0===e?void 0:i(e)}},$regex_nbegins:{build:function(e){return e=n(e),{$regex:"^(?!"+e+").*$"}},check:function(e){return e=(e.match(/^\^\(\?\!(.*)\)\.\*\$$/)||[])[1],void 0===e?void 0:i(e)}},$regex_ends:{build:function(e){return e=n(e),{$regex:".*"+e+"$"}},check:function(e){return e=(e.match(/^\.\*(.*)\$$/)||[])[1],void 0===e?void 0:i(e)}},$regex_nends:{build:function(e){return e=n(e),{$regex:"^(?!.*"+e+"$)"}},check:function(e){return e=(e.match(/^\^\(\?\!\.\*(.*)\$\)$/)||[])[1],void 0===e?void 0:i(e)}},$ne:{build:function(e){return{$ne:e}},parse:function(e,t){var n=u(t),i=n.type;return t=n.value,i?{fieldName:e,typeName:i,operator:"$ne",value:t}:void 0}},$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){return Array.isArray(t)?{fieldName:e,typeName:"string",operator:"$in",value:t.join(", ")}:void 0}},$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){return Array.isArray(t)?{fieldName:e,typeName:"string",operator:"$nin",value:t.join(", ")}:void 0}}},U={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 q.templates=P,q.fieldBehaviours=U,q}]).factory("neQueryTests",["NeQuery","neObject",function(e,t){return function(){function n(e,n,r){var a=i.fill(n).build(),o=t.deepEqual(r||n,a,function(e){return"$sort"===e});o?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,t){if(t)return e.replace(/\/$/,"");var n="";return e.match(/^http:/)&&(n="http:/",e=e.substring(6)),e.match(/^https:/)&&(n="https:/",e=e.substring(7)),e.match(/^\/\//)&&(n="/",e=e.substring(1)),e=("/"+e+"/").replace(/\/\/+/g,"/"),n+e.substring(0,e.length-1)}function c(e){return!!e.match(/^http:/)||!!e.match(/^https:/)||!!e.match(/^\/\//)}function d(e){var t,n=(e||"").match(/\{([^\{\}]+)/g)||[];for(t=0;t<n.length;t++)n[t]=n[t].substring(1);return n}function p(e){return void 0===e||null===e?"":JSON.stringify(e).replace(/^"/,"").replace(/"$/,"")}function f(e,t,i,r){var a,o,s,d,f,h=this;for(t=u(t||"",!0),a=c(t)?t:e+("/"===t[0]||""===e?"":"/")+t,o=h.options.commands[r].urlParams,f=0;f<o.length;f++)d=n.deepGet(i,o[f]),s="_command"===o[f]?r:void 0===d?"":d,"string"==typeof s&&(s=encodeURIComponent(s).replace(/\//g,"%2F").replace(/\?/g,"%3F").replace(/#/g,"%23")),a=l(a,"{"+o[f]+"}",p(s));return a=u(a,!0),a.indexOf("?")>-1?a.replace(/([^\/])\?/,"$1/?"):a+"/"}function h(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+"="+p(e[n][i]);else void 0!==e[n]&&(a+="&"+n+"="+p(e[n]));return a?"?"+a.substring(1):""}function g(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&&(o=n.deepGet(r,c),void 0!==o&&(r.id=o)),r}function m(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(g(e,t,null,u[a]));return r}function b(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 v(e,t,i,r){var a,o,s=e.commands[t],l=s.additionalDataKeys||e.additionalDataKeys;for(o in l)a=n.deepGet(i,o),void 0!==a&&n.deepSet(r,l[o],a);return r}function y(e){var t,n=[];for(t=1;t<arguments.length;t++)n.push(arguments[t]);for(t=0;t<e.length;t++)if("function"==typeof e[t]&&e[t].apply(this,n)===!0)return}function $(e,t,n,i){return function(r){var a,o=(r.config,t.commands[n]),s=D(r.data,o.transformResponse),l=r.status,u=(r.headers,o.isList);u?(a=m(t,n,s)||[],a.pagination=b(t,n,s,e)):a=g(t,n,s),a=v(t,n,s,a),y([o.onData,t.onData],a,(a||{}).pagination,s,l,u,n),y(i,a,(a||{}).pagination,s,l)}}function w(e,t,i,r){return function(e){var a=(e.config,t.commands[i]),o=D(e.data,a.transformResponse),s=e.status,l=e.headers,u=r.concat([(a.responseErrors||{})[s]||(a.responseErrors||{})["default"],t.responseErrors[s]||t.responseErrors["default"]]),c=a.errorKey||t.errorKey,d=n.deepGet(o,c);y(u,d,s,l)}}function x(e,n,i,a,o,s){function l(t){var i,s,l,u;if(t=t||{},i=t.getResponseHeader("content-type"),s=t.responseText,l=t.status?parseInt(t.status):0,i&&"application/json"===i.substring(0,16))try{s=JSON.parse(t.responseText)}catch(c){l=0}u={data:s,status:l,headers:t.headers,httpOpts:{}},f("removeEventListener"),v||r.reqEnded(),l>=200&&299>=l?$(n,g,e,a)(u):w(n,g,e,o)(u)}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(s,Math.ceil(100*e.loaded/e.total)):y(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,i.data),v=i.ignoreLoading,x=new FormData;for(h in b)b[h]instanceof Blob||b[h]instanceof File?x.append(h,b[h],b[h].name):x.append(h,b[h]);t(function(){f("addEventListener"),v||r.reqStarted(),O.open("POST",m,!0),O.send(x)})}function k(){var e,t,n,i,r=[{},k.defaults];for(e=0;e<arguments.length;e++)r.push(arguments[e]);t=angular.merge.apply(angular,r),t.baseUrl=u(t.baseUrl,!0),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 C(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,t){var i,r;t=t||{},i=e,"[object Object]"===Object.prototype.toString.call(e)&&(i=n.extend(!0,{},e)),Array.isArray(e)&&(i=n.extend(!0,[],e));for(r in t)k.dataTransformators[r]&&k.dataTransformators[r](i,t[r]);return i}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){var t,n=e;if(angular.isObject(e)){n="";for(t in e)n+=t+": "+e[t]+", "}i.error("Validation Failed",n)},403:function(){i.error("Access Denied","Try logout and login again, please")},404:function(){i.error("Document or his version not found","Try refresh page, please")},409:function(e){i.error(e)},"default":function(){i.error("Connection Failed","Try later, please")}},defaultQuery:{},urlBuilder:f,queryStringBuilder:h,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(t){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(n){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(i){}throw new Error("This browser does not support XMLHttpRequest.")}();return k.defaults=S,k.define=k.create=function(e){return new k(e)},k.dataTransformators={dateStringsToDates:a,removePrefixedProps:o},k.prototype.command=function(t,i,r,a,o,s){var l,u,c,p,f,h,g,m,b,v,y,k,S,O,M,T,E,_,q,P,L,I,N,A,R,F=this;if(!F.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=F.options,c=u.commands[t],p=("string"==typeof c.baseUrl?c.baseUrl:u.baseUrl)||"",f=(c.method||"GET").toLowerCase(),h="boolean"==typeof c.body?c.body:["options","post","post-multipart","upload","put","delete"].indexOf(f)>-1,g=c.headers||u.headers,m=("string"==typeof c.url?c.url:u.url)||"",b=c.urlBuilder||u.urlBuilder,v=c.urlEndSlash||u.urlEndSlash,y=c.queryStringBuilder||u.queryStringBuilder,k=c.defaultQuery||u.defaultQuery,S=void 0!==c.ignoreLoading?c.ignoreLoading:u.ignoreLoading,O=c.transformRequest,M=c.idKey||u.idKey,T=c.queryPageKey||u.queryPageKey,E=c.queryLimitKey||u.queryLimitKey,_=c.querySortKey||u.querySortKey,u.commands[t].urlParams=c.urlParams||d(m),null===r&&h&&angular.isObject(i)?(r=arguments[1],i=null,l={}):(l={},l=!i||"string"!=typeof i&&"number"!=typeof i?i:n.deepSet(l,M,i),l=angular.merge({},k,l||{})),0===l.$page)throw new Error("NeRestResource: query.$page is equal to zero, must be greater");l=C(l,T,E,_,n),r&&(r=C(r,T,E,_,n)),q=[a,c.onSuccess,u.onSuccess],P=[o,c.onError,u.onError],L=[s,c.onProgress,u.onProgress],I=angular.merge({},r||{},l||{}),N=b.call(F,p,m,I,t),v&&-1===N.indexOf("?")&&(N+="/"),A=y.call(F,l,t),N.indexOf("?")>-1&&0===A.indexOf("?")&&(A="&"+A.substring(1)),R={url:N+A,method:f,data:D(r,O),headers:g,ignoreLoading:S},"post-multipart"===f||"upload"===f?x.call(F,t,l,R,q,P,L):e(R).then($(l,u,t,q),w(l,u,t,P))},k}]),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,0>i&&(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(a){}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){var n,i=this;(i.autoUpdate||i.sync)&&(n=i.builder(e.getCurrentState()),t.search(i.prefix,n))}},c={prefix:"appState",path:"/",secure:!1,autoUpdate:!1,autoFill:!1,sync:!1,init:function(){},destroy:function(){},unbind:function(){},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){var t=this;(t.autoUpdate||t.sync)&&i.putObject(t.prefix,e.getCurrentState(),{domain:t.domain,expires:t.expires,path:t.path,secure:t.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),n>=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 0>t?{}: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(){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(o=n.dirtyClass||"is-dirty","ng-dirty"===o)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){e.tree.itemTemplate=e.tree.itemTemplate||"neTree/item.html"}}}]).directive("neTreeItemPagination",[function(){return{restrict:"EA",templateUrl:"neTree/tree-item-pagination.html",link:function(){}}}]).factory("NeTree",["$timeout","neObject",function(e,t){function n(e){var t,p=[{},n.defaults];for(t=0;t<arguments.length;t++)p.push(arguments[t]);return e=angular.merge.apply(angular,p),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=angular.merge({},{$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=y,this.setQuerySilent=i("setQuery"),this.setFilter=y,this.setFilterSilent=i("setQuery"),this.setPage=v,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=D,this.copyItem=C,this.updateItem=S,this.removeItem=T,this.moveItem=M,this.selectItem=q,this.focusItem=E,this.getFocusedItem=_,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){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||t(e,n.getParentOf(e))!==!0)return function i(e,t,n){var r;for(e=e||[],r=0;r<e.length;r++)if(n(e[r],t)===!0)return;for(r=0;r<e.length;r++)e[r].$children&&e[r].$children.length>0&&i(e[r].$children,e[r],n)}(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):!1}),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),g>-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,t,n){var i,r,a,o=this;return 2===arguments.length&&"function"==typeof arguments[1]?(n=arguments[1],t=!1):1===arguments.length&&"function"==typeof arguments[0]&&(n=arguments[0],t=!1,e=null),i=e?o.getChildrenOf(e):o.items,r=e?o.getChildrenCountOf(e):o.items.length,!e||!i||i.length<r||t?(!o.interceptLoad||o.interceptLoad&&o.interceptLoad((e||o).$query,e)!==!1)&&(a=e?e.$query||{}:o.$query||{},a=angular.merge({},{$page:1,$limit:o.$limit||o.defaultLimit},o.defaultQuery,a,o.getChildrenQuery(e)),a.$sort&&(a.$sort=angular.merge({},o.defaultSort,a.$sort)),e?e.$query=a:delete a.$limit,o.disabled=!0,o.getResourceMethod("find",e)(a,function(i,r){o.fillItems(e,i,r,t),n&&n(i),o.disabled=!1})):n&&n(o.items),o}function v(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),0>=a&&(a=1),e.$page=a,r.updateQuery(e,i),r.autoLoad&&!r.silentMode?r.load(e,!0,n):(n&&n(),r)}function y(e,t,n){2===arguments.length&&(n=arguments[1],t=arguments[0],e=null),e=e||i;var i=this;return e.$query=angular.merge({},i.defaultQuery||{},t||{}),i.setPage(e,e.$query.$page||"first",n,t),i}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,t){var n,i;return 1===arguments.length&&(t=arguments[0],e=null),n=this,t=t||{},e=e||n,e.$page=t.$page||e.$page,e.$limit=t.$limit||e.$limit||n.$limit,e.$sort=t.$sort||e.$sort,e.$page&&("number"!=typeof e.$page||e.$page<=0)&&(e.$page=1),!e.$limit||e.$limit<0?e.$limit=n.defaultLimit:e.$limit>n.maxLimit&&(e.$limit=n.maxLimit),i=angular.merge({},t,{$limit:e.$limit,$sort:{},$page:e.$page}),e.$sort&&(i.$sort=e.$sort),i.$sort=angular.merge({},n.defaultSort||{},e.$sort||{}),0===Object.keys(i.$sort).length&&delete i.$sort,e.$query&&(delete e.$query.$page,delete e.$query.$sort,delete e.$query.$limit),e.$query=angular.merge(i,e.$query||{}),n.onQuery&&!n.silentMode&&n.onQuery(e.$query,e),n}function C(e,n,i){var r=angular.copy(e);return t.deepRemove(r,this.idKey),this.createItem(this.getParentOf(e),r,n,i)}function D(e,n,i,r){var a=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),a.maintainReferences(e,n),a.getResourceMethod("create",n,e)(n,function(o){n=angular.merge(n,o),i&&e&&a.maintainReferences(e,n),i?e&&e.$children?(e.$expanded=!0,a.appendItems(e,o),"function"==typeof r&&r(o),"function"==typeof a.onCreate&&a.onCreate(o)):a.load(e,function(n){e&&(e.$expanded=!0);for(var i=0;i<n.length;i++)if(t.deepGet(n[i],a.idKey)===t.deepGet(o,a.idKey)){"function"==typeof r&&r(n[i]),"function"==typeof a.onCreate&&a.onCreate(n[i]);break}}):("function"==typeof r&&r(n),"function"==typeof a.onCreate&&a.onCreate(n))}),a}function S(e,t){return this.getResourceMethod("update",e)(e,function(n){e=angular.merge(e,n),t&&t(e)}),this}function O(e,n){var i=this.idKey,r={};return r[i]=t.deepGet(e,i),this.getResourceMethod("find",e)(r,function(t){var i=e.$expanded;e=t,i?b(e,function(){n&&n(e)}):n&&n(e)}),this}function M(){}function T(e,t){var n=this;n.getResourceMethod("remove",e)(e,function(){n.maintainReferences(n.getParentOf(e),e,!0);var i=n.getParentOf(e);i?i.$children.splice(i.$children.indexOf(e),1):n.items.splice(n.items.indexOf(e),1),"function"==typeof t&&t()})}function E(e,t){var n=this,i=e.$focused?!0:!1;return n.focusedItem&&n.focusedItem!==e&&(n.focusedItem.$focused=!1),e.$focused=t?!e.$focused:!0,n.focusedItem=t&&i?null:e,"function"==typeof n.onFocus&&n.onFocus(e),n}function _(){return this.focusedItem}function q(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),n>=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=[],h=e.module("oc.lazyLoad",["ng"]);h.provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(n,h,g,m,b,v){function y(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),y(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)?D(t.toString()):e.isObject(t)?D(C(t)):e.isDefined(t)&&null!==t?D(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;o>a;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;f>p;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(n){if(/No module/.test(n)||n.message.indexOf("$injector:nomod")>-1)return!1}}var C,D,S={},O={$controllerProvider:n,$compileProvider:g,$filterProvider:m,$provide:h,$injector:b,$animateProvider:v},M=!1,T=!1,E=[],_={};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(":","\\:"),"undefined"!=typeof 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 d(t){if(-1===a.indexOf(t)){a.push(t);var n=e.module(t);w(null,n._invokeQueue,t),w(null,n._configBlocks,t),e.forEach(n.requires,d)}},e.forEach(l,function(e){u(e)}),l=[],c.pop()},C=function(t){try{return JSON.stringify(t)}catch(n){var i=[];return JSON.stringify(t,function(t,n){if(e.isObject(n)&&null!==n){if(-1!==i.indexOf(n))return;i.push(n)}return n})}},D=function(e){var t,n,i,r=0;if(0==e.length)return r;for(t=0,i=e.length;i>t;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: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;i>n;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 "'+C(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(t=s._getModuleName(t),null===t)return p.when();try{i=s._getModule(t)}catch(l){return h(l)}return r=s.getRequires(i),e.forEach(r,function(i){var r,l;if(e.isString(i)){if(r=s.getModuleConfig(i),null===r)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,a=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],o=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],s=this,u=p.defer();if(e.isDefined(t)&&null!==t){if(e.isArray(t))return n=[],e.forEach(t,function(e){n.push(s.inject(e,a,o))}),p.all(n);s._addToLoadList(s._getModuleName(t),!0,o)}if(l.length>0)i=l.slice(),(r=function c(e){E.push(e),_[e]=u.promise,s._loadDependencies(e,a).then(function(){try{f=[],y(O,E,a)}catch(e){return s._$log.error(e.message),void u.reject(e)}l.length>0?c(l.shift()):u.resolve(i)},function(e){u.reject(e)})})(l.shift());else{if(a&&a.name&&_[a.name])return _[a.name];u.resolve()}return u.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:y,_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){return{restrict:"A",terminal:!0,priority:1e3,compile:function(a){var o=a[0].innerHTML;return a.html(""),function(a,s,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(o,s),n(s.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=!1,s=i.document.getElementsByTagName("head")[0]||i.document.getElementsByTagName("body")[0];return t.buildElement=function(l,u,c){var d,p,f,h,g,m,b,v,y,$,w,x=n.defer(),k=t._getFilesCache(),C=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(k.get(u))&&k.put(u,x.promise),l){case"css":d=i.document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=c.cache===!1?C(u):u;break;case"js":d=i.document.createElement("script"),d.src=c.cache===!1?C(u):u;break;default:k.remove(u),x.reject(new Error('Requested type "'+l+'" is not known. Could not inject "'+u+'"'))}return d.onload=d.onreadystatechange=function(){d.readyState&&!/^c|loade/.test(d.readyState)||p||(d.onload=d.onreadystatechange=null,p=1,t._broadcast("ocLazyLoad.fileLoaded",u),x.resolve())},d.onerror=function(){k.remove(u),x.reject(new Error("Unable to load "+u))},d.async=c.serie?0:1,f=s.lastChild,c.insertBefore&&(h=e.element(e.isDefined(window.jQuery)?c.insertBefore:document.querySelector(c.insertBefore)),h&&h.length>0&&(f=h[0])),f.parentNode.insertBefore(d,f),"css"==l&&(a||(g=i.navigator.userAgent.toLowerCase(),/iP(hone|od|ad)/.test(i.navigator.platform)?(m=i.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),b=parseFloat([parseInt(m[1],10),parseInt(m[2],10),parseInt(m[3]||0,10)].join(".")),o=6>b):g.indexOf("android")>-1?(v=parseFloat(g.slice(g.indexOf("android")+8)),o=4.4>v):g.indexOf("safari")>-1&&(y=g.match(/version\/([\.\d]+)/i),o=y&&y[1]&&parseFloat(y[1])<6)),o&&($=1e3,w=r(function(){try{d.sheet.cssRules,r.cancel(w),d.onload()}catch(e){--$<=0&&d.onerror()}},20))),x.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)||c.cache===!1){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||(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),r=i.length>>>0,0===r)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);r>n;){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(){return a.hasClass("collapse")||a.hasClass("in")?void 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)}):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){var r=angular.isDefined(t.closeOthers)?e.$eval(t.closeOthers):n.closeOthers;r&&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(){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(;y.length;)y.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[v].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),y.length&&(i=y.pop().slide,o=i.index,l=o>g.getCurrentIndex()?"next":"prev",a(),s(i,o,l)))})}e.active=n.index,v=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",v=e.active,y=[],$=!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),v=t.index,e.active=t.index,o(v),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===v)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=y.indexOf(m[n]);-1!==i&&y.splice(i,1),m.splice(n,1),m.length>0&&v===n?n>=m.length?(v=m.length-1,e.active=v,o(v),g.select(m[m.length-1])):(v=n,e.active=v,o(v),g.select(m[n])):v>n&&(v--,e.active=v),0===m.length&&(v=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===v||e.$currentTransition?t&&t.slide.index!==v&&e.$currentTransition&&y.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)&&v!==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]),v=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()}var n="uib-slideDirection";return{beforeAddClass:function(i,r,a){var o,s,l,u;return"active"===r?(o=!1,s=i.data(n),l="next"===s?"left":"right",u=t.bind(this,i,l+" "+s,a),i.addClass(s),e(i,{addClass:l}).start().done(u),function(){o=!0}):void a()},beforeRemoveClass:function(i,r,a){var o,s,l,u;return"active"===r?(o=!1,s=i.data(n),l="next"===s?"left":"right",u=t.bind(this,i,l,a),e(i,{addClass:l}).start().done(u),function(){o=!0}):void a()}}}]),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;r>i;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 1>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?31>n:!0}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){n=n?-1:1;var i=u(t,e.getTimezoneOffset());return c(e,n*(i-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=69>e?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){var t=e.getMonth();return/^[0-9]$/.test(t)?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){var t=e.getDate();return/^[1-9]$/.test(t)?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,v,y,$;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;b>m;m++)v=u[m-1],"Z"===v.matcher&&(d=!0),v.apply&&v.apply.call(f,c[m]);return y=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),y.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),y.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){l.push(e),u.push({scope:e,element:t}),h.forEach(function(t){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){var i=e.scope.$eval(p);return i===t?(n=e,!0):void 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":f.startingDay=angular.isDefined(e.datepickerOptions.startingDay)?e.datepickerOptions.startingDay:angular.isNumber(s.startingDay)?s.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):!1},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),t=!isNaN(e);t?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:0>r,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;t>a;)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(-i+1),o=this.getDates(a,42),s=0;42>s;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;7>l;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;c>d;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){var t,n=this.activeDate.getDate();"left"===e?n-=1:"up"===e?n-=7:"right"===e?n+=1:"down"===e?n+=7:"pageup"===e||"pagedown"===e?(t=this.activeDate.getMonth()+("pageup"===e?-1:1),this.activeDate.setMonth(t,1),n=Math.min(i(this.activeDate.getFullYear(),this.activeDate.getMonth()),n)):"home"===e?n=1:"end"===e&&(n=i(this.activeDate.getFullYear(),this.activeDate.getMonth())),this.activeDate.setDate(n)}}]).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;12>i;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){var t,n=this.activeDate.getMonth();"left"===e?n-=1:"up"===e?n-=3:"right"===e?n+=1:"down"===e?n+=3:"pageup"===e||"pagedown"===e?(t=this.activeDate.getFullYear()+("pageup"===e?-1:1),this.activeDate.setFullYear(t)):"home"===e?n=0:"end"===e&&(n=11),this.activeDate.setMonth(n)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(e,t){function n(e){return parseInt((e-1)/r,10)*r+1}var i,r;this.element=t,this.yearpickerInit=function(){i=this.yearColumns,r=this.yearRows*i,this.step={years:r}},this._refreshView=function(){var t,a,o,s=new Array(r);for(a=0,o=n(this.activeDate.getFullYear());r>a;a++)t=new Date(this.activeDate),t.setFullYear(o+a,0,1),s[a]=angular.extend(this.createDateObject(t,this.formatYear),{uid:e.uniqueId+"-"+a});e.title=[s[0].label,s[r-1].label].join(" - "),e.rows=this.split(s,i),e.columns=i},this.compare=function(e,t){return e.getFullYear()-t.getFullYear()},this.handleKeyDown=function(e){var t=this.activeDate.getFullYear();"left"===e?t-=1:"up"===e?t-=i:"right"===e?t+=1:"down"===e?t+=i:"pageup"===e||"pagedown"===e?t+=("pageup"===e?-1:1)*r:"home"===e?t=n(this.activeDate.getFullYear()):"end"===e&&(t=n(this.activeDate.getFullYear())+r-1),this.activeDate.setFullYear(t)}}]).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],a=i[1];a.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],a=i[1];a.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){function i(e){return"static"===(t.getComputedStyle(e).position||"static")}n=this.getRawNode(n);for(var r=n.offsetParent||e[0].documentElement;r&&r!==e[0].documentElement&&i(r);)r=r.offsetParent;return r||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,c===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=r!==!1?!0:!1,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?!0:!1,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"),i&&(r=angular.element(i).hasClass("tooltip-inner"),o=e.querySelector(r?".tooltip-arrow":".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-",c+=a.vertical.test(n[0])?n[0]+"-"+n[1]: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,I)}return _.$options&&_.$options.allowInvalid?e:void 0}function v(e,t){var i=e||t;return n.ngRequired||i?(angular.isNumber(i)&&(i=new Date(i)),i?angular.isDate(i)&&!isNaN(i)?!0:angular.isString(i)?!isNaN(m(t)):!1:!0):!0}function y(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,C),i.css({top:a.top+"px",left:a.left+"px"}),i.hasClass("uib-position-measure")&&i.removeClass("uib-position-measure"))}var x,k,C,D,S,O,M,T,E,_,q,P,L,I,N=!1,A=[];this.init=function(r){if(_=r,q=r.$options,k=angular.isDefined(n.closeOnDateSelection)?e.$parent.$eval(n.closeOnDateSelection):p.closeOnDateSelection,C=angular.isDefined(n.datepickerAppendToBody)?e.$parent.$eval(n.datepickerAppendToBody):p.appendToBody,D=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],N=!0):(x=n.uibDatepickerPopup||p.datepickerPopup,n.$observe("uibDatepickerPopup",function(e){var t=e||p.datepickerPopup;if(t!==x&&(x=t,_.$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(N&&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>"),q?(I=q.timezone,e.ngModelOptions=angular.copy(q),e.ngModelOptions.timezone=null,e.ngModelOptions.updateOnDefault===!0&&(e.ngModelOptions.updateOn=e.ngModelOptions.updateOn?e.ngModelOptions.updateOn+" default":"default"),M.attr("ng-model-options","ngModelOptions")):I=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={}),N&&"month"===n.type&&(e.datepickerOptions.datepickerMode="month",e.datepickerOptions.minMode="month"),T.attr("datepicker-options","datepickerOptions"),N?_.$formatters.push(function(t){return e.date=d.fromTimezone(t,I),t}):(_.$$parserName="date",_.$validators.date=v,_.$parsers.unshift(b),_.$formatters.push(function(t){return _.$isEmpty(t)?(e.date=t,t):(e.date=d.fromTimezone(t,I),angular.isNumber(e.date)&&(e.date=new Date(e.date)),d.filter(e.date,x))})),_.$viewChangeListeners.push(function(){e.date=m(_.$viewValue)}),t.on("keydown",$),P=i(M)(e),M.remove(),C?s.find("body").append(P):t.after(P),e.$on("$destroy",function(){for(e.isOpen===!0&&(l.$$phase||e.$apply(function(){e.isOpen=!1})),P.remove(),t.off("keydown",$),s.off("click",y),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,I));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]),I):(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),_.$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(),D&&e.$broadcast("uib:datepicker.focus"),s.on("click",y);var i=n.popupPlacement?n.popupPlacement:p.placement;C||u.parsePlacement(i)[2]?(E=E||angular.element(u.scrollParent(t)),E&&E.on("scroll",w)):E=null,angular.element(o).on("resize",w)},0,!1):(s.off("click",y),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],a=i[1];a.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,v=n.onToggle?i(n.onToggle):angular.noop,y=!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))}y=angular.isDefined(n.dropdownAppendToBody),w=angular.isDefined(n.keyboardNav),y&&!$&&($=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:f.selectedOption=angular.isNumber(f.selectedOption)?f.selectedOption===n.length-1?f.selectedOption:f.selectedOption+1:0;break;case 38:f.selectedOption=angular.isNumber(f.selectedOption)?0===f.selectedOption?0:f.selectedOption-1: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,C;$&&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"),y||(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&&v(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(),C=angular.element('<ul class="dropdown-menu"></ul>'),f.dropdownMenu.replaceWith(C),f.dropdownMenu=C),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){s.push(angular.isFunction(e)||angular.isArray(e)?n.resolve(t.invoke(e)):angular.isString(e)?n.resolve(t.get(e)):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&&C>t&&(t=C),t}function d(e,t){var n=w.get(e).value,i=n.appendTo;w.remove(e),D=w.top(),D&&(C=parseInt(D.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&&y&&y.heightOverflow&&y.scrollbarWidth&&(i.css(y.originalRight?{paddingRight:y.originalRight+"px"}:{paddingRight:""}),y=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=v;h(b,v,function(){e=null}),b=void 0,v=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,v,y,$="modal-open",w=s.createNew(),x=o.createNew(),k={NOW_CLOSING_EVENT:"modal.stack.now-closing"},C=0,D=null,S="a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]";return r.$watch(c,function(e){v&&(v.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),D=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&&(v=r.$new(!0),v.modalOptions=a,v.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)(v),e.enter(b,o),y=l.scrollbarPadding(o),y.heightOverflow&&y.scrollbarWidth&&o.css({paddingRight:y.right+"px"})),C=D?parseInt(D.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:C,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):!1},k.focusLastFocusableElement=function(e){return e.length>0?(e[e.length-1].focus(),!0):!1},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]:!1},k.isFocusInLastItem=function(e,t){return t.length>0?(e.target||e.srcElement)===t[t.length-1]:!1},k.loadFocusElementList=function(e){var t,n;return e&&(t=e.value.modalDomEl,t&&t.length)?(n=t[0].querySelectorAll(S),n?Array.prototype.filter.call(n,function(e){return u(e)}):n):void 0},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();var r=!n.ngDisabled||!i;r&&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,v=t,y=angular.isDefined(u)&&t>u;for(y&&(c?(b=Math.max(e-Math.floor(u/2),1),v=b+u-1,v>t&&(v=t,b=v-u+1)):(b=(Math.ceil(e/u)-1)*u+1,v=Math.min(b+u-1,t))),n=b;v>=n;n++)i=a(n,f(n),n===e),m.push(i);return y&&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))),t>v&&((!p||t-2>v)&&(l=a(v+1,"...",!1),m.push(l)),p&&(v===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,n="-";return e.replace(t,function(e,t){return(t?n:"")+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(" "),i=t.map(function(e){return n[e]||e});return{show:t,hide:i}}var m,b,v,y;return f=angular.extend({},t,i,f),m=e(r),b=u.startSymbol(),v=u.endSymbol(),y="<div "+m+'-popup uib-title="'+b+"title"+v+'" '+(f.useContentExp?'content-exp="contentExp()" ':'content="'+b+"content"+v+'" ')+'placement="'+b+"placement"+v+'" popup-class="'+b+"popupClass"+v+'" animation="animation" is-open="isOpen" origin-scope="origScope" class="uib-position-measure"></div>',{compile:function(){var e=a(y);return function(t,n,i){function a(){K.isOpen?p():u()}function u(){(!U||t.$eval(i[c+"Enable"]))&&(y(),x(),K.popupDelay?_||(_=o(m,K.popupDelay,!1)):m())}function p(){b(),K.popupCloseDelay?q||(q=o(v,K.popupCloseDelay,!1)):v()}function m(){return b(),y(),K.content?($(),void K.$evalAsync(function(){K.isOpen=!0,k(!0),Q()})):angular.noop}function b(){_&&(o.cancel(_),_=null),P&&(o.cancel(P),P=null)}function v(){K&&K.$evalAsync(function(){K&&(K.isOpen=!1,k(!1),K.animation?E||(E=o(w,150,!1)):w())})}function y(){q&&(o.cancel(q),q=null),E&&(o.cancel(E),E=null)}function $(){M||(T=K.$new(),M=e(T,function(e){F?s.find("body").append(e):n.after(e)}),C())}function w(){b(),y(),D(),M&&(M.remove(),M=null),T&&(T.$destroy(),T=null)}function x(){var e,n,a;K.title=i[c+"Title"],K.content=B?B(t):i[r],K.popupClass=i[c+"Class"],K.placement=angular.isDefined(i[c+"Placement"])?i[c+"Placement"]:f.placement,e=l.parsePlacement(K.placement),L=e[1]?e[0]+"-"+e[1]:e[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 k(e){V&&angular.isFunction(V.assign)&&V.assign(t,e)}function C(){z.length=0,B?(z.push(t.$watch(B,function(e){K.content=e,!e&&K.isOpen&&v()})),z.push(T.$watch(function(){H||(H=!0,T.$$postDigest(function(){H=!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?e:f.placement,K.isOpen&&Q()}))}function D(){z.length&&(angular.forEach(z,function(e){e()}),z.length=0)}function S(e){K&&K.isOpen&&M&&(n[0].contains(e.target)||M[0].contains(e.target)||p())}function O(){var e=i[c+"Trigger"];I(),j=g(e),"none"!==j.show&&j.show.forEach(function(e,t){"outsideClick"===e?(n.on("click",a),s.on("click",S)):e===j.hide[t]?n.on(e,a):e&&(n.on(e,u),n.on(j.hide[t],p)),n.on("keypress",function(e){27===e.which&&p()})})}var M,T,E,_,q,P,L,I,N,A,R,F=angular.isDefined(f.appendToBody)?f.appendToBody:!1,j=g(void 0),U=angular.isDefined(i[c+"Enable"]),K=t.$new(!0),H=!1,V=angular.isDefined(i[c+"IsOpen"])?d(i[c+"IsOpen"]):!1,B=f.useContentExp?d(i[r]):!1,z=[],Q=function(){M&&M.html()&&(P||(P=o(function(){var e=l.positionElements(n,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=t,K.isOpen=!1,h.add(K,{close:v}),K.contentExp=function(){return K.content},i.$observe("disabled",function(e){e&&b(),e&&K.isOpen&&v()}),V&&t.$watch(V,function(e){K&&!e===K.isOpen&&a()}),I=function(){j.show.forEach(function(e){"outsideClick"===e?n.off("click",a):(n.off(e,u),n.off(e,a))}),j.hide.forEach(function(e){"outsideClick"===e?s.off("click",S):n.off(e,p)})},O(),N=t.$eval(i[c+"Animation"]),K.animation=angular.isDefined(N)?!!N:f.animation,R=c+"AppendToBody",A=R in i&&void 0===i[R]?!0:t.$eval(i[R]),F=angular.isDefined(A)?A:F,t.$on("$destroy",function(){I(),w(),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(){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(){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;n>t;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):!1,e.justified=angular.isDefined(n.justified)?e.$parent.$eval(n.justified):!1,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)&&(t.index=r.tabs&&r.tabs.length?Math.max.apply(null,r.tabs.map(function(e){return e.index}))+1: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,n=e.showMeridian?t>0&&13>t:t>=0&&24>t;return n&&""!==e.hours?(e.showMeridian&&(12===t&&(t=0),e.meridian===O[1]&&(t+=12)),t):void 0}function l(){var t=+e.minutes,n=t>=0&&60>t;return n&&""!==e.minutes?t:void 0}function u(){var t=+e.seconds;return t>=0&&60>t?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(C)),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=C.getHours(),i=C.getMinutes(),r=C.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=C.getHours()<12?O[0]:O[1],"s"!==t&&(e.seconds=c(r)),e.meridian=C.getHours()<12?O[0]:O[1]}else e.hours=null,e.minutes=null,e.seconds=null,e.meridian=O[0]}function h(e){C=m(C,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 v,y,$,w,x,k,C=new Date,D=[],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):!0;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)},v=o.hourStep,n.hourStep&&D.push(e.$parent.$watch(i(n.hourStep),function(e){v=+e})),y=o.minuteStep,n.minuteStep&&D.push(e.$parent.$watch(i(n.minuteStep),function(e){y=+e})),D.push(e.$parent.$watch(i(n.min),function(e){var t=new Date(e);$=isNaN(t)?void 0:t})),D.push(e.$parent.$watch(i(n.max),function(e){var t=new Date(e);w=isNaN(t)?void 0:t})),x=!1,n.ngDisabled&&D.push(e.$parent.$watch(i(n.ngDisabled),function(e){x=e})),e.noIncrementHours=function(){var e=g(C,60*v);return x||e>w||C>e&&$>e},e.noDecrementHours=function(){var e=g(C,60*-v);return x||$>e||e>C&&e>w},e.noIncrementMinutes=function(){var e=g(C,y);return x||e>w||C>e&&$>e},e.noDecrementMinutes=function(){var e=g(C,-y);return x||$>e||e>C&&e>w},e.noIncrementSeconds=function(){var e=m(C,k);return x||e>w||C>e&&$>e},e.noDecrementSeconds=function(){var e=m(C,-k);return x||$>e||e>C&&e>w},e.noToggleMeridian=function(){return C.getHours()<12?x||g(C,720)>w:x||g(C,-720)<$},k=o.secondStep,n.secondStep&&D.push(e.$parent.$watch(i(n.secondStep),function(e){k=+e})),e.showSeconds=o.showSeconds,n.showSeconds&&D.push(e.$parent.$watch(i(n.showSeconds),function(t){e.showSeconds=!!t})),e.showMeridian=o.showMeridian,n.showMeridian&&D.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)&&(C.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)?(C.setHours(e),C.setMinutes(t),$>C||C>w?r(!0):d("h")):r(!0)},t.bind("blur",function(){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)?(C.setHours(t),C.setMinutes(e),$>C||C>w?r(void 0,!0):d("m")):r(void 0,!0)},n.bind("blur",function(){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)?(C.setSeconds(e),d("s")):r(void 0,void 0,!0)},i.bind("blur",function(){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&&(C=t),$>C||C>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*v*60)},e.decrementHours=function(){e.noDecrementHours()||h(60*-v*60)},e.incrementMinutes=function(){e.noIncrementMinutes()||h(60*y)},e.decrementMinutes=function(){e.noDecrementMinutes()||h(60*-y)},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*(C.getHours()<12?60:-60)):e.meridian=e.meridian===O[0]?O[1]:O[0])},e.blur=function(){S.$setTouched()},e.$on("$destroy",function(){for(;D.length;)D.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(){N.moveInProgress||(N.moveInProgress=!0,N.$digest()),Q()}function h(){N.position=C?d.offset(t):d.position(t),N.position.top+=t.prop("offsetHeight")}var g,m,b,v,y,$,w,x,k,C,D,S,O,M,T,E,_,q,P,L,I,N,A,R,F,j,U,K,H,V,B,z,Q,G,W,Y,X,J,Z=[9,13,27,38,40],ee=200,te=e.$eval(n.typeaheadMinLength);te||0===te||(te=1),e.$watch(n.typeaheadMinLength,function(e){te=e||0===e?e:1}),b=e.$eval(n.typeaheadWaitMs)||0,v=e.$eval(n.typeaheadEditable)!==!1,e.$watch(n.typeaheadEditable,function(e){v=e!==!1}),y=r(n.typeaheadLoading).assign||angular.noop,$=r(n.typeaheadOnSelect),w=angular.isDefined(n.typeaheadSelectOnBlur)?e.$eval(n.typeaheadSelectOnBlur):!1,x=r(n.typeaheadNoResults).assign||angular.noop,k=n.typeaheadInputFormatter?r(n.typeaheadInputFormatter):void 0,C=n.typeaheadAppendToBody?e.$eval(n.typeaheadAppendToBody):!1,D=n.typeaheadAppendTo?e.$eval(n.typeaheadAppendTo):null,S=e.$eval(n.typeaheadFocusFirst)!==!1,O=n.typeaheadSelectOnExact?e.$eval(n.typeaheadSelectOnExact):!1,M=r(n.typeaheadIsOpen).assign||angular.noop,T=e.$eval(n.typeaheadShowHint)||!1,E=r(n.ngModel),_=r(n.ngModel+"($$$p)"),q=function(t,n){return angular.isFunction(E(e))&&m&&m.$options&&m.$options.getterSetter?_(t,{$$$p:n}):E.assign(t,n)},P=p.parse(n.uibTypeahead),N=e.$new(),A=e.$on("$destroy",function(){N.$destroy()}),N.$on("$destroy",A),R="typeahead-"+N.$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("")},H=function(){N.matches=[],N.activeIdx=-1,t.attr("aria-expanded",!1),K()},V=function(e){return R+"-option-"+e},N.$watch("activeIdx",function(e){0>e?t.removeAttr("aria-activedescendant"):t.attr("aria-activedescendant",V(e))}),B=function(e,t){return N.matches.length>t&&e?e.toUpperCase()===N.matches[t].label.toUpperCase():!1},z=function(n,i){var r={$viewValue:n};y(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(N.activeIdx=S?0:-1,x(e,!1),N.matches.length=0,o=0;o<a.length;o++)r[P.itemName]=a[o],N.matches.push({id:V(o),label:P.viewMapper(N,r),model:a[o]});N.query=n,h(),t.attr("aria-expanded",!0),O&&1===N.matches.length&&B(n,0)&&(angular.isNumber(N.debounceUpdate)||angular.isObject(N.debounceUpdate)?c(function(){N.select(0,i)},angular.isNumber(N.debounceUpdate)?N.debounceUpdate:N.debounceUpdate["default"]):N.select(0,i)),T&&(s=N.matches[0].label,j.val(angular.isString(n)&&n.length>0&&s.slice(0,n.length).toUpperCase()===n.toUpperCase()?n+s.slice(n.length):""))}else H(),x(e,!0);l&&y(e,!1)},function(){H(),y(e,!1),x(e,!0)})},C&&(angular.element(l).on("resize",f),s.find("body").on("scroll",f)),Q=c(function(){N.matches.length&&h(),N.moveInProgress=!1},ee),N.moveInProgress=!1,N.query=void 0,W=function(e){G=o(function(){z(e)},b)},Y=function(){G&&o.cancel(G)},H(),N.assignIsOpen=function(t){M(e,t)},N.select=function(i,r){var a,s,l={};I=!0,l[P.itemName]=s=N.matches[i].model,a=P.modelMapper(e,l),q(e,a),g.$setValidity("editable",!0),g.$setValidity("parse",!0),$(e,{$item:s,$model:a,$label:P.viewMapper(e,l),$event:r}),H(),N.$eval(n.typeaheadFocusOnSelect)!==!1&&o(function(){t[0].focus()},0,!1)},t.on("keydown",function(t){if(0!==N.matches.length&&-1!==Z.indexOf(t.which)){if(-1===N.activeIdx&&(9===t.which||13===t.which)||9===t.which&&t.shiftKey)return H(),void N.$digest();t.preventDefault();var n;switch(t.which){case 9:case 13:N.$apply(function(){angular.isNumber(N.debounceUpdate)||angular.isObject(N.debounceUpdate)?c(function(){N.select(N.activeIdx,t)},angular.isNumber(N.debounceUpdate)?N.debounceUpdate:N.debounceUpdate["default"]):N.select(N.activeIdx,t)});break;case 27:t.stopPropagation(),H(),e.$digest();break;case 38:N.activeIdx=(N.activeIdx>0?N.activeIdx:N.matches.length)-1,N.$digest(),n=U.find("li")[N.activeIdx],n.parentNode.scrollTop=n.offsetTop;break;case 40:N.activeIdx=(N.activeIdx+1)%N.matches.length,N.$digest(),n=U.find("li")[N.activeIdx],n.parentNode.scrollTop=n.offsetTop}}}),t.bind("focus",function(e){L=!0,0!==te||g.$viewValue||o(function(){z(g.$viewValue,e)},0)}),t.bind("blur",function(e){w&&N.matches.length&&-1!==N.activeIdx&&!I&&(I=!0,N.$apply(function(){angular.isObject(N.debounceUpdate)&&angular.isNumber(N.debounceUpdate.blur)?c(function(){N.select(N.activeIdx,e)},N.debounceUpdate.blur):N.select(N.activeIdx,e)})),!v&&g.$error.editable&&(g.$setViewValue(),g.$setValidity("editable",!0),g.$setValidity("parse",!0),t.val("")),L=!1,I=!1}),X=function(n){t[0]!==n.target&&3!==n.which&&0!==N.matches.length&&(H(),u.$$phase||e.$digest())},s.on("click",X),e.$on("$destroy",function(){s.off("click",X),(C||D)&&J.remove(),C&&(angular.element(l).off("resize",f),s.find("body").off("scroll",f)),U.remove(),T&&F.remove()}),J=i(U)(N),C?s.find("body").append(J):D?angular.element(D).eq(0).append(J):t.after(J),this.init=function(t,n){g=t,m=n,N.debounceUpdate=g.$options&&r(g.$options.debounce)(e),g.$parsers.unshift(function(t){return L=!0,0===te||t&&t.length>=te?b>0?(Y(),W(t)):z(t):(y(e,!1),Y(),H()),v?t:t?void g.$setValidity("editable",!1):(g.$setValidity("editable",!0),null)}),g.$formatters.push(function(t){var n,i,r={};return v||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 <li ng-transclude></li>\n <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 <li ng-if="showButtonBar" style="padding:10px 9px 2px" class="uib-button-bar">\n <button type="button" class="btn btn-sm btn-success pull-right uib-close" ng-click="close()">{{ getText(\'close\') }}</button>\n </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){var r="yyyy-MM-dd HH:mm:ss";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||r}}}]).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,v=n.onToggle?i(n.onToggle):angular.noop,y=!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))}y=angular.isDefined(n.dropdownAppendToBody),w=angular.isDefined(n.keyboardNav),y&&!$&&($=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:f.selectedOption=angular.isNumber(f.selectedOption)?f.selectedOption===n.length-1?f.selectedOption:f.selectedOption+1:0;break;case 38:f.selectedOption=angular.isNumber(f.selectedOption)?0===f.selectedOption?0:f.selectedOption-1: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,C;$&&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"),y||(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&&v(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(),C=angular.element('<ul class="dropdown-menu"></ul>'),f.dropdownMenu.replaceWith(C),f.dropdownMenu=C),a.close(h,t),f.selectedOption=null),angular.isFunction(b)&&b(e,n)})}]);
//# sourceMappingURL=./ne-modules-ui.min.js.map